alex-courtis / way-displays

way-displays: Auto Manage Your Wayland Displays
MIT License
239 stars 12 forks source link

Bug: Warning `eDP-1` already specified #171

Open gabyx opened 2 weeks ago

gabyx commented 2 weeks ago

I have weird error with the following config:

---
ARRANGE: ROW
ALIGN: MIDDLE
ORDER:
  # Home.
  - "!^Philips.*PHL 275E2F.*UHB2307008083.*" # External monitor.
  - "!^Dell.*U2724DE.*4TPGCP3.*" # External monitor.

  # Laptop Monitor comes always last.
  # - "!^Tianma.*TL140ADXP24.*" # Internal monitor.
  - "eDP-1"

SCALING: TRUE
AUTO_SCALE: FALSE
AUTO_SCALE_MIN: 1.0
SCALE:
MODE:
  - NAME_DESC: "!^Philips.*PHL 275E2F.*UHB2307008083.*" # Home - External
    WIDTH: 2560
    HEIGHT: 1440
    HZ: 75

  - NAME_DESC: "!^Dell.*U2724DE.*4TPGCP3.*" # Home - External
    MAX: TRUE

# VRR / adaptive sync is enabled by default. Disable it per display.
VRR_OFF:
  - "!^.*"

CHANGE_SUCCESS_CMD: "cd ~ && ~/.config/way-displays/scripts/on-change.sh"
LAPTOP_DISPLAY_PREFIX: "eDP"

# One of: ERROR, WARNING, INFO (default), DEBUG
LOG_THRESHOLD: DEBUG

I did not specify eDP-1 for any MODE but when starting way-displays it states:

WARNING: 2880x1800@60Hz (60,001mHz) already specified for 'eDP-1', ignoring 2880x1800@120Hz

and does not apply any changes. etc. Why is that? Am I doing something wrong.

