aboutsummaryrefslogtreecommitdiffstats
path: root/src/shell
diff options
context:
space:
mode:
Diffstat (limited to 'src/shell')
-rw-r--r--src/shell/atuin.zsh26
1 files changed, 9 insertions, 17 deletions
diff --git a/src/shell/atuin.zsh b/src/shell/atuin.zsh
index 8407efd2..d2abf3c1 100644
--- a/src/shell/atuin.zsh
+++ b/src/shell/atuin.zsh
@@ -1,4 +1,6 @@
# Source this in your ~/.zshrc
+autoload -U add-zsh-hook
+
export ATUIN_SESSION=$(atuin uuid)
export ATUIN_HISTORY="atuin history list"
export ATUIN_BINDKEYS="true"
@@ -20,24 +22,12 @@ _atuin_search(){
emulate -L zsh
zle -I
+ # Switch to cursor mode, then back to application
+ echoti rmkx
# swap stderr and stdout, so that the tui stuff works
# TODO: not this
output=$(atuin search $BUFFER 3>&1 1>&2 2>&3)
-
- if [[ -n $output ]] ; then
- LBUFFER=$output
- fi
-
- zle reset-prompt
-}
-
-_atuin_up_search(){
- emulate -L zsh
- zle -I
-
- # swap stderr and stdout, so that the tui stuff works
- # TODO: not this
- output=$(atuin search $BUFFER 3>&1 1>&2 2>&3)
+ echoti smkx
if [[ -n $output ]] ; then
LBUFFER=$output
@@ -50,9 +40,11 @@ add-zsh-hook preexec _atuin_preexec
add-zsh-hook precmd _atuin_precmd
zle -N _atuin_search_widget _atuin_search
-zle -N _atuin_up_search_widget _atuin_up_search
if [[ $ATUIN_BINDKEYS == "true" ]]; then
bindkey '^r' _atuin_search_widget
- bindkey '^[[A' _atuin_up_search_widget
+
+ # depends on terminal mode
+ bindkey '^[[A' _atuin_search_widget
+ bindkey '^[OA' _atuin_search_widget
fi