Skip to content

Latest commit

 

History

History
118 lines (95 loc) · 5.18 KB

File metadata and controls

118 lines (95 loc) · 5.18 KB

Animation

Animation settings live in the top-level animation section. duration_ms and curve set defaults for every event when present; a nested event can override either value. The master switch makes every transition instant. Each event also has its own switch.

[animation]
enabled = true
duration_ms = 250
curve = "easeout"

[animation.windows_in]
enabled = true
duration_ms = 150
curve = "easeout"
style = "popin"       # "popin", "zoom", "slide", "fade", or "none"
scale = 0.85          # 0.1-1.0, used by "popin"

[animation.windows_out]
enabled = true
duration_ms = 150
curve = "easeout"
style = "fade"        # "fade" or "slide"

[animation.windows_move]
enabled = true
duration_ms = 250
curve = "snappy"

[animation.workspaces]
enabled = true
duration_ms = 250
curve = "easeout"

[animation.overview]
enabled = true
duration_ms = 250
curve = "easeout"

[animation.scratchpad]
enabled = false
duration_ms = 250
curve = "easeout"
dim = 0.5             # 0.0-1.0
blur = false          # requires appearance.blur.enabled
scale = 0.0           # 0 preserves geometry; 0.1-1.0 sizes and centers on entry
maximize = false      # maximize to edges on entry
fullscreen = false    # fullscreen on entry

[animation.border]
enabled = false
duration_ms = 250
curve = "easeout"

[animation.dim_unfocused]
enabled = false
duration_ms = 250
curve = "easeout"
dim = 0.0             # 0.0-1.0

[animation.layers]
enabled = false
duration_ms = 250
curve = "easeout"

Defaults

Key Type Default Description
enabled bool true Master switch. When false, every animation transition is instant.
duration_ms int 250 Default duration for all events when explicitly set (1-10000 milliseconds).
curve string easeout Default curve for all events when explicitly set.

Event tables

Each event table accepts enabled, duration_ms, and curve. The following fields are specific to individual event tables:

Table Additional fields Transition
[animation.windows_in] style (popin, zoom, slide, fade, or none); scale (0.1-1.0, for popin) Window open.
[animation.windows_out] style (fade or slide) Window close, using a scene snapshot.
[animation.windows_move] None Window move and resize.
[animation.workspaces] None Workspace switch.
[animation.overview] None Overview open, close, and row settling.
[animation.scratchpad] dim (0.0-1.0); blur; scale (0.0-1.0); maximize; fullscreen Scratchpad show, hide, and backdrop.
[animation.border] None Focus-ring color transition in OkLab color space.
[animation.dim_unfocused] dim (0.0-1.0) Unfocused-window opacity. dim = 0 disables it.
[animation.layers] None Layer-shell surface map and unmap fades.

An event's enabled = false makes only that transition instant. Scratchpad dim and blur remain active, without a fade, when animation is disabled. Scratchpad scale, maximize, and fullscreen apply when a window enters the scratchpad.

Curves

Each curve accepts a built-in name such as linear, ease, easeout, snappy, bounce, or elastic; a cubic bezier string "x1,y1,x2,y2"; or a spring string "spring: damping,stiffness". Bezier x coordinates must be between 0 and 1. Spring damping must be between 0.01 and 5, and stiffness between 1 and 1000.

Custom named curves can be registered once and reused by name:

[animation.beziers]
myBezier = [0.05, 0.9, 0.1, 1.05]

[animation.springs]
myBounce = { damping = 0.5, stiffness = 200 }

Then reference them as curve = "myBezier" or curve = "myBounce" in any event section.