Skip to content

Improved multi-monitor support - #168

Open
cdmdotnet wants to merge 21 commits into
zquestz:masterfrom
cdmdotnet:master
Open

Improved multi-monitor support#168
cdmdotnet wants to merge 21 commits into
zquestz:masterfrom
cdmdotnet:master

Conversation

@cdmdotnet

Copy link
Copy Markdown

0.12.1:

  • Add window preview popup on hover for running application icons
  • Preview shows thumbnail cards (200×120) for each open window with title labels
  • Left-click a preview card to focus that window; middle-click to close it
  • Hovering a preview card outlines the corresponding live desktop window with a border
  • Preview Windows toggle added to Behaviour preferences (on by default)
  • Multi-monitor window indicator dots filtered per-monitor when Only Active Monitor is enabled
  • Only Active Monitor: when enabled, clicking an app icon with a single window on this monitor focuses it directly without smart-focus across all monitors
    0.12.2:
  • Add monitor-manager mode (plank --monitor-manager) to automatically run one dock per connected monitor without external scripts
  • Automatically start and stop per-monitor dock instances as displays are connected or disconnected, preventing duplicate docks when a monitor goes away
  • Lock monitor and "On Active Display" preferences for manager-owned docks so each child instance stays pinned to its assigned monitor
    0.12.4
  • Fix docks positioned on the inner edge of a monitor incorrectly reserving work area space from the screen edge, making adjacent monitors unusable for window snapping, maximising, and resizing

…Monitor" to toggle this new feature on and off
- Add window preview popup on hover for running application icons
- Preview shows thumbnail cards (200×120) for each open window with title labels
- Left-click a preview card to focus that window; middle-click to close it
- Hovering a preview card outlines the corresponding live desktop window with a border
- Preview Windows toggle added to Behaviour preferences (on by default)
- Multi-monitor window indicator dots filtered per-monitor when Only Active Monitor is enabled
- Only Active Monitor: when enabled, clicking an app icon with a single window on this monitor focuses it directly without smart-focus across all monitors
…ly run one dock per connected monitor without external scripts

- Automatically start and stop per-monitor dock instances as displays are connected or disconnected, preventing duplicate docks when a monitor goes away
- Lock monitor and "On Active Display" preferences for manager-owned docks so each child instance stays pinned to its assigned monitor
Update README.md to consistently use apt for Debian and derivates
…managed dock prefs (Monitor, ActiveDisplay) are now applied before PositionManager initialises, so the dock renders at the correct position from the first frame

- Fix DBus object path assertion failures for monitors with hyphens in their names (e.g. DP-2-8): illegal characters are sanitised to underscores before use in the path
- Fix position retry storm: raise retry ceiling from 3 to 10 with verbose logging, then warn once and stop fighting the WM rather than spamming CRITICAL on every configure event
- Fix On Primary Display and Active Display preference controls not being locked when running as a monitor manager child instance; all three monitor-related controls are now insensitive when managed
- Fix monitor manager not exiting when its only child dock is closed: remove unreliable loop.is_running() guard from the auto-quit check
…managed dock prefs (Monitor, ActiveDisplay) are now applied before PositionManager initialises, so the dock renders at the correct position from the first frame

- Fix DBus object path assertion failures for monitors with hyphens in their names (e.g. DP-2-8): illegal characters are sanitised to underscores before use in the path
- Fix position retry storm: raise retry ceiling from 3 to 10 with verbose logging, then warn once and stop fighting the WM rather than spamming CRITICAL on every configure event
- Fix On Primary Display and Active Display preference controls not being locked when running as a monitor manager child instance; all three monitor-related controls are now insensitive when managed
- Fix monitor manager not exiting when its only child dock is closed: remove unreliable loop.is_running() guard from the auto-quit check
- Fix docks positioned on the inner edge of a monitor incorrectly reserving work area space from the screen edge, making adjacent monitors unusable for window snapping, maximising, and resizing
- Dock settings and launchers now follow the physical monitor rather than the port name, so configurations survive dock or hub changes between sessions
…irtual screen edge

┌──────────────────────────────────┬─────────────────────┐  ─── y=0
│                                  │                     │
│           DP-2-1                 │       DP-2-2        │
│         3440×1440                │     2560×1440       │
│                                  │                     │
│                                  │                     │  ─── y=124
│                                  │                     ├──────────────────┐
│                                  │                     │      eDP-1       │
│                                  │                     │    1920×1080     │
│                                  │                     │                  │
│                                  │                     ├──────────────────┤  ─── y=1204
│                                  │                     │ dock:bottom ✗   │
├──────────────────────────────────┴─────────────────────┤──────────────────┘  ─── y=1204+48
│  dock:bottom ✓                   │   dock:bottom ✓    │
└────────────────────────────────────────────────────────┘  ─── y=1440
x=0                      x=3440                 x=6000   x=7920

✓ strut reserved    ✗ no strut (before fix) / ✓ strut reserved (after fix)

eDP-1 bottom (y=1204) does not reach screen bottom (y=1440)
but no other monitor shares its x-range (x=6000–7920), so strut is safe.
 * When exactly one app instance is on the current dock and that instance is the active/focused window, clicking its dock icon now minimises the window instead of re-focusing it when single-window-on-monitor is active
@zquestz

zquestz commented Jun 22, 2026

Copy link
Copy Markdown
Owner

Currently can't be merged due to conflicts. Plus this is actually several features rolled into one.

It would be very nice if this was split up, the hover previews are something many have asked for, and are on our todo list!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants