mirror of
https://github.com/prdlk/dotfiles.git
synced 2026-11-02 11:32:42 +00:00
22 lines
1.1 KiB
Fish
22 lines
1.1 KiB
Fish
function _pj_bind_down --description "down arrow: pj tv cable 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_bind runs ~/.local/bin/pj (also ctrl-p), which opens the `pj` tv
|
|
# cable. --quiet (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 per press.
|
|
_pj_bind --quiet
|
|
end
|