Install PlasmaZones

Packages for Arch, Fedora, openSUSE and Nix, a portable tarball, or a source build.

Every method below installs the same thing: a user daemon plus a KWin effect. Pick your distribution, then do the post-install step — the daemon does not start on its own.

Already installed and something is wrong? Go to troubleshooting.

Requirements

Before installing, check that your desktop meets these.

Building from source additionally needs:

Choose a method

The distribution packages are the least work and keep PlasmaZones updated alongside the rest of your system. The tarball suits immutable systems such as Fedora Atomic, or anywhere you would rather not install as root.

Arch Linux (AUR)

Prebuilt binary, or plasmazones for the source package. plasmazones-bin on the AUR →

yay -S plasmazones-bin

Fedora (COPR)

Official COPR repo. Official COPR repo →

sudo dnf copr enable fuddlesworth/PlasmaZones
sudo dnf install plasmazones

openSUSE Tumbleweed (OBS)

Community-maintained by ilFrance. OBS package page →

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

Nix

On NixOS, prefer the module — see below. This pins the package to the flake's nixpkgs, so a system KWin update can stop the effect plugin loading until you reinstall. Flake and NixOS module →

nix profile install github:fuddlesworth/PlasmaZones

Portable tarball

Lands in ~/.local. Best for Fedora Atomic or no-root environments. Latest release →

TAG=$(curl -fsSLI -o /dev/null -w '%{url_effective}' \
https://github.com/fuddlesworth/PlasmaZones/releases/latest | sed 's#.*/tag/##')
curl -fL -o plasmazones.tar.gz \
"https://github.com/fuddlesworth/PlasmaZones/releases/download/$TAG/plasmazones-${TAG#v}-linux-x86_64.tar.gz"
tar xzf plasmazones.tar.gz
cd plasmazones-linux-x86_64 && ./install.sh

Build from source

Add -DUSE_KDE_FRAMEWORKS=OFF for the portable build, which drops the settings KCM and KGlobalAccel shortcuts. Build instructions →

git clone https://github.com/fuddlesworth/PlasmaZones.git
cd PlasmaZones
cmake -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr
cmake --build build -j$(nproc)
sudo cmake --install build

NixOS module

On NixOS, prefer the module over nix profile. It builds against your system's KWin, so a KWin update cannot leave the effect plugin unable to load. Add the flake to your inputs:

plasmazones.url = "github:fuddlesworth/PlasmaZones";

Then import the module and enable it:

imports = [ inputs.plasmazones.nixosModules.default ];
programs.plasmazones.enable = true;

Rebuild, run the step below, then log out and back in.

After installing

Every method needs this. The daemon is a user service and is not started for you:

systemctl --user enable --now plasmazones.service
kbuildsycoca6 --noincremental # KDE only — refresh the service cache

Then check the effect is enabled under System Settings → Window Management → Desktop Effects → PlasmaZones. It is on by default, so this is usually just a confirmation. The entry is unavailable under QPainter compositing, because the effect needs KWin on OpenGL.

First run

Drag any window while holding Alt — zones appear, and dropping the window into one fills it. To try the other placement modes, open the settings app (plasmazones-settings, or System Settings → Apps → PlasmaZones on KDE) and assign Tiling or Scrolling to a screen, or press Meta+Shift+T to cycle the focused screen through them.