Appearance

September 2, 2026 ยท View on GitHub

Configure colors, window appearance, blur, shadows, and other visual effects.

Colors

[colors]
background = "#141419FF"
text_primary = "#E8E8EAFF"
text_muted = "#8A8A92FF"
accent_primary = "#7AA3FFFF"
accent_secondary = "#F5C96BFF"
warning = "#F5C96BFF"
error = "#FF6B6BFF"
insert_hint = "#7FC8FF80"
backdrop = "#000000FF"
shadow = "#0000007F"

Every color Umbriel paints is configured here. The seven semantic palette keys are the ones Umbriel's own panels use, such as the keybind cheatsheet and the configuration diagnostics panel. insert_hint, backdrop, and shadow cover the remaining compositor surfaces, and the [colors.border] and [colors.overview] sub-tables cover window and overview chrome. Colors are #RRGGBB or #RRGGBBAA.

KeyTypeDefaultDescription
backgroundcolor#141419FFShared background for internal panels and banners.
text_primarycolor#E8E8EAFFPrimary text.
text_mutedcolor#8A8A92FFSecondary help and status text.
accent_primarycolor#7AA3FFFFPrimary emphasis, including titles, key chords, and the cheatsheet border.
accent_secondarycolor#F5C96BFFSecondary emphasis, including group headings.
warningcolor#F5C96BFFWarning status text, and the diagnostics panel border when it reports only warnings.
errorcolor#FF6B6BFFError text, and the border of the session-quit confirmation and of a diagnostics panel reporting an error.
insert_hintcolor#7FC8FF80Drop-target preview during drag.
backdropcolor#000000FFBackground for fullscreen gaps and the lock screen.
shadowcolor#0000007FWindow shadow color.

Key chord backgrounds are derived from background and text_primary; they remain opaque so text stays legible over translucent panels.

Modal panels use their semantic colors as borders: one logical pixel of accent_primary around the keybind cheatsheet, and two logical pixels around the smaller session-quit confirmation and the configuration diagnostics panel.

Border colors

[colors.border]
focused = "#7AA3FFFF"
unfocused = "#292933FF"
scratchpad_focused = "#E5C07BFF"
scratchpad_unfocused = "#5C4A2AFF"
outer = "#1A1A1FFF"
KeyTypeDefaultDescription
focusedcolor#7AA3FFFFBorder color for the focused window.
unfocusedcolor#292933FFBorder color for unfocused windows.
scratchpad_focusedcolor#E5C07BFFBorder color for the focused scratchpad window.
scratchpad_unfocusedcolor#5C4A2AFFBorder color for unfocused scratchpad windows.
outercolor#1A1A1FFFOuter border color. It has no focus variant.

Border widths, the corner radius, and the other decoration geometry live in [appearance].

Overview colors

[colors.overview]
background_tint = "#10101430"
workspace_background = "#00000044"
badge = "#7AA3FFFF"
KeyTypeDefaultDescription
background_tintcolor#10101430Tint composited over the desktop background. Alpha 00 leaves it untouched; FF hides it.
workspace_backgroundcolor#00000044Rounded background behind each workspace. Alpha 00 makes it invisible; FF makes it opaque.
badgecolor#7AA3FFFFKeyboard shortcut badges on overview cards.

overview.workspace_wallpaper mirrors the output's background- and bottom-layer surfaces over workspace_background, which then only shows on an output where no client maps one.

The rest of the overview's behavior is configured in [overview].

Window appearance

[appearance]
prefer_no_csd = true
border_width = 2               # 0-100
outer_border_width = 0         # 0-100
corner_radius = 10             # 0-100, final outer edge; 0 disables
drag_opacity = 0.75
KeyTypeDefaultDescription
prefer_no_csdbooltruePrefer Umbriel's border-only server decoration. Set to false to let clients draw their own decorations.
border_widthint2Inner border width in logical pixels (0-100), including around rounded corners.
outer_border_widthint0Ring outside the inner border in logical pixels (0-100).
corner_radiusint10Final decorated outer-edge radius in logical pixels (0-100). 0 disables.
drag_opacityfloat0.75Opacity of the window while dragging.

With prefer_no_csd = true, Umbriel advertises the XDG and KDE decoration managers and prefers its border-only server decoration. An explicit request for client-side decorations is still honored. With false, Umbriel hides both managers from newly connected clients so toolkits such as Qt draw their own decorations. Protocol visibility is fixed when an application connects, so restart applications after changing this setting.

Window decoration colors are configured in [colors.border], with the drop-target preview and the fullscreen backdrop in [colors].

Border widths and corner radius are measured in logical pixels. corner_radius describes the final outside edge of the complete decoration. Positive color-seam and content radii decrease smoothly as their border inset grows, but never collapse to square; corner_radius = 0 keeps every contour square. Inner and outer borders render outside the window and are included in layout spacing.

See Scratchpads for how scratchpad windows behave and use the dedicated border colors.

Blur

[appearance.blur]
enabled = true
optimized = true
passes = 3        # 0-8
radius = 5        # 0-100
noise = 0.02      # 0.0-1.0
brightness = 0.9  # 0.0-2.0
contrast = 0.9    # 0.0-2.0
saturation = 1.1  # 0.0-2.0

enabled is the master switch. Individual surfaces must still opt in through window rules or layer rules. Blur only renders where a surface is transparent. Sampling remains confined to the surface's owning output when a window overflows into a neighbouring output. Disabling the master switch also releases the per-output blur render targets.

KeyTypeDefaultDescription
enabledbooltrueMaster blur switch.
optimizedbooltrueUse one cached background blur per output for all surfaces. This is the X-ray mode: translucent surfaces blur the background beneath the window stack instead of the surfaces behind them. false drops the cache and its two per-output buffers unless a window or layer rule sets blur_optimized = true.
passesint3Blur passes (0-8). 0 disables.
radiusint5Blur radius (0-100). 0 disables.
noisefloat0.02Noise overlay (0.0-1.0).
brightnessfloat0.9Brightness adjustment (0.0-2.0).
contrastfloat0.9Contrast adjustment (0.0-2.0).
saturationfloat1.1Saturation adjustment (0.0-2.0).

Shadow

[appearance.shadow]
enabled = true
softness = 10      # 0-200
offset_x = 2       # -200 to 200
offset_y = 2

Drop shadow behind windows (tiled and floating). Hidden while fullscreen. The shadow color is colors.shadow.

KeyTypeDefaultDescription
enabledbooltrueEnable drop shadows.
softnessint10Gaussian blur sigma in pixels (0-200). 0 produces a hard-edged shadow.
offset_xint2Horizontal shadow offset (-200 to 200).
offset_yint2Vertical shadow offset (-200 to 200).