From b2f3a18b21ba86c0bb3931d63db49b8d8870b6f1 Mon Sep 17 00:00:00 2001 From: kurogeek Date: Wed, 14 Jan 2026 13:36:16 +0700 Subject: [PATCH] mob next [ci-skip] [ci skip] [skip ci] lastFile:modules/clan/home-profiles/common-user/default.nix --- .../home-profiles/common-user/default.nix | 68 +++++++++++++++++++ .../clan/home-profiles/common-user/home.nix | 24 +++++++ modules/clan/home-profiles/emmie/default.nix | 0 modules/clan/home-profiles/flake-module.nix | 2 +- modules/home-manager/emmie/default.nix | 2 +- modules/home-manager/emmie/home.nix | 4 +- 6 files changed, 95 insertions(+), 5 deletions(-) create mode 100644 modules/clan/home-profiles/common-user/default.nix create mode 100644 modules/clan/home-profiles/common-user/home.nix delete mode 100644 modules/clan/home-profiles/emmie/default.nix 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;