Files
dotfiles/dot_config/fish/functions/_pj_bind_down.fish
T

22 lines
1.1 KiB
Fish

function _pj_bind_down --description "down arrow: pj on an idle empty prompt, else fish's down-or-search"
# Mirror of atuin's up binding (atuin owns up, this owns down). Everything
# that legitimately needs the arrow keys keeps them:
# - non-empty buffer → multiline cursor movement / forward history search
# - paging mode → tab-completion pager navigation (tab on an empty
# line opens the pager with an empty buffer)
# - search mode → history-search navigation
# down-or-search is fish's own input function, called as a command exactly
# the way atuin's _atuin_bind_up calls up-or-search.
set -l buf (commandline | string collect)
if test -n "$buf"; or commandline --paging-mode; or commandline --search-mode
down-or-search
return
end
# pj is ~/.local/bin/pj (shared with the zsh ctrl-p binding). PJ_QUIET
# keeps it silent when the tree has no task source at all, so down is a
# no-op outside projects instead of printing an error on every press.
PJ_QUIET=1 pj
commandline -f repaint
end