diff options
Diffstat (limited to 'modules')
23 files changed, 42 insertions, 574 deletions
diff --git a/modules/desktop/home/default.nix b/modules/desktop/home/default.nix index 47d8687..98b6059 100644 --- a/modules/desktop/home/default.nix +++ b/modules/desktop/home/default.nix @@ -1,14 +1,9 @@ -let - findPrograms = - builtins.attrValues - (builtins.mapAttrs - (file: type: ./programs/${file}) - (builtins.readDir ./programs)); -in { - imports = - [ - ./environments/gnome - ./gtk - ] - ++ findPrograms; +{ + imports = [ + ./environments/gnome + ./gtk + + ./programs/firefox/default.nix + ./programs/blackbox.nix + ]; } diff --git a/modules/desktop/home/environments/hyprland/default.nix b/modules/desktop/home/environments/hyprland/default.nix deleted file mode 100644 index 85abeaa..0000000 --- a/modules/desktop/home/environments/hyprland/default.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ - config, - lib, - ... -}: let - cfg = config.collinux.desktop.hyprland; -in { - imports = [ - ./hyprland - ./dunst.nix - ./fuzzel.nix - ./waybar - ]; -} diff --git a/modules/desktop/home/environments/hyprland/dunst.nix b/modules/desktop/home/environments/hyprland/dunst.nix deleted file mode 100644 index 6a5a0d1..0000000 --- a/modules/desktop/home/environments/hyprland/dunst.nix +++ /dev/null @@ -1,44 +0,0 @@ -{ - config, - lib, - ... -}: let - cfg = config.collinux.desktop.hyprland.components.dunst; -in - lib.mkIf cfg.enable { - services.dunst = { - enable = true; - settings = lib.mkMerge [ - { - global = { - offset = "8x30"; - origin = "top-right"; - transparency = 10; - font = "Iosevka Nerd Font"; - }; - } - (lib.mkIf (cfg.theme == "catppuccin") { - global = { - frame_color = "#89b4fa"; - highlight = "#89b4fa"; - }; - - urgency_low = { - background = "#1e1e2e"; - foreground = "#cdd6f4"; - }; - - urgency_normal = { - background = "#1e1e2e"; - foreground = "#cdd6f4"; - }; - - urgency_critical = { - background = "#1e1e2e"; - foreground = "#cdd6f4"; - frame_color = "#fab387"; - }; - }) - ]; - }; - } diff --git a/modules/desktop/home/environments/hyprland/fuzzel.nix b/modules/desktop/home/environments/hyprland/fuzzel.nix deleted file mode 100644 index 6dca3fb..0000000 --- a/modules/desktop/home/environments/hyprland/fuzzel.nix +++ /dev/null @@ -1,44 +0,0 @@ -{ - lib, - config, - ... -}: let - cfg = config.collinux.desktop.hyprland.components.fuzzel; -in - lib.mkIf cfg.enable { - programs.fuzzel = { - enable = true; - settings = { - main = { - prompt = " "; - dpi-aware = false; - - font = "Iosevka Nerd Font"; - line-height = 25; - lines = 10; - width = 30; - - horizontal-pad = 8; - vertical-pad = 8; - }; - border = { - radius = 0; - width = 2; - }; - - colors = lib.mkIf (cfg.theme == "catppuccin") { - background = "1e1e2edd"; - text = "cdd6f4ff"; - prompt = "bac2deff"; - placeholder = "7f849cff"; - input = "cdd6f4ff"; - match = "89b4faff"; - selection = "585b70ff"; - selection-text = "cdd6f4ff"; - selection-match = "89b4faff"; - counter = "7f849cff"; - border = "89b4faff"; - }; - }; - }; - } diff --git a/modules/desktop/home/environments/hyprland/hyprland/catppuccin.conf b/modules/desktop/home/environments/hyprland/hyprland/catppuccin.conf deleted file mode 100644 index 572cb7e..0000000 --- a/modules/desktop/home/environments/hyprland/hyprland/catppuccin.conf +++ /dev/null @@ -1,79 +0,0 @@ -$rosewater = rgb(f5e0dc) -$rosewaterAlpha = f5e0dc - -$flamingo = rgb(f2cdcd) -$flamingoAlpha = f2cdcd - -$pink = rgb(f5c2e7) -$pinkAlpha = f5c2e7 - -$mauve = rgb(cba6f7) -$mauveAlpha = cba6f7 - -$red = rgb(f38ba8) -$redAlpha = f38ba8 - -$maroon = rgb(eba0ac) -$maroonAlpha = eba0ac - -$peach = rgb(fab387) -$peachAlpha = fab387 - -$yellow = rgb(f9e2af) -$yellowAlpha = f9e2af - -$green = rgb(a6e3a1) -$greenAlpha = a6e3a1 - -$teal = rgb(94e2d5) -$tealAlpha = 94e2d5 - -$sky = rgb(89dceb) -$skyAlpha = 89dceb - -$sapphire = rgb(74c7ec) -$sapphireAlpha = 74c7ec - -$blue = rgb(89b4fa) -$blueAlpha = 89b4fa - -$lavender = rgb(b4befe) -$lavenderAlpha = b4befe - -$text = rgb(cdd6f4) -$textAlpha = cdd6f4 - -$subtext1 = rgb(bac2de) -$subtext1Alpha = bac2de - -$subtext0 = rgb(a6adc8) -$subtext0Alpha = a6adc8 - -$overlay2 = rgb(9399b2) -$overlay2Alpha = 9399b2 - -$overlay1 = rgb(7f849c) -$overlay1Alpha = 7f849c - -$overlay0 = rgb(6c7086) -$overlay0Alpha = 6c7086 - -$surface2 = rgb(585b70) -$surface2Alpha = 585b70 - -$surface1 = rgb(45475a) -$surface1Alpha = 45475a - -$surface0 = rgb(313244) -$surface0Alpha = 313244 - -$base = rgb(1e1e2e) -$baseAlpha = 1e1e2e - -$mantle = rgb(181825) -$mantleAlpha = 181825 - -$crust = rgb(11111b) -$crustAlpha = 11111b - -$accent = $mauve diff --git a/modules/desktop/home/environments/hyprland/hyprland/default.nix b/modules/desktop/home/environments/hyprland/hyprland/default.nix deleted file mode 100644 index 1c3c2b8..0000000 --- a/modules/desktop/home/environments/hyprland/hyprland/default.nix +++ /dev/null @@ -1,96 +0,0 @@ -{ - config, - pkgs, - lib, - ... -}: let - cfg = config.collinux.desktop.hyprland; -in - lib.mkIf cfg.enable { - home.file."${config.xdg.configHome}/uwsm/env" = lib.mkIf cfg.useUwsm { - text = ''export QT_QPA_PLATFORM=wayland''; - }; - - home.packages = with pkgs; [wl-clipboard hyprshot brightnessctl]; - - wayland.windowManager.hyprland = { - enable = true; - systemd.enable = !cfg.useUwsm; # conflicts with uwsm - - settings = { - source = "${./catppuccin.conf}"; - - xwayland.enabled = false; # all of my apps are compatible with wayland - general = { - "col.active_border" = "$accent"; - "col.inactive_border" = "$base"; - border_size = 2; - gaps_in = 5; - gaps_out = 8; - }; - - # TODO these should be dependent on what applications are enabled - bind = - [ - "Mod4, q, killactive" - "Mod4, x, exec, footclient" - "Mod4, b, exec, firefox" - "Mod4, h, exec, obsidian" - "Mod4, SPACE, exec, fuzzel" - ] - ++ ( - # workspaces - # binds $mod + [shift +] {1..9} to [move to] workspace {1..9} - builtins.concatLists (builtins.genList ( - i: let - ws = i + 1; - in [ - "Mod4, code:1${toString i}, workspace, ${toString ws}" - "Mod4 SHIFT, code:1${toString i}, movetoworkspace, ${toString ws}" - ] - ) - 9) - ); - - binde = [ - ", XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+" - ", XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-" - - ", XF86MonBrightnessUp, exec, brightnessctl s 5%+" - ", XF86MonBrightnessDown, exec, brightnessctl s 5%-" - ]; - - bindm = [ - "Mod4, mouse:272, movewindow" - "Mod4, mouse:273, resizewindow" - ]; - - monitor = ", prefred, auto, 1"; - animations = { - bezier = [ - "ease, 0.25, 0.1, 0.25, 1" - "menu_decel, 0.1, 1, 0, 1" - ]; - animation = [ - "workspaces, 1, 2, ease" - "workspaces, 1, 7, menu_decel, slidefade 15%" - "global, 1, 2.5, ease" - "windowsIn, 1, 2.75, ease, slide" - "windowsOut, 1.275, ease, slide" - ]; - }; - misc.disable_hyprland_logo = true; - }; - }; - - home.file."Pictures/wallpaper.jpg".source = ./wallpaper.jpg; - - services.hyprpaper = { - enable = true; - settings = { - ipc = false; - preload = ["Pictures/wallpaper.jpg"]; - wallpaper = ",Pictures/wallpaper.jpg"; - }; - }; - } diff --git a/modules/desktop/home/environments/hyprland/hyprland/wallpaper.jpg b/modules/desktop/home/environments/hyprland/hyprland/wallpaper.jpg Binary files differdeleted file mode 100644 index 039afcc..0000000 --- a/modules/desktop/home/environments/hyprland/hyprland/wallpaper.jpg +++ /dev/null diff --git a/modules/desktop/home/environments/hyprland/waybar/catppuccin.scss b/modules/desktop/home/environments/hyprland/waybar/catppuccin.scss deleted file mode 100644 index 0eb6a82..0000000 --- a/modules/desktop/home/environments/hyprland/waybar/catppuccin.scss +++ /dev/null @@ -1,26 +0,0 @@ -@define-color rosewater #f5e0dc; -@define-color flamingo #f2cdcd; -@define-color pink #f5c2e7; -@define-color mauve #cba6f7; -@define-color red #f38ba8; -@define-color maroon #eba0ac; -@define-color peach #fab387; -@define-color yellow #f9e2af; -@define-color green #a6e3a1; -@define-color teal #94e2d5; -@define-color sky #89dceb; -@define-color sapphire #74c7ec; -@define-color blue #89b4fa; -@define-color lavender #b4befe; -@define-color text #cdd6f4; -@define-color subtext1 #bac2de; -@define-color subtext0 #a6adc8; -@define-color overlay2 #9399b2; -@define-color overlay1 #7f849c; -@define-color overlay0 #6c7086; -@define-color surface2 #585b70; -@define-color surface1 #45475a; -@define-color surface0 #313244; -@define-color base #1e1e2e; -@define-color mantle #181825; -@define-color crust #11111b; diff --git a/modules/desktop/home/environments/hyprland/waybar/config.nix b/modules/desktop/home/environments/hyprland/waybar/config.nix deleted file mode 100644 index 7afa83c..0000000 --- a/modules/desktop/home/environments/hyprland/waybar/config.nix +++ /dev/null @@ -1,59 +0,0 @@ -{pkgs, ...}: { - spacing = 4; - modules-left = ["custom/launcher" "hyprland/workspaces"]; - modules-center = ["hyprland/window"]; - modules-right = ["bluetooth" "wireplumber" "battery" "clock" "custom/power"]; - - "custom/launcher" = { - format = " "; - on-click = "${pkgs.fuzzel}/bin/fuzzel"; - }; - "hyprland/workspaces" = { - disable-scroll = true; - all-outputs = true; - warp-on-scroll = false; - format = "{icon}"; - format-icons = { - "1" = ""; - "2" = ""; - "3" = ""; - "4" = ""; - "5" = ""; - }; - }; - "hyprland/window" = { - on-click = "hyprctl dispatch float"; - }; - "bluetooth" = { - format = ""; - format-connected = " {device_alias}"; - }; - "battery" = { - format = "{icon} {capacity}%"; - format-alt = "{icon}"; - format-icons = [" " " " " " " " " "]; - }; - "wireplumber" = { - format = "{icon} {volume}%"; - format-alt = "{icon}"; - format-muted = " {volume}%"; - format-icons.default = ["" "" ""]; - tooltip = false; - }; - "clock" = { - format = "{:%I:%M}"; - format-alt = "/{:%Y/%b/%d-%a}"; - tooltip = false; - }; - "custom/power" = { - format = " collin"; - tooltip = false; - menu = "on-click"; - menu-file = "${./power_menu.xml}"; - menu-actions = { - logout = "hyprctl dispatch exit"; - reboot = "reboot"; - shutdown = "poweroff"; - }; - }; -} diff --git a/modules/desktop/home/environments/hyprland/waybar/default.nix b/modules/desktop/home/environments/hyprland/waybar/default.nix deleted file mode 100644 index 3b73a78..0000000 --- a/modules/desktop/home/environments/hyprland/waybar/default.nix +++ /dev/null @@ -1,20 +0,0 @@ -{ - pkgs, - config, - lib, - ... -}: let - cfg = config.collinux.desktop.hyprland.components.waybar; -in - lib.mkIf cfg.enable { - programs.waybar = { - enable = true; - systemd.enable = true; - settings."mainBar" = import ./config.nix {inherit pkgs;}; - style = lib.mkIf (cfg.theme == "catppuccin") '' - @import "${./catppuccin.scss}"; - - ${builtins.readFile ./style.scss} - ''; - }; - } diff --git a/modules/desktop/home/environments/hyprland/waybar/power_menu.xml b/modules/desktop/home/environments/hyprland/waybar/power_menu.xml deleted file mode 100644 index 2935c89..0000000 --- a/modules/desktop/home/environments/hyprland/waybar/power_menu.xml +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<interface> - <object class="GtkMenu" id="menu"> - <child> - <object class="GtkMenuItem" id="logout"> - <property name="label">Log Out</property> - </object> - </child> - <child> - <object class="GtkSeparatorMenuItem" id="delimiter1"/> - </child> - <child> - <object class="GtkMenuItem" id="reboot"> - <property name="label">Reboot</property> - </object> - </child> - <child> - <object class="GtkMenuItem" id="shutdown"> - <property name="label">Shutdown</property> - </object> - </child> - </object> -</interface> diff --git a/modules/desktop/home/environments/hyprland/waybar/style.scss b/modules/desktop/home/environments/hyprland/waybar/style.scss deleted file mode 100644 index 7674164..0000000 --- a/modules/desktop/home/environments/hyprland/waybar/style.scss +++ /dev/null @@ -1,86 +0,0 @@ -* { - font-family: Iosevka Nerd Font; - font-size: 10pt; - min-height: 0; -} - -#waybar { - background: @base; - color: @text; -} - -#workspaces, -#clock, -#battery, -#wireplumber, -#bluetooth.connected, -#custom-power { - color: @text; - background: @surface0; - - padding: 0.5rem 1rem; - border-radius: 1rem; - - margin: 5px 0; -} - -#workspaces button { - color: @lavender; - border-radius: 1rem; - padding: 0rem 0.75rem; -} - -#workspaces button.active { - color: @sky; -} - -#workspaces button:hover { - box-shadow: inherit; - text-shadow: inherit; - background: none; - border: none; - border-color: transparent; - padding: 0 0.75rem; - margin: 0; -} - -#window { - font-size: 12pt; -} - -#custom-launcher { - color: @blue; - font-size: 12pt; - padding: 0; - margin: 0; - - margin-left: 1rem; - margin-right: 1rem; -} - -#bluetooth.connected { - color: @blue; -} - -#wireplumber { - color: @maroon; - border-radius: 1rem 0 0 1rem; - margin-left: 1rem; -} - -#battery { - color: @green; - border-radius: 0; -} - -#clock { - color: @blue; - border-radius: 0 1rem 1rem 0; - margin-right: 1rem; -} - -#custom-power { - color: @rosewater; - margin-right: 1rem; - /* border: @rosewater 1px solid; */ -}
\ No newline at end of file diff --git a/modules/terminal/home/emulators/blackbox.nix b/modules/desktop/home/programs/blackbox.nix index 7da15a9..c2d9520 100644 --- a/modules/terminal/home/emulators/blackbox.nix +++ b/modules/desktop/home/programs/blackbox.nix @@ -4,7 +4,7 @@ config, ... }: let - cfg = config.collinux.terminal.terminalEmulators.blackbox; + cfg = config.collinux.desktop.programs.blackbox; in lib.mkIf cfg.enable { home.packages = [pkgs.blackbox-terminal]; diff --git a/modules/desktop/home/programs/musescore.nix b/modules/desktop/home/programs/musescore.nix deleted file mode 100644 index 5fbf0f5..0000000 --- a/modules/desktop/home/programs/musescore.nix +++ /dev/null @@ -1,13 +0,0 @@ -{ - lib, - pkgs, - config, - ... -}: let - cfg = config.collinux.desktop.programs.musescore; -in - lib.mkIf cfg.enable { - home.packages = [pkgs.musescore]; - - # TODO: is there a way to declare a musescore configuration? - } diff --git a/modules/desktop/options.nix b/modules/desktop/options.nix index 0301373..9bc4099 100644 --- a/modules/desktop/options.nix +++ b/modules/desktop/options.nix @@ -1,21 +1,11 @@ { config, lib, + my-lib, ... }: let inherit (lib) mkOption mkEnableOption types; - - mkProgramOption' = name: extraOpts: - { - enable = mkEnableOption "whether to enable ${name}"; - theme = mkOption { - type = types.enum ["catppuccin" "adwaita"]; - default = config.collinux.terminal.theme; - }; - } - // extraOpts; - - mkProgramOption = name: mkProgramOption' name {}; + inherit (my-lib.options {inherit lib config;}) mkProgramOption; in { options = { collinux.desktop = { @@ -24,21 +14,22 @@ in { default = let cfg = config.collinux.desktop; in - if ((cfg.hyprland.enable || cfg.sway.enable) && !cfg.gnome.enable) + if (cfg.sway.enable && !cfg.gnome.enable) then "greetd" else "gdm"; }; + wallpaper = mkOption { + type = types.path; + }; + components = { waybar = mkProgramOption "waybar"; dunst = mkProgramOption "dunst"; fuzzel = mkProgramOption "fuzzel"; }; - sway = { - enable = mkEnableOption "sway"; - }; - + sway.enable = mkEnableOption "sway"; gnome.enable = mkEnableOption "gnome"; gtk.theme = mkOption { @@ -58,9 +49,9 @@ in { default = config.collinux.theme; }; }; - foot.enable = mkEnableOption "foot"; - musescore.enable = mkEnableOption "musescore"; + foot.enable = mkEnableOption "foot"; + blackbox.enable = mkEnableOption "blackbox"; }; }; }; diff --git a/modules/desktop/system/components/dunst.nix b/modules/desktop/system/components/dunst.nix index cb650a1..37fce2b 100644 --- a/modules/desktop/system/components/dunst.nix +++ b/modules/desktop/system/components/dunst.nix @@ -33,6 +33,6 @@ in lib.mkIf cfg.enable { hjem.users."${config.collinux.user.name}" = { files.".config/dunst/dunstrc".source = settings; - packages = [pkgs.dunst]; + packages = [pkgs.dunst pkgs.inotify-tools]; }; } diff --git a/modules/desktop/system/environments/sway.nix b/modules/desktop/system/environments/sway.nix index 467363a..ca5e0f7 100644 --- a/modules/desktop/system/environments/sway.nix +++ b/modules/desktop/system/environments/sway.nix @@ -38,6 +38,7 @@ settings = pkgs.writeText "config" '' exec ${pkgs.foot}/bin/foot --server exec ${pkgs.swaybg}/bin/swaybg -i ${config.collinux.desktop.wallpaper} + exec ${pkgs.dunst}/bin/dunst include catppuccin-mocha @@ -74,6 +75,9 @@ bindsym Mod4+b exec ${pkgs.firefox}/bin/firefox bindsym Mod4+q kill + bindsym XF86AudioRaiseVolume exec 'wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+; dunstify -t 300 -h string:x-canonical-private-synchronous:audio "Volume: " -h int:value:"$(dec=$(wpctl get-volume @DEFAULT_AUDIO_SINK@ | sed 's/Volume:\ //'); echo "$dec * 100" | bc)"' + bindsym XF86AudioLowerVolume exec 'wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-; dunstify -t 300 -h string:x-canonical-private-synchronous:audio "Volume: " -h int:value:"$(dec=$(wpctl get-volume @DEFAULT_AUDIO_SINK@ | sed 's/Volume:\ //'); echo "$dec * 100" | bc)"' + default_border pixel 2 smart_borders on smart_gaps on @@ -86,7 +90,7 @@ in ".config/sway/catppuccin-mocha".source = colors; }; - packages = [pkgs.sway]; + packages = [pkgs.sway pkgs.bc]; }; # Greetd diff --git a/modules/services/system/audio.nix b/modules/services/system/audio.nix index f0586ea..93f8289 100644 --- a/modules/services/system/audio.nix +++ b/modules/services/system/audio.nix @@ -7,6 +7,7 @@ cfg = config.collinux.services.audio; in lib.mkIf cfg.enable { + security.rtkit.enable = true; services.pipewire = { enable = true; wireplumber.enable = true; diff --git a/modules/terminal/home/default.nix b/modules/terminal/home/default.nix deleted file mode 100644 index a874872..0000000 --- a/modules/terminal/home/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{pkgs, ...}: { - imports = [ - ./emulators/blackbox.nix # can't do dbus with hjem - ]; -} diff --git a/modules/terminal/options.nix b/modules/terminal/options.nix index b728f99..41d1ded 100644 --- a/modules/terminal/options.nix +++ b/modules/terminal/options.nix @@ -2,21 +2,11 @@ pkgs, config, lib, + my-lib, ... }: let inherit (lib) mkOption mkEnableOption types; - - mkProgramOption' = name: extraOpts: - { - enable = mkEnableOption "whether to enable ${name}"; - theme = mkOption { - type = types.enum ["catppuccin" "adwaita"]; - default = config.collinux.terminal.theme; - }; - } - // extraOpts; - - mkProgramOption = name: mkProgramOption' name {}; + inherit (my-lib.options {inherit lib config;}) mkProgramOption' mkProgramOption; in { options = { collinux.terminal = { diff --git a/modules/terminal/system/default.nix b/modules/terminal/system/default.nix index 32ca3f9..d5cd1f5 100644 --- a/modules/terminal/system/default.nix +++ b/modules/terminal/system/default.nix @@ -1,18 +1,19 @@ { config, pkgs, + my-lib, ... }: let cfg = config.collinux.terminal.shells; in { imports = [ - ./programs/helix.nix - ./programs/tmux.nix - ./programs/fish.nix - ./programs/starship.nix - ./programs/lazygit.nix ./programs/cmus.nix + ./programs/fish.nix ./programs/git.nix + ./programs/helix.nix + ./programs/lazygit.nix + ./programs/starship.nix + ./programs/tmux.nix ]; programs.command-not-found.enable = false; # broken without nix-channels diff --git a/modules/terminal/system/programs/tmux.nix b/modules/terminal/system/programs/tmux.nix index b947d95..ecb5e21 100644 --- a/modules/terminal/system/programs/tmux.nix +++ b/modules/terminal/system/programs/tmux.nix @@ -143,13 +143,10 @@ run-shell "${scripts.bar}/bin/bar.sh" # Sessions - # set-hook -ag client-detached 'run-shell ${scripts.cleanSessions}/bin/clean-sessions.sh' - # set-hook -ag client-session-changed 'run-shell ${scripts.cleanSessions}/bin/clean-sessions.sh' + set-hook -ag client-detached 'run-shell ${scripts.cleanSessions}/bin/clean-sessions.sh' + set-hook -ag client-session-changed 'run-shell ${scripts.cleanSessions}/bin/clean-sessions.sh' bind-key -n C-f run-shell "${scripts.primeProjects}/bin/projects.sh" - bind-key -n M-1 run-shell "${scripts.primeProjects}/bin/projects.sh ~/Music" - bind-key -n M-2 run-shell "${scripts.primeProjects}/bin/projects.sh ~/Documents/brain2.0" - bind-key -n M-3 run-shell "${scripts.primeProjects}/bin/projects.sh ~/nixos" bind-key -n C-g display-popup -E -w 80% -h 80% -x C -y C -d "#{pane_current_path}" "${pkgs.lazygit}/bin/lazygit" ''; diff --git a/modules/user/system/default.nix b/modules/user/system/default.nix index 52d8116..dad00e0 100644 --- a/modules/user/system/default.nix +++ b/modules/user/system/default.nix @@ -1,16 +1,14 @@ -{config, ...}: let +{ + config, + lib, + ... +}: let cfg = config.collinux.user; in { users.users."${cfg.name}" = { isNormalUser = true; description = cfg.name; - extraGroups = - ["networkmanager" "disks"] - ++ ( - if cfg.isAdmin - then ["wheel"] - else [] - ); + extraGroups = ["networkmanager" "disks"] ++ (lib.optional cfg.isAdmin "wheel"); hashedPassword = cfg.password; }; |
