bar
Bar chrome: per-monitor layout, spacing, colors, and button styling.
General
| Field | Type | Default | Description |
|---|---|---|---|
layout | array of BarLayout | [...] | Per-monitor bar layouts. Each entry targets a monitor by connector name (e.g., "DP-1") or "*" for all monitors. See [BarLayout] for the full shape, including layout inheritance via extends. |
scale | ScaleFactor | 1 | Bar-specific scale multiplier for spacing, radius, and other bar elements. |
inset-edge | Size | 0.5 | Gap between bar and its attached screen edge. |
inset-ends | Size | 0.5 | Gap at the bar's ends. |
padding | Size | 0.35 | Internal spacing along bar thickness. |
padding-ends | Size | 0.5 | Internal spacing at bar ends. |
module-gap | Size | 0.5 | Gap between modules and groups on the bar. |
location | Location | "top" | Bar position on screen edge. |
exclusive | bool | true | Reserve screen space for the bar. |
layer | Layer | "top" | Layer-shell layer the bar is placed on. |
background-opacity | Percentage | 60 | Bar background opacity (0-100). Below 100 the compositor blurs what is behind the bar; where it offers no blur the bar rests on its opaque color. |
border-location | BorderLocation | "all" | Border placement for bar. |
border-width | u8 | 1 | Border width for bar (pixels). |
rounding | RoundingLevel | "default" | Corner rounding level for the bar. |
shadow | ShadowPreset | "none" | Shadow style for the bar. |
More about layout
Example
yaml
bar:
layout:
- monitor: "*"
left: [dashboard]
center: [clock]
right: [battery, network, volume, systray]
- monitor: HDMI-1
extends: "*"
right: [volume, systray]More about inset-edge
- Orientation: Distance from top (horizontal bar) or left (vertical bar)
More about inset-ends
- Orientation: Left/right (horizontal bar), top/bottom (vertical bar)
More about padding
- Orientation: Top/bottom (horizontal bar), left/right (vertical bar)
More about padding-ends
- Orientation: Left/right (horizontal bar), top/bottom (vertical bar)
More about exclusive
When disabled, windows may overlap the bar and the bar draws over them.
Colors
| Field | Type | Default | Description |
|---|---|---|---|
bg | ColorValue | "bg-surface" | Bar background color. |
border-color | ColorValue | "border-default" | Border color for the bar. |
button-group-background | ColorValue | "bg-elevated" | Background color for button groups. |
button-group-border-color | ColorValue | "border-accent" | Border color for button groups. |
Buttons
| Field | Type | Default | Description |
|---|---|---|---|
button-variant | BarButtonVariant | "basic" | Visual style variant for bar buttons. |
button-opacity | Percentage | 100 | Button opacity (0-100). |
button-bg-opacity | Percentage | 0 | Button background opacity (0-100). |
button-icon-size | Size | 1 | Button icon size. Accepts a scale multiplier or pixels (e.g. "24px"). |
button-icon-padding | Size | 1 | Button icon container padding. Only applies to block-prefix and icon-square variants. Accepts a scale multiplier or pixels (e.g. "8px"). |
button-label-size | Size | 1 | Button label text size. Accepts a scale multiplier or pixels (e.g. "16px"). |
button-label-weight | FontWeightClass | "semibold" | Button label font weight. |
button-label-padding | Size | 1 | Button label container padding. Accepts a scale multiplier or pixels (e.g. "8px"). |
button-rounding | RoundingLevel | "sm" | Corner rounding level for the buttons in the bar. |
button-gap | Size | 1 | Gap between button icon and label. Accepts a scale multiplier or pixels (e.g. "4px"). |
button-icon-position | IconPosition | "start" | Icon position relative to label in bar buttons. |
button-border-location | BorderLocation | "all" | Border placement for bar buttons. |
button-border-width | u8 | 1 | Border width for bar buttons (pixels). |
button-group-border-location | BorderLocation | "none" | Border placement for button groups. |
button-group-border-width | u8 | 1 | Border width for button groups (pixels). |
button-group-padding | Size | 0 | Internal padding for button groups. |
button-group-module-gap | Size | 0.25 | Gap between modules within a group. |
button-group-opacity | Percentage | 100 | Button group opacity (0-100). |
button-group-rounding | RoundingLevel | "sm" | Corner rounding level for button groups. |
Dropdowns
| Field | Type | Default | Description |
|---|---|---|---|
dropdown-shadow | bool | true | Enable dropdown panel shadow. |
dropdown-opacity | Percentage | 75 | Dropdown panel opacity (0-100). Below 100 the compositor blurs what is behind the panel; where it offers no blur the panel is opaque. |
dropdown-autohide | bool | true | Close dropdown when clicking outside it. |
dropdown-freeze-label | bool | true | Freeze the bar button label while its dropdown is open. |
More about dropdown-autohide
Esc closes an open dropdown too. On lys-wm it does so beside the dropdown, with the keys still on the focused window, and the window sees neither the press nor the release, unless a bind on bare Esc, a window inhibiting shortcuts, an exclusive layer or a grab has the key. Elsewhere Esc reaches a dropdown only after a click into it, as keys stay with the focused window until then.
More about dropdown-freeze-label
Prevents the button from resizing mid-interaction, which keeps the dropdown anchored in place.
Default configuration
yaml
bar:
scale: 1.0
inset-edge: 0.5
inset-ends: 0.5
padding: 0.3499999940395355
padding-ends: 0.5
module-gap: 0.5
location: top
exclusive: true
layer: top
bg: bg-surface
background-opacity: 60
border-location: all
border-width: 1
border-color: border-default
rounding: default
shadow: none
button-variant: basic
button-opacity: 100
button-bg-opacity: 0
button-icon-size: 1.0
button-icon-padding: 1.0
button-label-size: 1.0
button-label-weight: semibold
button-label-padding: 1.0
button-rounding: sm
button-gap: 1.0
button-icon-position: start
button-border-location: all
button-border-width: 1
button-group-border-location: none
button-group-border-width: 1
button-group-padding: 0.0
button-group-module-gap: 0.25
button-group-background: bg-elevated
button-group-opacity: 100
button-group-border-color: border-accent
button-group-rounding: sm
dropdown-shadow: true
dropdown-opacity: 75
dropdown-autohide: true
dropdown-freeze-label: true