Atlas survey

Multi-monitor, window management and the desktop shell: replacing DisplayFusion, Fences, FancyZones and X-Rite on Linux

KDE Plasma 6.7 is the only Linux desktop that replaces most of DisplayFusion and FancyZones natively; Fences has no real equivalent and the X-Rite workflow becomes ArgyllCMS/DisplayCAL plus a per-screen ICC profile.

52 sources ~11 min read #13 linux · kde-plasma · gnome · wayland · multi-monitor · window-management · colour-management · nvidia

Decision — pick KDE Plasma 6.7 on Wayland. It is the only desktop that natively covers per-monitor panels, per-screen wallpaper, arbitrary fractional scaling, per-screen ICC profiles (now usable together with HDR) and — new in 6.7, after 21 years of requests — per-screen virtual desktops [1][2]. FancyZones comes back as PlasmaZones ⭐ 296 (Jul 2026) [3]. What it costs: Stardock Fences has no equivalent — that workflow disappears [8]; DisplayFusion’s monitor-splitting and one-click window-position profiles degrade to scripts; and X-Rite Color Assistant is replaced by copying your factory .icm files across and calibrating with ArgyllCMS/DisplayCAL, with the caveat that Plasma Wayland does not load VCGT curves [34]. Choose Wayland, not X11: Plasma 6.7 is the last release with an X11 session [4] and 6.8 (Oct 2026) drops it [5], with 95% of Plasma 6.6 users already on Wayland [6].

The DE choice is the whole decision

Your four tools are not applications you swap one-for-one — they are shell extensions. On Linux the shell is the desktop environment, so the DE you pick decides which of them can be replaced at all.

Capability (from DisplayFusion / Fences / FancyZones / X-Rite) KDE Plasma 6.7 GNOME 50 + extensions Tiling WM (Hyprland / niri / sway)
Taskbar on every monitor ✓ native panels per screen; panel cloning since 6.3 [40] Dash to Panel ⭐ 4.4k [15] ⚠ per-output bar (Waybar); not a Windows-style window list
Taskbar shows only that screen’s windows ⚠ setting exists; breaks after suspend on NVIDIA, needs a plasmashell restart [14] ⚠ Dash to Panel “isolate monitors” [15] ✓ n/a by design — outputs own their workspaces [49]
Different wallpaper per monitor ✓ native, per-screen [16] ✗ still unsupported in 2026 [17] ✓ hyprpaper, per-monitor [19]
One image spanning all monitors ✗ open request [16] ✗ manual image compositing [17] Superpaper ⭐ 1.3k, X11-era DE list [18]
FancyZones-style zone layouts ⚠ built-in tiling editor, but only one layout can be kept [11] → ✓ with PlasmaZones (26 layouts, per-monitor/per-desktop) [3] Tiling Shell ⭐ 2.0k, layout editor + snap assistant, GNOME 42–50 [12][13] ✓ inherent, but a different model (no free-floating zones)
Save / restore window arrangement RememberWindowPositions ⭐ 246 KWin script [27]; KWin now speaks the Wayland session-management protocol [25] ⚠ third-party extension only ✓ declarative window→workspace rules in config
Restore layout after dock/undock ⚠ see below — historically KWin’s weak spot [28] ⚠ extension-dependent ⚠ kanshi restores outputs, not windows [29]
Monitor-configuration profiles, auto-applied on hotplug ✓ kscreen stores per-arrangement JSON; kscreen-doctor for scripting [30] ⚠ mutter remembers layouts, no named profiles kanshi ⭐ 718, profiles on hotplug [29][50]
Monitor splitting into virtual monitors ✗ — no compositor exposes this; zone layouts are the nearest substitute [3]
Desktop icon groups (Fences) ⚠ multiple Folder View widgets, each a filtered folder [20] ⚠ DING “stacks” — groups by file type only [21] ✗ no desktop layer at all
Rule-based auto-sorting of desktop icons
Per-monitor fractional scaling ✓ arbitrary values (137%, 163%) [39] ⚠ 25% steps; fractional needs a gsettings experimental flag [39][38] ✓ per-output scale in config; niri keeps its own UI pixel-perfect [49]
Sharp XWayland apps under mixed DPI ⚠ rendered at one scale then rescaled [39] ⚠ same [39] force_zero_scaling workaround [39]
Per-screen ICC profile ✓ since 2023 in KWin Wayland [35] ✓ Settings → Color; wp_color_management v2 in GNOME 50 [38] ⚠ Hyprland yes, niri does not document it [49]
ICC profile and HDR at the same time ✓ new in 6.7 [1][36] ⚠ HDR + colour-management v2 present, this combination not claimed [38] ⚠ compositor-dependent
Independent virtual desktops per screen ✓ new in 6.7 [1][2] ✗ only “span all displays” or “primary only” [51][52] ✓ native
Resolution / refresh / HDR / VRR per monitor from the DE GUI ✓ System Settings → Display ✓ Settings → Displays ⚠ config file + kscreen-doctor/wlr-randr equivalents

