为什么$DISPLAY有时是:0,有时是:1?

7
我正在使用xmacro记录键盘快捷方式,需要在重放时指定$DISPLAY。但是,有时我的$DISPLAY是:0,有时是:1,所以每次发生这种情况时,我都必须手动更改值。为什么会不断变化,有没有办法永久设置$DISPLAY的值为:0或:1?(我可以在一个终端中导出DISPLAY=:0,但这并不会更改新终端中$DISPLAY的值。)
1个回答

7

这个数字标识显示器(一组共享键盘和鼠标的监视器集合)

:0通常是本地显示器(即当您坐在电脑前面时的主显示器)。

:1经常被像SSH这样的服务使用,当您启用显示转发并登录到远程计算机时。

它也可以被启动脚本修改以尝试“修复”它。要找出是否正在发生这种情况,请运行

grep DISPLAY ~/.??*

.??*是一个技巧,可以获取所有的点文件,但不包括...(父文件夹和当前文件夹)。

如果没有打印任何内容,请以类似的方式检查/etc/profile/etc/bash*/etc/bash*/*

我找不到有用的xmacro手册,但大多数X11应用程序都支持选项-d-display来覆盖$DISPLAY

如果这不起作用,请创建xmacro.sh并添加以下内容:

 #!/bin/bash

 export DISPLAY=:0
 exec xmacro "$@"

现在使用xmacro.sh调用工具,它应该始终有效。

在一台大型机上,可以有数十个“DISPLAY”设备共享一个CPU和X“服务器”。(X客户端与服务器术语很容易让人感到困惑,所以我甚至不尝试去正确解释它。) - tripleee
一个X客户端是一种向X服务器发送渲染命令的应用程序。X服务器是能够执行这些渲染命令的东西。令人困惑的是,X服务器通常在桌子下方的个人电脑上运行,而X客户端有时在某些远程服务器或本地运行。 - Aaron Digulla
是的,我不想再去查找了,但是这就是现实。(-: - tripleee

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接