[← README](../../README.md) · [Docs index](../README.md) · [Panels and keys](README.md) # Every default key Every key both apps have out of the box, with the action's name in the **F9** list and the config name that `[keys]` uses. Use it as a reference, or as the list to start from when you [change keys](../customise/keys.md). ![The desktop app's F1 window, coxswain X.Y.Z · Keyboard shortcuts, with the tabs Keys and Features and questions and Show the guide again, then the groups, Moving first (Open Enter, Parent folder Ctrl+PageUp Backspace …), then Panels and tabs](../screenshots/panels-keys.png) ## Contents - [How to use it](#how-to-use-it) - [Moving](#moving) - [Panels and tabs](#panels-and-tabs) - [Marking](#marking) - [Files](#files) - [Archives](#archives) - [Search](#search) - [Git](#git) - [Viewing and editing](#viewing-and-editing) - [App](#app) - [Keys that are not actions](#keys-that-are-not-actions) - [Keys inside dialogs](#keys-inside-dialogs) - [Settings and config.toml](#settings-and-configtoml) - [In the terminal app](#in-the-terminal-app) - [Questions](#questions) ## How to use it The tables follow the groups of **F1** and **F9**, in the same order: moving first, the app last, and in each group the most used action first. Find the key in the tables below. *Both* means the key does the same in each app; where they differ, the columns say how. An action marked *–* in the terminal column answers there with the status *… is available in the desktop app (coxswain-gui)*. **F1** shows the keys you have now, and **F9** finds any action by name. On a Mac the shortcuts are the same, with **Ctrl**, not Cmd. ## What you see ### Moving | Key | Action (F9 name) | Config name | Desktop app | Terminal app | |---|---|---|---|---| | **Enter** | Open | `open` | Open a folder or archive here, a file in its program | The same; a program runs in the panel's folder | | **Up** / **Down** | Up / Down | `up` / `down` | The cursor ([Moving around](moving.md)) | The same | | **Ctrl+PageUp**, **Backspace** | Parent folder | `parent` | Up to the parent folder | The same | | **PageUp**, **Left** | Page up | `page_up` | A page up (columns view: **Left** goes up; thumbnails: one tile left) | A page up | | **PageDown**, **Right** | Page down | `page_down` | A page down (columns view: **Right** opens the folder; thumbnails: one tile right) | A page down | | **Home** / **End** | First / Last | `home` / `end` | First / last entry | The same | | **Alt+Left** / **Alt+Right** | Back / Forward | `back` / `forward` | The tab's history | – | | **Alt+F1** / **Alt+F2** | Left: go to / Right: go to | `goto_left` / `goto_right` | Type a path in the left / right pane's path bar | *Left panel* / *Right panel* dialog; on FreeBSD with boot environments or jails, a list of those first ([FreeBSD](../systems/freebsd.md#boot-environments-and-jails)) | | **Ctrl+L** | Edit path | `edit_path` | Type a path in the active pane | – | ### Panels and tabs | Key | Action (F9 name) | Config name | Desktop app | Terminal app | |---|---|---|---|---| | **Tab** | Other panel | `switch_panel` | The other pane | The other panel | | **Alt+.** | Hidden files | `toggle_hidden` | Show or hide hidden files | The same | | **Ctrl+R** | Refresh | `refresh` | Read the panes' folders again; the status line says *Refreshed* | The same, for the panels | | **Alt+O** | Other panel here | `same_dir` | The active pane's folder in the other pane | The same | | **Ctrl+U** | Swap panels | `swap_panels` | Swap the panes | Swap the panels | | **Ctrl+O** | Panels on/off | `toggle_panels` | One pane or two ([Tabs and panes](tabs-and-panes.md)) | Hides the panels and shows the last command's output, *Panels hidden · any key brings them back* under it ([more](../commands/command-line.md#the-output-flashed-by-in-the-terminal-app-where-is-it)) | | **Ctrl+T** | New tab | `new_tab` | A new tab in the same folder and view | – | | **Ctrl+W** | Close tab | `close_tab` | Close the tab (the last one stays) | – | | **Ctrl+Tab** | Next tab | `next_tab` | The next tab of the pane | – | | **Ctrl+Shift+Tab** | Previous tab | `prev_tab` | The previous tab | – | | **Alt+V** | Details/columns/thumbnails | `toggle_view` | The next view ([Views](views.md)) | – | | **Ctrl+B** | Sidebar | `toggle_sidebar` | The sidebar on or off ([The sidebar](../organise/sidebar.md)) | – | | **Ctrl+F3** | Sort by name | `sort_name` | By name; again reverses ([Sorting](sorting.md)) | The same | | **Ctrl+F4** | Sort by extension | `sort_ext` | By extension | The same | | **Ctrl+F5** | Sort by time | `sort_time` | By time, newest first | The same | | **Ctrl+F6** | Sort by size | `sort_size` | By size, largest first | The same | | – | Folder sizes | `folder_sizes` | Measure the marked folders, or all, again ([Folder sizes](folder-sizes.md)) | Measure the panel's folders again | | – | Columns and folder sizes | `columns` | The columns menu ([Views](views.md#the-columns-menu)); also a right-click on a column header | – | | **Alt+U** | Space view | `space_view` | Where the space goes in the folder under the cursor (else the panel's) as a treemap, with the bytes by type and the largest files ([Space](space.md)) | The same, full screen, in coloured blocks | ### Marking | Key | Action (F9 name) | Config name | Desktop app | Terminal app | |---|---|---|---|---| | **Insert**, **Shift+Down** | Mark | `mark` | Mark and move down ([Marking files](marking.md)) | The same | | **Ctrl+A** | Mark all | `mark_all` | Mark everything in the folder, files and folders (not `..`). In the command line, while it has text, it selects that text instead (desktop app) | The same | | `+` | Mark group | `mark_group` | Mark files by pattern: the *Mark files* dialog | The same | | `-` | Unmark group | `unmark_group` | Unmark files by pattern: the *Unmark files* dialog | The same | | `*` | Invert marks | `invert_marks` | Invert the marks of files | The same | ### Files | Key | Action (F9 name) | Config name | Desktop app | Terminal app | |---|---|---|---|---| | **Shift+F10**, **Menu** | What can I do with this? | `action_menu` | The actions that fit what is under the cursor ([The action menu](action-menu.md)) | The same (the Menu key where the terminal passes it on) | | **F5** | Copy | `copy` | Copy to the other pane ([Copy](../files/copy.md)) | The same | | **F6** | Move | `move` | Move or rename ([Move and rename](../files/move-and-rename.md)) | The same | | **Shift+F6** | Rename | `rename` | Rename the entry under the cursor in place ([Move and rename](../files/move-and-rename.md)) | The same | | **F8**, **Delete** | Delete | `delete` | To the trash ([Delete](../files/delete.md)) | The same | | **F7** | New folder | `new_folder` | New folder ([New folder](../files/new-folder.md)) | The same | | **Ctrl+C** / **Ctrl+X** / **Ctrl+V** | Copy to clipboard / Cut to clipboard / Paste | `clip_copy` / `clip_cut` / `paste` | Files through the system clipboard ([Clipboard](../files/clipboard.md)) | – | | **Shift+F8**, **Shift+Delete** | Delete permanently | `delete_forever` | Delete for good | The same | | **Ctrl+Z** | Undo | `undo` | Undo the last file operation ([Undo](../files/undo.md)) | The same | | **Alt+Enter** | Properties | `properties` | Size, dates, permissions, ZFS, package, flags ([Properties](../files/properties.md)) | The same facts as text | | **Ctrl+M** | Batch rename | `batch_rename` | Rename the marked files by pattern ([Batch rename](../files/batch-rename.md)) | – | | **Alt+R** | Find and replace | `replace` | Replace text in the marked files or Find's results, previewed first ([Find and replace](../files/find-and-replace.md)) | The same | | **Alt+T** | Colour tag | `tag` | Tag the marked files ([Colour tags](../organise/tags.md)) | – | | **Alt+M** | Permissions and dates | `attrs` | Permission bits and dates of the marked files, planned first ([Permissions and dates](../files/permissions-and-dates.md)) | The same | | **Alt+Z** | ZFS snapshots | `snapshots` | The snapshots of the folder's ZFS dataset, as folders ([ZFS snapshots](../files/zfs-snapshots.md)) | The same | | **Ctrl+F2** | Compare folders | `compare_folders` | The two panes' folders compared, every entry marked; again: its menu ([Compare folders](../files/compare-folders.md)) | The same | | **Shift+F2** | Compare files | `compare_files` | The two files side by side in a window: text, documents, pictures, bytes ([Compare files](../files/compare-files.md)) | The same, full screen; one under the other below 120 columns | | – | File flags | `flags` | Properties, where the flags are ticked ([File flags](../files/properties.md#zfs-packages-and-file-flags)) | A line to edit your file's user flags | | – | Files of this package | `package` | The files of the FreeBSD package the file belongs to ([Packages](../files/properties.md#zfs-packages-and-file-flags)) | The same | | **Alt+P** | Make PDF searchable | `searchable_pdf` | A copy of each marked PDF with its words in it, by OCRmyPDF; the key again stops it ([Make PDF searchable](../files/searchable-pdf.md)) | The same | | – | Convert video or audio | `convert_media` | MP4, MP3 or FLAC copies of the marked videos and songs, their sound or a clip, by ffmpeg; again while it runs, stops it ([Convert video or audio](../files/convert-media.md)) | The same | | – | Convert geodata | `convert_geodata` | GeoPackage, GeoJSON, shapefile, KML or GPX copies of the marked geodata, a COG or PNG of a GeoTIFF, by GDAL; again while it runs, stops it ([Geodata](../previews/geodata.md#convert-geodata)) | The same | | – | Export from KiCad | `export_kicad` | PDF, SVG, a bill of materials or Gerbers of the marked KiCad schematics and boards, by kicad-cli; again while it runs, stops it ([KiCad](../previews/kicad.md#export-from-kicad)) | The same | | – | Export 3D model | `export_model` | STL or 3MF copies of the marked OpenSCAD models, by OpenSCAD; again while it runs, stops it ([OpenSCAD models](../previews/openscad.md#export-3d-model)) | The same | | – | Convert or edit pictures | `edit_pictures` | JPEG, PNG or WebP copies of the marked pictures, smaller, without the location or turned, by ImageMagick; again while it runs, stops it ([Convert or edit pictures](../files/edit-pictures.md)) | The same | | – | Convert e-book | `convert_ebook` | The marked e-books (or the one under the cursor) as EPUB, AZW3 or PDF next to them, by calibre; again while it runs, stops it ([E-books](../previews/ebooks.md)) | The same | | **Alt+H** | Make checksums | `make_checksums` | A SHA256SUMS, SHA512SUMS or B3SUMS of the marked files and folders; again while it runs, stops it ([Checksums](../files/checksums.md)) | The same | | **Enter** on a list | Verify checksums | `verify_checksums` | Every file the SHA256SUMS (or `.sha256` …) names checked: OK, changed, missing; what changed marked ([Checksums](../files/checksums.md#checking-a-list)) | The same | | **Alt+X** | Split file | `split_file` | The file in parts of a chosen size, `name.001` …, with `name.sha256`; again while it runs, stops it ([Split and join](../files/split-and-join.md)) | The same | | **Enter** on `name.001` | Join parts | `join_parts` | The parts joined back into `name` and checked against `name.sha256` ([Split and join](../files/split-and-join.md#joining-the-parts)) | The same | | none (**Shift+F10**, **F9**) | Build PDF of AsciiDoc | `adoc_pdf` | A PDF of each marked AsciiDoc document next to it, by Asciidoctor PDF ([Build PDF of AsciiDoc](../files/asciidoc-pdf.md)) | The same | | none (**Shift+F10**, **F9**) | Export draw.io diagram | `drawio_export` | PNG, SVG or PDF of each marked diagram next to it, by draw.io ([Export draw.io diagram](../files/drawio-export.md)) | The same | | **Alt+I** | Scan for viruses | `scan_viruses` | The marked files or folders (on `..`, the panel's folder) scanned by ClamAV in a container, once turned on; the key again stops it ([Scan for viruses](../files/virus-scan.md)) | The same | ### Archives | Key | Action (F9 name) | Config name | Desktop app | Terminal app | |---|---|---|---|---| | **Ctrl+E** | Extract archive | `extract` | Extract into the other pane | The same | | **Alt+F5** | Pack into an archive | `pack` | Pack the marked files ([Pack and extract](../files/pack-and-extract.md)) | The same | ### Search | Key | Action (F9 name) | Config name | Desktop app | Terminal app | |---|---|---|---|---| | **Alt+F7**, **Ctrl+F** | Find | `search` | Find; inside it, the scope: everywhere or this folder ([Find](../search/find-file.md)) | The same | | **Shift+F7**, **Ctrl+Shift+F** | Find in files | `search_text` | Find at *In files*; inside it, *In files* ⇄ *All* ([Text in files](../search/text.md)) | The same; many terminals send Ctrl+Shift+F as Ctrl+F, so use Shift+F7 | | **Ctrl+F7** | Ask your files | `ask` | Find at *Ask*; inside it, ask what is typed ([Ask](../search/ask.md)) | The same | | **Ctrl+D** | Find duplicates | `duplicates` | The duplicate finder ([Finding duplicates](../files/duplicates.md)) | – | | – | Long files: sample or everything… | `long_files` | On a folder: its long files kept whole or sampled, each choice with what it costs ([Long files](../search/long-files.md#one-folder)) | The same | | – | Transcribe speech | `transcribe` | The marked recordings, or those in the folder, transcribed with Whisper after a question with the hours and the time here ([Transcripts of speech](../search/transcripts.md)) | The same; **F3** on a recording shows its transcript | ### Git | Key | Action (F9 name) | Config name | Desktop app | Terminal app | |---|---|---|---|---| | **Ctrl+G** | Git history | `history` | The commits of the file or folder under the cursor, as folders ([Git history](git-history.md)) | The same | | **Alt+A** | History of all branches | `history_all` | In a history: the commits of every branch in the list and its graph, or this branch's again; on a file or folder, its history of every branch ([The graph](git-history.md#the-graph)) | The same | | **Alt+Y** | Against upstream | `history_upstream` | In a history: the commits not pushed and not merged, as of the last fetch, or this branch's again; on a file or folder, its history against the upstream ([Against upstream](git-history.md#against-upstream)) | The same | | **Alt+B** | Git branches | `branches` | The repository's branches, as folders ([Git branches](git-branches.md)) | The same | | **Alt+S** | Switch to branch | `switch_branch` | In the list of branches: switch to the one under the cursor, after asking ([Switching](git-branches.md#switching-to-a-branch)) | The same | | **Alt+W** | Git worktrees | `worktrees` | The repository's worktrees ([Worktrees](git-branches.md#worktrees)) | The same | | **Alt+G** | Open in your git tool | `git_tool` | The repository in your own git tool, for commit, push and pull: a terminal tool in a terminal window, a desktop client in its own ([Open in your git tool](git.md#open-in-your-git-tool)) | A terminal tool runs in this terminal, in place of the panels | | **Alt+C** | Git config | `git_config` | The git config as git uses it here: each value with its scope and file, secrets hidden ([Git config](git-config.md)) | The same, full screen | | – | New branch here | `new_branch` | A new branch from the one under the cursor, or from the current commit, switched to ([A new branch](git-branches.md#a-new-branch)) | The same | ### Viewing and editing | Key | Action (F9 name) | Config name | Desktop app | Terminal app | |---|---|---|---|---| | **F3** | View | `view` | The preview pane on or off | The file in your viewer (`less`) ([View and edit](../commands/view-and-edit.md)) | | **F4** | Edit | `edit` | The file in your editor, else its default application | The file in your editor, else the built-in one | | **Shift+F4** | Edit here | `edit_here` | The file in the [built-in editor](../commands/editor.md), in a window | The same, full screen | | **Space** | Preview | `toggle_preview` | The preview pane on or off ([The preview pane](../previews/README.md)) | – | | – | Preview with… | `preview_with` | The choices for the kind of the file under the cursor: Installed program, Container or Off, from the action menu and F9 ([Preview with…](../previews/tools.md#preview-with)) | The same; it sets what the terminal app runs and the desktop app's previews | | **Ctrl+Enter**, **Ctrl+J** | Path to command line | `copy_path` | The name under the cursor to the command line | The same | | **F2** | Menu | `user_menu` | Scripts and the user menu | The user menu ([The user menu](../commands/user-menu.md)) | | **Alt+N** | Folder notes | `notes` | The folder's notes in the preview pane ([Folder notes](../organise/notes.md)) | – | | **Alt+K** | Open games | `chess` | A PGN (chess or xiangqi), a DhtmlXQ xiangqi game, SGF, PDN, KIF, CSA or PBN file's games, an EPD or FEN file's positions, a Polyglot book's moves, in a window ([Chess games](../previews/chess.md), [Go games](../previews/go.md), [Draughts games](../previews/draughts.md), [Xiangqi games](../previews/xiangqi.md), [Shogi games](../previews/shogi.md), [Bridge deals](../previews/bridge.md)) | The same, full screen; **F3** too | ### App | Key | Action (F9 name) | Config name | Desktop app | Terminal app | |---|---|---|---|---| | **F1** | Help | `help` | The help window; its *Show the guide again* button opens the [first-run guide](first-run.md) | The help screen ([Help](command-list.md)); **G** there opens the first-run guide | | – | Features and questions | `features` | Help's *Features and questions* tab ([Features and questions](features.md)); **F1** in a dialog opens it at that dialog's feature | **Tab** in the help screen; **F1** in a dialog opens it at that dialog's feature | | **F9** | Commands | `menu` | The command list | The same (the F-key bar still says *PullDn*) | | **Ctrl+,**, **F12** | Settings | `settings` | The Settings window ([Settings](../customise/settings.md)) | The terminal app's Settings; most terminals pass only **F12** on, shown as *12 Settings* on the F-key bar. **Shift+F10** → *Settings* and **F9** → *Settings* always work | | – | Disk use | `disk_use` | Settings at *Privacy and updates* → *Disk use* ([Disk use](../reference/disk-use.md)) | The same, in the terminal app's Settings | | **F10** | Quit | `quit` | Close the window | Quit | ### Keys that are not actions These are fixed; `[keys]` does not change them. | Key | Desktop app | Terminal app | |---|---|---| | **Alt+letter** | [Quick search](quick-search.md) (letters and digits not bound to an action) | Quick search (any character not bound) | | Other characters | Go to the command line | The same | | **Enter** with text in the command line | Runs it; output in the preview pane ([The command line](../commands/command-line.md)) | Runs it with the panels hidden | | **Esc** | Clears the command line; with it empty, closes the preview pane; closes a dialog | Clears the command line; closes a dialog | | **Backspace** with text in the command line | Edits it | The same | | **Left**, **Right**, **Home**, **End**, **Delete**, **Space** with text in the command line | Edit it | **Space** is typed; the others do nothing (the line edits at its end only), so **Delete** never deletes the entry under the cursor while you type | | **Ctrl+C**, **Ctrl+X**, **Ctrl+V** with text in the command line | Copy, cut and paste text | – | | **Left** / **Right** in the columns view | Up / into the folder | – | | Arrows in thumbnails | Move in two dimensions | – | ### Keys inside dialogs | Dialog | Keys | |---|---| | Any prompt (copy, move, new folder, go to, mark group, password) | **Enter** does what the button says (*Copy*, *Move*, *Create*, *Go*, *Mark*, *Unlock* …), **Esc** cancels; the line under the buttons says so: *Enter Copy · Esc Cancel*. Terminal app: **Backspace** deletes, **Ctrl+U** clears the line, **F10** cancels too | | Pack (**Alt+F5**) | Desktop app: the *Format* list next to the name swaps its ending. Terminal app: **Tab** the next format's ending, **Shift+Tab** the previous one ([Pack and extract](../files/pack-and-extract.md#formats)) | | Delete confirmation | **Enter** or **Y** deletes, **Esc** or **N** cancels; the line under it says *Enter Delete · Esc Cancel* (*Enter Move to bin* when it goes to the bin) | | Find | Type to search, **Tab** the next kind, **Up** / **Down** / **PageUp** / **PageDown** move, **Enter** goes to the hit, **Ctrl+Enter** asks (terminal: **Alt+Enter**), **F1** the syntax, **F4** edits, **Shift+F4** edits in the built-in editor, **Esc** back or close; terminal app also **F3** views it and **Ctrl+U** clears the field ([Find](../search/find-file.md)) | | First-run guide | Desktop app: **Enter** next, **Esc** skips, *Back* / *Next* / *Done*. Terminal app: **Up** / **Down** choose, **Space** or **Left** / **Right** change, **Enter** next, **Backspace** back, **Esc** skips ([First-run guide](first-run.md)) | | Command list (**F9**), columns menu | Type to filter, **Up** / **Down**, **Enter** runs, **Esc** closes | | User menu (**F2**) | An entry's own key runs it at once; **Up** / **Down** and **Enter** too; **Esc** closes | | Colour tag (**Alt+T**, desktop app) | **1** to **7** a colour, **0** removes the tag, **Esc** closes | | Help (**F1**) | Desktop app: **Esc**, **Enter** or **F1** closes; *Show the guide again* opens the first-run guide. Terminal app: **Up** / **Down** / **PageUp** / **PageDown** scroll, **G** opens the first-run guide, any other key closes | | Error message | Titled with what failed (*Could not copy budget.txt*), the cause in one line, the raw text under *Details*; the line under it says *Enter Close*. Desktop app: **Enter** or **Esc**. Terminal app: any key | | After a program or a waiting command (terminal app) | **Enter** at `-- press Enter --` | | **Ctrl+O** output (terminal app) | Any key back to the panels, as the line under the output says | ## Settings and config.toml Every action above is a key under `[keys]` in `config.toml`, with a list of keys: ```toml [keys] search = ["Ctrl+P"] # replaces Alt+F7 and Ctrl+F tag = [] # unbinds Alt+T, freeing it for quick search folder_sizes = ["Ctrl+Q"] # gives Folder sizes a key ``` Listing an action replaces its default keys; `[]` unbinds it. Key names are written as in the tables (`Ctrl+Shift+Tab`, `Alt+.`, `F5`, `Space`). `coxswain --dump-config` prints every action with its default keys. The rules and names: [Changing keys](../customise/keys.md) and [Configuration](../reference/configuration.md). ## In the terminal app It has every action whose *Terminal app* column is not *–*. The desktop-only ones answer with *… is available in the desktop app (coxswain-gui)* in the status line, because they need what a terminal lacks: tabs, a preview pane, a sidebar, pictures, the system clipboard. Keys the terminal itself takes do not reach it: many terminals send **Ctrl+Enter** as plain **Enter**, which is why **Ctrl+J** does the same; some keep **Ctrl+F3** to **Ctrl+F6** or **Alt+letter** for themselves. ## Questions #### How do I change a key? In `config.toml`, under `[keys]`: `search = ["Ctrl+P"]`. See [Where do I change a key?](../customise/keys.md#where-do-i-change-a-key) #### My `[keys]` line `mkdir = ["F7"]` stopped working. Why? 2.0 renamed it `new_folder`: see [My `[keys] mkdir` stopped working](../customise/keys.md#my-keys-mkdir-stopped-working-in-20-why). #### Why does the F-key bar say *Move* in the desktop app and *RenMov* in the terminal app? The terminal app keeps Norton Commander's short labels on its bar; the keys are the same. See [The screen](the-screen.md#why-does-the-f-key-bar-say-move-in-one-app-and-renmov-in-the-other). #### I bound a key and now Coxswain says config.toml has a mistake. Why? A key name it cannot read (`"Ctlr+P"`) or a key bound twice: that one line is left out, the rest of the config is used, and the notice opens `config.toml` at the line. See [I bound a key and it does nothing](../customise/keys.md#i-bound-a-key-and-it-does-nothing-what-is-wrong). #### Why does Ctrl+C in the command line copy text, not files? While the command line has text, **Ctrl+C**, **Ctrl+X** and **Ctrl+V** edit it, as in any text field. With the command line empty they copy, cut and paste files. #### Space in the terminal app says "Preview is available in the desktop app". Why? **Space** is bound to the preview pane, which the terminal app does not have. With text in the command line, **Space** is typed as usual. Unbind it (`toggle_preview = []`) to silence the message. #### Why is F3 the preview in the desktop app, not a viewer? NC's **F3** showed the file; the preview pane does that in place, and **Esc** or **F3** again closes it. For a file in your own viewer, use a [script](../commands/scripts.md) or open it with **Enter**. #### Why are the shortcuts Ctrl on a Mac, not Cmd? `[keys]` knows Ctrl, Alt and Shift, not Cmd: see [Can I use Cmd on a Mac?](../customise/keys.md#can-i-use-cmd-on-a-mac) #### Two actions have the same key. Which one wins? Neither: a key you give two actions in `[keys]` is refused, as an unknown key name is. A key you bind to one action leaves the action it was a default of. See [Rules](../customise/keys.md#rules). #### Can a key run a shell command? Not from `[keys]`. Put the command in the [user menu](../commands/user-menu.md) (**F2** and a letter) or a [script](../commands/scripts.md). --- [← Previous: What the apps remember](session.md) · [Next: Tags, notes, favourites and the sidebar →](../organise/README.md)