Skip to content

PlasmaZones v3.3.0

Latest

Choose a tag to compare

@github-actions github-actions released this 24 Jul 15:19
Immutable release. Only release title and notes can be modified.
9b99a30

PlasmaZones v3.3.0

Added

  • Settings profiles: save your whole configuration and rules as a named profile and switch between them. Before a profile is applied you see a diff of exactly what will change, and applying is staged so nothing is written until you confirm. Profiles inherit from one another, so a profile only records what it changes from its parent (#793).
  • Simple and advanced settings modes: the settings app now has a simple mode that flattens the sidebar into a single list and trims each page to the settings most people need, with an advanced toggle in the sidebar footer for the full set. New condensed Snapping, Tiling, and Animations pages carry the common controls, and switching modes keeps you on the same setting wherever it exists in both (#822).
  • The whole settings interface is translatable now: the QML strings that make up the settings UI were never being pulled into the translation catalog, so the interface fell back to English in every language however complete the translation looked. The full UI is now extracted and translated into German, Georgian, Swedish, Dutch, Polish, and Russian (#840).
  • Keyboard zone spanning: new Span Window shortcuts (Ctrl+Alt+Arrows) grow the focused window's snap into the adjacent zone in that direction, the keyboard counterpart of spanning zones with a drag. Pressing back toward the window shrinks it again, and growing into a column of stacked zones takes the whole column so the window stays rectangular (#93, #838).
  • Shortcut cheatsheet overlay: a new overlay that lists every PlasmaZones global shortcut with the keys you actually have bound, grouped by category. Open it with Meta+Alt+/ (rebindable in System Settings) and dismiss it with Escape, a backdrop click, or the shortcut again. The sheet is mode aware. Shortcuts that do nothing in the current tiling mode are hidden, and it updates live when you switch modes or rebind a key. Shortcuts you have unbound stay listed as unassigned so you can discover them (#810).

Changed

  • Per-event animation timing overrides only change the field you edit: turning on the override for an animation event used to immediately pin the inherited duration and curve as fixed overrides, so the event quietly stopped following the global defaults even though you had changed nothing. The override toggle now just opens the editor and writes nothing, and editing the duration or the curve overrides only that field. Each field shows whether it follows the inherited value or is overridden, with a link to revert it (#837).
  • Animation shader pickers now describe the shader you picked: choosing a shader for an animation event shows the pack's description, and the description and parameters fold into a collapsible section that opens with a click, the same way decoration packs behave (#834).
  • Picking an animation shader works like picking a decoration pack: the pack you chose now gets its own named row, with a remove button and its description and parameters behind the same collapsible chevron a decoration surface uses. The picker moved below that row as a "Set shader pack" action, so choosing a pack replaces what is there and choosing None clears it. A pack that is no longer installed now reads as missing instead of showing its internal id. The decoration pages read the same way (#839).

Fixed

  • Switching the tiling algorithm no longer changes your max windows: picking a different algorithm wrote that algorithm's default window count into the global Max windows setting, which then showed up as an unexpected change in your configuration. Each algorithm's window count is now kept with the algorithm (#820).
  • Windows keep their minimum size in overlapping and stacked layouts: in the deck, theater, and floating-center layouts a zone could be forced smaller than a window's minimum size. Those layouts now grow an undersized zone to fit. Overlapping layouts also stack in a defined order, so deck keeps the first window on top while cascade and the others bring new windows to the front, and rotating the window order in monocle brings the newly shown window to the top (#829).
  • Layout and shader cards fill the grid and stay readable at any size: at wide window sizes the last card in each row could wrap and leave an empty slot on the right, and small layout cards shrank their name and badges along with the preview until the text could not be read. The grid now uses the full width, and a layout card's preview scales while its labels keep their own size (#828).
  • The layout right-click menu works again: right-clicking a layout and choosing "Set as Default" or "Hide from Zone Selector" did nothing, because the menu never received the settings it needed to act on (#827).
  • Editing a layout no longer scrolls the page back to the top: hiding a layout, changing its auto-assign, or picking an aspect ratio while scrolled down threw the Layouts page back to the top. The page now holds its position while the cards rebuild. The Shaders pages keep their position across a group or sort change for the same reason (#827).
  • Layout cards no longer flicker when you change one: toggling a layout's visibility or auto-assign briefly redrew every card without its badges, and the one you just changed snapped back before it took. Each change now refreshes the list once, with everything in place (#827).
  • Overlay shaders with a depth buffer render cleanly: the Neon City and Voxel Terrain overlays asked the graphics driver to read and write the same depth texture in one drawing pass, which it refused (#827).
  • Zone overlay corners now round like window decorations: every overlay pack worked out its corners on its own, so they disagreed with the decoration packs and with each other. On a scaled display the corners came out too tight, because the radius was treated as if the display were unscaled. Setting the radius to 0 still left rounded corners, by a different amount in each pack. A radius larger than half a narrow zone collapsed that zone into a sliver instead of rounding it. All 27 overlays now share the geometry the decorations use, so the radius you set is the radius you get, at any display scale. Border widths follow the display scale for the same reason (#841).
  • Pulse Flow honours its Outer Glow Size setting: the overlay stopped drawing at the distance the default setting reaches, so raising the slider past its default widened nothing and left a hard edge where the glow was cut (#841).
  • Berry Drift's Drift Speed setting works: the slider had no effect on how fast the blobs move. The speed you set was calculated and then dropped before it reached the blobs, which always drifted at a fixed rate (#841).
  • Neon Venom no longer draws a ring around each zone: the bioluminescent rim fades out with distance, but the overlay stopped drawing while the fade was still half bright, which showed up as a hard ring. Turning up audio reactivity or cursor influence made it worse, because both widen the fade (#841).
  • A border width of zero now turns the border off: every overlay pack drew at least a one-pixel border no matter how low you set the width, so the bottom of the slider never reached "no border" (#841).
  • Zone colors apply in six more overlays: Berry Drift, Mosaic Pulse, Spectrum Bloom, Spectrum Pulse, Toxic Circuit, and Voxel Terrain ignored the fill or border color set for a zone, so changing it did nothing in those packs. They now tint with it the way the other overlays do (#841).
  • Chrome Protocol's Animation Speed and Ring Base Thickness sliders work: both were shown in settings and read by nothing, so the rings always turned and thickened at a fixed rate. The overlay is also much cheaper to draw, because it no longer raytraces the console for parts of the screen no zone covers (#841).
  • Magnetic Field respects its own settings again: inactive zones were meant to thin out their particle field and did not, and the Wave Speed slider was applied twice to the field lines, so they ran roughly nine times too fast at the top of the range and too slow at the bottom (#841).
  • Overlay glows keep their proportions on a scaled display: in 26 of the 27 packs a glow reach, an edge fade, or a travelling ring was measured in raw pixels while the border and corner beside it followed the display scale. On a HiDPI screen the parts drifted apart, and Berry Drift cut its glow off mid-gradient and left a ring (#841).
  • Settings that did nothing are gone: EndeavourOS Drift showed an Orbit Radius and a Connection Threshold slider, Chrome Protocol showed two sliders labelled "Reserved", and Berry Drift showed an Animation Speed slider that duplicated its Drift Speed. None of them were read by anything (#841).
  • Eight overlay descriptions match what they draw: Fedora Drift described neon tubes against a northern-lights sky when it draws frosted glass over data streams, NixOS Drift described nebula pulse borders when its border is a wave of lighting hexagons, EndeavourOS Drift described a constellation of orbiting dots when it draws wind currents behind parallax sails, Sonic Ripple said its rings start at the zone center when they start at the middle of the screen, Spectrum Bloom said the zone boundary itself morphs when the contour is only seen through the zone, Chrome Protocol said mids drive the ring rotation when they widen the camera orbit, CachyOS Drift said bass shatters the facets when it scatters them, and openSUSE Drift called its Geeko a constructive SDF when it is a single polygon (#841).
  • EndeavourOS Drift's sliders are named for what they do: five sliders and their group were still labelled for an orbiting-dot constellation the overlay does not draw. They now read as Wind Speed, Current Brightness, Sail Brightness, and Sail Center X and Y, with the three that describe the wind and the sail placement grouped under Wind (#841).

Installation

Arch Linux (AUR):

yay -S plasmazones  # or plasmazones-bin

Arch Linux (manual):

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

KDE Neon / Debian-based:

sudo dpkg -i plasmazones_3.3.0-*_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.3.0-*.fc44.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

Universal Linux (AppDir):
For Fedora Atomic, Steam Deck, or non-root user installation:

tar xzf plasmazones-3.3.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 (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.3.0.tar.gz"}/packaging/nix/package.nix"
    { version = "3.3.0"; })
];

Post-Installation

systemctl --user enable --now plasmazones.service
systemsettings kcm_plasmazones