I3

如何在 .desktop 文件中為終端命令定義 wm 類

  • July 4, 2020

我正在玩弄 .desktop 文件,最後得到了這個:

[Desktop Entry]
Version=1.0
Name=Music Player (cmus)
Comment=Command Line Music Player
GenericName=Music Player
Exec=cmus
Terminal=true
X-MultipleArgs=false
Type=Application
StartupNotify=false

到目前為止一切正常。

現在我也在使用 i3wm 並想將應用程序分配給特定的工作區。這是我目前的配置:

assign [class="^cmus.*$"] 5:🎵

不幸的是,該類尚未設置,因為尚未定義。

對於其他接受參數的應用程序,它工作得很好,例如 Firefox:

[Desktop Entry]
Version=1.0
Name=Twitter Profile - Firefox
Comment=Browse the World Wide Web
GenericName=Web Browser
Keywords=Internet;WWW;Browser;Web;Explorer
Exec=firefox --class="Firefox Social Media" -P "Social Media" %u
Terminal=false
X-MultipleArgs=false
Type=Application
Icon=firefox

使用 i3wm 配置:

assign [class="^Firefox Social Media$"] 10:🌐

有人能告訴我如何為從終端開始的 .desktop 條目定義 wm 類嗎?我什麼也找不到。

WM_CLASS不能通過.desktop文件進行設置,因為它取決於應用程序來設置自己的WM_CLASS.

但是許多應用程序仍然允許使用他們的工具包(GTK/Qt)的標準方法來改變他們的類,所以他們中的大多數人都會尊重--class命令行選項。

我現在正在使用以下解決方法,我認為這不是真正的解決方案。

當我使用 gnome-terminal 時,可以通過以下方式設置 wm_class:

[Desktop Entry]
Exec=gnome-terminal --class=cmus -e cmus
Terminal=false

使用包裝器x-terminal-emulator不起作用,因為它連結到不支持該類的包裝器。

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