diff --git a/home/christoph/default.nix b/home/christoph/default.nix index d3a8707a..df76dd86 100644 --- a/home/christoph/default.nix +++ b/home/christoph/default.nix @@ -228,7 +228,7 @@ rec { SDL_VIDEODRIVER = "wayland"; # TODO: NNN Module - NNN_FIFO = "/tmp/nnn.fifo"; # For nnn preview + # NNN_FIFO = "/tmp/nnn.fifo"; # For nnn preview # Don't use system wine, use bottles # WINEESYNC = 1; diff --git a/home/modules/fish.nix b/home/modules/fish.nix index 04dff290..bc321ed3 100644 --- a/home/modules/fish.nix +++ b/home/modules/fish.nix @@ -19,7 +19,44 @@ in { enable = true; # TODO: - # functions = {}; + functions = { + nnncd = { + wraps = "nnn"; + description = "support nnn quit and change directory"; + body = '' + # Block nesting of nnn in subshells + if test -n "$NNNLVL" -a "$NNNLVL" -ge 1 + echo "nnn is already running" + return + end + + # The behaviour is set to cd on quit (nnn checks if NNN_TMPFILE is set) + # If NNN_TMPFILE is set to a custom path, it must be exported for nnn to + # see. To cd on quit only on ^G, remove the "-x" from both lines below, + # without changing the paths. + if test -n "$XDG_CONFIG_HOME" + set -x NNN_TMPFILE "$XDG_CONFIG_HOME/nnn/.lastd" + else + set -x NNN_TMPFILE "$HOME/.config/nnn/.lastd" + end + + # Unmask ^Q (, ^V etc.) (if required, see `stty -a`) to Quit nnn + # stty start undef + # stty stop undef + # stty lwrap undef + # stty lnext undef + + # The command function allows one to alias this function to `nnn` without + # making an infinitely recursive alias + command nnn $argv + + if test -e $NNN_TMPFILE + source $NNN_TMPFILE + rm $NNN_TMPFILE + end + ''; + }; + }; # TODO: # plugins = []; @@ -53,6 +90,7 @@ in { blk = batify "lsblk -o NAME,LABEL,UUID,FSTYPE,SIZE,FSUSE%,MOUNTPOINT,MODEL"; grep = "grep --color=auto -E"; # grep with extended regex watch = "watch -d -c -n 0.5"; + n = "nnncd -a -P p"; # Doesn't work with abbrify because I have nnn.override? # systemd failed = "systemctl --failed"; @@ -95,7 +133,7 @@ in { }) (abbrify pkgs.gping {ping = "gping";}) (abbrify pkgs.lazygit {lg = "lazygit";}) - (abbrify pkgs.navi {n = "navi";}) + # (abbrify pkgs.navi {n = "navi";}) (abbrify pkgs.notmuch { mailrefresh = "notmuch new"; mailsearch = "notmuch search";