forked from jan-leila/nix-config
		
	ran statix linter
This commit is contained in:
		
							parent
							
								
									11603852f4
								
							
						
					
					
						commit
						0b1309dd0f
					
				
					 16 changed files with 376 additions and 329 deletions
				
			
		|  | @ -4,43 +4,50 @@ | ||||||
|     ../common |     ../common | ||||||
|   ]; |   ]; | ||||||
| 
 | 
 | ||||||
|   # Enable CUPS to print documents. |   services = { | ||||||
|   services.printing.enable = true; |  | ||||||
| 
 | 
 | ||||||
|   # Enable the X11 windowing system. |     # Enable CUPS to print documents. | ||||||
|   services.xserver.enable = true; |     printing.enable = true; | ||||||
| 
 | 
 | ||||||
|   # Enable the GNOME Desktop Environment. |     xserver = { | ||||||
|   services.xserver.displayManager.gdm.enable = true; |       # Enable the X11 windowing system. | ||||||
|   services.xserver.desktopManager.gnome.enable = true; |       enable = true; | ||||||
|   services.xserver.desktopManager.xterm.enable = false; |  | ||||||
| 
 | 
 | ||||||
|   # Get rid of xTerm |       # Enable the GNOME Desktop Environment. | ||||||
|   services.xserver.excludePackages = [ pkgs.xterm ]; |       displayManager.gdm.enable = true; | ||||||
|  |       desktopManager = { | ||||||
|  |         gnome.enable = true; | ||||||
|  |         xterm.enable = false; | ||||||
|  |       }; | ||||||
| 
 | 
 | ||||||
