PlasmaZones v3.0.15
Fixed
- Zone-selector popup at the screen edge switched the active layout on hover, resnapping every tiled window (#542): the zone-selector slot was supposed to be input-transparent during drag — cursor coordinates come in via the D-Bus
updateSelectorPositionpath and the snap commits at drag-end viadrop.cpp, never via a Qt hover event. But the slot's QMLMouseAreas still firedzoneSelectedon every pointer-enter, and once snap-assist became visible the shared shell surface flipped to input-grabbing (anyInputGrabbing = isVisible(snapAssistSlot) || isVisible(layoutPickerSlot)insyncPassiveShellSurfaceState) — those leaked hover events committedmanualLayoutSelected, which immediately resnapped every other tiled window into the new layout's zones. Visible as "my layout changes to one with more or fewer windows whenever I drag windows up". The QML hover commit path is gone (ZoneSelectorContentis nowinteractive: falseand the daemon'smanualLayoutSelectedhandler / signal are removed); cross-layout switching on drop still works becauseWindowDragAdaptor::dragStoppedreadsm_selectedLayoutIdfrom the C++ hit-test and applies the layout when the user actually releases the drag on a zone in a different layout.
Removed
- Switching the autotile algorithm by hovering an autotile preview in the zone-selector popup (#542): the autotile-hover commit path went away with the input-contract fix above (
drop.cppresolves the selected id as a UUID and skips non-UUID autotile ids, so the hover path was the only commit point for autotile-via-zone-selector). Algorithm swaps still work through the existing on-by-default routes:NextLayout/PreviousLayout,QuickLayout1–QuickLayout9, and the Layout Picker (Meta+Alt+Spaceby default). TheIOverlayService::autotileLayoutSelectedsignal and its daemon handler were removed as dead code.
Installation
Arch Linux (AUR):
yay -S plasmazones # or plasmazones-binArch Linux (manual):
sudo pacman -U plasmazones-3.0.15-*-x86_64.pkg.tar.zstKDE Neon / Debian-based:
sudo dpkg -i plasmazones_3.0.15-*_amd64.deb
sudo apt-get install -f # Install dependencies if neededFedora (COPR):
sudo dnf copr enable fuddlesworth/PlasmaZones
sudo dnf install plasmazonesFedora (manual RPM):
# Fedora 43
sudo dnf install plasmazones-3.0.15-*.fc43.x86_64.rpm
# Fedora 44
sudo dnf install plasmazones-3.0.15-*.fc44.x86_64.rpmopenSUSE Tumbleweed (manual RPM):
sudo zypper install plasmazones-3.0.15-*.x86_64.rpmopenSUSE Tumbleweed (OBS):
sudo zypper addrepo https://download.opensuse.org/repositories/home:fuddlesworth/openSUSE_Tumbleweed/home:fuddlesworth.repo
sudo zypper refresh
sudo zypper install plasmazonesUniversal Linux (AppDir):
For Fedora Atomic, Steam Deck, or non-root user installation:
tar xzf plasmazones-3.0.15-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