github fuddlesworth/PlasmaZones v2.3.8
PlasmaZones v2.3.8

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

PlasmaZones v2.3.8

Added

  • Batch settings D-Bus method: New setSettings(QVariantMap) method applies multiple settings in one D-Bus call with a single KConfig save. Complete settings registry with 87 entries covering all autotile, zone selector, shortcut, and behavior settings.
  • Per-screen settings D-Bus methods: New setPerScreenSetting/clearPerScreenSettings/getPerScreenSettings D-Bus methods for autotile, snapping, and zone selector categories. Per-screen calls use async D-Bus to avoid blocking the KCM UI during slider interactions.
  • Zone previews in autotile dropdowns: Autotile algorithm dropdowns now show layout thumbnails with zone previews, matching the snapping layout dropdown UX.

Changed

  • Daemon is sole KConfig writer: All KCM settings writes now route through D-Bus to the daemon. No KCM sub-page calls m_settings->save() directly. Eliminates dual-writer race conditions between the KCM and daemon.
  • Batch signal suppression: setSettings() wraps setter calls in QSignalBlocker to prevent N intermediate settingsChanged emissions mid-batch. The KCM's notifyReload() triggers a single settingsChanged with all values committed.

Fixed

  • Mode toggle affects all monitors: Meta+Shift+T autotile toggle now only affects the focused screen's context. Previously, seedAutotileOrderForScreen and the resnap-from-autotile-order loop processed all screens instead of the shortcut's target screen.
  • Clearing autotile algorithm to "Use default" switches to snapping mode: activeLayoutId() now returns "autotile:" (recognized by isAutotile()) when mode is Autotile with empty algorithm, instead of returning empty string which caused updateAutotileScreens to drop the screen from autotile.
  • showBorder and hideTitleBars are independent toggles: Turning off borders no longer forces title bars to reappear. Turning on hideTitleBars now immediately hides title bars on all currently tiled windows instead of waiting for the next retile.
  • KCM save ordering for per-screen overrides: setDaemonSettings() now runs before m_settings->save() so per-screen overrides written by the KCM are not overwritten by the daemon's stale values.
  • Navigation fallback screen: Fall back to the KWin effect's screen when the daemon's stored screen assignment is gone, preventing navigation failures after monitor reconfiguration.

Installation

Arch Linux (AUR):

yay -S plasmazones  # or plasmazones-bin

Arch Linux (manual):

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

KDE Neon / Debian-based:

sudo dpkg -i plasmazones_2.3.8-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.3.8-1.fc43.x86_64.rpm

openSUSE Tumbleweed (manual RPM):

sudo zypper install plasmazones-2.3.8-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.3.8-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.