mirror of
https://github.com/kmein/niveum
synced 2026-03-20 12:01:06 +01:00
feat(fzf): configure and integrate into shells
This commit is contained in:
@@ -19,6 +19,7 @@ in
|
|||||||
./docker.nix
|
./docker.nix
|
||||||
./dunst.nix
|
./dunst.nix
|
||||||
./fonts.nix
|
./fonts.nix
|
||||||
|
./fzf.nix
|
||||||
./git.nix
|
./git.nix
|
||||||
./hledger.nix
|
./hledger.nix
|
||||||
./htop.nix
|
./htop.nix
|
||||||
@@ -180,9 +181,6 @@ in
|
|||||||
take = pkgs.writers.writeDash "take" ''
|
take = pkgs.writers.writeDash "take" ''
|
||||||
mkdir "$1" && cd "$1"
|
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 {
|
in {
|
||||||
cat = "${pkgs.bat}/bin/bat --style=plain";
|
cat = "${pkgs.bat}/bin/bat --style=plain";
|
||||||
chromium-incognito = "chromium --user-data-dir=$(mktemp -d /tmp/chr.XXXXXX) --no-first-run --incognito";
|
chromium-incognito = "chromium --user-data-dir=$(mktemp -d /tmp/chr.XXXXXX) --no-first-run --incognito";
|
||||||
@@ -198,12 +196,14 @@ in
|
|||||||
mv = "mv -i";
|
mv = "mv -i";
|
||||||
nixi = "nix repl '<nixpkgs>'";
|
nixi = "nix repl '<nixpkgs>'";
|
||||||
ns = "nix-shell --run zsh";
|
ns = "nix-shell --run zsh";
|
||||||
|
s = "${pkgs.systemd}/bin/systemctl";
|
||||||
o = "${pkgs.xdg_utils}/bin/xdg-open";
|
o = "${pkgs.xdg_utils}/bin/xdg-open";
|
||||||
rm = "rm -i";
|
rm = "rm -i";
|
||||||
take = "source ${take}";
|
take = "source ${take}";
|
||||||
tmux = "${pkgs.tmux}/bin/tmux -2";
|
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";
|
tree = "${pkgs.exa}/bin/exa --tree";
|
||||||
cf = "source ${cf}";
|
|
||||||
wcd = "source ${wcd}";
|
wcd = "source ${wcd}";
|
||||||
weechat = "${pkgs.openssh}/bin/ssh kmein@prism.r -t tmux attach";
|
weechat = "${pkgs.openssh}/bin/ssh kmein@prism.r -t tmux attach";
|
||||||
where = "source ${where}";
|
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