PlasmaZones v3.4.10
Added
-
Scrolling width and height presets now include three quarters and full size: the default list that Cycle Column Width Preset and Cycle Window Height Preset step through was one third, one half and two thirds. It now goes on to three quarters and the full work area, so a column can be walked up to the whole width, and a window up to the whole height of its column, without leaving the preset cycle. A list of your own under Settings → Scrolling → Columns is left alone, and a scrolling template that carries its own presets keeps them. The same list is what a column already sized from a preset snaps to, so such a column can settle on one of the new steps the next time the strip reflows. (#1050)
-
Animation shader packs now have a live preview: opening a pack from Animations → Shaders plays it on a looping stand-in subject matched to what the pack animates. Open and close packs play on a sample window over your wallpaper, desktop switch and peek packs sweep between two stand-in desktops, tab switch packs cross between two sample windows, window move packs replay a move, and scrolling strip packs decorate a scroll settling on a stand-in strip. Open and close packs cycle through all four of their legs, including minimizing towards the bottom of the preview and restoring from there, and the drag preview glides the sample window back and forth while running the same wobble spring simulation the compositor uses, so a wobbly window jiggles and settles in the preview the way it does on screen. The parameter editor drives the preview as you adjust values, and the pack runs through the same code a real transition uses. Minimize animations such as Genie now also play their full funnel on the service's own popups instead of a plain fade. To make this possible every bundled pack now compiles for both shader runtimes, and the mesh-warping move packs get a real tessellated grid there, so the preview shows their deformation rather than a flat cross-fade. This also puts the whole transition catalogue within reach of the daemon's own surfaces. (#1046, #1054)
Changed
-
Gaps can go up to 200 pixels: the inner and outer gap sliders under Settings → Appearance → Decorations → General stopped at 50, which on a large or high-resolution screen was too small a margin to be worth having. Every gap setting now accepts up to 200, including the per-side outer gaps, the per-screen tiling overrides and the per-layout overrides in the layout editor. On a small screen a gap near the top of that range leaves stacked windows very little room, so the widest settings are meant for large displays. (#1050)
-
Window borders can be wider and rounder: the corner radius under Settings → Appearance → Decorations → General stopped at 20 pixels and the border width at 10, which was not enough for the rounded look many themes use. The radius now goes to 50, the ceiling the zone overlay corners already had, and the width to 20. Window rules that set either value accept those same limits, and every bundled border decoration pack accepts the same maximum width. The layout editor's per-zone border width now shows the 10 pixel ceiling the zone overlay has always drawn with, rather than offering a wider value that was never used. (#1050)
-
Four window-move shader packs are now adjustable: Flow, Fold, Stretch and Ripple Snap had their motion character baked in as fixed values. Those values are now regular parameters with the same defaults, so the trailing lag, crease count, overshoot, wave shape and their companions can be tuned per pack the way the other movement packs always could. The animation shader categories were also tidied so each pack sorts into one shared set in the browser.
-
Shader browser cards no longer show previews: the overlay shader cards showed a bundled screenshot while the decoration cards rendered a live preview each, which made the two pages feel inconsistent and the decoration page heavy with one shader chain per visible card. The cards now show name, description and parameters only, and every browser previews packs the same way, live in the pack's detail view.
-
The window motion animation events are now Placed and Released, and there is no separate Maximized event: under Settings → Animations → Window Motion the two events that every placement mode uses were still called Snapped Into Zone and Snapped Out of Zone, names from when snapping was the only mode, so someone using only the scrolling or tiling modes had every column and tile placement governed by an event named for zones. They are now Placed and Released. The Maximized event is gone: a window maximizing is placed into the maximize area and a window restoring is released from it, so both use the same two events, and a tiling algorithm such as monocle that fills the screen by way of the maximize state animates as the placement it is. Your assignments carry over. A pack set on Snapped Into Zone or Snapped Out of Zone moves to Placed or Released, a pack set on Maximized moves to Placed unless Placed already had one, and window rules that named any of the three events are updated the same way. KDE's own Maximize desktop effect stays turned off while a pack is set on Placed or Released, which the built-in default is. Set both to None to have it back. (#1048, #1052)
Removed
- Bundled overlay shader preview images: every snapping overlay pack shipped a screenshot that existed only for the browser cards. With the cards no longer showing previews the images were dead weight in the package, so they are gone.
Fixed
- The mouse pointer no longer wobbles along with the scrolling strip: with a strip animation such as Jelly assigned, a software-rendered pointer was painted into the frame the animation warps, so it bent and smeared with the columns on every scroll. The pointer is now kept out of that frame and drawn sharp on top of the animation. (#1049)
- Letting go of the insert key mid-drag no longer resizes the window in your hand: with drag set to float the window, tapping the insert key while dragging and then releasing it without dropping made the window jump to its old tile size while you were still holding it. Cancelling the insert preview now leaves the dragged window alone until you drop it. (#1028)
- Focus no longer follows the mouse on desktops without a placement mode: switching from a tiled desktop to one with no mode assigned could leave focus-follows-mouse running there, so newly opened windows kept trading focus on hover. The switch could be announced to the compositor effect with a desktop it had already moved past, the announcement was rejected as stale, and no corrected one followed. One is now always sent after every desktop change, so the effect ends up with the right answer. (#1028)
- Focusing a column on another desktop's strip lands all of its neighbours: with three columns on a scrolling desktop, clicking the middle one from the taskbar while on another desktop could switch you there with the focused column left at its old place, its left neighbour sliding off the screen and the third never moving. The strip's new positions were sent to the compositor effect a moment before the desktop switch itself was announced, so the announce cancelled every placement still in flight, and the strip believed they had landed and never sent them again. Placements are now held until the pending announce has gone out and sent right after it, in the order they arrived. (#1047)
- Restarting the service no longer comes up with an empty scrolling strip: after a restart, every window was adopted onto the first virtual desktop before the service had learned which desktop you were on, so the strip on your real desktop was empty and the scroll shortcuts answered that there were no windows on it until you toggled the mode. The service now reads the current desktop before it takes on the window set. (#1053)
Installation
Arch Linux (AUR):
yay -S plasmazones # or plasmazones-binArch Linux (manual):
sudo pacman -U plasmazones-3.4.10-*-x86_64.pkg.tar.zstDebian 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 plasmazonesOn 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.4.10-*_amd64.deb
sudo apt-get install -f # Install dependencies if neededFedora (COPR):
sudo dnf copr enable fuddlesworth/PlasmaZones
sudo dnf install plasmazonesFedora (manual RPM):
# Fedora 44
sudo dnf install plasmazones-3.4.10-*.fc44.x86_64.rpmopenSUSE Tumbleweed (OBS):
sudo zypper addrepo https://download.opensuse.org/repositories/home:fuddlesworth/openSUSE_Tumbleweed/home:fuddlesworth.repo
sudo zypper refresh
sudo zypper install plasmazonesUniversal Linux (AppDir):
For Fedora Atomic, Steam Deck, or non-root user installation:
tar xzf plasmazones-3.4.10-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 (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.4.10.tar.gz"}/packaging/nix/package.nix"
{ version = "3.4.10"; })
];Post-Installation
systemctl --user enable --now plasmazones.service
systemsettings kcm_plasmazones