screensaver: add expressive material animations - #3315
Conversation
|
Hi there, thanks for the PR. Although cool, I immediately thought it looks "Omarchy" like and didn't really fit our aesthetics. Then seen the code: I think it would be cool to have something like this in DMS, but it would have to be a closer fit to our Material inspired themebase. I'm leaving this open for now to welcome any other opinions on the subject. |
Ok let me look into it to use material theme. @purian23 |
Updated screensaver showcase1080p MP4 demonstrating the expanded Material-themed animation and effect set: |
|
@purian23 I've updated the implementation based on your feedback and pushed the new Material-themed version. |
Description
Adds a standalone, manually launched Material 3 Expressive screensaver. It stays separate from the lock screen and never starts from an idle timer.
Text and ASCII art use separate render paths. Auto mode classifies the configured content, while explicit Text and ASCII overrides remain available. Text rotates through morph, typography, tonal sweep, split, orbit assembly, color wave, prism echo, radial burst, elastic wipe, and kinetic stack compositions. ASCII adds per-glyph decrypt, pour, scatter, wave, laser etch, rings, fireworks, crumble/reform, and Material VHS effects alongside reveal, row assembly, and drift without immediately repeating an effect. The final glyph positions share one monospace grid so whitespace and alignment are preserved.
The surface follows DMS theme roles, uses gentle safe-zone repositioning, and respects reduced motion. Users can choose calm, normal, or lively timing and disable the decorative expressive shapes.
Users can launch it from Power & Sleep settings, the Control Center header, a compositor keybind, or IPC. Any keyboard or pointer input dismisses it. IPC supports
open,openEffect,effects,close,toggle, andstatus, withstartandstopkept as compatibility aliases.The earlier terminal/ttfx prototype has been separated into a user plugin and is not part of this built-in implementation, keeping the core screensaver pure QML with no external runtime dependencies.
Type of change
Related issues
None.
Screenshots / video
The updated showcase is posted in the PR discussion.
Validation
make -C core buildscreensaver open,openEffect,effects,close, andstatusverified liveCGO_ENABLED=0 go test ./...passes except pre-existingTestWaylandOutputBoundsScaledincore/internal/screenshotmake lint-qmlcould not run becausequickshell/.qmlls.inipoints to an expired Quickshell runtime VFSChecklist
I18n.tr()with translator context, reusing existing terms where possiblemake lint-qmlwith no new warnings