1
0
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:
Kierán Meinhardt
2020-04-13 10:52:17 +02:00
parent eb0771c233
commit 76354e605b
2 changed files with 40 additions and 4 deletions

View File

@@ -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
View 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
'';
}