```shell I [09:27:28] way-displays version 1.11.0 I [09:27:28] I [09:27:28] Found configuration file: /home/nixos/.config/way-displays/cfg.yaml I [09:27:28] I [09:27:28] Active configuration: I [09:27:28] Arrange in a ROW aligned at the MIDDLE I [09:27:28] Order: I [09:27:28] !^Philips.*PHL 275E2F.*UHB2307008083.* I [09:27:28] !^Dell.*U2724DE.*4TPGCP3.* I [09:27:28] eDP-1 I [09:27:28] Scaling: ON I [09:27:28] Auto scale: OFF (min: 1.000) I [09:27:28] Mode: I [09:27:28] !^Philips.*PHL 275E2F.*UHB2307008083.*: 2560x1440@75Hz I [09:27:28] !^Dell.*U2724DE.*4TPGCP3.*: MAX I [09:27:28] Change success command: I [09:27:28] cd ~ && ~/.config/way-displays/scripts/on-change.sh I [09:27:28] Laptop display prefix: eDPPPP I [09:27:28] I [09:27:28] Monitoring lid device: /dev/input/event5 I [09:27:28] I [09:27:28] Lid open W [09:27:28] W [09:27:28] WARNING: 2880x1800@60Hz (60,001mHz) already specified for 'eDP-1', ignoring 2880x1800@120Hz (120,000mHz) (preferred) I [09:27:28] I [09:27:28] DP-9 Arrived: I [09:27:28] info: I [09:27:28] name: 'DP-9' I [09:27:28] make: 'Philips Consumer Electronics Company' I [09:27:28] model: 'PHL 275E2F' I [09:27:28] serial: 'UHB2307008083' I [09:27:28] desc: 'Philips Consumer Electronics Company PHL 275E2F UHB2307008083 (DP-9)' I [09:27:28] width: 600mm I [09:27:28] height: 340mm I [09:27:28] dpi: 107.97 @ 2560x1440 I [09:27:28] mode: 2560 x 1440 @ 75 Hz 74,968 mHz I [09:27:28] mode: 2560 x 1440 @ 60 Hz 59,951 mHz (preferred) I [09:27:28] mode: 1920 x 1080 @ 75 Hz 74,973 mHz I [09:27:28] mode: 1920 x 1080 @ 60 Hz 60,000 mHz 60,000 mHz 59,940 mHz I [09:27:28] mode: 1920 x 1080 @ 50 Hz 50,000 mHz I [09:27:28] mode: 1680 x 1050 @ 60 Hz 59,954 mHz I [09:27:28] mode: 1440 x 900 @ 60 Hz 59,887 mHz I [09:27:28] mode: 1280 x 1440 @ 60 Hz 59,913 mHz I [09:27:28] mode: 1280 x 1024 @ 75 Hz 75,025 mHz I [09:27:28] mode: 1280 x 1024 @ 60 Hz 60,020 mHz I [09:27:28] mode: 1280 x 960 @ 60 Hz 60,000 mHz I [09:27:28] mode: 1280 x 720 @ 60 Hz 60,000 mHz 60,000 mHz 59,940 mHz I [09:27:28] mode: 1280 x 720 @ 50 Hz 50,000 mHz I [09:27:28] mode: 1024 x 768 @ 75 Hz 75,029 mHz I [09:27:28] mode: 1024 x 768 @ 70 Hz 70,069 mHz I [09:27:28] mode: 1024 x 768 @ 60 Hz 60,004 mHz I [09:27:28] mode: 832 x 624 @ 75 Hz 74,551 mHz I [09:27:28] mode: 800 x 600 @ 75 Hz 75,000 mHz I [09:27:28] mode: 800 x 600 @ 72 Hz 72,188 mHz I [09:27:28] mode: 800 x 600 @ 60 Hz 60,317 mHz I [09:27:28] mode: 800 x 600 @ 56 Hz 56,250 mHz I [09:27:28] mode: 720 x 576 @ 50 Hz 50,000 mHz 50,000 mHz I [09:27:28] mode: 720 x 480 @ 60 Hz 60,000 mHz 60,000 mHz 59,940 mHz 59,940 mHz I [09:27:28] mode: 720 x 400 @ 70 Hz 70,082 mHz I [09:27:28] mode: 640 x 480 @ 75 Hz 75,000 mHz I [09:27:28] mode: 640 x 480 @ 73 Hz 72,809 mHz I [09:27:28] mode: 640 x 480 @ 67 Hz 66,667 mHz I [09:27:28] mode: 640 x 480 @ 60 Hz 60,000 mHz 59,940 mHz 59,940 mHz I [09:27:28] current: I [09:27:28] scale: 1.000 (1.125) I [09:27:28] position: 4000,0 I [09:27:28] mode: 2560x1440@60Hz (59,951mHz) (preferred) I [09:27:28] VRR: off I [09:27:28] I [09:27:28] DP-7 Arrived: I [09:27:28] info: I [09:27:28] name: 'DP-7' I [09:27:28] make: 'Dell Inc.' I [09:27:28] model: 'DELL U2724DE' I [09:27:28] serial: '4TPGCP3' I [09:27:28] desc: 'Dell Inc. DELL U2724DE 4TPGCP3 (DP-7)' I [09:27:28] width: 600mm I [09:27:28] height: 340mm I [09:27:28] dpi: 107.97 @ 2560x1440 I [09:27:28] mode: 2560 x 1440 @ 120 Hz 120,000 mHz I [09:27:28] mode: 2560 x 1440 @ 75 Hz 74,971 mHz I [09:27:28] mode: 2560 x 1440 @ 60 Hz 59,951 mHz (preferred) I [09:27:28] mode: 2048 x 1080 @ 60 Hz 59,998 mHz I [09:27:28] mode: 1920 x 1080 @ 120 Hz 120,000 mHz 119,982 mHz 119,880 mHz I [09:27:28] mode: 1920 x 1080 @ 100 Hz 100,000 mHz I [09:27:28] mode: 1920 x 1080 @ 60 Hz 60,000 mHz 60,000 mHz 59,940 mHz I [09:27:28] mode: 1920 x 1080 @ 50 Hz 50,000 mHz I [09:27:28] mode: 1920 x 1080 @ 30 Hz 30,000 mHz 29,970 mHz I [09:27:28] mode: 1920 x 1080 @ 25 Hz 25,000 mHz I [09:27:28] mode: 1920 x 1080 @ 24 Hz 24,000 mHz 23,976 mHz I [09:27:28] mode: 1600 x 1200 @ 60 Hz 60,000 mHz I [09:27:28] mode: 1600 x 900 @ 60 Hz 60,000 mHz I [09:27:28] mode: 1280 x 1024 @ 75 Hz 75,025 mHz I [09:27:28] mode: 1280 x 1024 @ 60 Hz 60,020 mHz I [09:27:28] mode: 1280 x 720 @ 60 Hz 60,000 mHz 60,000 mHz 59,940 mHz I [09:27:28] mode: 1280 x 720 @ 50 Hz 50,000 mHz I [09:27:28] mode: 1152 x 864 @ 75 Hz 75,000 mHz I [09:27:28] mode: 1024 x 768 @ 75 Hz 75,029 mHz I [09:27:28] mode: 1024 x 768 @ 60 Hz 60,004 mHz I [09:27:28] mode: 800 x 600 @ 75 Hz 75,000 mHz I [09:27:28] mode: 800 x 600 @ 60 Hz 60,317 mHz I [09:27:28] mode: 720 x 576 @ 50 Hz 50,000 mHz 50,000 mHz I [09:27:28] mode: 720 x 480 @ 60 Hz 60,000 mHz 60,000 mHz 59,940 mHz 59,940 mHz I [09:27:28] mode: 720 x 400 @ 70 Hz 70,082 mHz I [09:27:28] mode: 640 x 480 @ 75 Hz 75,000 mHz I [09:27:28] mode: 640 x 480 @ 60 Hz 60,000 mHz 59,940 mHz I [09:27:28] current: I [09:27:28] scale: 1.000 (1.125) I [09:27:28] position: 1440,0 I [09:27:28] mode: 2560x1440@60Hz (59,951mHz) (preferred) I [09:27:28] VRR: off I [09:27:28] I [09:27:28] eDP-1 Arrived: I [09:27:28] info: I [09:27:28] name: 'eDP-1' I [09:27:28] make: 'Tianma Microelectronics Ltd.' I [09:27:28] model: 'TL140ADXP24-0' I [09:27:28] desc: 'Tianma Microelectronics Ltd. TL140ADXP24-0 (eDP-1)' I [09:27:28] width: 300mm I [09:27:28] height: 190mm I [09:27:28] dpi: 242.24 @ 2880x1800 I [09:27:28] mode: 2880 x 1800 @ 120 Hz 120,000 mHz (preferred) I [09:27:28] mode: 2880 x 1800 @ 96 Hz 96,011 mHz I [09:27:28] mode: 2880 x 1800 @ 72 Hz 72,008 mHz I [09:27:28] mode: 2880 x 1800 @ 60 Hz 60,001 mHz 60,000 mHz I [09:27:28] current: I [09:27:28] (no mode) I [09:27:28] VRR: off I [09:27:28] (disabled) I [09:27:28] I [09:27:28] DP-9 Changing: I [09:27:28] from: I [09:27:28] scale: 1.000 (1.125) I [09:27:28] position: 4000,0 I [09:27:28] mode: 2560x1440@60Hz (59,951mHz) (preferred) I [09:27:28] VRR: off I [09:27:28] to: I [09:27:28] mode: 2560x1440@75Hz (74,968mHz) W [09:27:28] W [09:27:28] WARNING: Changes cancelled, retrying ```
gabyx commented 2 weeks ago

