github fuddlesworth/PlasmaZones v2.8.0
PlasmaZones v2.8.0

latest releases: v3.0.3, v3.0.2, v3.0.1...
one month ago

PlasmaZones v2.8.0

Added

  • Support report generator ([#302]): plasmazones-report script 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.json restructured 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 AutoTileState to WindowTrackingAdaptor for cleaner separation between tiling logic and state serialization.
  • Settings consolidation: settings-window.conf merged into plasmazones-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]): loadState was bypassing IConfigBackend group 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: Fixed qsizetype vs %d printf mismatch.

Installation

Arch Linux (AUR):

yay -S plasmazones  # or plasmazones-bin

Arch Linux (manual):

sudo pacman -U plasmazones-2.8.0-1-x86_64.pkg.tar.zst

KDE Neon / Debian-based:

sudo dpkg -i plasmazones_2.8.0-1_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):

sudo dnf install plasmazones-2.8.0-1.fc43.x86_64.rpm

openSUSE Tumbleweed (manual RPM):

sudo zypper install plasmazones-2.8.0-1.x86_64.rpm

openSUSE Tumbleweed (OBS):

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

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