Displays: login override include is written in list order, so a mirror can be emitted before its source #69

Closed
opened 2026-10-13 19:37:23 +08:00 by Breadway · 4 comments
Owner

How it was found: reading hyprland.rs persist_layout while implementing BSET-49 (PR #67). It writes one hl.monitor statement per output into bos-settings-display-overrides.lua in the order the monitors were handed in. The live apply path now sorts mirror sources first (plan_statements), but persist_layout still uses the input order.

Confidence: low to medium. The fixture order (eDP-1 first) happens to be safe, and whether Hyprland needs the source configured before a mirror at login is unverified (not tested live).

Fix: use display_guard::plan_statements in persist_layout so the saved file and the live apply use the same order.

**How it was found:** reading hyprland.rs persist_layout while implementing BSET-49 (PR #67). It writes one hl.monitor statement per output into bos-settings-display-overrides.lua in the order the monitors were handed in. The live apply path now sorts mirror sources first (plan_statements), but persist_layout still uses the input order. **Confidence:** low to medium. The fixture order (eDP-1 first) happens to be safe, and whether Hyprland needs the source configured before a mirror at login is unverified (not tested live). **Fix:** use display_guard::plan_statements in persist_layout so the saved file and the live apply use the same order.
Author
Owner

PR: #83

PR: https://git.breadway.dev/Breadway/bos-settings/pulls/83
Author
Owner

Review PASS at head d35f130370. Details: #83 . All criteria verified, fmt/clippy/test (180) and frontend check/test/build green, CI check success (run 167).

Review PASS at head d35f1303709f5d35fd3d138b26844eca9249461b. Details: https://git.breadway.dev/Breadway/bos-settings/pulls/83 . All criteria verified, fmt/clippy/test (180) and frontend check/test/build green, CI check success (run 167).
Author
Owner

PR #83 merged at a80bdf3660. Breadboard sync auto-moved this card to done on merge; restored to review until the integrated behavior is verified on main.

PR #83 merged at a80bdf36603247b3b207531d5c1e38d3737e9d3a. Breadboard sync auto-moved this card to done on merge; restored to review until the integrated behavior is verified on main.
Author
Owner

Verified on merge a80bdf3 (PR #83): svelte-check 0/0, npm test, build, fmt, clippy -D warnings, cargo test 183 passed incl. login_include_puts_mirror_sources_first (fails on old order). Whether Hyprland needs the source first at login remains unverified, as noted in the issue; the saved file now matches the live-apply order.

Verified on merge a80bdf3 (PR #83): svelte-check 0/0, npm test, build, fmt, clippy -D warnings, cargo test 183 passed incl. login_include_puts_mirror_sources_first (fails on old order). Whether Hyprland needs the source first at login remains unverified, as noted in the issue; the saved file now matches the live-apply order.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Breadway/bos-settings#69
No description provided.