reduced tech debt by moving things into hardware configs
This commit is contained in:
		
							parent
							
								
									88ab5420eb
								
							
						
					
					
						commit
						e338b8eac5
					
				
					 5 changed files with 58 additions and 97 deletions
				
			
		|  | @ -17,13 +17,11 @@ | ||||||
| `./rebuild.sh` | `./rebuild.sh` | ||||||
| 
 | 
 | ||||||
| # New machine setup | # New machine setup | ||||||
| 
 | keys for decrypting password secrets for each users located at `/var/lib/sops-nix/key.txt` | ||||||
| keys for decrypting password secrets for each users located at ~/.config/sops/age/keys.txt |  | ||||||
| > TODO: `keys.txt`` should prob be readable by owning user only? |  | ||||||
| 
 | 
 | ||||||
| updating passwords: `sops secrets/secrets.yaml` | updating passwords: `sops secrets/secrets.yaml` | ||||||
| 
 | 
 | ||||||
| `nix run github:nix-community/nixos-anywhere/69ad3f4a50cfb711048f54013404762c9a8e201e -- --flake '.#defiant' nixos@192.168.1.130 --extra-files ~/.config/sops/age/` | `nix run github:nix-community/nixos-anywhere/69ad3f4a50cfb711048f54013404762c9a8e201e -- --flake '.#hostname' nixos@192.168.1.130 --extra-files ~/.config/sops/age/` | ||||||
| 
 | 
 | ||||||
| > how the current config was set up https://www.youtube.com/watch?v=G5f6GC7SnhU | > how the current config was set up https://www.youtube.com/watch?v=G5f6GC7SnhU | ||||||
| 
 | 
 | ||||||
|  | @ -44,9 +42,8 @@ updating passwords: `sops secrets/secrets.yaml` | ||||||
| - allowUnfree should be dynamically enabled by the users whenever they need them (this isnt enabled at all right now for some reason???) | - allowUnfree should be dynamically enabled by the users whenever they need them (this isnt enabled at all right now for some reason???) | ||||||
| - GNOME default monitors per hardware configuration? | - GNOME default monitors per hardware configuration? | ||||||
| - graphics driver things should prob be in the hardware-configuration.nix | - graphics driver things should prob be in the hardware-configuration.nix | ||||||
| - what does `boot.kernelModules = [ "sg" ]` do? |  | ||||||
| - sops.age.keyFile should not just be hard coded to leyla? |  | ||||||
| - use dashes for options not camel case | - use dashes for options not camel case | ||||||
|  | - Move configs for pipe mouse, open rgb, and via keyboard to hardware config and install users side from those configs | ||||||
| ## New Features | ## New Features | ||||||
| - DISKO for server | - DISKO for server | ||||||
| - STOP FROM SLEEPING | - STOP FROM SLEEPING | ||||||
|  |  | ||||||
|  | @ -11,23 +11,10 @@ | ||||||
|       ../../enviroments/client |       ../../enviroments/client | ||||||
|     ]; |     ]; | ||||||
| 
 | 
 | ||||||
|   sops.defaultSopsFile = ../../secrets/secrets.yaml; |  | ||||||
|   sops.defaultSopsFormat = "yaml"; |  | ||||||
| 
 |  | ||||||
|   sops.age.keyFile = "/home/leyla/.config/sops/age/keys.txt"; |  | ||||||
| 
 |  | ||||||
|   users.leyla.isFullUser = true; |   users.leyla.isFullUser = true; | ||||||
|   users.ester.isFullUser = true; |   users.ester.isFullUser = true; | ||||||
|   users.eve.isFullUser = true; |   users.eve.isFullUser = true; | ||||||
| 
 | 
 | ||||||
|   # Bootloader. |  | ||||||
|   boot.loader.systemd-boot.enable = true; |  | ||||||
|   boot.loader.efi.canTouchEfiVariables = true; |  | ||||||
|    |  | ||||||
|   boot.kernelModules = [ "sg" ]; |  | ||||||
| 
 |  | ||||||
|   networking.hostName = "horizon"; # Define your hostname. |  | ||||||
| 
 |  | ||||||
|   # enabled virtualisation for docker |   # enabled virtualisation for docker | ||||||
|   virtualisation.docker = { |   virtualisation.docker = { | ||||||
|     enable = true; |     enable = true; | ||||||
|  | @ -37,39 +24,12 @@ | ||||||
|     }; |     }; | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|   hardware.graphics.enable = true; |  | ||||||
| 
 |  | ||||||
|   # Enable touchpad support (enabled default in most desktopManager). |   # Enable touchpad support (enabled default in most desktopManager). | ||||||
|   # services.xserver.libinput.enable = true; |   # services.xserver.libinput.enable = true; | ||||||
| 
 | 
 | ||||||
|   # Allow unfree packages |   # Allow unfree packages | ||||||
|   nixpkgs.config.allowUnfree = true; |   nixpkgs.config.allowUnfree = true; | ||||||
| 
 | 
 | ||||||
|   # 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; |  | ||||||
|   # }; |  | ||||||
| 
 |  | ||||||
|   # # List services that you want to enable: |  | ||||||
|   # systemd.services = { |  | ||||||
|   #   # Start resilio sync on boot |  | ||||||
|   #   resilio-sync = { |  | ||||||
|   #     description = "Resilio Sync service"; |  | ||||||
|        |  | ||||||
|   #     serviceConfig = { |  | ||||||
|   #       Type = "forking"; |  | ||||||
|   #       Restart = "on-failure"; |  | ||||||
|   #       ExecStart = "${pkgs.resilio-sync}/bin/rslsync"; |  | ||||||
|   #     }; |  | ||||||
| 
 |  | ||||||
|   #     after = [ "network.target" "network-online.target" ]; |  | ||||||
|   #     wantedBy = [ "multi-user.target" ]; |  | ||||||
|   #   }; |  | ||||||
|   # }; |  | ||||||
| 
 |  | ||||||
|   # Enable the OpenSSH daemon. |   # Enable the OpenSSH daemon. | ||||||
|   services.openssh.enable = true; |   services.openssh.enable = true; | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -10,9 +10,15 @@ | ||||||
| 
 | 
 | ||||||
|   boot.initrd.availableKernelModules = [ "xhci_pci" "thunderbolt" "nvme" "usb_storage" "sd_mod" ]; |   boot.initrd.availableKernelModules = [ "xhci_pci" "thunderbolt" "nvme" "usb_storage" "sd_mod" ]; | ||||||
|   boot.initrd.kernelModules = [ ]; |   boot.initrd.kernelModules = [ ]; | ||||||
|   boot.kernelModules = [ "kvm-intel" ]; |   boot.kernelModules = [ "kvm-intel" "sg" ]; | ||||||
|   boot.extraModulePackages = [ ]; |   boot.extraModulePackages = [ ]; | ||||||
| 
 | 
 | ||||||
|  |   # Bootloader. | ||||||
|  |   boot.loader.systemd-boot.enable = true; | ||||||
|  |   boot.loader.efi.canTouchEfiVariables = 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"; | ||||||
|  | @ -57,6 +63,7 @@ | ||||||
|   networking.useDHCP = lib.mkDefault true; |   networking.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. | ||||||
| 
 | 
 | ||||||
|   nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; |   nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; | ||||||
|   powerManagement.cpuFreqGovernor = lib.mkDefault "powersave"; |   powerManagement.cpuFreqGovernor = lib.mkDefault "powersave"; | ||||||
|  |  | ||||||
|  | @ -21,14 +21,6 @@ | ||||||
|   users.ester.isFullUser = true; |   users.ester.isFullUser = true; | ||||||
|   users.eve.isFullUser = true; |   users.eve.isFullUser = true; | ||||||
|    |    | ||||||
|   # Bootloader. |  | ||||||
|   boot.loader.systemd-boot.enable = true; |  | ||||||
|   boot.loader.efi.canTouchEfiVariables = true; |  | ||||||
|    |  | ||||||
|   boot.kernelModules = [ "sg" ]; |  | ||||||
| 
 |  | ||||||
|   networking.hostName = "twilight"; # Define your hostname. |  | ||||||
| 
 |  | ||||||
|   # enabled virtualisation for docker |   # enabled virtualisation for docker | ||||||
|   # virtualisation.docker.enable = true; |   # virtualisation.docker.enable = true; | ||||||
| 
 | 
 | ||||||
|  | @ -38,47 +30,6 @@ | ||||||
|   # Allow unfree packages |   # Allow unfree packages | ||||||
|   nixpkgs.config.allowUnfree = true; |   nixpkgs.config.allowUnfree = 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; |  | ||||||
|   }; |  | ||||||
| 
 |  | ||||||
|   # 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 | ||||||
|  |  | ||||||
|  | @ -10,9 +10,54 @@ | ||||||
| 
 | 
 | ||||||
|   boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ]; |   boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ]; | ||||||
|   boot.initrd.kernelModules = [ ]; |   boot.initrd.kernelModules = [ ]; | ||||||
|   boot.kernelModules = [ "kvm-amd" ]; |   boot.kernelModules = [ "kvm-amd" "sg" ]; | ||||||
|   boot.extraModulePackages = [ ]; |   boot.extraModulePackages = [ ]; | ||||||
| 
 | 
 | ||||||
|  |   # Bootloader. | ||||||
|  |   boot.loader.systemd-boot.enable = true; | ||||||
|  |   boot.loader.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."/" = |   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"; | ||||||
|  | @ -54,6 +99,7 @@ | ||||||
|   networking.useDHCP = lib.mkDefault true; |   networking.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. | ||||||
| 
 | 
 | ||||||
|   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; | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue