@@ -2,25 +2,32 @@
# your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running ‘ nixos-help’ ).
{ config , pkgs , . . . }:
{ config , pkgs , lib , . . . }:
{
# Optionals
desktop_computer = true ;
office = true ;
devel . rust = true ;
devel . c = true ;
devel . haskell = false ;
devel . java = false ;
devel . ada = true ;
devel . asic = false ;
desktop_setup = lib . optionals ( config . desktop_computer ) [ ./desktop_environment.nix ] ;
imports =
[ # Include the results of the hardware scan.
./hardware-configuration.nix
] ;
] ++ config . desktop_setup ;
# Bootloader.
boot . loader . systemd-boot . enable = true ;
boot . loader . efi . canTouchEfiVariables = true ;
networking . hostName = " n i x o s " ; # Define your hostname.
networking . hostName = " a m e l i a " ; # Define your hostname.
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
# Configure network proxy if necessary
# networking.proxy.default = "http://user:password@proxy:port/";
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
# Enable networking
networking . networkmanager . enable = true ;
@@ -48,12 +55,6 @@
variant = " " ;
} ;
# Gnome configuration
services . xserver . enable = true ;
services . xserver . displayManager . sddm . enable = true ;
services . xserver . displayManager . sddm . wayland . enable = true ;
services . xserver . desktopManager . plasma6 . enable = true ;
# Configure console keymap
console . keyMap = " d e " ;
@@ -68,6 +69,14 @@
# List packages installed in system profile. To search, run:
# $ nix search wget
pkg . office = lib . optionals ( config . office ) config . components . office . packages ;
pkg . devel . rust = lib . optionals ( config . devel . rust ) config . components . devel . rust . packages ;
pkg . devel . c = lib . optionals ( config . devel . c ) config . components . devel . c . packages ;
pkg . devel . haskell = lib . optionals ( config . devel . haskell ) config . components . devel . haskell . packages ;
pkg . devel . java = lib . optionals ( config . devel . java ) config . components . devel . java . packages ;
pkg . devel . ada = lib . optionals ( config . devel . ada ) config . components . devel . ada . packages ;
pkg . devel . asic = lib . optionals ( config . devel . asic ) config . components . devel . asic . packages ;
additional_packages = config . pkg . office ++ config . pkg . devel . rust ++ config . pkg . devel . c ++ config . pkg . devel . haskell ++ config . pkg . devel . java ++ config . pkg . devel . ada ++ config . pkg . devel . asic ;
environment . systemPackages = with pkgs ; [
vim
wget
@@ -75,26 +84,9 @@
neovim
python313Packages . pynvim
networkmanager
epiphany
nodejs_24
cmake
kitty
hyfetch
elan
gnat15
ghdl-llvm
gtkwave
gnumake
alire
rustup
yosys
openroad
verilator
iverilog
cargo
docker
rustfmt
] ;
] ++ config . additional_packages ;
programs . zsh = {
enable = true ;
@@ -102,11 +94,11 @@
# Some programs need SUID wrappers, can be configured further or are
# started in user sessions.
# programs.mtr.enable = true;
# programs.gnupg.agent = {
# enable = true;
# enableSSHSupport = true;
# };
programs . mtr . enable = true ;
programs . gnupg . agent = {
enable = true ;
enableSSHSupport = true ;
} ;
# List services that you want to enable:
@@ -114,8 +106,8 @@
services . openssh . enable = true ;
# Open ports in the firewall.
# networking.firewall.allowedTCPPorts = [ ... ];
# networking.firewall.allowedUDPPorts = [ ... ];
networking . firewall . allowedTCPPorts = [ 22 ] ;
networking . firewall . allowedUDPPorts = [ 22 ] ;
# Or disable the firewall altogether.
# networking.firewall.enable = false;