forked from jan-leila/nix-config
		
	ran statix linter
This commit is contained in:
		
							parent
							
								
									f68a46c46a
								
							
						
					
					
						commit
						9706360841
					
				
					 16 changed files with 376 additions and 329 deletions
				
			
		|  | @ -4,32 +4,33 @@ | ||||||
|     ../common |     ../common | ||||||
|   ]; |   ]; | ||||||
| 
 | 
 | ||||||
|   # Enable CUPS to print documents. |   services = { | ||||||
|   services.printing.enable = true; |  | ||||||
| 
 | 
 | ||||||
|  |     # Enable CUPS to print documents. | ||||||
|  |     printing.enable = true; | ||||||
|  | 
 | ||||||
|  |     xserver = { | ||||||
|       # Enable the X11 windowing system. |       # Enable the X11 windowing system. | ||||||
|   services.xserver.enable = true; |       enable = true; | ||||||
| 
 | 
 | ||||||
|       # Enable the GNOME Desktop Environment. |       # Enable the GNOME Desktop Environment. | ||||||
|   services.xserver.displayManager.gdm.enable = true; |       displayManager.gdm.enable = true; | ||||||
|   services.xserver.desktopManager.gnome.enable = true; |       desktopManager = { | ||||||
|   services.xserver.desktopManager.xterm.enable = false; |         gnome.enable = true; | ||||||
|  |         xterm.enable = false; | ||||||
|  |       }; | ||||||
| 
 | 
 | ||||||
|       # Get rid of xTerm |       # Get rid of xTerm | ||||||
|   services.xserver.excludePackages = [ pkgs.xterm ]; |       excludePackages = [ pkgs.xterm ]; | ||||||
| 
 | 
 | ||||||
|       # Configure keymap in X11 |       # Configure keymap in X11 | ||||||
|   services.xserver = { |  | ||||||
|       xkb = { |       xkb = { | ||||||
|         layout = "us,it,de"; |         layout = "us,it,de"; | ||||||
|         variant = ""; |         variant = ""; | ||||||
|       }; |       }; | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|   # Enable sound with pipewire. |     pipewire = { | ||||||
|   hardware.pulseaudio.enable = false; |  | ||||||
|   security.rtkit.enable = true; |  | ||||||
|   services.pipewire = { |  | ||||||
|       enable = true; |       enable = true; | ||||||
|       alsa.enable = true; |       alsa.enable = true; | ||||||
|       alsa.support32Bit = true; |       alsa.support32Bit = true; | ||||||
|  | @ -41,6 +42,12 @@ | ||||||
|       # no need to redefine it in your config for now) |       # no need to redefine it in your config for now) | ||||||
|       #media-session.enable = true; |       #media-session.enable = true; | ||||||
|     }; |     }; | ||||||
|  |   }; | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |   # Enable sound with pipewire. | ||||||
|  |   hardware.pulseaudio.enable = false; | ||||||
|  |   security.rtkit.enable = true; | ||||||
| 
 | 
 | ||||||
