diff options
| -rw-r--r-- | KEYBINDS.md | 15 | ||||
| -rw-r--r-- | home/.config/lf/lfrc | 113 | ||||
| -rw-r--r-- | home/.config/yazi/keymap.toml | 9 | ||||
| -rw-r--r-- | home/.config/yazi/yazi.toml | 5 | ||||
| -rw-r--r-- | home/.config/zsh/.zshrc | 9 |
5 files changed, 38 insertions, 113 deletions
diff --git a/KEYBINDS.md b/KEYBINDS.md index 4ac18a4..9820f3f 100644 --- a/KEYBINDS.md +++ b/KEYBINDS.md @@ -257,6 +257,21 @@ Emacs mode (`bindkey -e`) is the base. | `Alt-g` | Scroll to top | | `Alt-Shift-g` | Scroll to bottom | +## Yazi + +Only non-default keybinds listed. See `yazi --help` for built-in keys. + +| Key | Action | +|-----|--------| +| `!` | Open shell here (blocking) | +| `g r` | Go to git root | +| `g .` | Go to dotfiles | +| `g x` | Go to doxfiles | +| `g s` | Go to sync | +| `g S` | Go to screenshots | + +Shell: `y` function wraps yazi with cd-on-exit. + ## Cross-tool Shared Keys | Key | Neovim | Zellij | Zsh | Ghostty | Sway | diff --git a/home/.config/lf/lfrc b/home/.config/lf/lfrc deleted file mode 100644 index 6094d16..0000000 --- a/home/.config/lf/lfrc +++ /dev/null @@ -1,113 +0,0 @@ -# interpreter for shell commands (needs to be POSIX compatible) -set shell bash - -# set '-eu' options for shell commands -# These options are used to have safer shell commands. Option '-e' is used to -# exit on error and option '-u' is used to give error for unset variables. -# Option '-f' disables pathname expansion which can be useful when $f, $fs, and -# $fx variables contain names with '*' or '?' characters. However, this option -# is used selectively within individual commands as it can be limiting at -# times. -set shellopts '-eu' - -# set internal field separator (IFS) to "\n" for shell commands -# This is useful to automatically split file names in $fs and $fx properly -# since default file separator used in these variables (i.e. 'filesep' option) -# is newline. You need to consider the values of these options and create your -# commands accordingly. -set ifs "\n" - -# leave some space at the top and the bottom of the screen -set scrolloff 10 - -# use enter for shell commands -map <enter> shell - -# execute current file (must be executable) -map x $$f -map X !$f - -# dedicated keys for file opener actions -map o &linkhandler "$f" - -# define a custom 'open' command -# This command is called when current file is not a directory. You may want to -# use either file extensions and/or mime types here. Below uses an editor for -# text files and a file opener for the rest. -cmd open &linkhandler "$f" - -# define a custom 'rename' command without prompt for overwrite -cmd rename %[ -e $1 ] && printf "file exists" || mv $f $1 -map r push :rename<space> - -# make sure trash folder exists -# %mkdir -p ~/.trash - -# move current file or selected files to trash folder -# (also see 'man mv' for backup/overwrite options) -# cmd trash %set -f; mv $fx ~/.trash - -# define a custom 'delete' command -# cmd delete ${{ -# set -f -# printf "$fx\n" -# printf "delete?[y/n]" -# read ans -# [ $ans = "y" ] && rm -rf $fx -# }} - -# use '<delete>' key for either 'trash' or 'delete' command -# map <delete> trash -map D delete - -# extract the current file with the right command -# (xkcd link: https://xkcd.com/1168/) -cmd extract ${{ - set -f - case $f in - *.tar.bz|*.tar.bz2|*.tbz|*.tbz2) tar xjvf $f;; - *.tar.gz|*.tgz) tar xzvf $f;; - *.tar.xz|*.txz) tar xJvf $f;; - *.zip) unzip $f;; - *.rar) unrar x $f;; - *.7z) 7z x $f;; - esac -}} - -# compress current file or selected files with tar and gunzip -cmd tar ${{ - set -f - mkdir $1 - cp -r $fx $1 - tar czf $1.tar.gz $1 - rm -rf $1 -}} - -# compress current file or selected files with zip -cmd zip ${{ - set -f - mkdir $1 - cp -r $fx $1 - zip -r $1.zip $1 - rm -rf $1 -}} - -map f $lf -remote "send $id select '$(fzf)'" - -cmd recol &{{ - w=$(tput cols) - if [ $w -le 80 ]; then - lf -remote "send $id set ratios 1:2" - elif [ $w -le 160 ]; then - lf -remote "send $id set ratios 1:2:3" - else - lf -remote "send $id set ratios 1:2:3:5" - fi -}} - -recol - -map H :set hidden true -map S $$SHELL - -set period 1 diff --git a/home/.config/yazi/keymap.toml b/home/.config/yazi/keymap.toml new file mode 100644 index 0000000..b7ed5c7 --- /dev/null +++ b/home/.config/yazi/keymap.toml @@ -0,0 +1,9 @@ +[mgr] +prepend_keymap = [ + { on = "!", run = 'shell "$SHELL" --block', desc = "Open shell here" }, + { on = [ "g", "r" ], run = 'shell -- ya emit cd "$(git rev-parse --show-toplevel 2>/dev/null || echo .)"', desc = "Go to git root" }, + { on = [ "g", "." ], run = "cd ~/dotfiles", desc = "Go to dotfiles" }, + { on = [ "g", "x" ], run = "cd ~/doxfiles", desc = "Go to doxfiles" }, + { on = [ "g", "s" ], run = "cd ~/sync", desc = "Go to sync" }, + { on = [ "g", "S" ], run = "cd ~/pics/screenshots", desc = "Go to screenshots" }, +] diff --git a/home/.config/yazi/yazi.toml b/home/.config/yazi/yazi.toml new file mode 100644 index 0000000..793ca59 --- /dev/null +++ b/home/.config/yazi/yazi.toml @@ -0,0 +1,5 @@ +[mgr] +show_hidden = true +scrolloff = 10 +linemode = "mtime" +title_format = "Yazi: {cwd}" diff --git a/home/.config/zsh/.zshrc b/home/.config/zsh/.zshrc index d860826..bd03e8b 100644 --- a/home/.config/zsh/.zshrc +++ b/home/.config/zsh/.zshrc @@ -221,6 +221,15 @@ alias sysu='systemctl --user' # Navigation alias c='clear' +# Yazi: cd-on-exit wrapper +y() { + local tmp="$(mktemp -t "yazi-cwd.XXXXXX")" + command yazi "$@" --cwd-file="$tmp" + IFS= read -r -d '' cwd < "$tmp" + [[ "$cwd" != "$PWD" ]] && [[ -d "$cwd" ]] && builtin cd -- "$cwd" + rm -f -- "$tmp" +} + # Tools alias stow='stow -R --no-folding --adopt' alias curl='curlie' |
