Skip to content

Window: arrange your workspace from the keyboard ​

For separate mode pages and videos, start with the Window management overview.

Put your browser on the left and your editor on the right, collect scattered windows into tab groups, and save layouts you use every day. Start with moving one window, then build a workspace that suits your work.

Try moving a window first

Place the pointer over an ordinary window → press Alt+W → release the entry keys → move with H/J/K/L → press Q to finish.

This page uses shipped defaults. Alt+W means Alt on Windows and Option on macOS, not Command+W. Primary defaults to left Alt on Windows and Command on macOS. Capital letters make keys easier to read; only hold Shift where Shift+ is written.

Choose what you want to do ​

Your goalFrom Window, pressNext step
Move, resize, centre, or change displaysStay in WindowAdjust with direction keys; S toggles resizing
Place one window on half the screen or in a cornerA → QuickChoose a direction and proportion
Arrange several windows and fine-tune regionsE → EditorStart with automatic arrangement, then edit
Collect windows into switchable tab groupsT → TabsGroup windows from the same app automatically, or combine them yourself
Restore a saved layout or tab templateR → RestoreType its number in the list

In Quick, Editor, Tabs, or Restore, Q returns to Window; another Q returns to Idle. Primary+Q goes directly to Idle. Leaving a mode keeps applied changes; use undo to revert them.

Move and select windows ​

Entering Window activates and locks the window under the pointer. Moving the pointer elsewhere does not automatically change the target. Type a displayed window number to activate that window and move the pointer to its centre.

KeyAction in Window
H / J / K / LMove left / down / up / right; hold for continuous adjustment
SToggle movement and resizing around the centre
CCentre the window
DMove to the next display
F / Shift+FMaximize / restore; minimize / restore
NumberSelect a window by number
Tab / Shift+TabNext / previous window; prefer members of the current tab group
XRequest that the window close; the app may ask you to save
Z / Shift+ZUndo / redo window adjustments
Shift+CRestore positions, sizes, and window states from the start of this window session

By default, numbers cover non-minimized windows on all displays. Closing a window does not renumber the others; re-entering clears gaps. When both 1 and 12 exist, typing 1 briefly waits for more digits (250 ms by default).

Use screens = "current" to show only the current display. See Window configuration for more options.

Use the pointer while arranging windows

Hold Primary for Normal movement, scrolling, and clicks. Release it to resume the same window. Each window mode has its own bindings; remapping Normal does not remap them.

Adjust several windows together ​

Tap Ctrl to start multi-selection, type window numbers, then confirm with Ctrl or Enter. Movement and resizing apply to the selection; E arranges only those windows, and T groups them. Ctrl+X clears the selection. See Multi-selection and remapping.

Recipe one: browser and editor side by side ​

  1. Place the pointer over your browser, press Alt+W, release the entry keys, then press A for Quick.
  2. Press H to place the browser on the left half.
  3. Type your editor's window number, then press L to place it on the right half.
  4. Press Q to return to Window, then Q again to start working.

Quick adjusts horizontal and vertical placement separately. The first direction starts nearest half-screen; repeat it to shrink, reverse it to expand. For example, H then K places the window in the upper-left area.

Default proportions are 1/4, 1/3, 1/2, 2/3, 3/4, plus full-screen.

A misplaced window is easy to fix

Z undoes the last step, Shift+Z redoes it. Leaving with Q keeps the new positions.

Recipe two: arrange everything, then give your main window more room ​

Arrangement starts on entry

Press Alt+W, then E to arrange current candidate windows immediately. Further changes also apply at once. Z undoes changes, including the initial arrangement.

