Theme groups tokens by role. Everything has a default (Otter Shell matte preset).
Colors
Bar
bar.height, bar.padding, bar.background, bar.item_background, bar.item_hover, bar.item_active, bar.separator, and related chrome tokens.
Popup
Shared menu and tooltip styling:popup.background, popup.border, popup.highlight, popup.selected, popup.padding, popup.item_height.
Spacing and fonts
spacing.widget_padding, spacing.icon_size, spacing.item_spacing, fonts.font_family, fonts.tooltip_size.
Icons
icons.theme selects an XDG icon theme name or absolute theme directory. Semantic icons check it before bundled SVG fallbacks. The flat config key is icons_theme.
Surfaces and density
surfaces.view, surfaces.surface, surfaces.surface_alt, surfaces.focus_ring, plus density.control_height, density.control_radius, density.panel_radius.
Decorations
decorations.prefered_decoration_type picks how XDG toplevels ask for decorations: none, server, client, or client_floating. Default is server.
CSD
When client-side decorations are active,csd styles them. button_layout is GTK-style (default :sbc). The rest covers titlebar colors and sizes, button colors, and border radius/size.
Transparency
transparency.global_alpha scales surface opacity (percentage 0..100). transparency.background_blur (default true) asks the compositor to blur behind translucent regions when supported.
Config keys
theme.conf flattens nested structs: colors_accent, bar_height, popup_padding, spacing_icon_size, etc. See Presets and loading.
