.XResources 不会自动加载。 - 我应该把 xrdb -merge ~/.Xresources 初始化放在哪里?

.XResources 不会自动加载。 - 我应该把 xrdb -merge ~/.Xresources 初始化放在哪里?

我将一个.Xresources文件添加到我的主目录中,当我从 shell 提示符加载它时,xrdb -merge ~/.Xresources资源设置被识别(对于随后启动的 X 程序)。

但是,我希望在登录我的用户帐户时始终应用这些资源。我想法~/.XresourcesX11系统默认会查找该文件,但事实并非如此。

该机器运行 CentOS 6,我从 MobaXterm (MS Windows) 远程连接到它,MobaXterm 提供 X 服务器并在 MS Windows 窗口中显示每个 CentOS 应用程序的窗口。

那么合并命令最好放在哪里呢?外壳初始化或~/.xinitrc?或者别的地方?

答案1

资源存储在X服务器上。因此,如果您在 Windows 上使用远程 X 服务器,最好的方法是将.Xresources文件复制到 Windows,并在启动 X 服务器时将其加载到 X 服务器中。

如果这对你不起作用,因为你想.Xresources在 CentOS 机器上使用你的系统,那么唯一的方法就是检查每次登录,例如在.profile.确保还检查,并且如果已设置则DISPLAY所有调用。进行某种检查以确保仅在您远程登录时才调用它也很好。最后,如果您同时有多个连接,您可能需要首先查看资源是否已加载,只有在资源丢失时才加载它们。xrdbDISPLAYxrdb


X 资源是用过的由 X 客户端(应用程序,但可能不是您的 MobaXTerm,即 Windows),但它们是已存储在 X 服务器上。

因此,当您运行 时xrdb,它会像所有 X 客户端一样连接到 X 服务器,并对存储的值进行更改。

如果所使用的 X 服务器在您的 Windows 计算机上运行(无论它是由 MobaXTerm 提供的,还是在 Windows 上运行的其他 X 服务器,例如 VcXsrv),那么这就是资源所在的位置。

我快速浏览了 MobaXTerm 文档,但不清楚如何在本地访问内置的 X 服务器。也许您可以通过“本地终端”来完成此操作,然后使用 Cygwin 或 WSL 在 Windows 计算机上执行 xrdb。

相关内容