Bug Report: Per-monitor layout profile not correctly restored after toggling a monitor on/off
- Dominant language
- TypeScript
- Stars
- 2k
- Forks
- 116
- PR merge metrics
- No merged PRs in 30d
Description
# Bug Report: Per-monitor layout profile not correctly restored after toggling a monitor on/off
## Summary
When a monitor is toggled off and back on via GNOME Display Settings, Tiling Shell does not correctly re-associate the saved per-monitor layout to the right monitor. The layout assignments appear to shift or become mismatched after the display configuration changes.
## Environment
- **OS:** Fedora 44 (Wayland)
- **GNOME Shell version:** (please confirm with `gnome-shell --version`)
- **Tiling Shell version:** v17.3 (latest)
- **Multi-monitor setup:** Yes — 3 monitors
- Monitor 1 (Primary): Wacom Tech 24" — 3840×2160
- Monitor 2: Dell Inc. 25" — 2560×1440
- Monitor 3: ASUSTek COMPUTER INC 27" — 2560×1440
- **Session type:** Wayland
- **GPU:** NVIDIA RTX 4070 Ti 16GB
- **Per-workspace layout:** Enabled
## Steps to Reproduce
1. With all 3 monitors active, configure distinct per-monitor layouts in Tiling Shell (e.g. Monitor 1 = 3-column layout, Monitor 2 = a different layout, Monitor 3 = another layout)
2. Open GNOME Settings → Displays
3. Toggle one monitor off (disable it)
4. Toggle the same monitor back on
5. Observe the layout assignments across all monitors
## Expected Behaviour
Each monitor should re-receive its previously saved layout profile after being toggled back on. The layout-to-monitor association should be stable across display configuration changes.
## Actual Behaviour
After the monitor is toggled off and on, the layout assignments are not correctly restored. The layouts appear to shift between monitors — for example, the layout previously assigned to Monitor 1 may now appear on Monitor 3, and vice versa. The monitor order in the Tiling Shell panel popup changes (from 1→2→3 to 3→1→2 in testing), suggesting that monitor identity or index is being recalculated incorrectly after the configuration change.
## Screenshots
See attached sequence of screenshots showing:
- Initial layout picker state with correct per-monitor layout assignments (09:14:46, 09:15:31)
- After toggling a monitor: layout picker showing incorrect/shifted layout assignments (09:15:51, 09:16:10)
- The "Apply Changes?" prompt visible during the display toggle (09:15:51)
- The resulting incorrect monitor ordering in the layout picker (09:16:10)
## Additional Notes
- This is reproducible consistently by toggling any monitor in the set
- The bug does not require a logout/login — it occurs within the same session immediately after applying display changes
- Possible root cause: Tiling Shell may be identifying monitors by index (position in the monitor list) rather than by a stable hardware identifier (connector name, EDID, or serial). When GNOME recalculates the monitor list after a display topology change, the indices shift, causing layout assignments to be applied to the wrong monitor
- A suggested fix approach: persist layout assignments keyed to monitor connector name or EDID identifier rather than monitor index
Contributor guide
Assessment
This issue has not been assessed yet.