Window Switcher
Enable Settings → Window Switcher → Enable Window Switcher to cycle through windows with thumbnail previews. The feature is off by default. Disable matching shortcuts in AltTab before enabling it.
Shortcuts and workspace scope
Section titled “Shortcuts and workspace scope”Configure Command-Tab and Option-Tab independently as Active Workspace, All Workspaces, Last Used Scope, or Disabled. New configurations assign Command-Tab to the active workspace and Option-Tab to all workspaces. Disabling Command-Tab leaves the macOS application switcher available.
- Hold the shortcut’s Command or Option key and press
Tabto cycle through windows.Shift + Tabreverses direction. Left and right move between cards; up and down move between rows. - Release the modifier or press
Returnto focus the selected window. Click a thumbnail to select it directly. - Press
Escapeor click outside to cancel. - Press
Sor click the scope button to switch between all workspaces and the active workspace. - Press
Wor use the close button that appears when hovering over a preview to close that window. The card stays until the app actually closes the window, including when it asks about unsaved changes.
Active Workspace uses the workspace on OmniWM’s interaction monitor when the switcher opens. All Workspaces includes tracked windows across monitors, including floating windows and hidden applications. Minimized windows remain selectable with dimmed previews; selecting one restores it. Natively withdrawn and untracked windows are omitted.
Each shortcut opens its assigned scope. Last Used Scope remembers the choice made with S or the scope button. For a single shortcut with a remembered scope, set Command-Tab to Last Used Scope and Option-Tab to Disabled.
The first forward Tab selects the most recently focused window available in that scope, excluding the current window. Further presses follow the displayed layout order. Repeatedly pressing and releasing the shortcut switches back and forth between the two most recently used windows. Shift-Tab starts in reverse layout order.
A scope with one or two windows uses the same preview panel and controls as a larger scope. Opening the switcher does not activate a window: release the shortcut’s modifier, press Return, or click a card to select it. Escape cancels, and S still changes the workspace scope.
Appearance and previews
Section titled “Appearance and previews”Windows follow their layout order within each workspace: Niri column and tile order, or Dwindle tree order, with floating windows afterward. All Workspaces groups them in workspace-bar order and shows a workspace badge using the same name or emoji as the bar. Active Workspace uses the same layout ordering for its windows.
Show Switcher Footer controls the scope button and window count together. Turning it off removes the footer; S still changes scope.
Previews fill each card and stay sharp. A short, subtle fade behind the bottom caption and a text shadow improve readability. Absolute paths are shortened to their final component; hovering over the card shows the full original title.
Cards wrap into additional rows at maximum width. When the grid exceeds the available screen height, scroll vertically with a mouse or trackpad. Keyboard navigation brings the selected card into view. Only visible, non-minimized cards request previews. Capture streams stop when the switcher closes, while a bounded thumbnail cache remains available for the next opening. Cached previews appear immediately and stay the same for the rest of that opening; the cache refreshes for the next opening. Minimized windows keep their last captured preview, or show a Minimized label if none is available.
Configuration
Section titled “Configuration”[windowSwitcher]enabled = truecommandTab = "activeWorkspace"optionTab = "allWorkspaces"showFooter = truescope = "allWorkspaces"commandTab and optionTab accept "activeWorkspace", "allWorkspaces", "remembered", or "disabled". scope stores the last chosen workspace scope. Changing shortcut assignments cancels an open switcher.
Enabled shortcuts use OmniWM’s existing input event tap and require Input Monitoring permission. Close Overview or the command palette before opening the switcher.