aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/home/.config
diff options
context:
space:
mode:
Diffstat (limited to 'home/.config')
-rw-r--r--home/.config/lf/lfrc113
-rw-r--r--home/.config/yazi/keymap.toml9
-rw-r--r--home/.config/yazi/yazi.toml5
-rw-r--r--home/.config/zsh/.zshrc9
4 files changed, 23 insertions, 113 deletions
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'