aboutsummaryrefslogtreecommitdiff
path: root/config
diff options
context:
space:
mode:
Diffstat (limited to 'config')
-rw-r--r--config/fish/config.fish12
-rw-r--r--config/yazi/init.lua24
-rw-r--r--config/yazi/keymap.toml9
-rw-r--r--config/yazi/plugins/smart-enter.yazi/init.lua9
-rw-r--r--config/yazi/theme.toml6
-rw-r--r--config/yazi/yazi.toml21
6 files changed, 79 insertions, 2 deletions
diff --git a/config/fish/config.fish b/config/fish/config.fish
index d205631..9682f90 100644
--- a/config/fish/config.fish
+++ b/config/fish/config.fish
@@ -120,7 +120,6 @@ if status is-interactive
alias nvim 'VIMINIT="" /usr/bin/nvim'
end
alias v 'nvim'
- alias y 'yazi'
alias gdb 'gdb -q' # disable long intro message
alias sudo 'sudo ' # enable color (the search for aliases continues)
alias doas 'doas ' # same for doas
@@ -131,6 +130,17 @@ if status is-interactive
alias arduino-cli='arduino-cli --config-file $XDG_CONFIG_HOME/arduino15/arduino-cli.yaml'
# alias nvidia-settings --config="$XDG_CONFIG_HOME"/nvidia/settings
+ #alias y 'yazi'
+ # from: https://yazi-rs.github.io/docs/quick-start#shell-wrapper
+ function y
+ set tmp (mktemp -t "yazi-cwd.XXXXXX")
+ yazi $argv --cwd-file="$tmp"
+ if set cwd (command cat -- "$tmp"); and [ -n "$cwd" ]; and [ "$cwd" != "$PWD" ]
+ builtin cd -- "$cwd"
+ end
+ rm -f -- "$tmp"
+ end
+
if command -qv eza
alias ls='eza --git --git-repos --mounts --classify --icons'
else
diff --git a/config/yazi/init.lua b/config/yazi/init.lua
new file mode 100644
index 0000000..c781e9b
--- /dev/null
+++ b/config/yazi/init.lua
@@ -0,0 +1,24 @@
+require("git"):setup()
+
+-- Add the user and group in the status line (from: https://yazi-rs.github.io/docs/tips#user-group-in-status)
+Status:children_add(function()
+ local h = cx.active.current.hovered
+ if h == nil or ya.target_family() ~= "unix" then
+ return ui.Line {}
+ end
+
+ return ui.Line {
+ ui.Span(ya.user_name(h.cha.uid) or tostring(h.cha.uid)):fg("magenta"),
+ ui.Span(":"),
+ ui.Span(ya.group_name(h.cha.gid) or tostring(h.cha.gid)):fg("magenta"),
+ ui.Span(" "),
+ }
+end, 500, Status.RIGHT)
+
+-- Add hostname and username in header (from: https://yazi-rs.github.io/docs/tips#username-hostname-in-header)
+Header:children_add(function()
+ if ya.target_family() ~= "unix" then
+ return ui.Line {}
+ end
+ return ui.Span(ya.user_name() .. "@" .. ya.host_name() .. " "):fg("blue")
+end, 500, Header.LEFT)
diff --git a/config/yazi/keymap.toml b/config/yazi/keymap.toml
index 8f3ca8a..7ab5ee7 100644
--- a/config/yazi/keymap.toml
+++ b/config/yazi/keymap.toml
@@ -2,14 +2,21 @@
[[manager.prepend_keymap]]
on = "<C-n>"
run = '''
- shell 'dragon-drop -x -i -T "$1"' --confirm
+ shell 'dragon-drop --and-exit --on-top "$@"' --confirm
'''
desc = "Open the drag and drop utility"
+
[[manager.prepend_keymap]]
on = "!"
run = 'shell "$SHELL" --block --confirm'
desc = "Open shell in the current directory"
+
[[manager.prepend_keymap]]
on = ["g", "d"]
run = 'cd ~/dl'
desc = "Open ~/dl"
+
+[[manager.prepend_keymap]]
+on = "l"
+run = 'plugin --sync smart-enter'
+desc = "Enter the child directory, or open the file"
diff --git a/config/yazi/plugins/smart-enter.yazi/init.lua b/config/yazi/plugins/smart-enter.yazi/init.lua
new file mode 100644
index 0000000..8724200
--- /dev/null
+++ b/config/yazi/plugins/smart-enter.yazi/init.lua
@@ -0,0 +1,9 @@
+-- from: https://yazi-rs.github.io/docs/tips#smart-enter
+
+--- @sync entry
+return {
+ entry = function()
+ local h = cx.active.current.hovered
+ ya.manager_emit(h and h.cha.is_dir and "enter" or "open", { hovered = true })
+ end,
+}
diff --git a/config/yazi/theme.toml b/config/yazi/theme.toml
new file mode 100644
index 0000000..0116edd
--- /dev/null
+++ b/config/yazi/theme.toml
@@ -0,0 +1,6 @@
+[flavor]
+use = "gruvbox-dark"
+
+[status]
+separator_open = ""
+separator_close = ""
diff --git a/config/yazi/yazi.toml b/config/yazi/yazi.toml
index bf5487d..c40e2e0 100644
--- a/config/yazi/yazi.toml
+++ b/config/yazi/yazi.toml
@@ -2,3 +2,24 @@
linemode = "size"
sort_by = "modified"
sort_reverse = true
+# mouse = [ "click", "scroll", "drag" ]
+
+[preview]
+cache_dir = "~/.cache/yazi"
+
+[opener]
+edit = [
+ { run = 'VIMINIT="" ${EDITOR:-vi} "$@"', desc = "$EDITOR", block = true, for = "unix" },
+ { run = 'code %*', orphan = true, desc = "code", for = "windows" },
+ { run = 'code -w %*', block = true, desc = "code (block)", for = "windows" },
+]
+
+[[plugin.prepend_fetchers]]
+id = "git"
+name = "*"
+run = "git"
+
+[[plugin.prepend_fetchers]]
+id = "git"
+name = "*/"
+run = "git"