diff options
-rw-r--r-- | accounts/gkleen@sif/default.nix | 1 | ||||
-rw-r--r-- | flake.nix | 4 | ||||
-rw-r--r-- | installer/default.nix | 2 | ||||
-rw-r--r-- | modules/home-manager.nix | 13 | ||||
-rw-r--r-- | system-profiles/rebuild-machines/default.nix | 28 | ||||
-rw-r--r-- | system-profiles/rebuild-machines/rebuild-machine.zsh | 2 | ||||
-rw-r--r-- | user-profiles/core.nix | 27 |
7 files changed, 62 insertions, 15 deletions
diff --git a/accounts/gkleen@sif/default.nix b/accounts/gkleen@sif/default.nix index 84ac88a7..4322278e 100644 --- a/accounts/gkleen@sif/default.nix +++ b/accounts/gkleen@sif/default.nix | |||
@@ -192,6 +192,7 @@ in { | |||
192 | package = import ./taffybar { inherit (pkgs) haskellPackages; }; | 192 | package = import ./taffybar { inherit (pkgs) haskellPackages; }; |
193 | }; | 193 | }; |
194 | status-notifier-watcher.enable = true; | 194 | status-notifier-watcher.enable = true; |
195 | xembed-sni-proxy.enable = true; | ||
195 | pasystray.enable = true; | 196 | pasystray.enable = true; |
196 | udiskie = { | 197 | udiskie = { |
197 | enable = true; | 198 | enable = true; |
@@ -136,6 +136,8 @@ | |||
136 | packages = | 136 | packages = |
137 | let installerPackages = system: optionalAttrs (!(isNull installerConfig)) (mapAttrs' (profile: value: nameValuePair "installer-${profile}" value.output) installers.${system}); | 137 | let installerPackages = system: optionalAttrs (!(isNull installerConfig)) (mapAttrs' (profile: value: nameValuePair "installer-${profile}" value.output) installers.${system}); |
138 | in forAllSystems (system: systemPkgs: self.overlays.default (self.legacyPackages.${system}) systemPkgs // installerPackages system); | 138 | in forAllSystems (system: systemPkgs: self.overlays.default (self.legacyPackages.${system}) systemPkgs // installerPackages system); |
139 | |||
140 | activateHomeManager = system: base: (deploy-rs.lib.${system}.activate.custom // { dryActivate = "DRY_RUN=1 $PROFILE/activate"; }) base.activationPackage "$PROFILE/activate"; | ||
139 | in | 141 | in |
140 | { | 142 | { |
141 | nixosModules = | 143 | nixosModules = |
@@ -183,7 +185,7 @@ | |||
183 | }; | 185 | }; |
184 | } // (mapAttrs (_user: usercfg: { | 186 | } // (mapAttrs (_user: usercfg: { |
185 | user = usercfg.home.username; | 187 | user = usercfg.home.username; |
186 | path = deploy-rs.lib.${self.nixosConfigurations.${hostname}.config.nixpkgs.system}.activate.home-manager usercfg.home; | 188 | path = activateHomeManager (self.nixosConfigurations.${hostname}.config.nixpkgs.system) usercfg.home; |
187 | }) self.nixosConfigurations.${hostname}.config.home-manager.users); | 189 | }) self.nixosConfigurations.${hostname}.config.home-manager.users); |
188 | }) (nixImport { dir = ./hosts; _import = (_path: name: name); }); | 190 | }) (nixImport { dir = ./hosts; _import = (_path: name: name); }); |
189 | 191 | ||
diff --git a/installer/default.nix b/installer/default.nix index bf09c8d8..ad0c3849 100644 --- a/installer/default.nix +++ b/installer/default.nix | |||
@@ -28,5 +28,7 @@ | |||
28 | ]; | 28 | ]; |
29 | 29 | ||
30 | zramSwap.enable = true; | 30 | zramSwap.enable = true; |
31 | |||
32 | home-manager.enableSystemd = true; | ||
31 | }; | 33 | }; |
32 | } | 34 | } |
diff --git a/modules/home-manager.nix b/modules/home-manager.nix new file mode 100644 index 00000000..9c259381 --- /dev/null +++ b/modules/home-manager.nix | |||
@@ -0,0 +1,13 @@ | |||
1 | { lib, ... }: | ||
2 | |||
3 | with lib; | ||
4 | |||
5 | { | ||
6 | options = { | ||
7 | home-manager.enableSystemd = mkOption { | ||
8 | type = types.bool; | ||
9 | default = false; | ||
10 | example = true; | ||
11 | }; | ||
12 | }; | ||
13 | } | ||
diff --git a/system-profiles/rebuild-machines/default.nix b/system-profiles/rebuild-machines/default.nix index 68788023..fe9a5f14 100644 --- a/system-profiles/rebuild-machines/default.nix +++ b/system-profiles/rebuild-machines/default.nix | |||
@@ -26,7 +26,9 @@ let | |||
26 | phases = [ "buildPhase" "installPhase" ]; | 26 | phases = [ "buildPhase" "installPhase" ]; |
27 | 27 | ||
28 | inherit (pkgs) zsh coreutils openssh; | 28 | inherit (pkgs) zsh coreutils openssh; |
29 | inherit (cfg) flake scriptName; | 29 | inherit (cfg) scriptName; |
30 | inherit (cfg.flake) flakeOutput; | ||
31 | flake = cfg.flake.name; | ||
30 | nixosRebuild = config.system.build.nixos-rebuild; | 32 | nixosRebuild = config.system.build.nixos-rebuild; |
31 | inherit (config.security) wrapperDir; | 33 | inherit (config.security) wrapperDir; |
32 | inherit sshConfig; | 34 | inherit sshConfig; |
@@ -52,8 +54,21 @@ in { | |||
52 | }; | 54 | }; |
53 | 55 | ||
54 | flake = mkOption { | 56 | flake = mkOption { |
55 | type = types.nullOr types.str; | 57 | type = types.submodule { |
56 | default = "git+ssh://${cfg.repoHost}/nixos?ref=flakes#${hostName}"; | 58 | options = { |
59 | flake = mkOption { | ||
60 | type = types.attrs; | ||
61 | }; | ||
62 | flakeOutput = mkOption { | ||
63 | type = types.str; | ||
64 | }; | ||
65 | name = mkOption { | ||
66 | type = types.str; | ||
67 | default = "machines"; | ||
68 | }; | ||
69 | }; | ||
70 | }; | ||
71 | default = { flake.url = "git+ssh://${cfg.repoHost}/nixos?ref=flakes"; flakeOutput = hostName; }; | ||
57 | description = '' | 72 | description = '' |
58 | The Flake URI of the NixOS configuration to build. | 73 | The Flake URI of the NixOS configuration to build. |
59 | ''; | 74 | ''; |
@@ -136,5 +151,12 @@ in { | |||
136 | Persistent = true; | 151 | Persistent = true; |
137 | }; | 152 | }; |
138 | }; | 153 | }; |
154 | |||
155 | nix.registry = lib.mkIf (cfg.flake != null) { | ||
156 | ${cfg.flake.name} = { | ||
157 | exact = false; | ||
158 | to = cfg.flake.flake; | ||
159 | }; | ||
160 | }; | ||
139 | }; | 161 | }; |
140 | } | 162 | } |
diff --git a/system-profiles/rebuild-machines/rebuild-machine.zsh b/system-profiles/rebuild-machines/rebuild-machine.zsh index c06ef0e4..e018e7a7 100644 --- a/system-profiles/rebuild-machines/rebuild-machine.zsh +++ b/system-profiles/rebuild-machines/rebuild-machine.zsh | |||
@@ -7,4 +7,4 @@ fi | |||
7 | export NIX_SSHOPTS="-F @sshConfig@" | 7 | export NIX_SSHOPTS="-F @sshConfig@" |
8 | export GIT_SSH_COMMAND="@openssh@/bin/ssh -F @sshConfig@" | 8 | export GIT_SSH_COMMAND="@openssh@/bin/ssh -F @sshConfig@" |
9 | export GIT_CONFIG_COUNT=1 GIT_CONFIG_KEY_0="init.defaultBranch" GIT_CONFIG_VALUE_0=main | 9 | export GIT_CONFIG_COUNT=1 GIT_CONFIG_KEY_0="init.defaultBranch" GIT_CONFIG_VALUE_0=main |
10 | exec -- @nixosRebuild@/bin/nixos-rebuild --refresh --flake '@flake@' ${@:-switch} | 10 | exec -- @nixosRebuild@/bin/nixos-rebuild --refresh --flake '@flake@#@flakeOutput@' ${@:-switch} |
diff --git a/user-profiles/core.nix b/user-profiles/core.nix index cb2c400e..cf5db3b6 100644 --- a/user-profiles/core.nix +++ b/user-profiles/core.nix | |||
@@ -1,14 +1,21 @@ | |||
1 | { flake, userName, lib, ... }: | 1 | { flake, userName, config, lib, utils, ... }: |
2 | { | 2 | { |
3 | users.users.${userName} = {}; # Just make sure the user is created | 3 | config = { |
4 | 4 | users.users.${userName} = {}; # Just make sure the user is created | |
5 | home-manager.users.${userName} = { | 5 | |
6 | imports = lib.attrValues flake.homeModules; | 6 | home-manager.users.${userName} = { |
7 | 7 | imports = lib.attrValues flake.homeModules; | |
8 | config = { | 8 | |
9 | manual.manpages.enable = true; | 9 | config = { |
10 | home.stateVersion = "20.09"; | 10 | manual.manpages.enable = true; |
11 | systemd.user.startServices = "sd-switch"; | 11 | home.stateVersion = "20.09"; |
12 | systemd.user.startServices = "sd-switch"; | ||
13 | |||
14 | }; | ||
15 | }; | ||
16 | |||
17 | systemd.services."home-manager-${utils.escapeSystemdPath userName}" = lib.mkIf config.home-manager.enableSystemd { | ||
18 | enable = false; # deploy with deploy-rs | ||
12 | }; | 19 | }; |
13 | }; | 20 | }; |
14 | } | 21 | } |