The keyboard
pālana is keyboard-first, with Mac conventions where they belong. Learn five rules instead of memorizing a large shortcut list. (New to the window itself? Start with the window, labeled.)
1. A lowercase letter is a verb on files—and every verb opens a plan before anything runs.
2. ⌘ belongs to the app, never to files.
3. Bare keys keep their case—G is its own verb, not a shifted g.
4. Prefixes create families—c copies file facts and , sorts.
5. esc retreats one step at a time—a pending prefix first, the selection after.
⌥ is never claimed. Option-modified shortcuts pass through to macOS.
Navigate#
The vim set and the arrow set are both fully wired—use whichever your hands already know.
| j k or ↓ ↑ | cursor down / up |
| h l or ← → | parent directory / enter directory |
| ⏎ | enter a folder—or open a file in its Mac app |
| gg / G | top / bottom (Home and End work too) |
| ⌃d ⌃u | half page down / up (PgDn and PgUp for whole pages) |
| space | select the entry and advance |
| ⌘A / esc | select all / clear |
| tab | switch pane |
| / | jump—type a name, the cursor chases it |
Verbs#
Six lowercase letters state intent. None of them acts—each opens the plan, and Enter enacts it.
| y | copy to the other pane—the plan names the route: same host, cross-dataset, or host to host |
| m | move to the other pane—the plan names what the move actually is: a same-disk rename, a copy-then-delete, or a transfer |
| d | delete—the plan shows the exact rm before Enter releases it |
| r | rename—opens the name field over the cursor entry; the plan guards against overwriting an existing name |
| a | create—type a name; a trailing / makes it a directory |
| t | touch—update modification times on the selection |
For r and a, the name field opens first and ⏎ does the whole job—commit the name, read the plan, done.
Families#
A prefix key opens a family; the second key picks the member.
| cc / cd | copy the full path / the directory path |
| cf / cn | copy the filename / the name without its extension |
| ,n / ,s / ,m | sort by name / size / modified—the same key again flips the direction |
Surfaces#
Each secondary view opens from a key and closes when you are done. None creates persistent UI state.
| f | the field view—hosts, pools, datasets, as remembered |
| F | the host map—floats beside the window |
| * | the favorites panel |
| v | preview—the right pane follows the left pane's cursor |
| ` | the terminal panel—the tool letters light up |
| ⌘` | the live shell—⌘` moves the keyboard in and back out |
| ? | the keys card—? again floats it as its own window |
| ⌘, | settings |
App#
⌘ talks to pālana itself, never to your files.
| ⌘R | refresh the focused pane |
| ⌘← ⌘→ | back / forward through where the pane has been |
| ⌘+ ⌘− ⌘0 | zoom in / out / reset—one master zoom sizes the whole surface |
| ⌘K | clear the terminal |
| ⇧⌘G | go to host:path |
| ⇧⌘L | the operations log—points the pane at the log file |
| 8 / ⌘8 | star the highlighted directory / star this folder |
ZFS mode#
Z flips the focused pane from files to the host's dataset tree. The verbs change with it—and every one of them still composes a plan you read before Enter.
| Z | enter / exit the dataset tree |
| ⏎ / esc | open a mounted dataset in the pane / leave |
| c | new dataset—a child of where you stand |
| x | destroy the dataset |
| r | rename the dataset |
| n | snapshot—optionally every child dataset too |
| k | destroy a snapshot |
| b | roll back to a snapshot |
| p / i | set the mountpoint / clear it—the dataset inherits its parent's |
| m / u | mount / unmount—these two need the mount grant on the host |
Terminal reads#
One keystroke asks the focused host a question; the answer lands in the terminal panel. Reads only—nothing here mutates.
| ⇧tab | engage the tool reads |
| d z s p | df · zfs list · zpool status · zpool list |
The same vocabulary lives in the app: ? summons the keys card, and ? again floats it as a window you can keep beside your work.