PlasmaZones v2.4.0
Added
- KZones layout import ([PR #244]): Import zone layouts from KZones configuration files.
- Aspect ratio layouts ([PR #242]): Auto-detect monitor aspect ratio, editor selector for ratio-specific layouts, and filter setting for the layout grid.
- Portable Wayland build ([PR #231]):
USE_KDE_FRAMEWORKS=ON/OFFCMake option. Pluggable backends for config (IConfigBackend), shortcuts (IShortcutBackend), wallpaper (IWallpaperProvider), and i18n (Qt Linguist). Runs on non-KDE Wayland compositors. - Standalone settings app ([PR #238]):
plasmazones-settingswith KCM-style sidebar drill-down, subpages, visual monitor selector, search, keyboard shortcuts overlay, unsaved-changes indicator, and DPI-aware animations. Meta+Shift+P shortcut to launch. - D-Bus API audit ([PR #246]): New
CompositorBridge,Control, andShaderinterfaces. Convenience methods and full API specification. Unit tests for all new methods. - Arch Drift branded shader: Terminal rain columns, isometric chevron grid, traveling data packets, and CRT scan lines. 95-vertex SDF polygon from the official Crystal SVG.
- EndeavourOS Drift branded shader: Constellation network background with 24 dots on Lissajous orbits, warm gradient wash, and tri-sail SDF logo (58 vertices total).
- Wind currents + sails shader: Replaced constellation network with flowing wind current effect.
Changed
- KWin effect reduced to thin interface layer ([PR #245]): Effect code is now a minimal bridge between KWin and the daemon over D-Bus. All tiling/snapping logic lives in the daemon.
- Removed unused
LayoutTypeenum: Cleaned upLayoutmodel — thetypefield was never used. - Dropped
IConfigBackendinterface indirection:QSettingsConfigBackendused directly after KConfig removal stabilized. - Removed KConfig dependency from test suite: Tests use the standalone config backend.
- Removed daemon toggle from KCM: Moved
DaemonControllertosrc/common.
Fixed
- Synchronous D-Bus calls freeze compositor: Eliminated blocking D-Bus calls in the KWin effect that caused compositor hangs.
- Qt6 SIGSEGV in context menu: Moved context menu outside
Loaderto avoid crash. - Qt6 crash in aspect ratio submenu: Flattened submenu to avoid nested popup crash.
- Tooltip flickering on layout cards in Flow layout ([#235]): Fixed hover handler conflicts.
- Zone previews clamped for fixed-geometry layouts: Preview rendering no longer overflows card bounds.
- Edge threshold max increased: From 100px to 500px.
- Settings live lock sync and screenId resolution: OSD lock state now syncs immediately.
- EndeavourOS Drift GLSL type errors: Fixed vec2/float mismatches and wired dead parameters.
- Shader file watcher dropped after cmake install: Re-watches directories after inode replacement.
- Layout card icon hover flicker ([#235]): Replaced
HoverHandlerwithMouseAreato fix grab conflicts.
Installation
Arch Linux (AUR):
yay -S plasmazones # or plasmazones-binArch Linux (manual):
sudo pacman -U plasmazones-2.4.0-1-x86_64.pkg.tar.zstKDE Neon / Debian-based:
sudo dpkg -i plasmazones_2.4.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.4.0-1.fc43.x86_64.rpmopenSUSE Tumbleweed (manual RPM):
sudo zypper install plasmazones-2.4.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.4.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