Window management 21
On macOS the Linux-column bindings keep working; the Cmd bindings in the Mac column are added on top of them.
Every Ctrl + Shift default is written with the alias kitty_mod; changing kitty_mod in kitty.conf moves all of them at once.
| Action | Linux | Mac |
|---|---|---|
| New windowOpen a new kitty window (split) in the current tab. | Ctrl+Shift+Enter | Cmd+Return |
| New OS windowOpens a separate top-level window rather than a split inside the current tab. | Ctrl+Shift+N | Cmd+N |
| Close windowCloses the focused kitty window, not the whole tab or OS window. | Ctrl+Shift+W | Cmd+Shift+D |
| Start resizing windowEnters a resizing mode with on-screen instructions; what changes is a layout row or column. | Ctrl+Shift+R | Cmd+R |
| Next windowFocus the next window in the tab. | Ctrl+Shift+] | Ctrl+Shift+] |
| Previous windowFocus the previous window in the tab. | Ctrl+Shift+[ | Ctrl+Shift+[ |
| Move window forward | Ctrl+Shift+F | Ctrl+Shift+F |
| Move window backward | Ctrl+Shift+B | Ctrl+Shift+B |
| Move window to top | Ctrl+Shift+` | Ctrl+Shift+` |
| Visually focus windowShows a number or letter over each window; press it to jump to that one. | Ctrl+Shift+F7 | Ctrl+Shift+F7 |
| Visually swap windowUses the same overlay labels, but exchanges the active window with the one you pick. | Ctrl+Shift+F8 | Ctrl+Shift+F8 |
| First windowNumbered windows are counted clockwise, starting from the top-left one. | Ctrl+Shift+1 | Cmd+1 |
| Second window | Ctrl+Shift+2 | Cmd+2 |
| Third window | Ctrl+Shift+3 | Cmd+3 |
| Fourth window | Ctrl+Shift+4 | Cmd+4 |
| Fifth window | Ctrl+Shift+5 | Cmd+5 |
| Sixth window | Ctrl+Shift+6 | Cmd+6 |
| Seventh window | Ctrl+Shift+7 | Cmd+7 |
| Eighth window | Ctrl+Shift+8 | Cmd+8 |
| Ninth window | Ctrl+Shift+9 | Cmd+9 |
| Tenth windowThe only numbered window key without a Cmd variant on macOS. | Ctrl+Shift+0 | Ctrl+Shift+0 |
Tabs and layouts 8
| Action | Linux | Mac |
|---|---|---|
| New tabOpens another tab in the current OS window. | Ctrl+Shift+T | Cmd+T |
| Close tabCloses the current tab along with every kitty window inside it. | Ctrl+Shift+Q | Cmd+W |
| Next tabSwitch to the tab on the right. | Ctrl+Shift+RightorCtrl+Tab | Cmd+Shift+]orCtrl+Tab |
| Previous tabSwitch to the tab on the left. | Ctrl+Shift+LeftorCtrl+Shift+Tab | Cmd+Shift+[orCtrl+Shift+Tab |
| Move tab forward | Ctrl+Shift+. | Ctrl+Shift+. |
| Move tab backward | Ctrl+Shift+, | Ctrl+Shift+, |
| Set tab title | Ctrl+Shift+Alt+T | Cmd+Shift+I |
| Next layoutCycle through the enabled window layouts. | Ctrl+Shift+L | Ctrl+Shift+L |
Clipboard 4
| Action | Linux | Mac |
|---|---|---|
| Copy to clipboardOn macOS the Cmd form copies only when text is selected and otherwise passes the key to the running program. | Ctrl+Shift+C | Cmd+C |
| Paste from clipboard | Ctrl+Shift+V | Cmd+V |
| Paste from selectionPastes the primary selection, which is filled automatically whenever text is selected, where the platform has one. | Ctrl+Shift+SorShift+Insert | Ctrl+Shift+SorShift+Insert |
| Pass selection to programHands the selected text to the system open program as a command-line argument. | Ctrl+Shift+O | Ctrl+Shift+O |
Scrollback 11
| Action | Linux | Mac |
|---|---|---|
| Scroll line upMoves the view a single line back into the history. | Ctrl+Shift+UporCtrl+Shift+K | Cmd+UporCmd+Option+Page Up |
| Scroll line downMoves the view a single line towards the newest output. | Ctrl+Shift+DownorCtrl+Shift+J | Cmd+DownorCmd+Option+Page Down |
| Scroll page upMoves the view back through the history one screenful at a time. | Ctrl+Shift+Page Up | Cmd+Page Up |
| Scroll page downAdvances a full screen of history at a time towards the latest output. | Ctrl+Shift+Page Down | Cmd+Page Down |
| Scroll to topJump to the beginning of the scrollback. | Ctrl+Shift+Home | Cmd+Home |
| Scroll to bottomJumps back to the newest output at the end of the history. | Ctrl+Shift+End | Cmd+End |
| Previous shell promptJumps the view to the prompt before the one shown; needs shell integration. | Ctrl+Shift+Z | Ctrl+Shift+Z |
| Next shell promptMoves the view forward by one prompt; works only with shell integration. | Ctrl+Shift+X | Ctrl+Shift+X |
| Open scrollback in pagerBrowse the entire scrollback in less. | Ctrl+Shift+H | Ctrl+Shift+H |
| Last command outputOpen the previous command's output in the pager (needs shell integration). | Ctrl+Shift+G | Ctrl+Shift+G |
| Search scrollbackOpens the history in the pager and starts a search there for the currently selected text. | Ctrl+Shift+/ | Cmd+F |
Font size and display 9
The background opacity shortcuts do nothing until dynamic_background_opacity is set to yes; it is off by default.
| Action | Linux | Mac |
|---|---|---|
| Increase font sizeAdds 2.0 to the font size in every OS window; the numeric keypad plus works too. | Ctrl+Shift+= | Cmd++orCmd+= |
| Decrease font sizeTakes 2.0 off the font size in every OS window; the numeric keypad minus works too. | Ctrl+Shift+- | Cmd+- |
| Reset font size | Ctrl+Shift+Backspace | Cmd+0 |
| Toggle fullscreen | Ctrl+Shift+F11 | Ctrl+Cmd+F |
| Toggle maximized | Ctrl+Shift+F10 | Ctrl+Shift+F10 |
| Increase background opacityRaises opacity by 0.1; works only when dynamic_background_opacity is set to yes in kitty.conf. | Ctrl+Shift+AthenM | Ctrl+Shift+AthenM |
| Decrease background opacityLowers opacity by 0.1, making the window more transparent; needs the same dynamic opacity option. | Ctrl+Shift+AthenL | Ctrl+Shift+AthenL |
| Make background fully opaqueSets opacity straight to 1, removing all transparency. | Ctrl+Shift+Athen1 | Ctrl+Shift+Athen1 |
| Reset background opacityReturns to the default opacity value from the configuration. | Ctrl+Shift+AthenD | Ctrl+Shift+AthenD |
Selecting visible text 10
| Action | Linux | Mac |
|---|---|---|
| Open URL with hintsShow hints to open a URL from the screen with the keyboard. | Ctrl+Shift+E | Ctrl+Shift+E |
| Insert selected pathPick a path or filename shown on screen and have it typed at the cursor. | Ctrl+Shift+PthenF | Ctrl+Shift+PthenF |
| Open selected pathOpens the picked path with the default open program instead of inserting it. | Ctrl+Shift+PthenShift+F | Ctrl+Shift+PthenShift+F |
| Insert chosen fileRuns the choose-files kitten and types the picked file into the terminal. | Ctrl+Shift+PthenC | Ctrl+Shift+PthenC |
| Insert chosen directorySame file chooser in directory mode: the picked folder is typed at the cursor. | Ctrl+Shift+PthenD | Ctrl+Shift+PthenD |
| Insert selected linePicks a whole line of visible text, handy after one-per-line listings such as ls -1. | Ctrl+Shift+PthenL | Ctrl+Shift+PthenL |
| Insert selected wordLabels the words on screen and types the ones you choose. | Ctrl+Shift+PthenW | Ctrl+Shift+PthenW |
| Insert selected hashPicks text that looks like a hash, such as a git commit ID. | Ctrl+Shift+PthenH | Ctrl+Shift+PthenH |
| Open file at linePicks a filename:linenum match and opens it in your default editor at that line. | Ctrl+Shift+PthenN | Ctrl+Shift+PthenN |
| Open selected hyperlinkWorks on links a program marked explicitly, for example with ls --hyperlink=auto. | Ctrl+Shift+PthenY | Ctrl+Shift+PthenY |
Configuration and tools 8
| Action | Linux | Mac |
|---|---|---|
| Show documentationOpens the overview page of the kitty documentation. | Ctrl+Shift+F1 | Ctrl+Shift+F1 |
| Command paletteLists every mappable action so you can search for one and run it. | Ctrl+Shift+F3 | Ctrl+Shift+F3 |
| Edit kitty.confOpen the config file in your editor. | Ctrl+Shift+F2 | Cmd+, |
| Reload kitty.confApplies changes made since the last load; a handful of options still need a full restart. | Ctrl+Shift+F5 | Ctrl+Cmd+, |
| Debug kitty.confPrints the settings kitty actually loaded plus information about the host system. | Ctrl+Shift+F6 | Cmd+Option+, |
| Open kitty shellOpens a window where you control kitty by typing commands. | Ctrl+Shift+Esc | Ctrl+Shift+Esc |
| Unicode inputInsert any character by name or code point. | Ctrl+Shift+U | Ctrl+Cmd+Space |
| Reset the terminalActs on the current kitty window only, not on every open one. | Ctrl+Shift+Delete | Cmd+Option+R |
Mouse actions 9
When a terminal program has grabbed the mouse, hold Shift to make kitty do the selecting.
| Action | Linux | Mac |
|---|---|---|
| Open URL under pointerAt a shell prompt, a click moves the cursor there instead when shell integration is active. | Click | Click |
| Open link immediatelySkips the short wait a plain click needs to rule out a double click; also works in mouse-grabbing programs. | Ctrl+Shift+Click | Ctrl+Shift+Click |
| Select wordKeep dragging after the second click to extend the selection word by word. | Double-click | Double-click |
| Select lineDragging afterwards extends the selection one line at a time. | Triple-click | Triple-click |
| Select to end of lineStarts at the clicked character rather than at the beginning of the line. | Ctrl+Alt+Triple-click | Ctrl+Option+Triple-click |
| Extend selectionMoves the nearest edge of an existing selection to the clicked position. | Right-click | Right-click |
| Select rectangular blockSelects a column-shaped block instead of whole lines. | Ctrl+Alt+Drag | Ctrl+Option+Drag |
| Paste primary selectionAvailable only on platforms that provide a primary selection. | Middle-click | Middle-click |
| Show clicked command outputOpens that output in the pager; requires shell integration. | Ctrl+Shift+Right-click | Ctrl+Shift+Right-click |
Mac only 13
| Action | Linux | Mac |
|---|---|---|
| Close OS windowCloses the whole OS window with all its tabs. | — | Cmd+Shift+W |
| Clear to startClears the screen above the cursor line or the current prompt; needs shell integration. | — | Cmd+K |
| Clear scrollbackErases the stored history of the current window. | — | Cmd+Option+K |
| Clear the last commandRemoves the most recent command together with its output; needs shell integration. | — | Cmd+L |
| Clear screenLike Cmd + K, but the cleared lines are pushed into the scrollback instead of being lost. | — | Ctrl+Cmd+L |
| Toggle secure keyboard entry | — | Cmd+Option+S |
| Cycle through OS windows | — | Cmd+` |
| Cycle OS windows backwards | — | Cmd+Shift+` |
| Open kitty website | — | Cmd+Shift+/ |
| Hide kitty | — | Cmd+H |
| Hide other applications | — | Cmd+Option+H |
| Minimize window | — | Cmd+M |
| Quit kitty | — | Cmd+Q |
No row on this page matches that filter.
Notes
In kitty, a “window” is a split
Kitty's naming trips everyone once: an OS window contains tabs, and each tab contains kitty windows — which are what other terminals call panes or splits. So Ctrl + Shift + Enter opens a new split in the current tab, Ctrl + Shift + ] and Ctrl + Shift + [ cycle between splits, and Ctrl + Shift + L cycles the layout — the arrangement pattern (stacked, tall, grid, and friends) that governs how those splits tile. Tabs ride on Ctrl + Shift + T / Ctrl + Shift + Q with Ctrl + Shift + Left and Ctrl + Shift + Right to move between them and Ctrl + Shift + Alt + T to retitle.
Scrollback is where kitty shows off. Ctrl + Shift + H opens the entire history in a pager, so you search and navigate megabytes of output with familiar less keys. Better still, Ctrl + Shift + G opens just the last command's output — the exact thing you usually want — and Ctrl + Shift + E overlays hint labels on visible URLs so you can open one without touching the mouse.
Config round-trips in seconds
Ctrl + Shift + F2 opens kitty.conf in your editor and Ctrl + Shift + F5 reloads it live — the edit-reload loop for trying fonts, colors, and keybindings without restarting. Font size adjusts on Ctrl + Shift + = / Ctrl + Shift + - with Ctrl + Shift + Backspace resetting, Ctrl + Shift + F11 toggles fullscreen, and Ctrl + Shift + U opens Unicode input for the character you can never remember how to type.
Questions
I pressed “new window” and got a split, not a window. Why?
Kitty terminology: a kitty window is a split inside a tab; what you were expecting is an OS window. Ctrl + Shift + Enter deliberately creates the split kind — it is the pane-management workhorse, and the layout system (Ctrl + Shift + L) decides how the splits arrange themselves.
Ctrl + Shift + G shows nothing. What is missing?
Last-command-output needs kitty's shell integration, which marks where each prompt begins and ends. It is enabled by default on recent installs for common shells; if your setup strips it (custom prompt frameworks sometimes do), re-enable shell_integration in kitty.conf and the key comes alive.
What are layouts, concretely?
Preset tiling patterns for the splits in a tab — one big pane with a stack beside it, an even grid, everything fullscreen-stacked, and so on. Ctrl + Shift + L cycles through the enabled ones; the enabled_layouts option in kitty.conf controls which patterns participate and in what order.
What is the pager scrollback for when I can already scroll?
Scrolling shows history; Ctrl + Shift + H makes it searchable and navigable — the whole buffer opens in your pager, so slash-search, jump-to-top, and copy work exactly as in less. For the common case, Ctrl + Shift + G skips straight to the previous command's output.
How do I open a URL without the mouse?
Ctrl + Shift + E enters hints mode: every visible URL gets a short letter label, and typing a label opens that link. The same hints machinery can be configured to grab paths, words, or line contents — the URL binding is just the default everyone learns first.
Sources and checks
- kitty documentation — kitty.conf, sections "Keyboard shortcuts" and "Mouse actions" (kitty 0.49.2) Every default map and mouse_map line, including the macOS-only ones
- kitty documentation — Overview (shortcut tables and mouse features) Linux binding with its macOS alternative per action; mouse features
- kitty source code — kitty/options/definition.py (release v0.49.2) Which default mappings exist only on macOS; the kitty_mod default
- kitty documentation — Arrange windows (Resizing windows) Keyboard resizing mode
Every row on this page was matched to a line in the documentation above on . A binding that could not be found there is not listed.
Found a wrong or missing key? Tell us and it gets checked against the source. How we verify describes the process and its limits.