我有一台4K显示器(3840 x 2160)和两台QHD显示器(2560 x 1440),我想将它们并排放置。不过目前尚不可能,因为为此所需的水平虚拟分辨率为8960像素(3840 + 2560 + 2560),但X服务器设置的最大(水平)虚拟分辨率为8192像素。有什么办法可以将最大虚拟分辨率提高到8192x8192像素以上?

到目前为止,我尝试过的是:

  • 我没有xorg.conf文件-我尝试手动创建一个自己的文件(包括"Display"子节),并在其中设置其他"Virtual"值,重新启动后,没有任何更改。
  • 尝试了各种xrandr命令变体,其中--fb和/或--panning参数设置为所需的最大值(8960x2160+0+0),同样无济于事。 (输出:xrandr: screen cannot be larger than 8192x8192 (desired size 8960x2160))

  • 我确实在某处(编辑: here)上读到一个声明,称英特尔的图形处理器不支持大于8192x8192像素的虚拟屏幕分辨率(我的系统正在将Core i7-6700HQ CPU与Intel HD Graphics 530图形处理器一起使用),但很遗憾,我无法确认此信息-希望不是这种情况。

    编辑:确实可能不是这样:
    #: glxinfo -l | grep GL_MAX_TEXTURE_SIZE
    GL_MAX_TEXTURE_SIZE = 16384
    GL_MAX_TEXTURE_SIZE = 16384
    

    我的xrandr输出(我目前将第三个监视器放在右下角,因此是8192x3600虚拟屏幕分辨率):
    Screen 0: minimum 320 x 200, current 8192 x 3600, maximum 8192 x 8192
    eDP-1 connected primary 3840x2160+2560+0 (normal left inverted right x axis y axis) 346mm x 194mm
    3840x2160     60.00*+
    2048x1536     60.00
    1920x1440     60.00
    1856x1392     60.01
    1792x1344     60.01
    1600x1200     60.00
    1400x1050     59.98
    1280x1024     60.02
    1280x960      60.00
    1024x768      60.04    60.00
    960x720       60.00
    928x696       60.05
    896x672       60.01
    800x600       60.00    60.32    56.25
    700x525       59.98
    640x512       60.02
    640x480       60.00    59.94
    512x384       60.00
    400x300       60.32    56.34
    320x240       60.05
    DP-1 disconnected (normal left inverted right x axis y axis)
    HDMI-1 connected 2560x1440+4519+2160 (normal left inverted right x axis y axis) 527mm x 296mm
    2560x1440     59.95*+
    2048x1152     59.90
    1920x1200     59.95
    1920x1080     60.00    50.00    59.94    24.00    23.98
    1920x1080i    60.00    50.00    59.94
    1600x1200     60.00
    1680x1050     59.88
    1280x1024     75.02    60.02
    1280x800      59.91
    1152x864      75.00
    1280x720      60.00    50.00    59.94
    1024x768      75.03    60.00
    800x600       75.00    60.32
    720x576       50.00
    720x576i      50.00
    720x480       60.00    59.94
    720x480i      60.00    59.94
    640x480       75.00    60.00    59.94
    720x400       70.08
    DP-2 connected 2560x1440+0+285 (normal left inverted right x axis y axis) 597mm x 336mm
    2560x1440     59.95*+
    1280x720      59.86
    HDMI-2 disconnected (normal left inverted right x axis y axis)
    

    最佳答案

    我可以通过以下步骤来解决此问题,以生成和修改xorg.conf文件并将其放在/etc/X11/xorg.conf中。

    我在使用gnome-session-fallbackmetacity的Ubuntu 16.04上,每当我尝试使所有三个全分辨率出现时,我都会收到关于虚拟大小的错误,无法通过8192x8192进行。

    我不确定您的gnome unity metacity是否重要。

    重新启动之前-生成xorg.conf.new文件。

    $ sudo X :2 -configure
    # will make a file /home/$USER/xorg.conf.new or ~/xorg.conf.new
    
    $ cat ~/xorg.conf.new |grep Screen|more
    Screen      0  "Screen0" 0 0
    Screen      1  "Screen1" RightOf "Screen0"
    Section "Screen"
    Identifier "Screen0"
    Section "Screen"
    Identifier "Screen1"
    

    例如,我有两个Screen Sections,而我正尝试利用3个监视器-无论生成什么,我都不认为您需要三个Screen Sections
    Monitor 1: 3840x2160 x 32 in
    Monitor 2: 3840x2160 x 32 in
    Monitor 3: 1920x1080 x 22 in
    

    如果您需要的大小大于8192x8192,请检查您的glx是否可以处理。
    glxinfo -l | grep GL_MAX_TEXTURE_SIZE
    GL_MAX_TEXTURE_SIZE = 16384
    GL_MAX_TEXTURE_SIZE = 16384
    

    修改xorg.conf.new目录中的/home/username文件,并从glxinfo命令Virtual 16384中添加大小
    sudo nano ~/xorg.conf.new
    

    在两个部分的Display为24的子节DepthScreen添加Virtual 16384
     Section "Screen"
     Identifier "Screen0"
     Device     "Card0"
     Monitor    "Monitor0"
     SubSection "Display"
        Viewport   0 0
        Depth     1
     EndSubSection
    SubSection "Display"
        Viewport   0 0
        Depth     4
    EndSubSection
    SubSection "Display"
        Viewport   0 0
        Depth     8
    EndSubSection
    SubSection "Display"
        Viewport   0 0
        Depth     15
    EndSubSection
    SubSection "Display"
        Viewport   0 0
        Depth     16
    EndSubSection
    SubSection "Display"
        Viewport   0 0
        Depth     24
        Virtual 16384 16384  <-- ADD THIS.
     EndSubSection
     EndSection
    
     Section "Screen"
     Identifier "Screen1"
     Device     "Card1"
     Monitor    "Monitor1"
     SubSection "Display"
        Viewport   0 0
        Depth     1
     EndSubSection
    SubSection "Display"
        Viewport   0 0
        Depth     4
    EndSubSection
    SubSection "Display"
        Viewport   0 0
        Depth     8
    EndSubSection
    SubSection "Display"
        Viewport   0 0
        Depth     15
    EndSubSection
    SubSection "Display"
        Viewport   0 0
        Depth     16
    EndSubSection
    SubSection "Display"
        Viewport   0 0
        Depth     24
        Virtual 16384 16384 <-- ADD THIS.
     EndSubSection
     EndSection
    

    xorg.xonf.new复制到/etc/X11/xorg.conf,然后重新启动。
      sudo cp /home/user/xorg.conf.new /etc/X11/xorg.conf # Modify user
      sudo shutdown -r now
    

    当您重新登录时,将显示器设置为gnomemetacityunity或您使用的任何显示器。

    更新:

    重新启动,注销或解锁后,我发现监视器设置未保存。

    可能的gnome问题可能与此错误有关:
    https://bugs.launchpad.net/ubuntu/+source/gnome-shell/+bug/1292398
    此修复是从此帖子中多个答案的一部分中找到的:
    https://askubuntu.com/questions/6137/saving-monitor-settings
    我更喜欢从终端运行此脚本,因为我在登录后首先打开了一个脚本。

    首次登录时配置错误-监视器放置不正确:
    cd ~/.config
    mv ~/.config/monitors.xml{,.bak}
    

    现在,使用系统设置来设置显示器,以使用正确的设置创建一个新的~/.config/monitors.xml文件。

    从我的仓库https://raw.githubusercontent.com/alextomko/monitors/master/monitors中复制Nicolas Bernaerts的固定脚本,并将其放在要从终端运行的路径中。
    $ ls -l ~/bin
    # if you don't have this directory then create it - do not be logged in as root here.
    
    $ mkdir /home/$USER/bin
    
    $ echo $PATH
    # should show /home/username/bin if the dir existed or if you had to create.
    
    $ wget -P ~/bin https://raw.githubusercontent.com/alextomko/monitors/master/monitors
    $ chmod +x ~/bin/monitors
    
    
    # Log out, lock, reboot or whatever it takes to make monitor settings lost for you and run the script.
    $ monitors
    

    10-07 22:22