phillipberndt / autorandr

Auto-detect the connected display hardware and load the appropriate X11 setup using xrandr
2.48k stars 122 forks source link

Profile detected but not changed to upon lid state change #185

Open ghost opened 4 years ago

ghost commented 4 years ago

Opening or closing the lid updates detected profiles but does not trigger profile change. Lid closed:

╰─ autorandr --debug ─╯
docked_closed (detected) (current)
| Differences between the two profiles:
\-
dp1_closed
dp1
docked_dp2
docked_dp1_dp2
mobile-VGA
mobile

Lid open:

╰─ autorandr --debug ─╯
docked_closed (current)
dp1_closed
dp1
docked_dp2 (detected)
| Differences between the two profiles:
| [Output DP2] Option --crtc (= `0') is `1' in the new configuration
| [Output DP2] Option --primary is not present in the new configuration
| [Output LVDS1] The output is disabled currently, but active in the new configuration
\-
docked_dp1_dp2
mobile-VGA
mobile

Have I misunderstood the changes in 1.9 and this is expected behavior, or is something funky going on?

phillipberndt commented 4 years ago

Hey, thanks for reporting this and sorry for the late reply. To apply the profile you'll need the -c option. Did you skip that on purpose above, or is that what went wrong?

faris commented 4 years ago

I have the same issue.

I am expecting the default behaviour to auto switch profiles when the lid is closed or not, but that does not seem to happen. Maybe somebody can shed some inisight into that?

Logs:

When I have it in docked mode (closed lid) and lift the screen I get this

docked (current)
both (detected)
| Differences between the two profiles:
| [Output eDP1] The output is disabled currently, but active in the new configuration
\-
mobile

When I have it in both mode and bring the lid down I get

docked (detected)
| Differences between the two profiles:
| Output `eDP1' is missing from the new configuration
\-
both
mobile

While autorandr -c fixes this is there any way to automate this using autorandr or add a feature for this to happen?

Thanks for the great software and any answers are appreciated!

albasili commented 3 years ago

I also have what looks like the same problem:

○ → autorandr --force --load work --debug
Loading profile 'work'
| Differences between the two profiles:
| [Output eDP1] Option --crtc (= `0') is not present in the new configuration
| [Output DP2-1] Option --crtc (= `1') is not present in the new configuration
| [Output DP2-1] Option --pos (= `1992x240') is `1920x0' in the new configuration
| [Output DP2-2] Option --crtc (= `2') is not present in the new configuration
| [Output DP2-2] Option --pos (= `4408x480') is `3840x0' in the new configuration
\-
Going to run:
xrandr --fb 5760x1200 --output eDP1 --gamma 1.0:1.0:1.0 --mode 1920x1080 --pos 0x0 --primary --rate 60.01 --reflect normal --rotate normal --output DP2-1 --gamma 1.0:1.0:1.0 --mode 1920x1200 --pos 1920x0 --rate 59.95 --reflect normal
--rotate normal
xrandr --fb 5760x1200 --output DP2-2 --gamma 1.0:1.0:1.0 --mode 1920x1200 --pos 3840x0 --rate 59.95 --reflect normal --rotate normal                                                                                                     
The configuration change did not go as expected:
| Differences between the two profiles:
| [Output eDP1] Option --crtc (= `0') is not present in the new configuration
| [Output DP2-1] Option --crtc (= `1') is not present in the new configuration
| [Output DP2-2] Option --crtc (= `2') is not present in the new configuration
\-

I'm running version 1.10.1 on debian buster

Any recommendations?

SippieCup commented 3 years ago

I too have this when i close my lid, then reopen it at a later time.

Whats odd is going from triple -> dual works fine the first, time. Its only after opening the lid again where it stops auto-switching.

Here is a typical workflow to reproduce: [1] Solo (at boot) [2] Triple (plug in dock) [3] Dual (close lid) [4] Triple (Open lid then running autorandr -c) [5] dual (Close lid and run autorandr -c) [6] Solo (unplug dock) [7] Triple (plug in dock) [8] Dual (close lid) [9] Triple (Open lid & running autorandr -c)

This repeats in this pattern, but by going back to the solo profile by undocking, it will reset.

Debug at step 3.5 (Open lid, but havent run autorandr -c)

workstation (current)
triple (detected)
| Differences between the two profiles:
| [Output eDP1] The output is disabled currently, but active in the new configuration
| [Output DP1-2] Option --pos (= `1920x0') is `4480x0' in the new configuration
| [Output DP1-1] Option --crtc (= `0') is `1' in the new configuration
| [Output DP1-1] Option --pos (= `0x0') is `2560x0' in the new configuration
\-
solo

Debug at Step 4.5 (Open lid, but before autorandr -c)

> autorandr --debug
triple
workstation (detected)
| Differences between the two profiles:
| [Output DP1-2] Option --pos (= `4480x0') is `1920x0' in the new configuration
| Output `eDP1' is missing from the new configuration
| [Output DP1-1] Option --pos (= `2560x0') is `0x0' in the new configuration
\-
solo

Let me know if there is anything I can help with. I'd like to see this squashed. I'm at a loss at trying to fix it myself.

chmduquesne commented 1 year ago

autorandr will not trigger automatically when the lid state changes unless contrib/etc/xdg/autostart/autorandr-lid-listener.desktop is installed properly.

Alternatively, you can use the code from #269, available on https://github.com/chmduquesne/autorandr/blob/dbus_monitor/contrib/autorandr_dbus_monitor.sh