diff --git a/common/users/qenya.nix b/common/users/qenya.nix index e9d11ad..19dc8ed 100644 --- a/common/users/qenya.nix +++ b/common/users/qenya.nix @@ -11,4 +11,9 @@ in { }; programs.zsh.enable = true; + + home-manager.users.qenya = { config, lib, pkgs, osConfig, ... }: { + home.homeDirectory = osConfig.users.users.qenya.home; + imports = [ ../../home/qenya ]; + }; } diff --git a/flake.nix b/flake.nix index 4680f54..98baa2a 100644 --- a/flake.nix +++ b/flake.nix @@ -27,19 +27,6 @@ }; outputs = inputs@{ self, nixpkgs, home-manager, plasma-manager, nur, agenix, birdsong, ... }: { - # The name of this output type is not standardised. I have picked - # "homeManagerModules" as the discussion here suggests it's the most common: - # https://github.com/nix-community/home-manager/issues/1783 - # - # However, note CppNix >= 2.22.3, >= 2.24 has blessed "homeModules": - # https://github.com/NixOS/nix/pull/10858 - homeManagerModules."qenya" = { config, lib, pkgs, ... }: { - imports = [ - plasma-manager.homeManagerModules.plasma-manager - ./home/qenya - ]; - }; - colmena = { meta = { nixpkgs = import nixpkgs { system = "x86_64-linux"; }; @@ -48,7 +35,7 @@ }; }; - defaults = { name, nodes, ... }: { + defaults = { name, nodes, config, ... }: { networking.hostName = name; nix.settings.experimental-features = "nix-command flakes"; @@ -56,10 +43,7 @@ nixpkgs.config.allowUnfree = true; nixpkgs.overlays = [ nur.overlay ]; - - # TODO: make this or something like it work without infinite recursion - # home-manager.users."qenya" = lib.mkIf (config.users.users ? "qenya") self.homeManagerModules."qenya"; - home-manager.users."qenya" = self.homeManagerModules."qenya"; + home-manager.sharedModules = [ plasma-manager.homeManagerModules.plasma-manager ]; imports = [ home-manager.nixosModules.home-manager diff --git a/home/qenya/plasma/default.nix b/home/qenya/plasma/default.nix index f35d05c..6624109 100644 --- a/home/qenya/plasma/default.nix +++ b/home/qenya/plasma/default.nix @@ -1,11 +1,19 @@ { config, lib, pkgs, osConfig, ... }: let + inherit (lib) mkIf; isPlasma = osConfig.services.desktopManager.plasma6.enable || osConfig.services.xserver.desktopManager.plasma5.enable; in { - programs.plasma.enable = isPlasma; - programs.plasma.overrideConfig = true; + # FIXME: this mkIf is necessary because home/qenya is imported into shaw here: + # https://github.com/randomnetcat/nix-configs/blob/75d491dc6904475e43a820287edf3cf2f89abcfb/hosts/shaw/birdsong.nix#L74 + # shaw doesn't understand programs.plasma because randomcat doesn't import + # plasma-manager, and is unwilling to because none of her machines run KDE. + # This probably can't be fixed until we merge our configs completely. + programs = mkIf isPlasma { + plasma.enable = isPlasma; + plasma.overrideConfig = true; + }; imports = [ ]; }