Skip to content

screensaver: add expressive material animations - #3315

Open
alamin147 wants to merge 6 commits into
AvengeMedia:masterfrom
alamin147:feature/omarchy-screensaver
Open

screensaver: add expressive material animations#3315
alamin147 wants to merge 6 commits into
AvengeMedia:masterfrom
alamin147:feature/omarchy-screensaver

Conversation

@alamin147

@alamin147 alamin147 commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

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, and status, with start and stop kept 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

  • Bug fix (non-breaking change that fixes an issue)
  • New feature (non-breaking change that adds functionality)
  • Breaking change (fix or feature that changes existing behavior)
  • Refactor / internal cleanup
  • Documentation
  • Other

Related issues

None.

Screenshots / video

The updated showcase is posted in the PR discussion.

Validation

  • make -C core build
  • Loaded from the rebuilt embedded Quickshell UI in the live DMS session
  • Text and ASCII components loaded without QML runtime errors
  • Built-in screensaver open, openEffect, effects, close, and status verified live
  • Settings search index regenerated
  • CGO_ENABLED=0 go test ./... passes except pre-existing TestWaylandOutputBoundsScaled in core/internal/screenshot
  • make lint-qml could not run because quickshell/.qmlls.ini points to an expired Quickshell runtime VFS

Checklist

  • My code follows the conventions in CONTRIBUTING.md
  • I have tested my changes locally
  • New user-facing strings are wrapped in I18n.tr() with translator context, reusing existing terms where possible
  • Go changes: not applicable; this PR does not change Go code
  • QML changes: ran make lint-qml with no new warnings
  • I have opened a corresponding pull request in dlx-docs to document any new behaviors: https://github.com/AvengeMedia/DankLinux-Docs

@purian23

purian23 commented Sep 5, 2026

Copy link
Copy Markdown
Collaborator

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:

# Adapted from omacom/omarchy's MIT-licensed omarchy-screensaver.
# Copyright (c) David Heinemeier Hansson.

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.

@alamin147

Copy link
Copy Markdown
Contributor Author

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:

# Adapted from omacom/omarchy's MIT-licensed omarchy-screensaver.
# Copyright (c) David Heinemeier Hansson.

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

@alamin147 alamin147 changed the title screensaver: add standalone animated text effects screensaver: add expressive material animations Sep 6, 2026
@alamin147

Copy link
Copy Markdown
Contributor Author

Updated screensaver showcase

1080p MP4 demonstrating the expanded Material-themed animation and effect set:

https://github.com/alamin147/DankMaterialShell/releases/download/screensaver-showcase-2026-09-07/screensaver-updated.mp4

@alamin147

Copy link
Copy Markdown
Contributor Author

@purian23 I've updated the implementation based on your feedback and pushed the new Material-themed version.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants