summaryrefslogtreecommitdiffstats
path: root/src/shell
diff options
context:
space:
mode:
authorEllie Huxtable <e@elm.sh>2021-04-13 19:14:07 +0100
committerGitHub <noreply@github.com>2021-04-13 19:14:07 +0100
commit5751463942cc91f1f1ffaf6e2ac633d7a0085f25 (patch)
treef7b5b9a4702c4c3ef29aa60d36612f61ffeae052 /src/shell
parenta1fcf54f93fe5f48a3ffa6b619e8dca7dcdbc798 (diff)
Add history sync, resolves #13 (#31)
* Add encryption * Add login and register command * Add count endpoint * Write initial sync push * Add single sync command Confirmed working for one client only * Automatically sync on a configurable frequency * Add key command, key arg to login * Only load session if it exists * Use sync and history timestamps for download * Bind other key code Seems like some systems have this code for up arrow? I'm not sure why, and it's not an easy one to google. * Simplify upload * Try and fix download sync loop * Change sync order to avoid uploading what we just downloaded * Multiline import fix * Fix time parsing * Fix importing history with no time * Add hostname to sync * Use hostname to filter sync * Fixes * Add binding * Stuff from yesterday * Set cursor modes * Make clippy happy * Bump version
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