💡 How to read this page

Default is the value applied when the key is absent. It ships in the bundled default-config.yaml (copied to your config on first launch) and in the in-app fallback, so the two always agree. Tier shows whether a key works on Free or requires Pro. On the free tier, the Pro keys are forced to their gated default. Your saved value is kept for when you upgrade.

ℹ️ Value formats

Percentage: a string like "50%". Color: RGB hex, #RRGGBB or #RRGGBBAA. Bool: true or false. Regex: a string that is matched with appId or title. See Config File → Value Formats for the full list.

Top-level structure

KeyTypeTierDescription
appmapFreeApp preferences: launch-at-login and the beta update channel. They travel with your config file. The Pro license is not stored here; it lives in your Keychain.
layoutmapFreeLayout, focus, and visual settings (gaps, focus ring, overview, tabs, thumbnails, recent-windows).
bindsmapFreeKeybindings. See Keybindings for the full action table.
gesturesmapPROTrackpad gestures. See Trackpad Gestures.
windowRulesarrayPRODeclarative rules. They match windows and apply actions. See Window Rules.
namedWorkspacesarrayPROPersistent named workspaces. See Workspaces.

app

KeyTypeDefaultTierDescription
launchAtLoginboolunsetFreeStart FazerWM automatically when you log in. FazerWM registers itself as a macOS login item and reconciles the registration whenever the config changes. While the key is unset, FazerWM never touches your login items. A copy you added by hand in System Settings is left alone. Also settable from Settings → General → Startup.
betaUpdatesboolfalseFreeReceive pre-release builds from the beta channel. Stable updates are always offered regardless. Turning it on runs an update check as soon as the change is saved.

layout

KeyTypeDefaultTierDescription
gapsint6FreeLogical pixels between all windows, columns, and screen edges.
defaultWindowWidthwidth spec2xFreeWidth of new tiled windows: 50% (fraction of the display width), 2x (N windows across on a 16:9 display; wider displays get more columns), or 900pt (fixed points).
newWindowsFollowMousebooltrueFreeNew windows open on the display under the cursor.
stackedColumnDefaultenumtabbedPROHow windows stack in a column: tabbed or tiled. The free tier forces tiled.
focusBehaviourenumkeepInViewFree / PROWhere the focused column lands: keepInView (Keep in View, free) or center (Pro). hyper+c toggles the session between the two modes without changing this setting (Pro).
focusAfterCloseenumstayOnWorkspacePROFocus handoff after a window closes: stayOnWorkspace (Pro) or lastFocused. The free tier forces lastFocused.
pointerFollowsFocusenumwindowPROCursor warps on a focus change: display, window, or none. The free tier forces none. Windows with an avoidMouse rule are never warped.
coupleWorkspacesboolfalsePROWorkspaces switch in lockstep: changing the workspace changes it on every display at once (each display keeps its own layout within that workspace number). The free tier forces false.
crossDisplayWrapbooltruePROFocus and move actions continue onto the adjacent display at a workspace edge. The free tier forces false.
crossDisplayWrapDetentbooltruePROTwo-press guard for crossDisplayWrap: the first press arms, the second press crosses. The free tier forces false.
focusRingmap—PROFocus ring settings. See below. nil on the free tier.
overviewmap—FreeOverview thumbnail settings. See below.
tabIndicatormap—Free*Tab indicator visuals. See below. *Only visible with Pro tabbed columns.
thumbnailsmap—Free*Thumbnail streaming. See below. *streamFPS is forced to 1 on the free tier.
recentWindowsmap—FreeAlt-tab switcher settings. See below.

layout.focusRing PRO

A colored ring or gradient around the focused window. The whole section is Pro. It is nil (no ring) on the free tier.

KeyTypeDefaultDescription
enabledbooltrueShow the focus ring.
widthint2Ring thickness, in pixels.
cornerRadiusint15Corner radius, in pixels.
placementenuminsideinside (overlaps the content) or outside (overlaps the desktop).
colorActivecolor#7FC8FFThe solid ring color. It also serves as the gradient start color.
colorGradientmap—An optional gradient. It takes precedence over colorActive. Map: { to: color, angle: degrees }. The default angle is 180 (top to bottom). 0 = bottom to top. 90 = left to right. 270 = right to left.

layout.overview

Thumbnail sizing in the Workspace Overview (Hyper+Tab).

KeyTypeDefaultDescription
thumbScaleActivepercentage15%Thumbnail scale for the active workspace. Accepts "25%" or 0.25.
thumbScaleInactivepercentage10%Thumbnail scale for the non-focused workspaces.
minGapsint5Minimum gap between thumbnails. Legacy configs using mingaps still decode.

The legacy keys scale and inactiveScale are still accepted on load. They map to thumbScaleActive and thumbScaleInactive.

layout.tabIndicator

Visual indicators for tabbed columns. They are meaningful only when tabbed columns are in use (Pro).

