在 Wayland 中从 bash 定义显示位置?

在 Wayland 中从 bash 定义显示位置?

所以兰德在 Wayland 中出现问题。照这样来看,这个列表太长了……

无法通过 GUI 显示设置精确设置显示位置。

有没有办法从 bash 定义显示位置?有可以编辑的配置文件吗?

我的配置(如果相关的话):

inxi -SG

System:
  Host: cview Kernel: 5.15.0-70-generic x86_64 bits: 64 Desktop: GNOME 42.5
    Distro: Ubuntu 22.04.2 LTS (Jammy Jellyfish)
Graphics:
  Device-1: Intel CoffeeLake-S GT2 [UHD Graphics 630] driver: i915 v: kernel
  Device-2: NVIDIA GM107GL [Quadro K1200] driver: nouveau v: kernel
  Display: wayland server: X.Org v: 1.22.1.1 with: Xwayland v: 22.1.1
    compositor: gnome-shell driver: X: loaded: modesetting unloaded: fbdev,vesa
    gpu: nouveau resolution: 1: 1920x1080~60Hz 2: 1080x1920~60Hz
    3: 1080x1920~60Hz 4: 1920x1080~60Hz
  OpenGL: renderer: NV117 v: 4.3 Mesa 22.2.5

答案1

可以通过编辑用户会话的 ~/.config/monitors.xml 来精确调整 Gnome (gdm3) 的监视器“位置”。显然,无论您的会话是 XOrg 还是 Wayland,这都有效,尽管我相信它们各自都有自己的“配置”部分,因为分配“连接器”的方式不同。

相对于左上角原点 0,0 设置“x”和“y”元素,以定位每个显示器。注意确保所有显示器都是连续的 - 空隙会阻止鼠标导航到/从孤立的显示器导航。

<monitors version="2">
  <configuration>
    <logicalmonitor>
      <x>0</x>
      <y>480</y>
      <scale>1</scale>
      <primary>yes</primary>
      <transform>
        <rotation>left</rotation>
        <flipped>no</flipped>
      </transform>
      <monitor>
        <monitorspec>
          <connector>DP-4</connector>
          <vendor>DEL</vendor>
          <product>DELL U2414H</product>
          <serial>R9F1P4CC33PL</serial>
        </monitorspec>
        <mode>
          <width>1920</width>
          <height>1080</height>
          <rate>60</rate>
        </mode>
      </monitor>
    </logicalmonitor>
    <logicalmonitor>
      <x>1080</x>
      <y>0</y>
      <scale>1</scale>
      <transform>
        <rotation>upside_down</rotation>
        <flipped>no</flipped>
      </transform>
      <monitor>
        <monitorspec>
          <connector>DP-6</connector>
          <vendor>DEL</vendor>
          <product>DELL U2414H</product>
          <serial>JH8WC8BT0C7L</serial>
        </monitorspec>
        <mode>
          <width>1920</width>
          <height>1080</height>
          <rate>60</rate>
        </mode>
      </monitor>
    </logicalmonitor>
    <logicalmonitor>
      <x>1080</x>
      <y>1080</y>
      <scale>1</scale>
      <monitor>
        <monitorspec>
          <connector>DP-5</connector>
          <vendor>DEL</vendor>
          <product>DELL U2414H</product>
          <serial>R9F1P4CC32EL</serial>
        </monitorspec>
        <mode>
          <width>1920</width>
          <height>1080</height>
          <rate>60</rate>
        </mode>
      </monitor>
    </logicalmonitor>
    <logicalmonitor>
      <x>3000</x>
      <y>480</y>
      <scale>1</scale>
      <transform>
        <rotation>right</rotation>
        <flipped>no</flipped>
      </transform>
      <monitor>
        <monitorspec>
          <connector>DP-7</connector>
          <vendor>DEL</vendor>
          <product>DELL U2414H</product>
          <serial>R9F1P58S2P3S</serial>
        </monitorspec>
        <mode>
          <width>1920</width>
          <height>1080</height>
          <rate>60</rate>
        </mode>
      </monitor>
    </logicalmonitor>
  </configuration>
</monitors>

可以编辑此文件并将其(以 root 身份)复制到 /var/lib/gdm3/.config 文件夹以应用于 GDM“Greeter”(您登录的屏幕)。就我而言,我更喜欢登录我的中央显示器,因此我禁用了其他三个,将其原点设置为 0,0,然后将其设置为主显示器,如下所示:

<monitors version="2">
  <configuration>
    <logicalmonitor>
      <x>0</x>
      <y>0</y>
      <scale>1</scale>
      <primary>yes</primary>
      <monitor>
        <monitorspec>
          <connector>DP-5</connector>
          <vendor>DEL</vendor>
          <product>DELL U2414H</product>
          <serial>R9F1P4CC32EL</serial>
        </monitorspec>
        <mode>
          <width>1920</width>
          <height>1080</height>
          <rate>60</rate>
        </mode>
      </monitor>
    </logicalmonitor>
    <disabled>
      <monitorspec>
        <connector>DP-7</connector>
        <vendor>DEL</vendor>
        <product>DELL U2414H</product>
        <serial>R9F1P58S2P3S</serial>
      </monitorspec>
      <monitorspec>
        <connector>DP-6</connector>
        <vendor>DEL</vendor>
        <product>DELL U2414H</product>
        <serial>JH8WC8BT0C7L</serial>
      </monitorspec>
      <monitorspec>
        <connector>DP-4</connector>
        <vendor>DEL</vendor>
        <product>DELL U2414H</product>
        <serial>R9F1P4CC33PL</serial>
      </monitorspec>
    </disabled>
  </configuration>
</monitors>

最后要提醒一句:如果您打算编辑这两个文件,请务必备份并有恢复它们的方法。您不能让任何监视器处于可操作状态。就我而言,我安装了 OpenSSH_Server,并且能够恢复文件并从另一个系统重新启动。

相关内容