Is maybe somebody else setting some resoltion for eDP-1 (not way-displays) ?

gabyx commented 2 weeks ago

I started way-display in Sway with

exec way-displays

and the above error happens too.

When I dont do this and I start after login on a shell swaymsg "exec 'way-displays 2>&1 > ~/.way-displays.log'" it does not work (same error). But when I do way-displays -g it configures all displays and the error is gone.

alex-courtis commented 2 weeks ago

Thank you for the detailed information. I'll attempt a reproduction and get back to you.

First thoughts: way-displays -g kicks things into action, triggering a re-evaluation.

Nice setup with all the shellchecks; FYI #164 will add some more information for your on change script.

alex-courtis commented 2 weeks ago

The warning was incorrect, with the modes reversed. That has been fixed in #173, however is not the actual issue.

alex-courtis commented 2 weeks ago

Everything looks reasonable and should function as intended. The sleep 1 before the -g does indicate an issue with timing. There doesn't seem to be anything that could result in two instances of way-displays running.

I do notice you are starting way-displays without the log file redirect: https://github.com/gabyx/dotfiles/blob/main/config/dot_config/sway/config-startup#L4 which would result in loss of logs. Perhaps exec $display-manager > ~/.way-displays.log 2>&1.

The only thing that could possible cause sway to make any display changes is the VRR disable: https://github.com/gabyx/dotfiles/blob/main/config/dot_config/sway/config-outputs#L7 you might try removing that, as way-displays should handle it.

