From 1589f59e3b72d22b6863e5c131a247ca15438507 Mon Sep 17 00:00:00 2001 From: ahuston-0 Date: Tue, 21 May 2024 13:40:16 -0400 Subject: [PATCH] Introduces non-server home-manager configs Allows home-manager configs to be done on a server/non-server basis Provides an example config by moving emacs to its own space (behind a lib.optionals so only non-server machines accept it) marks artemision and rhapsody-in-green as explicitly non-server machines Signed-off-by: ahuston-0 --- lib/systems.nix | 4 +++- modules/base.nix | 14 ++++++++++++-- systems/artemision/default.nix | 1 + systems/rhapsody-in-green/default.nix | 1 + users/alice/home.nix | 14 ++++++++------ users/alice/non-server.nix | 8 ++++++++ 6 files changed, 33 insertions(+), 9 deletions(-) create mode 100644 users/alice/non-server.nix diff --git a/lib/systems.nix b/lib/systems.nix index c8b179a..f57c177 100644 --- a/lib/systems.nix +++ b/lib/systems.nix @@ -159,7 +159,9 @@ rec { }@args: lib.nixosSystem { inherit system; - specialArgs = inputs; + specialArgs = { + inherit inputs server; + }; modules = [ inputs.nixos-modules.nixosModule diff --git a/modules/base.nix b/modules/base.nix index a8cc6bc..e0c26ad 100644 --- a/modules/base.nix +++ b/modules/base.nix @@ -1,4 +1,9 @@ -{ lib, sops-nix, ... }: +{ + lib, + inputs, + server, + ... +}: { boot.default = lib.mkDefault true; @@ -18,6 +23,11 @@ home-manager = { useGlobalPkgs = true; useUserPackages = true; - sharedModules = [ sops-nix.homeManagerModules.sops ]; + sharedModules = [ inputs.sops-nix.homeManagerModules.sops ]; + extraSpecialArgs = { + machineConfig = { + inherit server; + }; + }; }; } diff --git a/systems/artemision/default.nix b/systems/artemision/default.nix index b06da2c..bceb0f4 100644 --- a/systems/artemision/default.nix +++ b/systems/artemision/default.nix @@ -3,6 +3,7 @@ system = "x86_64-linux"; home = true; sops = true; + server = false; users = [ "alice" ]; modules = [ inputs.nixos-hardware.nixosModules.framework-16-7040-amd diff --git a/systems/rhapsody-in-green/default.nix b/systems/rhapsody-in-green/default.nix index 69c898e..3fdacca 100644 --- a/systems/rhapsody-in-green/default.nix +++ b/systems/rhapsody-in-green/default.nix @@ -4,5 +4,6 @@ system = "x86_64-linux"; home = true; sops = true; + server = false; modules = [ inputs.nixos-hardware.nixosModules.framework-13-7040-amd ]; } diff --git a/users/alice/home.nix b/users/alice/home.nix index 6d35412..0f5c3f1 100644 --- a/users/alice/home.nix +++ b/users/alice/home.nix @@ -1,4 +1,10 @@ -{ config, pkgs, ... }: +{ + config, + pkgs, + lib, + machineConfig, + ... +}: { imports = [ @@ -6,7 +12,7 @@ ./home/doom ./home/gammastep.nix ./home/git.nix - ]; + ] ++ lib.optionals (!machineConfig.server) [ ./non-server.nix ]; home = { # # Adds the 'hello' command to your environment. It prints a friendly @@ -100,10 +106,6 @@ }; programs = { - emacs = { - enable = true; - package = pkgs.emacs29-pgtk; - }; starship.enable = true; fzf = { diff --git a/users/alice/non-server.nix b/users/alice/non-server.nix new file mode 100644 index 0000000..b834c58 --- /dev/null +++ b/users/alice/non-server.nix @@ -0,0 +1,8 @@ +{ pkgs, ... }: + +{ + programs.emacs = { + enable = true; + package = pkgs.emacs29-pgtk; + }; +}