Skip to content

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

Description

@droidleader

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions