PlasmaZones v2.3.1
Fixed
- Window state lost on daemon reload: Zone assignments were purged during
loadState()when the saved active layout differed from the default layout. Restoring the active layout emittedactiveLayoutChangedbeforecurrentVirtualDesktopwas set, causingonLayoutChanged()to resolve effective layouts against the wrong desktop and fall back todefaultLayout()— whose zones didn't match the saved assignments. Fixed by suppressing the signal during state restoration. - Screen not found on Wayland (hex serial mismatch): The daemon's
screenIdentifier()usedQScreen::serialNumber()as-is, but on KDE Plasma Wayland this returns the EDID header serial in hex (e.g.,"0x0001C1A3"). The KWin effect already normalized to decimal ("115107"), causing screen ID mismatches across the D-Bus boundary. Both sides now produce identical decimal serials. - Screen not found from KCM queries ([#223]):
getScreenInfo()only matched screens by connector name ("eDP-1"), butgetScreens()returns EDID-based screen IDs ("Sharp Corporation:LQ134N1JW53"). Every KCM screen info query failed, causing autotile assignments to revert and persistent "screen not found" errors on multi-monitor setups. Now accepts both connector names and screen IDs. - Autotile window order lost on rapid mode toggle: When
setInitialWindowOrder()was called twice for the same screen, the first call's 10-second safety timer would fire and remove the second call's pending order. Added a generation counter so stale timers from superseded calls become no-ops. - KCM fallback screen IDs inconsistent: When the daemon was unavailable, the KCM screen provider fell back to connector names instead of EDID-based screen IDs, causing per-screen config mismatches. Now uses
Utils::screenIdentifier()in the fallback path.
Installation
Arch Linux (AUR):
yay -S plasmazones # or plasmazones-binArch Linux (manual):
sudo pacman -U plasmazones-2.3.1-1-x86_64.pkg.tar.zstKDE Neon / Debian-based:
sudo dpkg -i plasmazones_2.3.1-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.1-1.fc43.x86_64.rpmopenSUSE Tumbleweed (manual RPM):
sudo zypper install plasmazones-2.3.1-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.1-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