linuxmint / linuxmint/muffin

Bug: Muffin aggressively overrides user-disabled display state upon DRM hotplug events (Monitor Input Polling)

Open
#819 0 comments 0 reactions 0 assignees View on GitHub

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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.