X11 忽略首选模式

X11 忽略首选模式

问题

我正在转换我的配置多头显示器使用一些相当丑陋的脚本到 /etc/X11/xorg.conf.d/10-monitor.conf。我的布局有两台 1920x1200 的显示器,其中一台向左旋转。脚本能够使用以下命令很好地配置它:

xrandr \
    --output "DP-1" \
        --mode 1920x1200 \
        --pos 1200x360 \
        --rotate normal \
        --primary \
    --output "DP-2" \
        --mode 1920x1200 \
        --pos 0x0 \
        --rotate left

我尝试将其转换为配置:

Section "Monitor"
    Identifier "DP-1"
    Option "Primary" "true"
    Option "Position" "1200 360"
EndSection

Section "Monitor"
    Identifier "DP-2"
    Option "Rotate" "left"
EndSection

不幸的是,这会产生副作用,将旋转屏幕的分辨率设置为 1600×1200,尽管首选模式仍然是 1920×1200:

$ xrandr
[…]
DP-2 connected 1200x1600+0+0 left (normal left inverted right x axis y axis) 518mm x 324mm
   1920x1200     59.95 +
   1920x1080     60.00  
   1600x1200     60.00* 
[…]

如何编写将使用旋转显示器的首选分辨率 1920x1200 的配置?

非解决方案

  • 明确设置屏幕尺寸以适合两个显示器:

    Section "Screen"
        Driver "radeon"
        SubSection "Display"
            Virtual 3120 1920
        EndSubSection
    EndSection
    
  • Option "PreferredMode" "1920x1200"明确设置 DP-2 ( )的首选模式会导致其他屏幕缩小到1600×1200,所以这可能是一个线索。

解决方法

使用 强制分辨率xrandr --output DP-2 --mode 1920x1200

答案1

最终有效的是明确设置虚拟屏幕尺寸的首选模式两个都屏幕数量:

Section "Monitor"
    Identifier "DP-1"
    Option "Primary" "true"
    Option "Position" "1200 360"
    Option "PreferredMode" "1920x1200"
EndSection

Section "Monitor"
    Identifier "DP-2"
    Option "Rotate" "left"
    Option "PreferredMode" "1920x1200"
EndSection

Section "Screen"
    Driver "radeon"
    SubSection "Display"
        Virtual 3120 1920
    EndSubSection
EndSection

相关内容