github fuddlesworth/PlasmaZones v2.4.0
PlasmaZones v2.4.0

latest releases: v2.8.7, v2.8.6, v2.8.5...
one month ago

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/OFF CMake 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-settings with 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, and Shader interfaces. 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 LayoutType enum: Cleaned up Layout model — the type field was never used.
  • Dropped IConfigBackend interface indirection: QSettingsConfigBackend used directly after KConfig removal stabilized.
  • Removed KConfig dependency from test suite: Tests use the standalone config backend.
  • Removed daemon toggle from KCM: Moved DaemonController to src/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 Loader to 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 HoverHandler with MouseArea to fix grab conflicts.

Installation

Arch Linux (AUR):

yay -S plasmazones  # or plasmazones-bin

Arch Linux (manual):

sudo pacman -U plasmazones-2.4.0-1-x86_64.pkg.tar.zst

KDE Neon / Debian-based:

sudo dpkg -i plasmazones_2.4.0-1_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):

sudo dnf install plasmazones-2.4.0-1.fc43.x86_64.rpm

openSUSE Tumbleweed (manual RPM):

sudo zypper install plasmazones-2.4.0-1.x86_64.rpm

openSUSE Tumbleweed (OBS):

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

Community-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.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.