Read the table this way: KDE gives you roughly 80% of DisplayFusion plus something Windows itself cannot do (per-screen virtual desktops). GNOME needs three extensions to get to a per-monitor taskbar and zone snapping, and still cannot put a different wallpaper on each screen. A tiling WM makes FancyZones irrelevant but deletes the Fences workflow and the taskbar concept entirely.

App-by-app

Windows app (installed) Linux replacement Parity verdict Migration notes
DisplayFusion 12.1.1 [7] Plasma panels + kscreen/kscreen-doctor + PlasmaZones ⭐ 296 [3] + RememberWindowPositions ⭐ 246 [27] ⚠ ~80%, assembled from four pieces Taskbars, per-monitor wallpaper, hotkeys and monitor profiles all land. Lost: monitor splitting, TitleBar buttons, and Triggers (window-created / desktop-unlock event scripting) [7]
Stardock Fences 6 [8][9] Plasma Folder View widgets [20] / GNOME DING stacks [21] ✗ no equivalent See below — plan to change the workflow, not port it
PowerToys FancyZones (0.97.1) PlasmaZones ⭐ 296 (Wayland-only) [3] or Tiling Shell ⭐ 2.0k on GNOME [12] ✓ full, arguably better KDE’s built-in editor alone is not enough: it cannot store multiple layouts [11]. PlasmaZones adds per-monitor and per-virtual-desktop layouts, requires Plasma 6.4+ on Wayland [3]
X-Rite Color Assistant 2.57 [10] Copy the factory .icm files → assign per screen in System Settings; recalibrate with ArgyllCMS + DisplayCAL / displaycal-py3 ⭐ 1.6k [31][32] ⚠ profile loading yes, VCGT no Color Assistant only restores factory sRGB/Rec.709/HDR profiles [10] — nothing to port, just the files
NVIDIA Control Panel / NVIDIA App (display side) System Settings → Display (resolution, refresh, HDR, VRR, per-monitor scaling) ✓ for display config nvidia-settings is largely inert under Wayland; the DE owns display config. VRR is auto-enabled for fullscreen apps by KWin [48]
Windows virtual desktops Plasma virtual desktops, now switchable per screen [1] ✓ better than Windows 21-year-old feature request, shipped 16 Jun 2026 [2]

Per-monitor taskbars and restore-on-dock: what actually exists

Taskbars: solved, natively. Plasma places a panel on any screen and 6.3 added panel cloning so the second and third monitor get an identical bar without re-configuring [40]. The “show only tasks from current screen” filter exists, but there is a live NVIDIA-specific bug where the setting stops being honoured after resume from suspend, fixed by systemctl restart --user plasma-plasmashell.service [14]. Given your GPU, expect to hit that.

Restore-on-dock/undock: the honest answer is “partially, and only just”. Two things are converging:

  1. Compositor-side. KWin has been sanitising window geometry on output removal for a decade; the canonical “windows do not survive an unplug” bug is closed as a duplicate of a fixed one [28], but forum traffic shows the class of problem persisted.
  2. Protocol-side, and this is the real fix. xdg-session-management was merged after six years and shipped in wayland-protocols 1.48 on 1 Apr 2026 [26]. KWin implements it as of Plasma 6.7 [25]. KDE is explicit that this is foundational: the remaining gate is “toolkits, libraries, and apps to implement support” [25].

In practice for 2026: install RememberWindowPositions ⭐ 246, which restores position, size, screen and virtual desktop per application, tested on Wayland and X11 on Plasma 6+ [27]. Its caveats matter — caption matching at an 85% threshold misfires on titles containing counters, and its Session Restore interaction is unofficial and has caused crash loops [27]. For the monitor half of docking, kscreen already keys configuration to the connected-output set; if you end up outside KDE, kanshi ⭐ 718 is the standard hotplug profile switcher and can blank the laptop panel when docked [29][50].

Fences: no equivalent. Plan to lose it.

Fences 6 does four distinct things: shaded moveable icon groups, automation rules that sort new files into groups, roll-up mini-windows, and Peek (Win+Space to float the fences above all windows), plus Folder Portals that mirror an arbitrary folder onto the desktop [8].

  • KDE: Folder View widgets are a genuine Folder Portals equivalent — you can place as many as you like on the desktop, each pointing at a different folder and filtered by regex or file type [20]. They are not fences: there are no automation rules, no roll-up, no Peek, and users report you cannot even hand-order icons inside a Folder View [24].
  • GNOME: Desktop Icons NG has supported “stacking” — grouping files of the same type — since v34 [21][22], and completed its GTK4 port in v51.0.0 in July 2026 [23]. Grouping by type is not grouping by intent.
  • Tiling WMs: there is no desktop layer, so the question does not arise.

