From 311538839a0a333d953f58d2bd3a7057a375d01c Mon Sep 17 00:00:00 2001 From: Prad Nukala Date: Fri, 9 Oct 2026 11:39:37 -0400 Subject: [PATCH] feat(config): add grokbot scheme handlers and yazi configuration enhancements --- dot_config/mimeapps.list | 2 + dot_config/yazi.toml.tmpl | 30 ++++++++ dot_config/yazi/keymap.toml | 129 +++++++++++++++++++++-------------- dot_config/yazi/package.toml | 5 ++ 4 files changed, 114 insertions(+), 52 deletions(-) create mode 100644 dot_config/yazi.toml.tmpl diff --git a/dot_config/mimeapps.list b/dot_config/mimeapps.list index 14fd1dc..51a3be6 100644 --- a/dot_config/mimeapps.list +++ b/dot_config/mimeapps.list @@ -37,6 +37,8 @@ x-scheme-handler/tldraw-offline=tldraw-offline.desktop x-scheme-handler/notion=notion.desktop inode/directory=io.github.lgse.Strata.desktop x-scheme-handler/fastmail=com.fastmail.Fastmail.desktop +x-scheme-handler/grokbot=grok-bot.desktop +x-scheme-handler/sand=grok-bot.desktop [Added Associations] x-scheme-handler/http=brave-origin.desktop;userapp-Floorp-8MTFP3.desktop; diff --git a/dot_config/yazi.toml.tmpl b/dot_config/yazi.toml.tmpl new file mode 100644 index 0000000..6d0d4bb --- /dev/null +++ b/dot_config/yazi.toml.tmpl @@ -0,0 +1,30 @@ +[mgr] +ratio = [0, 2, 6] + +[opener] +play = [ + { run = "mpv %s", orphan = true, for = "unix" }, +] +edit = [ + # routes into the host nvim when run inside its terminal ($NVIM set); + # plain blocking nvim otherwise. Lives in ~/.local/bin (yazi doesn't + # expand $HOME here). %s = selected/hovered paths (yazi interpolation). + { run = 'yazi-nvim-open %s', block = true, for = "unix" }, +] +open = [ + { run = "{{ if eq .chezmoi.os "darwin" }}open{{ else }}xdg-open{{ end }} %s1", desc = "Open" }, +] + +[open] +prepend_rules = [ + { url = "*.{md,markdown}", use = [ "fry", "edit", "open" ] }, +] + +# Preview pane: bat for text-like files (md included, since mdfried is TTY-only) +[[plugin.prepend_previewers]] +mime = "text/*" +run = 'piper -- bat -p --color=always --terminal-width=$w "$1"' + +[[plugin.prepend_previewers]] +mime = "application/{mbox,javascript,wine-extension-ini}" +run = 'piper -- bat -p --color=always --terminal-width=$w "$1"' diff --git a/dot_config/yazi/keymap.toml b/dot_config/yazi/keymap.toml index f095086..fef7753 100644 --- a/dot_config/yazi/keymap.toml +++ b/dot_config/yazi/keymap.toml @@ -1,16 +1,16 @@ [[mgr.prepend_keymap]] -on = "F" -run = "plugin smart-filter" +on = "F" +run = "plugin smart-filter" desc = "Smart filter" [[mgr.prepend_keymap]] -on = [ "g", "r" ] -run = 'shell -- ya emit cd "$(git rev-parse --show-toplevel)"' +on = ["g", "r"] +run = 'shell -- ya emit cd "$(git rev-parse --show-toplevel)"' desc = "Go to git root" [[mgr.prepend_keymap]] -on = [ "g", "C" ] -run = 'shell -- ya emit cd "$HOME/.local/share/chezmoi"' +on = ["g", "C"] +run = 'shell -- ya emit cd "$HOME/.local/share/chezmoi"' desc = "Go to chezmoi root" [[mgr.prepend_keymap]] @@ -25,108 +25,108 @@ on = "'" run = "plugin bunny fuzzy" [[mgr.prepend_keymap]] -on = [ "g", "d"] -run = 'shell -- ya emit cd "$HOME/Downloads"' +on = ["g", "d"] +run = 'shell -- ya emit cd "$HOME/Downloads"' desc = "Go to ~/Downloads" [[mgr.prepend_keymap]] -on = [ "g", "D", "d" ] -run = 'shell -- ya emit cd "$GHQ_ROOT/github.com"' +on = ["g", "D", "d"] +run = 'shell -- ya emit cd "$GHQ_ROOT/github.com"' desc = "Go to ~/Developer" [[mgr.prepend_keymap]] -on = [ "g", "D", "w" ] -run = 'shell -- ya emit cd "$GHQ_ROOT/github.com/wltbs"' +on = ["g", "D", "w"] +run = 'shell -- ya emit cd "$GHQ_ROOT/github.com/wltbs"' desc = "Go to ~/Developer/wltbs" [[mgr.prepend_keymap]] -on = [ "g", "D", "p" ] -run = 'shell -- ya emit cd "$GHQ_ROOT/github.com/prdlk"' +on = ["g", "D", "p"] +run = 'shell -- ya emit cd "$GHQ_ROOT/github.com/prdlk"' desc = "Go to ~/Developer/prdlk" [[mgr.prepend_keymap]] -on = [ "g", "l" ] -run = 'shell -- ya emit cd "$HOME/.local"' +on = ["g", "l"] +run = 'shell -- ya emit cd "$HOME/.local"' desc = "Go to ~/.local" [[mgr.prepend_keymap]] -on = [ "g", "o", "p" ] -run = 'shell -- ya emit cd "$HOME/Documents/Obsidian/Personal"' +on = ["g", "o", "p"] +run = 'shell -- ya emit cd "$HOME/Documents/Obsidian/Personal"' desc = "Open Personal Obsidian" [[mgr.prepend_keymap]] -on = [ "g", "o", "r" ] -run = 'shell -- ya emit cd "$HOME/Documents/Obsidian/Research"' +on = ["g", "o", "r"] +run = 'shell -- ya emit cd "$HOME/Documents/Obsidian/Research"' desc = "Open Research Obsidian" [[mgr.prepend_keymap]] -on = [ "g", "o", "w" ] -run = 'shell -- ya emit cd "$HOME/Documents/Obsidian/Walletbase"' +on = ["g", "o", "w"] +run = 'shell -- ya emit cd "$HOME/Documents/Obsidian/Walletbase"' desc = "Open Walletbase Obsidian" [[mgr.prepend_keymap]] -on = [ "g", "p" ] -run = 'shell -- ya emit cd "$HOME/Pictures"' +on = ["g", "p"] +run = 'shell -- ya emit cd "$HOME/Pictures"' desc = "Go to Pictures" [[mgr.prepend_keymap]] -on = [ "g", "b" ] -run = "back" +on = ["g", "b"] +run = "back" desc = "Go to previous directory" [[mgr.prepend_keymap]] -on = [ "g", "f" ] -run = "forward" +on = ["g", "f"] +run = "forward" desc = "Go forward to next directory" [[mgr.prepend_keymap]] -on = [ "g","m", "p" ] -run = "cd sftp://gdrive-personal" +on = ["g", "m", "p"] +run = "cd sftp://gdrive-personal" desc = "Mount & Go to Personal Drive" [[mgr.prepend_keymap]] -on = [ "g","m", "s" ] -run = "cd sftp://gdrive-sonr" +on = ["g", "m", "s"] +run = "cd sftp://gdrive-sonr" desc = "Mount & Go to Sonr Drive" [[mgr.prepend_keymap]] -on = [ "g", "m", "h" ] -run = "cd sftp://gdrive-hyperauth" +on = ["g", "m", "h"] +run = "cd sftp://gdrive-hyperauth" desc = "Mount & Go to HyperAuth Drive" [[mgr.prepend_keymap]] -on = "" -run = "quit" +on = "" +run = "quit" desc = "Quit" [[mgr.prepend_keymap]] -on = "" -run = 'shell "$SHELL" --block' +on = "" +run = 'shell "$SHELL" --block' desc = "Drop to shell in the current directory" [[mgr.prepend_keymap]] -on = "l" -run = "plugin smart-enter" +on = "l" +run = "plugin smart-enter" desc = "Enter the child directory, or open the file" [[mgr.prepend_keymap]] -on = "" +on = "" run = "plugin tv" desc = "Jump to a file via television" [[mgr.prepend_keymap]] -on = "" +on = "" run = "plugin tv ghq" desc = "Jump to a ghq repo via television" [[mgr.prepend_keymap]] -on = "" +on = "" run = "plugin tv dirs" desc = "Jump to a directory via television" [[mgr.prepend_keymap]] -on = "" +on = "" run = "plugin tv text" desc = "Open files using neovim and jump to where the string is located" @@ -135,21 +135,46 @@ desc = "Open files using neovim and jump to where the string is located" # standalone yazi — see ~/.local/bin/yazi-nvim-open). Replaces yazi.nvim's # / buffer-local maps. [[mgr.prepend_keymap]] -on = "" -run = 'shell -- yazi-nvim-open vsplit %s' +on = "" +run = 'shell -- yazi-nvim-open vsplit %s' desc = "Open in nvim vertical split" [[mgr.prepend_keymap]] -on = "" -run = 'shell -- yazi-nvim-open split %s' +on = "" +run = 'shell -- yazi-nvim-open split %s' desc = "Open in nvim horizontal split" [[mgr.prepend_keymap]] -on = "A" -run = "create --dir" +on = "A" +run = "create --dir" desc = "Create a directory" [[mgr.prepend_keymap]] -on = "N" -run = "bulk_create" +on = "N" +run = "bulk_create" desc = "Bulk create files" + +[[mgr.prepend_keymap]] +on = "" +run = "plugin split-tabs spl_toggle" +desc = "Split-tabs: toggle split tabs mode" + +[[mgr.prepend_keymap]] +on = "" +run = "plugin split-tabs spl_switch_tab" +desc = "Split-tabs: switch to the other pane" + +[[mgr.prepend_keymap]] +on = "" +run = ["escape --visual", "plugin split-tabs spl_copy"] +desc = "Split-tabs: copy to the other pane" + +[[mgr.prepend_keymap]] +on = "" +run = ["escape --visual", "plugin split-tabs spl_move"] +desc = "Split-tabs: move to the other pane" + +[[mgr.prepend_keymap]] +on = "P" +run = "plugin split-tabs spl_preview" +desc = "Split-tabs: toggle preview pane" diff --git a/dot_config/yazi/package.toml b/dot_config/yazi/package.toml index d579899..d1d3fbf 100644 --- a/dot_config/yazi/package.toml +++ b/dot_config/yazi/package.toml @@ -63,5 +63,10 @@ use = "yazi-rs/plugins:no-status" rev = "efa4d79" hash = "3e023d31f29201efdac2a6ae35fedb78" +[[plugin.deps]] +use = "terrakok/split-tabs" +rev = "d0531f4" +hash = "4298f0a23f6109a92334eef06fc7ffb9" + [flavor] deps = []