53 lines
1.6 KiB
Nix
53 lines
1.6 KiB
Nix
{ config, options, lib, pkgs, ... }:
|
|
let
|
|
inherit (lib.attrsets) optionalAttrs;
|
|
inherit (lib.modules) mkIf;
|
|
in
|
|
{
|
|
options.modules.shell.toolset.fzf = let
|
|
inherit (lib.options) mkEnableOption;
|
|
in { enable = mkEnableOption "TUI Fuzzy Finder."; };
|
|
|
|
config = mkIf config.modules.shell.toolset.fzf.enable {
|
|
hm.programs.fzf = let
|
|
defShell = config.modules.shell.default;
|
|
in {
|
|
enable = true;
|
|
enableBashIntegration = true;
|
|
enableZshIntegration = defShell == "zsh";
|
|
enableFishIntegration = defShell == "fish";
|
|
|
|
tmux.enableShellIntegration = true;
|
|
tmux.shellIntegrationOptions = ["-d 40%"];
|
|
|
|
defaultCommand = "fd --type f";
|
|
defaultOptions = ["--height 40%" "--border"];
|
|
|
|
changeDirWidgetCommand = "fd --type d";
|
|
changeDirWidgetOptions = ["--preview 'tree -C {} | head -200'"];
|
|
|
|
fileWidgetCommand = "fd --type f";
|
|
fileWidgetOptions = ["--preview 'head {}'"];
|
|
historyWidgetOptions = ["--sort" "--exact"];
|
|
|
|
colors = let
|
|
inherit (config.modules.themes) active;
|
|
inherit (config.modules.themes.colors.main) normal types;
|
|
in
|
|
mkIf (active != null) {
|
|
bg = "${types.bg}";
|
|
"bg+" = "${types.bg}";
|
|
fg = "${types.border}";
|
|
"fg+" = "${types.border}";
|
|
hl = "${normal.red}";
|
|
"hl+" = "${normal.red}";
|
|
header = "${normal.red}";
|
|
marker = "${normal.magenta}";
|
|
info = "${normal.magenta}";
|
|
prompt = "${types.border}";
|
|
spinner = "${types.panelbg}";
|
|
pointer = "${types.border}";
|
|
};
|
|
};
|
|
};
|
|
}
|