← Otto User GuideCustomization

Otto’s appearance is set from the config file: colour scheme, accent, wallpaper, fonts, icon theme, corner radius, window control side, and dock position and tint. This page shows what each of those does, on six configurations.

For each setting on its own, see Theming, Dock and Window Management.

A dark scheme with squared corners

A grey Otto desktop with a yellow accent, square corners and an eww status panel

accent_color = "#f2c300"
rounded_corners = false
window_controls_side = "right"

[dock]
colorize_icons = true
colorize_color = "#ffffff"
colorize_intensity = 1.0

The dock icons are tinted white. The tint is luminance × colour, so white is exactly a greyscale conversion: it preserves each icon’s internal shading instead of flattening it to a silhouette.

Otto Settings open on the same desktop, showing the accent as a hex swatch

All of these are in Settings as well. rounded_corners and window_controls_side need a restart; the accent and the dock tint apply immediately.

A dock down the side

An Otto desktop with the dock down the left edge and window controls on the left

accent_color = "#7fd4e6"
window_controls_side = "left"
font_family = "Inter Display"

[dock]
position = "left"
colorize_color = "#7fd4e6"
colorize_intensity = 0.85

A side dock stacks its icons vertically, reserves screen width instead of height, magnifies along the pointer’s vertical travel, and minimizes windows sideways into itself.

Otto Settings showing the same values, with the tinted dock beside it

The compositor’s own surfaces

A dark Otto desktop with a violet accent and the dock down the right edge

accent_color and theme_scheme apply to the compositor’s own surfaces as well: exposé, the workspace strip, the app switcher, and the brightness and volume indicators.

Exposé on the same desktop, window previews with the workspace strip above them

The brightness indicator over the same desktop, with Settings open behind it

Desktop widgets and the app switcher

An Otto desktop with an eww now-playing panel and a gold-tinted dock

The panel on the left is an eww widget on the desktop layer: a wlr-layer-shell client, not an Otto feature.

The app switcher over the same desktop, its icons tinted gold to match

The app switcher draws the same tinted icons as the dock, so a colourised dock does not leave the switcher looking like a different desktop. The colour and strength always come from [dock] — one desktop, one icon tint — and appswitcher.colorize_icons = false opts the switcher out.

A saturated tint

The app switcher with red-tinted icons on a dark Otto desktop

A saturated colorize_color sets a ceiling on each icon’s luminance, so it needs light source icons. Applied to icons that are already dark it flattens them to silhouettes.

A light scheme

A light Otto desktop with a tan accent and a sepia-tinted dock

This uses the named brown accent rather than a hex literal, so it resolves to the light or dark palette’s shade as the scheme changes.

The app switcher on the light desktop, icons tinted sepia

The tint source is Papirus-Light here, even though the result is darker than the icons started. The filter maps each icon to its luminance re-coloured in colorize_color, then blends back toward the original by colorize_intensity, so what a light tint has to work with is the source icon’s luminance.

What changes the look

SettingWhereEffect
background_image, background_colorThemingThe wallpaper, and what shows if it fails to load
theme_schemeThemingLight or dark, for Otto’s chrome and for GTK/Qt apps through the portal
accent_colorThemingSelection, highlights and controls. A palette name or a hex literal
font_familyThemingOtto’s own interface type
icon_themeThemingThe source icons, before any tint
rounded_cornersThemingRounded or squared window corners. Needs a restart
window_controls_sideWindow ManagementClose/minimize/maximize on the left or right. Needs a restart
dock.positionDockBottom, left or right
dock.size, dock.magnificationDockHow big, and whether icons grow under the pointer
dock.colorize_*DockTints every dock and switcher icon to one colour
workspaces.namesWorkspacesWhat the workspace strip is labelled with

Everything except rounded_corners and window_controls_side applies live.

What Otto does not draw

Otto draws the dock, the top bar chrome, exposé and server-side window frames. Terminals, editors and status panels are separate clients and are themed on their own: