diff --git a/.config/broot/select.hjson b/.config/broot/select.hjson new file mode 100644 index 0000000..20ec81d --- /dev/null +++ b/.config/broot/select.hjson @@ -0,0 +1,17 @@ +verbs: [ + { + invocation: "ok" + key: "enter" + leave_broot: true + execution: ":print_path" + apply_to: "directory" + } + + { + invocation: "broot_home" + keys: ["ctrl-7", "ctrl-g"] + execution: "broot -f --conf ~/.config/broot/select.hjson $HOME" + leave_broot: true + } +] + diff --git a/.config/broot/select.toml b/.config/broot/select.toml deleted file mode 100644 index 2b2a477..0000000 --- a/.config/broot/select.toml +++ /dev/null @@ -1,6 +0,0 @@ -[[verbs]] -invocation = "ok" -key = "enter" -leave_broot = true -execution = ":print_path" -apply_to = "directory" diff --git a/.config/broot/verbs.hjson b/.config/broot/verbs.hjson index 2dc8097..6279ee5 100644 --- a/.config/broot/verbs.hjson +++ b/.config/broot/verbs.hjson @@ -16,6 +16,13 @@ verbs: [ leave_broot: true } + { + invocation: broot_home + key: ctrl-7 + execution: broot $HOME + leave_broot: true + } + # You should customize this standard opening of text files. # If you edit text files in your terminal (vi, emacs, helix, eg.), then # you'll find it convenient to change the 'key' from 'ctrl-e' to 'enter'. diff --git a/.config/fish/config.fish b/.config/fish/config.fish index e42a7b0..856ce9f 100644 --- a/.config/fish/config.fish +++ b/.config/fish/config.fish @@ -46,14 +46,28 @@ if status is-interactive end function jump - set _dir $(fre --sorted | fzf --no-sort --color=fg:248,bg+:16,fg+:49,pointer:49,border:49 --border=rounded --layout=reverse '--bind=ctrl-g:become(br -f --conf ~/.config/broot/select.toml $(git rev-parse --show-toplevel 2>/dev/null || pwd))') + set _dir $(fre --sorted | fzf --no-sort --color=fg:248,bg+:16,fg+:49,pointer:49,border:49 --border=rounded --layout=reverse '--bind=ctrl-g:become(br -f --conf ~/.config/broot/select.hjson $(git rev-parse --show-toplevel 2>/dev/null || pwd))') [ -n "$_dir" ] && pushd $_dir >>/dev/null commandline -f repaint end bind \cg jump - bind \c_ 'do something' - bind \ee 'br $(git rev-parse --show-toplevel 2>/dev/null || pwd)' + function git_jump + set _dir $(git rev-parse --show-toplevel 2>/dev/null || pwd) + if [ "$_dir" = "$PWD" ] + set _dir $(br -f --conf ~/.config/broot/select.hjson) + end + [ -n "$_dir" ] && pushd $_dir >>/dev/null + commandline -f repaint + end + bind \c_ git_jump + + function git_broot + br $(git rev-parse --show-toplevel 2>/dev/null || pwd) + commandline -f repaint + end + + bind \ee git_broot bind \eg gitui