forked from jan-leila/nix-config
		
	reduced tech debt by moving things into hardware configs
This commit is contained in:
		
							parent
							
								
									417aafe2e8
								
							
						
					
					
						commit
						d55d5933de
					
				
					 5 changed files with 58 additions and 97 deletions
				
			
		|  | @ -17,13 +17,11 @@ | |||
| `./rebuild.sh` | ||||
| 
 | ||||
| # New machine setup | ||||
| 
 | ||||
| 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? | ||||
| keys for decrypting password secrets for each users located at `/var/lib/sops-nix/key.txt` | ||||
| 
 | ||||
| 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 | ||||
| 
 | ||||
|  | @ -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???) | ||||
| - GNOME default monitors per hardware configuration? | ||||
| - 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 | ||||
| - Move configs for pipe mouse, open rgb, and via keyboard to hardware config and install users side from those configs | ||||
| ## New Features | ||||
| - DISKO for server | ||||
| - STOP FROM SLEEPING | ||||
|  |  | |||
|  | @ -11,23 +11,10 @@ | |||
|       ../../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.ester.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 | ||||
|   virtualisation.docker = { | ||||
|     enable = true; | ||||
|  | @ -37,39 +24,12 @@ | |||
|     }; | ||||
|   }; | ||||
| 
 | ||||
|   hardware.graphics.enable = true; | ||||
| 
 | ||||
|   # Enable touchpad support (enabled default in most desktopManager). | ||||
|   # services.xserver.libinput.enable = true; | ||||
| 
 | ||||
|   # Allow unfree packages | ||||
|   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. | ||||
|   services.openssh.enable = true; | ||||
| 
 | ||||
|  |  | |||
|  | @ -10,9 +10,15 @@ | |||
| 
 | ||||
|   boot.initrd.availableKernelModules = [ "xhci_pci" "thunderbolt" "nvme" "usb_storage" "sd_mod" ]; | ||||
|   boot.initrd.kernelModules = [ ]; | ||||
|   boot.kernelModules = [ "kvm-intel" ]; | ||||
|   boot.kernelModules = [ "kvm-intel" "sg" ]; | ||||
|   boot.extraModulePackages = [ ]; | ||||
| 
 | ||||
|   # Bootloader. | ||||
|   boot.loader.systemd-boot.enable = true; | ||||
|   boot.loader.efi.canTouchEfiVariables = true; | ||||
| 
 | ||||
|   hardware.graphics.enable = true; | ||||
| 
 | ||||
|   fileSystems."/" = | ||||
|     { device = "/dev/disk/by-uuid/866d422b-f816-4ad9-9846-791839cb9337"; | ||||
|       fsType = "ext4"; | ||||
|  | @ -57,6 +63,7 @@ | |||
|   networking.useDHCP = lib.mkDefault true; | ||||
|   # networking.interfaces.enp0s20f0u1.useDHCP = lib.mkDefault true; | ||||
|   # networking.interfaces.wlp170s0.useDHCP = lib.mkDefault true; | ||||
|   networking.hostName = "horizon"; # Define your hostname. | ||||
| 
 | ||||
|   nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; | ||||
|   powerManagement.cpuFreqGovernor = lib.mkDefault "powersave"; | ||||
|  |  | |||
|  | @ -20,15 +20,7 @@ | |||
|   }; | ||||
|   users.ester.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 | ||||
|   # virtualisation.docker.enable = true; | ||||
| 
 | ||||
|  | @ -38,47 +30,6 @@ | |||
|   # Allow unfree packages | ||||
|   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 | ||||
|   # settings for stateful data, like file locations and database versions | ||||
|   # 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.kernelModules = [ ]; | ||||
|   boot.kernelModules = [ "kvm-amd" ]; | ||||
|   boot.kernelModules = [ "kvm-amd" "sg" ]; | ||||
|   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."/" = | ||||
|     { device = "/dev/disk/by-uuid/8be49c65-2b57-48f1-b74d-244d26061adb"; | ||||
|       fsType = "ext4"; | ||||
|  | @ -54,6 +99,7 @@ | |||
|   networking.useDHCP = lib.mkDefault true; | ||||
|   # networking.interfaces.enp42s0.useDHCP = lib.mkDefault true; | ||||
|   # networking.interfaces.wlp5s0.useDHCP = lib.mkDefault true; | ||||
|   networking.hostName = "twilight"; # Define your hostname. | ||||
| 
 | ||||
|   nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; | ||||
|   hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue