github fuddlesworth/PlasmaZones v3.0.15
PlasmaZones v3.0.15

19 hours ago

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 updateSelectorPosition path and the snap commits at drag-end via drop.cpp, never via a Qt hover event. But the slot's QML MouseAreas still fired zoneSelected on every pointer-enter, and once snap-assist became visible the shared shell surface flipped to input-grabbing (anyInputGrabbing = isVisible(snapAssistSlot) || isVisible(layoutPickerSlot) in syncPassiveShellSurfaceState) — those leaked hover events committed manualLayoutSelected, 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 (ZoneSelectorContent is now interactive: false and the daemon's manualLayoutSelected handler / signal are removed); cross-layout switching on drop still works because WindowDragAdaptor::dragStopped reads m_selectedLayoutId from 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.cpp resolves 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, QuickLayout1QuickLayout9, and the Layout Picker (Meta+Alt+Space by default). The IOverlayService::autotileLayoutSelected signal and its daemon handler were removed as dead code.

Installation

Arch Linux (AUR):

yay -S plasmazones  # or plasmazones-bin

Arch Linux (manual):

sudo pacman -U plasmazones-3.0.15-*-x86_64.pkg.tar.zst

KDE Neon / Debian-based:

sudo dpkg -i plasmazones_3.0.15-*_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):

# 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.rpm

openSUSE Tumbleweed (manual RPM):

sudo zypper install plasmazones-3.0.15-*.x86_64.rpm

openSUSE Tumbleweed (OBS):

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

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