.desktopファイルでターミナルコマンドのwmクラスを定義する方法

Mar 25 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クラスを定義する方法を教えてもらえますか?何も見つかりませんでした。

回答

1 anlar Jul 04 2020 at 16:43

独自に設定するのはアプリケーション次第であるため、ファイルWM_CLASS経由で設定することはできません。.desktopWM_CLASS

ただし、多くのアプリケーションでは、ツールキットの標準メソッド(GTK / Qt)を使用してクラスを変更できるため、ほとんどのアプリケーションは--classコマンドラインオプションを尊重します。

Daniel Mar 26 2020 at 07:36

私は現在、実際の解決策とは思わない次の回避策を使用しています。

gnome-terminalを使用しているので、wm_classを設定するには次の方法があります。

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

クラスをサポートしないラッパーにリンクされているため、ラッパーx-terminal-emulatorを使用して機能しませんでした。