forked from jan-leila/nix-config
		
	main #2
					 4 changed files with 121 additions and 111 deletions
				
			
		|  | @ -1,6 +1,7 @@ | ||||||
| { | { | ||||||
|   inputs, |   inputs, | ||||||
|   config, |   config, | ||||||
|  |   pkgs, | ||||||
|   ... |   ... | ||||||
| }: { | }: { | ||||||
|   imports = [ |   imports = [ | ||||||
|  | @ -121,6 +122,63 @@ | ||||||
| 
 | 
 | ||||||
|     syncthing.enable = true; |     syncthing.enable = true; | ||||||
|   }; |   }; | ||||||
|  | 
 | ||||||
|  |   boot.supportedFilesystems = ["nfs"]; | ||||||
|  | 
 | ||||||
|  |   fileSystems = { | ||||||
|  |     "/mnt/leyla_documents" = { | ||||||
|  |       device = "defiant:/exports/leyla_documents"; | ||||||
|  |       fsType = "nfs"; | ||||||
|  |       options = [ | ||||||
|  |         "x-systemd.automount" | ||||||
|  |         "noauto" | ||||||
|  |         "user" | ||||||
|  |         "noatime" | ||||||
|  |         "nofail" | ||||||
|  |         "soft" | ||||||
|  |         "x-systemd.idle-timeout=600" | ||||||
|  |         "fsc" | ||||||
|  |       ]; | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|  |     "/mnt/users_documents" = { | ||||||
|  |       device = "defiant:/exports/users_documents"; | ||||||
|  |       fsType = "nfs"; | ||||||
|  |       options = [ | ||||||
|  |         "x-systemd.automount" | ||||||
|  |         "noauto" | ||||||
|  |         "user" | ||||||
|  |         "nofail" | ||||||
|  |         "soft" | ||||||
|  |         "x-systemd.idle-timeout=600" | ||||||
|  |         "fsc" | ||||||
|  |       ]; | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|  |     "/mnt/media" = { | ||||||
|  |       device = "defiant:/exports/media"; | ||||||
|  |       fsType = "nfs"; | ||||||
|  |       options = [ | ||||||
|  |         "x-systemd.automount" | ||||||
|  |         "noauto" | ||||||
|  |         "user" | ||||||
|  |         "noatime" | ||||||
|  |         "nofail" | ||||||
|  |         "soft" | ||||||
|  |         "x-systemd.idle-timeout=600" | ||||||
|  |         "noatime" | ||||||
|  |         "nodiratime" | ||||||
|  |         "relatime" | ||||||
|  |         "rsize=32768" | ||||||
|  |         "wsize=32768" | ||||||
|  |         "fsc" | ||||||
|  |       ]; | ||||||
|  |     }; | ||||||
|  |   }; | ||||||
|  | 
 | ||||||
|  |   environment.systemPackages = with pkgs; [ | ||||||
|  |     cachefilesd | ||||||
|  |   ]; | ||||||
|   programs.steam = { |   programs.steam = { | ||||||
|     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 | ||||||
|  | @ -128,6 +186,11 @@ | ||||||
|   }; |   }; | ||||||
|   hardware.steam-hardware.enable = true; # Provides udev rules for controller, HTC vive, and Valve Index |   hardware.steam-hardware.enable = true; # Provides udev rules for controller, HTC vive, and Valve Index | ||||||
| 
 | 
 | ||||||
|  |   networking = { | ||||||
|  |     networkmanager.enable = true; | ||||||
|  |     hostName = "twilight"; # Define your hostname. | ||||||
|  |   }; | ||||||
|  | 
 | ||||||
|   # enabled virtualisation for docker |   # enabled virtualisation for docker | ||||||
|   # virtualisation.docker.enable = true; |   # virtualisation.docker.enable = true; | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -3,5 +3,6 @@ | ||||||
|   imports = [ |   imports = [ | ||||||
|     ./configuration.nix |     ./configuration.nix | ||||||
|     ./hardware-configuration.nix |     ./hardware-configuration.nix | ||||||
|  |     ./nvidia-drivers.nix | ||||||
|   ]; |   ]; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -25,16 +25,6 @@ | ||||||
|       systemd-boot.enable = true; |       systemd-boot.enable = true; | ||||||
|       efi.canTouchEfiVariables = true; |       efi.canTouchEfiVariables = true; | ||||||
|     }; |     }; | ||||||
| 
 |  | ||||||
|     supportedFilesystems = ["nfs"]; |  | ||||||
|   }; |  | ||||||
| 
 |  | ||||||
|   services.xserver = { |  | ||||||
|     # Load nvidia driver for Xorg and Wayland |  | ||||||
|     videoDrivers = ["nvidia"]; |  | ||||||
| 
 |  | ||||||
|     # Use X instead of wayland for gaming reasons |  | ||||||
|     displayManager.gdm.wayland = false; |  | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|   fileSystems = { |   fileSystems = { | ||||||
|  | @ -48,111 +38,15 @@ | ||||||
|       fsType = "vfat"; |       fsType = "vfat"; | ||||||
|       options = ["fmask=0022" "dmask=0022"]; |       options = ["fmask=0022" "dmask=0022"]; | ||||||
|     }; |     }; | ||||||
| 
 |  | ||||||
|     "/mnt/leyla_documents" = { |  | ||||||
|       device = "defiant:/exports/leyla_documents"; |  | ||||||
|       fsType = "nfs"; |  | ||||||
|       options = [ |  | ||||||
|         "x-systemd.automount" |  | ||||||
|         "noauto" |  | ||||||
|         "user" |  | ||||||
|         "noatime" |  | ||||||
|         "nofail" |  | ||||||
|         "soft" |  | ||||||
|         "x-systemd.idle-timeout=600" |  | ||||||
|         "fsc" |  | ||||||
|       ]; |  | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|     "/mnt/users_documents" = { |  | ||||||
|       device = "defiant:/exports/users_documents"; |  | ||||||
|       fsType = "nfs"; |  | ||||||
|       options = [ |  | ||||||
|         "x-systemd.automount" |  | ||||||
|         "noauto" |  | ||||||
|         "user" |  | ||||||
|         "nofail" |  | ||||||
|         "soft" |  | ||||||
|         "x-systemd.idle-timeout=600" |  | ||||||
|         "fsc" |  | ||||||
|       ]; |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     "/mnt/media" = { |  | ||||||
|       device = "defiant:/exports/media"; |  | ||||||
|       fsType = "nfs"; |  | ||||||
|       options = [ |  | ||||||
|         "x-systemd.automount" |  | ||||||
|         "noauto" |  | ||||||
|         "user" |  | ||||||
|         "noatime" |  | ||||||
|         "nofail" |  | ||||||
|         "soft" |  | ||||||
|         "x-systemd.idle-timeout=600" |  | ||||||
|         "noatime" |  | ||||||
|         "nodiratime" |  | ||||||
|         "relatime" |  | ||||||
|         "rsize=32768" |  | ||||||
|         "wsize=32768" |  | ||||||
|         "fsc" |  | ||||||
|       ]; |  | ||||||
|     }; |  | ||||||
|   }; |  | ||||||
| 
 |  | ||||||
|   environment.systemPackages = with pkgs; [ |  | ||||||
|     cachefilesd |  | ||||||
|   ]; |  | ||||||
| 
 |  | ||||||
|   swapDevices = []; |   swapDevices = []; | ||||||
| 
 | 
 | ||||||
|   networking = { |  | ||||||
|     networkmanager.enable = true; |  | ||||||
|   # 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`. | ||||||
|     useDHCP = lib.mkDefault true; |   networking.useDHCP = lib.mkDefault true; | ||||||
|     hostName = "twilight"; # Define your hostname. |  | ||||||
|   }; |  | ||||||
| 
 | 
 | ||||||
|   nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; |   nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; | ||||||
| 
 |  | ||||||
|   hardware = { |  | ||||||
|     # Enable OpenGL |  | ||||||
|     graphics.enable = true; |  | ||||||
| 
 |  | ||||||
|     # install graphics drivers |  | ||||||
|     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; |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; |  | ||||||
|   }; |  | ||||||
| } | } | ||||||
|  |  | ||||||
							
								
								
									
										52
									
								
								configurations/nixos/twilight/nvidia-drivers.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								configurations/nixos/twilight/nvidia-drivers.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,52 @@ | ||||||
|  | { | ||||||
|  |   lib, | ||||||
|  |   config, | ||||||
|  |   ... | ||||||
|  | }: { | ||||||
|  |   services.xserver = { | ||||||
|  |     # Load nvidia driver for Xorg and Wayland | ||||||
|  |     videoDrivers = ["nvidia"]; | ||||||
|  | 
 | ||||||
|  |     # Use X instead of wayland for gaming reasons | ||||||
|  |     displayManager.gdm.wayland = false; | ||||||
|  |   }; | ||||||
|  | 
 | ||||||
|  |   hardware = { | ||||||
|  |     # Enable OpenGL | ||||||
|  |     graphics.enable = true; | ||||||
|  | 
 | ||||||
|  |     # install graphics drivers | ||||||
|  |     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 = true; | ||||||
|  | 
 | ||||||
|  |       # 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; | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|  |     cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; | ||||||
|  |   }; | ||||||
|  | } | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue