diff --git a/homes/x86_64-linux/cholli@loptland/default.nix b/homes/x86_64-linux/cholli@loptland/default.nix index 694b9c7..5f2a75c 100644 --- a/homes/x86_64-linux/cholli@loptland/default.nix +++ b/homes/x86_64-linux/cholli@loptland/default.nix @@ -17,4 +17,6 @@ with lib.wyrdgard; direnv = enabled; }; }; + + home.stateVersion = "24.11"; } diff --git a/homes/x86_64-linux/cholli@yggdrasil/default.nix b/homes/x86_64-linux/cholli@yggdrasil/default.nix index ada786b..08dfc68 100644 --- a/homes/x86_64-linux/cholli@yggdrasil/default.nix +++ b/homes/x86_64-linux/cholli@yggdrasil/default.nix @@ -2,12 +2,11 @@ lib, pkgs, config, - namespace, osConfig ? { }, format ? "unknown", ... }: -with lib.${namespace}; +with lib.wyrdgard; { wyrdgard = { apps = { @@ -18,4 +17,6 @@ with lib.${namespace}; direnv = enabled; }; }; + + home.stateVersion = "23.11"; } diff --git a/modules/nixos/desktop/addons/hypridle/default.nix b/modules/nixos/desktop/addons/hypridle/default.nix index 7b93adb..d0b4285 100644 --- a/modules/nixos/desktop/addons/hypridle/default.nix +++ b/modules/nixos/desktop/addons/hypridle/default.nix @@ -7,7 +7,10 @@ }: let inherit (lib) mkIf mkEnableOption; + cfg = config.${namespace}.desktop.addons.hypridle; + + username = config.${namespace}.user.name; in { options.${namespace}.desktop.addons.hypridle = { @@ -15,7 +18,7 @@ in }; config = mkIf cfg.enable { - ${namespace}.home.extraOptions = { + snowfallorg.users.${username}.home.config = { services.hypridle = { enable = true; settings = { diff --git a/modules/nixos/home/default.nix b/modules/nixos/home/default.nix index 3aa9b52..2d04c35 100644 --- a/modules/nixos/home/default.nix +++ b/modules/nixos/home/default.nix @@ -20,15 +20,15 @@ in }; config = { - snowfallorg.users.${config.${namespace}.user.name}.home.config = mkMerge [ - { - home.stateVersion = config.system.stateVersion; - home.file = mkAliasDefinitions options.${namespace}.home.file; - xdg.enable = true; - xdg.configFile = mkAliasDefinitions options.${namespace}.home.configFile; - } - config.${namespace}.home.extraOptions - ]; + ${namespace}.home.extraOptions = { + home.stateVersion = config.system.stateVersion; + home.file = mkAliasDefinitions options.${namespace}.home.file; + xdg.enable = true; + xdg.configFile = mkAliasDefinitions options.${namespace}.home.configFile; + }; + + snowfallorg.users.${config.${namespace}.user.name}.home.config = + config.${namespace}.home.extraOptions; home-manager = { useUserPackages = true; diff --git a/modules/nixos/submodules/basics/default.nix b/modules/nixos/submodules/basics/default.nix index 164a613..bdc697b 100644 --- a/modules/nixos/submodules/basics/default.nix +++ b/modules/nixos/submodules/basics/default.nix @@ -33,14 +33,7 @@ in ]; ${namespace} = { - nix = { - enable = true; - extra-substituters = { - "https://nix-community.cachix.org" = { - key = "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="; - }; - }; - }; + nix = enabled; apps.cli-apps.helix = enabled; diff --git a/modules/nixos/user/default.nix b/modules/nixos/user/default.nix index 4614d03..62fb307 100644 --- a/modules/nixos/user/default.nix +++ b/modules/nixos/user/default.nix @@ -2,6 +2,7 @@ config, lib, namespace, + options, pkgs, ... }: @@ -10,6 +11,33 @@ with lib.${namespace}; let cfg = config.${namespace}.user; defaultIconFileName = "profile.png"; + defaultIcon = pkgs.stdenvNoCC.mkDerivation { + name = "default-icon"; + src = ./. + "/${defaultIconFileName}"; + + dontUnpack = true; + + installPhase = '' + cp $src $out + ''; + + passthru = { + fileName = defaultIconFileName; + }; + }; + propagatedIcon = + pkgs.runCommandNoCC "propagated-icon" + { + passthru = { + inherit (fileName) ; + }; + } + '' + local target="$out/share/${namespace}-icons/user/${cfg.name}" + mkdir -p "$target" + + cp ${cfg.icon} "$target/${cfg.icon.fileName}" + ''; in { options.${namespace}.user = with types; { @@ -17,7 +45,7 @@ in fullName = mkOpt str "Christoph Hollizeck" "The full name of the user."; email = mkOpt str "christoph.hollizeck@hey.com" "The email of the user."; initialPassword = mkOpt str "asdf" "The initial password to use when the user is first created."; - icon = mkOpt (nullOr path) ./${defaultIconFileName} "The profile picture to use for the user."; + icon = mkOpt (nullOr package) defaultIcon "The profile picture to use for the user."; extraGroups = mkOpt (listOf str) [ ] "Groups for the user to be assigned."; extraOptions = mkOpt attrs { } (mdDoc "Extra options passed to `users.users.`."); trustedPublicKeys = mkOption { @@ -50,7 +78,7 @@ in "Videos/.keep".text = ""; "projects/.keep".text = ""; ".face".source = cfg.icon; - "Pictures/${defaultIconFileName}".source = cfg.icon; + "Pictures/${cfg.icon.fileName or (builtins.baseNameOf cfg.icon)}".source = cfg.icon; }; }; diff --git a/modules/nixos/user/profile.png b/modules/nixos/user/profile.png index 4ddf174..de33904 100644 Binary files a/modules/nixos/user/profile.png and b/modules/nixos/user/profile.png differ diff --git a/systems/x86_64-linux/yggdrasil/default.nix b/systems/x86_64-linux/yggdrasil/default.nix index aedfd27..444360d 100644 --- a/systems/x86_64-linux/yggdrasil/default.nix +++ b/systems/x86_64-linux/yggdrasil/default.nix @@ -28,9 +28,6 @@ in programs.ssh.extraConfig = '' AddressFamily inet ''; - home-manager = { - backupFileExtension = ".bak"; - }; ${namespace} = { archetypes = { @@ -79,7 +76,7 @@ in windowrulev2 = [ "workspace 8 silent, class:^(steam)$, title:^(Friends List)" - "workspace 8 silent, class:^(vesktop)$, title:^(Discord)" + "workspace 8 silent, class:^(discord)$, title:^(Discord)" "workspace 7 silent, class:^(com.obsproject.Studio)$" ]; };