Alacritty 88
Alacritty is a terminal emulator, and its table gives the default bindings in a Windows and Linux column beside a Mac column. It covers copy and paste, scrolling and regex search of the scrollback, font size, vi mode for moving, selecting and searching from the keyboard, mouse and URL hints, and the tab and window keys that exist only on macOS.
Clipboard and scrollback 7
Keyboards with dedicated Copy and Paste keys trigger the same two actions on every system.
| Action | Windows / Linux | Mac |
|---|---|---|
| Copy to clipboardIn vi mode the selection is also cleared once it has been copied. | Ctrl+Shift+C | Cmd+C |
| Paste from clipboardInside vi mode it pastes only while a search pattern is being typed. | Ctrl+Shift+V | Cmd+V |
| Paste selection bufferTakes the selection buffer instead of the clipboard; the manual lists that action as Linux/BSD-only. | Shift+Insert | — |
| Scroll page upMoves the view one full screen back into the history; inactive on the alternate screen. | Shift+Page Up | Shift+Page Up |
| Scroll page downMoves one screen towards the newest output, except while the alternate screen is shown. | Shift+Page Down | Shift+Page Down |
| Scroll to topJumps to the oldest line kept in the scrollback; no effect on the alternate screen. | Shift+Home | Shift+Home |
| Scroll to bottomReturns the view to the most recent output unless a program holds the alternate screen. | Shift+End | Shift+End |
Search 10
| Action | Windows / Linux | Mac |
|---|---|---|
| Search forwardOpens a regex search of the scrollback; ignored while a search is already open. | Ctrl+Shift+F | Cmd+F |
| Search backwardRuns the scrollback search in the opposite direction, towards older output. | Ctrl+Shift+B | Cmd+B |
| Next matchOutside vi mode it steps to the following match while the search stays open. | Enter | Return |
| Previous matchOutside vi mode it steps back to the preceding match without ending the search. | Shift+Enter | Shift+Return |
| Confirm searchOnly for searches opened from vi mode; in a normal search the same key jumps to the next match. | Enter | Return |
| Cancel searchThe match that was active stays selected, ready to be copied. | EscorCtrl+C | EscorCtrl+C |
| Clear search patternEmpties the search field so a different pattern can be typed. | Ctrl+U | Ctrl+U |
| Delete last search wordRemoves only the final word of the pattern typed so far. | Ctrl+W | Ctrl+W |
| Previous search patternSteps back through the patterns of earlier searches. | Ctrl+PorUp | Ctrl+PorUp |
| Next search patternMoves forward again through the search history after going back. | Ctrl+NorDown | Ctrl+NorDown |
Window and font size 5
| Action | Windows / Linux | Mac |
|---|---|---|
| Increase font sizeThe plus key on the numeric keypad enlarges the text as well. | Ctrl+=orCtrl++ | Cmd+=orCmd++ |
| Decrease font sizeThe numeric keypad minus key shrinks the text too. | Ctrl+- | Cmd+- |
| Reset font sizeGoes back to the size set in the configuration file. | Ctrl+0 | Cmd+0 |
| Toggle fullscreenBound on Windows only; Linux and BSD have no default key for fullscreen. | Alt+Enter | Ctrl+Cmd+F |
| Clear log noticesRemoves Alacritty's warning and error messages; the key still reaches the running program. | Ctrl+L | Ctrl+L |
Vi mode 13
| Action | Windows / Linux | Mac |
|---|---|---|
| Toggle vi modePressed inside vi mode it also scrolls back to the bottom; inactive during a search. | Ctrl+Shift+Space | Ctrl+Shift+Space |
| Leave vi modeWith I the view also returns to the bottom of the scrollback. | IorCtrl+C | IorCtrl+C |
| Clear selectionDrops the current selection but keeps vi mode active. | Esc | Esc |
| Scroll line up | Ctrl+Y | Ctrl+Y |
| Scroll line down | Ctrl+E | Ctrl+E |
| Scroll page up | Ctrl+B | Ctrl+B |
| Scroll page down | Ctrl+F | Ctrl+F |
| Scroll half page up | Ctrl+U | Ctrl+U |
| Scroll half page down | Ctrl+D | Ctrl+D |
| Scroll to topA single press of the G key without Shift is enough; there is no gg sequence. | G | G |
| Scroll to bottomBrings the view back down to the newest output. | Shift+G | Shift+G |
| Center on cursorScrolls so the line holding the vi cursor sits in the middle of the window. | Z | Z |
| Open URL at cursorTriggers the underlined hint beneath the vi cursor, the keyboard twin of clicking it. | Enter | Return |
Vi mode selection and search 18
On macOS the Option key acts as Alt only when the option_as_alt setting enables it; its default is None.
| Action | Windows / Linux | Mac |
|---|---|---|
| Start selectionPressed again it ends the selection; the other selection types can be switched to while it is active. | V | V |
| Line selectionSelects complete lines instead of single characters. | Shift+V | Shift+V |
| Block selectionSelects a rectangular block instead of running text. | Ctrl+V | Ctrl+V |
| Semantic selectionSelects whole words, split at the separators listed in semantic_escape_chars. | Alt+V | Option+V |
| Copy selectionPuts the selected text on the clipboard and then clears the selection. | Y | Y |
| Copy to end of lineSelects from the vi cursor to the last column, copies that and clears the selection. | Shift+Y | Shift+Y |
| Search forwardStarts the search from vi mode, so a match can be selected afterwards. | / | / |
| Search backwardThe vi mode search that runs towards older output. | ? | ? |
| Next matchPlaces the vi cursor on the first character of the following match. | N | N |
| Previous matchMoves the vi cursor back to where the preceding match begins. | Shift+N | Shift+N |
| Find character forwardSearches only within the current line, moving towards its end. | F | F |
| Find character backwardLooks only within the current line, moving towards its start. | Shift+F | Shift+F |
| Till character forwardLike F, but the cursor halts one cell before the character it finds. | T | T |
| Till character backwardBackward version that also halts one cell short of the character. | Shift+T | Shift+T |
| Repeat inline searchJumps to the next hit of the last F or T search on the line. | ; | ; |
| Repeat inline search backwardGoes to the previous hit of the last F or T search on the line. | , | , |
| Search word under cursorUses the selected text, or else the word at the cursor, as the pattern. | * | * |
| Search word backwardLooks back through older output for the selection or the word at the cursor. | # | # |
Vi mode motion 19
In the vi mode lists, the manual binds the symbol keys $, ^, %, {, }, ?, * and # together with the Shift modifier.
| Action | Windows / Linux | Mac |
|---|---|---|
| Move cursor up | KorUp | KorUp |
| Move cursor down | JorDown | JorDown |
| Move cursor left | HorLeft | HorLeft |
| Move cursor right | LorRight | LorRight |
| Start of linePressed again at the first column, it goes on to the start of the whole wrapped line. | 0orHome | 0orHome |
| End of line | $orEnd | $orEnd |
| First occupied cellSkips leading blank cells of the row the cursor is on. | ^ | ^ |
| Top of screen | Shift+H | Shift+H |
| Middle of screen | Shift+M | Shift+M |
| Bottom of screen | Shift+L | Shift+L |
| Back one wordWord edges follow the separator characters in semantic_escape_chars. | B | B |
| Forward one word | W | W |
| End of word | E | E |
| Back one whitespace wordOnly spaces count as word breaks here, so punctuation stays part of the word. | Shift+B | Shift+B |
| Forward one whitespace word | Shift+W | Shift+W |
| End of whitespace word | Shift+E | Shift+E |
| Matching bracketJumps between the two brackets of a pair. | % | % |
| Paragraph up | { | { |
| Paragraph down | } | } |
Mouse and links 5
When a program in the terminal captures the mouse, holding Shift suppresses mouse reporting so these bindings apply.
| Action | Windows / Linux | Mac |
|---|---|---|
| Expand selectionExtends an existing selection to the spot under the mouse pointer. | Right-click | Right-click |
| Expand as block selectionHolding Ctrl while expanding switches the selection to block mode. | Ctrl+Right-click | Ctrl+Right-click |
| Paste selection bufferInserts the selection buffer rather than the clipboard; inactive in vi mode. | Middle-click | Middle-click |
| Open URLHold Shift as well when the program in the terminal captures mouse clicks. | Click | Click |
| Show URL hintsLabels each visible link; typing a label hands that link to the system opener. | Ctrl+Shift+O | Ctrl+Shift+O |
Mac only 11
| Action | Windows / Linux | Mac |
|---|---|---|
| New windowWindows and Linux have no default key for this; it has to be bound in the config. | — | Cmd+N |
| New tabOpens another terminal window as a tab of the current one. | — | Cmd+T |
| Next tab | — | Cmd+Shift+] |
| Previous tab | — | Cmd+Shift+[ |
| Go to tab by numberCounts tabs from the first one, up to the eighth. | — | Cmd+1-8 |
| Go to last tabPicks the final tab however many are open. | — | Cmd+9 |
| Clear historyEmpties the scrollback buffer; does nothing in vi mode or during a search. | — | Cmd+K |
| Hide Alacritty | — | Cmd+H |
| Hide other appsLeaves Alacritty visible and hides every other application. | — | Cmd+Option+H |
| Minimize window | — | Cmd+M |
| Quit Alacritty | — | Cmd+QorCmd+W |
Clipboard and search
Ctrl + Shift + C copies the selection and Ctrl + Shift + V pastes; on macOS these are Cmd + C and Cmd + V. Ctrl + Shift + F opens a forward search of the scrollback and Ctrl + Shift + B a backward one (Cmd + F and Cmd + B on a Mac); the pattern is a regular expression. While the search is open, Enter and Shift + Enter step between matches, and after Esc the last match stays selected, so it can be copied straight away.
Window, font and scrolling
Windows and Linux have no default key for a new window: the configuration manual shows how to bind CreateNewWindow yourself, and alacritty msg create-window opens one from a shell. macOS has Cmd + N, plus Cmd + T for a tab. Ctrl + = and Ctrl + - change the font size and Ctrl + 0 resets it to the configured value. Fullscreen is Alt + Enter on Windows and Ctrl + Cmd + F on macOS; Linux has no default. Shift + Page Up, Shift + Page Down, Shift + Home and Shift + End move through the scrollback, except while a program uses the alternate screen.
Vi mode
Ctrl + Shift + Space enters vi mode, where a cursor moves through the screen and scrollback with vi keys. V starts a selection (Shift + V for lines, Ctrl + V for a block, Alt + V for semantic words) and Y copies it and clears it. G jumps to the top of the scrollback and Shift + G to the bottom; a single g is enough. / and ? search from inside vi mode, Esc clears the selection and I leaves vi mode. All bindings can be changed in alacritty.toml under [keyboard] bindings.
Why doesn't Ctrl + Shift + N open a new Alacritty window?
It is not a default binding. On Windows and Linux, Alacritty 0.17 binds no key to CreateNewWindow; its configuration manual uses Ctrl + Shift + N only as an example of a binding to add under [keyboard] in alacritty.toml. From a shell, alacritty msg create-window opens a window in the running instance, and on macOS the default is Cmd + N.
Does Alacritty have tabs?
Only on macOS. Cmd + T opens a new window as a tab, Cmd + Shift + ] and Cmd + Shift + [ move between tabs, and Cmd + 1-8 or Cmd + 9 jump to one. The manual lists the tab actions as macOS-exclusive, so Windows and Linux have none.
How do I open a link without the mouse?
Press Ctrl + Shift + O to put a label on each visible URL, then type the label of the one you want. Alacritty hands it to xdg-open on Linux and BSD, open on macOS and cmd /c start on Windows. In vi mode, move the cursor onto the link and press Enter.
How do I remove a default binding?
Bindings live in the [keyboard] bindings list of alacritty.toml. Bind the same key to the action ReceiveChar to take the default away and let the keystroke through to the program, or to None to make the key do nothing.
Where does Alacritty look for its configuration file?
Alacritty does not create one. On Linux, BSD and macOS it reads alacritty.toml from $XDG_CONFIG_HOME/alacritty/, $HOME/.config/alacritty/ and a few other places; on Windows it reads %APPDATA%\alacritty\alacritty.toml.
Source: Alacritty 0.17.0 manual — alacritty-bindings(5), default key and mouse bindings. Checked row by row on .
Starship Prompt 56
Starship is a prompt for many shells, set up and inspected with the starship command and configured in starship.toml. Its table lists the installers for each system, the init line for Bash, Zsh, fish, PowerShell, Cmd and other shells, the transient prompt, presets, configuration commands, prompt rendering and diagnostics.
Installation 13
The guide names one prerequisite before installing: a Nerd Font installed and enabled in the terminal, for example FiraCode Nerd Font.
| Command | What it does |
|---|---|
curl -sS https://starship.rs/install.sh | sh | Install with the official scriptThe guide gives this script for both Linux and macOS; it picks the newest release built for your machine. |
curl -sS https://starship.rs/install.sh | sh -s -- --platform unknown-linux-musl | Install the musl buildFor older glibc systems such as CentOS 6 or 7, where the default binary stops with a GLIBC_2.18 error. |
brew install starship | Install with HomebrewListed for macOS, and through Linuxbrew for any Linux distribution. |
winget install --id Starship.Starship | Install with wingetWindows package manager install; MSI installers from the GitHub releases page are an alternative. |
scoop install starship | Install with ScoopWindows option that installs from the Main bucket of Scoop. |
choco install starship | Install with ChocolateyWindows option using the Chocolatey community package. |
cargo install starship --locked | Build from crates.ioBuilds the release from source; the guide lists it for every operating system, Windows included. |
conda install -c conda-forge starship | Install from conda-forgeWorks the same way on Linux, macOS and Windows for conda users. |
apt install starship | Install on Debian or UbuntuDistribution package for Debian 13 or later and Ubuntu 25.04 or later. |
pacman -S starship | Install on Arch or ManjaroComes from the Arch Linux Extra repository; Manjaro uses the same command. |
dnf copr enable atim/starship | Enable the Copr repositoryFirst step on Fedora 40+ and CentOS 7+, before the package itself is installed with dnf. |
dnf install starship | Install on FedoraRun once the atim/starship Copr repository has been enabled. |
sh -c 'rm "$(command -v 'starship')"' | Remove a script installDeletes the binary only; also take the init line out of your shell config, and uninstall packaged copies with their package manager. |
Shell setup 12
| Command | What it does |
|---|---|
eval "$(starship init bash)" | Enable in BashGoes at the very end of ~/.bashrc so that Bash builds its prompt with Starship. |
eval "$(starship init zsh)" | Enable in ZshLast line of ~/.zshrc; it evaluates the Zsh setup code that starship prints. |
starship init fish | source | Enable in FishLast line of the Fish config file, ~/.config/fish/config.fish; the output is piped straight into source. |
Invoke-Expression (&starship init powershell) | Enable in PowerShellAppend it to your PowerShell profile; typing $PROFILE shows where that file lives. |
load(io.popen('starship init cmd'):read("*a"))() | Enable in Cmd via ClinkNeeds Clink 1.2.30 or later; save the line as %LocalAppData%\clink\starship.lua. |
eval (starship init elvish) | Enable in ElvishNeeds Elvish 0.18 or later; the file is ~/.config/elvish/rc.elv, or the rc.elv under %AppData%\elvish for Windows users. |
eval $(starship init ion) | Enable in IonAdd it as the last line of ~/.config/ion/initrc. |
starship init nu | save -f ($nu.data-dir | path join "vendor/autoload/starship.nu") | Enable in NushellNushell 0.96 or later; create the vendor/autoload folder with mkdir first, then this writes starship.nu into it. |
eval `starship init tcsh` | Enable in TcshAdd it to the end of ~/.tcshrc, the Tcsh startup file. |
execx($(starship init xonsh)) | Enable in XonshPut it at the bottom of ~/.xonshrc for Xonsh sessions. |
PS1="$(starship prompt --status=$STATUS --jobs=$NUM_JOBS)" | Hook up an unsupported shellMinimal example for a shell without an init script: pass the last exit status and job count on every prompt. |
starship completions zsh | Shell completionsPrints tab completion for the starship command itself; bash, elvish, fish, nushell and powershell work too. |
Transient prompt 5
| Command | What it does |
|---|---|
Enable-TransientPrompt | Turn on transient prompt (PowerShell)Earlier prompts collapse to > by default; put the command in $PROFILE to keep it on. |
Disable-TransientPrompt | Turn off transient prompt (PowerShell)Switches transience off in the running PowerShell session without touching the profile. |
enable_transience | Turn on transient prompt (Fish)Fish redraws an earlier prompt only when its command line was non-empty and syntactically valid. |
disable_transience | Turn off transient prompt (Fish)Switches it off in the current Fish session only. |
clink set prompt.transient always | Turn on transient prompt (Cmd)A Clink setting made once; same_dir limits it to the same working directory and off disables it. |
Presets 4
Preset names in 1.26.0: bracketed-segments, catppuccin-powerline, gruvbox-rainbow, jetpack, nerd-font-symbols, no-empty-icons, no-nerd-font, no-runtime-versions, pastel-powerline, plain-text-symbols, pure-preset and tokyo-night.
| Command | What it does |
|---|---|
starship preset -l | List presetsPrints the names of the bundled presets, such as tokyo-night or pure-preset. |
starship preset NAME | Print a presetSends the preset as TOML to the terminal, so you can read it or redirect it. |
starship preset nerd-font-symbols -o ~/.config/starship.toml | Apply a presetSaves the Nerd Font Symbols preset as your config file; any other preset name works the same way. |
starship preset NAME -o OUTPUT -f | Overwrite an existing fileAdd -f when the target already exists, for example a starship.toml you are replacing. |
Configuration 10
The editor for starship config is taken from $VISUAL, then $EDITOR; with neither set it falls back to vi, or notepad.exe on Windows.
| Command | What it does |
|---|---|
mkdir -p ~/.config && touch ~/.config/starship.toml | Create the config fileStarship reads this path by default; anything you leave out keeps its built-in value. |
starship config | Edit configOpens starship.toml in the editor named by $VISUAL or $EDITOR. |
starship config NAME VALUE | Set one config valueWrites the value straight into starship.toml; a dotted NAME reaches nested tables and creates them if missing. |
starship print-config | Print computed configShows the merged configuration, with built-in defaults filled in for every option you did not set. |
starship print-config --default | Print the default configIgnores your file and lists only the values Starship uses out of the box. |
starship print-config NAME | Print selected keysLimits the output to the named keys; several can be given in one call. |
starship toggle NAME | Toggle a moduleFlips the disabled value of that module in starship.toml; the module and the key must already be in the file. |
starship toggle NAME VALUE | Toggle another boolean optionVALUE names the key to flip instead of disabled, and that key must hold true or false. |
export STARSHIP_CONFIG=~/example/non/default/path/starship.toml | Use a different config fileSet it in the shell startup file; PowerShell uses $ENV:STARSHIP_CONFIG and Cmd uses os.setenv in starship.lua. |
export STARSHIP_CACHE=~/.starship/cache | Move the log directoryLogs normally go to ~/.cache/starship, one session file per terminal instance. |
Printing the prompt 6
| Command | What it does |
|---|---|
starship module NAME | Render one modulePrints a single module on its own, handy while adjusting the format or style of that module. |
starship module --list | List module namesPrints every module name Starship knows, for use with starship module or in starship.toml. |
starship prompt | Print the full promptOutputs the standard left prompt once; shell integrations set their prompt from this output. |
starship prompt --right | Print the right promptOutput of the right_format setting, which elvish, fish, zsh, xonsh, cmd, nushell and bash support. |
starship prompt --continuation | Print the continuation promptShown in place of the normal prompt while a statement is incomplete, such as after an open quote. |
starship statusline claude-code | Claude Code statuslineSet as the statusLine command in .claude/settings.json to show model, context use and session cost. |
Diagnostics 6
A warning that a command timed out means it ran past the command_timeout limit: raise that key, or set STARSHIP_LOG to error to hide the warnings.
| Command | What it does |
|---|---|
starship explain | Explain promptDescribes each module now on screen, which helps when a prompt symbol is unfamiliar. |
starship timings | Module timingsLists how long each active module took, so the cause of a slow prompt stands out. |
env STARSHIP_LOG=trace starship timings | Trace a slow promptAdds trace logs and keeps only modules that ran for 1 ms or more or printed something. |
env STARSHIP_LOG=trace starship module rust | Debug one moduleTrace logs for a single module; swap rust for whichever module misbehaves. |
starship bug-report | Bug reportStarts a GitHub issue pre-filled with details of your setup and configuration. |
starship --version | Print version numberUnlike -V, it also prints the commit hash, build time and Rust compiler of the binary. |
Installing into a shell
Setting Starship up takes two steps: install the binary, then add one init line at the end of the shell's startup file, such as eval "$(starship init zsh)" in ~/.zshrc, eval "$(starship init bash)" in ~/.bashrc, starship init fish | source in ~/.config/fish/config.fish or Invoke-Expression (&starship init powershell) in the PowerShell profile. Cmd works only through Clink 1.2.30 or later, and Nushell needs 0.96 or later. starship completions zsh is a separate matter: it prints tab completion for the starship command itself.
Configuration
All settings live in ~/.config/starship.toml, or in the file STARSHIP_CONFIG points to. starship config opens it in your editor, and starship print-config prints the effective configuration with every default filled in, which shows a module's options and their current values. starship toggle NAME flips a module's disabled value, but only when the module table and that key are already in the file; starship config NAME VALUE writes a value and creates missing tables. Presets are whole configurations: starship preset -l lists them and starship preset nerd-font-symbols -o ~/.config/starship.toml writes one to the config path (-f replaces a file that already exists).
When the prompt is slow
starship timings lists how long each active module took, and starship explain says what each visible module shows. For more detail, env STARSHIP_LOG=trace starship timings adds trace logs and reports the modules that took 1 ms or more or produced output, and env STARSHIP_LOG=trace starship module rust does the same for one module. Starship stops external commands that run past the command_timeout limit and prints a timed-out warning; raise the limit, or set STARSHIP_LOG to error to hide those warnings. starship bug-report opens a pre-filled GitHub issue when something is still wrong.
Where does the Starship init line go?
At the end of the shell's startup file: eval "$(starship init bash)" in ~/.bashrc, eval "$(starship init zsh)" in ~/.zshrc, starship init fish | source in ~/.config/fish/config.fish and Invoke-Expression (&starship init powershell) in the file that $PROFILE names. Cmd users save load(io.popen('starship init cmd'):read("*a"))() as starship.lua in %LocalAppData%\clink.
Why does starship toggle say the module was not found?
The toggle command only flips a true/false key that is already written in starship.toml. Add the module's table with its disabled key first, or set the value directly with starship config NAME VALUE, which creates missing tables.
How do I see the default Starship settings?
starship print-config --default prints the built-in defaults. starship print-config prints what is actually in effect, your settings merged with those defaults, and starship print-config NAME narrows the output to the keys you name.
How do I uninstall Starship?
Remove the init line from your shell config, then delete the binary. For a copy installed by the script, sh -c 'rm "$(command -v 'starship')"' finds and deletes it; a copy installed by a package manager is removed with that package manager.
Do these Starship commands differ between shells?
The starship subcommands are the same in every shell and on Windows, macOS and Linux. What differs is the install method for each system, the init line for each shell, and how environment variables such as STARSHIP_CONFIG are set: export in POSIX shells, $ENV: in PowerShell and os.setenv in the starship.lua of Cmd.
Source: Starship 1.26.0 built-in help: output of "starship --help", "starship COMMAND --help" and "starship --version" from the official Linux release binary. Checked row by row on .
6 more source pages
- Starship Guide: installation and shell setup (README.md, release v1.26.0; published at starship.rs/guide)
- Starship documentation: Configuration (docs/config/README.md, release v1.26.0)
- Starship documentation: Advanced Configuration (docs/advanced-config/README.md, release v1.26.0)
- Starship documentation: FAQ (docs/faq/README.md, release v1.26.0)
- Starship documentation: Nerd Font Symbols preset (docs/presets/nerd-font.md, release v1.26.0)
- Starship source: src/configure.rs (release v1.26.0), the code behind config, print-config and toggle
Lazydocker 63
Lazydocker is a terminal interface for Docker and Docker Compose, with panels for projects, services, containers, images, volumes and networks. Its table lists the default keys for moving between panels and tabs, scrolling the main panel, acting on containers and Compose services, removing images, volumes and networks, running custom or bulk commands, and answering menus and prompts.
Global 6
| Action | Shortcut |
|---|---|
| Open keybindings menuLists the keys of the focused panel first, then the global ones; choosing an entry runs it. | xor? |
| Run a one-off commandPrompts for any shell command and runs it in the terminal, outside the panels. | X |
| QuitCan ask for confirmation first when the config turns that on; inside an open menu q only closes the menu. | q |
| QuitBound to the same quit handler as q. | Ctrl+C |
| Next screen modeCycles normal, half and fullscreen; gui.screenMode in config.yml sets the mode lazydocker starts in. | + |
| Previous screen modeSteps back through the same three layouts, so the focused panel shrinks again. | _ |
Main panel 11
| Action | Shortcut |
|---|---|
| Return to side panelLeaves the main panel and gives focus back to the list it was opened from. | Esc |
| Scroll main panel upWorks from any side panel, moving gui.scrollHeight lines (2 by default) and pausing auto-scroll. | Page Up |
| Scroll main panel downStops at the last screen of output unless the config allows scrolling past the bottom. | Page Down |
| Scroll main panel upWorks while a side panel has focus; lowercase k there moves the list selection instead. | K |
| Scroll main panel downUppercase only: lowercase j in a side panel steps through the list rather than the output. | J |
| Scroll main panel upSame handler as Page Up and K, available from any panel. | Ctrl+U |
| Scroll main panel downSame handler as Page Down and J, available from any panel. | Ctrl+D |
| Jump to top of outputAlso switches auto-scroll off, so new log lines no longer pull the view down. | Home |
| Follow new outputTurns auto-scroll back on after scrolling paused it, so the view tracks the newest log lines. | End |
| Scroll main panel leftWorks from any panel; with the main panel focused, Left and h do the same. | H |
| Scroll main panel rightUseful for long log lines while gui.wrapMainPanel is off; Right and l do it inside the main panel. | L |
Containers 10
Log views start one hour back by default; logs.since in config.yml changes that window, and an empty value shows everything.
| Action | Shortcut |
|---|---|
| StopAsks for confirmation first; on a Compose service it stops all of that service's containers. | s |
| RestartRuns at once, without a prompt; on a service, R offers recreate and rebuild as well. | r |
| PausePressing it again on a paused container unpauses it. | p |
| Remove containerOpens a menu for docker rm with or without --volumes; a running container needs a forced removal, which lazydocker offers. | d |
| Toggle stopped containersHides exited containers from the list, or shows them again. | e |
| AttachNeeds a running container started with a TTY (-it, or stdin_open and tty in docker-compose.yml). | a |
| Detach from containerDocker's default detach sequence; lazydocker prints it as a reminder each time it attaches. | Ctrl+PthenCtrl+Q |
| View logsSuspends the panels and follows the log in the plain terminal, unlike the Logs tab inside lazydocker. | m |
| Exec shellRuns docker exec -it in the container and starts the user's login shell through /bin/sh. | E |
| Open in browserOpens http on the first published port; an address of 0.0.0.0 becomes localhost, and nothing happens without a port. | w |
Compose services 6
The Services panel also takes s, r, p, a, m, E, w, c and b, with the same meaning as in Containers.
| Action | Shortcut |
|---|---|
| Up serviceRuns the upService template, docker compose up -d for just this service. | u |
| Start serviceFor a service that belongs to another Compose project, only its existing container can be started. | S |
| Remove service containersMenu with docker compose rm --stop --force for the service, with or without -v for its volumes. | d |
| Restart optionsMenu with restart, recreate (up -d --force-recreate) and rebuild (up -d --build) for the service. | R |
| Up projectAsks for confirmation, then runs docker compose up -d for the whole project. | U |
| Down projectMenu offering docker compose down with or without --volumes. | D |
Project panel 3
| Action | Shortcut |
|---|---|
| Open config fileHands config.yml to the oS.openCommand program; edits take effect after lazydocker is restarted. | o |
| Edit config fileOpens config.yml with your editor command; the README points vim users to this key rather than o. | e |
| View project logsLeaves the panels to print the combined logs of every service in the Compose project. | m |
Images, volumes and networks 3
| Action | Shortcut |
|---|---|
| Remove imageMenu with docker image rm, optionally with --no-prune to keep untagged parents and --force. | d |
| Remove volume | d |
| Remove network | d |
Custom and bulk commands 2
| Action | Shortcut |
|---|---|
| Run custom commandLists the customCommands from config.yml for this panel, filled in with the selected item. | c |
| View bulk commandsContainers offer stop all, remove all and prune exited; Images offer prune unused; config.yml can add more. | b |
Moving around
[ and ] switch the tabs of the main panel (for a container: Logs, Stats, Env, Config and Top), Enter moves focus into the main panel so its content can be scrolled and Esc steps back. Page Up and Page Down scroll the main panel from any side panel — long logs live there — and End makes it follow new output again. q quits. Tab cycles between the side panels, the number keys 1 to 6 jump straight to one, and the mouse works too.
Acting on containers and services
With a container or Compose service highlighted, s stops it after a confirmation, r restarts it and p pauses it; d opens a removal menu, with or without volumes. a attaches to its process (Docker's Ctrl + P, Ctrl + Q detaches again), m follows its logs in the plain terminal, and E opens a shell inside the container, which is the fastest docker exec -it there is. In the Services panel U and D bring the whole Compose project up or down and R offers restart, recreate and rebuild. b opens bulk commands such as stopping or pruning every container, and c runs a custom command from your config against the item.
Configuration
Custom commands and extra bulk commands live in lazydocker's config.yml, which is how a team adds "tail the app log with jq" as an entry in the c menu. In the Project panel o opens that file and e edits it in your terminal editor; changes apply the next time lazydocker starts. The file sits in ~/.config/lazydocker on Linux, ~/Library/Application Support/jesseduffield/lazydocker on macOS and AppData\Roaming\lazydocker under the user profile on Windows.
Which key lists every binding of the panel I am in?
Press x or ?. The menu shows the keys of the focused panel first and the global keys below them, and choosing an entry runs it.
How do I open a shell inside a container?
Highlight it in the Containers or Services panel and press E. Lazydocker runs docker exec -it and starts the user's login shell through /bin/sh.
How do I get out of a container after attaching with a?
Press Ctrl + P, Ctrl + Q, Docker's default detach sequence; lazydocker prints that reminder every time it attaches.
Why are older log lines missing?
Lazydocker shows the last hour of logs by default. Set logs.since to an empty string in config.yml to see everything, or set logs.tail to a number of lines instead.
Source: Lazydocker keybindings (docs/keybindings/Keybindings_en.md, release v0.25.2). Checked row by row on .
5 more source pages
- Lazydocker source: default key bindings (pkg/gui/keybindings.go, release v0.25.2)
- Lazydocker source: options bar and global handlers (pkg/gui/gui.go, release v0.25.2)
- Lazydocker source: confirmation prompts (pkg/gui/confirmation_panel.go, release v0.25.2)
- Lazydocker English UI texts (pkg/i18n/english.go, release v0.25.2)
- Lazydocker README (release v0.25.2)
No row on this page matches that filter.
Questions
Which keys in Alacritty and Lazydocker follow vi conventions?
In Alacritty they work only in vi mode, which Ctrl + Shift + Space switches on and off: K / Up and J / Down move the cursor, V starts a selection and Y copies it. Lazydocker uses them without a separate mode: Up / k and Down / j move through the focused list, Left / h and Right / l / Tab switch side panels, and uppercase K and J scroll the main panel while a side panel has focus.
How do I scroll back through output in Alacritty and in Lazydocker?
In Alacritty, Shift + Page Up and Shift + Page Down move through the scrollback a screen at a time, and Shift + Home and Shift + End jump to the oldest and newest lines; none of them act while a program holds the alternate screen. Lazydocker scrolls its main panel, where the Logs tab is shown, with Page Up and Page Down from any side panel. Home jumps to the top and switches auto-scroll off, and End follows new output again.
Does Starship work with the fish shell?
Yes. Add starship init fish | source as the last line of ~/.config/fish/config.fish and fish builds its prompt with Starship. enable_transience and disable_transience switch Starship's transient prompt on and off in fish; fish redraws an earlier prompt only when that command line was non-empty and syntactically valid. The keys of the fish shell itself are on the separate fish page.
Sources and checks
Each tool on this page keeps its own source line under its table. The documented lists of these 3 tools are short enough to read together, so they share this page; each keeps its own section, and its old address redirects to that section.
Found a wrong or missing key? Tell us and it gets checked against the source. How we verify describes the process and its limits.