Basic rice set up. Still need to add a way to reiably update the package lists and i need a launcher.
This commit is contained in:
commit
3e89f350a6
107 changed files with 7553 additions and 0 deletions
89
private_dot_config/private_fish/conf.d/atuin.fish
Normal file
89
private_dot_config/private_fish/conf.d/atuin.fish
Normal file
|
|
@ -0,0 +1,89 @@
|
|||
set -gx ATUIN_SESSION (atuin uuid)
|
||||
set --erase ATUIN_HISTORY_ID
|
||||
|
||||
function _atuin_preexec --on-event fish_preexec
|
||||
if not test -n "$fish_private_mode"
|
||||
set -g ATUIN_HISTORY_ID (atuin history start -- "$argv[1]")
|
||||
end
|
||||
end
|
||||
|
||||
function _atuin_postexec --on-event fish_postexec
|
||||
set -l s $status
|
||||
|
||||
if test -n "$ATUIN_HISTORY_ID"
|
||||
ATUIN_LOG=error atuin history end --exit $s -- $ATUIN_HISTORY_ID &>/dev/null &
|
||||
disown
|
||||
end
|
||||
|
||||
set --erase ATUIN_HISTORY_ID
|
||||
end
|
||||
|
||||
function _atuin_search
|
||||
set -l keymap_mode
|
||||
switch $fish_key_bindings
|
||||
case fish_vi_key_bindings
|
||||
switch $fish_bind_mode
|
||||
case default
|
||||
set keymap_mode vim-normal
|
||||
case insert
|
||||
set keymap_mode vim-insert
|
||||
end
|
||||
case '*'
|
||||
set keymap_mode emacs
|
||||
end
|
||||
|
||||
# In fish 3.4 and above we can use `"$(some command)"` to keep multiple lines separate;
|
||||
# but to support fish 3.3 we need to use `(some command | string collect)`.
|
||||
# https://fishshell.com/docs/current/relnotes.html#id24 (fish 3.4 "Notable improvements and fixes")
|
||||
set -l ATUIN_H (ATUIN_SHELL=fish ATUIN_LOG=error ATUIN_QUERY=(commandline -b) atuin search --keymap-mode=$keymap_mode $argv -i 3>&1 1>&2 2>&3 | string collect)
|
||||
|
||||
if test -n "$ATUIN_H"
|
||||
if string match --quiet '__atuin_accept__:*' "$ATUIN_H"
|
||||
set -l ATUIN_HIST (string replace "__atuin_accept__:" "" -- "$ATUIN_H" | string collect)
|
||||
commandline -r "$ATUIN_HIST"
|
||||
commandline -f repaint
|
||||
commandline -f execute
|
||||
return
|
||||
else
|
||||
commandline -r "$ATUIN_H"
|
||||
end
|
||||
end
|
||||
|
||||
commandline -f repaint
|
||||
end
|
||||
|
||||
function _atuin_bind_up
|
||||
# Fallback to fish's builtin up-or-search if we're in search or paging mode
|
||||
if commandline --search-mode; or commandline --paging-mode
|
||||
up-or-search
|
||||
return
|
||||
end
|
||||
|
||||
# Only invoke atuin if we're on the top line of the command
|
||||
set -l lineno (commandline --line)
|
||||
|
||||
switch $lineno
|
||||
case 1
|
||||
_atuin_search --shell-up-key-binding
|
||||
case '*'
|
||||
up-or-search
|
||||
end
|
||||
end
|
||||
|
||||
if string match -q '4.*' $version
|
||||
bind ctrl-r _atuin_search
|
||||
bind up _atuin_bind_up
|
||||
if bind -M insert >/dev/null 2>&1
|
||||
bind -M insert ctrl-r _atuin_search
|
||||
# bind -M insert up _atuin_bind_up
|
||||
end
|
||||
else
|
||||
bind \cr _atuin_search
|
||||
bind -k up _atuin_bind_up
|
||||
bind \eOA _atuin_bind_up
|
||||
bind \e\[A _atuin_bind_up
|
||||
if bind -M insert >/dev/null 2>&1
|
||||
bind -M insert \cr _atuin_search
|
||||
# bind -M insert -k up _atuin_bind_up; bind -M insert \eOA _atuin_bind_up; bind -M insert \e\[A _atuin_bind_up
|
||||
end
|
||||
end
|
||||
Loading…
Add table
Add a link
Reference in a new issue