在 Xorg 中禁用笔记本显示器并为外部显示器设置自定义分辨率

在 Xorg 中禁用笔记本显示器并为外部显示器设置自定义分辨率

我正在尝试创建一个禁用笔记本电脑显示器的脚本,并将外部显示器的分辨率设置为 3440x1440 @ 44fps。我使用 44fps,因为这是我的显卡支持的最大刷新率。这是 xrandr 的输出:

$ xrandr
Screen 0: minimum 8 x 8, current 3440 x 1440, maximum 16384 x 16384
eDP-1-1 connected (normal left inverted right x axis y axis)
   1920x1080     60.02 +  60.01    59.97    59.96    59.93  
   1680x1050     59.95    59.88  
   1600x1024     60.17  
   1400x1050     59.98  
   1600x900      59.99    59.94    59.95    59.82  
   1280x1024     60.02  
   1440x900      59.89  
   1400x900      59.96    59.88  
   1280x960      60.00  
   1440x810      60.00    59.97  
   1368x768      59.88    59.85  
   1360x768      59.80    59.96  
   1280x800      59.99    59.97    59.81    59.91  
   1152x864      60.00  
   1280x720      60.00    59.99    59.86    59.74  
   1024x768      60.04    60.00  
   960x720       60.00  
   928x696       60.05  
   896x672       60.01  
   1024x576      59.95    59.96    59.90    59.82  
   960x600       59.93    60.00  
   960x540       59.96    59.99    59.63    59.82  
   800x600       60.00    60.32    56.25  
   840x525       60.01    59.88  
   864x486       59.92    59.57  
   800x512       60.17  
   700x525       59.98  
   800x450       59.95    59.82  
   640x512       60.02  
   720x450       59.89  
   700x450       59.96    59.88  
   640x480       60.00    59.94  
   720x405       59.51    58.99  
   684x384       59.88    59.85  
   680x384       59.80    59.96  
   640x400       59.88    59.98  
   576x432       60.06  
   640x360       59.86    59.83    59.84    59.32  
   512x384       60.00  
   512x288       60.00    59.92  
   480x270       59.63    59.82  
   400x300       60.32    56.34  
   432x243       59.92    59.57  
   320x240       60.05  
   360x202       59.51    59.13  
   320x180       59.84    59.32  
HDMI-1-1 connected primary 3440x1440+0+0 (normal left inverted right x axis y axis) 819mm x 346mm
   3840x2160     30.00    30.00    25.00    25.00    24.00    24.00    29.97    23.98  
   2560x1080     60.00    59.94  
   1920x1080     60.00    60.00    50.00    59.94    30.00    25.00    24.00    29.97    23.98  
   1920x1080i    60.00    50.00    59.94  
   1680x1050     59.88  
   1600x900      60.00  
   1280x1024     75.02    60.02  
   1280x800      59.91  
   1152x864      75.00  
   1280x720      60.00    60.00    50.00    59.94  
   1024x768      75.03    60.00  
   832x624       74.55  
   800x600       75.00    60.32  
   720x576       50.00  
   720x480       60.00    59.94  
   640x480       75.00    60.00    59.94    59.94  
   720x400       70.08  

我使用以下三个命令设置外部监视器的分辨率:

$ sudo xrandr --newmode "3440x1440_44.00"  299.75  3440 3664 4024 4608  1440 1443 1453 1479 -hsync +vsync
$ sudo xrandr --addmode HDMI-1-1 "3440x1440_44.00"
$ xrandr --output HDMI-1-1 --mode "3440x1440_44.00"

我还尝试在以下位置创建 bash 脚本/usr/share/X11/xorg.conf.d/45-custom_xrandr_settings

EXTERNAL_OUTPUT="HDMI-1-1"
INTERNAL_OUTPUT="eDP-1-1"

xrandr |grep $EXTERNAL_OUTPUT | grep " connected "
if [ $? -eq 0 ]; then
    xrandr --output $INTERNAL_OUTPUT --off
    xrandr --newmode "3440x1440_44.00"  299.75  3440 3664 4024 4608  1440 1443 1453 1479 -hsync +vsync
    xrandr --addmode HDMI-1-1 "3440x1440_44.00"
    xrandr --output HDMI-1-1 --mode "3440x1440_44.00"
else
    xrandr --output $INTERNAL_OUTPUT --auto --output $EXTERNAL_OUTPUT --off
fi

我还尝试创建/usr/share/X11/xorg.conf.d/10-monitor.cfg包含以下内容的文件:

Section "Monitor"
    Identifier "HDMI-1-1"
    Modeline "3440x1440_44.00"  299.75  3440 3664 4024 4608  1440 1443 1453 1479 -hsync +vsync 
    Option "Primary" "true" 
    Option "PreferredMode" "3440x1440_44.00"
EndSection

Section "Screen"
    Identifier "Screen0"
    Monitor "HDMI-1-1"
    DefaultDepth 24
    SubSection "Display"
        Modes "3440x1440_44.00"
    EndSubSection
EndSection

但这也没有多大帮助。老实说,我更喜欢依靠一个脚本来检查机器启动时是否连接到外部显示器,然后关闭内部显示器(如果连接)。作为记录,我正在运行Ubuntu 19.04Intel HD4200 和 Nvidia GTX 860M。

我还希望在启动期间进行显示器的切换,以便在连接外部显示器时初始登录屏幕和启动选择屏幕都显示在我的外部显示器上。

相关内容