summaryrefslogtreecommitdiff
path: root/shared/nixos-and-darwin/common-hm-settings/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'shared/nixos-and-darwin/common-hm-settings/default.nix')
-rw-r--r--shared/nixos-and-darwin/common-hm-settings/default.nix27
1 files changed, 27 insertions, 0 deletions
diff --git a/shared/nixos-and-darwin/common-hm-settings/default.nix b/shared/nixos-and-darwin/common-hm-settings/default.nix
new file mode 100644
index 0000000..4c02005
--- /dev/null
+++ b/shared/nixos-and-darwin/common-hm-settings/default.nix
@@ -0,0 +1,27 @@
+# This module sets common settings related to home-manager (HM). All hosts that
+# I directly interact with should include this module.
+#
+# NOTE: This lives under `shared/nixos-and-darwin`. The configuration in here
+# should be compatible with both nixos and nix-darwin!!
+{
+ flakeInputs,
+ flakeOutputs,
+ metadata,
+ ...
+}: {
+ # FIXME: Ideally this module would import flakeInputs.home-manager but that causes an infinite recursion for some reason.
+
+ # Use the flake input pkgs so Home Manager configuration can share overlays
+ # etc. with the rest of the configuration.
+ home-manager.useGlobalPkgs = true;
+
+ # Pass special arguments from flake.nix further down the chain. I really hate
+ # this split module system.
+ home-manager.extraSpecialArgs = {inherit flakeInputs flakeOutputs metadata;};
+
+ # All interactive systems (i.e. the ones that would use HM) have a 'linus' user.
+ home-manager.users.linus = {
+ imports = builtins.attrValues flakeOutputs.homeModules;
+ xdg.enable = true;
+ };
+}