github fuddlesworth/PlasmaZones v3.5.5
PlasmaZones v3.5.5

6 hours ago

PlasmaZones v3.5.5

Added

  • Adjustable editor background: the layout editor's background no longer has to cover the desktop at a fixed 70%. A button in the editor's bottom bar opens a slider for it, and another slider under Settings → Editor → Appearance does the same. Either one sets how much of the desktop and its windows show through behind the zones, down to fully clear. (#1161)

Changed

  • Luau and valijson are fetched at build time: the source no longer carries copies of Luau and valijson. The first configure downloads both as archives pinned by version and SHA-256 in cmake/PhosphorDependencies.cmake, and an offline build passes -DPHOSPHOR_DEPS_ARCHIVES=<dir> naming a directory that holds them. Every packaging recipe in the repository already supplies them, and a build against the system Luau or valijson works as before. Luau moves from 0.737 to 0.745. (#1190)

Fixed

  • Editor settings changed in the Settings app reach an open editor: snapping, shortcuts and fill on drop changed on the Editor page while the layout editor was open did not reach it until it was restarted, and a later change made in the editor could write the old values back. The editor now picks them up once they are saved, and it only ever writes the settings changed in the editor itself. (#1161)
  • The Settings app no longer undoes a change made elsewhere: with unsaved changes open in the Settings app, a setting changed meanwhile by the layout editor was put back to its old value when the app saved. The app now takes in the outside change and keeps its own unsaved changes on top. (#1172)
  • A config file with a typo is no longer overwritten while PlasmaZones runs: if config.json was edited by hand and could not be read, the next save from a running PlasmaZones replaced it, which lost every setting in it. A running PlasmaZones now refuses to save over an unreadable file and keeps the settings it last read, and the Settings app says which file to repair. The layout editor and the Settings app no longer move a broken file aside when they start. The PlasmaZones service still does at its own start, renaming it to config.json.corrupt.bak, and that includes a start triggered by opening one of them. (#1172)
  • Equalize Column Widths works after you resize a column by hand: dragging a scrolling column wider pushes its neighbour part way off the screen, and Equalize Column Widths then did nothing, because it only shared the screen between columns that were wholly on it. It now counts every column that reaches onto the screen, clipped ones included, and brings the clipped ones fully into view. A press also lines the columns back up with the screen's edges when their widths already match but a small scroll or a centering setting left one cut off. A width shortcut on the focused column, such as Maximize Column or Increase Column Width, now keeps that column in view after an equalize or a scroll by hand instead of leaving it partly off screen. (#1195)
  • A tiled window you maximize stays maximized with borderless maximized windows on: with KWin's "Borderless maximized windows" setting on, maximizing a tiled window took its title bar off. PlasmaZones read that as a change in the window's minimum size and tiled it again, so the window dropped straight back to its tile. A maximize you ask for now holds. (#1182, #1192)
  • Placement conditions are listed under Placement: the rule editor's condition picker grouped Floating, Snapped, Tiled and Zone under a Tiling heading, even though Snapped and Zone belong to snapping, so the Zone condition was easy to miss. The heading now reads Placement. (#1194)
  • Tiling algorithm settings open on a value they can show: an algorithm's on/off or choice setting whose declared default was not a real true or false, or not one of its own choices, opened in Settings as a switch that read as on whatever it said, or as a list with nothing picked. Such a default now falls back to off, or to the first choice. (#1191)
  • A tiling algorithm with a reserved id no longer counts as loaded: a user algorithm that declared an id PlasmaZones keeps for itself, such as none, was refused but still counted toward the script limit, and deleting its file later announced a change to every open view. It is now skipped like any other refused script. (#1191)

Installation

Arch Linux (AUR):

yay -S plasmazones  # or plasmazones-bin

Arch Linux (manual):

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

Debian testing/unstable (apt repository):
Tracks KDE as it lands in Debian and rebuilds when KWin moves.

sudo curl -fsSL https://download.opensuse.org/repositories/home:fuddlesworth/Debian_Unstable/Release.key -o /etc/apt/keyrings/plasmazones.asc
echo 'deb [signed-by=/etc/apt/keyrings/plasmazones.asc] https://download.opensuse.org/repositories/home:/fuddlesworth/Debian_Unstable/ /' | sudo tee /etc/apt/sources.list.d/plasmazones.list
sudo apt update
sudo apt install plasmazones

On Debian testing, swap Debian_Unstable for Debian_Testing in both lines. Packages are built for x86_64 only.

Debian (manual .deb):
Built on Debian unstable. Prefer the apt repository above, which rebuilds when KWin moves.

sudo dpkg -i plasmazones_3.5.5-*_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 44
sudo dnf install plasmazones-3.5.5-*.fc44.x86_64.rpm
# Fedora 45
sudo dnf install plasmazones-3.5.5-*.fc45.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

Fedora Atomic (Kinoite):
Layer the COPR package. Replace 44 with your Fedora release.

sudo curl -fsSL -o /etc/yum.repos.d/plasmazones.repo https://copr.fedorainfracloud.org/coprs/fuddlesworth/PlasmaZones/repo/fedora-44/fuddlesworth-PlasmaZones-fedora-44.repo
rpm-ostree install plasmazones
systemctl reboot

Arch-based tarball (no root):
Built on Arch Linux, so it only runs where KWin is exactly the version Arch shipped at release time and Qt is the same or newer. It does not work on Fedora, Debian or SteamOS. The installer checks both versions and stops before copying anything if they do not match.

tar xzf plasmazones-3.5.5-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 (without flakes):
Build this tag's source against your host's pkgs (no release asset needed):

# configuration.nix
environment.systemPackages = [
  (pkgs.callPackage
    "${builtins.fetchTarball "https://github.com/fuddlesworth/PlasmaZones/archive/v3.5.5.tar.gz"}/packaging/nix/package.nix"
    { version = "3.5.5"; })
];

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.