Skip to content

bar ​

Bar chrome: per-monitor layout, spacing, colors, and button styling.

General ​

FieldTypeDefaultDescription
layoutarray 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.
scaleScaleFactor1Bar-specific scale multiplier for spacing, radius, and other bar elements.
inset-edgeSize0.5Gap between bar and its attached screen edge.
inset-endsSize0.5Gap at the bar's ends.
paddingSize0.35Internal spacing along bar thickness.
padding-endsSize0.5Internal spacing at bar ends.
module-gapSize0.5Gap between modules and groups on the bar.
locationLocation"top"Bar position on screen edge.
exclusivebooltrueReserve screen space for the bar.
layerLayer"top"Layer-shell layer the bar is placed on.
background-opacityPercentage60Bar 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-locationBorderLocation"all"Border placement for bar.
border-widthu81Border width for bar (pixels).
roundingRoundingLevel"default"Corner rounding level for the bar.
shadowShadowPreset"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 ​

FieldTypeDefaultDescription
bgColorValue"bg-surface"Bar background color.
border-colorColorValue"border-default"Border color for the bar.
button-group-backgroundColorValue"bg-elevated"Background color for button groups.
button-group-border-colorColorValue"border-accent"Border color for button groups.

Buttons ​

FieldTypeDefaultDescription
button-variantBarButtonVariant"basic"Visual style variant for bar buttons.
button-opacityPercentage100Button opacity (0-100).
button-bg-opacityPercentage0Button background opacity (0-100).
button-icon-sizeSize1Button icon size. Accepts a scale multiplier or pixels (e.g. "24px").
button-icon-paddingSize1Button icon container padding. Only applies to block-prefix and icon-square variants. Accepts a scale multiplier or pixels (e.g. "8px").
button-label-sizeSize1Button label text size. Accepts a scale multiplier or pixels (e.g. "16px").
button-label-weightFontWeightClass"semibold"Button label font weight.
button-label-paddingSize1Button label container padding. Accepts a scale multiplier or pixels (e.g. "8px").
button-roundingRoundingLevel"sm"Corner rounding level for the buttons in the bar.
button-gapSize1Gap between button icon and label. Accepts a scale multiplier or pixels (e.g. "4px").
button-icon-positionIconPosition"start"Icon position relative to label in bar buttons.
button-border-locationBorderLocation"all"Border placement for bar buttons.
button-border-widthu81Border width for bar buttons (pixels).
button-group-border-locationBorderLocation"none"Border placement for button groups.
button-group-border-widthu81Border width for button groups (pixels).
button-group-paddingSize0Internal padding for button groups.
button-group-module-gapSize0.25Gap between modules within a group.
button-group-opacityPercentage100Button group opacity (0-100).
button-group-roundingRoundingLevel"sm"Corner rounding level for button groups.
FieldTypeDefaultDescription
dropdown-shadowbooltrueEnable dropdown panel shadow.
dropdown-opacityPercentage75Dropdown panel opacity (0-100). Below 100 the compositor blurs what is behind the panel; where it offers no blur the panel is opaque.
dropdown-autohidebooltrueClose dropdown when clicking outside it.
dropdown-freeze-labelbooltrueFreeze 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

Released under the MIT License.