Module display_arrangement
Expand description
Logical screen topology canvas shared by local and native peer displays. Drag-to-arrange canvas for the Displays pane.
Each attached, enabled display is drawn at its size on the shared desktop (mode, rotation and
scale), numbered the way the compositor numbers it when asked to identify screens. Pressing,
tapping, an arrow key or a screen reader’s activation of a tile chooses the display; dragging
one moves it 1:1 under the pointer by transform alone, nothing laid out or stored while it
moves, and the canvas holds its frame so only the held tile moves. Within a few pixels its
edges snap onto another display’s edges and its centre onto another’s, with an alignment
guide for each line (placement::snap_with_guides). On release it settles where it touches
another display and covers none (placement::settle) with the paged-strip spring
(motion::Snap), carrying the hand’s velocity, and the drop is sent once as the output’s
exported move action, so a drag is what an agent or script can do. Ctrl with an arrow key
moves the chosen display the same way (placement::step). At rest the canvas asks for no
frames.
Modules§
- placement
- Pure geometry for arranging displays by dragging: edge snapping, overlap
resolution and keeping the desktop one connected area. Everything is in
desktop coordinates (the units
OutputConfig::x/yare stored in), so the rules are testable without a canvas.
Structs§
- Arranged
Display - One display as the canvas draws it.
- Arrangement
Gesture - What the canvas is doing with the hand: a drag in progress, a dropped display settling into place, and the part of the desktop the canvas frames while either happens. Owned by the pane, not the widget, so it survives the composition being rebuilt between frames (a selection or a drop recomposes the pane).
- Display
Arrangement - Shared
Display State - State of one certified output in the person’s shared layout. Availability and inclusion are independent: an offline display keeps its place.