From 686e6e85e83770dc3ab18613ad5dad50ed59dda8 Mon Sep 17 00:00:00 2001 From: Alejandro Soto Date: Thu, 17 Apr 2025 17:03:31 -0600 Subject: sys/env: make each user have an 'install' attribute --- sys/preset/user.nix | 3 +- sys/seat/default.nix | 79 ++++++++++++++++++++------------------------------ sys/web/sites/host.nix | 3 +- 3 files changed, 36 insertions(+), 49 deletions(-) diff --git a/sys/preset/user.nix b/sys/preset/user.nix index e0b3b9e..b9b868d 100644 --- a/sys/preset/user.nix +++ b/sys/preset/user.nix @@ -10,6 +10,8 @@ in config = lib.mkIf cfg.enable { local = { + installUsers = mkDefault "single"; + auth = { oath.enable = mkDefault true; @@ -54,7 +56,6 @@ in seat = { enable = true; graphical = mkDefault true; - installUsers = mkDefault "single"; }; }; }; diff --git a/sys/seat/default.nix b/sys/seat/default.nix index 395cb88..b1d428d 100644 --- a/sys/seat/default.nix +++ b/sys/seat/default.nix @@ -2,16 +2,12 @@ with lib; let cfg = config.local.seat; - users = filterAttrs; + users = filterAttrs (_: user: user.install) config.local.users; in { options.local.seat = { enable = mkEnableOption "user seat"; - installUsers = mkOption { - type = types.enum [ "none" "single" "all" ]; - }; - graphical = mkOption { type = types.bool; default = false; @@ -29,58 +25,47 @@ in config = mkIf cfg.enable (mkMerge [ - ( - let - users = - if cfg.installUsers == "all" - then config.local.users - else if cfg.installUsers == "single" - then filterAttrs (_: user: user.sysadmin) config.local.users - else { }; - in - { - hardware = { - acpilight.enable = true; - pulseaudio.enable = false; - }; - - security.rtkit.enable = true; + ({ + hardware = { + acpilight.enable = true; + pulseaudio.enable = false; + }; - services.pipewire = { - enable = true; + security.rtkit.enable = true; - alsa = { - enable = true; - support32Bit = true; - }; + services.pipewire = { + enable = true; - jack.enable = true; - pulse.enable = true; - wireplumber.enable = true; + alsa = { + enable = true; + support32Bit = true; }; - users = { - groups = mapAttrs (_: user: { inherit (user) gid; }) users // { - adbusers.gid = 1008; - }; + jack.enable = true; + pulse.enable = true; + wireplumber.enable = true; + }; - users = mapAttrs - (username: user: { - isNormalUser = true; + users = { + groups = mapAttrs (_: user: { inherit (user) gid; }) users // { + adbusers.gid = 1008; + }; - inherit (user) uid; - description = user.gecos; + users = mapAttrs + (username: user: { + isNormalUser = true; - group = username; - extraGroups = [ "users" ] ++ user.groups; + inherit (user) uid; + description = user.gecos; - shell = if user.allowLogin then pkgs.zsh else null; - }) - users; - }; - } - ) + group = username; + extraGroups = [ "users" ] ++ user.groups; + shell = if user.allowLogin then pkgs.zsh else null; + }) + users; + }; + }) (mkIf cfg.graphical { environment = { sessionVariables.NIXOS_OZONE_WL = "1"; diff --git a/sys/web/sites/host.nix b/sys/web/sites/host.nix index c1f028a..32ef1a6 100644 --- a/sys/web/sites/host.nix +++ b/sys/web/sites/host.nix @@ -2,9 +2,10 @@ with lib; let cfg = config.local.web.sites.host; - inherit (config.local) domains users; + inherit (config.local) domains; inherit (config.local.net) hostname; + users = filterAttrs (_: user: user.install) config.local.users; hostDomain = domains.${hostDomainName}; hostDomainName = "host-${hostname}"; -- cgit v1.2.3