Openbox

Openbox 中的每個實例應用程序設置

  • July 11, 2014

我需要執行同一個程序的兩個實例,並且每個實例都有不同的 Openbox 屬性。

可以說,我想執行兩個 Thunderbird 實例。即使我創建了兩個符號連結,即

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

兩個實例仍然具有相同的 NAME 和 TITLE:

$ 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"

如何區分同一程序的兩個實例?

我可以用一個參數啟動一個程序,這會改變TITLEorNAME嗎?

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+ 應用程序通常會支持相同的行為。

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