diff --git a/modules/clan/home-profiles/common-user/default.nix b/modules/clan/home-profiles/common-user/default.nix new file mode 100644 index 0000000..b191b14 --- /dev/null +++ b/modules/clan/home-profiles/common-user/default.nix @@ -0,0 +1,68 @@ +{ ... }: +{ + _class = "clan.service"; + manifest.name = "common-user-home-manager"; + manifest.description = "General users' home-manager profile generator"; + manifest.categories = [ "System" ]; + + roles.default = { + interface = + { lib, ... }: + { + options = { + username = lib.mkOption { + type = lib.types.str; + }; + kbLayout = lib.mkOption { + type = lib.types.str; + default = "us"; + }; + kbOptions = lib.mkOption { + type = lib.types.str; + default = "grp:win_space_toggle"; + }; + }; + }; + perInstance = + { + settings, + ... + }: + { + nixosModule = + { + inputs, + ... + }: + let + username = settings.username; + in + { + imports = [ inputs.home-manager.nixosModules.home-manager ]; + + users.users.${username} = { + initialPassword = ""; + isNormalUser = true; + extraGroups = [ + "audio" + "video" + "networkmanager" + ]; + }; + + services.xserver = { + enable = true; + xkb.layout = settings.kbLayout; + xkbOptions = settings.kbOptions; + }; + + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.users.${username} = ./home.nix; + home-manager.extraSpecialArgs = { + inherit inputs username; + }; + }; + }; + }; +} diff --git a/modules/clan/home-profiles/common-user/home.nix b/modules/clan/home-profiles/common-user/home.nix new file mode 100644 index 0000000..fa9d0c1 --- /dev/null +++ b/modules/clan/home-profiles/common-user/home.nix @@ -0,0 +1,24 @@ +{ + osConfig, + pkgs, + lib, + username, + ... +}: +{ + home = { + inherit username; + homeDirectory = lib.mkForce "/home/${username}"; + stateVersion = osConfig.system.stateVersion; + packages = with pkgs; [ + libreoffice + element-desktop + brave + firefox + keepassxc + vlc + thunderbird + ]; + }; + programs.home-manager.enable = true; +} diff --git a/modules/clan/home-profiles/emmie/default.nix b/modules/clan/home-profiles/emmie/default.nix deleted file mode 100644 index e69de29..0000000 diff --git a/modules/clan/home-profiles/flake-module.nix b/modules/clan/home-profiles/flake-module.nix index 09904e1..29fcb78 100644 --- a/modules/clan/home-profiles/flake-module.nix +++ b/modules/clan/home-profiles/flake-module.nix @@ -1,6 +1,6 @@ { lib, ... }: { clan.modules = { - emmie = lib.modules.importApply ./emmie { }; + commonUser = lib.modules.importApply ./common-user { }; }; } diff --git a/modules/home-manager/emmie/default.nix b/modules/home-manager/emmie/default.nix index 22c863b..c9fc5bf 100644 --- a/modules/home-manager/emmie/default.nix +++ b/modules/home-manager/emmie/default.nix @@ -28,6 +28,6 @@ in home-manager.useUserPackages = true; home-manager.users.${username} = ./home.nix; home-manager.extraSpecialArgs = { - inherit inputs; + inherit inputs username; }; } diff --git a/modules/home-manager/emmie/home.nix b/modules/home-manager/emmie/home.nix index 5a7896d..fa9d0c1 100644 --- a/modules/home-manager/emmie/home.nix +++ b/modules/home-manager/emmie/home.nix @@ -2,11 +2,9 @@ osConfig, pkgs, lib, + username, ... }: -let - username = "emmie"; -in { home = { inherit username;