KeyAction in Editor
H / J / K / LSelect the region to the left / below / above / right
Shift+H/J/K/LSplit in the chosen direction
Ctrl+H / Ctrl+LDecrease / increase the selected region's width
Ctrl+K / Ctrl+JDecrease / increase the selected region's height
Two window numbersSelect two windows in sequence to swap their positions
Backtick (`), then a region numberSelect a region; with a source window selected, move it into an empty region
XRemove a region without closing the application window
Z / Shift+ZUndo / redo edits
Ctrl+SSave the layout

For example, select your editor's region and press Ctrl+L to widen it; neighbors adjust together. If an app's minimum size prevents shrinking, check the on-screen message and try another region or fewer splits.

Recipe three: turn scattered windows into tab groups ​

Press T from Window. A multi-selection combines only the selected windows, bringing entire existing groups when their members are selected. Without multi-selection, compatible ungrouped windows are grouped by app on each display, preserving existing groups. Z undoes the arrangement.

You can also combine windows from different applications:

  1. Choose the first displayed window number, for example 1, then press Space to end the number.
  2. Type the second window number, for example 2, then Space. They form a group immediately.
  3. Add more numbers to append members. Press T to finish this group and prepare another.
  4. Press Q to return to Window. Groups remain after leaving the mode; click a tab to switch members.

The numbers 1 and 2 are examples: use the numbers on your screen. Space makes the boundary explicit so windows 1 and 2 are not interpreted as window 12.

KeyAction in Tabs
Tab / Shift+Tab or J / KNext / previous tab
H / LReorder the active tab left / right
~, then a group numberSelect a whole group, such as ~1
DRemove the active member from its group
XDissolve the group without closing applications
Z / Shift+ZUndo / redo grouping and ordering
Ctrl+SSave a tab template

Only the active member is shown. Quick and Editor treat a group as one layout target. Minimizing the active member minimizes the group; dissolving it or quitting KeySteer normally restores members hidden by KeySteer. Groups last until dissolved or KeySteer exits; save a template to reuse them later.

On Windows, you can also drag tabs after leaving the mode: reorder them, move a window to another strip, or drag ~group number to merge a whole group. Scroll the strip when there are many tabs. macOS uses system minimize/restore operations to switch members, so system animations may appear. Native fullscreen and incompatible windows report that grouping is unsupported.

Save and restore a workspace ​

Press Ctrl+S in Editor or Tabs, type a note in the bottom field, and press Enter to save. Notes are optional and limited to 80 characters. Try names such as “Coding” or “Reading and notes”.

Press R from Window to open the shared preset list, then type a preset number. Use PageUp / PageDown to browse six entries per page.

Template typeWhat restoring does
LayoutFills saved regions with current windows; on success, enters Editor by default for further adjustment
TabsEnters Tabs so you can choose the required windows in order; applies when all are selected, and can be cancelled before then

Restore arrangements with current windows

Layouts fill regions in recent activity order. Extra windows stay put; missing windows leave empty regions. Choose tab-template members again. Templates do not launch apps or reopen documents.

To delete a preset, press X in Restore to switch to deletion, type its number, check the displayed name, and press Enter. Press X again to return to restoration. Deleting a template does not affect an existing tab group.

Layouts and tab templates share workspace.ksw: beside the executable on Windows portable builds, or in ~/Library/Application Support/KeySteer/ for the macOS app. Use the Configuration & simulator to import, practise, and export. The website only changes sample windows and browser storage. Replace the file in the application's data directory with your export, then reopen Restore; back up the original file before replacing it if needed.

Adjust audio without leaving your layout ​

These default combinations work in Window, Quick, and Editor. Hold V and press the partner key; add Shift for system controls.

ScopeVolume down / upToggle mutePrevious / next output device
Application owning the target windowV+J / V+KV+MV+H / V+L
SystemShift+V+J / Shift+V+KShift+V+MShift+V+H / Shift+V+L

Volume changes by 1% per step. Raising application volume does not automatically unmute it. Multiple windows from the same app may share an audio session.

  • Windows: application volume needs an available audio session; start playback if none is found. Whether a device change moves an existing stream immediately depends on the application.
  • macOS: system audio works on macOS 14+; independent application audio needs macOS 14.2+ and System Audio Recording permission. Local processing adds audio latency. Some output devices do not support software volume control.

Troubleshooting ​

What you seeWhat to try
A window has no numberCheck its display, minimized state, and compatibility; candidate scope is configurable independently for each mode
Leaving does not restore the previous layoutLeaving keeps changes; use Z, or Shift+C in Window/Quick/Editor to restore this session's initial state
X does something unexpectedWindow closes a window, Editor removes a region, Tabs dissolves a group, and Restore toggles deletion; check the current mode hint
New shortcuts do not work after upgradingAn explicit [mode.bindings] replaces that mode's default table; add new bindings from the latest defaults

Continue with Window configuration, the action reference, or macOS installation and permissions.

Window number card style ​

Cards show a window number, application name, and title. Preview changes under Window management → Shared appearance in Configuration & Simulator.

All window modes share the appearance in [window.card]:

SettingPurpose / default
app_font_size / title_font_sizeApp name / title size; 0 is automatic
app_font_family / title_font_familyFonts; empty inherits the mode's ui.font_family
app_bold / title_boldBold app name / title
background_color / border_colorCard background / border colors
number_color / app_color / title_colorNumber / app name / title colors
text_widthText column width, 260
padding_x / padding_yHorizontal / vertical padding, 9 / 4
line_height / min_heightLine height multiplier 1.4 / minimum height 44
number_min_widthMinimum number area width, 38

Sizes use logical pixels; long text is truncated. Number size, border width, and corner radius use each mode's ui.font_size, ui.border_width, and ui.border_radius.

Colors accept #RRGGBBAA or separate themes, such as app_color = { light = "#19357DFF", dark = "#E8EEFFFF" }. Omitted colors follow the mode and theme.

Card positioning ​

Cards default to the window center. position_mode = "window" follows each window; "screen" arranges cards together in the target display's work area.

position lists top, right, bottom, left insets, each from 0%–100%. Top + bottom and left + right must each total at most 100%.

Placementposition
Center point (default)["50%", "50%", "50%", "50%"]
Top center (Editor default)["0%", "50%", "100%", "50%"]
Top row, wrapping if needed["0%", "0%", "100%", "0%"] with position_mode = "screen"

Editor can override position in [window_editor.card] while sharing colors, fonts, and sizes from [window.card]. Changing the base position does not replace Editor's top-center default. Quick, Restore, and Tabs keep their own positioning behavior.

Positions are preferred ranges

Cards avoid other cards, region numbers, and the help panel. Crowding may move them outside the preferred range to keep numbers visible. Display changes automatically adapt to the new work area and scaling.