Openbox 中的每个实例应用程序设置

Openbox 中的每个实例应用程序设置

我需要运行同一程序的两个实例,并且每个实例具有不同的 Openbox 属性。

假设我想运行两个 Thunderbird 实例。即使我创建两个符号链接,即

/usr/bin/icedove-1
/usr/bin/icedove-2

两个实例仍然具有相同的名称和标题:

$ obxprop | egrep '_OB_APP'
_OB_APP_TYPE(UTF8_STRING) = "normal"
_OB_APP_TITLE(UTF8_STRING) = "Icedove Mail/News"
_OB_APP_CLASS(UTF8_STRING) = "Icedove"
_OB_APP_NAME(UTF8_STRING) = "Mail"
_OB_APP_ROLE(UTF8_STRING) = "3pane"

如何区分同一程序的两个实例?

我可以用一个参数启动一个程序,这会改变TITLENAME吗?

答案1

Thunderbird 作为 GTK+ 应用程序,支持--class命令行选项设置WM_CLASS属性:

$thunderbird --class TEST &
$obxprop | grep 'OB_APP'
_OB_APP_TYPE(UTF8_STRING) = "normal"
_OB_APP_TITLE(UTF8_STRING) = "Mozilla Thunderbird"
_OB_APP_GROUP_CLASS(UTF8_STRING) = "TEST"
_OB_APP_GROUP_NAME(UTF8_STRING) = "thunderbird"
_OB_APP_CLASS(UTF8_STRING) = "TEST"
_OB_APP_NAME(UTF8_STRING) = "Mail"
_OB_APP_ROLE(UTF8_STRING) = "3pane"

Openbox 支持每个应用程序设置由窗口类别决定在 中的条目class上使用该属性。您可以使用不同的命令行选项启动两个 Thunderbird 副本,并按您提供的类应用窗口管理器设置。<application>rc.xml

其他 GTK+ 应用程序通常支持相同的行为。

相关内容