X11
通過遠端 X 伺服器連接在標題欄中隱藏客戶端主機名(Docker 容器 ID)
在 Docker 容器中執行 GUI 應用程序時,我正在映射 X11 套接字以使應用程序能夠訪問主機上的 X 伺服器,如下所示:
docker run -v /tmp/.X11-unix:/tmp/.X11-unix my_image
問題是預設情況下,WM 將客戶端的主機名(在我的情況下是容器的 ID)添加到標題欄:
此 ID 不會為使用者增加任何價值。有沒有辦法擺脫這
(effbff37ddd9)
部分?我們使用 Openbox 作為視窗管理器。
通過查看 Openbox 的原始碼,我可以得出結論,無法隱藏客戶端名稱部分,因為邏輯在client.c中是硬編碼的:
if (strcmp(localhost, s) != 0) self->client_machine = s; ...
然後在這裡:
if (self->client_machine) { visible = g_strdup_printf("%s (%s)", data, self->client_machine); g_free(data); } ...
解決方法
不過有一個解決方法。通過為容器提供一個合理的主機名,可以使其至少不那麼煩人,並且可能對使用者更有用:
docker run ... -h my-app ...
結果: