From 2e0f6163f61cb1e4195f1a08ad1148e57a4f5843 Mon Sep 17 00:00:00 2001 From: Arpit Chakladar Date: Sun, 2 Aug 2026 18:18:07 +0530 Subject: feat: Added package option to each module, darkman service - Added package options to each module which defines the package/derivation that should be used in all other modules - Added a systemd oneshot service that autosets darkman to dark mode - Removed the prompt from rofi --- modules/communication/neomutt/default.nix | 25 +--- modules/communication/neomutt/neomutt.nix | 18 ++- modules/desktop/darkman/default.nix | 28 +++- modules/desktop/hyprland/keybindings.nix | 2 +- modules/desktop/rofi/default.nix | 10 +- modules/desktop/rofi/theme.mustache.rasi | 217 +++++++++++++++--------------- modules/desktop/waybar/default.nix | 9 ++ modules/development/delta/default.nix | 6 + modules/development/git/default.nix | 7 + modules/development/lazygit/default.nix | 6 + modules/development/nixvim/default.nix | 6 + modules/development/opencode/default.nix | 6 + modules/development/vscodium/default.nix | 6 + modules/file-management/lsd/default.nix | 6 + modules/file-management/yazi/default.nix | 1 + modules/media/swayimg/default.nix | 9 +- modules/office/zathura/default.nix | 6 + modules/scripts/usque-warp/script.sh | 6 +- modules/security/gopass/default.nix | 6 +- modules/security/gpg/default.nix | 8 ++ modules/security/ssh/default.nix | 6 + modules/system/bottom/default.nix | 9 +- modules/system/htop/default.nix | 6 + modules/terminal/bat/default.nix | 8 +- modules/terminal/fzf/default.nix | 9 +- modules/terminal/kitty/default.nix | 9 +- modules/terminal/less/default.nix | 6 + modules/terminal/starship/default.nix | 6 + modules/terminal/tmux/default.nix | 9 +- modules/terminal/zsh/default.nix | 9 +- modules/web/aria2/default.nix | 9 +- modules/web/chawan/default.nix | 6 +- modules/web/chromium/default.nix | 1 + users/arpit.nix | 1 - 34 files changed, 297 insertions(+), 185 deletions(-) diff --git a/modules/communication/neomutt/default.nix b/modules/communication/neomutt/default.nix index 4bd1800..1512465 100644 --- a/modules/communication/neomutt/default.nix +++ b/modules/communication/neomutt/default.nix @@ -2,7 +2,6 @@ { config, lib, - pkgs, ... }: { @@ -20,28 +19,8 @@ package = lib.mkOption { type = lib.types.package; - default = pkgs.symlinkJoin { - name = "neomutt-wrapped"; - paths = [ pkgs.neomutt ]; - nativeBuildInputs = [ pkgs.makeWrapper ]; - postBuild = '' - wrapProgram $out/bin/neomutt \ - --prefix PATH : ${lib.makeBinPath [ pkgs.urlscan ]} - ''; - meta.mainProgram = "neomutt"; - }; - defaultText = lib.literalExpression '' - pkgs.symlinkJoin { - name = "neomutt-wrapped"; - paths = [ pkgs.neomutt ]; - nativeBuildInputs = [ pkgs.makeWrapper ]; - postBuild = ''' - wrapProgram $out/bin/neomutt \ - --prefix PATH : ''${lib.makeBinPath [ pkgs.urlscan ]} - '''; - meta.mainProgram = "neomutt"; - } - ''; + readOnly = true; + default = config.programs.neomutt.package; description = "The neomutt package to use, wrapped with urlscan in PATH."; }; }; diff --git a/modules/communication/neomutt/neomutt.nix b/modules/communication/neomutt/neomutt.nix index 7dab1e9..997c948 100644 --- a/modules/communication/neomutt/neomutt.nix +++ b/modules/communication/neomutt/neomutt.nix @@ -1,5 +1,10 @@ # neomutt - Terminal email client -{ config, lib, ... }: +{ + config, + lib, + pkgs, + ... +}: { config = lib.mkIf config.communication.neomutt.enable { xdg.desktopEntries."neomutt" = { @@ -27,7 +32,16 @@ ''; programs.neomutt = { enable = true; - package = config.communication.neomutt.package; + package = pkgs.symlinkJoin { + name = "neomutt-wrapped"; + paths = [ pkgs.neomutt ]; + nativeBuildInputs = [ pkgs.makeWrapper ]; + postBuild = '' + wrapProgram $out/bin/neomutt \ + --prefix PATH : ${lib.makeBinPath [ pkgs.urlscan ]} + ''; + meta.mainProgram = "neomutt"; + }; sidebar.enable = true; sort = "reverse-threads"; vimKeys = true; diff --git a/modules/desktop/darkman/default.nix b/modules/desktop/darkman/default.nix index 4aef68d..9dc7ef9 100644 --- a/modules/desktop/darkman/default.nix +++ b/modules/desktop/darkman/default.nix @@ -7,12 +7,15 @@ }: { options.desktop.darkman = { - enable = lib.mkEnableOption "Enables darkman automatic dark/light mode switching." // { - default = true; + package = lib.mkOption { + type = lib.types.package; + readOnly = true; + default = config.services.darkman.package; + description = "The darkman package to use."; }; }; - config = lib.mkIf (config.desktop.enable && config.desktop.darkman.enable) { + config = lib.mkIf config.desktop.enable { services.darkman = { enable = true; settings = { @@ -32,8 +35,21 @@ }; # Always dark by default - home.activation.forceDarkman = lib.hm.dag.entryAfter [ "writeBoundary" ] '' - ${pkgs.darkman}/bin/darkman set dark || true - ''; + systemd.user.services.darkman-set-theme = { + Unit = { + Description = "Set Darkman to dark on graphical session startup"; + PartOf = [ "graphical-session.target" ]; + After = [ "graphical-session.target" ]; + }; + + Service = { + Type = "oneshot"; + ExecStart = "${lib.getExe config.desktop.darkman.package} set dark"; + }; + + Install = { + WantedBy = [ "graphical-session.target" ]; + }; + }; }; } diff --git a/modules/desktop/hyprland/keybindings.nix b/modules/desktop/hyprland/keybindings.nix index 1ac1d9a..3bc5ad3 100644 --- a/modules/desktop/hyprland/keybindings.nix +++ b/modules/desktop/hyprland/keybindings.nix @@ -38,7 +38,7 @@ in (bindMouse "mouse:272" "hl.dsp.window.drag()") # mainMod + LMB drag: move (bindMouse "mouse:273" "hl.dsp.window.resize()") # mainMod + RMB drag: resize - (lib.optionals config.desktop.rofi.enable [ + (lib.optionals config.desktop.enable [ (bind "R" (execLua "${lib.getExe config.desktop.rofi.package} -show drun")) ]) (lib.optionals config.terminal.kitty.enable [ diff --git a/modules/desktop/rofi/default.nix b/modules/desktop/rofi/default.nix index 797cbe9..d40ccbb 100644 --- a/modules/desktop/rofi/default.nix +++ b/modules/desktop/rofi/default.nix @@ -5,20 +5,17 @@ }: { options.desktop.rofi = { - enable = lib.mkEnableOption "Enables rofi launcher." // { - default = true; - }; package = lib.mkOption { type = lib.types.package; + readOnly = true; + default = config.programs.rofi.finalPackage; description = "The rofi package to use."; }; }; config = lib.mkIf config.desktop.enable { - desktop.rofi.package = lib.mkDefault config.programs.rofi.finalPackage; - programs.rofi = { - enable = config.desktop.rofi.enable; + enable = true; theme = "${config.scheme { template = builtins.readFile ./theme.mustache.rasi; extension = ".rasi"; @@ -27,7 +24,6 @@ modi = "drun"; show-icons = true; drun-display-format = "{name}"; - display-drun = "Launch"; sort = true; }; }; diff --git a/modules/desktop/rofi/theme.mustache.rasi b/modules/desktop/rofi/theme.mustache.rasi index 0dd08f8..9d161ec 100644 --- a/modules/desktop/rofi/theme.mustache.rasi +++ b/modules/desktop/rofi/theme.mustache.rasi @@ -21,166 +21,161 @@ */ * { - base00: #{{base00}}; - base01: #{{base01}}; - base02: #{{base02}}; - base03: #{{base03}}; - base04: #{{base04}}; - base05: #{{base05}}; - base06: #{{base06}}; - base07: #{{base07}}; - base08: #{{base08}}; - base09: #{{base09}}; - base0A: #{{base0A}}; - base0B: #{{base0B}}; - base0C: #{{base0C}}; - base0D: #{{base0D}}; - base0E: #{{base0E}}; - base0F: #{{base0F}}; - - background: @base00; - background-color: transparent; - foreground: @base07; - - border-color: @base07; - separatorcolor: @base02; - - selected-normal-background: @base00; - selected-normal-foreground: @base07; - selected-active-background: @base00; - selected-active-foreground: @base07; - selected-urgent-background: @base00; - selected-urgent-foreground: @base0F; - - normal-background: @base00; - normal-foreground: @base03; - active-background: @base00; - active-foreground: @base07; - urgent-background: @base00; - urgent-foreground: @base08; - - font: "FiraCode Nerd Font Bold 18"; + base00: #{{base00}}; + base01: #{{base01}}; + base02: #{{base02}}; + base03: #{{base03}}; + base04: #{{base04}}; + base05: #{{base05}}; + base06: #{{base06}}; + base07: #{{base07}}; + base08: #{{base08}}; + base09: #{{base09}}; + base0A: #{{base0A}}; + base0B: #{{base0B}}; + base0C: #{{base0C}}; + base0D: #{{base0D}}; + base0E: #{{base0E}}; + base0F: #{{base0F}}; + + background: @base00; + background-color: transparent; + foreground: @base07; + + border-color: @base07; + separatorcolor: @base02; + + selected-normal-background: @base00; + selected-normal-foreground: @base07; + selected-active-background: @base00; + selected-active-foreground: @base07; + selected-urgent-background: @base00; + selected-urgent-foreground: @base0F; + + normal-background: @base00; + normal-foreground: @base03; + active-background: @base00; + active-foreground: @base07; + urgent-background: @base00; + urgent-foreground: @base08; + + font: "FiraCode Nerd Font Bold 18"; } window { - background-color: @background; - border: 1px; - border-color: @border-color; - padding: 0; - width: 800px; - location: center; - anchor: center; + background-color: @background; + border: 1px; + border-color: @border-color; + padding: 0; + width: 800px; + location: center; + anchor: center; } mainbox { - background-color: transparent; - padding: 12px; - spacing: 12px; - children: [ "inputbar", "listview" ]; + background-color: transparent; + padding: 12px; + spacing: 12px; + children: [ "inputbar", "listview", "message" ]; } inputbar { - background-color: @background; - text-color: @foreground; - border: 1px; - border-color: @border-color; - padding: 10px 14px; - spacing: 10px; - children: [ "prompt", "entry" ]; - font: @font; -} - -prompt { - background-color: transparent; - text-color: @base0D; - font: @font; + background-color: @background; + text-color: @foreground; + border: 1px; + border-color: @border-color; + padding: 10px 14px; + spacing: 10px; + children: [ "entry" ]; + font: @font; } entry { - background-color: transparent; - text-color: @foreground; - placeholder: "Search…"; - placeholder-color: @base03; - cursor: text; - font: @font; + background-color: transparent; + text-color: @foreground; + placeholder: "Search…"; + placeholder-color: @base03; + cursor: text; + font: @font; } listview { - background-color: transparent; - columns: 1; - lines: 8; - spacing: 4px; - cycle: true; - dynamic: true; - scrollbar: false; - fixed-height: false; + background-color: transparent; + columns: 1; + lines: 8; + spacing: 4px; + cycle: true; + dynamic: true; + scrollbar: false; + fixed-height: false; } element { - background-color: transparent; - text-color: @normal-foreground; - padding: 8px 10px; - spacing: 10px; - orientation: horizontal; + background-color: transparent; + text-color: @normal-foreground; + padding: 8px 10px; + spacing: 10px; + orientation: horizontal; } element normal.normal { - background-color: @normal-background; - text-color: @normal-foreground; + background-color: @normal-background; + text-color: @normal-foreground; } element normal.active { - background-color: @active-background; - text-color: @active-foreground; + background-color: @active-background; + text-color: @active-foreground; } element normal.urgent { - background-color: @urgent-background; - text-color: @urgent-foreground; + background-color: @urgent-background; + text-color: @urgent-foreground; } element selected.normal { - background-color: @selected-normal-background; - text-color: @selected-normal-foreground; + background-color: @selected-normal-background; + text-color: @selected-normal-foreground; } element selected.active { - background-color: @selected-active-background; - text-color: @selected-active-foreground; + background-color: @selected-active-background; + text-color: @selected-active-foreground; } element selected.urgent { - background-color: @selected-urgent-background; - text-color: @selected-urgent-foreground; + background-color: @selected-urgent-background; + text-color: @selected-urgent-foreground; } element-icon { - background-color: transparent; - size: 36px; - vertical-align: 0.5; + background-color: transparent; + size: 36px; + vertical-align: 0.5; } element-text { - background-color: transparent; - text-color: inherit; - vertical-align: 0.5; - horizontal-align: 0.0; + background-color: transparent; + text-color: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; } message { - background-color: @base01; - padding: 8px 12px; + background-color: @base00; + padding: 8px 12px; } textbox { - background-color: transparent; - text-color: @foreground; + background-color: transparent; + text-color: @foreground; + font: "FiraCode Nerd Font Bold 14"; } error-message { - background-color: @base00; - text-color: @base08; - border: 1.5px; - border-color: @base08; - padding: 10px; + background-color: @base00; + text-color: @base08; + border: 1.5px; + border-color: @base08; + padding: 10px; } diff --git a/modules/desktop/waybar/default.nix b/modules/desktop/waybar/default.nix index 9872086..927d76f 100644 --- a/modules/desktop/waybar/default.nix +++ b/modules/desktop/waybar/default.nix @@ -5,6 +5,15 @@ ... }: { + options.desktop.waybar = { + package = lib.mkOption { + type = lib.types.package; + readOnly = true; + default = config.programs.waybar.package; + description = "The waybar package to use."; + }; + }; + config = lib.mkIf config.desktop.enable { programs.waybar = { enable = true; diff --git a/modules/development/delta/default.nix b/modules/development/delta/default.nix index b4ec384..bbfe9dd 100644 --- a/modules/development/delta/default.nix +++ b/modules/development/delta/default.nix @@ -7,6 +7,12 @@ { options.development.delta = { enable = lib.mkEnableOption "Enables delta."; + package = lib.mkOption { + type = lib.types.package; + readOnly = true; + default = config.programs.delta.finalPackage; + description = "The delta package to use."; + }; }; config = lib.mkIf config.development.delta.enable { diff --git a/modules/development/git/default.nix b/modules/development/git/default.nix index 587e4bf..5937c2f 100644 --- a/modules/development/git/default.nix +++ b/modules/development/git/default.nix @@ -14,6 +14,13 @@ options.development.git = { enable = lib.mkEnableOption "Enables git."; + package = lib.mkOption { + type = lib.types.package; + readOnly = true; + default = config.programs.git.package; + description = "The git package to use."; + }; + username = lib.mkOption { type = lib.types.str; description = "Git username."; diff --git a/modules/development/lazygit/default.nix b/modules/development/lazygit/default.nix index 223392a..b75ebeb 100644 --- a/modules/development/lazygit/default.nix +++ b/modules/development/lazygit/default.nix @@ -6,6 +6,12 @@ ]; options.development.lazygit = { enable = lib.mkEnableOption "Enables lazygit."; + package = lib.mkOption { + type = lib.types.package; + readOnly = true; + default = config.programs.lazygit.package; + description = "The lazygit package to use."; + }; }; config = { programs.lazygit = lib.mkIf config.development.lazygit.enable { diff --git a/modules/development/nixvim/default.nix b/modules/development/nixvim/default.nix index 7f50ed1..c212560 100644 --- a/modules/development/nixvim/default.nix +++ b/modules/development/nixvim/default.nix @@ -9,6 +9,12 @@ options.development.nixvim = { enable = lib.mkEnableOption "Enables nixvim."; + package = lib.mkOption { + type = lib.types.package; + readOnly = true; + default = config.programs.nixvim.package; + description = "The nixvim package to use."; + }; }; config = lib.mkIf config.development.nixvim.enable { diff --git a/modules/development/opencode/default.nix b/modules/development/opencode/default.nix index 83c2e79..c41918a 100644 --- a/modules/development/opencode/default.nix +++ b/modules/development/opencode/default.nix @@ -8,6 +8,12 @@ { options.development.opencode = { enable = lib.mkEnableOption "Enables opencode."; + package = lib.mkOption { + type = lib.types.package; + readOnly = true; + default = config.programs.opencode.package; + description = "The opencode package to use."; + }; }; config = lib.mkIf config.development.opencode.enable { diff --git a/modules/development/vscodium/default.nix b/modules/development/vscodium/default.nix index 4027720..28e5857 100644 --- a/modules/development/vscodium/default.nix +++ b/modules/development/vscodium/default.nix @@ -8,6 +8,12 @@ { options.development.vscodium = { enable = lib.mkEnableOption "Enables vscodium."; + package = lib.mkOption { + type = lib.types.package; + readOnly = true; + default = config.programs.vscodium.package; + description = "The vscodium package to use."; + }; }; config = lib.mkIf config.development.vscodium.enable { diff --git a/modules/file-management/lsd/default.nix b/modules/file-management/lsd/default.nix index f9a2e2b..b082989 100644 --- a/modules/file-management/lsd/default.nix +++ b/modules/file-management/lsd/default.nix @@ -3,6 +3,12 @@ { options.file-management.lsd = { enable = lib.mkEnableOption "Enables lsd."; + package = lib.mkOption { + type = lib.types.package; + readOnly = true; + default = config.programs.lsd.package; + description = "The lsd package to use."; + }; }; config = lib.mkIf config.file-management.lsd.enable { diff --git a/modules/file-management/yazi/default.nix b/modules/file-management/yazi/default.nix index 81f68f7..f9bd98a 100644 --- a/modules/file-management/yazi/default.nix +++ b/modules/file-management/yazi/default.nix @@ -10,6 +10,7 @@ enable = lib.mkEnableOption "Enables yazi."; package = lib.mkOption { type = lib.types.package; + readOnly = true; default = config.programs.yazi.finalPackage; defaultText = lib.literalExpression "config.programs.yazi.finalPackage"; description = "The yazi package to use. Defaults to the wrapped finalPackage from programs.yazi."; diff --git a/modules/media/swayimg/default.nix b/modules/media/swayimg/default.nix index 96a568d..206a993 100644 --- a/modules/media/swayimg/default.nix +++ b/modules/media/swayimg/default.nix @@ -1,19 +1,22 @@ { config, lib, - pkgs, ... }: { options.media.swayimg = { enable = lib.mkEnableOption "Enables swayimg."; - package = lib.mkPackageOption pkgs "swayimg" { }; + package = lib.mkOption { + type = lib.types.package; + readOnly = true; + default = config.programs.swayimg.package; + description = "The swayimg package to use."; + }; }; config = lib.mkIf config.media.swayimg.enable { programs.swayimg = { enable = true; - package = config.media.swayimg.package; initLua = '' swayimg.viewer.on_key("h", function() local pos = swayimg.viewer.get_position() diff --git a/modules/office/zathura/default.nix b/modules/office/zathura/default.nix index 69dbfcf..3aece2b 100644 --- a/modules/office/zathura/default.nix +++ b/modules/office/zathura/default.nix @@ -7,6 +7,12 @@ { options.office.zathura = { enable = lib.mkEnableOption "Enables zathura."; + package = lib.mkOption { + type = lib.types.package; + readOnly = true; + default = config.programs.zathura.package; + description = "The zathura package to use."; + }; }; config = lib.mkIf config.office.zathura.enable { diff --git a/modules/scripts/usque-warp/script.sh b/modules/scripts/usque-warp/script.sh index a959cc4..5736018 100644 --- a/modules/scripts/usque-warp/script.sh +++ b/modules/scripts/usque-warp/script.sh @@ -27,13 +27,11 @@ is_running() { } ensure_config() { - echo "usque config not found." echo "Creating $CONFIG_DIR..." mkdir -p "$CONFIG_DIR" + rm -f "$CONFIG" echo "Registering Cloudflare WARP account..." - yes | usque register - echo "Generating usque config..." - usque generate -o "$CONFIG" + usque -c "$CONFIG" register < <(yes) if [[ ! -f "$CONFIG" ]]; then echo "Failed to create config file: $CONFIG" exit 1 diff --git a/modules/security/gopass/default.nix b/modules/security/gopass/default.nix index fa359d8..c4910cb 100644 --- a/modules/security/gopass/default.nix +++ b/modules/security/gopass/default.nix @@ -10,8 +10,8 @@ enable = lib.mkEnableOption "Enables gopass."; package = lib.mkOption { type = lib.types.package; - default = pkgs.gopass.override { passAlias = true; }; - defaultText = lib.literalExpression "pkgs.gopass.override { passAlias = true; }"; + readOnly = true; + default = config.programs.password-store.package; description = "The gopass package to use."; }; ssh-agent.enable = lib.mkEnableOption "gopass-backed SSH keys for git"; @@ -20,7 +20,7 @@ config = lib.mkIf config.security.gopass.enable { programs.password-store = { enable = true; - package = config.security.gopass.package; + package = pkgs.gopass.override { passAlias = true; }; settings = { PASSWORD_STORE_DIR = "${config.home.homeDirectory}/.local/share/pass"; }; diff --git a/modules/security/gpg/default.nix b/modules/security/gpg/default.nix index 1ce1642..cd77549 100644 --- a/modules/security/gpg/default.nix +++ b/modules/security/gpg/default.nix @@ -8,6 +8,14 @@ { options.security.gpg = { enable = lib.mkEnableOption "Enables gpg."; + + package = lib.mkOption { + type = lib.types.package; + default = config.programs.gpg.package; + readOnly = true; + defaultText = lib.literalExpression "config.programs.gpg.package"; + description = "The gpg package to use."; + }; }; config = lib.mkIf config.security.gpg.enable { diff --git a/modules/security/ssh/default.nix b/modules/security/ssh/default.nix index f9e56bd..c616677 100644 --- a/modules/security/ssh/default.nix +++ b/modules/security/ssh/default.nix @@ -10,6 +10,12 @@ options.security.ssh = { enable = lib.mkEnableOption "Enables ssh."; + package = lib.mkOption { + type = lib.types.package; + readOnly = true; + default = config.programs.ssh.package; + description = "The ssh package to use."; + }; }; config = lib.mkIf config.security.ssh.enable { diff --git a/modules/system/bottom/default.nix b/modules/system/bottom/default.nix index 113ba51..fc72ec3 100644 --- a/modules/system/bottom/default.nix +++ b/modules/system/bottom/default.nix @@ -2,19 +2,22 @@ { config, lib, - pkgs, ... }: { options.system.bottom = { enable = lib.mkEnableOption "Enables bottom."; - package = lib.mkPackageOption pkgs "bottom" { }; + package = lib.mkOption { + type = lib.types.package; + readOnly = true; + default = config.programs.bottom.package; + description = "The bottom package to use."; + }; }; config = lib.mkIf config.system.bottom.enable { programs.bottom = { enable = true; - package = config.system.bottom.package; }; }; } diff --git a/modules/system/htop/default.nix b/modules/system/htop/default.nix index a7b9e25..1de9032 100644 --- a/modules/system/htop/default.nix +++ b/modules/system/htop/default.nix @@ -8,6 +8,12 @@ { options.system.htop = { enable = lib.mkEnableOption "Enables htop."; + package = lib.mkOption { + type = lib.types.package; + readOnly = true; + default = config.programs.htop.package; + description = "The htop package to use."; + }; }; config = lib.mkIf config.system.htop.enable { diff --git a/modules/terminal/bat/default.nix b/modules/terminal/bat/default.nix index 7dcf33c..2344c15 100644 --- a/modules/terminal/bat/default.nix +++ b/modules/terminal/bat/default.nix @@ -8,13 +8,17 @@ { options.terminal.bat = { enable = lib.mkEnableOption "Enables bat."; - package = lib.mkPackageOption pkgs "bat" { }; + package = lib.mkOption { + type = lib.types.package; + readOnly = true; + default = config.programs.bat.package; + description = "The bat package to use."; + }; }; config = lib.mkIf config.terminal.bat.enable { programs.bat = { enable = true; - package = config.terminal.bat.package; config = { theme = "base16"; }; diff --git a/modules/terminal/fzf/default.nix b/modules/terminal/fzf/default.nix index c056446..5842db4 100644 --- a/modules/terminal/fzf/default.nix +++ b/modules/terminal/fzf/default.nix @@ -2,7 +2,6 @@ { config, lib, - pkgs, ... }: { @@ -10,7 +9,12 @@ options.terminal.fzf = { enable = lib.mkEnableOption "Enables fzf."; - package = lib.mkPackageOption pkgs "fzf" { }; + package = lib.mkOption { + type = lib.types.package; + readOnly = true; + default = config.programs.fzf.package; + description = "The fzf package to use."; + }; }; config = @@ -22,7 +26,6 @@ lib.mkIf config.terminal.fzf.enable { programs.fzf = { enable = true; - package = config.terminal.fzf.package; defaultOptions = [ "--height 100%" "--layout=reverse" diff --git a/modules/terminal/kitty/default.nix b/modules/terminal/kitty/default.nix index 68824a9..f4d81ba 100644 --- a/modules/terminal/kitty/default.nix +++ b/modules/terminal/kitty/default.nix @@ -2,13 +2,17 @@ { config, lib, - pkgs, ... }: { options.terminal.kitty = { enable = lib.mkEnableOption "Enables kitty."; - package = lib.mkPackageOption pkgs "kitty" { }; + package = lib.mkOption { + type = lib.types.package; + readOnly = true; + default = config.programs.kitty.package; + description = "The kitty package to use."; + }; }; config = lib.mkIf config.terminal.kitty.enable { @@ -18,7 +22,6 @@ programs.kitty = { enable = true; - package = config.terminal.kitty.package; extraConfig = '' # Keep normal clicks for selection and prompt placement; Ctrl+click opens links. mouse_map left click ungrabbed mouse_handle_click selection prompt diff --git a/modules/terminal/less/default.nix b/modules/terminal/less/default.nix index b2d2ac6..f68875c 100644 --- a/modules/terminal/less/default.nix +++ b/modules/terminal/less/default.nix @@ -3,6 +3,12 @@ { options.terminal.less = { enable = lib.mkEnableOption "Enables less."; + package = lib.mkOption { + type = lib.types.package; + readOnly = true; + default = config.programs.less.package; + description = "The less package to use."; + }; }; config = lib.mkIf config.terminal.less.enable { diff --git a/modules/terminal/starship/default.nix b/modules/terminal/starship/default.nix index 7bcc8a0..86e8527 100644 --- a/modules/terminal/starship/default.nix +++ b/modules/terminal/starship/default.nix @@ -3,6 +3,12 @@ { options.terminal.starship = { enable = lib.mkEnableOption "Enables starship."; + package = lib.mkOption { + type = lib.types.package; + readOnly = true; + default = config.programs.starship.package; + description = "The starship package to use."; + }; }; config = lib.mkIf config.terminal.starship.enable { diff --git a/modules/terminal/tmux/default.nix b/modules/terminal/tmux/default.nix index 22fba87..2e8d57d 100644 --- a/modules/terminal/tmux/default.nix +++ b/modules/terminal/tmux/default.nix @@ -2,19 +2,22 @@ { config, lib, - pkgs, ... }: { options.terminal.tmux = { enable = lib.mkEnableOption "Enables tmux."; - package = lib.mkPackageOption pkgs "tmux" { }; + package = lib.mkOption { + type = lib.types.package; + readOnly = true; + default = config.programs.tmux.package; + description = "The tmux package to use."; + }; }; config = lib.mkIf config.terminal.tmux.enable { programs.tmux = { enable = true; - package = config.terminal.tmux.package; }; }; } diff --git a/modules/terminal/zsh/default.nix b/modules/terminal/zsh/default.nix index bd0fee6..d04ebb7 100644 --- a/modules/terminal/zsh/default.nix +++ b/modules/terminal/zsh/default.nix @@ -2,13 +2,17 @@ { config, lib, - pkgs, ... }: { options.terminal.zsh = { enable = lib.mkEnableOption "Enables zsh."; - package = lib.mkPackageOption pkgs "zsh" { }; + package = lib.mkOption { + type = lib.types.package; + readOnly = true; + default = config.programs.zsh.package; + description = "The zsh package to use."; + }; }; config = @@ -18,7 +22,6 @@ lib.mkIf config.terminal.zsh.enable { programs.zsh = { enable = true; - package = config.terminal.zsh.package; dotDir = "${config.xdg.configHome}/zsh"; history.path = "${config.xdg.cacheHome}/zsh/history"; enableCompletion = true; diff --git a/modules/web/aria2/default.nix b/modules/web/aria2/default.nix index 3ec639e..77b25bb 100644 --- a/modules/web/aria2/default.nix +++ b/modules/web/aria2/default.nix @@ -1,6 +1,5 @@ # Aria2 - command line download manager { - pkgs, lib, config, ... @@ -8,13 +7,17 @@ { options.web.aria2 = { enable = lib.mkEnableOption "Enables aria2."; - package = lib.mkPackageOption pkgs "aria2" { }; + package = lib.mkOption { + type = lib.types.package; + readOnly = true; + default = config.programs.aria2.package; + description = "The aria2 package to use."; + }; }; config = lib.mkIf config.web.aria2.enable { programs.aria2 = { enable = true; - package = config.web.aria2.package; settings = { dir = "${config.home.homeDirectory}/Downloads"; }; diff --git a/modules/web/chawan/default.nix b/modules/web/chawan/default.nix index 50080f7..7d1398e 100644 --- a/modules/web/chawan/default.nix +++ b/modules/web/chawan/default.nix @@ -2,7 +2,6 @@ { config, lib, - pkgs, ... }: { @@ -14,8 +13,8 @@ enable = lib.mkEnableOption "Enables chawan."; package = lib.mkOption { type = lib.types.package; - default = pkgs.chawan; - defaultText = lib.literalExpression "pkgs.chawan"; + readOnly = true; + default = config.programs.chawan.package; description = "Package to use for chawan."; }; homeUrl = lib.mkOption { @@ -41,7 +40,6 @@ }; programs.chawan = { enable = true; - package = config.web.chawan.package; settings = { buffer = { images = true; diff --git a/modules/web/chromium/default.nix b/modules/web/chromium/default.nix index 8a86a5a..9b70ca2 100644 --- a/modules/web/chromium/default.nix +++ b/modules/web/chromium/default.nix @@ -14,6 +14,7 @@ enable = lib.mkEnableOption "Enables chromium."; package = lib.mkOption { type = lib.types.package; + readOnly = true; default = config.programs.chromium.finalPackage; defaultText = lib.literalExpression "config.programs.chromium.finalPackage"; description = "Package to use for chromium. Defaults to the wrapped finalPackage from programs.chromium."; diff --git a/users/arpit.nix b/users/arpit.nix index c96da70..beb0c44 100644 --- a/users/arpit.nix +++ b/users/arpit.nix @@ -14,7 +14,6 @@ # Desktop environment desktop.enable = true; - desktop.darkman.enable = true; desktop.hardware.gpu = { nvidia.enable = true; amd.enable = true; -- cgit v1.2.3