cwdio is built keyboard-first: every command has a name, most have a chord, and the palette makes the rest one keystroke away. The default keymap keeps the orthodox commander row — F5 copy, F6 move, F7 new folder, F8 delete — and puts the developer chords beside it: Ctrl+P go to file, Ctrl+Shift+P palette, Ctrl+Shift+F search, Ctrl+` terminal. The full table is on the keyboard shortcuts page.
What it does
- Command palette. Ctrl+Shift+P or F1. Fuzzy matching rewards consecutive runs, word boundaries and acronyms; an empty query lists recently used commands first; disabled commands are hidden. Menu categories and palette categories are the same words, so the two tell one story.
- One keymap, one truth. The chord shown next to a command in the palette, the menus and the shortcuts reference is derived from the same table that runs it, so a hint can never drift from what the key does.
- Rebinding. Help ▸ Keyboard shortcuts (Ctrl+/) lists every bound command grouped by category with a type-to-filter box; each row has a pencil to capture a new chord and a reset; Reset all clears every override. Conflicts and reserved keys are reported inline and the binding left unchanged.
- Go to file. Ctrl+P flattens the active panel’s subtree once and fuzzy-ranks the relative paths; Enter navigates to the file’s folder and selects it.
- Jump to recent folder. Ctrl+J ranks the folders you actually go to by frequency and recency (recent visits weigh more, older ones decay); type to filter, Enter to jump, Delete to forget one.
- Favourites. Ctrl+Shift+B opens the bookmarked-folder picker; Add current folder bookmarks where you are. Favourites can also sit as one-click buttons on the launcher bar.
- The address bar from the keyboard. Alt+D makes the breadcrumb editable; the input autocompletes subfolders as you type, and an empty or separator-less draft lists frecent folders instead.
- Orthodox selection keys. * inverts the selection; + and - select or unselect
by wildcard pattern (
*.jpg; *.png). Edit ▸ Select also offers select by size, by date, read-only files, and files of the same type as the cursor file. - The command line. A one-line command line sits under the panels (the Midnight Commander model): type a command and it runs in the active terminal session, in the panel’s folder. Ctrl+Enter inserts the cursor file’s name, Ctrl+Shift+Enter its full path.
- A keyboard-operable menu bar. F10 focuses it, Alt+letter opens a menu directly, arrows move, type-ahead jumps. Eight menus — File, Edit, View, Go, Tools, Terminal, Plugins, Help — placed by the same categories the palette uses.
How to use it
- Forget the chord and open the palette: Ctrl+Shift+P, type
dupfor the duplicate finder orsizfor the size map. The chord is printed beside the match; next time, use it. - To reach a file deep in a project, Ctrl+P and type part of its name —
readme,pkg.json— then Enter. - To go back to a folder you use every day, Ctrl+J and two or three letters of it.
- To make a habit official, bookmark it: Ctrl+Shift+B ▸ Add current folder.
- Rebind anything that fights your muscle memory in Ctrl+/.
What is reserved, and why
Tab switches panels, Esc closes whatever is open, Enter opens the cursor entry, and F1 / Ctrl+Shift+P open the palette. These are core gestures handled before the keymap, so they cannot be given to a command. Global chords — the terminal toggles — fire even while an input field has focus; every other chord is panel-scoped and ignored while you are typing in the command line, the address bar or a dialog, so a file name can never trigger a file operation.
What it deliberately does not do
- It does not bind a currently unbound command, offer secondary chords, or unbind (disable) a command yet; rebinding is one chord per command.
- The palette does not run commands that are disabled in the current state — they are hidden, so a stale hint never leads to a no-op.
- The command line is not a shell of its own: it writes into the active terminal session, so what runs there is exactly what would run in the terminal.
Related
- Keyboard shortcuts — the complete default keymap, grouped by menu.
- Terminal sync — where the command line’s input goes.
- Dual panes, tabs and the workspace — the panels these keys act on.