The realistic migration is to stop using the desktop as a filing system: filtered Folder View widgets for the two or three folders you actually touch, and a launcher for everything else.

Colour management and the X-Rite workflow

Your Legion’s Color Assistant is a profile loader, not a calibrator — it restores Lenovo’s factory sRGB / Rec.709 / HDR ICC profiles on panels sold as 100% sRGB or DCI-P3 [10]. So the migration is: copy the .icm files off the Windows install before you wipe it, drop them in /usr/share/color/icc, and assign them per display.

Hardware calibration is fine. ArgyllCMS is the engine and DisplayCAL the GUI; it supports essentially every colorimeter including the X-Rite/Calibrite i1 Display line, with vendor correction imports for i1 Display Pro and ColorMunki Display [31]. Use the maintained Python 3 fork, displaycal-py3 ⭐ 1.6k, which targets Python 3.9+ [32]. A 2026 walkthrough of the whole loop (calibrate → profile → /usr/share/color/icc → per-app colour management in digiKam/RawTherapee) is worth following, and it flags the trap: applying an ICC profile only inside a colour-managed app is insufficient because that app will not set the VCGT tables [33].

The sharp edge is VCGT on Wayland. KDE Plasma on Wayland does not expose an API to set the video-card gamma table, so calibration curves are not loaded into the GPU LUT; the correction has to live in the profile and be applied by the colour-management system instead [34]. For a factory-profile-loading workflow like yours that is acceptable; for hardware-calibrated grey tracking it is a real regression versus Windows.

The protocol picture is finally good. color-management-v1 was merged upstream in Feb 2025 after five years and 800+ review comments, covering ICC profiles and HDR for both colour-aware and unaware clients [37]. KWin has assigned ICC profiles per screen since 2023 [35], and Plasma 6.7 removed the last big compromise: “No longer do you have to choose between color management using an ICC profile or enjoying HDR content; now both are possible at the same time!” [1][36]. GNOME 50 (18 Mar 2026) shipped wp_color_management v2 plus HDR screen sharing [38].

Fractional/mixed DPI and NVIDIA on a Legion

Scaling. Every major compositor now does per-monitor fractional scaling. KDE’s advantage over GNOME is granularity: arbitrary percentages versus GNOME’s 25% steps behind an experimental gsettings flag [39][38]. Plasma 6.3 reworked fractional scaling to align to the pixel grid, reducing blur and gaps [40]. Mixed laptop-panel-plus-external is the standard case and works — the residual problem is XWayland, which renders at a single scale and gets rescaled for the other display, so expect soft text in older Electron apps, Qt5 tools and pre-2026.1 JetBrains IDEs, plus roughly 5–10% more GPU load than integer scaling [39].

NVIDIA, 2026. The 595 branch (595.58.03, Mar 2026) enables nvidia-drm.ko modeset=1 by default and adds DRI3 1.2 / DMA fences [42]; it also raises the minimum Wayland version to 1.20 [43]. A May 2026 field report on 595.71.05 + Plasma 6.6 concludes explicit sync in Wayland and KWin has “remov[ed] a category of glitches that affected NVIDIA on Wayland specifically”, and that multi-monitor with mixed refresh rates “works without thinking about it” — with VRR sometimes needing manual kscreen-doctor configuration [41]. The open kernel modules are now the default, and mandatory on Blackwell [41].

The Legion-specific risk is hybrid graphics with dGPU-wired outputs. On many Legion models the internal panel is driven by both GPUs but every external output — HDMI and USB-C — is wired to the NVIDIA GPU only, and hybrid mode has produced blank external displays [46]. A long-standing report has GNOME/mutter failing to initialise the dGPU and falling back to CPU rendering specifically when a secondary screen is attached to it, while single-display hybrid works fine [44]; NVIDIA’s own forums carry the same complaint for KDE, GNOME and Cinnamon [45], and Legion “Hybrid (iGPU only)” BIOS modes cause their own problems [47]. ⚠ Before committing, boot a live Plasma 6.7 image with the external monitor plugged in and test all three BIOS graphics modes — this is the one item on this list that can be a hard blocker rather than an inconvenience.

What you cannot get back

  • Fences’ automation rules, roll-up and Peek [8].
  • DisplayFusion’s monitor splitting, TitleBar buttons and Triggers [7].
  • Hardware VCGT loading on Plasma Wayland [34].
  • Guaranteed window-position restore across dock/undock — the protocol exists, app adoption does not yet [25][26].

Citations · 52 sources

Click the Citations tab to load…