aboutsummaryrefslogtreecommitdiffstats
path: root/src/shell
diff options
context:
space:
mode:
authorPatrick Decat <pdecat@gmail.com>2022-12-18 19:26:09 +0100
committerGitHub <noreply@github.com>2022-12-18 18:26:09 +0000
commited394afa82ef919937521e5ce72fc467cec203f9 (patch)
treebc7d078684089e71d0d96f22328c5c266ad22d28 /src/shell
parentBump debian from bullseye-20221024-slim to bullseye-20221205-slim (#638) (diff)
downloadatuin-ed394afa82ef919937521e5ce72fc467cec203f9.zip
Allow overriding filter and search modes from CLI (#635)
* Allow overriding filter and search modes from CLI arguments * Use session filter mode for bash up key binding * We precisely do not want to add quotes here so that all arguments are properly passed * Add --shell-up-key-binding hidden command argument and filter_mode_shell_up_key_binding configuration option to allow customizing the filter mode used when atuin is invoked from a shell up-key binding * Correct up binding for zsh Co-authored-by: Ellie Huxtable <ellie@elliehuxtable.com>
Diffstat (limited to '')
-rw-r--r--src/shell/atuin.bash7
-rw-r--r--src/shell/atuin.fish4
-rw-r--r--src/shell/atuin.zsh12
3 files changed, 15 insertions, 8 deletions
diff --git a/src/shell/atuin.bash b/src/shell/atuin.bash
index 4530e31e..9c8fa237 100644
--- a/src/shell/atuin.bash
+++ b/src/shell/atuin.bash
@@ -17,7 +17,8 @@ _atuin_precmd() {
__atuin_history ()
{
tput rmkx
- HISTORY="$(RUST_LOG=error atuin search -i -- "${READLINE_LINE}" 3>&1 1>&2 2>&3)"
+ # shellcheck disable=SC2048,SC2086
+ HISTORY="$(RUST_LOG=error atuin search $* -i -- "${READLINE_LINE}" 3>&1 1>&2 2>&3)"
tput smkx
READLINE_LINE=${HISTORY}
@@ -34,6 +35,6 @@ fi
if [[ -z ${ATUIN_NOBIND} ]]; then
bind -x '"\C-r": __atuin_history'
- bind -x '"\e[A": __atuin_history'
- bind -x '"\eOA": __atuin_history'
+ bind -x '"\e[A": __atuin_history --shell-up-key-binding'
+ bind -x '"\eOA": __atuin_history --shell-up-key-binding'
fi
diff --git a/src/shell/atuin.fish b/src/shell/atuin.fish
index 69175ad4..9446907e 100644
--- a/src/shell/atuin.fish
+++ b/src/shell/atuin.fish
@@ -15,7 +15,7 @@ function _atuin_postexec --on-event fish_postexec
end
function _atuin_search
- set h (RUST_LOG=error atuin search -i -- (commandline -b) 3>&1 1>&2 2>&3)
+ set h (RUST_LOG=error atuin search $* -i -- (commandline -b) 3>&1 1>&2 2>&3)
commandline -f repaint
if test -n "$h"
commandline -r $h
@@ -33,7 +33,7 @@ function _atuin_bind_up
set -l lineno (commandline --line)
switch $lineno
case 1
- _atuin_search
+ _atuin_search --shell-up-key-binding
case '*'
up-or-search
end
diff --git a/src/shell/atuin.zsh b/src/shell/atuin.zsh
index ed1c0c16..dd5c1afc 100644
--- a/src/shell/atuin.zsh
+++ b/src/shell/atuin.zsh
@@ -34,7 +34,8 @@ _atuin_search(){
echoti rmkx
# swap stderr and stdout, so that the tui stuff works
# TODO: not this
- output=$(RUST_LOG=error atuin search -i -- $BUFFER 3>&1 1>&2 2>&3)
+ # shellcheck disable=SC2048
+ output=$(RUST_LOG=error atuin search $* -i -- $BUFFER 3>&1 1>&2 2>&3)
echoti smkx
if [[ -n $output ]] ; then
@@ -45,15 +46,20 @@ _atuin_search(){
zle reset-prompt
}
+_atuin_up_search(){
+ _atuin_search --shell-up-key-binding
+}
+
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 [[ -z $ATUIN_NOBIND ]]; then
bindkey '^r' _atuin_search_widget
# depends on terminal mode
- bindkey '^[[A' _atuin_search_widget
- bindkey '^[OA' _atuin_search_widget
+ bindkey '^[[A' _atuin_up_search_widget
+ bindkey '^[OA' _atuin_up_search_widget
fi