domferr / domferr/tilingshell

Bug Report: Per-monitor layout profile not correctly restored after toggling a monitor on/off

Open
#573 0 comments 0 reactions 0 assignees View on GitHub
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

Image
Image
Image
Image

## 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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.