arch-hyprland/docs/Animations.md
2025-11-24 05:20:52 -07:00

107 lines
4.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Animations
## General[](#general)
Animations are declared with the `animation` keyword.
```ini
animation = NAME, ONOFF, SPEED, CURVE [,STYLE]
```
`ONOFF` use `0` to disable, `1` to enable. _Note:_ if its `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](#curves).
`STYLE` (optional) is the animation style.
The animations are a tree. If an animation is unset, it will inherit its parents values. See [the animation tree](#animation-tree).
### Examples[](#examples)
```ini
animation = workspaces, 1, 8, default
animation = windows, 1, 10, myepiccurve, slide
animation = fade, 0
```
### Animation tree[](#animation-tree)
```txt
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
```
⚠️
Using the `loop` style for `borderangle` requires Hyprland to _constantly_ render new frames at a frequency equal to your screens 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.
## Curves[](#curves)
Defining your own [Bézier curve](https://en.wikipedia.org/wiki/B%C3%A9zier_curve) can be done with the `bezier` keyword:
```ini
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](https://www.cssportal.com/css-cubic-bezier-generator/).
If you want to instead choose from a list of pre-made Béziers, you can check out [easings.net](https://easings.net).
### Example[](#example)
```ini
bezier = overshoot, 0.05, 0.9, 0.1, 1.1
```
### Extras[](#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:
```ini
animation = windows, 1, 8, default, popin 80%
```
For animation styles `slide`, `slidevert`, `slidefade` and `slidefadevert` in `workspaces`, you can specify a movement percentage. For example, the following will make windows move 20% of the screen width:
```ini
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`.
```ini
animation = windows, 1, 8, default, slide left
```