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.
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
-
Shell Wrapper (cd persistence) Use the
ywrapper script instead of rawyaziso your shellcds into the directory you navigated to on exit. Install: https://yazi-rs.github.io/docs/quick-start/#shell-wrapper -
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"]
-
Drop to shell from anywhere Add to keymap.toml: mgr.prepend_keymap on = "!" for = "unix" run = 'shell "$SHELL" --block' desc = "Open $SHELL here"
-
Close input with single Esc (no Vi mode) input.prepend_keymap on = "" run = "close" desc = "Cancel input"
-
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" ]
-
cd to Git repo root mgr.prepend_keymap on = ["g", "r"] run = 'shell -- ya emit cd "$(git rev-parse --show-toplevel)"'
-
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"
-
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"
-
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)
-
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