mirror of
https://github.com/kmein/niveum
synced 2026-03-16 10:11:08 +01:00
feat(fzf): configure and integrate into shells
This commit is contained in:
@@ -19,6 +19,7 @@ in
|
||||
./docker.nix
|
||||
./dunst.nix
|
||||
./fonts.nix
|
||||
./fzf.nix
|
||||
./git.nix
|
||||
./hledger.nix
|
||||
./htop.nix
|
||||
@@ -180,9 +181,6 @@ in
|
||||
take = pkgs.writers.writeDash "take" ''
|
||||
mkdir "$1" && cd "$1"
|
||||
'';
|
||||
cf = pkgs.writers.writeDash "cf" ''
|
||||
cd $HOME && cd "$(${pkgs.fd}/bin/fd -t d | ${pkgs.fzf}/bin/fzf --preview="${pkgs.tree}/bin/tree -L 1 {}" --bind="space:toggle-preview" --preview-window=hidden)"
|
||||
'';
|
||||
in {
|
||||
cat = "${pkgs.bat}/bin/bat --style=plain";
|
||||
chromium-incognito = "chromium --user-data-dir=$(mktemp -d /tmp/chr.XXXXXX) --no-first-run --incognito";
|
||||
@@ -198,12 +196,14 @@ in
|
||||
mv = "mv -i";
|
||||
nixi = "nix repl '<nixpkgs>'";
|
||||
ns = "nix-shell --run zsh";
|
||||
s = "${pkgs.systemd}/bin/systemctl";
|
||||
o = "${pkgs.xdg_utils}/bin/xdg-open";
|
||||
rm = "rm -i";
|
||||
take = "source ${take}";
|
||||
tmux = "${pkgs.tmux}/bin/tmux -2";
|
||||
yt = "${pkgs.youtube-dl}/bin/youtube-dl --add-metadata -ic"; # Download video link
|
||||
yta = "${pkgs.youtube-dl}/bin/youtube-dl --add-metadata -xic"; # Download with audio
|
||||
tree = "${pkgs.exa}/bin/exa --tree";
|
||||
cf = "source ${cf}";
|
||||
wcd = "source ${wcd}";
|
||||
weechat = "${pkgs.openssh}/bin/ssh kmein@prism.r -t tmux attach";
|
||||
where = "source ${where}";
|
||||
|
||||
36
configs/fzf.nix
Normal file
36
configs/fzf.nix
Normal file
@@ -0,0 +1,36 @@
|
||||
{ pkgs, lib, ... }:
|
||||
{
|
||||
environment = {
|
||||
systemPackages = [ pkgs.fzf ];
|
||||
variables = {
|
||||
FZF_DEFAULT_OPTS = lib.escapeShellArgs [
|
||||
"--height 40%"
|
||||
"--layout=reverse"
|
||||
];
|
||||
FZF_ALT_C_COMMAND = "${pkgs.fd}/bin/fd --type d";
|
||||
FZF_ALT_C_OPTS = lib.escapeShellArgs [
|
||||
"--preview '${pkgs.tree}/bin/tree -L 1 {}'"
|
||||
"--bind='space:toggle-preview'"
|
||||
"--preview-window=hidden"
|
||||
];
|
||||
FZF_CTRL_T_COMMAND = "${pkgs.fd}/bin/fd --type f";
|
||||
FZF_CTRL_T_OPTS = lib.escapeShellArgs [
|
||||
"--preview '${pkgs.bat}/bin/bat {}'"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
programs.zsh.interactiveShellInit = ''
|
||||
if [[ $options[zle] = on ]]; then
|
||||
. ${pkgs.fzf}/share/fzf/completion.zsh
|
||||
. ${pkgs.fzf}/share/fzf/key-bindings.zsh
|
||||
fi
|
||||
'';
|
||||
|
||||
programs.bash.interactiveShellInit = ''
|
||||
if [[ :$SHELLOPTS: =~ :(vi|emacs): ]]; then
|
||||
. ${pkgs.fzf}/share/fzf/completion.bash
|
||||
. ${pkgs.fzf}/share/fzf/key-bindings.bash
|
||||
fi
|
||||
'';
|
||||
}
|
||||
Reference in New Issue
Block a user