Settings reference
All 324 configuration keys, with types, defaults, and accepted values.
Everything on this page is generated from the schema the app itself uses to read and write your configuration, so it lists what this version of PlasmaZones actually accepts rather than what a hand-written table claimed once. Most of these are reachable from the settings app. The reference is here for the ones you want to look up, script, or set by hand.
Settings live in ~/.config/plasmazones/config.json, grouped under the dotted paths below. You can also read and write any of them at runtime over D-Bus, which is the better route for scripting. The daemon reloads a D-Bus write immediately, whereas editing the file by hand while the daemon is running risks having your change overwritten on the next save.
Reading this reference
Each table covers one configuration group. The group name is the dotted path the key sits under in config.json, so Snapping.Zones.Border plus the key Width is the border width of a snapping zone.
- Default The value in effect when you have never changed the setting.
(system default)means the key is empty on purpose and the value is inherited, so a colour follows your colour scheme and a font follows your system font. - Accepts Either the numeric range the value is clamped to, or the set of legal values for a key that takes one of a fixed list. A dash means the key is open-valued, such as a colour, a font name, or free text. Out-of-range numbers are clamped rather than rejected, and an unrecognized value falls back to the default.
Snapping
Manual zone placement: what activates the overlay, how zones look and behave, and what happens to a window on drop.
Snapping 1 setting| Setting | Type | Default | Accepts | Description |
|---|---|---|---|---|
Enabled | boolean | true | — | Whether snapping mode can be used at all. Off, it is skipped when cycling a screen's placement mode. |
Snapping.Behavior 5 settings| Setting | Type | Default | Accepts | Description |
|---|---|---|---|---|
Triggers | list | [{"modifier":3,"mouseButton":0}] | — | Modifier and mouse-button combinations that show the zone overlay while a window is being dragged. Each entry is a {modifier, mouseButton} pair. |
ToggleActivation | boolean | false | — | Tap the trigger to turn the overlay on, and tap again to turn it off, instead of holding it down. |
ReleaseGraceMs | integer | 150 | 0 – 1000 | How long the overlay stays up after the trigger is released, so a brief slip does not cancel the snap. |
FocusNewWindows | boolean | false | — | Focus a window when it is automatically placed into a zone on open. |
FocusFollowsMouse | boolean | false | — | Moving the mouse pointer over a snapped window gives it focus. |
Snapping.Effects 7 settings| Setting | Type | Default | Accepts | Description |
|---|---|---|---|---|
ShowNumbers | boolean | true | — | Display a number label inside each zone. |
FlashOnSwitch | boolean | true | — | Briefly flash the zones when switching between layouts. |
OsdOnLayoutSwitch | boolean | true | — | Show notification when switching between zone layouts. |
OsdOnDesktopSwitch | boolean | true | — | Show notification on virtual desktop change, activity change, and daemon startup. |
NavigationOsd | boolean | true | — | Show notification when moving windows with keyboard shortcuts. |
OsdStyle | integer | preview (2) | none = 0text = 1preview = 2 | Visual style of on-screen notifications. |
OverlayDisplayMode | integer | zoneRectangles (0) | zoneRectangles = 0layoutPreview = 1 | How zones appear while dragging a window. |
Snapping.Gaps 1 setting| Setting | Type | Default | Accepts | Description |
|---|---|---|---|---|
AdjacentThreshold | integer | 20 | 5 – 500 | Distance from zone edge for multi-zone selection. |
Snapping.ZoneSelector 10 settings| Setting | Type | Default | Accepts | Description |
|---|---|---|---|---|
Enabled | boolean | true | — | Show a layout picker when a window is dragged to a screen edge. |
TriggerDistance | integer | 50 | 10 – 200 | How close to the screen edge a drag has to come before the picker opens. |
Position | integer | top (1) | topLeft = 0top = 1topRight = 2left = 3center = 4right = 5bottomLeft = 6bottom = 7bottomRight = 8 | Where on the screen the picker appears. |
LayoutMode | integer | grid (0) | grid = 0horizontal = 1vertical = 2 | How layout previews are arranged in the popup. |
PreviewWidth | integer | 180 | 80 – 400 | Width of each layout preview in the picker. Only applies when the size mode is manual. |
PreviewHeight | integer | 101 | 60 – 300 | Height of each layout preview in the picker. Only applies when the size mode is manual and the aspect ratio is unlocked. |
PreviewLockAspect | boolean | true | — | Derive the preview height from its width using the screen's aspect ratio, so previews match the shape of the screen. |
GridColumns | integer | 5 | 1 – 10 | Number of layout previews per row. |
SizeMode | integer | auto (0) | auto = 0manual = 1 | Whether preview size is chosen for you or taken from the width and height below. |
MaxRows | integer | 4 | 1 – 10 | Scrolling enabled when more rows exist. |
Snapping.Behavior.Display 2 settings| Setting | Type | Default | Accepts | Description |
|---|---|---|---|---|
ShowOnAllMonitors | boolean | false | — | Display zone overlays on every monitor while dragging a window, not only the one under the cursor. |
FilterByAspectRatio | boolean | true | — | Only show layouts matching the current monitor's aspect ratio. |
Snapping.Behavior.SnapAssist 4 settings| Setting | Type | Default | Accepts | Description |
|---|---|---|---|---|
FeatureEnabled | boolean | true | — | Offer to fill the remaining empty zones after you snap a window. |
Enabled | boolean | true | — | Show the window picker after every snap, without waiting for you to hold anything. |
Triggers | list | [{"modifier":0,"mouseButton":4}] | — | Modifier and mouse-button combinations that bring up the snap-assist picker for a single snap. Each entry is a {modifier, mouseButton} pair. |
ReleaseGraceMs | integer | 150 | 0 – 1000 | How long the snap-assist picker stays up after the trigger is released. |
Snapping.Behavior.WindowHandling 11 settings| Setting | Type | Default | Accepts | Description |
|---|---|---|---|---|
KeepOnResolutionChange | boolean | true | — | Move windows back to their zones after the screen resolution changes. |
MoveNewToLastZone | boolean | false | — | Snap every newly opened window into whichever zone you most recently snapped a window into. |
RestoreOnUnsnap | boolean | true | — | Return a window to its original size when it is dragged out of a zone. |
StickyWindowHandling | integer | treatAsNormal (0) | treatAsNormal = 0restoreOnly = 1ignoreAll = 2 | How to treat windows that appear on every desktop. |
RestoreOnLogin | boolean | true | — | When an app reopens, during the session or after a logout, return it to the zone it was last snapped in. |
RestoreFloatedOnLogin | boolean | true | — | When an unsnapped window reopens after a logout, return it to the position and monitor it was on. A rule can opt individual windows in or out. |
KeepFloatingAbove | boolean | false | — | Keep the windows you float stacked above the windows snapped into zones. A rule that sets a window layer takes precedence for the windows it matches. |
UnfloatFallbackToZone | boolean | false | — | When you unfloat a window that was never snapped, snap it to a fallback zone instead of leaving it floating. The fallback is the last used zone, then the first empty one, then the first zone. |
AutoAssignAllLayouts | boolean | false | — | Fill the first empty zone when a new window opens. When on, this overrides each layout's individual auto-assign toggle and applies to every layout. |
SuppressDefaultLayoutAssignment | boolean | false | — | Snapping and tiling stay off until you assign a layout. A rule can re-enable the default per monitor. |
DefaultLayoutId | string | (system default) | — | Layout a screen uses until it is given one of its own. Empty picks the first layout that fits the screen. |
Snapping.Behavior.ZoneSpan 5 settings| Setting | Type | Default | Accepts | Description |
|---|---|---|---|---|
Enabled | boolean | true | — | Allow a window to be snapped across two or more adjacent zones. |
Modifier | integer | ctrl (2) | disabled = 0shift = 1ctrl = 2alt = 3meta = 4ctrlAlt = 5ctrlShift = 6altShift = 7alwaysActive = 8altMeta = 9ctrlAltMeta = 10metaShift = 11ctrlMeta = 12 | Modifier held while dragging to paint across zones. |
Triggers | list | [{"modifier":2,"mouseButton":0}] | — | Modifier and mouse-button combinations that span a drag across adjacent zones. Each entry is a {modifier, mouseButton} pair. |
ToggleActivation | boolean | false | — | Tap the span trigger to start spanning, and tap again to stop, instead of holding it down. |
ReleaseGraceMs | integer | 150 | 0 – 1000 | How long spanning stays active after the trigger is released. |
Snapping.Zones.Border 2 settings| Setting | Type | Default | Accepts | Description |
|---|---|---|---|---|
Width | integer | 2 | 0 – 10 | Thickness of zone borders in pixels. |
Radius | integer | 8 | 0 – 50 | Corner rounding of zones in pixels. |
Snapping.Zones.Colors 3 settings| Setting | Type | Default | Accepts | Description |
|---|---|---|---|---|
Highlight | string | (system default) | — | Colour of the zone under the cursor. Empty follows the colour scheme. |
Inactive | string | (system default) | — | Colour of the zones not under the cursor. Empty follows the colour scheme. |
Border | string | (system default) | — | Colour of the zone borders. Empty follows the colour scheme. |
Snapping.Zones.Labels 7 settings| Setting | Type | Default | Accepts | Description |
|---|---|---|---|---|
FontColor | string | (system default) | — | Colour of the zone label text. Empty follows the colour scheme. |
FontFamily | string | (system default) | — | Typeface for zone labels. Empty follows the system font. |
FontSizeScale | number | 1 | 0.25 – 3 | Size multiplier for zone label text. |
FontWeight | integer | 700 | 100 – 900 | Weight of the zone label text, on the usual 100 to 900 scale where 400 is regular and 700 is bold. |
FontItalic | boolean | false | — | Italicize the zone label text. |
FontUnderline | boolean | false | — | Underline the zone label text. |
FontStrikeout | boolean | false | — | Strike through the zone label text. |
Snapping.Zones.Opacity 2 settings| Setting | Type | Default | Accepts | Description |
|---|---|---|---|---|
Active | number | 0.5 | 0 – 1 | Opacity of the zone under the cursor. |
Inactive | number | 0.3 | 0 – 1 | Opacity of zones not under the cursor. |
Tiling
Autotile mode: the algorithm in use, where new windows are inserted, and how the layout reacts when it runs out of room.
Tiling 1 setting| Setting | Type | Default | Accepts | Description |
|---|---|---|---|---|
Enabled | boolean | true | — | Whether autotile mode can be used at all. Off, it is skipped when cycling a screen's placement mode. |
Tiling.Algorithm 6 settings| Setting | Type | Default | Accepts | Description |
|---|---|---|---|---|
Default | string | bsp | — | Algorithm a screen tiles with until it is given one of its own. |
SplitRatio | number | 0.5 | 0.1 – 0.9 | Share of the space the master area takes, as a fraction. Algorithms without a master area ignore it. |
SplitRatioStep | number | 0.05 | 0.01 – 0.25 | Amount the split ratio changes per keyboard shortcut press. |
MasterCount | integer | 1 | 1 – 5 | How many windows the master area holds. |
MaxWindows | integer | 5 | 1 – 12 | Maximum number of windows to tile. |
PerAlgorithmSettings | object | (empty) | — | Custom parameter values per algorithm, keyed by algorithm id. The tiling page writes this, so it is not meant to be edited by hand. |
Tiling.Behavior 13 settings| Setting | Type | Default | Accepts | Description |
|---|---|---|---|---|
InsertPosition | integer | end (0) | end = 0afterFocused = 1asMaster = 2 | Where a newly opened window lands in the tiling order. |
FocusNewWindows | boolean | true | — | Focus a window when it opens. |
FocusFollowsMouse | boolean | false | — | Moving the mouse pointer over a window gives it focus. |
RespectMinimumSize | boolean | true | — | Stop windows being resized below their minimum size, which may leave gaps in the layout. |
RestoreFloatedOnLogin | boolean | true | — | Return a floated window to the position and monitor it was on when it reopens after a logout. A rule can opt individual windows in or out. |
KeepFloatingAbove | boolean | false | — | Keep the windows you float stacked above the tiled windows. A rule that sets a window layer takes precedence for the windows it matches. |
StickyWindowHandling | integer | treatAsNormal (0) | treatAsNormal = 0restoreOnly = 1ignoreAll = 2 | How to treat windows that appear on every desktop. |
DragBehavior | integer | float (0) | float = 0reorder = 1 | Float converts a dragged tile to free-floating. Reorder keeps it tiled and swaps it into the drop slot. |
OverflowBehavior | integer | float (0) | float = 0unlimited = 1 | Float leaves windows beyond the max-windows cap floating. Unlimited tiles every window regardless of count. |
LockedScreens | string | (system default) | — | Screens whose tiling layout is locked, as a comma-separated list of screen ids. |
Triggers | list | [{"modifier":3,"mouseButton":0}] | — | Modifier and mouse-button combinations that re-insert a dragged window into the stack at the cursor. Each entry is a {modifier, mouseButton} pair. |
ToggleActivation | boolean | false | — | Tap the re-insert trigger to turn the stack preview on, and tap again to turn it off, instead of holding it down. |
ReleaseGraceMs | integer | 150 | 0 – 1000 | How long the stack preview stays up after the trigger is released, so a brief slip does not cancel the drop. |
Tiling.Gaps 1 setting| Setting | Type | Default | Accepts | Description |
|---|---|---|---|---|
SmartGaps | boolean | true | — | Remove all gaps when only one window is tiled. |
Scrolling
The scrolling strip: column sizing, wheel and drag behavior, focus tracking, and the tab and drop indicators.
Scrolling 17 settings| Setting | Type | Default | Accepts | Description |
|---|---|---|---|---|
Enabled | boolean | true | — | Whether scrolling mode can be used at all. Off, it is skipped when cycling a screen's placement mode. |
CenterFocusedColumn | integer | never (0) | never = 0always = 1onOverflow = 2 | When the strip re-centers on the focused column. Never leaves the strip still until the column would leave the screen, always parks it in the middle, and on overflow centers it only once the strip runs past the edge of the screen. |
StripAxis | integer | auto (0) | auto = 0horizontal = 1vertical = 2 | Which way the strip runs. Matching the screen shape runs it top to bottom when the usable area is taller than it is wide, and side to side otherwise. Columns still divide across the strip whichever way it runs. |
AlwaysCenterSingleColumn | boolean | false | — | When the strip holds a single column, center it even when the focused column is set never to center. |
CropStraddlers | boolean | false | — | Let a column at the screen edge keep its full size and be cut off there. Off, the column shrinks to fit, or slides away once too little of it is left. Cropping costs some efficiency in fullscreen video and games while any screen uses scrolling. |
DefaultColumnWidthKind | integer | proportion (0) | proportion = 0fixed = 1clientDecides = 2preset = 3 | How the width of a new column is decided: as a share of the strip, a fixed number of pixels, a preset from the screen's template, or whatever the application asks for. |
DefaultColumnWidthPresetIndex | integer | 0 | 0 – 15 | Which width a new column opens at, counted from zero into the widths of the screen's layout template. Only applies when the width kind is preset. |
DefaultColumnWidthValue | number | 0.5 | 0.05 – 10000 | The width a new column opens at. Read as a fraction of the strip when the width kind is a proportion, and as pixels when it is fixed. |
DefaultColumnDisplay | integer | normal (0) | normal = 0tabbed = 1 | How a new column shows its windows. Normal stacks them above each other, tabbed shows one at a time behind a tab strip. A screen with a layout template of its own takes this from the template instead. |
PresetColumnWidths | string | 0.333,0.5,0.667 | — | The column widths the cycle-width shortcuts step through, as a comma-separated list of fractions of the work area along the strip. |
PresetWindowHeights | string | 0.333,0.5,0.667 | — | The window heights the cycle-height shortcuts step through, as a comma-separated list of fractions of the work area across the strip. |
DefaultWindowHeightKind | integer | auto (0) | auto = 0fixed = 1preset = 2clientDecides = 3 | How the height of a new window is decided: sharing the column evenly, a fixed number of pixels, a preset from the screen's template, or whatever the application asks for. |
DefaultWindowHeightValue | number | 600 | 100 – 10000 | How much space a new window takes inside its column, in pixels. Only applies when the height kind is fixed. |
DefaultWindowHeightPresetIndex | integer | 0 | 0 – 15 | Which height a new window opens at, counted from zero into the heights of the screen's layout template. Only applies when the height kind is preset. |
DefaultTemplate | string | (system default) | — | Layout template a screen uses until it is given one of its own. Empty uses the built-in width and height steps. |
WheelFocusEnabled | boolean | true | — | Turn the wheel with a scroll key held to move along the strip. Off, both scroll keys are left to the compositor. |
WheelFocusInverted | boolean | false | — | Scrolling down moves toward the start of the strip instead of the end, for both scroll keys. |
Scrolling.Behavior 16 settings| Setting | Type | Default | Accepts | Description |
|---|---|---|---|---|
FocusNewWindows | boolean | true | — | Focus a window when it opens. |
Triggers | list | [{"modifier":3,"mouseButton":0}] | — | Modifier and mouse-button combinations that insert a dragged window into the strip under the cursor. It becomes a new column, or stacks into the column it lands on. Each entry is a {modifier, mouseButton} pair. |
ToggleActivation | boolean | false | — | Tap the re-insert trigger to turn the strip preview on, and tap again to turn it off, instead of holding it down. |
ReleaseGraceMs | integer | 150 | 0 – 1000 | How long the strip preview stays up after the trigger is released, so a brief slip does not cancel the drop. |
InsertPosition | integer | rightOfActive (0) | rightOfActive = 0leftOfActive = 1first = 2last = 3intoActiveColumn = 4 | Where a new window's column enters the strip. Restored windows and per-window rules keep their own position. |
FocusFollowsMouse | boolean | false | — | Moving the mouse pointer over a window gives it focus. |
FocusFollowsMouseMaxScroll | integer | 100 | 0 – 100 | Moving the pointer onto a column that is partly off screen scrolls the strip to bring it in. When that scroll would be longer than this share of the work area along the strip, the pointer is ignored and focus stays put. At 100 nothing is ignored. |
StickyWindowHandling | integer | treatAsNormal (0) | treatAsNormal = 0restoreOnly = 1ignoreAll = 2 | How to treat windows that appear on every desktop. |
SmartGaps | boolean | false | — | Remove the outer gaps while the strip holds a single column, so that column sits against the screen edge at its own width. |
RespectMinimumSize | boolean | true | — | Keep columns at least as wide and tall as their windows' minimum size, which can push other windows off screen. |
RestoreOnLogin | boolean | true | — | When windows reopen after a restart, rebuild their columns with the same order, widths, and tab groups. |
RestoreFloatedOnLogin | boolean | true | — | When a floated window reopens, return it to the position and size it had before rather than letting the compositor place it. A rule can opt individual windows in or out. |
KeepFloatingAbove | boolean | false | — | Keep the windows you float stacked above the columns of the strip. A rule that sets a window layer takes precedence for the windows it matches. |
ColumnWidthStepPercent | integer | 10 | 1 – 50 | How far the increase and decrease column width shortcuts resize a column per press, as a share of the strip. |
WindowHeightStepPercent | integer | 10 | 1 – 50 | How far the increase and decrease window height shortcuts resize a window per press, as a share of the work area across the strip. |
ViewScrollStepPercent | integer | 25 | 1 – 50 | How far one notch of the view scroll key moves the strip without changing focus, as a share of the work area along the strip. |
Scrolling.DropIndicator 6 settings| Setting | Type | Default | Accepts | Description |
|---|---|---|---|---|
Enabled | boolean | true | — | Show where a dragged window will land in the strip. |
Color | string | (system default) | — | Colour filling the space the window will land in. Empty follows the colour scheme. |
BorderColor | string | (system default) | — | Colour of the indicator's edge. Empty follows the colour scheme. |
Opacity | number | 0.25 | 0 – 1 | How solid the fill is. This replaces any transparency carried by the fill colour. |
Width | integer | 2 | 0 – 10 | Thickness of the indicator's edge in pixels. Zero draws the fill with no edge. |
Radius | integer | 8 | 0 – 50 | Corner rounding of the indicator in pixels. |
Scrolling.TabIndicator 18 settings| Setting | Type | Default | Accepts | Description |
|---|---|---|---|---|
Enabled | boolean | true | — | Mark a tabbed column's windows on screen. Tabbed columns keep working without it. |
Style | integer | bar (1) | chips = 0bar = 1 | Titled chips label each window. A segment bar is thinner and shows only how many there are. |
Position | integer | left (0) | left = 0right = 1top = 2bottom = 3 | Which edge of the column the indicator runs along. |
HideWhenSingleTab | boolean | false | — | Leave a tabbed column unmarked while it holds only one window. |
PlaceWithinColumn | boolean | false | — | Shrink the windows to fit the indicator. Off, it is drawn beside the column and can overlap a neighbor or run off screen. |
Gap | integer | 2 | -64 – 64 | Space between the indicator and the window. A negative gap draws it over the window instead. |
Width | integer | 4 | 1 – 64 | How thick the indicator is. When it makes room inside the column, this is exactly how much room it takes. A segment bar reads well at a few pixels. Titled chips need enough for their labels, which on a left or right edge means a lot. |
LengthProportion | number | 0.5 | 0.05 – 1 | How much of the column edge the indicator spans, centered on it. |
GapsBetweenTabs | integer | 0 | 0 – 64 | Space separating one tab from the next. |
CornerRadius | integer | 0 | -1 – 64 | How rounded each tab's corners are. On a segment bar with no gap between tabs, only the two ends of the run are rounded. |
ActiveColor | string | (system default) | — | Colour of the tab for the window currently shown. Empty follows the colour scheme. |
InactiveColor | string | (system default) | — | Colour of the tabs for the windows not currently shown. Empty follows the colour scheme. |
UrgentColor | string | (system default) | — | Colour of the tab for a window asking for attention. Empty follows the colour scheme. |
FontFamily | string | (system default) | — | Typeface for the tab labels. Their size comes from the indicator thickness. A segment bar draws no labels, so it ignores this. Empty follows the system font. |
FontWeight | integer | 700 | 100 – 900 | Weight of the tab label text, on the usual 100 to 900 scale where 400 is regular and 700 is bold. |
FontItalic | boolean | false | — | Italicize the tab label text. |
FontUnderline | boolean | false | — | Underline the tab label text. |
FontStrikeout | boolean | false | — | Strike through the tab label text. |
Scrolling.ZoneSelector 7 settings| Setting | Type | Default | Accepts | Description |
|---|---|---|---|---|
Enabled | boolean | true | — | Show a template picker when a window is dragged to a screen edge. |
TriggerDistance | integer | 50 | 10 – 200 | How close to the screen edge a drag has to come before the picker opens. |
Position | integer | top (1) | topLeft = 0top = 1topRight = 2left = 3center = 4right = 5bottomLeft = 6bottom = 7bottomRight = 8 | Where on the screen the picker appears. |
SizeMode | integer | auto (0) | auto = 0manual = 1 | Whether preview size is chosen for you or taken from the width and height below. |
PreviewWidth | integer | 180 | 80 – 400 | Width of each template preview in the picker. Only applies when the size mode is manual. |
PreviewHeight | integer | 101 | 60 – 300 | Height of each template preview in the picker. Only applies when the size mode is manual and the aspect ratio is unlocked. |
PreviewLockAspect | boolean | true | — | Derive the preview height from its width using the screen's aspect ratio, so previews match the shape of the screen. |
Scrolling.Behavior.DragScroll 4 settings| Setting | Type | Default | Accepts | Description |
|---|---|---|---|---|
Enabled | boolean | true | — | Scroll the strip when a dragged window is held near the edge of the working area. |
TriggerWidth | integer | 30 | 1 – 300 | How close to the edge of the working area the pointer has to be before the strip can start scrolling. |
DelayMs | integer | 100 | 0 – 2000 | How long the pointer has to stay near the edge before the strip moves. Stops a drag that only passes by an edge from scrolling. |
MaxSpeed | integer | 1500 | 50 – 10000 | How fast the strip scrolls with the pointer held right at the edge. It moves more slowly the further from the edge the pointer sits. |
Scrolling.Wheel.Focus 1 setting| Setting | Type | Default | Accepts | Description |
|---|---|---|---|---|
Triggers | list | [{"modifier":4,"mouseButton":0}] | — | Modifier held while turning the wheel to move focus from column to column. Each entry is a {modifier, mouseButton} pair. |
Scrolling.Wheel.View 1 setting| Setting | Type | Default | Accepts | Description |
|---|---|---|---|---|
Triggers | list | [{"modifier":11,"mouseButton":0}] | — | Modifier held while turning the wheel to move the view along the strip without changing which column has focus. Each entry is a {modifier, mouseButton} pair. |
Windows
Per-window appearance applied by any mode, covering borders, tints, and opacity on the windows themselves.
Windows 14 settings| Setting | Type | Default | Accepts | Description |
|---|---|---|---|---|
ShowBorder | boolean | false | — | Draw a colored border around windows placed by PlasmaZones. |
BorderScope | string | tiled | tilednormalall | Which windows get a border. |
Width | integer | 2 | 0 – 10 | Thickness of the coloured border around windows. |
Radius | integer | 8 | 0 – 20 | Roundness of the border corners. Zero is square. |
BorderColorActive | string | (system default) | — | Border colour for the focused window. Empty follows the colour scheme. |
BorderColorInactive | string | (system default) | — | Border colour for unfocused windows. Empty follows the colour scheme. |
HideTitleBars | boolean | false | — | Remove window title bars, restored when a window floats. |
TitleBarScope | string | tiled | tilednormalall | Which windows lose their title bar. |
FocusFadeDuration | integer | 160 | 0 – 1000 | How long decorations take to fade between focused and unfocused. Zero switches instantly. |
ShowOpacityTint | boolean | false | — | Fade and tint windows placed by PlasmaZones. |
OpacityTintScope | string | tiled | tilednormalall | Which windows are faded and tinted. |
Opacity | number | 1 | 0 – 1 | How visible matched windows stay, where 1 is fully opaque. |
TintStrength | number | 0 | 0 – 1 | How strongly the tint color blends over the window, where 0% keeps it untinted. |
TintColor | string | (system default) | — | Colour blended over matched windows. Empty follows the colour scheme. |
Gaps
Spacing between windows and around screen edges.
Gaps 7 settings| Setting | Type | Default | Accepts | Description |
|---|---|---|---|---|
Inner | integer | 8 | 0 – 50 | Space between neighbouring windows. |
Outer | integer | 8 | 0 – 50 | Space between the windows and the edges of the screen. Ignored when per-side outer gaps are on. |
UsePerSide | boolean | false | — | Set a different outer gap for each screen edge instead of one value for all four. |
Top | integer | 8 | 0 – 50 | Outer gap along the top edge of the screen. Only applies when per-side outer gaps are on. |
Bottom | integer | 8 | 0 – 50 | Outer gap along the bottom edge of the screen. Only applies when per-side outer gaps are on. |
Left | integer | 8 | 0 – 50 | Outer gap along the left edge of the screen. Only applies when per-side outer gaps are on. |
Right | integer | 8 | 0 – 50 | Outer gap along the right edge of the screen. Only applies when per-side outer gaps are on. |
Animations
Transition timing and which windows animations apply to. The motion presets themselves are a gallery, not settings.
Animations 3 settings| Setting | Type | Default | Accepts | Description |
|---|---|---|---|---|
Enabled | boolean | true | — | Whether window transitions play at all. Off, windows appear and disappear with no motion. |
Profile | object | {"curve":"0.22,0.61,0.36,1.00","duration":320,"minDistance":0,"sequenceMode":1,"staggerInterval":40} | — | The active motion profile, holding its easing curve, duration, stagger interval, and sequence mode. The animations page writes this, so it is not meant to be edited by hand. |
ShaderProfileTree | object | (empty) | — | Per-context overrides of which animation shader each transition uses. The animations page writes this, so it is not meant to be edited by hand. |
Animations.WindowFiltering 4 settings| Setting | Type | Default | Accepts | Description |
|---|---|---|---|---|
TransientWindows | boolean | false | — | Skip animations for dialogs, popups, tooltips, and dropdown menus. |
NotificationsAndOsd | boolean | true | — | Skip animations for notification popups and on-screen displays such as volume and brightness. |
MinimumWindowWidth | integer | 0 | 0 – 2000 | Windows narrower than this do not animate. Zero turns the width threshold off. |
MinimumWindowHeight | integer | 0 | 0 – 2000 | Windows shorter than this do not animate. Zero turns the height threshold off. |
Decorations
Per-window shader effects and decoration profiles, plus the filtering that decides which windows receive them.
Decorations 1 setting| Setting | Type | Default | Accepts | Description |
|---|---|---|---|---|
DecorationProfileTree | object | {"baseline":{},"overrides":[]} | — | The decoration profiles themselves, as a baseline set plus per-window overrides. The decorations page writes this, so it is not meant to be edited by hand. |
Decorations.Performance 4 settings| Setting | Type | Default | Accepts | Description |
|---|---|---|---|---|
AnimateFocusedOnly | boolean | true | — | Run decoration animations only on the focused window. Unfocused windows keep their decoration but hold still. |
PauseWhenIdle | boolean | true | — | Stop decoration animations while you are not interacting, and resume on the next input. |
IdleTimeoutSec | integer | 30 | 5 – 3600 | How long without input before decoration animations pause. Only applies when pausing while idle is on. |
BlurScaleMultiplier | number | 1 | 0.25 – 2 | Resolution the blur passes render at, relative to the window. Below 1 is cheaper and softer, above 1 is sharper and costs more. |
Decorations.WindowFiltering 3 settings| Setting | Type | Default | Accepts | Description |
|---|---|---|---|---|
TransientWindows | boolean | true | — | Skip decorations for dialogs, popups, and menus. |
MinimumWindowWidth | integer | 0 | 0 – 2000 | Windows narrower than this get no decoration. Zero turns the width threshold off. |
MinimumWindowHeight | integer | 0 | 0 – 2000 | Windows shorter than this get no decoration. Zero turns the height threshold off. |
Shaders
Overlay shader rendering: frame rate, and the audio capture that drives the audio-reactive packs.
Shaders 1 setting| Setting | Type | Default | Accepts | Description |
|---|---|---|---|---|
FrameRate | integer | 60 | 30 – 144 | Target refresh rate for shader animations. |
Shaders.Audio 14 settings| Setting | Type | Default | Accepts | Description |
|---|---|---|---|---|
Enabled | boolean | false | — | Capture system audio so the audio-reactive shader packs have a signal to follow. Off, those shaders render but stay still. |
Bars | integer | 64 | 16 – 256 | Number of frequency bands in the audio visualization. |
Autosens | boolean | true | — | Continuously adjusts sensitivity so the bars fill the available range. |
Sensitivity | integer | 100 | 10 – 500 | Gain applied to the audio signal. With automatic gain on, this is the level it starts adapting from. |
NoiseReduction | integer | 77 | 0 – 100 | How smoothly the bars respond. Higher values are slower and calmer while lower values are fast and twitchy. |
LowerCutoffHz | integer | 50 | 20 – 500 | Sounds below this frequency are ignored. |
HigherCutoffHz | integer | 10000 | 1000 – 20000 | Sounds above this frequency are ignored. |
Monstercat | boolean | false | — | Spreads each bar into its neighbors for a smoother outline. |
Waves | boolean | false | — | Rounds the spectrum into soft waves. |
ChannelMode | string | stereo | stereomono-averagemono-leftmono-right | Stereo shows left and right bars side by side. Mono collapses to one set of bars. |
Reverse | boolean | false | — | Flip the frequency order of the bars. |
ExtraSmoothing | integer | 50 | 0 – 95 | Additional smoothing applied on top of noise reduction. |
InputMethod | string | auto | autopipewirepulsealsajacksndioossportaudiofifoshmem | Leave on Automatic unless capture fails with the detected backend. |
InputSource | string | auto | — | Capture device or monitor source. Keep it set to auto to follow the default output. |
Rendering
Graphics backend selection.
Rendering 2 settings| Setting | Type | Default | Accepts | Description |
|---|---|---|---|---|
Backend | string | auto | autovulkanopengl | Graphics API used for overlay rendering. |
Gpu | string | auto | — | GPU that draws the zone overlays and on-screen displays. Automatic lets the graphics driver decide. KWin composites window contents, so those are unaffected. |
Performance
Throttles that trade responsiveness against CPU and GPU cost.
Performance 3 settings| Setting | Type | Default | Accepts | Description |
|---|---|---|---|---|
PollIntervalMs | integer | 50 | 10 – 1000 | How often the daemon samples window positions while dragging. Lower reacts sooner and costs more CPU. |
MinimumZoneSizePx | integer | 100 | 50 – 500 | Zones smaller than this on either side are treated as unusable and skipped when placing a window. |
MinimumZoneDisplaySizePx | integer | 10 | 1 – 50 | Zones smaller than this on either side are left out of the overlay, so slivers in a dense layout do not clutter it. |
Ordering
How zones and windows are numbered, which the navigation and quick-layout shortcuts follow.
Ordering 3 settings| Setting | Type | Default | Accepts | Description |
|---|---|---|---|---|
SnappingLayoutOrder | string | (system default) | — | The order zone layouts appear in, as a comma-separated list of layout ids. Anything not listed follows in its default order. |
TilingAlgorithmOrder | string | (system default) | — | The order autotile algorithms appear in, as a comma-separated list of algorithm ids. Anything not listed follows in its default order. |
ScrollingTemplateOrder | string | (system default) | — | The order scrolling templates appear in, as a comma-separated list of template ids. Anything not listed follows in its default order. |
Exclusions
Global rules for windows PlasmaZones should leave alone.
Exclusions 3 settings| Setting | Type | Default | Accepts | Description |
|---|---|---|---|---|
TransientWindows | boolean | true | — | Leave dialogs, popups, and toolbars where they are instead of placing them. |
MinimumWindowWidth | integer | 200 | 0 – 2000 | Windows narrower than this are left alone by every placement mode. Zero turns the width threshold off. |
MinimumWindowHeight | integer | 150 | 0 – 2000 | Windows shorter than this are left alone by every placement mode. Zero turns the height threshold off. |
Editor
The layout editor's own behavior: its snapping, its fill-on-drop, and its modifier overrides.
Editor.FillOnDrop 2 settings| Setting | Type | Default | Accepts | Description |
|---|---|---|---|---|
Enabled | boolean | true | — | Let a zone dropped in the editor expand into the empty space around it. |
Modifier | integer | 67108864 | — | Modifier held while dropping a zone to expand it into available space, as a Qt keyboard-modifier value. |
Editor.Shortcuts 4 settings| Setting | Type | Default | Accepts | Description |
|---|---|---|---|---|
Duplicate | string | Ctrl+D | — | Editor shortcut that clones the selected zone. |
SplitHorizontal | string | Ctrl+Shift+H | — | Editor shortcut that divides the selected zone into left and right halves. |
SplitVertical | string | Ctrl+Alt+V | — | Editor shortcut that divides the selected zone into top and bottom halves. |
Fill | string | Ctrl+Shift+F | — | Editor shortcut that expands the selected zone to fill the empty area around it. |
Editor.Snapping 5 settings| Setting | Type | Default | Accepts | Description |
|---|---|---|---|---|
GridEnabled | boolean | true | — | Snap zones to a grid while dragging or resizing them in the editor. |
EdgeEnabled | boolean | true | — | Snap zones to the edges of neighbouring zones while dragging or resizing them. |
IntervalX | number | 0.1 | 0.01 – 1 | Horizontal grid spacing, as a fraction of the screen width. |
IntervalY | number | 0.1 | 0.01 – 1 | Vertical grid spacing, as a fraction of the screen height. |
OverrideModifier | integer | 33554432 | — | Modifier held to bypass editor snapping for as long as it is down, as a Qt keyboard-modifier value. |
Shortcuts
Every bindable action. These are keyboard bindings rather than tunable values, so the dedicated shortcuts page is the better read. They are listed here for completeness.
Keyboard shortcuts, with defaults and what each action does →
Shortcuts.Global 57 settings| Setting | Type | Default | Accepts | Description |
|---|---|---|---|---|
OpenEditor | string | Meta+Shift+E | — | Open zone editor. |
OpenSettings | string | Meta+Shift+P | — | Open settings. |
ToggleCheatsheet | string | Meta+Alt+/ | — | Open the shortcut cheatsheet. |
PreviousLayout | string | Meta+Alt+[ | — | Switches this screen to the previous layout in the list. |
NextLayout | string | Meta+Alt+] | — | Switches this screen to the next layout in the list. |
QuickLayout1 | string | Meta+Alt+1 | — | Loads quick-layout slot 1 on the focused screen. A slot holds a zone layout, an autotile algorithm, or a scrolling template, depending on the screen's mode. |
QuickLayout2 | string | Meta+Alt+2 | — | Loads quick-layout slot 2 on the focused screen. A slot holds a zone layout, an autotile algorithm, or a scrolling template, depending on the screen's mode. |
QuickLayout3 | string | Meta+Alt+3 | — | Loads quick-layout slot 3 on the focused screen. A slot holds a zone layout, an autotile algorithm, or a scrolling template, depending on the screen's mode. |
QuickLayout4 | string | Meta+Alt+4 | — | Loads quick-layout slot 4 on the focused screen. A slot holds a zone layout, an autotile algorithm, or a scrolling template, depending on the screen's mode. |
QuickLayout5 | string | Meta+Alt+5 | — | Loads quick-layout slot 5 on the focused screen. A slot holds a zone layout, an autotile algorithm, or a scrolling template, depending on the screen's mode. |
QuickLayout6 | string | Meta+Alt+6 | — | Loads quick-layout slot 6 on the focused screen. A slot holds a zone layout, an autotile algorithm, or a scrolling template, depending on the screen's mode. |
QuickLayout7 | string | Meta+Alt+7 | — | Loads quick-layout slot 7 on the focused screen. A slot holds a zone layout, an autotile algorithm, or a scrolling template, depending on the screen's mode. |
QuickLayout8 | string | Meta+Alt+8 | — | Loads quick-layout slot 8 on the focused screen. A slot holds a zone layout, an autotile algorithm, or a scrolling template, depending on the screen's mode. |
QuickLayout9 | string | Meta+Alt+9 | — | Loads quick-layout slot 9 on the focused screen. A slot holds a zone layout, an autotile algorithm, or a scrolling template, depending on the screen's mode. |
MoveWindowLeft | string | Meta+Alt+Shift+Left | — | Moves the focused window into the zone to the left of its current one. |
MoveWindowRight | string | Meta+Alt+Shift+Right | — | Moves the focused window into the zone to the right of its current one. |
MoveWindowUp | string | Meta+Alt+Shift+Up | — | Moves the focused window into the zone above its current one. |
MoveWindowDown | string | Meta+Alt+Shift+Down | — | Moves the focused window into the zone below its current one. |
FocusZoneLeft | string | Alt+Shift+Left | — | Moves focus to the window in the zone to the left of the focused one. |
FocusZoneRight | string | Alt+Shift+Right | — | Moves focus to the window in the zone to the right of the focused one. |
FocusZoneUp | string | Alt+Shift+Up | — | Moves focus to the window in the zone above the focused one. |
FocusZoneDown | string | Alt+Shift+Down | — | Moves focus to the window in the zone below the focused one. |
PushToEmptyZone | string | Meta+Alt+Return | — | Push focused window to the nearest empty zone. |
RestoreWindowSize | string | Meta+Alt+Escape | — | Restore focused window to its pre-snap size. |
ToggleWindowFloat | string | Meta+F | — | Toggle focused window's floating state. |
SwitchFocusFloatTiling | string | Meta+Alt+X | — | Moves focus between the floating windows and the placed layout. It returns to the window that last had focus there when that window is still available. |
SwapWindowLeft | string | Meta+Ctrl+Alt+Left | — | Swaps the focused window with the window in the zone to the left of it. |
SwapWindowRight | string | Meta+Ctrl+Alt+Right | — | Swaps the focused window with the window in the zone to the right of it. |
SwapWindowUp | string | Meta+Ctrl+Alt+Up | — | Swaps the focused window with the window in the zone above it. |
SwapWindowDown | string | Meta+Ctrl+Alt+Down | — | Swaps the focused window with the window in the zone below it. |
SpanWindowLeft | string | Ctrl+Alt+Left | — | Extends the focused window across the adjacent zone to the left of it. Once the span reaches the edge of the layout, the same key pulls the opposite edge in instead. |
SpanWindowRight | string | Ctrl+Alt+Right | — | Extends the focused window across the adjacent zone to the right of it. Once the span reaches the edge of the layout, the same key pulls the opposite edge in instead. |
SpanWindowUp | string | Ctrl+Alt+Up | — | Extends the focused window across the adjacent zone above it. Once the span reaches the edge of the layout, the same key pulls the opposite edge in instead. |
SpanWindowDown | string | Ctrl+Alt+Down | — | Extends the focused window across the adjacent zone below it. Once the span reaches the edge of the layout, the same key pulls the opposite edge in instead. |
SnapToZone1 | string | Meta+Ctrl+1 | — | Snaps the focused window to zone 1 of the current layout. |
SnapToZone2 | string | Meta+Ctrl+2 | — | Snaps the focused window to zone 2 of the current layout. |
SnapToZone3 | string | Meta+Ctrl+3 | — | Snaps the focused window to zone 3 of the current layout. |
SnapToZone4 | string | Meta+Ctrl+4 | — | Snaps the focused window to zone 4 of the current layout. |
SnapToZone5 | string | Meta+Ctrl+5 | — | Snaps the focused window to zone 5 of the current layout. |
SnapToZone6 | string | Meta+Ctrl+6 | — | Snaps the focused window to zone 6 of the current layout. |
SnapToZone7 | string | Meta+Ctrl+7 | — | Snaps the focused window to zone 7 of the current layout. |
SnapToZone8 | string | Meta+Ctrl+8 | — | Snaps the focused window to zone 8 of the current layout. |
SnapToZone9 | string | Meta+Ctrl+9 | — | Snaps the focused window to zone 9 of the current layout. |
RotateWindowsClockwise | string | Meta+Ctrl+] | — | Moves every window one zone clockwise within the current layout. |
RotateWindowsCounterclockwise | string | Meta+Ctrl+[ | — | Moves every window one zone counter-clockwise within the current layout. |
CycleWindowForward | string | Meta+Alt+. | — | Moves the focused window to the next zone in the layout's order. |
CycleWindowBackward | string | Meta+Alt+, | — | Moves the focused window to the previous zone in the layout's order. |
ResnapToNewLayout | string | Meta+Ctrl+Z | — | Reapply current layout. |
SnapAllWindows | string | Meta+Ctrl+S | — | Snap every visible window to its best-fit zone. |
LayoutPicker | string | Meta+Alt+Space | — | Opens a picker to choose this screen's layout. |
ToggleLayoutLock | string | Meta+Ctrl+L | — | Locks this screen's layout so nothing switches it until unlocked. |
SwapVirtualScreenLeft | string | Meta+Ctrl+Alt+Shift+Left | — | Swaps this virtual screen's windows with those of the virtual screen to the left of it. |
SwapVirtualScreenRight | string | Meta+Ctrl+Alt+Shift+Right | — | Swaps this virtual screen's windows with those of the virtual screen to the right of it. |
SwapVirtualScreenUp | string | Meta+Ctrl+Alt+Shift+Up | — | Swaps this virtual screen's windows with those of the virtual screen above it. |
SwapVirtualScreenDown | string | Meta+Ctrl+Alt+Shift+Down | — | Swaps this virtual screen's windows with those of the virtual screen below it. |
RotateVirtualScreensClockwise | string | Meta+Ctrl+Alt+] | — | Moves every virtual screen's windows one position clockwise. |
RotateVirtualScreensCounterclockwise | string | Meta+Ctrl+Alt+[ | — | Moves every virtual screen's windows one position counter-clockwise. |
Shortcuts.Scrolling 35 settings| Setting | Type | Default | Accepts | Description |
|---|---|---|---|---|
FocusColumnFirst | string | Meta+Alt+Home | — | Moves focus to the first column. |
FocusColumnLast | string | Meta+Alt+End | — | Moves focus to the last column. |
MoveColumnToFirst | string | Meta+Alt+Shift+Home | — | Moves the focused column to the first position. |
MoveColumnToLast | string | Meta+Alt+Shift+End | — | Moves the focused column to the last position. |
ConsumeWindow | string | Meta+Alt+I | — | Pulls a window from the next column into the focused column, stacking them. |
ExpelWindow | string | Meta+Alt+Shift+I | — | Moves the focused window out of a shared column into a new column after it. |
ConsumeOrExpelLeft | string | Meta+Alt+U | — | Splits the focused window out of a shared column toward the start of the strip. A window alone in its column merges into the previous column instead. |
ConsumeOrExpelRight | string | Meta+Alt+O | — | Splits the focused window out of a shared column toward the end of the strip. A window alone in its column merges into the next column instead. |
CenterColumn | string | Meta+Alt+C | — | Scrolls the view so the focused column sits centered on the screen. |
ToggleColumnTabbed | string | Meta+Alt+T | — | Switches the focused column between stacked windows and tabs. |
ToggleWindowedFullscreen | string | Meta+Alt+Shift+F | — | Puts the focused window into its fullscreen presentation while it keeps its place in the column, so it does not cover the screen. Press again to leave it. |
CycleColumnWidth | string | Meta+Alt+PgUp | — | Steps the focused column through the screen's size presets along the strip. |
CycleColumnWidthBack | string | Meta+Alt+PgDown | — | Steps the focused column through the screen's size presets along the strip, in reverse. |
IncreaseColumnWidth | string | Meta+Alt+W | — | Grows the focused column along the strip by the configured step. |
DecreaseColumnWidth | string | Meta+Alt+Shift+W | — | Shrinks the focused column along the strip by the configured step. |
MaximizeColumn | string | Meta+Alt+F | — | Toggles the focused column between filling the work area and a smaller size. |
ExpandColumn | string | Meta+Alt+E | — | Grows the focused column to fill the empty space visible on screen. Other columns keep their size. |
CycleWindowHeight | string | Meta+Alt+Shift+PgUp | — | Steps the focused window through the screen's size presets within its column. |
CycleWindowHeightBack | string | Meta+Alt+Shift+PgDown | — | Steps the focused window through the screen's size presets within its column, in reverse. |
IncreaseWindowHeight | string | Meta+Alt+H | — | Grows the focused window within its column by the configured step. |
DecreaseWindowHeight | string | Meta+Alt+Shift+H | — | Shrinks the focused window within its column by the configured step. |
ResetWindowHeights | string | Meta+Ctrl+Alt+T | — | Clears manual window sizes in the focused column so its windows share the column's space evenly. |
CenterVisibleColumns | string | Meta+Alt+Shift+C | — | Scrolls the view so the fully visible columns sit centered as a group. |
FocusWindowTop | string | Meta+Alt+V | — | Moves focus to the first window of the focused column. |
FocusWindowBottom | string | Meta+Alt+Shift+V | — | Moves focus to the last window of the focused column. |
FocusColumnLeft | string | (system default) | — | Moves focus one column toward the start of the strip and stops at the edge. The regular focus shortcut continues onto the next monitor instead. |
FocusColumnRight | string | (system default) | — | Moves focus one column toward the end of the strip and stops at the edge. The regular focus shortcut continues onto the next monitor instead. |
FocusColumnLeftOrLast | string | (system default) | — | Moves focus one column toward the start of the strip, wrapping to the last column at the edge. |
FocusColumnRightOrFirst | string | (system default) | — | Moves focus one column toward the end of the strip, wrapping to the first column at the edge. |
MoveToFloating | string | (system default) | — | Makes the focused window float. Unlike the float toggle, it never re-tiles. |
MoveToTiling | string | (system default) | — | Returns the focused floating window to its column. Unlike the float toggle, it never floats. |
ViewPageBack | string | Meta+Alt+Y | — | Scrolls the view toward the start of the strip by a whole screen. Focus stays where it is. |
ViewPageForward | string | Meta+Alt+Shift+Y | — | Scrolls the view toward the end of the strip by a whole screen. Focus stays where it is. |
EqualizeColumnWidths | string | Meta+Ctrl+Shift+T | — | Gives every column fully on screen an equal share of the screen. Columns clipped at an edge are left alone. |
MinimizeColumnWidth | string | Meta+Alt+Shift+E | — | Shrinks the focused column to the smallest size preset. |
Shortcuts.Tiling 8 settings| Setting | Type | Default | Accepts | Description |
|---|---|---|---|---|
Toggle | string | Meta+Shift+T | — | Cycle the focused screen's placement mode. |
FocusMaster | string | Meta+Shift+M | — | Focus the master window. |
SwapMaster | string | Meta+Shift+Return | — | Swap focused window with master. |
IncMasterRatio | string | Meta+Shift+L | — | Gives the master area a larger share of the screen. |
DecMasterRatio | string | Meta+Shift+H | — | Gives the master area a smaller share of the screen. |
IncMasterCount | string | Meta+Ctrl+= | — | Moves one more window into the master area. |
DecMasterCount | string | Meta+Ctrl+- | — | Moves one window out of the master area. |
Retile | string | Meta+Ctrl+T | — | Re-applies the tiling algorithm to every window on the screen. |
Related
- D-Bus scripting → Read and write any of these keys at runtime, and subscribe to changes.
- Keyboard shortcuts → The bindable actions in the Shortcuts family, with their defaults.
- Troubleshooting → What to check when a setting does not appear to take effect.