|   environment.systemPackages = with pkgs; [ |   environment.systemPackages = with pkgs; [ | ||||||
|     # helvetica font |     # helvetica font | ||||||
|  |  | ||||||
|  | @ -23,38 +23,33 @@ | ||||||
|   virtualisation.docker.enable = true; |   virtualisation.docker.enable = true; | ||||||
|   users.extraGroups.docker.members = [ "leyla" ]; |   users.extraGroups.docker.members = [ "leyla" ]; | ||||||
| 
 | 
 | ||||||
|   boot.supportedFilesystems = [ "zfs" ]; |  | ||||||
| 
 |  | ||||||
|   boot.zfs.extraPools = [ "zroot" ]; |  | ||||||
| 
 |  | ||||||
|   services.zfs.autoScrub.enable = true; |  | ||||||
|   services.zfs.autoSnapshot.enable = true; |  | ||||||
| 
 |  | ||||||
|   # this might need to match the hostId of the installation medium? `head -c 8 /etc/machine-id` NOPE |  | ||||||
|   networking.hostId = "c51763d6"; |  | ||||||
|   networking.hostName = "defiant"; # Define your hostname. |  | ||||||
| 
 |  | ||||||
|   nixpkgs.config.allowUnfree = true; |   nixpkgs.config.allowUnfree = true; | ||||||
| 
 | 
 | ||||||
|  |   services = { | ||||||
|  |     zfs = { | ||||||
|  |       autoScrub.enable = true; | ||||||
|  |       autoSnapshot.enable = true; | ||||||
|  |     }; | ||||||
|  |      | ||||||
|     # temp enable desktop enviroment for setup |     # temp enable desktop enviroment for setup | ||||||
|     # Enable the X11 windowing system. |     # Enable the X11 windowing system. | ||||||
|   services.xserver.enable = true; |     xserver = { | ||||||
|  |       enable = true; | ||||||
| 
 | 
 | ||||||
|       # Enable the GNOME Desktop Environment. |       # Enable the GNOME Desktop Environment. | ||||||
|   services.xserver.displayManager.gdm.enable = true; |       services.xserver.displayManager = { | ||||||
|   services.xserver.desktopManager.gnome.enable = true; |         gdm.enable = true; | ||||||
|   services.xserver.desktopManager.xterm.enable = false; |       }; | ||||||
|  |       services.xserver.desktopManager = { | ||||||
|  |         gnome.enable = true; | ||||||
|  |         desktopManager.xterm.enable = false; | ||||||
|  |       }; | ||||||
| 
 | 
 | ||||||
|       # Get rid of xTerm |       # Get rid of xTerm | ||||||
|   services.xserver.excludePackages = [ pkgs.xterm ]; |       excludePackages = [ pkgs.xterm ]; | ||||||
|  |     }; | ||||||
| 
 | 
 | ||||||
|   # disable computer sleeping |     openssh = { | ||||||
|   systemd.targets.sleep.enable = false; |  | ||||||
|   systemd.targets.suspend.enable = false; |  | ||||||
|   systemd.targets.hibernate.enable = false; |  | ||||||
|   systemd.targets.hybrid-sleep.enable = false; |  | ||||||
| 
 |  | ||||||
|   services.openssh = { |  | ||||||
|       enable = true; |       enable = true; | ||||||
|       ports = [ 22 ]; |       ports = [ 22 ]; | ||||||
|       settings = { |       settings = { | ||||||
|  | @ -65,28 +60,9 @@ | ||||||
|       }; |       }; | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|   fileSystems."/srv/nfs4/docker" = { |     nfs.server = { | ||||||
|     device = "/home/docker"; |       enable = true; | ||||||
|     options = [ "bind" ]; |       exports = '' | ||||||
|   }; |  | ||||||
| 
 |  | ||||||
|   fileSystems."/srv/nfs4/users" = { |  | ||||||
|     device = "/home/users"; |  | ||||||
|     options = [ "bind" ]; |  | ||||||
|   }; |  | ||||||
| 
 |  | ||||||
|   fileSystems."/srv/nfs4/leyla" = { |  | ||||||
|     device = "/home/leyla"; |  | ||||||
|     options = [ "bind" ]; |  | ||||||
|   }; |  | ||||||
| 
 |  | ||||||
|   fileSystems."/srv/nfs4/eve" = { |  | ||||||
|     device = "/home/eve"; |  | ||||||
|     options = [ "bind" ]; |  | ||||||
|   }; |  | ||||||
| 
 |  | ||||||
|   services.nfs.server.enable = true; |  | ||||||
|   services.nfs.server.exports = '' |  | ||||||
|         /srv/nfs4/docker 192.168.1.0/24(rw,sync,crossmnt,no_subtree_check) |         /srv/nfs4/docker 192.168.1.0/24(rw,sync,crossmnt,no_subtree_check) | ||||||
| 
 | 
 | ||||||
|         /srv/nfs4/leyla 192.168.1.0/22(rw,sync,no_subtree_check,nohide) |         /srv/nfs4/leyla 192.168.1.0/22(rw,sync,no_subtree_check,nohide) | ||||||
|  | @ -99,6 +75,38 @@ | ||||||
|         # /export/sen     192.168.1.10(rw,nohide,insecure,no_subtree_check) 192.168.1.15(rw,nohide,insecure,no_subtree_check) |         # /export/sen     192.168.1.10(rw,nohide,insecure,no_subtree_check) 192.168.1.15(rw,nohide,insecure,no_subtree_check) | ||||||
|         # /export/tomoyo  192.168.1.10(rw,nohide,insecure,no_subtree_check) 192.168.1.15(rw,nohide,insecure,no_subtree_check) |         # /export/tomoyo  192.168.1.10(rw,nohide,insecure,no_subtree_check) 192.168.1.15(rw,nohide,insecure,no_subtree_check) | ||||||
|       ''; |       ''; | ||||||
|  |     }; | ||||||
|  |   }; | ||||||
|  | 
 | ||||||
|  |   # disable computer sleeping | ||||||
|  |   systemd.targets = { | ||||||
|  |     sleep.enable = false; | ||||||
|  |     suspend.enable = false; | ||||||
|  |     hibernate.enable = false; | ||||||
|  |     hybrid-sleep.enable = false; | ||||||
|  |   }; | ||||||
|  | 
 | ||||||
|  |   fileSystems = { | ||||||
|  |     "/srv/nfs4/docker" = { | ||||||
|  |       device = "/home/docker"; | ||||||
|  |       options = [ "bind" ]; | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|  |     "/srv/nfs4/users" = { | ||||||
|  |       device = "/home/users"; | ||||||
|  |       options = [ "bind" ]; | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|  |     "/srv/nfs4/leyla" = { | ||||||
|  |       device = "/home/leyla"; | ||||||
|  |       options = [ "bind" ]; | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|  |     "/srv/nfs4/eve" = { | ||||||
|  |       device = "/home/eve"; | ||||||
|  |       options = [ "bind" ]; | ||||||
|  |     }; | ||||||
|  |   }; | ||||||
| 
 | 
 | ||||||
|   # This value determines the NixOS release from which the default |   # This value determines the NixOS release from which the default | ||||||
|   # settings for stateful data, like file locations and database versions |   # settings for stateful data, like file locations and database versions | ||||||
|  |  | ||||||
|  | @ -8,10 +8,18 @@ | ||||||
|     [ (modulesPath + "/installer/scan/not-detected.nix") |     [ (modulesPath + "/installer/scan/not-detected.nix") | ||||||
|     ]; |     ]; | ||||||
| 
 | 
 | ||||||
|   boot.initrd.availableKernelModules = [ "xhci_pci" "aacraid" "ahci" "usbhid" "usb_storage" "sd_mod" ]; |   boot = { | ||||||
|   boot.initrd.kernelModules = [ ]; |     initrd = { | ||||||
|   boot.kernelModules = [ "kvm-amd" ]; |       availableKernelModules = [ "xhci_pci" "aacraid" "ahci" "usbhid" "usb_storage" "sd_mod" ]; | ||||||
|   boot.extraModulePackages = [ ]; |       kernelModules = [ ]; | ||||||
|  |     }; | ||||||
|  |     kernelModules = [ "kvm-amd" ]; | ||||||
|  |     extraModulePackages = [ ]; | ||||||
|  |      | ||||||
|  |     supportedFilesystems = [ "zfs" ]; | ||||||
|  | 
 | ||||||
|  |     zfs.extraPools = [ "zroot" ]; | ||||||
|  |   }; | ||||||
| 
 | 
 | ||||||
|   # fileSystems."/" = |   # fileSystems."/" = | ||||||
|   #   { device = "/dev/disk/by-uuid/dc6a9664-80f2-4988-afd7-fee5bd3ee2ca"; |   #   { device = "/dev/disk/by-uuid/dc6a9664-80f2-4988-afd7-fee5bd3ee2ca"; | ||||||
|  | @ -20,13 +28,17 @@ | ||||||
| 
 | 
 | ||||||
|   swapDevices = [ ]; |   swapDevices = [ ]; | ||||||
| 
 | 
 | ||||||
|  |   networking = { | ||||||
|     # Enables DHCP on each ethernet and wireless interface. In case of scripted networking |     # Enables DHCP on each ethernet and wireless interface. In case of scripted networking | ||||||
|     # (the default) this is the recommended approach. When using systemd-networkd it's |     # (the default) this is the recommended approach. When using systemd-networkd it's | ||||||
|     # still possible to use this option, but it's recommended to use it in conjunction |     # still possible to use this option, but it's recommended to use it in conjunction | ||||||
|     # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`. |     # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`. | ||||||
|   networking.useDHCP = lib.mkDefault true; |     useDHCP = lib.mkDefault true; | ||||||
|     # networking.interfaces.eno1.useDHCP = lib.mkDefault true; |     # networking.interfaces.eno1.useDHCP = lib.mkDefault true; | ||||||
|     # networking.interfaces.eno2.useDHCP = lib.mkDefault true; |     # networking.interfaces.eno2.useDHCP = lib.mkDefault true; | ||||||
|  |     hostId = "c51763d6"; | ||||||
|  |     hostName = "defiant"; # Define your hostname. | ||||||
|  |   }; | ||||||
| 
 | 
 | ||||||
|   nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; |   nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; | ||||||
|   hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; |   hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; | ||||||
|  |  | ||||||
|  | @ -1,5 +0,0 @@ | ||||||
| # eve desktop |  | ||||||
| {}:  |  | ||||||
| { |  | ||||||
| 
 |  | ||||||
| } |  | ||||||
|  | @ -1,5 +0,0 @@ | ||||||
| # nas |  | ||||||
| {}:  |  | ||||||
| { |  | ||||||
| 
 |  | ||||||
| } |  | ||||||
|  | @ -11,9 +11,11 @@ | ||||||
|       ../../enviroments/client |       ../../enviroments/client | ||||||
|     ]; |     ]; | ||||||
| 
 | 
 | ||||||
|   users.leyla.isFullUser = true; |   users = { | ||||||
|   users.ester.isFullUser = true; |     leyla.isFullUser = true; | ||||||
|   users.eve.isFullUser = true; |     ester.isFullUser = true; | ||||||
|  |     eve.isFullUser = true; | ||||||
|  |   }; | ||||||
| 
 | 
 | ||||||
|   # enabled virtualisation for docker |   # enabled virtualisation for docker | ||||||
|   virtualisation.docker = { |   virtualisation.docker = { | ||||||
|  |  | ||||||
|  | @ -8,62 +8,73 @@ | ||||||
|     [ (modulesPath + "/installer/scan/not-detected.nix") |     [ (modulesPath + "/installer/scan/not-detected.nix") | ||||||
|     ]; |     ]; | ||||||
| 
 | 
 | ||||||
|   boot.initrd.availableKernelModules = [ "xhci_pci" "thunderbolt" "nvme" "usb_storage" "sd_mod" ]; |   boot = { | ||||||
|   boot.initrd.kernelModules = [ ]; |     initrd = { | ||||||
|   boot.kernelModules = [ "kvm-intel" "sg" ]; |       availableKernelModules = [ "xhci_pci" "thunderbolt" "nvme" "usb_storage" "sd_mod" ]; | ||||||
|   boot.extraModulePackages = [ ]; |       kernelModules = [ ]; | ||||||
|  |     }; | ||||||
|  |     kernelModules = [ "kvm-intel" "sg" ]; | ||||||
|  |     extraModulePackages = [ ]; | ||||||
|      |      | ||||||
|     # Bootloader. |     # Bootloader. | ||||||
|   boot.loader.systemd-boot.enable = true; |     loader = { | ||||||
|   boot.loader.efi.canTouchEfiVariables = true; |       systemd-boot.enable = true; | ||||||
|  |       efi.canTouchEfiVariables = true; | ||||||
|  |     }; | ||||||
|  |   }; | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
|   hardware.graphics.enable = true; |   hardware.graphics.enable = true; | ||||||
| 
 | 
 | ||||||
|   fileSystems."/" = |   fileSystems = { | ||||||
|  |     "/" = | ||||||
|       { device = "/dev/disk/by-uuid/866d422b-f816-4ad9-9846-791839cb9337"; |       { device = "/dev/disk/by-uuid/866d422b-f816-4ad9-9846-791839cb9337"; | ||||||
|         fsType = "ext4"; |         fsType = "ext4"; | ||||||
|       }; |       }; | ||||||
| 
 | 
 | ||||||
|   fileSystems."/boot" = |     "/boot" = | ||||||
|       { device = "/dev/disk/by-uuid/E138-65B5"; |       { device = "/dev/disk/by-uuid/E138-65B5"; | ||||||
|         fsType = "vfat"; |         fsType = "vfat"; | ||||||
|       }; |       }; | ||||||
| 
 | 
 | ||||||
|   services.cachefilesd.enable = true; |     "/mnt/leyla_home" = | ||||||
| 
 |  | ||||||
|   fileSystems."/mnt/leyla_home" = |  | ||||||
|       { |       { | ||||||
|         device = "server.arpa:/home/leyla"; |         device = "server.arpa:/home/leyla"; | ||||||
|         fsType = "nfs"; |         fsType = "nfs"; | ||||||
|         options = [ "x-systemd.automount" "user" "nofail" "soft" "x-systemd.idle-timeout=600" "fsc" ]; |         options = [ "x-systemd.automount" "user" "nofail" "soft" "x-systemd.idle-timeout=600" "fsc" ]; | ||||||
|       }; |       }; | ||||||
| 
 | 
 | ||||||
|   fileSystems."/mnt/share_home" = |     "/mnt/share_home" = | ||||||
|       { |       { | ||||||
|         device = "server.arpa:/home/share"; |         device = "server.arpa:/home/share"; | ||||||
|         fsType = "nfs"; |         fsType = "nfs"; | ||||||
|         options = [ "x-systemd.automount" "user" "nofail" "soft" "x-systemd.idle-timeout=600" "fsc" ]; |         options = [ "x-systemd.automount" "user" "nofail" "soft" "x-systemd.idle-timeout=600" "fsc" ]; | ||||||
|       }; |       }; | ||||||
| 
 | 
 | ||||||
|   fileSystems."/mnt/docker_home" = |     "/mnt/docker_home" = | ||||||
|       { |       { | ||||||
|         device = "server.arpa:/home/docker"; |         device = "server.arpa:/home/docker"; | ||||||
|         fsType = "nfs"; |         fsType = "nfs"; | ||||||
|         options = [ "x-systemd.automount" "noauto" "x-systemd.idle-timeout=600" ]; |         options = [ "x-systemd.automount" "noauto" "x-systemd.idle-timeout=600" ]; | ||||||
|       }; |       }; | ||||||
|  |   }; | ||||||
|  | 
 | ||||||
|  |   services.cachefilesd.enable = true; | ||||||
| 
 | 
 | ||||||
|   swapDevices = |   swapDevices = | ||||||
|     [ { device = "/dev/disk/by-uuid/be98e952-a072-4c3a-8c12-69500b5a2fff"; } |     [ { device = "/dev/disk/by-uuid/be98e952-a072-4c3a-8c12-69500b5a2fff"; } | ||||||
|     ]; |     ]; | ||||||
| 
 | 
 | ||||||
|  |   networking = { | ||||||
|     # Enables DHCP on each ethernet and wireless interface. In case of scripted networking |     # Enables DHCP on each ethernet and wireless interface. In case of scripted networking | ||||||
|     # (the default) this is the recommended approach. When using systemd-networkd it's |     # (the default) this is the recommended approach. When using systemd-networkd it's | ||||||
|     # still possible to use this option, but it's recommended to use it in conjunction |     # still possible to use this option, but it's recommended to use it in conjunction | ||||||
|     # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`. |     # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`. | ||||||
|   networking.useDHCP = lib.mkDefault true; |     useDHCP = lib.mkDefault true; | ||||||
|     # networking.interfaces.enp0s20f0u1.useDHCP = lib.mkDefault true; |     # networking.interfaces.enp0s20f0u1.useDHCP = lib.mkDefault true; | ||||||
|     # networking.interfaces.wlp170s0.useDHCP = lib.mkDefault true; |     # networking.interfaces.wlp170s0.useDHCP = lib.mkDefault true; | ||||||
|   networking.hostName = "horizon"; # Define your hostname. |     hostName = "horizon"; # Define your hostname. | ||||||
|  |   }; | ||||||
| 
 | 
 | ||||||
|   nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; |   nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; | ||||||
|   powerManagement.cpuFreqGovernor = lib.mkDefault "powersave"; |   powerManagement.cpuFreqGovernor = lib.mkDefault "powersave"; | ||||||
|  |  | ||||||
|  | @ -1,5 +0,0 @@ | ||||||
| # eve laptop |  | ||||||
| {}:  |  | ||||||
| { |  | ||||||
| 
 |  | ||||||
| } |  | ||||||
|  | @ -11,15 +11,17 @@ | ||||||
|       ../../enviroments/client |       ../../enviroments/client | ||||||
|     ]; |     ]; | ||||||
| 
 | 
 | ||||||
|   users.leyla = { |   users = { | ||||||
|  |     leyla = { | ||||||
|       isFullUser = true; |       isFullUser = true; | ||||||
|       hasPiperMouse = true; |       hasPiperMouse = true; | ||||||
|       hasOpenRGBHardware = true; |       hasOpenRGBHardware = true; | ||||||
|       hasViaKeyboard = true; |       hasViaKeyboard = true; | ||||||
|       hasGPU = true; |       hasGPU = true; | ||||||
|     }; |     }; | ||||||
|   users.ester.isFullUser = true; |     ester.isFullUser = true; | ||||||
|   users.eve.isFullUser = true; |     eve.isFullUser = true; | ||||||
|  |   }; | ||||||
|    |    | ||||||
|   # enabled virtualisation for docker |   # enabled virtualisation for docker | ||||||
|   # virtualisation.docker.enable = true; |   # virtualisation.docker.enable = true; | ||||||
|  |  | ||||||
|  | @ -8,26 +8,35 @@ | ||||||
|     [ (modulesPath + "/installer/scan/not-detected.nix") |     [ (modulesPath + "/installer/scan/not-detected.nix") | ||||||
|     ]; |     ]; | ||||||
| 
 | 
 | ||||||
|   boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ]; |   boot = { | ||||||
|   boot.initrd.kernelModules = [ ]; |     initrd = { | ||||||
|   boot.kernelModules = [ "kvm-amd" "sg" ]; |       availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ]; | ||||||
|   boot.extraModulePackages = [ ]; |       kernelModules = [ ]; | ||||||
|  |     }; | ||||||
|  |     kernelModules = [ "kvm-amd" "sg" ]; | ||||||
|  |     extraModulePackages = [ ]; | ||||||
| 
 | 
 | ||||||
|     # Bootloader. |     # Bootloader. | ||||||
|   boot.loader.systemd-boot.enable = true; |     loader = { | ||||||
|   boot.loader.efi.canTouchEfiVariables = true; |       systemd-boot.enable = true; | ||||||
|    |       efi.canTouchEfiVariables = true; | ||||||
|   # Enable OpenGL |     }; | ||||||
|   hardware.graphics.enable = true; |   }; | ||||||
| 
 | 
 | ||||||
|  |   services.xserver = { | ||||||
|     # Load nvidia driver for Xorg and Wayland |     # Load nvidia driver for Xorg and Wayland | ||||||
|   services.xserver.videoDrivers = ["nvidia"]; |     videoDrivers = ["nvidia"]; | ||||||
| 
 | 
 | ||||||
|     # Use X instead of wayland for gaming reasons |     # Use X instead of wayland for gaming reasons | ||||||
|   services.xserver.displayManager.gdm.wayland = false; |     displayManager.gdm.wayland = false; | ||||||
|  |   }; | ||||||
|  | 
 | ||||||
|  |   hardware = { | ||||||
|  |     # Enable OpenGL | ||||||
|  |     graphics.enable = true; | ||||||
|      |      | ||||||
|     # install graphics drivers |     # install graphics drivers | ||||||
|   hardware.nvidia = { |     nvidia = { | ||||||
|       # Modesetting is required. |       # Modesetting is required. | ||||||
|       modesetting.enable = true; |       modesetting.enable = true; | ||||||
| 
 | 
 | ||||||
|  | @ -57,49 +66,54 @@ | ||||||
|       # Optionally, you may need to select the appropriate driver version for your specific GPU. |       # Optionally, you may need to select the appropriate driver version for your specific GPU. | ||||||
|       package = config.boot.kernelPackages.nvidiaPackages.production; |       package = config.boot.kernelPackages.nvidiaPackages.production; | ||||||
|     }; |     }; | ||||||
|  |   }; | ||||||
| 
 | 
 | ||||||
|   fileSystems."/" = |   fileSystems = { | ||||||
|  |     "/" = | ||||||
|       { device = "/dev/disk/by-uuid/8be49c65-2b57-48f1-b74d-244d26061adb"; |       { device = "/dev/disk/by-uuid/8be49c65-2b57-48f1-b74d-244d26061adb"; | ||||||
|         fsType = "ext4"; |         fsType = "ext4"; | ||||||
|       }; |       }; | ||||||
| 
 | 
 | ||||||
|   fileSystems."/boot" = |     "/boot" = | ||||||
|       { device = "/dev/disk/by-uuid/3006-3867"; |       { device = "/dev/disk/by-uuid/3006-3867"; | ||||||
|         fsType = "vfat"; |         fsType = "vfat"; | ||||||
|         options = [ "fmask=0022" "dmask=0022" ]; |         options = [ "fmask=0022" "dmask=0022" ]; | ||||||
|       }; |       }; | ||||||
|        |        | ||||||
|   fileSystems."/mnt/leyla_home" = |     "/mnt/leyla_home" = | ||||||
|       { |       { | ||||||
|         device = "server.arpa:/home/leyla"; |         device = "server.arpa:/home/leyla"; | ||||||
|         fsType = "nfs"; |         fsType = "nfs"; | ||||||
|         options = [ "x-systemd.automount" "user" "nofail" "soft" "x-systemd.idle-timeout=600" "fsc" ]; |         options = [ "x-systemd.automount" "user" "nofail" "soft" "x-systemd.idle-timeout=600" "fsc" ]; | ||||||
|       }; |       }; | ||||||
| 
 | 
 | ||||||
|   fileSystems."/mnt/share_home" = |     "/mnt/share_home" = | ||||||
|       { |       { | ||||||
|         device = "server.arpa:/home/share"; |         device = "server.arpa:/home/share"; | ||||||
|         fsType = "nfs"; |         fsType = "nfs"; | ||||||
|         options = [ "x-systemd.automount" "user" "nofail" "soft" "x-systemd.idle-timeout=600" "fsc" ]; |         options = [ "x-systemd.automount" "user" "nofail" "soft" "x-systemd.idle-timeout=600" "fsc" ]; | ||||||
|       }; |       }; | ||||||
| 
 | 
 | ||||||
|   fileSystems."/mnt/docker_home" = |     "/mnt/docker_home" = | ||||||
|       { |       { | ||||||
|         device = "server.arpa:/home/docker"; |         device = "server.arpa:/home/docker"; | ||||||
|         fsType = "nfs"; |         fsType = "nfs"; | ||||||
|         options = [ "x-systemd.automount" "noauto" "x-systemd.idle-timeout=600" ]; |         options = [ "x-systemd.automount" "noauto" "x-systemd.idle-timeout=600" ]; | ||||||
|       }; |       }; | ||||||
|  |   }; | ||||||
| 
 | 
 | ||||||
|   swapDevices = [ ]; |   swapDevices = [ ]; | ||||||
| 
 | 
 | ||||||
|  |   networking = { | ||||||
|     # Enables DHCP on each ethernet and wireless interface. In case of scripted networking |     # Enables DHCP on each ethernet and wireless interface. In case of scripted networking | ||||||
|     # (the default) this is the recommended approach. When using systemd-networkd it's |     # (the default) this is the recommended approach. When using systemd-networkd it's | ||||||
|     # still possible to use this option, but it's recommended to use it in conjunction |     # still possible to use this option, but it's recommended to use it in conjunction | ||||||
|     # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`. |     # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`. | ||||||
|   networking.useDHCP = lib.mkDefault true; |     useDHCP = lib.mkDefault true; | ||||||
|     # networking.interfaces.enp42s0.useDHCP = lib.mkDefault true; |     # networking.interfaces.enp42s0.useDHCP = lib.mkDefault true; | ||||||
|     # networking.interfaces.wlp5s0.useDHCP = lib.mkDefault true; |     # networking.interfaces.wlp5s0.useDHCP = lib.mkDefault true; | ||||||
|   networking.hostName = "twilight"; # Define your hostname. |     hostName = "twilight"; # Define your hostname. | ||||||
|  |   }; | ||||||
| 
 | 
 | ||||||
|   nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; |   nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; | ||||||
|   hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; |   hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; | ||||||
|  |  | ||||||
|  | @ -1,4 +1,4 @@ | ||||||
| { ... }: | _: | ||||||
| { | { | ||||||
|   nixpkgs.overlays = [ |   nixpkgs.overlays = [ | ||||||
|     (self: super: { |     (self: super: { | ||||||
|  |  | ||||||
|  | @ -1,4 +1,4 @@ | ||||||
| { ... }: | _: | ||||||
| { | { | ||||||
|   nixpkgs.overlays = [ |   nixpkgs.overlays = [ | ||||||
|     (self: super: { |     (self: super: { | ||||||
|  |  | ||||||
|  | @ -0,0 +1,2 @@ | ||||||
|  | _: | ||||||
|  | {} | ||||||
|  | @ -3,8 +3,9 @@ | ||||||
| { | { | ||||||
|   # Home Manager needs a bit of information about you and the paths it should |   # Home Manager needs a bit of information about you and the paths it should | ||||||
|   # manage. |   # manage. | ||||||
|   home.username = "leyla"; |   home = { | ||||||
|   home.homeDirectory = "/home/leyla"; |     username = "leyla"; | ||||||
|  |     homeDirectory = "/home/leyla"; | ||||||
| 
 | 
 | ||||||
|     # This value determines the Home Manager release that your configuration is |     # This value determines the Home Manager release that your configuration is | ||||||
|     # compatible with. This helps avoid breakage when a new Home Manager release |     # compatible with. This helps avoid breakage when a new Home Manager release | ||||||
|  | @ -13,11 +14,11 @@ | ||||||
|     # You should not change this value, even if you update Home Manager. If you do |     # You should not change this value, even if you update Home Manager. If you do | ||||||
|     # want to update the value, then make sure to first check the Home Manager |     # want to update the value, then make sure to first check the Home Manager | ||||||
|     # release notes. |     # release notes. | ||||||
|   home.stateVersion = "23.11"; # Please read the comment before changing. |     stateVersion = "23.11"; # Please read the comment before changing. | ||||||
| 
 | 
 | ||||||
|     # The home.packages option allows you to install Nix packages into your |     # The home.packages option allows you to install Nix packages into your | ||||||
|     # environment. |     # environment. | ||||||
|   home.packages = [ |     packages = [ | ||||||
|       # # Adds the 'hello' command to your environment. It prints a friendly |       # # Adds the 'hello' command to your environment. It prints a friendly | ||||||
|       # # "Hello, world!" when run. |       # # "Hello, world!" when run. | ||||||
|       # pkgs.hello |       # pkgs.hello | ||||||
|  | @ -38,7 +39,7 @@ | ||||||
| 
 | 
 | ||||||
|     # Home Manager is pretty good at managing dotfiles. The primary way to manage |     # Home Manager is pretty good at managing dotfiles. The primary way to manage | ||||||
|     # plain files is through 'home.file'. |     # plain files is through 'home.file'. | ||||||
|   home.file = { |     file = { | ||||||
|       # # Building this configuration will create a copy of 'dotfiles/screenrc' in |       # # Building this configuration will create a copy of 'dotfiles/screenrc' in | ||||||
|       # # the Nix store. Activating the configuration will then make '~/.screenrc' a |       # # the Nix store. Activating the configuration will then make '~/.screenrc' a | ||||||
|       # # symlink to the Nix store copy. |       # # symlink to the Nix store copy. | ||||||
|  | @ -66,9 +67,10 @@ | ||||||
|     # |     # | ||||||
|     #  /etc/profiles/per-user/leyla/etc/profile.d/hm-session-vars.sh |     #  /etc/profiles/per-user/leyla/etc/profile.d/hm-session-vars.sh | ||||||
|     # |     # | ||||||
|   home.sessionVariables = { |     sessionVariables = { | ||||||
|       # EDITOR = "emacs"; |       # EDITOR = "emacs"; | ||||||
|     }; |     }; | ||||||
|  |   }; | ||||||
| 
 | 
 | ||||||
|   programs = { |   programs = { | ||||||
|   # Let Home Manager install and manage itself. |   # Let Home Manager install and manage itself. | ||||||
|  |  | ||||||
|  | @ -8,19 +8,21 @@ in | ||||||
|     ../../overlays/vscodium.nix |     ../../overlays/vscodium.nix | ||||||
|   ]; |   ]; | ||||||
| 
 | 
 | ||||||
|   programs.bash.shellAliases = lib.mkIf cfg.isFullUser ({ |   programs = { | ||||||
|  |     bash.shellAliases = lib.mkIf cfg.isFullUser { | ||||||
|       code = "codium"; |       code = "codium"; | ||||||
|   }); |     }; | ||||||
| 
 | 
 | ||||||
|   programs.steam = lib.mkIf cfg.isFullUser ({ |     steam = lib.mkIf cfg.isFullUser { | ||||||
|       enable = true; |       enable = true; | ||||||
|       remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play |       remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play | ||||||
|       dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server |       dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server | ||||||
|   }); |     }; | ||||||
| 
 | 
 | ||||||
|   programs.noisetorch.enable = cfg.isFullUser; |     noisetorch.enable = cfg.isFullUser; | ||||||
| 
 | 
 | ||||||
|   programs.adb.enable = cfg.isFullUser; |     adb.enable = cfg.isFullUser; | ||||||
|  |   }; | ||||||
| 
 | 
 | ||||||
|   users.users.leyla.packages = lib.mkIf (cfg.isFullUser || cfg.isThinUser) ( |   users.users.leyla.packages = lib.mkIf (cfg.isFullUser || cfg.isThinUser) ( | ||||||
|     lib.mkMerge [ |     lib.mkMerge [ | ||||||
|  |  | ||||||
|  | @ -1,8 +1,8 @@ | ||||||
| { lib, ... }: | _: | ||||||
| { | { | ||||||
|   mkUnless = condition: then: (mkIf (!condition) then); |   # mkUnless = condition: then: (mkIf (!condition) then); | ||||||
|   mkIfElse = condition: then: else: lib.mkMerge [ |   # mkIfElse = condition: then: else: lib.mkMerge [ | ||||||
|     (mkIf condition then) |   #   (mkIf condition then) | ||||||
|     (mkUnless condition else) |   #   (mkUnless condition else) | ||||||
|   ]; |   # ]; | ||||||
| } | } | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue