X11

.XResources 不會自動載入。- 我應該把我的 xrdb -merge ~/.Xresources 初始化放在哪裡?

  • August 26, 2021

我在我的主目錄中添加了一個.Xresources文件,當我從 shell 提示符載入它時xrdb -merge ~/.Xresources,資源設置被辨識(對於之後啟動的 X 程序)。

但是,當我登錄到我的使用者帳戶時,我希望始終應用這些資源。我以為X11 系統~/.Xresources預設會查找該文件,但事實並非如此。

這台機器執行 CentOS 6,我從 MobaXterm (MS Windows) 遠端連接到它,它提供 X 伺服器並在 MS Windows 視窗中顯示每個 CentOS 應用程序的視窗。

那麼我把合併命令放在哪裡最好呢?外殼初始化或~/.xinitrc?或者別的地方?

資源儲存在 X 伺服器上。因此,如果您在 Windows 上使用遠端 X 伺服器,最好的方法是將.Xresources文件複製到 Windows,並在您啟動 X 伺服器時將其載入到 X 伺服器中。

如果這對你不起作用,因為你想.Xresources在 CentOS 機器上安裝你的,那麼唯一的方法就是檢查每次登錄,例如 inside .profile。確保還檢查DISPLAY,並且所有呼叫xrdbifDISPLAY已設置。進行某種檢查以確保僅在您遠端登錄時才呼叫它也很好。最後,如果您同時有多個連接,您可能希望先使用xrdb以查看資源是否已載入,並且僅在它們失去時才載入它們。


X 資源X 客戶端(應用程序,但可能不是您的 MobaXTerm,即 Windows)使用,但它們儲存在 X 伺服器上。

因此,當您執行時xrdb,它會像所有 X 客戶端一樣連接到 X 伺服器,並對儲存的值進行更改。

如果使用的 X 伺服器在您的 Windows 機器上執行(無論它是由 MobaXTerm 提供的,還是在 Windows 上執行的其他 X 伺服器,如 VcXsrv),那麼這就是資源所在的位置。

我快速瀏覽了 MobaXTerm 文件,但不清楚如何在本地訪問內置的 X 伺服器。可能您可以通過“本地終端”執行此操作,然後使用 Cygwin 或 WSL 在您的 Windows 機器上執行 xrdb。

引用自:https://unix.stackexchange.com/questions/665824