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/getPerScreenSettingsD-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 inQSignalBlockerto prevent N intermediatesettingsChangedemissions mid-batch. The KCM'snotifyReload()triggers a singlesettingsChangedwith all values committed.
Fixed
- Mode toggle affects all monitors:
Meta+Shift+Tautotile toggle now only affects the focused screen's context. Previously,seedAutotileOrderForScreenand 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 byisAutotile()) when mode is Autotile with empty algorithm, instead of returning empty string which causedupdateAutotileScreensto 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 beforem_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-binArch Linux (manual):
sudo pacman -U plasmazones-2.3.8-1-x86_64.pkg.tar.zstKDE Neon / Debian-based:
sudo dpkg -i plasmazones_2.3.8-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.3.8-1.fc43.x86_64.rpmopenSUSE Tumbleweed (manual RPM):
sudo zypper install plasmazones-2.3.8-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.3.8-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