|   # Configure keymap in X11 |       # Get rid of xTerm | ||||||
|   services.xserver = { |       excludePackages = [ pkgs.xterm ]; | ||||||
|     xkb = { | 
 | ||||||
|       layout = "us,it,de"; |       # Configure keymap in X11 | ||||||
|       variant = ""; |       xkb = { | ||||||
|  |         layout = "us,it,de"; | ||||||
|  |         variant = ""; | ||||||
|  |       }; | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|  |     pipewire = { | ||||||
|  |       enable = true; | ||||||
|  |       alsa.enable = true; | ||||||
|  |       alsa.support32Bit = true; | ||||||
|  |       pulse.enable = true; | ||||||
|  |       # If you want to use JACK applications, uncomment this | ||||||
|  |       #jack.enable = true; | ||||||
|  | 
 | ||||||
|  |       # use the example session manager (no others are packaged yet so this is enabled by default, | ||||||
|  |       # no need to redefine it in your config for now) | ||||||
|  |       #media-session.enable = true; | ||||||
|     }; |     }; | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
|   # Enable sound with pipewire. |   # Enable sound with pipewire. | ||||||
|   hardware.pulseaudio.enable = false; |   hardware.pulseaudio.enable = false; | ||||||
|   security.rtkit.enable = true; |   security.rtkit.enable = true; | ||||||
|   services.pipewire = { |  | ||||||
|     enable = true; |  | ||||||
|     alsa.enable = true; |  | ||||||
|     alsa.support32Bit = true; |  | ||||||
|     pulse.enable = true; |  | ||||||
|     # If you want to use JACK applications, uncomment this |  | ||||||
|     #jack.enable = true; |  | ||||||
| 
 |  | ||||||
|     # use the example session manager (no others are packaged yet so this is enabled by default, |  | ||||||
|     # no need to redefine it in your config for now) |  | ||||||
|     #media-session.enable = true; |  | ||||||
|   }; |  | ||||||
| 
 | 
 | ||||||
|   environment.systemPackages = with pkgs; [ |   environment.systemPackages = with pkgs; [ | ||||||
|     # helvetica font |     # helvetica font | ||||||
|  |  | ||||||
|  | @ -23,83 +23,91 @@ | ||||||
|   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; | ||||||
| 
 | 
 | ||||||
|   # temp enable desktop enviroment for setup |   services = { | ||||||
|   # Enable the X11 windowing system. |     zfs = { | ||||||
|   services.xserver.enable = true; |       autoScrub.enable = true; | ||||||
|  |       autoSnapshot.enable = true; | ||||||
|  |     }; | ||||||
|      |      | ||||||
|   # Enable the GNOME Desktop Environment. |     # temp enable desktop enviroment for setup | ||||||
|   services.xserver.displayManager.gdm.enable = true; |     # Enable the X11 windowing system. | ||||||
|   services.xserver.desktopManager.gnome.enable = true; |     xserver = { | ||||||
|   services.xserver.desktopManager.xterm.enable = false; |       enable = true; | ||||||
| 
 | 
 | ||||||
|   # Get rid of xTerm |       # Enable the GNOME Desktop Environment. | ||||||
|   services.xserver.excludePackages = [ pkgs.xterm ]; |       services.xserver.displayManager = { | ||||||
|  |         gdm.enable = true; | ||||||
|  |       }; | ||||||
|  |       services.xserver.desktopManager = { | ||||||
|  |         gnome.enable = true; | ||||||
|  |         desktopManager.xterm.enable = false; | ||||||
|  |       }; | ||||||
| 
 | 
 | ||||||
|   # disable computer sleeping |       # Get rid of xTerm | ||||||
|   systemd.targets.sleep.enable = false; |       excludePackages = [ pkgs.xterm ]; | ||||||
|   systemd.targets.suspend.enable = false; |     }; | ||||||
|   systemd.targets.hibernate.enable = false; |  | ||||||
|   systemd.targets.hybrid-sleep.enable = false; |  | ||||||
| 
 | 
 | ||||||
|   services.openssh = { |     openssh = { | ||||||
|     enable = true; |       enable = true; | ||||||
|     ports = [ 22 ]; |       ports = [ 22 ]; | ||||||
|     settings = { |       settings = { | ||||||
|       PasswordAuthentication = false; |         PasswordAuthentication = false; | ||||||
|       AllowUsers = [ "leyla" ]; # Allows all users by default. Can be [ "user1" "user2" ] |         AllowUsers = [ "leyla" ]; # Allows all users by default. Can be [ "user1" "user2" ] | ||||||
|       UseDns = true; |         UseDns = true; | ||||||
|       X11Forwarding = false; |         X11Forwarding = false; | ||||||
|  |       }; | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|  |     nfs.server = { | ||||||
|  |       enable = true; | ||||||
|  |       exports = '' | ||||||
|  |         /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/eve   192.168.1.0/22(rw,sync,no_subtree_check,crossmnt) | ||||||
|  |         /srv/nfs4/share 192.168.1.0/22(rw,sync,no_subtree_check,crossmnt) | ||||||
|  |          | ||||||
|  |         # /export         192.168.1.10(rw,fsid=0,no_subtree_check) 192.168.1.15(rw,fsid=0,no_subtree_check) | ||||||
|  |         # /export/kotomi  192.168.1.10(rw,nohide,insecure,no_subtree_check) 192.168.1.15(rw,nohide,insecure,no_subtree_check) | ||||||
|  |         # /export/mafuyu  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) | ||||||
|  |       ''; | ||||||
|     }; |     }; | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|   fileSystems."/srv/nfs4/docker" = { |   # disable computer sleeping | ||||||
|     device = "/home/docker"; |   systemd.targets = { | ||||||
|     options = [ "bind" ]; |     sleep.enable = false; | ||||||
|  |     suspend.enable = false; | ||||||
|  |     hibernate.enable = false; | ||||||
|  |     hybrid-sleep.enable = false; | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|   fileSystems."/srv/nfs4/users" = { |   fileSystems = { | ||||||
|     device = "/home/users"; |     "/srv/nfs4/docker" = { | ||||||
|     options = [ "bind" ]; |       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" ]; | ||||||
|  |     }; | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|   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/leyla 192.168.1.0/22(rw,sync,no_subtree_check,nohide) |  | ||||||
|     /srv/nfs4/eve   192.168.1.0/22(rw,sync,no_subtree_check,crossmnt) |  | ||||||
|     /srv/nfs4/share 192.168.1.0/22(rw,sync,no_subtree_check,crossmnt) |  | ||||||
|      |  | ||||||
|     # /export         192.168.1.10(rw,fsid=0,no_subtree_check) 192.168.1.15(rw,fsid=0,no_subtree_check) |  | ||||||
|     # /export/kotomi  192.168.1.10(rw,nohide,insecure,no_subtree_check) 192.168.1.15(rw,nohide,insecure,no_subtree_check) |  | ||||||
|     # /export/mafuyu  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) |  | ||||||
|   ''; |  | ||||||
| 
 |  | ||||||
|   # 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 | ||||||
|   # on your system were taken. It‘s perfectly fine and recommended to leave |   # on your system were taken. It‘s perfectly fine and recommended to leave | ||||||
|  |  | ||||||
|  | @ -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 = [ ]; | ||||||
| 
 | 
 | ||||||
|   # Enables DHCP on each ethernet and wireless interface. In case of scripted networking |   networking = { | ||||||
|   # (the default) this is the recommended approach. When using systemd-networkd it's |     # Enables DHCP on each ethernet and wireless interface. In case of scripted networking | ||||||
|   # still possible to use this option, but it's recommended to use it in conjunction |     # (the default) this is the recommended approach. When using systemd-networkd it's | ||||||
|   # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`. |     # still possible to use this option, but it's recommended to use it in conjunction | ||||||
|   networking.useDHCP = lib.mkDefault true; |     # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`. | ||||||
|   # networking.interfaces.eno1.useDHCP = lib.mkDefault true; |     useDHCP = lib.mkDefault true; | ||||||
|   # networking.interfaces.eno2.useDHCP = lib.mkDefault true; |     # networking.interfaces.eno1.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. | ||||||
|  |     loader = { | ||||||
|  |       systemd-boot.enable = true; | ||||||
|  |       efi.canTouchEfiVariables = true; | ||||||
|  |     }; | ||||||
|  |   }; | ||||||
| 
 | 
 | ||||||
|   # Bootloader. |  | ||||||
|   boot.loader.systemd-boot.enable = true; |  | ||||||
|   boot.loader.efi.canTouchEfiVariables = true; |  | ||||||
| 
 | 
 | ||||||
|   hardware.graphics.enable = true; |   hardware.graphics.enable = true; | ||||||
| 
 | 
 | ||||||
|   fileSystems."/" = |   fileSystems = { | ||||||
|     { device = "/dev/disk/by-uuid/866d422b-f816-4ad9-9846-791839cb9337"; |     "/" = | ||||||
|       fsType = "ext4"; |       { device = "/dev/disk/by-uuid/866d422b-f816-4ad9-9846-791839cb9337"; | ||||||
|     }; |         fsType = "ext4"; | ||||||
|  |       }; | ||||||
| 
 | 
 | ||||||
|   fileSystems."/boot" = |     "/boot" = | ||||||
|     { device = "/dev/disk/by-uuid/E138-65B5"; |       { device = "/dev/disk/by-uuid/E138-65B5"; | ||||||
|       fsType = "vfat"; |         fsType = "vfat"; | ||||||
|     }; |       }; | ||||||
|  | 
 | ||||||
|  |     "/mnt/leyla_home" = | ||||||
|  |       { | ||||||
|  |         device = "server.arpa:/home/leyla"; | ||||||
|  |         fsType = "nfs"; | ||||||
|  |         options = [ "x-systemd.automount" "user" "nofail" "soft" "x-systemd.idle-timeout=600" "fsc" ]; | ||||||
|  |       }; | ||||||
|  | 
 | ||||||
|  |     "/mnt/share_home" = | ||||||
|  |       { | ||||||
|  |         device = "server.arpa:/home/share"; | ||||||
|  |         fsType = "nfs"; | ||||||
|  |         options = [ "x-systemd.automount" "user" "nofail" "soft" "x-systemd.idle-timeout=600" "fsc" ]; | ||||||
|  |       }; | ||||||
|  | 
 | ||||||
|  |     "/mnt/docker_home" = | ||||||
|  |       { | ||||||
|  |         device = "server.arpa:/home/docker"; | ||||||
|  |         fsType = "nfs"; | ||||||
|  |         options = [ "x-systemd.automount" "noauto" "x-systemd.idle-timeout=600" ]; | ||||||
|  |       }; | ||||||
|  |   }; | ||||||
| 
 | 
 | ||||||
|   services.cachefilesd.enable = true; |   services.cachefilesd.enable = true; | ||||||
| 
 | 
 | ||||||
|   fileSystems."/mnt/leyla_home" = |  | ||||||
|     { |  | ||||||
|       device = "server.arpa:/home/leyla"; |  | ||||||
|       fsType = "nfs"; |  | ||||||
|       options = [ "x-systemd.automount" "user" "nofail" "soft" "x-systemd.idle-timeout=600" "fsc" ]; |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|   fileSystems."/mnt/share_home" = |  | ||||||
|     { |  | ||||||
|       device = "server.arpa:/home/share"; |  | ||||||
|       fsType = "nfs"; |  | ||||||
|       options = [ "x-systemd.automount" "user" "nofail" "soft" "x-systemd.idle-timeout=600" "fsc" ]; |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|   fileSystems."/mnt/docker_home" = |  | ||||||
|     { |  | ||||||
|       device = "server.arpa:/home/docker"; |  | ||||||
|       fsType = "nfs"; |  | ||||||
|       options = [ "x-systemd.automount" "noauto" "x-systemd.idle-timeout=600" ]; |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|   swapDevices = |   swapDevices = | ||||||
|     [ { device = "/dev/disk/by-uuid/be98e952-a072-4c3a-8c12-69500b5a2fff"; } |     [ { device = "/dev/disk/by-uuid/be98e952-a072-4c3a-8c12-69500b5a2fff"; } | ||||||
|     ]; |     ]; | ||||||
| 
 | 
 | ||||||
|   # Enables DHCP on each ethernet and wireless interface. In case of scripted networking |   networking = { | ||||||
|   # (the default) this is the recommended approach. When using systemd-networkd it's |     # Enables DHCP on each ethernet and wireless interface. In case of scripted networking | ||||||
|   # still possible to use this option, but it's recommended to use it in conjunction |     # (the default) this is the recommended approach. When using systemd-networkd it's | ||||||
|   # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`. |     # still possible to use this option, but it's recommended to use it in conjunction | ||||||
|   networking.useDHCP = lib.mkDefault true; |     # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`. | ||||||
|   # networking.interfaces.enp0s20f0u1.useDHCP = lib.mkDefault true; |     useDHCP = lib.mkDefault true; | ||||||
|   # networking.interfaces.wlp170s0.useDHCP = lib.mkDefault true; |     # networking.interfaces.enp0s20f0u1.useDHCP = lib.mkDefault true; | ||||||
|   networking.hostName = "horizon"; # Define your hostname. |     # networking.interfaces.wlp170s0.useDHCP = lib.mkDefault true; | ||||||
|  |     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 = { | ||||||
|     isFullUser = true; |     leyla = { | ||||||
|     hasPiperMouse = true; |       isFullUser = true; | ||||||
|     hasOpenRGBHardware = true; |       hasPiperMouse = true; | ||||||
|     hasViaKeyboard = true; |       hasOpenRGBHardware = true; | ||||||
|     hasGPU = true; |       hasViaKeyboard = true; | ||||||
|  |       hasGPU = true; | ||||||
|  |     }; | ||||||
|  |     ester.isFullUser = true; | ||||||
|  |     eve.isFullUser = true; | ||||||
|   }; |   }; | ||||||
|   users.ester.isFullUser = true; |  | ||||||
|   users.eve.isFullUser = true; |  | ||||||
|    |    | ||||||
|   # enabled virtualisation for docker |   # enabled virtualisation for docker | ||||||
|   # virtualisation.docker.enable = true; |   # virtualisation.docker.enable = true; | ||||||
|  |  | ||||||
|  | @ -8,98 +8,112 @@ | ||||||
|     [ (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; |  | ||||||
| 
 |  | ||||||
|   # Load nvidia driver for Xorg and Wayland |  | ||||||
|   services.xserver.videoDrivers = ["nvidia"]; |  | ||||||
| 
 |  | ||||||
|   # Use X instead of wayland for gaming reasons |  | ||||||
|   services.xserver.displayManager.gdm.wayland = false; |  | ||||||
|    |  | ||||||
|   # install graphics drivers |  | ||||||
|   hardware.nvidia = { |  | ||||||
|     # Modesetting is required. |  | ||||||
|     modesetting.enable = true; |  | ||||||
| 
 |  | ||||||
|     # Nvidia power management. Experimental, and can cause sleep/suspend to fail. |  | ||||||
|     # Enable this if you have graphical corruption issues or application crashes after waking |  | ||||||
|     # up from sleep. This fixes it by saving the entire VRAM memory to /tmp/ instead  |  | ||||||
|     # of just the bare essentials. |  | ||||||
|     powerManagement.enable = false; |  | ||||||
| 
 |  | ||||||
|     # Fine-grained power management. Turns off GPU when not in use. |  | ||||||
|     # Experimental and only works on modern Nvidia GPUs (Turing or newer). |  | ||||||
|     powerManagement.finegrained = false; |  | ||||||
| 
 |  | ||||||
|     # Use the NVidia open source kernel module (not to be confused with the |  | ||||||
|     # independent third-party "nouveau" open source driver). |  | ||||||
|     # Support is limited to the Turing and later architectures. Full list of  |  | ||||||
|     # supported GPUs is at:  |  | ||||||
|     # https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus  |  | ||||||
|     # Only available from driver 515.43.04+ |  | ||||||
|     # Currently alpha-quality/buggy, so false is currently the recommended setting. |  | ||||||
|     open = false; |  | ||||||
| 
 |  | ||||||
|     # Enable the Nvidia settings menu, |  | ||||||
| 	# accessible via `nvidia-settings`. |  | ||||||
|     nvidiaSettings = true; |  | ||||||
| 
 |  | ||||||
|     # Optionally, you may need to select the appropriate driver version for your specific GPU. |  | ||||||
|     package = config.boot.kernelPackages.nvidiaPackages.production; |  | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|   fileSystems."/" = |   services.xserver = { | ||||||
|     { device = "/dev/disk/by-uuid/8be49c65-2b57-48f1-b74d-244d26061adb"; |     # Load nvidia driver for Xorg and Wayland | ||||||
|       fsType = "ext4"; |     videoDrivers = ["nvidia"]; | ||||||
|     }; |  | ||||||
| 
 | 
 | ||||||
|   fileSystems."/boot" = |     # Use X instead of wayland for gaming reasons | ||||||
|     { device = "/dev/disk/by-uuid/3006-3867"; |     displayManager.gdm.wayland = false; | ||||||
|       fsType = "vfat"; |   }; | ||||||
|       options = [ "fmask=0022" "dmask=0022" ]; |  | ||||||
|     }; |  | ||||||
| 
 | 
 | ||||||
|   fileSystems."/mnt/leyla_home" = |   hardware = { | ||||||
|     { |     # Enable OpenGL | ||||||
|       device = "server.arpa:/home/leyla"; |     graphics.enable = true; | ||||||
|       fsType = "nfs"; |  | ||||||
|       options = [ "x-systemd.automount" "user" "nofail" "soft" "x-systemd.idle-timeout=600" "fsc" ]; |  | ||||||
|     }; |  | ||||||
|      |      | ||||||
|   fileSystems."/mnt/share_home" = |     # install graphics drivers | ||||||
|     { |     nvidia = { | ||||||
|       device = "server.arpa:/home/share"; |       # Modesetting is required. | ||||||
|       fsType = "nfs"; |       modesetting.enable = true; | ||||||
|       options = [ "x-systemd.automount" "user" "nofail" "soft" "x-systemd.idle-timeout=600" "fsc" ]; |  | ||||||
|     }; |  | ||||||
| 
 | 
 | ||||||
|   fileSystems."/mnt/docker_home" = |       # Nvidia power management. Experimental, and can cause sleep/suspend to fail. | ||||||
|     { |       # Enable this if you have graphical corruption issues or application crashes after waking | ||||||
|       device = "server.arpa:/home/docker"; |       # up from sleep. This fixes it by saving the entire VRAM memory to /tmp/ instead  | ||||||
|       fsType = "nfs"; |       # of just the bare essentials. | ||||||
|       options = [ "x-systemd.automount" "noauto" "x-systemd.idle-timeout=600" ]; |       powerManagement.enable = false; | ||||||
|  | 
 | ||||||
|  |       # Fine-grained power management. Turns off GPU when not in use. | ||||||
|  |       # Experimental and only works on modern Nvidia GPUs (Turing or newer). | ||||||
|  |       powerManagement.finegrained = false; | ||||||
|  | 
 | ||||||
|  |       # Use the NVidia open source kernel module (not to be confused with the | ||||||
|  |       # independent third-party "nouveau" open source driver). | ||||||
|  |       # Support is limited to the Turing and later architectures. Full list of  | ||||||
|  |       # supported GPUs is at:  | ||||||
|  |       # https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus  | ||||||
|  |       # Only available from driver 515.43.04+ | ||||||
|  |       # Currently alpha-quality/buggy, so false is currently the recommended setting. | ||||||
|  |       open = false; | ||||||
|  | 
 | ||||||
|  |       # Enable the Nvidia settings menu, | ||||||
|  |     # accessible via `nvidia-settings`. | ||||||
|  |       nvidiaSettings = true; | ||||||
|  | 
 | ||||||
|  |       # Optionally, you may need to select the appropriate driver version for your specific GPU. | ||||||
|  |       package = config.boot.kernelPackages.nvidiaPackages.production; | ||||||
|     }; |     }; | ||||||
|  |   }; | ||||||
|  | 
 | ||||||
|  |   fileSystems = { | ||||||
|  |     "/" = | ||||||
|  |       { device = "/dev/disk/by-uuid/8be49c65-2b57-48f1-b74d-244d26061adb"; | ||||||
|  |         fsType = "ext4"; | ||||||
|  |       }; | ||||||
|  | 
 | ||||||
|  |     "/boot" = | ||||||
|  |       { device = "/dev/disk/by-uuid/3006-3867"; | ||||||
|  |         fsType = "vfat"; | ||||||
|  |         options = [ "fmask=0022" "dmask=0022" ]; | ||||||
|  |       }; | ||||||
|  |        | ||||||
|  |     "/mnt/leyla_home" = | ||||||
|  |       { | ||||||
|  |         device = "server.arpa:/home/leyla"; | ||||||
|  |         fsType = "nfs"; | ||||||
|  |         options = [ "x-systemd.automount" "user" "nofail" "soft" "x-systemd.idle-timeout=600" "fsc" ]; | ||||||
|  |       }; | ||||||
|  | 
 | ||||||
|  |     "/mnt/share_home" = | ||||||
|  |       { | ||||||
|  |         device = "server.arpa:/home/share"; | ||||||
|  |         fsType = "nfs"; | ||||||
|  |         options = [ "x-systemd.automount" "user" "nofail" "soft" "x-systemd.idle-timeout=600" "fsc" ]; | ||||||
|  |       }; | ||||||
|  | 
 | ||||||
|  |     "/mnt/docker_home" = | ||||||
|  |       { | ||||||
|  |         device = "server.arpa:/home/docker"; | ||||||
|  |         fsType = "nfs"; | ||||||
|  |         options = [ "x-systemd.automount" "noauto" "x-systemd.idle-timeout=600" ]; | ||||||
|  |       }; | ||||||
|  |   }; | ||||||
| 
 | 
 | ||||||
|   swapDevices = [ ]; |   swapDevices = [ ]; | ||||||
| 
 | 
 | ||||||
|   # Enables DHCP on each ethernet and wireless interface. In case of scripted networking |   networking = { | ||||||
|   # (the default) this is the recommended approach. When using systemd-networkd it's |     # Enables DHCP on each ethernet and wireless interface. In case of scripted networking | ||||||
|   # still possible to use this option, but it's recommended to use it in conjunction |     # (the default) this is the recommended approach. When using systemd-networkd it's | ||||||
|   # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`. |     # still possible to use this option, but it's recommended to use it in conjunction | ||||||
|   networking.useDHCP = lib.mkDefault true; |     # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`. | ||||||
|   # networking.interfaces.enp42s0.useDHCP = lib.mkDefault true; |     useDHCP = lib.mkDefault true; | ||||||
|   # networking.interfaces.wlp5s0.useDHCP = lib.mkDefault true; |     # networking.interfaces.enp42s0.useDHCP = lib.mkDefault true; | ||||||
|   networking.hostName = "twilight"; # Define your hostname. |     # networking.interfaces.wlp5s0.useDHCP = lib.mkDefault true; | ||||||
|  |     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,71 +3,73 @@ | ||||||
| { | { | ||||||
|   # 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 | ||||||
|   # introduces backwards incompatible changes. |     # introduces backwards incompatible changes. | ||||||
|   # |     # | ||||||
|   # 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 | ||||||
| 
 | 
 | ||||||
|     # # It is sometimes useful to fine-tune packages, for example, by applying |       # # It is sometimes useful to fine-tune packages, for example, by applying | ||||||
|     # # overrides. You can do that directly here, just don't forget the |       # # overrides. You can do that directly here, just don't forget the | ||||||
|     # # parentheses. Maybe you want to install Nerd Fonts with a limited number of |       # # parentheses. Maybe you want to install Nerd Fonts with a limited number of | ||||||
|     # # fonts? |       # # fonts? | ||||||
|     # (pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; }) |       # (pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; }) | ||||||
| 
 | 
 | ||||||
|     # # You can also create simple shell scripts directly inside your |       # # You can also create simple shell scripts directly inside your | ||||||
|     # # configuration. For example, this adds a command 'my-hello' to your |       # # configuration. For example, this adds a command 'my-hello' to your | ||||||
|     # # environment: |       # # environment: | ||||||
|     # (pkgs.writeShellScriptBin "my-hello" '' |       # (pkgs.writeShellScriptBin "my-hello" '' | ||||||
|     #   echo "Hello, ${config.home.username}!" |       #   echo "Hello, ${config.home.username}!" | ||||||
|     # '') |       # '') | ||||||
|   ]; |     ]; | ||||||
| 
 | 
 | ||||||
|   # 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. | ||||||
|     # ".screenrc".source = dotfiles/screenrc; |       # ".screenrc".source = dotfiles/screenrc; | ||||||
| 
 | 
 | ||||||
|     # # You can also set the file content immediately. |       # # You can also set the file content immediately. | ||||||
|     # ".gradle/gradle.properties".text = '' |       # ".gradle/gradle.properties".text = '' | ||||||
|     #   org.gradle.console=verbose |       #   org.gradle.console=verbose | ||||||
|     #   org.gradle.daemon.idletimeout=3600000 |       #   org.gradle.daemon.idletimeout=3600000 | ||||||
|     # ''; |       # ''; | ||||||
|   }; |     }; | ||||||
| 
 | 
 | ||||||
|   # Home Manager can also manage your environment variables through |     # Home Manager can also manage your environment variables through | ||||||
|   # 'home.sessionVariables'. If you don't want to manage your shell through Home |     # 'home.sessionVariables'. If you don't want to manage your shell through Home | ||||||
|   # Manager then you have to manually source 'hm-session-vars.sh' located at |     # Manager then you have to manually source 'hm-session-vars.sh' located at | ||||||
|   # either |     # either | ||||||
|   # |     # | ||||||
|   #  ~/.nix-profile/etc/profile.d/hm-session-vars.sh |     #  ~/.nix-profile/etc/profile.d/hm-session-vars.sh | ||||||
|   # |     # | ||||||
|   # or |     # or | ||||||
|   # |     # | ||||||
|   #  ~/.local/state/nix/profiles/profile/etc/profile.d/hm-session-vars.sh |     #  ~/.local/state/nix/profiles/profile/etc/profile.d/hm-session-vars.sh | ||||||
|   # |     # | ||||||
|   # or |     # or | ||||||
|   # |     # | ||||||
|   #  /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 = { | ||||||
|  |  | ||||||
|  | @ -8,19 +8,21 @@ in | ||||||
|     ../../overlays/vscodium.nix |     ../../overlays/vscodium.nix | ||||||
|   ]; |   ]; | ||||||
| 
 | 
 | ||||||
|   programs.bash.shellAliases = lib.mkIf cfg.isFullUser ({ |   programs = { | ||||||
|     code = "codium"; |     bash.shellAliases = lib.mkIf cfg.isFullUser { | ||||||
|   }); |       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