aboutsummaryrefslogtreecommitdiffstats
path: root/modules/terminal/fzf
diff options
context:
space:
mode:
Diffstat (limited to 'modules/terminal/fzf')
-rw-r--r--modules/terminal/fzf/assertions.nix4
-rw-r--r--modules/terminal/fzf/default.nix54
2 files changed, 35 insertions, 23 deletions
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);
};
}