解决方法

解决方法

在 Docker 容器中运行 GUI 应用程序时,我映射 X11 套接字以使应用程序能够访问主机上的 X 服务器,如下所示:

docker run -v /tmp/.X11-unix:/tmp/.X11-unix my_image

问题是,默认情况下,WM 将客户端的主机名(在我的例子中是容器的 ID)添加到标题栏: dockerized 窗口示例

该 ID 不会给用户增加任何价值。有没有办法去掉这个(effbff37ddd9)部分?

我们使用 Openbox 作为窗口管理器。

答案1

通过查看 Openbox 的源代码,我可以得出结论,不可能隐藏客户端名称部分,因为逻辑是硬编码在客户端.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 ...

结果:

在此输入图像描述

相关内容