我怎样才能让 Ubuntu 始终识别左侧的外接显示器?

我怎样才能让 Ubuntu 始终识别左侧的外接显示器?

每次打开笔记本电脑并通过 HDMI 插入外接显示器时,我都需要转到显示设置来调整默认设置。启动时,我得到的是重复的屏幕,而不是我想要的扩展屏幕。我还会将外接显示器放在右侧,而我总是将其放在左侧。我怎样才能让它默认停留扩展并在左侧?是的,我总是把“应用”和“保留此配置”,但它似乎在启动时重置。

xrandr按照我想要的方式设置监视器的输出:

Screen 0: minimum 8 x 8, current 3520 x 1080, maximum 32767 x 32767
LVDS1 connected primary 1600x900+1920+180 (normal left inverted right x axis y axis) 382mm x 215mm
   1600x900      60.01*+  40.03  
   1440x900      59.89  
   1368x768      60.00  
   1360x768      59.80    59.96  
   1152x864      60.00  
   1280x720      60.00  
   1024x768      60.00  
   1024x576      60.00  
   960x540       60.00  
   800x600       60.32    56.25  
   864x486       60.00  
   800x450       60.00  
   640x480       59.94  
   720x405       60.00  
   640x360       60.00  
DP1 disconnected (normal left inverted right x axis y axis)
DP2 disconnected (normal left inverted right x axis y axis)
DP3 disconnected (normal left inverted right x axis y axis)
HDMI1 disconnected (normal left inverted right x axis y axis)
HDMI2 disconnected (normal left inverted right x axis y axis)
HDMI3 disconnected (normal left inverted right x axis y axis)
VGA1 disconnected (normal left inverted right x axis y axis)
VIRTUAL1 disconnected (normal left inverted right x axis y axis)
DP-1-4 disconnected
HDMI-1-4 disconnected
HDMI-1-5 connected 1920x1080+0+0 510mm x 287mm
   1920x1080     60.00*+  50.00    59.94  
   1920x1080i    60.00    50.00    59.94  
   1280x1024     75.02    60.02  
   1280x960      60.00  
   1280x800      59.91  
   1152x864      75.00  
   1280x720      60.00    50.00    59.94  
   1024x768      75.08    70.07    60.00  
   832x624       74.55  
   800x600       72.19    75.00    60.32    56.25  
   720x576       50.00  
   720x480       60.00    59.94  
   640x480       75.00    72.81    66.67    60.00    59.94  
   720x400       70.08  
  1024x768 (0x55) 65.000MHz -HSync -VSync
        h: width  1024 start 1048 end 1184 total 1344 skew    0 clock  48.36KHz
        v: height  768 start  771 end  777 total  806           clock  60.00Hz
  800x600 (0x59) 40.000MHz +HSync +VSync
        h: width   800 start  840 end  968 total 1056 skew    0 clock  37.88KHz
        v: height  600 start  601 end  605 total  628           clock  60.32Hz
  800x600 (0x5a) 36.000MHz +HSync +VSync
        h: width   800 start  824 end  896 total 1024 skew    0 clock  35.16KHz
        v: height  600 start  601 end  603 total  625           clock  56.25Hz
  640x480 (0x62) 25.175MHz -HSync -VSync
        h: width   640 start  656 end  752 total  800 skew    0 clock  31.47KHz
        v: height  480 start  490 end  492 total  525           clock  59.94Hz

答案1

解决方法

当图形驱动程序和屏幕无法以充分的方式进行通信时,通常就会发生屏幕布局不协调的情况。然而,这并不意味着没有解决方案。

按照您需要的方式进行设置的命令是(如果我没有犯错或打字错误的话):

xrandr --output HDMI-1-5 --pos 0x0 --output LVDS1 --pos 1920x180

为什么这是这样做的命令,解释如下这里

如何使用

您可以通过两种方式使用此命令:

1. 手动版本(快捷方式)

将其添加到第二个屏幕连接后要按下的快捷键:选择:系统设置>“键盘”>“快捷键”>“自定义快捷键”。单击“+”并添加命令:

xrandr --output HDMI-1-5 --pos 0x0 --output LVDS1 --pos 1920x180

2. 自动版本

运行此命令自动地如果连接了第二个屏幕:

  • 将以下脚本复制到一个空文件中,并将其另存为set_screen.py

    #!/usr/bin/env python3
    import subprocess
    import time
    
    def numscreens():
        scrdata = subprocess.check_output("xrandr").decode("utf-8").splitlines()
        return len([l for l in scrdata if " connected" in l])
    
    nscr1 = None
    
    while True:
        time.sleep(5)
        nscr2 = numscreens()
        if nscr2 != nscr1:
            if nscr2 == 2:
                subprocess.Popen(["xrandr", "--output", "HDMI-1-5", "--pos", "0x0",
                                  "--output", "LVDS1", "--pos", "1920x180"])
        nscr1 = nscr2
    
  • 通过从终端运行脚本来测试运行:

    python3 /path/to/set_screen.py
    
  • 如果一切正常,请将其添加到启动应用程序:Dash > 启动应用程序 > 添加。添加命令:

    /bin/bash -c "sleep 30 && python3 /path/to/set_screen.py"
    

相关内容