aboutsummaryrefslogtreecommitdiffstats
path: root/modules
diff options
context:
space:
mode:
authorArpit Chakladar <arpitchakladar+git@gmail.com>2026-08-02 18:18:07 +0530
committerArpit Chakladar <arpitchakladar+git@gmail.com>2026-08-02 18:18:07 +0530
commit2e0f6163f61cb1e4195f1a08ad1148e57a4f5843 (patch)
treec844351a0d22cb8a68d84b91630612b9c486abca /modules
parentd213c8b40f891bd83f2977f89b25ca341ee01ca4 (diff)
downloadhome-manager-config-2e0f6163f61cb1e4195f1a08ad1148e57a4f5843.tar.gz
home-manager-config-2e0f6163f61cb1e4195f1a08ad1148e57a4f5843.zip
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
Diffstat (limited to 'modules')
-rw-r--r--modules/communication/neomutt/default.nix25
-rw-r--r--modules/communication/neomutt/neomutt.nix18
-rw-r--r--modules/desktop/darkman/default.nix28
-rw-r--r--modules/desktop/hyprland/keybindings.nix2
-rw-r--r--modules/desktop/rofi/default.nix10
-rw-r--r--modules/desktop/rofi/theme.mustache.rasi217
-rw-r--r--modules/desktop/waybar/default.nix9
-rw-r--r--modules/development/delta/default.nix6
-rw-r--r--modules/development/git/default.nix7
-rw-r--r--modules/development/lazygit/default.nix6
-rw-r--r--modules/development/nixvim/default.nix6
-rw-r--r--modules/development/opencode/default.nix6
-rw-r--r--modules/development/vscodium/default.nix6
-rw-r--r--modules/file-management/lsd/default.nix6
-rw-r--r--modules/file-management/yazi/default.nix1
-rw-r--r--modules/media/swayimg/default.nix9
-rw-r--r--modules/office/zathura/default.nix6
-rw-r--r--modules/scripts/usque-warp/script.sh6
-rw-r--r--modules/security/gopass/default.nix6
-rw-r--r--modules/security/gpg/default.nix8
-rw-r--r--modules/security/ssh/default.nix6
-rw-r--r--modules/system/bottom/default.nix9
-rw-r--r--modules/system/htop/default.nix6
-rw-r--r--modules/terminal/bat/default.nix8
-rw-r--r--modules/terminal/fzf/default.nix9
-rw-r--r--modules/terminal/kitty/default.nix9
-rw-r--r--modules/terminal/less/default.nix6
-rw-r--r--modules/terminal/starship/default.nix6
-rw-r--r--modules/terminal/tmux/default.nix9
-rw-r--r--modules/terminal/zsh/default.nix9
-rw-r--r--modules/web/aria2/default.nix9
-rw-r--r--modules/web/chawan/default.nix6
-rw-r--r--modules/web/chromium/default.nix1
33 files changed, 297 insertions, 184 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.";