github fuddlesworth/PlasmaZones v2.0.0
PlasmaZones v2.0.0

latest releases: v3.0.15, phosphor-foundations-0.1, v3.0.14...
3 months ago

PlasmaZones v2.0.0

Added

Autotiling Engine

  • Pluggable algorithm architecture with 10 tiling layouts: Master+Stack, Centered Master, BSP, Dwindle, Spiral, Columns, Rows, Grid, Wide, Three-Column, and Monocle
  • Per-screen algorithm selection with independent settings per monitor
  • Separate centered-master settings: Split ratio and master count are independent from master+stack (defaults: 0.5 vs 0.6)
  • Per-screen maxWindows cap to limit tiled window count per monitor
  • Per-side outer gaps (top/bottom/left/right) for independent screen edge spacing
  • Overflow window management: Auto-float excess windows when maxWindows is reached, auto-recover when room opens
  • Hide title bars on tiled windows with configurable active-window border rendering (color, width)
  • Deterministic zone-ordered window transitions when switching between snapping and autotiling modes
  • Float/unfloat toggle with geometry preservation and cross-screen fallback
  • Smart gaps, insert position config, focus-follows-mouse, focus-new-windows
  • Minimum window size respect with algorithm-level constraint solving
  • D-Bus interface (org.plasmazones.Autotile) for runtime control
  • Read-only preview mode for autotile layouts in the editor
  • Pre-autotile geometry persistence across session restarts for accurate float restore

Animation System

  • Translate-only slide animations that avoid Wayland buffer desync (no scale transforms)
  • Staggered cascading window animations with configurable overlap
  • Cubic bezier easing curve editor in KCM with live preview
  • Elastic and bounce easing curve types with customizable parameters (amplitude, period, overshoot)

KCM Improvements

  • Dual-view layout picker with separate Snapping/Tiling modes and default autotile algorithm selection
  • Dual-mode per-screen assignments (snapping layouts + autotile algorithms per monitor)
  • Snapping enable/disable toggle
  • Auto-select default layout in Layout tab
  • Live algorithm preview widget
  • Per-monitor snapping gap/padding overrides

Changed

  • Renamed Zones tab to Snapping in KCM for clarity alongside the new Tiling tab
  • BSP algorithm made deterministic: Removed persistent tree state that caused non-reproducible layouts
  • Major codebase refactoring: Split 20+ oversized files (>500 lines) into DRY translation units organized in subdirectories
    • Extracted OverflowManager, PerScreenConfigResolver, NavigationController, SettingsBridge from AutotileEngine
    • Extracted AssignmentManager, DaemonController, LayoutManager from monolithic KCM
    • Extracted AutotileHandler, ScreenChangeHandler, SnapAssistHandler from KWin effect
    • Split Settings, OverlayService, WindowTrackingService, D-Bus adaptors, and editor into subdirectories
  • Comprehensive unit tests for all algorithms, engine, tiling state, overflow manager, geometry utils, and algorithm registry (11 test suites)

Installation

Arch Linux (AUR):

yay -S plasmazones  # or plasmazones-bin

Arch Linux (manual):

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

KDE Neon / Debian-based:

sudo dpkg -i plasmazones_2.0.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.0.0-1.fc43.x86_64.rpm

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

tar xzf plasmazones-2.0.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.