Config Reference

Rules

Window matching, optional rule composition, opening behavior, appearance and separate capture privacy.

Defaults

Defaults shown here are the effective built-in defaults for the selected wiki version.

Default Config Shape

Use this as the section shape when editing halley.rune.

Rules config
rules:
end

rules

Repeated rule blocks.

OptionTypeDefaultNotes
window-rulerepeated nested blocknoneMatches a managed Wayland or XWayland toplevel.
layer-rulerepeated nested blocknoneMatches a layer-shell namespace and optional layer.
window-rule-modefirst-match | composefirst-matchCompose applies all matching window rules; later explicitly set properties override earlier ones. Layer rules remain first-match.

rules.window-rule

Window matching, initial geometry, visual policy, and cluster participation.

OptionTypeDefaultNotes
app-idstring | regex | arrayoptionalExact or regex application-id match.
titlestring | regex | arrayoptionalExact or regex title match.
width | heightu32unsetOptional fixed initial dimensions.
opacityf321.0Client content and popups only. Borders, titlebars, pin badges, and compositor shadows remain opaque.
blurboolunsetExplicit client blur activation policy.
spawn-placementcenter | viewport-center | cursor | app | find-emptycenterInitial window placement.
cluster-participationlayout | floatlayoutWhether the window joins cluster layout management.
match | excluderepeated nested blocknoneWithin a group app-id and title are AND conditions; match groups are OR alternatives. Any matching exclusion rejects the rule. Do not mix match groups with top-level app-id/title.
match-allboolfalseMatch every window. Do not combine with match groups or top-level app-id/title.
is-transient | at-startupbool matcherunsetMatch parent relationships or the first 60 seconds of the compositor session. Use inside match/exclude groups.
is-focused | is-screencast-targetbool matcherunsetMatch keyboard focus or individual-window portal casting. These conditions update live and cannot set opening properties.
open-on-outputconnector stringselected outputInitial output; unavailable targets fall back to the selected output. Cross-output routing does not take focus by default.
open-position[i32, i32]unsetInitial client top-left in signed Field units relative to the target output origin. Applies only on first map.
open-focused | open-fullscreen | open-maximizedboolunsetInitial-map decisions. Fullscreen takes precedence over maximize.
border | shadowboolglobal settingOverride the border stroke or compositor shadow without changing the configured parameters.
corner-radiusinteger 0–256global radiusOverride client-content, border, capture and blur rounding. Server titlebars retain their own radius.
gameboolautomatic detectionTreat the window as a game for same-monitor fullscreen navigation and parking.
block-screenshotboolfalseOmit the window and popups from built-in screen/region screenshots; direct screenshots fail. Does not cover portal or third-party capture.
block-screencastboolfalseOmit the window and popups from portal monitor shares and source selection. Active window shares turn black. Does not cover screenshots or direct protocols.

rules.layer-rule

Layer-shell blur matching.

OptionTypeDefaultNotes
namespacestring | regex | arrayrequiredLayer-shell namespace match.
layerstring | arrayanyOptional background, bottom, top, or overlay layer match.
blurboolunsetSet blur and/or block-screencast on each layer rule.
block-screencastboolfalseOmit the matching layer and its popups from portal monitor shares. Does not block screenshots or direct capture protocols.