Last Updated: 3/12/2026
Animations
Hyprland’s animation system brings fluidity and visual polish to window management. This guide covers animation configuration, bezier curves, and per-element animation control.
Animation Configuration
Animations are configured in the animations block:
animations {
enabled = yes, please :)
# Define bezier curves
bezier = NAME, X0, Y0, X1, Y1
# Apply animations
animation = ELEMENT, ONOFF, SPEED, CURVE, [STYLE]
}Bezier Curves
Bezier curves define animation easing. The format is:
bezier = NAME, X0, Y0, X1, Y1Where X0, Y0 is the first control point and X1, Y1 is the second control point.
Default Curves
The example config includes these curves:
bezier = easeOutQuint, 0.23, 1, 0.32, 1
bezier = easeInOutCubic, 0.65, 0.05, 0.36, 1
bezier = linear, 0, 0, 1, 1
bezier = almostLinear, 0.5, 0.5, 0.75, 1
bezier = quick, 0.15, 0, 0.1, 1- easeOutQuint: Smooth deceleration
- easeInOutCubic: Smooth acceleration and deceleration
- linear: Constant speed
- almostLinear: Nearly linear with slight easing
- quick: Fast acceleration
Animation Elements
Global Animation
Sets default for all elements:
animation = global, 1, 10, defaultWindow Animations
animation = windows, 1, 4.79, easeOutQuint
animation = windowsIn, 1, 4.1, easeOutQuint, popin 87%
animation = windowsOut, 1, 1.49, linear, popin 87%Styles for windows:
popin PERCENT: Windows scale from/to a percentage of their sizeslide: Windows slide in/out
Border Animations
animation = border, 1, 5.39, easeOutQuintAnimates border color changes when focus switches.
Fade Animations
animation = fadeIn, 1, 1.73, almostLinear
animation = fadeOut, 1, 1.46, almostLinear
animation = fade, 1, 3.03, quickControls opacity transitions.
Layer Animations
For layer-shell surfaces (bars, notifications, overlays):
animation = layers, 1, 3.81, easeOutQuint
animation = layersIn, 1, 4, easeOutQuint, fade
animation = layersOut, 1, 1.5, linear, fade
animation = fadeLayersIn, 1, 1.79, almostLinear
animation = fadeLayersOut, 1, 1.39, almostLinearWorkspace Animations
animation = workspaces, 1, 1.94, almostLinear, fade
animation = workspacesIn, 1, 1.21, almostLinear, fade
animation = workspacesOut, 1, 1.94, almostLinear, fadeStyles for workspaces:
fade: Cross-fade between workspacesslide: Slide transitionslidevert: Vertical slide
Zoom Factor Animation
animation = zoomFactor, 1, 7, quickAnimates the zoom level when using zoom dispatchers.
Animation Syntax
animation = ELEMENT, ONOFF, SPEED, CURVE, [STYLE]- ELEMENT: What to animate (windows, border, fade, etc.)
- ONOFF:
1to enable,0to disable - SPEED: Animation duration multiplier (higher = slower)
- CURVE: Bezier curve name or
default - STYLE: Optional element-specific style (popin, slide, fade)
Disabling Animations
Disable All Animations
animations {
enabled = no
}Disable Specific Elements
animation = windows, 0
animation = workspaces, 0Performance Tuning
Reduce Animation Complexity
For lower-end hardware:
animations {
enabled = yes
bezier = simple, 0, 0, 1, 1 # Linear
animation = windows, 1, 2, simple
animation = border, 0
animation = fade, 1, 1, simple
animation = workspaces, 1, 1, simple, fade
}Disable Fade Animations
Fade animations can be expensive:
animation = fadeIn, 0
animation = fadeOut, 0
animation = fade, 0Custom Animation Profiles
Snappy Profile
Fast, responsive animations:
animations {
enabled = yes
bezier = snap, 0.1, 0, 0.1, 1
animation = windows, 1, 2, snap
animation = border, 1, 3, snap
animation = fade, 1, 2, snap
animation = workspaces, 1, 1.5, snap, slide
}Smooth Profile
Slow, fluid animations:
animations {
enabled = yes
bezier = smooth, 0.25, 0.1, 0.25, 1
animation = windows, 1, 8, smooth, popin 90%
animation = border, 1, 10, smooth
animation = fade, 1, 5, smooth
animation = workspaces, 1, 4, smooth, fade
}Testing Animations
Live Reload
Animations reload instantly when you save your config. Test different curves and speeds by editing and saving.
Bezier Curve Visualization
Use online bezier curve visualizers to design custom curves:
- https://cubic-bezier.com/
- Input your X0, Y0, X1, Y1 values to preview the easing
Animation Tips
- Match animation speed to element size: Faster for small elements, slower for large
- Use easing for natural feel: Avoid linear animations except for special effects
- Consistent curves: Use the same curve family across related elements
- Test on your hardware: What feels smooth on high-end hardware may stutter on lower-end
- Disable what you don’t see: If you don’t notice an animation, disable it for performance
What’s Next
Customize window appearance with the Decorations guide.