Files
infra/modules/clan/home-profiles/home-user/default.nix
2026-01-15 10:26:57 +07:00

65 lines
1.7 KiB
Nix

{ ... }:
{
_class = "clan.service";
manifest.name = "common-user-home-manager";
manifest.description = "General users' home-manager profile generator";
manifest.readme = "General users' home-manager profile generator";
manifest.categories = [ "System" ];
roles.default = {
description = "a default role for the user";
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;
xkb.options = settings.kbOptions;
};
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users.${username} = ./home.nix;
home-manager.extraSpecialArgs = {
inherit inputs username;
};
};
};
};
}