Recent Windows
Settings → Recent Windows: enable the Alt+Tab-style switcher, shape its grid, style its highlight, and bind its keys.
Everything below the Enable toggle dims when the switcher is off. This pane is free for everyone.
How the switcher works
The switcher tracks window focus in MRU (most recently used) order: every window that gains focus moves to the front of the list, and closed windows are pruned from it.
The switcher stays open only while you hold the bound modifier (Option by default). When you release it, the current selection is confirmed and the overlay closes. After you press S to open search, the overlay stays open even after you release the modifier. Type freely, confirm with Return.
While the switcher is open
| Key | Action |
|---|---|
| Tab / → | Next window |
| LShift+Tab / ← | Previous window |
| ` (grave) | Next window of the same app |
| LShift+` | Previous window of the same app |
| ↑ / ↓ | Navigate the grid rows |
| Home / A | Select first, or scope: All |
| End / W | Select last, or scope: Workspace |
| S | Open search |
| O | Scope: Output (the current display) |
| Esc | Cancel (return to the original window) |
| Return | Select the focused window (confirm) |
| Release modifiers | Confirm the selection |
Scopes
| Scope | Windows shown |
|---|---|
all | All windows across all displays and all workspaces |
output | Only windows on the current display |
workspace | Only windows on the current workspace |
When only one display is connected, the Output scope is hidden automatically: it is removed from the scope bar and from the keyboard shortcuts.
Search
Press S while the switcher is open to activate the search bar. Type to filter the visible thumbnails by app name, window title, or bundle ID; results filter as you type (case-insensitive). Navigate with the arrow keys, confirm with Return, or exit search with Esc (the overlay stays open). The overlay also ignores modifier release while you type.
Controls
| Control | Default | What it does | Config key |
|---|---|---|---|
| Enable recent windows switcher | on | Master switch. Disabling frees the Option+Tab keybinds for other apps (focus tracking keeps running). | recentWindows.enabled |
| Columns | 8 | Grid width of the switcher. Slider 0–15; 0 = Auto, sized to the display width. | recentWindows.columns |
| Active color | #9CFDBA | Outline color of the selected thumbnail. | recentWindows.highlight.colorActive |
| Outline width | 1 px | Thickness of that outline. Slider 1–10. | recentWindows.highlight.outlineWidth |
| Next window | loption+tab | Step forward through the MRU list. | binds.recentWindowNext |
| Previous window | loption+lshift+tab | Step backward through the MRU list. | binds.recentWindowPrevious |
| Next (same app) | loption+grave | Step forward within the focused app's windows. | binds.recentWindowSameAppNext |
| Previous (same app) | loption+lshift+grave | Step backward within the focused app's windows. | binds.recentWindowSameAppPrevious |
These four keybinds are the deliberate exception to the Hyper-key grammar: they mirror macOS ⌘+Tab muscle memory on Option+Tab. LShift+Tab alone is never bound by FazerWM so reverse focus traversal always reaches your apps.
YAML equivalent
recentWindows:
enabled: true
columns: 8 # 0 = auto-size to the display width
highlight:
colorActive: '#9CFDBA'
outlineWidth: 1
binds:
recentWindowNext: loption+tab
recentWindowPrevious: loption+lshift+tab
recentWindowSameAppNext: loption+grave
recentWindowSameAppPrevious: loption+lshift+grave