diff --git a/nixos/flake.nix b/nixos/flake.nix index d8130b82..521804bf 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" ]; + realUsers = [ "root" "imalison" "kat" "dean" "alex", "will" ]; forEachUser = mapValueToKeys realUsers; keys = (import ./keys.nix); } // specialArgs; diff --git a/nixos/keys.nix b/nixos/keys.nix index 4e57f39f..390fa1f1 100644 --- a/nixos/keys.nix +++ b/nixos/keys.nix @@ -34,7 +34,9 @@ rec { andyKeys = [ "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCqBnDZXcZIMtOTPxg4pJWyMyNp84kpU2uH88aCkrhMBY2TI4dqAXGY4h1DOyOEyQo9nTgyvdlv4M1Hlp5tzfbuapdTWtt36gb+FKpsTUy8dz45fhKJerUszNbVQ+SpZu4ZFN4Nv9eP3AHO+Mzjcvbf666VMDEzZWu2totd7jxyI9PdK78TD5AOi+kGTtbEgqMpJCcZmJlzJ9NJJ2ejhPCRwcfDrShHcfMeEwWL5MmnzT+WstkRwJAM0f9/ks77jWDnB1Eu55rQykU8zVZ1nz1GiXZcxUpm6B0IRhwn8NGH6nVzSLITtO5eJ7LPQR9XNUODpbrsVGNK6jgGql9gZpYp andy@nixos" ]; - willKeys = []; + willKeys = [ + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILgLjW6R+dTEmlUoPfE4GA8gRn93UlcSJqlJP1xw0KWl willgester@gmail.com" + ]; loewyKeys = [ "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDROb8zcXAgqR3xNpStjt8kSL2Tnic+aWVlQRkmmLveay0RDPatHVKiWtscBoFYvL19xwpi692nZjyPAGQBLMquVx8rexHUFVbs6UVM41Y/QV0UZLSlVM7xNl3nL/dQoxT8OC2a9WJThNm41EjFzzKAuUaWqjm4+uEsC9felBIzndlA5/bIn6EUkMb2X8qmOOIOod1UeVZeK0fWMoDdKsHtQjiQrrP4nLjOmrTQ+BF2yUHwFbW6SCQiXT1Jzq4zymnI717ZraTK0nXzl8amLrGGrh36TrR7pv9hWLeNIMCARvOtABMdQmrT1dI4FxLK1uKM696uzfoaZDUn58G2VGrd loewy gitlab" ]; diff --git a/nixos/machines/railbird-sf.nix b/nixos/machines/railbird-sf.nix new file mode 100644 index 00000000..a999fa26 --- /dev/null +++ b/nixos/machines/railbird-sf.nix @@ -0,0 +1,108 @@ +{ config, lib, pkgs, inputs, 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; + boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-amd" ]; + boot.extraModulePackages = [ ]; + boot.loader.systemd-boot.enable = true; + + hardware.opengl.extraPackages = [ pkgs.linuxPackages.nvidia_x11.out ]; + hardware.opengl.extraPackages32 = [ pkgs.linuxPackages.nvidia_x11.lib32 ]; + services.xserver = { + videoDrivers = [ "nvidia" ]; + }; + + hardware.opengl.driSupport32Bit = true; + + hardware.nvidia.modesetting.enable = true; + + # This also enables v4l2loopback + programs.droidcam.enable = true + + fileSystems."/" = + { device = "/dev/disk/by-uuid/a317d456-6f84-41ee-a149-8e466e414aae"; + fsType = "ext4"; + }; + + fileSystems."/boot" = + { device = "/dev/disk/by-uuid/B875-39D4"; + fsType = "vfat"; + }; + + swapDevices = + [ { device = "/dev/disk/by-uuid/129345f3-e1e1-4d45-9db9-643160c6d564"; } + ]; + + + 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; + + + services.xrdp.enable = true; + services.xrdp.defaultWindowManager = "startplasma-x11"; + services.xrdp.openFirewall = true; + + home-manager.users = forEachUser { + home.stateVersion = "23.11"; + }; + + system.stateVersion = "23.11"; +}