From 23616c2e13f63f0262d64538032b98ce83cc0ec2 Mon Sep 17 00:00:00 2001 From: Arpit Chakladar Date: Wed, 15 Jul 2026 20:32:36 +0530 Subject: feat: renamed the options to reflect their changed directory stucture Renamed the options for the configurations based on the sub-module that they belong to --- modules/terminal/bash/default.nix | 8 ++++++ modules/terminal/bat/default.nix | 9 +++++- modules/terminal/default.nix | 1 + modules/terminal/fzf/assertions.nix | 4 +-- modules/terminal/fzf/default.nix | 54 +++++++++++++++++++++-------------- modules/terminal/kitty/default.nix | 12 ++++++-- modules/terminal/less/default.nix | 7 ++++- modules/terminal/starship/default.nix | 9 ++++-- modules/terminal/tmux/default.nix | 10 +++++-- modules/terminal/zsh/default.nix | 14 ++++++--- 10 files changed, 93 insertions(+), 35 deletions(-) create mode 100644 modules/terminal/bash/default.nix (limited to 'modules/terminal') diff --git a/modules/terminal/bash/default.nix b/modules/terminal/bash/default.nix new file mode 100644 index 0000000..6b53126 --- /dev/null +++ b/modules/terminal/bash/default.nix @@ -0,0 +1,8 @@ +{ lib, ... }: + +# Bash - GNU Bourne Again SHell +{ + options.terminal.bash = { + enable = lib.mkEnableOption "Enables bash."; + }; +} diff --git a/modules/terminal/bat/default.nix b/modules/terminal/bat/default.nix index 3c962a3..e1b4c96 100644 --- a/modules/terminal/bat/default.nix +++ b/modules/terminal/bat/default.nix @@ -7,8 +7,15 @@ # bat - a cat clone with wings { - config = lib.mkIf config.programs.bat.enable { + options.terminal.bat = { + enable = lib.mkEnableOption "Enables bat."; + package = lib.mkPackageOption pkgs "bat" { }; + }; + + config = lib.mkIf config.terminal.bat.enable { programs.bat = { + enable = true; + package = config.terminal.bat.package; config = { theme = "base16"; }; diff --git a/modules/terminal/default.nix b/modules/terminal/default.nix index 7a3ffcc..e02ac47 100644 --- a/modules/terminal/default.nix +++ b/modules/terminal/default.nix @@ -2,6 +2,7 @@ { imports = [ + ./bash ./bat ./fzf ./kitty diff --git a/modules/terminal/fzf/assertions.nix b/modules/terminal/fzf/assertions.nix index 7c2e79c..269af2e 100644 --- a/modules/terminal/fzf/assertions.nix +++ b/modules/terminal/fzf/assertions.nix @@ -3,9 +3,9 @@ assertions = [ { assertion = - !config.programs.fzf.enable || config.programs.zsh.enable || config.programs.bash.enable; + !config.terminal.fzf.enable || config.terminal.zsh.enable || config.terminal.bash.enable; message = '' - programs.fzf is enabled but neither programs.zsh.enable nor programs.bash.enable is set. + terminal.fzf is enabled but neither terminal.zsh.enable nor terminal.bash.enable is set. fzf shell integration requires zsh or bash. Please enable at least one. ''; } diff --git a/modules/terminal/fzf/default.nix b/modules/terminal/fzf/default.nix index 7671b3c..499bf3c 100644 --- a/modules/terminal/fzf/default.nix +++ b/modules/terminal/fzf/default.nix @@ -1,17 +1,29 @@ -{ config, lib, ... }: +{ + config, + lib, + pkgs, + ... +}: # FZF - Fuzzy finder, CLI fuzzy search tool { imports = [ ./assertions.nix ]; + options.terminal.fzf = { + enable = lib.mkEnableOption "Enables fzf."; + package = lib.mkPackageOption pkgs "fzf" { }; + }; + config = let shellIntegration = '' - ${if config.programs.zsh.enable then "eval \"$(fzf --zsh)\"" else "eval \"$(fzf --bash)\""} + ${if config.terminal.zsh.enable then "eval \"$(fzf --zsh)\"" else "eval \"$(fzf --bash)\""} ''; in - lib.mkIf config.programs.fzf.enable { + lib.mkIf config.terminal.fzf.enable { programs.fzf = { + enable = true; + package = config.terminal.fzf.package; defaultOptions = [ "--height 100%" "--layout=reverse" @@ -26,26 +38,26 @@ ]; colors = with config.scheme.withHashtag; { - fg = base05; # Foreground - bg = "-1"; # Background (-1 for transparent) - hl = base0D; # Highlight - - "fg+" = base07; # Foreground for selected item - "bg+" = "-1"; # Background for selected item - "hl+" = base0D; # Highlight for selected item - - gutter = "-1"; # Remove the white margin at the left - - info = base0B; # Info text (usually count of items) - border = base03; # Border color - prompt = base0A; # Prompt text color - pointer = base0F; # Pointer color (e.g., > for selected) - marker = base0C; # Marker color (e.g., for multi-select) - spinner = base0C; # Spinner color (during search) + fg = base05; + bg = "-1"; + hl = base0D; + + "fg+" = base07; + "bg+" = "-1"; + "hl+" = base0D; + + gutter = "-1"; + + info = base0B; + border = base03; + prompt = base0A; + pointer = base0F; + marker = base0C; + spinner = base0C; }; }; - programs.zsh.initContent = lib.mkIf config.programs.zsh.enable (lib.mkAfter shellIntegration); - programs.bash.initExtra = lib.mkIf config.programs.bash.enable (lib.mkAfter shellIntegration); + programs.zsh.initContent = lib.mkIf config.terminal.zsh.enable (lib.mkAfter shellIntegration); + programs.bash.initExtra = lib.mkIf config.terminal.bash.enable (lib.mkAfter shellIntegration); }; } diff --git a/modules/terminal/kitty/default.nix b/modules/terminal/kitty/default.nix index 3701180..9b1836a 100644 --- a/modules/terminal/kitty/default.nix +++ b/modules/terminal/kitty/default.nix @@ -1,17 +1,25 @@ { config, lib, + pkgs, ... }: # Kitty - GPU-accelerated terminal emulator { - config = lib.mkIf config.programs.kitty.enable { + options.terminal.kitty = { + enable = lib.mkEnableOption "Enables kitty."; + package = lib.mkPackageOption pkgs "kitty" { }; + }; + + config = lib.mkIf config.terminal.kitty.enable { xdg.mimeApps.defaultApplications = { "x-scheme-handler/terminal" = "kitty.desktop"; }; programs.kitty = { + enable = true; + package = config.terminal.kitty.package; settings = with config.scheme.withHashtag; { window_padding_width = 10; font_size = config.fonts.size; @@ -48,7 +56,7 @@ allow_remote_control = "yes"; listen_on = "unix:/tmp/kitty"; - shell = lib.mkIf config.programs.zsh.enable (lib.getExe config.programs.zsh.package); + shell = lib.mkIf config.terminal.zsh.enable (lib.getExe config.terminal.zsh.package); }; }; }; diff --git a/modules/terminal/less/default.nix b/modules/terminal/less/default.nix index 516377d..8785498 100644 --- a/modules/terminal/less/default.nix +++ b/modules/terminal/less/default.nix @@ -2,8 +2,13 @@ # less - terminal pager { - config = lib.mkIf config.programs.less.enable { + options.terminal.less = { + enable = lib.mkEnableOption "Enables less."; + }; + + config = lib.mkIf config.terminal.less.enable { programs.less = { + enable = true; options = [ "--RAW-CONTROL-CHARS" "--quit-if-one-screen" diff --git a/modules/terminal/starship/default.nix b/modules/terminal/starship/default.nix index ae5e082..647cef3 100644 --- a/modules/terminal/starship/default.nix +++ b/modules/terminal/starship/default.nix @@ -2,9 +2,14 @@ # Starship - Minimal, blazing-fast shell prompt { - config = lib.mkIf config.programs.starship.enable { + options.terminal.starship = { + enable = lib.mkEnableOption "Enables starship."; + }; + + config = lib.mkIf config.terminal.starship.enable { programs.starship = { - enableZshIntegration = config.programs.zsh.enable; + enable = true; + enableZshIntegration = config.terminal.zsh.enable; settings = let mkSegment = content: ''[┄\[](red)[${content}]($style)[\]](red)''; diff --git a/modules/terminal/tmux/default.nix b/modules/terminal/tmux/default.nix index e2e76c9..fdee9ff 100644 --- a/modules/terminal/tmux/default.nix +++ b/modules/terminal/tmux/default.nix @@ -7,9 +7,15 @@ # Tmux - Terminal multiplexer (window/pane management) { - config = lib.mkIf config.programs.tmux.enable { + options.terminal.tmux = { + enable = lib.mkEnableOption "Enables tmux."; + package = lib.mkPackageOption pkgs "tmux" { }; + }; + + config = lib.mkIf config.terminal.tmux.enable { programs.tmux = { - package = pkgs.tmux; + enable = true; + package = config.terminal.tmux.package; }; }; } diff --git a/modules/terminal/zsh/default.nix b/modules/terminal/zsh/default.nix index f3bdbb1..842556a 100644 --- a/modules/terminal/zsh/default.nix +++ b/modules/terminal/zsh/default.nix @@ -7,13 +7,19 @@ # Zsh - Z shell, extended bash with additional features and plugins { + options.terminal.zsh = { + enable = lib.mkEnableOption "Enables zsh."; + package = lib.mkPackageOption pkgs "zsh" { }; + }; + config = let nixCommandWrappers = builtins.readFile ./nix-aliases.sh; in - lib.mkIf config.programs.zsh.enable { + lib.mkIf config.terminal.zsh.enable { programs.zsh = { - package = pkgs.zsh; + enable = true; + package = config.terminal.zsh.package; dotDir = "${config.xdg.configHome}/zsh"; history.path = "${config.xdg.cacheHome}/zsh/history"; enableCompletion = true; @@ -31,8 +37,8 @@ ''; }; - programs.bash.initExtra = lib.mkIf config.programs.bash.enable (lib.mkAfter nixCommandWrappers); + programs.bash.initExtra = lib.mkIf config.terminal.bash.enable (lib.mkAfter nixCommandWrappers); - home.sessionVariables.SHELL = "${lib.getExe config.programs.zsh.package}"; + home.sessionVariables.SHELL = "${lib.getExe config.terminal.zsh.package}"; }; } -- cgit v1.2.3