如何获取当前 X 显示名称的列表?
除了是有用的知识之外,我还希望(希望!)能够xcalib -invert -alter
按照建议使用这个问题反转我的计算机上的两个屏幕中的第二个。
答案1
w
是的,就这么简单。这是一个扩展版本,who
可以显示谁登录了,以及他们从哪里连接。其中包括图形会话,它将向您显示所有当前 X 显示器以及其他有用的数据。
以下是我所看到的:
oli@bert:~$ w
01:07:38 up 5 days, 58 min, 4 users, load average: 0.40, 0.37, 0.41
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
oli tty7 :0 Sat00 5days 4:22m 0.94s gnome-session --session=gnome-fallback
oli pts/4 :0 Sat00 47:09m 0.77s 0.77s /bin/bash
oli pts/6 :0 Wed02 0.00s 0.12s 0.00s w
您可以使用各种标志(尝试)将其归档,然后如果您需要自动化,就-hs
可以awk
/了。考虑通过管道传输结果列表以获取唯一的显示字符串。像这样:grep
sort -u
oli@bert:~$ w -hs | awk '{print $3}' | sort -u
:0
答案2
@Oli 的回答在稳健性方面非常差。这绝对不是该命令的目的,该w
命令旨在列出系统中已登录的用户,并且发生到尝试检索每个用户会话的显示。
但当监视器是虚拟的时候,这种方法就不起作用,并且在其他情况下可能会失败。
具有虚拟显示的系统示例:
02:07:22 up 1:01, 1 user, load average: 1.83, 1.72, 1.21
USER TTY LOGIN@ IDLE JCPU PCPU WHAT
user 01:13 1:00m 0.00s 0.02s lightdm
通用解决方案
对于每个设置,唯一绝对可靠的解决方案是查看 X 服务器为每个显示器使用的 unix 套接字,即列出目录/tmp/.X11-unix/
前任:
root@host # ls /tmp/.X11-unix/
total 0
srwxrwxrwx 1 root root 0 Apr 2 01:06 X0
X0
是Unix 套接字Xorg 使用它与 X 客户端(您的图形程序)传递原始字节流。
这意味着名为 的单个显示器:0
连接到机器。(如果文件为 ,则X3
意味着显示器名为:3
)
这样您就可以确切地知道显示服务器正在使用什么显示器。