如何通过 ssh 获取系统上可用的不同输出的名称?

如何通过 ssh 获取系统上可用的不同输出的名称?

如果我从 X 会话中的终端运行 xrandr,我可以看到系统上可用的不同输出的名称。例如,我得到如下结果:

Screen 0: minimum 320 x 200, current 1440 x 900, maximum 8192 x 8192
VGA disconnected (normal left inverted right x axis y axis)
LVDS connected (normal left inverted right x axis y axis)
    1440x900       59.9*+
    1280x854       59.9  
    1280x800       59.8  

这很棒,但只有当我在计算机前或通过远程桌面 (VNC) 进入 X 会话时,它才有效。我怎样才能通过 SSH 远程获取这些相同的名称?我可能不会使用 xrandr,但我应该使用什么呢?

通过上述示例,我希望从 SSH 获取“VGA”和“LVDS”值。

答案1

如果您通过 ssh 连接,您很可能甚至没有运行 X 会话。即使您有,默认情况下 ssh 会话也不会连接到其中任何一个... 您甚至可以通过 ssh 登录到与打开 X 会话的用户不同的用户。

例如如果我 ssh 到我的远程机器我有:

(0)pern:~% xrandr --current
Can't open display 

因此我必须查找 X 会话是否正在运行以及谁已连接:

(0)pern:~% w
 01:57:06 up 10 days,  9:56,  4 users,  load average: 0.12, 0.17, 0.13
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
romano   tty7     :0               08Nov13 10days  1:29m  6.95s gnome-session -
romano   pts/2    :0               08Nov13 10days 23.67s 23.67s /home/romano/bi
romano   pts/0    xxx.xx.xxx.xxx   01:56    2.00s  0.08s  0.00s w
romano   pts/3    :0               08Nov13  6:48m  0.08s  0.08s zsh

嗯...让我们看看显示:0 的功能,假设我以同一个用户身份登录,因此我有权限:

(1)pern:~% xrandr --current -display  :0
Screen 0: minimum 320 x 200, current 1680 x 1050, maximum 8192 x 8192
DIN disconnected (normal left inverted right x axis y axis)
DVI-0 connected 1680x1050+0+0 (normal left inverted right x axis y axis) 430mm x 270mm
   1680x1050      59.9*+
   1600x1200      60.0  
   1280x1024      75.0     60.0  
   1024x768       75.1     72.0     70.1     60.0  
   832x624        74.6  
   800x600        72.2     75.0     60.3     56.2  
   640x480        72.8     75.0     66.7     60.0  
   720x400        70.1  

请注意,如果非图形会话中的用户对服务器具有足够的权限,那么所有这些都将起作用。基本上,它需要是启动 X 服务器的同一个用户(有时,也需要这样做.Xauthority,即使在这种情况下也不需要);要让它随时工作,你应该xhost +在服务器上执行(但这有大的安全风险)。

答案2

我已经介绍过如何列出显示在以前的生活中,这应该允许您迭代每个 X 显示并显示可用的输出

w -hs | awk '{print $3}' | sort -u | xargs -I% xrandr -display %

我不知道你是否需要循环显示,但无论如何它都应该有效。

相关内容