Skip to main content

Module display_arrangement

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/y are stored in), so the rules are testable without a canvas.

Structs§

ArrangedDisplay
One display as the canvas draws it.
ArrangementGesture
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).
DisplayArrangement
SharedDisplayState
State of one certified output in the person’s shared layout. Availability and inclusion are independent: an offline display keeps its place.