KeyTypeDefaultDescription
positionenumleftIndicator side: left or right.
widthint14Indicator bar width, in pixels.
gapint1Gap between the indicator and the column content.
gapsBetweenTabsint5Vertical gap between tab indicators.
cornerRadiusint8Corner radius of each tab indicator.
colorActivecolor#7fc8ffIndicator color for the active tab.
colorInactivecolor#517B9CIndicator color for inactive tabs.
tabSizetab-size20%Per-tab indicator height: "distributed", a percentage ("5%"), or pixels ("100px").
hideWhenSingleTabbooltrueHide the indicator when a column has only one tab.
placeWithinColumnbooltrueDraw the indicator inside the column, not outside it.
tooltipTitleShowbooltrueShow the window title in the tab tooltip.
tooltipTitleMaxLengthint100Maximum characters for the tooltip title.
tooltipThumbnailShow PRObooltrueShow a live thumbnail in the tab tooltip. This is a Pro feature.
tooltipThumbnailScalepercentage10%Scale of the tooltip thumbnail.

layout.thumbnails

KeyTypeDefaultTierDescription
streamFPSint15Free / PROCapture frame rate for the live thumbnails. The free tier is forced to 1. Pro sets a user value.

layout.recentWindows

The alt-tab style window switcher. The switcher keybinds are flat under binds (recentWindow*).

KeyTypeDefaultDescription
enabledbooltrueEnable the switcher overlay and register its recentWindow* keybinds. Turning this off frees those shortcuts for other apps but does not stop focus-history tracking; it always runs, since focus-after-close resolution and workspace-switch focus restoration read it.
columnsint8Grid columns in the switcher.
highlight.colorActivecolor#9CFDBAHighlight color for the selected thumbnail.
highlight.outlineWidthint1Outline width of the highlight.

binds

Every action is a key under binds:. It is mapped to a modifiers+key string. You unbind an action when you set the value to an empty string (""). See Keybindings for the complete action table, the default shortcuts, and the modifier semantics.

KeyTypeDefaultDescription
hypermodifier-stringrshift+roptThe Hyper chord itself. You can compose any modifiers (for example, lctrl+loption+lcmd+lshift). You do not need Karabiner.
dragColumnmodifier-stringhyper+loptionHold this bind while you drag a title bar. This moves a whole column. PRO
(all other actions)stringvariesOne entry per action (for example, focusWindowLeft, columnMoveRight, recentWindowNext). The full list is in Keybindings.

gestures PRO

The whole section is Pro. It is nil (gestures disabled) on the free tier. See Trackpad Gestures for the binding format and the full action list.

KeyTypeDefaultDescription
overlaySwipebooltrueA 2-finger scroll navigates inside the Overview and the Recent Windows switcher.
bindingsmap<action, descriptor>see GesturesMaps an action name to one or more gesture descriptors ("3-left", "hyper+4-up", "pinch"). An empty string unbinds a default.

windowRules PRO

An array of rules. The rules are scored: each matching criterion adds 1 point. The rule with the highest score wins. The whole section is Pro. It is nil (no rules) on the free tier. See Window Rules for worked examples.

KeyTypeDescription
namestringAn optional label. It is shown in the rule list.
match.appIdregexMatched against the app bundle identifier.
match.titleregexMatched against the window title.
match.floatingboolFilter by the float classification: false = tiled only, true = floating only, omit = either.
floatingbool · enum · maptrue / false / avoidMouse, or a map { enabled, avoidMouse, sticky, position }.
floating.positionstring · map"center" or { x, y } where each is a percentage ("10%"), pixels ("100px"), or an integer.
widthwidth specColumn width for the matched tiled windows: 50%, 2x, or 900pt. Omit to inherit layout.defaultWindowWidth.
heightpercentageColumn height for the matched tiled windows.
workspacestring · int · mapTarget workspace: a name (chat), a number (2), "current", or a map { name|number, preferredDisplay: [...] }.
workspace.preferredDisplayarrayA display name, a keyword (primary), or an index. Multiple entries match any of them.
groupmapGroup the matched windows into a tabbed or tiled column: { name, mode: "tabbed"|"tiled" }.

namedWorkspaces PRO

An array of persistent named workspaces. The whole section is Pro. It is nil on the free tier. See Workspaces.

KeyTypeDefaultDescription
namestring(required)A unique workspace identifier. It is also used as the window-rule target.
labelstring= nameA short label for the menu bar, SketchyBar, and the overview overlay's edge markers.
displaysarrayallPin to specific displays by name, by keyword (primary), or by index.
presenceenumalwaysalways (visible even when empty) or onDemand (made by a window rule, removed when empty).
focuskeybind—Shortcut to switch to this workspace.
moveColumnkeybind—Shortcut to move the focused column here.
moveWindowkeybind—Shortcut to move the focused window here.

See also