summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorAlejandro Soto <alejandro@34project.org>2025-04-17 17:03:31 -0600
committerAlejandro Soto <alejandro@34project.org>2025-04-19 11:10:00 -0600
commit686e6e85e83770dc3ab18613ad5dad50ed59dda8 (patch)
tree339f1d71139af8ea3fc60d1a5c6083f3df8d32ed /sys
parent8153fa9abfc01d79da8cdc6f68365e4d4c4d7cf9 (diff)
sys/env: make each user have an 'install' attribute
Diffstat (limited to '')
-rw-r--r--sys/preset/user.nix3
-rw-r--r--sys/seat/default.nix79
-rw-r--r--sys/web/sites/host.nix3
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}";