Added keybinds for options for Yazi opener

This commit is contained in:
agryphus 2025-02-09 21:36:34 -05:00
parent e42cb28ffc
commit fb16f8aa70
5 changed files with 106 additions and 42 deletions

View file

@ -5,10 +5,19 @@
[manager]
prepend_keymap = [
# Smart enter
{ on = [ "o" ], run = [ "plugin smart-enter --sync --args='list'", "escape --visual --select" ], desc = "List openers for file." },
{ on = [ "l" ], run = [ "plugin smart-enter --sync", "escape --visual --select" ], desc = "Enter the child directory, or open file." },
{ on = [ "L" ], run = [ "plugin smart-enter --sync --args='detatch'", "escape --visual --select" ], desc = "Open in new window." },
{ on = [ "1" ], run = [ "shell 'opener -n 1 $0' --block --confirm"], desc = "Open with program 1." },
{ on = [ "2" ], run = [ "shell 'opener -n 2 $0' --block --confirm"], desc = "Open with program 2." },
{ on = [ "3" ], run = [ "shell 'opener -n 3 $0' --block --confirm"], desc = "Open with program 3." },
{ on = [ "!" ], run = [ "shell 'opener -n 1 detatch $0' --block --confirm"], desc = "Open in new window with program 1." },
{ on = [ "@" ], run = [ "shell 'opener -n 2 detatch $0' --block --confirm"], desc = "Open in new window with program 2." },
{ on = [ "#" ], run = [ "shell 'opener -n 3 detatch $0' --block --confirm"], desc = "Open in new window with program 3." },
{ on = [ "j" ], run = [ "plugin --sync arrow --args=1"], desc = "Move selection downwards, or wrap." },
{ on = [ "k" ], run = [ "plugin --sync arrow --args=-1"], desc = "Move selection upwards, or wrap." },
{ on = [ "l" ], run = [ "plugin smart-enter --sync", "escape --visual --select" ], desc = "Enter the child directory, or open file." },
{ on = [ "L" ], run = "plugin smart-enter --sync --args='detatch'", desc = "Open in new window." },
{ on = [ "T" ], run = "plugin --sync max-preview", desc = "Maximize preview pane"},
{ on = [ "n" ], run = "create", desc = "Create a file or directory (ends with / for directories)" },
{ on = [ "<C-n>"], run = '''

View file

@ -8,11 +8,24 @@ return {
return
end
if #args > 0 and args[1] == "detatch" then
os.execute(string.format("opener detatch \"%s\"", h.url))
else
if #args == 0 then
ya.manager_emit("open", {})
end
if args[1] == "detatch" then
os.execute(string.format("opener detatch \"%s\"", h.url))
elseif args[1] == "list" then
local f = assert(io.popen(string.format(
"opener list \"%s\"", h.url), 'r'))
local out = assert(f:read('*a'))
f:close()
ya.notify {
title = string.format("Openers for %s:", h.name),
content = out,
timeout = 6.5,
level = "info",
}
end
end,
}

View file

@ -169,35 +169,31 @@ icon_error = ""
[filetype]
rules = [
# Images
{ mime = "image/*", fg = "yellow" },
# Sections correspond to different colors and their meaning
# Media
# Can see and not hear
{ mime = "image/*", fg = "yellow" },
{ mime = "application/{epub*,pdf,doc,rtf,vnd.*}", fg = "yellow" },
# Can hear
{ mime = "{audio,video}/*", fg = "magenta" },
# Archives
{ mime = "application/{,g}zip", fg = "red" },
{ mime = "application/x-{tar,bzip*,7z-compressed,xz,rar}", fg = "red" },
# Is link
{ name = "*", is = "link", fg = "cyan" },
{ name = "*/", is = "link", fg = "cyan", bold = true },
# Documents
{ mime = "application/{pdf,doc,rtf,vnd.*}", fg = "cyan" },
# Can open
{ mime = "application/{,g}zip", fg = "blue" },
{ mime = "application/x-{tar,bzip*,7z-compressed,xz,rar}", fg = "blue" },
{ name = "*/", fg = "blue", bold = true },
# Empty files
# { mime = "inode/x-empty", fg = "red" },
# Can run
{ name = "*", is = "exec", fg = "green" },
# Special files
# Broken
{ name = "*", is = "orphan", bg = "red" },
{ name = "*", is = "exec" , fg = "green" },
# Dummy files
{ name = "*", is = "dummy", bg = "red" },
{ name = "*/", is = "dummy", bg = "red" },
# Fallback
# { name = "*", fg = "white" },
{ name = "*/", is = "link", fg = "cyan", bold = true },
{ name = "*", is = "link", fg = "cyan", bold = true },
{ name = "*/", fg = "blue", bold = true },
]
[icon]
@ -757,10 +753,6 @@ exts = [
{ name = "zip", text = "", fg_dark = "#eca517", fg_light = "#76520c" },
{ name = "zsh", text = "", fg_dark = "#89e051", fg_light = "#447028" },
{ name = "zst", text = "", fg_dark = "#eca517", fg_light = "#76520c" },
{ name = "*", text = "", is = "exec" },
{ name = "*" , text = "" },
{ name = "*/", text = "󰝰", fg = "yellow" },
]
conds = [
# Special files
@ -774,7 +766,7 @@ conds = [
# Fallback
{ if = "dir", text = "󰝰", fg_dark = "yellow" },
{ if = "exec", text = "" },
{ if = "exec", text = "", fg_dark = "yellow" },
{ if = "!dir", text = "" },
]

View file

@ -31,12 +31,17 @@ ueberzug_offset = [ 0, 0, 0, 0 ]
open = [
{ run = 'opener "$@"', block = true, desc = "Open" },
]
alt = [
{ run = 'opener "$@"', block = true, desc = "Alt" },
]
nothing = [
{ run = 'echo -n', desc = "" },
]
[open]
rules = [
{ name = "*/", use = [ "edit", "open", "reveal" ] },
{ mime = "*", use = [ "open" ] },
{ name = "*/", use = [ "nothing" ] },
{ mime = "*", use = [ "open", "alt" ] },
]
[tasks]