Files
mw-pfeddersheim-workstation/docs/yazi-cheatsheet.md
T
ja d746d76530 migrate secrets management from KWallet to gnome-keyring + Bitwarden
Architecture: Bitwarden (central vault) → rbw CLI → gnome-keyring
(local cache via org.freedesktop.secrets D-Bus). All apps (himalaya,
git, ssh-agent, JetBrains IDEs, browsers) now read secrets via
libsecret/secret-tool through gnome-keyring.

Changes:
- Install gnome-keyring + rbw, enable as systemd user service
- Configure rbw → bitwarden.jantec.xyz (ironmikechw+bitwarden@gmail.com)
- Migrate 45 meaningful entries from KWallet → BW + GK
- Switch git credential.helper from store to libsecret
- Document: one-pager, ADR, migration checklist, NEXT_STEPS update
- Skill: devops/secrets-migration for reuse

Post-reboot manual: himalaya IMAP passwords (4 accounts, were not in
KWallet) and GitHub CLI token re-auth.

See docs/product/passwords.md for the full guide.
2026-05-21 12:58:38 +02:00

7.7 KiB

Yazi v26.5.6 - Cheatsheet & Daily Usage Tricks

Version: 26.5.6 (Arch Linux 2026-05-10) | Rust-based terminal file manager Config: ~/.config/yazi/ (keymap.toml, yazi.toml, theme.toml, init.lua)

============================================================ QUICK START

yazi # launch y # shell wrapper (cd persists on exit) q # quit (cwd applied) Q # quit without changing cwd F1 or ~ # show help / keybindings

============================================================ NAVIGATION (essential)

h parent directory l enter dir / open hovered file j / k down / up H / L history back / forward Enter open file o open file (alternative) Tab toggle file details / info . toggle hidden files ~ jump to home / search forward ? search backward n / N next / previous match f interactive filter (fuzzy) S search with fd g g go to top G go to bottom

============================================================ FILE OPERATIONS

Space toggle selection (multi-select) v visual mode (range select) Ctrl+A select all Esc clear selection y yank / copy p paste X cut x undo cut D delete to trash Shift+D permanent delete a create new file Shift+A create new directory R rename Shift+R bulk rename (opens editor) O "Open with..." menu

============================================================ TABS

t new tab 1-9 switch to tab N [ / ] previous / next tab W close current tab

============================================================ SORTING

, m sort by modified (mtime) , M sort by modified (reverse) , c sort by created , C sort by created (reverse) , e sort by extension , E sort by extension (reverse) , a sort alphabetically , A sort alphabetically (reverse) , s sort by size , S sort by size (reverse)

============================================================ SHELL & COMMANDS

! drop into $SHELL here (block) : command line (yazi internal commands) Ctrl+S run an arbitrary shell command

============================================================ PLUGIN EMIT COMMANDS (used with : or ya emit)

:cd change directory :reveal reveal a file in its parent dir :tab_create open new tab :tab_switch switch to tab N :quit quit :yank yank selected :paste paste yanked :remove delete to trash :rename rename hovered :shell run shell command

============================================================ CONFIGURATION (key files)

keymap.toml custom keybindings yazi.toml behavior, previewers, open rules theme.toml colors, UI theme init.lua Lua startup script (plugins, status bar tweaks) ~/.config/yazi/plugins/ plugin directory

============================================================ POWER TRICKS & BEST PRACTICES

  1. Shell Wrapper (cd persistence) Use the y wrapper script instead of raw yazi so your shell cds into the directory you navigated to on exit. Install: https://yazi-rs.github.io/docs/quick-start/#shell-wrapper

  2. Open files in default apps (xdg-open) Add to yazi.toml: opener.system_default run = "xdg-open "$1"" for = "linux" desc = "System Default" open.rules name = "*" use = ["system_default"]

  3. Drop to shell from anywhere Add to keymap.toml: mgr.prepend_keymap on = "!" for = "unix" run = 'shell "$SHELL" --block' desc = "Open $SHELL here"

  4. Close input with single Esc (no Vi mode) input.prepend_keymap on = "" run = "close" desc = "Cancel input"

  5. Copy to system clipboard on yank (Wayland) mgr.prepend_keymap on = "y" run = [ 'shell -- for path in %s; do echo "file://$path"; done | wl-copy -t text/uri-list', "yank" ]

  6. cd to Git repo root mgr.prepend_keymap on = ["g", "r"] run = 'shell -- ya emit cd "$(git rev-parse --show-toplevel)"'

  7. Smart tab - create tab + enter hovered dir Save plugin: ~/.config/yazi/plugins/smart-tab.yazi/main.lua --- @sync entry return { entry = function() local h = cx.active.current.hovered ya.emit("tab_create", h and h.cha.is_dir and { h.url } or { current = true }) end } Bind in keymap.toml: mgr.prepend_keymap on = ["t", "t"] run = "plugin smart-tab"

  8. Performance: disable unnecessary image previews If you don't need image previews, disable them: [plugin] preloaders = [] previewers = [] Or for network mounts only: plugin.prepend_preloaders url = "/remote/**" run = "noop"

  9. Show username+hostname in header (init.lua) Header:children_add(function() if ya.target_family() ~= "unix" then return "" end return ui.Span(ya.user_name().."@"..ya.host_name()..":"):fg("blue") end, 500, Header.LEFT)

  10. Show symlink target in status bar (init.lua) Status:children_add(function(self) local h = self._current.hovered if h and h.link_to then return " -> "..tostring(h.link_to) else return "" end end, 3300, Status.LEFT)

============================================================ PLUGINS WORTH INSTALLING (yazi-rs/plugins)

full-border.yazi full panel borders smart-enter.yazi open files or enter dirs with one key smart-paste.yazi paste without entering directory toggle-pane.yazi maximize/hide preview pane confirm-quit.yazi confirm quit when tabs are open no-status.yazi hide status bar for minimal UI mime-ext.yazi fast extension-based mime detection chmod.yazi change file permissions 7zip.yazi archive support zoxide.yazi zoxide integration for jump history

============================================================ DDS (Data Distribution Service) EVENTS

Yazi broadcasts events via DDS socket for inter-process comms: cd directory changed hover file hovered yank files yanked bulk bulk rename in progress Use DDS to build custom integrations (e.g. folder-specific rules).

============================================================ DAILY DRILL (memorization order)

j/k move | l enter | h back Space select | y copy | p paste | X cut D delete | R rename | a create | . hidden / search | f filter | g g top | G bottom t tab | 1-9 switch | ! shell | q quit

============================================================ Generated 2026-05-21 | Sources: yazi-rs.github.io/docs, official tips page