hyprland-wiki/content/Configuring/Animations.md

3.9 KiB

weight title
9 Animations

General

Animations are declared with the animation keyword.

animation = NAME, ONOFF, SPEED, CURVE [,STYLE]

ONOFF use 0 to disable, 1 to enable. Note: if it's 0, you can omit further args.

SPEED is the amount of ds (1ds = 100ms) the animation will take.

CURVE is the bezier curve name, see curves.

STYLE (optional) is the animation style.

The animations are a tree. If an animation is unset, it will inherit its parent's values. See the animation tree.

Examples

animation = workspaces, 1, 8, default
animation = windows, 1, 10, myepiccurve, slide
animation = fade, 0

Animation tree

global
  ↳ windows - styles: slide, popin, gnomed
    ↳ windowsIn - window open - styles: same as windows
    ↳ windowsOut - window close - styles: same as windows
    ↳ windowsMove - everything in between, moving, dragging, resizing.
  ↳ layers - styles: slide, popin, fade
    ↳ layersIn - layer open
    ↳ layersOut - layer close
  ↳ fade
    ↳ fadeIn - fade in for window open
    ↳ fadeOut - fade out for window close
    ↳ fadeSwitch - fade on changing activewindow and its opacity
    ↳ fadeShadow - fade on changing activewindow for shadows
    ↳ fadeDim - the easing of the dimming of inactive windows
    ↳ fadeLayers - for controlling fade on layers
      ↳ fadeLayersIn - fade in for layer open
      ↳ fadeLayersOut - fade out for layer close
    ↳ fadePopups - for controlling fade on wayland popups
      ↳ fadePopupsIn - fade in for wayland popup open
      ↳ fadePopupsOut - fade out for wayland popup close
    ↳ fadeDpms - for controlling fade when dpms is toggled
  ↳ border - for animating the border's color switch speed
  ↳ borderangle - for animating the border's gradient angle - styles: once (default), loop
  ↳ workspaces - styles: slide, slidevert, fade, slidefade, slidefadevert
    ↳ workspacesIn - styles: same as workspaces
    ↳ workspacesOut - styles: same as workspaces
    ↳ specialWorkspace - styles: same as workspaces
      ↳ specialWorkspaceIn - styles: same as workspaces
      ↳ specialWorkspaceOut - styles: same as workspaces
  ↳ zoomFactor - animates the screen zoom
  ↳ monitorAdded - monitor added zoom animation

{{< callout type=warning >}}

Using the loop style for borderangle requires Hyprland to constantly render new frames at a frequency equal to your screen's refresh rate (e.g. 60 times per second for a 60hz monitor), which might stress your CPU/GPU and will impact battery life.
This will apply even if animations are disabled or borders are not visible.

{{</ callout >}}

Curves

Defining your own Bézier curve can be done with the bezier keyword:

bezier = NAME, X0, Y0, X1, Y1

where NAME is a name of your choice and X0, Y0, X1, Y1 are the the two control points for a Cubic Bézier curve.
A good website to design your own Bézier can be cssportal.com.
If you want to instead choose from a list of pre-made Béziers, you can check out easings.net.

Example

bezier = overshoot, 0.05, 0.9, 0.1, 1.1

Extras

For animation style popin in windows, you can specify a minimum percentage to start from. For example, the following will make the animation 80% -> 100% of the size:

animation = windows, 1, 8, default, popin 80%

For animation styles slidefade and slidefadevert in workspaces, you can specify a movement percentage. For example, the following will make windows move 20% of the screen width:

animation = workspaces, 1, 8, default, slidefade 20%

For animation style slide in windows and layers you can specify a forced side.
You can choose between top, bottom, left or right.

animation = windows, 1, 8, default, slide left