Bug: Muffin aggressively overrides user-disabled display state upon DRM hotplug events (Monitor Input Polling)
Nobody has claimed this yet.
- Dominant language
- C
- Stars
- 245
- Forks
- 127
- PR merge metrics
- No merged PRs in 30d
Description
Distribution
Linux Mint 22.3 - Cinnamon 64-bit
Package version
Cinnamon 6.6.7
Graphics hardware in use
Acer Aspire A515-47 V1.04 0000000000000000 - Advanced Micro Devices, Inc. [AMD/ATI] Barcelo
Frequency
Always
Bug description
Muffin fails to persist a user-defined "disabled" state for external monitors. When an explicitly disabled monitor triggers a hardware hotplug event (such as during routine EDID polling/input scanning by the monitor), Muffin intercepts the event and automatically re-enables the display, overriding the user's configuration.
Steps to reproduce
Connect a multi-input monitor (e.g., HP Omen 27q) to the laptop.
Connect a second active device (e.g., an Xbox) to the monitor's second input.
Explicitly disable the external monitor on the Linux Mint machine:
On X11: Using xrandr --output HDMI-A-0 --off or via the Cinnamon Display GUI.
On Wayland: Via the Cinnamon Display GUI.
Or just Super+P
Wait for the monitor to perform an auto-input scan (which triggers a kernel DRM hotplug event / link-state change on the PC).
Expected behavior
Muffin should recognize that the specific hardware ID of the monitor was manually disabled by the user. It should ignore the subsequent hotplug/link-state events from that specific port and leave the display disabled.
Additional information
Actual Behavior:
The moment the monitor scans its inputs, the kernel registers a hotplug event. Muffin immediately reacts to this event by re-applying an active configuration (e.g., re-extending the desktop and reassigning primary status).
On X11, xrandr --verbose shows the mode being re-applied seconds after it was explicitly turned off.
This effectively makes it impossible to keep the monitor turned off via software without writing custom udev rules to intercept the hardware ping before Muffin can see it.
Additional Information:
This is not a hardware defect or a kernel bug; the AMD driver is correctly reporting the state change caused by the monitor's auto-detection feature.
The issue is a policy gap in Muffin: it prioritizes the immediate hardware connection state over the user's explicit layout configuration.
This occurs regardless of whether ~/.config/cinnamon-monitors.xml is locked (read-only) or deleted, indicating the override logic is hardcoded into Muffin's hotplug response.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by locating Muffin's handling of DRM hotplug or link-state events and the monitor-layout reapplication path. Reproduce with xrandr --output HDMI-A-0 --off or the Cinnamon Display GUI, then observe the behavior around cinnamon-monitors.xml. Done means an explicitly disabled monitor remains disabled after the monitor's input scan or related hotplug event.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c
- Domain
- desktop
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100