diff --git a/nixos/flake.nix b/nixos/flake.nix index 521804bf..22587203 100644 --- a/nixos/flake.nix +++ b/nixos/flake.nix @@ -154,7 +154,7 @@ inherit inputs machineNames; makeEnable = (import ./make-enable.nix) nixpkgs.lib; mapValueToKeys = keys: value: builtins.listToAttrs (map (name: { inherit name value; }) keys); - realUsers = [ "root" "imalison" "kat" "dean" "alex", "will" ]; + realUsers = [ "root" "imalison" "kat" "dean" "alex" "will" ]; forEachUser = mapValueToKeys realUsers; keys = (import ./keys.nix); } // specialArgs; diff --git a/nixos/machines/railbird-sf.nix b/nixos/machines/railbird-sf.nix index a999fa26..85dea890 100644 --- a/nixos/machines/railbird-sf.nix +++ b/nixos/machines/railbird-sf.nix @@ -1,58 +1,9 @@ -{ config, lib, pkgs, inputs, forEachUser, ... }: +{ config, lib, pkgs, forEachUser, ... }: { imports = [ ../configuration.nix ]; - # Enable OpenGL - hardware.opengl = { - enable = true; - driSupport = true; - driSupport32Bit = true; - }; - - # Load nvidia driver for Xorg and Wayland - services.xserver.videoDrivers = ["nvidia"]; - - hardware.nvidia = { - - # Modesetting is required. - modesetting.enable = true; - - # Nvidia power management. Experimental, and can cause sleep/suspend to fail. - 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.stable; - }; - - services.xserver.desktopManager.gnome3.enable = true; - services.displayManager.gddm.enable = true; - - features.full.enable = false; - modules.base.enable = true; - modules.desktop.enable = true; - modules.xmonad.enable = true; - modules.code.enable = true; - modules.syncthing.enable = true; - modules.fonts.enable = true; - networking.hostName = "railbird-sf"; hardware.enableRedistributableFirmware = true; @@ -68,22 +19,59 @@ videoDrivers = [ "nvidia" ]; }; - hardware.opengl.driSupport32Bit = true; + # Enable OpenGL + hardware.opengl = { + enable = true; + driSupport = true; + driSupport32Bit = true; + }; - hardware.nvidia.modesetting.enable = true; + hardware.nvidia = { - # This also enables v4l2loopback - programs.droidcam.enable = true + # Modesetting is required. + modesetting.enable = true; - fileSystems."/" = + # Nvidia power management. Experimental, and can cause sleep/suspend to fail. + 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.stable; + }; + + features.full.enable = false; + modules.base.enable = true; + modules.desktop.enable = true; + modules.xmonad.enable = true; + modules.gnome.enable = true; + modules.code.enable = true; + modules.syncthing.enable = true; + modules.fonts.enable = true; + + fileSystems."/" = { device = "/dev/disk/by-uuid/a317d456-6f84-41ee-a149-8e466e414aae"; - fsType = "ext4"; + fsType = "ext4"; }; fileSystems."/boot" = { device = "/dev/disk/by-uuid/B875-39D4"; fsType = "vfat"; - }; + }; swapDevices = [ { device = "/dev/disk/by-uuid/129345f3-e1e1-4d45-9db9-643160c6d564"; } @@ -93,15 +81,11 @@ networking.useDHCP = lib.mkDefault true; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; powerManagement.cpuFreqGovernor = lib.mkDefault "powersave"; - hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; + hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; - services.xrdp.enable = true; - services.xrdp.defaultWindowManager = "startplasma-x11"; - services.xrdp.openFirewall = true; - home-manager.users = forEachUser { - home.stateVersion = "23.11"; + home.stateVersion = "23.11"; }; system.stateVersion = "23.11";