PlasmaZones v2.8.0
Added
- Support report generator ([#302]):
plasmazones-reportscript collects daemon logs, config, and data directory into a tar.gz archive for bug reports and discussions. - Autotile window preservation ([#301]): Autotiled windows now survive layout switches, mode toggles, and daemon restarts — matching the preservation behavior that snapped windows already had.
- Disabled-context OSD ([#297]): Visual feedback when toggling PlasmaZones on a disabled desktop, activity, or screen — shows why nothing happened and where to change it.
- Config v2 nested schema ([#295]):
config.jsonrestructured from flat keys to a nested hierarchy mirroring the settings UI. Existing v1 configs are migrated automatically. - Systemd service autostart: Enabling the daemon toggle now also enables the systemd user service so PlasmaZones starts on login.
Changed
- Assignments split to
assignments.json([#300]): Layout-to-screen assignments moved out of the main config into a dedicated file, reducing config churn and merge conflicts. - Session state split to
session.json([#298]): Ephemeral session data (window positions, floating state) moved to its own file so it doesn't dirty the user config. - Autotile persistence refactor ([#296]): Session persistence moved from
AutoTileStatetoWindowTrackingAdaptorfor cleaner separation between tiling logic and state serialization. - Settings consolidation:
settings-window.confmerged intoplasmazones-settings.conf.
Fixed
- Assignment persistence across restart ([#303]): Layout assignments and tiling window order now survive daemon restarts and mode-cycle toggling.
- Autotile ratio retry ([#299]): Bounded retry for transient geometry failures during autotile layout; stale min-size overrides are cleared after resize settles.
- Config purge unknown keys ([#300]): Unknown root-level groups are removed on save, preventing config pollution from obsolete or misspelled keys.
- Window restore after config v2 migration ([#295]):
loadStatewas bypassingIConfigBackendgroup API after the schema change, breaking window restore on first launch. - Watcher double-delete guard ([#302]): Fixed a use-after-free race in the file watcher teardown path.
- Format warning in
splitDotPath: Fixedqsizetypevs%dprintf mismatch.
Installation
Arch Linux (AUR):
yay -S plasmazones # or plasmazones-binArch Linux (manual):
sudo pacman -U plasmazones-2.8.0-1-x86_64.pkg.tar.zstKDE Neon / Debian-based:
sudo dpkg -i plasmazones_2.8.0-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.8.0-1.fc43.x86_64.rpmopenSUSE Tumbleweed (manual RPM):
sudo zypper install plasmazones-2.8.0-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.8.0-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