PlasmaZones v2.7.0
Added
- JSON config backend ([#286]): Config migrated from INI (
~/.config/plasmazonesrc) to JSON (~/.config/plasmazones/config.json). Existing INI configs are migrated automatically on first launch. The JSON backend supports nested groups, proper array/object serialization, and atomic writes. - Master ratio/count OSD values ([#289]): Shortcut adjustments now show the actual value in the navigation OSD: "Master ratio → 65%" and "Master count → 2".
- Tumbleweed Drift shader improvements: New wind-blown sand streams, stronger audio reactivity across all bands, faster animation speeds, larger dust devils, and full-surface treble sparkle. Sand streams follow the configured wind direction.
Changed
- Settings navigation: App Rules moved under Snapping section. Child navigation pages have dividers for visual grouping.
Fixed
- Drag-to-float keeps drop position ([#289]): Dragging a window off the autotile layout no longer snaps it back to its pre-autotile position. The daemon's geometry restore is skipped for drag-initiated floats.
- Shortcut ratio/count persistence ([#289]): Master ratio and count changes via keyboard shortcuts were only in memory due to QSignalBlocker suppressing the save path. Added debounced save so values survive reboots.
- Algorithm switch persistence ([#289]): Algorithm changes via settings also use QSignalBlocker and had the same missing-save issue. Now triggers the same debounced save.
- Minimum window size for autotile ([#290]): The user-configured minimum window width/height was never checked in the autotile path. Small utility windows like the Plasma emoji picker entered the tiling tree, causing rapid float/unfloat cycles that broke the master ratio. Now enforced in the KWin effect before windows reach the daemon.
- Focus-follows-mouse through small windows ([#290]): Windows below the minimum size threshold no longer steal focus on hover. They block focus-through like excluded apps and popups.
- Shortcut debouncing ([#288]): Rotate, float toggle, and layout cycle shortcuts are now debounced to prevent rapid-fire D-Bus calls from key repeat.
- Overlay Vulkan surface churn: Non-shader overlays are hidden instead of destroyed and recreated, reducing Vulkan surface create/destroy cycles.
- Snap assist window pooling: Snap assist reuses its window instead of creating a new one each time, and rejects stale layout requests.
- JSON config serialization: Arrays and objects in the config file are properly serialized through the flat map representation.
Installation
Arch Linux (AUR):
yay -S plasmazones # or plasmazones-binArch Linux (manual):
sudo pacman -U plasmazones-2.7.0-1-x86_64.pkg.tar.zstKDE Neon / Debian-based:
sudo dpkg -i plasmazones_2.7.0-1_amd64.deb
sudo apt-get install -f # Install dependencies if neededFedora (COPR):
sudo dnf copr enable fuddlesworth/PlasmaZones
sudo dnf install plasmazonesFedora (manual RPM):
sudo dnf install plasmazones-2.7.0-1.fc43.x86_64.rpmopenSUSE Tumbleweed (manual RPM):
sudo zypper install plasmazones-2.7.0-1.x86_64.rpmopenSUSE Tumbleweed (OBS):
sudo zypper addrepo https://download.opensuse.org/repositories/home:ilFrance/openSUSE_Tumbleweed/home:ilFrance.repo
sudo zypper refresh
sudo zypper install plasmazonesCommunity-maintained package by ilFrance
Universal Linux (AppDir):
For Fedora Atomic, Steam Deck, or non-root user installation:
tar xzf plasmazones-2.7.0-linux-x86_64.tar.gz
cd plasmazones-linux-x86_64
./install.shNixOS (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