All animations run on the GPU render thread at display refresh rate, independent of the Emacs redisplay. Everything is configurable from Elisp — see Configuration.
8 particle/visual modes (Neovide-inspired):
| Mode | Description |
|---|---|
none |
No animation, instant movement |
smooth |
Smooth interpolated movement (default) |
railgun |
Particles shoot backward from cursor |
torpedo |
Comet-like trail follows cursor |
pixiedust |
Sparkly particles scatter around cursor |
sonicboom |
Shockwave ring expands from cursor |
ripple |
Concentric rings emanate outward |
wireframe |
Animated outline glow |
7 movement styles controlling how the cursor interpolates between positions:
| Style | Description |
|---|---|
exponential |
Smooth deceleration, no fixed duration (uses speed param) |
spring |
Critically-damped spring, Neovide-like feel (default) |
ease-out-quad |
Gentle deceleration curve |
ease-out-cubic |
Stronger deceleration curve |
ease-out-expo |
Sharp deceleration curve |
ease-in-out-cubic |
Smooth S-curve |
linear |
Constant speed |
The spring style also supports a 4-corner trail effect where leading corners snap
ahead and trailing corners stretch behind, controlled by a trail-size parameter (0.0-1.0).
10 buffer-switch effects triggered when the visible buffer changes:
| Effect | Description |
|---|---|
none |
Instant switch |
crossfade |
Alpha blend between old and new (default) |
slide-left/right/up/down |
Directional slide transitions |
scale-fade |
Scale and fade |
push |
New buffer pushes old buffer out |
blur |
Blur transition |
page-curl |
3D page-turning effect |
21 scroll animation effects organized into categories:
| # | Effect | Category | Description |
|---|---|---|---|
| 0 | slide |
2D | Content slides in scroll direction (default) |
| 1 | crossfade |
2D | Alpha blend between old and new positions |
| 2 | scale-zoom |
2D | Destination zooms from 95% to 100% |
| 3 | fade-edges |
2D | Lines fade at viewport edges |
| 4 | cascade |
2D | Lines drop in with stagger delay |
| 5 | parallax |
2D | Layers scroll at different speeds |
| 6 | tilt |
3D | Subtle 3D perspective tilt |
| 7 | page-curl |
3D | Page turning effect |
| 8 | card-flip |
3D | Card flips around X-axis |
| 9 | cylinder-roll |
3D | Content wraps around cylinder |
| 10 | wobbly |
Deformation | Jelly-like deformation |
| 11 | wave |
Deformation | Sine-wave distortion |
| 12 | per-line-spring |
Deformation | Each line springs independently |
| 13 | liquid |
Deformation | Noise-based fluid distortion |
| 14 | motion-blur |
Post-process | Vertical blur during scroll |
| 15 | chromatic-aberration |
Post-process | RGB channel separation |
| 16 | ghost-trails |
Post-process | Semi-transparent afterimages |
| 17 | color-temperature |
Post-process | Warm/cool tint by direction |
| 18 | crt-scanlines |
Post-process | Retro scanline overlay |
| 19 | depth-of-field |
Post-process | Center sharp, edges dim |
| 20 | typewriter-reveal |
Creative | Lines appear left-to-right |
5 scroll easing functions:
| # | Easing | Description |
|---|---|---|
| 0 | ease-out-quad |
Standard deceleration (default) |
| 1 | ease-out-cubic |
Stronger deceleration |
| 2 | spring |
Critically damped spring with overshoot |
| 3 | linear |
Constant speed |
| 4 | ease-in-out-cubic |
Smooth S-curve |
;; One typed, name-based profile configures effects and animation policy.
(neomacs-effects-apply
'((cursor-motion :enabled t :speed 15.0
:style critically-damped-spring :duration 0.15
:trail-size 0.7)
(crossfade-transition :enabled t :duration 0.2
:effect crossfade :easing ease-out-quad)
(scroll-transition :enabled t :duration 0.15
:effect page-curl :easing spring)))
;; Incremental changes use the same names and properties.
(neomacs-effect-set 'cursor-motion
:speed 20.0 :style 'linear :duration 0.1)
(neomacs-effect-set 'crossfade-transition :enabled nil)
(neomacs-effect-set 'scroll-transition
:effect 'wobbly :easing 'ease-out-quad)