External monitor/docking support (#87) #89
No reviewers
Labels
No labels
bug
duplicate
enhancement
future
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
albert/shepherd-launcher!89
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "u/albert/87/external-monitor-docking"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Mirror the primary panel onto a docked external display by default, with a
HUD toggle to switch to external-only at the display's native resolution.
Exactly one logical output is active in every mode, preserving the
one-activity-at-a-time invariant.
shepherdd, driven by a swaymsg output-event hotplug watcher. Primary is the
first-enumerated output; a new connection resets to Mirror.
external-only if wl-mirror is unavailable so the invariant still holds.
mode selection (highest mutually-compatible resolution), and PipeWire audio
routing to the external device while docked.
IPC), DisplayModeChanged event, and a HUD mirror/external toggle that
re-anchors the layer-shell surface to the active output.
the wl-mirror window, and wl-mirror runtime dependency.
Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com
Fixes #87
b2551f0085240f5f6526implementation looks reasonable and behaves correctly on the launcher when docking and undocking and while toggling mirror mode
now need to test with activities
had to debug a bunch of issues regarding pointer capture, interactions between activities that force fullscreen and XWayland DPI, and HUD disappearance, but it's working now -- see the history log