github fuddlesworth/PlasmaZones v3.0.7
PlasmaZones v3.0.7

6 hours ago

PlasmaZones v3.0.7

Changed

  • bounce drops the window in from above its frame (#475): bounce previously revealed the window from its own top edge downward, clipped to the window box. Animation shaders can now opt into a full-surface render mode that gives them room to draw past the window, and bounce uses it to play niri's original drop-from-above motion — the window travels in from above its frame.
  • Overlay cards unified on one shared frame (#475): the layout OSD, navigation OSD, layout picker, and zone selector each hand-rolled their card background, border, and glow. They now share a single PopupFrame component, so all four read as the same surface and the soft glow is captured into the transition and animates with the card rather than being clipped away for the duration. The layout picker and zone selector pick up the same glow the OSDs use.
  • wave-warp gained a frontSpeed parameter (#475): wave-warp and the former crosswarp ran the identical moving-edge warp, differing only in a front-speed dial. That dial is now wave-warp's frontSpeed parameter (default 1.0).

Removed

  • crosswarp transition (#475): it was wave-warp with a fixed front speed. Use wave-warp with its new frontSpeed parameter instead.
  • plasma-flow transition (#475): it was a re-skin of soft-warp-fade — the same noise-driven UV warp and fade, differing only in trivial constants.

Fixed

  • Window open / close animations rendered as ghosted, multi-copy trails on KWin (#475): translation transitions (bounce, fly-in) drew several overlapping copies of the window during an open or close. paintWindow called OffscreenEffect::drawWindow directly, leaving KWin's shared draw-window iterator parked at the start, so the offscreen capture re-entered the effect and drew the window's own texture into itself. The transition now routes through effects->drawWindow so the capture reaches the real draw stage, and KWin's stock fade / scale / slide builtins are held off the window so they no longer render a second concurrent copy.
  • New windows flashed at their spawn position before animating into place (#475): KWin places a new window (centered or smart) before the effect sees it, and the reposition into a zone or tile is asynchronous on Wayland, so a snap-restored or autotiled window visibly flickered at the centered spawn position for one to three frames. New-window pixels are now withheld until the reposition lands (with a 250 ms safety deadline), so the window first becomes visible already animating into its zone.
  • Snap-restored windows played their open animation from the screen center (#475): a snap-restored window ran its bounce / fly-in open animation from the centered spawn position and then jumped to the zone once KWin's asynchronous move landed. The in-flight open transition is now pinned to the resolved zone, so the effect plays into the zone from the first frame.
  • OSD glow popped in at the end of a transition (#475): the soft glow behind the layout and navigation OSDs was clipped away for the duration of a show / hide animation and snapped back into place when the animation ended. The glow is now captured together with the card so it scales and moves with it throughout the transition.
  • Faint grey halo around daemon OSDs during bounce / fly-in (#475): both effects painted a faint grey border around the OSD while animating — the effect's edge feather fell just outside the captured texture and tinted its clamped edge pixels. The edge crop is now a sub-pixel, edge-aligned antialias band, so the border is gone and the edge stays crisp.

Installation

Arch Linux (AUR):

yay -S plasmazones  # or plasmazones-bin

Arch Linux (manual):

sudo pacman -U plasmazones-3.0.7-*-x86_64.pkg.tar.zst

KDE Neon / Debian-based:

sudo dpkg -i plasmazones_3.0.7-*_amd64.deb
sudo apt-get install -f  # Install dependencies if needed

Fedora (COPR):

sudo dnf copr enable fuddlesworth/PlasmaZones
sudo dnf install plasmazones

Fedora (manual RPM):

# Fedora 43
sudo dnf install plasmazones-3.0.7-*.fc43.x86_64.rpm
# Fedora 44
sudo dnf install plasmazones-3.0.7-*.fc44.x86_64.rpm

openSUSE Tumbleweed (manual RPM):

sudo zypper install plasmazones-3.0.7-*.x86_64.rpm

openSUSE Tumbleweed (OBS):

sudo zypper addrepo https://download.opensuse.org/repositories/home:fuddlesworth/openSUSE_Tumbleweed/home:fuddlesworth.repo
sudo zypper refresh
sudo zypper install plasmazones

Universal Linux (AppDir):
For Fedora Atomic, Steam Deck, or non-root user installation:

tar xzf plasmazones-3.0.7-linux-x86_64.tar.gz
cd plasmazones-linux-x86_64
./install.sh

NixOS (flake):

# flake.nix inputs
plasmazones.url = "github:fuddlesworth/PlasmaZones";

# configuration.nix
programs.plasmazones.enable = true;

NixOS (standalone):
Download plasmazones.nix from the release assets, then:

# configuration.nix
environment.systemPackages = [
  (pkgs.callPackage ./plasmazones.nix {})
];

Post-Installation

systemctl --user enable --now plasmazones.service
systemsettings kcm_plasmazones

Don't miss a new PlasmaZones release

NewReleases is sending notifications on new releases.