Can we please try a minimal configuration: use the template sway config with exec way-displays > /tmp/way-displays.${XDG_VTNR}.${USER}.log 2>&1 at the top, then at the bottom. That should rule out any timing issues.

It would be great if you could post your versions of sway and wlroots.

gabyx commented 1 week ago

Hi, jeah thanks, I forgot a > there. I setup the config as you mentioned, put the exec on top, logged out and back in again, and this is the output of the file:

I [20:43:44] way-displays version 1.11.0
I [20:43:44] 
I [20:43:44] Found configuration file: /home/nixos/.config/way-displays/cfg.yaml
I [20:43:44] 
I [20:43:44] Active configuration:
I [20:43:44]   Arrange in a ROW aligned at the MIDDLE
I [20:43:44]   Order:
I [20:43:44]     !^Philips.*PHL 275E2F.*UHB2307008083.*
I [20:43:44]     !^Dell.*U2724DE.*4TPGCP3.*
I [20:43:44]     !^DP-.*
I [20:43:44]     !^Tianma.*TL140ADXP24.*
I [20:43:44]     !^eDP-*
I [20:43:44]   Scaling: ON
I [20:43:44]   Auto scale: OFF (min: 1.000)
I [20:43:44]   Mode:
I [20:43:44]     !^Philips.*PHL 275E2F.*UHB2307008083.*: 2560x1440@75Hz
I [20:43:44]     !^Dell.*U2724DE.*4TPGCP3.*: MAX
I [20:43:44]     !^DP-.*: MAX
I [20:43:44]     !^Tianma.*TL140ADXP24.*: 1920x1200@120Hz
I [20:43:44]   Change success command:
I [20:43:44]     cd ~ && ~/.config/way-displays/scripts/on-change.sh
I [20:43:44] 
I [20:43:44] Monitoring lid device: /dev/input/event2
I [20:43:44] 
I [20:43:44] Lid open
W [20:43:44] 
W [20:43:44] WARNING: 2880x1800@60Hz (60,001mHz)  already specified for 'eDP-1', ignoring 2880x1800@120Hz (120,000mHz) (preferred)
I [20:43:44] 
I [20:43:44] eDP-1 Arrived:
I [20:43:44]   info:
I [20:43:44]     name:      'eDP-1'
I [20:43:44]     make:      'Tianma Microelectronics Ltd.'
I [20:43:44]     model:     'TL140ADXP24-0'
I [20:43:44]     desc:      'Tianma Microelectronics Ltd. TL140ADXP24-0 (eDP-1)'
I [20:43:44]     width:     300mm
I [20:43:44]     height:    190mm
I [20:43:44]     dpi:       242.24 @ 2880x1800
I [20:43:44]     mode:      2880 x 1800 @ 120 Hz  120,000 mHz (preferred)
I [20:43:44]     mode:      2880 x 1800 @  96 Hz   96,011 mHz
I [20:43:44]     mode:      2880 x 1800 @  72 Hz   72,008 mHz
I [20:43:44]     mode:      2880 x 1800 @  60 Hz   60,001 mHz  60,000 mHz
I [20:43:44]     mode:      2880 x 1800 @  50 Hz   50,007 mHz
I [20:43:44]     mode:      2880 x 1800 @  48 Hz   48,005 mHz
I [20:43:44]     mode:      1920 x 1200 @ 120 Hz  120,000 mHz
I [20:43:44]     mode:      1920 x 1080 @ 120 Hz  120,000 mHz
I [20:43:44]     mode:      1680 x 1050 @ 120 Hz  120,000 mHz
I [20:43:44]     mode:      1600 x 1200 @ 120 Hz  120,000 mHz
I [20:43:44]     mode:      1440 x  900 @ 120 Hz  120,000 mHz
I [20:43:44]     mode:      1280 x 1024 @ 120 Hz  120,000 mHz
I [20:43:44]     mode:      1280 x  800 @ 120 Hz  120,000 mHz
I [20:43:44]     mode:      1280 x  720 @ 120 Hz  120,000 mHz
I [20:43:44]     mode:      1024 x  768 @ 120 Hz  120,000 mHz
I [20:43:44]     mode:       800 x  600 @ 120 Hz  120,000 mHz
I [20:43:44]     mode:       640 x  480 @ 120 Hz  120,000 mHz
I [20:43:44]   current:
I [20:43:44]     scale:     2.000 (2.523)
I [20:43:44]     size:      1440x900
I [20:43:44]     position:  0,0
I [20:43:44]     mode:      2880x1800@120Hz (120,000mHz) (preferred)
I [20:43:44]     VRR:       off
I [20:43:44] 
I [20:43:44] eDP-1 Changing:
I [20:43:44]   from:
I [20:43:44]     scale:     2.000 (2.523)
I [20:43:44]     size:      1440x900
I [20:43:44]     position:  0,0
I [20:43:44]     mode:      2880x1800@120Hz (120,000mHz) (preferred)
I [20:43:44]     VRR:       off
I [20:43:44]   to:
I [20:43:44]     mode:      1920x1200@120Hz (120,000mHz) 
I [20:43:44] 
I [20:43:44] Executing CHANGE_SUCCESS_CMD:
I [20:43:44]   cd ~ && ~/.config/way-displays/scripts/on-change.sh
I [20:43:44] 
I [20:43:44] Changes successful
I [20:43:44] 
I [20:43:44] eDP-1 Changing:
I [20:43:44]   from:
I [20:43:44]     scale:     2.000 (1.682)
I [20:43:44]     size:      960x600
I [20:43:44]     position:  0,0
I [20:43:44]     mode:      1920x1200@120Hz (120,000mHz) 
I [20:43:44]     VRR:       off
I [20:43:44]   to:
I [20:43:44]     scale:     1.000
I [20:43:44] 
I [20:43:44] Executing CHANGE_SUCCESS_CMD:
I [20:43:44]   cd ~ && ~/.config/way-displays/scripts/on-change.sh
I [20:43:44] 
I [20:43:44] Changes successful
I [20:43:49] 
I [20:43:49] Server received request: get
I [20:43:49] 
I [20:43:49] Active configuration:
I [20:43:49]   Arrange in a ROW aligned at the MIDDLE
I [20:43:49]   Order:
I [20:43:49]     !^Philips.*PHL 275E2F.*UHB2307008083.*
I [20:43:49]     !^Dell.*U2724DE.*4TPGCP3.*
I [20:43:49]     !^DP-.*
I [20:43:49]     !^Tianma.*TL140ADXP24.*
I [20:43:49]     !^eDP-*
I [20:43:49]   Scaling: ON
I [20:43:49]   Auto scale: OFF (min: 1.000)
I [20:43:49]   Mode:
I [20:43:49]     !^Philips.*PHL 275E2F.*UHB2307008083.*: 2560x1440@75Hz
I [20:43:49]     !^Dell.*U2724DE.*4TPGCP3.*: MAX
I [20:43:49]     !^DP-.*: MAX
I [20:43:49]     !^Tianma.*TL140ADXP24.*: 1920x1200@120Hz
I [20:43:49]   Change success command:
I [20:43:49]     cd ~ && ~/.config/way-displays/scripts/on-change.sh
I [20:43:49] 
I [20:43:49] way-displays -s ARRANGE_ALIGN ROW MIDDLE
I [20:43:49] 
I [20:43:49] way-displays -s ORDER '!^Philips.*PHL 275E2F.*UHB2307008083.*' '!^Dell.*U2724DE.*4TPGCP3.*' '!^DP-.*' '!^Tianma.*TL140ADXP24.*' '!^eDP-*' 
I [20:43:49] 
I [20:43:49] way-displays -s SCALING ON
I [20:43:49] 
I [20:43:49] way-displays -s AUTO_SCALE OFF
I [20:43:49] 
I [20:43:49] way-displays -s MODE '!^Philips.*PHL 275E2F.*UHB2307008083.*' 2560 1440 75
I [20:43:49] way-displays -s MODE '!^Dell.*U2724DE.*4TPGCP3.*' MAX
I [20:43:49] way-displays -s MODE '!^DP-.*' MAX
I [20:43:49] way-displays -s MODE '!^Tianma.*TL140ADXP24.*' 1920 1200 120
I [20:43:49] 
I [20:43:49] way-displays -s VRR_OFF '!^.*'
I [20:43:49] 
I [20:43:49] way-displays -s CHANGE_SUCCESS_CMD 'cd ~ && ~/.config/way-displays/scripts/on-change.sh'
I [20:43:49] 
I [20:43:49] eDP-1:
I [20:43:49]   info:
I [20:43:49]     name:      'eDP-1'
I [20:43:49]     make:      'Tianma Microelectronics Ltd.'
I [20:43:49]     model:     'TL140ADXP24-0'
I [20:43:49]     desc:      'Tianma Microelectronics Ltd. TL140ADXP24-0 (eDP-1)'
I [20:43:49]     width:     300mm
I [20:43:49]     height:    190mm
I [20:43:49]     dpi:       242.24 @ 2880x1800
I [20:43:49]     mode:      2880 x 1800 @ 120 Hz  120,000 mHz (preferred)
I [20:43:49]     mode:      2880 x 1800 @  96 Hz   96,011 mHz
I [20:43:49]     mode:      2880 x 1800 @  72 Hz   72,008 mHz
I [20:43:49]     mode:      2880 x 1800 @  60 Hz   60,001 mHz  60,000 mHz
I [20:43:49]     mode:      2880 x 1800 @  50 Hz   50,007 mHz
I [20:43:49]     mode:      2880 x 1800 @  48 Hz   48,005 mHz
I [20:43:49]     mode:      1920 x 1200 @ 120 Hz  120,000 mHz
I [20:43:49]     mode:      1920 x 1080 @ 120 Hz  120,000 mHz
I [20:43:49]     mode:      1680 x 1050 @ 120 Hz  120,000 mHz
I [20:43:49]     mode:      1600 x 1200 @ 120 Hz  120,000 mHz
I [20:43:49]     mode:      1440 x  900 @ 120 Hz  120,000 mHz
I [20:43:49]     mode:      1280 x 1024 @ 120 Hz  120,000 mHz
I [20:43:49]     mode:      1280 x  800 @ 120 Hz  120,000 mHz
I [20:43:49]     mode:      1280 x  720 @ 120 Hz  120,000 mHz
I [20:43:49]     mode:      1024 x  768 @ 120 Hz  120,000 mHz
I [20:43:49]     mode:       800 x  600 @ 120 Hz  120,000 mHz
I [20:43:49]     mode:       640 x  480 @ 120 Hz  120,000 mHz
I [20:43:49]   current:
I [20:43:49]     scale:     1.000 (1.682)
I [20:43:49]     size:      1920x1200
I [20:43:49]     position:  0,0
I [20:43:49]     mode:      1920x1200@120Hz (120,000mHz) 
I [20:43:49]     VRR:       off

So there is still this strange line at the top. Hm...

gabyx commented 1 week ago

Ah thanks by the way at looking at my config, I did not expect that to happen! Thankss for you effort, the tool is great!

alex-courtis commented 1 week ago

I setup the config as you mentioned, put the exec on top, logged out and back in again, and this is the output of the file:

Is that minimal config above working correctly? I'm not seeing the other two displays at all; are they working?

So there is still this strange line at the top. Hm...

Fix will be released soon: #173

There's not much we can do about it; some monitors just advertise two preferred modes.