From 7aa39a1110b01a3578a90aeb79de95d36a0ba898 Mon Sep 17 00:00:00 2001 From: Bun Date: Mon, 9 Jun 2025 15:34:04 -0400 Subject: [PATCH] Begin testing remote builds --- hosts/jupiter/default.nix | 3 +- hosts/jupiter/jovian/default.nix | 65 ++++--------------- hosts/jupiter/jovian/gnome/default.nix | 48 ++++++++++++++ hosts/jupiter/services/default.nix | 2 +- .../system/devices/video/nvidia/default.nix | 23 +++---- modules/system/settings/nix/default.nix | 3 +- .../settings/nix/distributed/default.nix | 33 ++++++++++ 7 files changed, 109 insertions(+), 68 deletions(-) create mode 100644 hosts/jupiter/jovian/gnome/default.nix create mode 100644 modules/system/settings/nix/distributed/default.nix diff --git a/hosts/jupiter/default.nix b/hosts/jupiter/default.nix index b690847a..7271d00e 100644 --- a/hosts/jupiter/default.nix +++ b/hosts/jupiter/default.nix @@ -12,9 +12,10 @@ system = { nixos.tags = [ "pc" ]; - steamdeck.enable = true; stateVersion = "24.11"; }; deployment.targetHost = "5ce:969c:40d1:9575:f5e:591d:c377:a20b"; + + jovian.steam.enable = true; } diff --git a/hosts/jupiter/jovian/default.nix b/hosts/jupiter/jovian/default.nix index 0384fe5f..ec180913 100644 --- a/hosts/jupiter/jovian/default.nix +++ b/hosts/jupiter/jovian/default.nix @@ -1,16 +1,15 @@ { config, lib, pkgs, jovian, ... }: { - imports = [ jovian.nixosModules.default ]; + imports = [ + ./gnome + jovian.nixosModules.default + ]; - options.system.steamdeck.enable = lib.mkEnableOption "Jovian NixOS environment"; - - config = lib.mkIf config.system.steamdeck.enable { + config = lib.mkIf config.jovian.steam.enable { jovian = { steam = { - enable = true; autoStart = true; - desktopSession = "gnome"; - user = config.sysusers.main; + user = config.vars.mainUser; }; decky-loader = { enable = true; @@ -30,7 +29,6 @@ programs.steam.extest.enable = true; services = { - desktopManager.gnome.enable = true; keyd.enable = lib.mkForce false; tlp.enable = lib.mkForce false; }; @@ -42,51 +40,10 @@ wireless.enable = lib.mkForce false; }; - environment = { - persistence."/persist".directories = [ - "/etc/NetworkManager/system-connections" - "/var/lib/decky-loader" - ]; - gnome.excludePackages = with pkgs; [ - adwaita-icon-theme - baobab - epiphany - evince - file-roller - geary - gnome-calculator - gnome-calendar - gnome-characters - gnome-clocks - gnome-color-manager - gnome-connections - gnome-console - gnome-contacts - gnome-disk-utility - gnome-font-viewer - gnome-logs - gnome-maps - gnome-music - gnome-remote-desktop - gnome-shell-extensions - gnome-software - gnome-system-monitor - gnome-text-editor - gnome-tour - gnome-user-docs - gnome-weather - loupe - nautilus - orca - seahorse - simple-scan - snapshot - sushi - sysprof - totem - yelp - ]; - }; + environment.persistence."/persist".directories = [ + "/etc/NetworkManager/system-connections" + "/var/lib/decky-loader" + ]; nixpkgs.allowUnfreePackages = [ "steam" @@ -96,6 +53,6 @@ "xow_dongle-firmware" ]; - specialisation.desktop.configuration.config.system.steamdeck.enable = lib.mkForce false; + specialisation.desktop.configuration.config.jovian.steam.enable = lib.mkForce false; }; } diff --git a/hosts/jupiter/jovian/gnome/default.nix b/hosts/jupiter/jovian/gnome/default.nix new file mode 100644 index 00000000..8c9655dd --- /dev/null +++ b/hosts/jupiter/jovian/gnome/default.nix @@ -0,0 +1,48 @@ +{ config, lib, pkgs, ... }: +{ + config = lib.mkIf config.jovian.steam.enable { + jovian.steam.desktopSession = "gnome"; + + services.desktopManager.gnome.enable = true; + + environment.gnome.excludePackages = with pkgs; [ + adwaita-icon-theme + baobab + epiphany + evince + file-roller + geary + gnome-calculator + gnome-calendar + gnome-characters + gnome-clocks + gnome-color-manager + gnome-connections + gnome-console + gnome-contacts + gnome-disk-utility + gnome-font-viewer + gnome-logs + gnome-maps + gnome-music + gnome-remote-desktop + gnome-shell-extensions + gnome-software + gnome-system-monitor + gnome-text-editor + gnome-tour + gnome-user-docs + gnome-weather + loupe + nautilus + orca + seahorse + simple-scan + snapshot + sushi + sysprof + totem + yelp + ]; + }; +} diff --git a/hosts/jupiter/services/default.nix b/hosts/jupiter/services/default.nix index 80db5f9e..3ead25ff 100644 --- a/hosts/jupiter/services/default.nix +++ b/hosts/jupiter/services/default.nix @@ -1,6 +1,6 @@ { config, lib, ... }: { - config = lib.mkIf (!config.system.steamdeck.enable) { + config = lib.mkIf (!config.jovian.steam.enable) { networking.useNetworkd = lib.mkForce false; services.globalprotect.enable = true; diff --git a/modules/system/devices/video/nvidia/default.nix b/modules/system/devices/video/nvidia/default.nix index 40156146..261ba237 100644 --- a/modules/system/devices/video/nvidia/default.nix +++ b/modules/system/devices/video/nvidia/default.nix @@ -1,18 +1,19 @@ { config, lib, ... }: { - config = lib.mkIf (lib.elem "nvidia" config.services.xserver.videoDrivers) { - boot.kernelParams = [ "nvidia_drm.fbdev=1" ]; # Framebuffer fixes TTY access + boot.kernelParams = [ + "nouveau.config=NvGspRm=1" # Use high power mode for Nouveau + "nvidia_drm.fbdev=1" # Fix framebuffer + ]; - hardware.nvidia = { - modesetting.enable = true; - nvidiaSettings = false; - open = true; - }; + hardware.nvidia = { + modesetting.enable = true; + nvidiaSettings = false; + open = true; + }; - nixpkgs.allowUnfreePackages = [ "nvidia-x11" ]; + nixpkgs.allowUnfreePackages = [ "nvidia-x11" ]; - specialisation.nouveau.configuration.config.services.xserver.videoDrivers = lib.mkForce [ "nouveau" ]; - } // { - boot.kernelParams = [ "nouveau.config=NvGspRm=1" ]; + specialisation = lib.mkIf (lib.elem "nvidia" config.services.xserver.videoDrivers) { + nouveau.configuration.config.services.xserver.videoDrivers = lib.mkForce [ "nouveau" ]; }; } diff --git a/modules/system/settings/nix/default.nix b/modules/system/settings/nix/default.nix index 4ad71315..ca395c3b 100644 --- a/modules/system/settings/nix/default.nix +++ b/modules/system/settings/nix/default.nix @@ -2,6 +2,7 @@ { imports = [ ./channels + ./distributed ./gc ./unfree ]; @@ -17,6 +18,6 @@ }; }; - # Use nixos-rebuild-ng + # Use a newer implementation of nixos-rebuild system.rebuild.enableNg = true; } diff --git a/modules/system/settings/nix/distributed/default.nix b/modules/system/settings/nix/distributed/default.nix new file mode 100644 index 00000000..5cba68d8 --- /dev/null +++ b/modules/system/settings/nix/distributed/default.nix @@ -0,0 +1,33 @@ +{ nodes, ... }: +{ + nix = { + settings = { + max-jobs = 0; + trusted-users = [ "root" ]; + }; + + distributedBuilds = true; + buildMachines = with nodes; [ + { + hostName = midas.config.deployment.targetHost; + system = midas.config.nixpkgs.localSystem.system; + } + { + hostName = kitty.config.deployment.targetHost; + system = kitty.config.nixpkgs.localSystem.system; + } + { + hostName = prophet.config.deployment.targetHost; + system = prophet.config.nixpkgs.localSystem.system; + } + { + hostName = detritus.config.deployment.targetHost; + system = detritus.config.nixpkgs.localSystem.system; + } + { + hostName = elder.config.deployment.targetHost; + system = elder.config.nixpkgs.localSystem.system; + } + ]; + }; +}