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.
218 lines
7.7 KiB
Markdown
218 lines
7.7 KiB
Markdown
# 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 <path> change directory
|
|
:reveal <path> reveal a file in its parent dir
|
|
:tab_create open new tab
|
|
:tab_switch <N> switch to tab N
|
|
:quit quit
|
|
:yank yank selected
|
|
:paste paste yanked
|
|
:remove delete to trash
|
|
:rename rename hovered
|
|
:shell <cmd> 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
|
|
`cd`s 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 = "<Esc>"
|
|
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 |