Colourful balls for Plasma 6

README.md

Dashballs #

Plasma 6 wallpaper plugin: floating vector balls with light physics, matching the Dash wallpaper.

Repository: https://tangled.org/bitbra.in/dashballs

The default installation enables the animation on both the lock screen and the Plasma Login Manager greeter. The desktop stays on the static Dash image.

On KDE Plasma there is no separate xscreensaver-style app; the animated background shows when the session locks (Meta+L or idle timeout).

Features #

  • GPU vector circles — sharp at 4K and any DPI
  • Three sizes (63 / 125 / 160 px at 4K short edge), scaled to min(width, height)
  • Dash palette: base #0E1013, red / blue / green / yellow
  • Spawned as L+M+S clusters with distinct colors (no same-color neighbors at spawn)
  • Elastic ball–ball collisions, wall bounces, soft center keep-out

Install #

./install.sh

The default --all mode:

  • installs the wallpaper plugin for the current user's lock screen
  • layers the system plugin RPM for the pre-login greeter
  • promotes Ubuntu fonts from ~/.local/share/fonts/ubuntu to /usr/local/share/fonts
  • configures the plasmalogin account to use Ubuntu

Reboot after the RPM is layered. Then test the login greeter by logging out and the lock screen with Meta+L.

Ubuntu Regular, Medium, Bold, and italic TTF files must already be installed in ~/.local/share/fonts/ubuntu.

From a release artifact #

Download the latest release from Tangled, then install the Plasma plugin archive:

kpackagetool6 --type Plasma/Wallpaper --install dashballs-1.0.0.tar.gz

On Fedora, install the system package instead:

sudo dnf install dashballs-1.0.0-1.fc44.noarch.rpm

Uninstall #

./uninstall.sh

Restores static Dash on lock screen and login greeter, restores the previous greeter font configuration, and removes the promoted font copies. Reboot after removing the layered RPM.

Other modes #

./install.sh --user     # plugin only (e.g. desktop preview)
./install.sh --lock     # lock screen only; keep a static login background
./install.sh --system   # login screen and system plugin only

Release #

Version is defined in metadata.json. Release builds are produced by:

./build-release.sh

This writes to dist/:

  • dashballs-<version>.tar.gz — Plasma wallpaper plugin archive
  • dashballs-<version>-<release>.noarch.rpm — system package for Plasma Login Manager
  • dashballs-<version>-<release>.src.rpm — source RPM
  • SHA256SUMS

Tagged releases are built and published automatically by Tangled Spindle when an annotated tag matching v* is pushed, for example:

git tag -a v1.0.0 -m "Dashballs 1.0.0"
git push origin v1.0.0

The tag must match the metadata version exactly (v1.0.0 for version 1.0.0).

Tangled workflow secrets #

Configure these under Settings → Secrets in the Tangled repository:

  • ATP_APP_PASSWORD — app password for publishing release artifacts
  • ATP_PDS — optional, defaults to https://tngl.sh
  • ATP_IDENTIFIER — optional, defaults to bitbra.in

Layout #

metadata.json
contents/ui/main.qml
contents/ui/Ball.qml
contents/js/physics.js
packaging/dashballs.spec
build-release.sh
build-rpm.sh
install.sh
uninstall.sh
.tangled/workflows/release.yml

Plugin id: org.bitbrain.dashballs