Remap any shortcut in Settings → Keyboard; the macOS menu bar follows
A Keyboard section in the Settings window edits the shared keymap: rows by group with a search field, a chip per key (x removes), + to record, reset per row and Reset all. Recording takes the keydown before every other key in the window (Cmd+W records instead of closing), refuses reserved combos without preventDefault (Cmd+Q still quits), requires a chord or F-key for editor commands, and offers Replace when another command in an overlapping scope owns the key. Rows flag conflicts and plain character keys that would stop starting a type-to-filter query. Fixed keys are listed read-only, in the platform's spelling. Remaps are ordinary settings (only rows that differ from the defaults), so every window, the menu hints and the tooltips follow live — and the macOS menu bar: its accelerators are built from the keymap (only the combos Electrobun's parser expresses faithfully) and rebuilt on a remap. A main-window menu action fired from the editor or Settings window brings the main window forward first. Also: the "Enter / double-click on a file" setting under File list (do nothing / open local files in their default app), arrow keys in the Settings sidebar with focus on open and a hand-walked Tab, translations for all seven languages (the spec now checks every language labels every command), and a README shortcut table generated from the keymap. Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -35,13 +35,15 @@ Dense reference material lives in [docs/](docs/): [architecture](docs/architectu
|
||||
a standard titlebar.
|
||||
- **Menu-bar (tray) icon**: template icon that adapts to light/dark; click it
|
||||
to bring the app to the front.
|
||||
- **Edit files** (F4 / toolbar / File menu): a built-in editor works on local
|
||||
- **Edit files** (F4 / ⌘E / toolbar / File menu): a built-in editor works on local
|
||||
and remote files directly; or pick an external app (Settings → Editor →
|
||||
Custom → Choose…). External edits of remote files download to a temp folder,
|
||||
are watched, and every save auto-uploads (visible in the transfer list) until
|
||||
the session disconnects. Leftover temp files from a crash are offered for
|
||||
cleanup at the next start.
|
||||
- Browse, sort (name/size/modified, folders first), keyboard navigation.
|
||||
- Browse, sort (name/size/modified, folders first), full keyboard control
|
||||
with remappable shortcuts (see below). Enter / double-click on a local file
|
||||
can open it in its default app (Settings → File list; off by default).
|
||||
- Create folder / file, rename, delete (recursive), change permissions (chmod).
|
||||
- Upload, download, and remote→remote send — files **and** whole folders —
|
||||
with a transfer queue, per-job progress, and cancel.
|
||||
@@ -178,14 +180,102 @@ Saved connections live in a plain JSON file in the OS app-data directory
|
||||
|
||||
## Keyboard shortcuts
|
||||
|
||||
`Tab` switch panel · `↑`/`↓`/`PgUp`/`PgDn`/`Home`/`End` move cursor ·
|
||||
`Space` select · `Enter` open folder · `Backspace` parent ·
|
||||
`Ctrl/Cmd+A` select all · `F5` send to other panel · `F2` rename ·
|
||||
`F7` new folder · `F8`/`Delete` delete · `Cmd/Ctrl+T` new tab ·
|
||||
`Cmd/Ctrl+W` close tab · `Ctrl+Tab` next tab · `Cmd/Ctrl+,` settings ·
|
||||
`Cmd/Ctrl+=`/`-`/`0` interface bigger / smaller / 100%.
|
||||
The whole app works from the keyboard, and **every command can be remapped** in
|
||||
**Settings → Keyboard**: press **+** on a row and type the keys, see conflicts,
|
||||
reset one row or all. Remaps apply live in every window, the right-click menus'
|
||||
hints and the toolbar tooltips follow, and so does the macOS menu bar. The
|
||||
defaults:
|
||||
|
||||
(On Macs, function keys may need `fn` — every action also has a toolbar button.)
|
||||
| Command | macOS | Windows / Linux |
|
||||
| --- | --- | --- |
|
||||
| **File list** | | |
|
||||
| Move up | `↑` | `↑` |
|
||||
| Move down | `↓` | `↓` |
|
||||
| Page up | `PgUp` | `PgUp` |
|
||||
| Page down | `PgDn` | `PgDn` |
|
||||
| First item | `Home` | `Home` |
|
||||
| Last item | `End` | `End` |
|
||||
| Select / deselect | `Space` | `Space` `Ins` |
|
||||
| Select all | `⌘A` | `Ctrl+A` |
|
||||
| Open | `↩` `⌘↓` | `Enter` |
|
||||
| Parent folder | `⌫` `⌘↑` | `Backspace` `Alt+↑` |
|
||||
| Switch panel | `⇥` `⇧⇥` | `Tab` `Shift+Tab` |
|
||||
| Show the item's menu | `⇧F10` `⌃↩` | `Shift+F10` `Menu` |
|
||||
| **Files** | | |
|
||||
| Send to the other panel | `F5` | `F5` |
|
||||
| Edit | `⌘E` `F4` | `F4` `Ctrl+E` |
|
||||
| Rename | `F2` | `F2` |
|
||||
| New folder | `⇧⌘N` `F7` | `F7` `Ctrl+Shift+N` |
|
||||
| New file | `⌘N` `⇧F4` | `Shift+F4` `Ctrl+N` |
|
||||
| Permissions | `⌘I` | `Ctrl+I` |
|
||||
| Delete | `F8` `⌦` | `F8` `Del` |
|
||||
| Move to Trash | `⌘⌫` | `Ctrl+Del` |
|
||||
| Copy path | `⌥⌘C` | `Ctrl+Shift+C` |
|
||||
| Reveal in file manager | `⌥⌘R` | `Alt+Shift+R` |
|
||||
| Open in default app | `⌘O` | `Ctrl+O` |
|
||||
| Refresh | `⌘R` | `Ctrl+R` |
|
||||
| Go to path | `⌘L` | `Ctrl+L` |
|
||||
| Choose what the panel shows | `⌘K` | `Ctrl+K` |
|
||||
| **Sorting** | | |
|
||||
| Sort by name | `⌥1` | `Alt+1` |
|
||||
| Sort by size | `⌥2` | `Alt+2` |
|
||||
| Sort by modified | `⌥3` | `Alt+3` |
|
||||
| Sort by kind | `⌥4` | `Alt+4` |
|
||||
| Sort by rights | `⌥5` | `Alt+5` |
|
||||
| Sort by owner | `⌥6` | `Alt+6` |
|
||||
| Sort by group | `⌥7` | `Alt+7` |
|
||||
| **Tabs** | | |
|
||||
| New tab | `⌘T` | `Ctrl+T` |
|
||||
| Close tab | `⌘W` | `Ctrl+W` |
|
||||
| Close other tabs | `⌥⌘W` | `Ctrl+Shift+W` |
|
||||
| Close tabs to the right | — | — |
|
||||
| Next tab | `⌃⇥` `⇧⌘]` | `Ctrl+Tab` `Ctrl+PgDn` |
|
||||
| Previous tab | `⌃⇧⇥` `⇧⌘[` | `Ctrl+Shift+Tab` `Ctrl+PgUp` |
|
||||
| Go to tab 1 | `⌘1` | `Ctrl+1` |
|
||||
| Go to tab 2 | `⌘2` | `Ctrl+2` |
|
||||
| Go to tab 3 | `⌘3` | `Ctrl+3` |
|
||||
| Go to tab 4 | `⌘4` | `Ctrl+4` |
|
||||
| Go to tab 5 | `⌘5` | `Ctrl+5` |
|
||||
| Go to tab 6 | `⌘6` | `Ctrl+6` |
|
||||
| Go to tab 7 | `⌘7` | `Ctrl+7` |
|
||||
| Go to tab 8 | `⌘8` | `Ctrl+8` |
|
||||
| Go to last tab | `⌘9` | `Ctrl+9` |
|
||||
| Move tab left | `⌃⇧PgUp` | `Ctrl+Shift+PgUp` |
|
||||
| Move tab right | `⌃⇧PgDn` | `Ctrl+Shift+PgDn` |
|
||||
| Disconnect tab | `⌘D` | `Ctrl+D` |
|
||||
| **Window** | | |
|
||||
| Settings | `⌘,` | `Ctrl+,` |
|
||||
| Connection manager | `⇧⌘K` | `Ctrl+Shift+K` |
|
||||
| Show / hide transfers | `⌘J` | `Ctrl+J` |
|
||||
| Install update | — | — |
|
||||
| Bigger interface | `⌘=` `⇧⌘=` `⌘Num +` | `Ctrl+=` `Ctrl+Shift+=` `Ctrl+Num +` |
|
||||
| Smaller interface | `⌘-` | `Ctrl+-` |
|
||||
| Interface at 100% | `⌘0` | `Ctrl+0` |
|
||||
| Close window | `⌘W` | `Ctrl+W` |
|
||||
| **Editor** | | |
|
||||
| Save | `⌘S` | `Ctrl+S` |
|
||||
| Find | `⌘F` | `Ctrl+F` |
|
||||
| Find next | `⌘G` | `F3` |
|
||||
| Find previous | `⇧⌘G` | `Shift+F3` |
|
||||
| Wrap lines | `⌥Z` | `Alt+Z` |
|
||||
| **Connection manager** | | |
|
||||
| New connection | `⌘N` | `Ctrl+N` |
|
||||
| New stack | `⇧⌘N` | `Ctrl+Shift+N` |
|
||||
| Save connection | `⌘S` | `Ctrl+S` |
|
||||
| Connect / open stack | `⌘↩` | `Ctrl+Enter` |
|
||||
| Delete connection or stack | `⌘⌫` | `Del` |
|
||||
| Rename stack | `F2` | `F2` |
|
||||
| Import from WinSCP | `⌘O` | `Ctrl+O` |
|
||||
|
||||
**Fixed keys** (not remappable): Esc closes menus, dialogs and the find bar —
|
||||
in the file list it clears the filter, then cancels a connect, then clears the
|
||||
selection. Enter / Esc confirm / cancel dialogs and Tab walks their controls
|
||||
(on macOS too, without the system's Keyboard navigation setting). Typing in the
|
||||
file list filters it (Backspace trims); Shift + any movement key selects the
|
||||
rows the cursor passes. ↑ ↓ Home End Enter work in every menu.
|
||||
|
||||
(On Macs, function keys may need `fn` — every F-key command also has a ⌘ key
|
||||
or a toolbar button.)
|
||||
|
||||
## Same-file protection
|
||||
|
||||
|
||||
Reference in New Issue
Block a user