Plasma タスク スイッチャーでアプリケーションのアイコンを変更するにはどうすればよいですか?

Plasma タスク スイッチャーでアプリケーションのアイコンを変更するにはどうすればよいですか?

私は KDE Plasma デスクトップ環境で Ubuntu 22.04 を使用しています。Obsidian 個人用 wiki を AppImage としてダウンロードし、メニュー項目を追加して にファイルを作成しまし.desktop~/.local/share/applications/

メニュー項目を作成するときに、Obsidian のロゴをアプリケーションのアイコンとして追加しました。メニューとタスクバーでは、Obsidian はこのアイコンで表示されます。ただし、Alt + Tab タスク スイッチャーでは、周囲に黄色/オレンジ色の赤道リングがある黒い「X」が付いた灰色の四角形の「プレースホルダー」アイコンとして表示されます。

メニューでアプリケーションを右クリックして「アプリケーションの編集」を選択すると、アイコン選択ウィジェットに正しいアイコンが表示されます。.desktopファイルにはアイコンを定義する次の行があります。

Icon=/home/username/icons/Obsidian.png

この行が正しいことは確かです。他の行 (たとえばIcon=~/icons/Obsidian.png) に変更すると、メニューに Obsidian のアイコンが表示されなくなります (代わりに空白スペースが表示されます)。ただし、何らかの理由で、タスク スイッチャーはそのファイルからアイコンを取得しません。

「MediumDefault」タスク スイッチャーを使用しています。特定のアプリケーションに適切なアイコン ファイルを使用するように設定するにはどうすればよいですか?

編集: もっと見る

@vanadium の回答に従って、 が、xprop私がすでに持っている唯一のツールであることがわかりました。それを使用して を見つけましたWM_CLASS(STRING) = "obsidian", "obsidian"。(それを使用するには、xpropターミナルで を実行し、情報が必要なウィンドウをクリックします)。

で、最後に~/.local/share/applications/Obsidian.desktop1 行追加し、次の各形式を順番に試しました。StartupWMClass

  • StartupWMClass="黒曜石", "黒曜石"
  • スタートアップWMClass="黒曜石"
  • スタートアップWMClass=黒曜石

ただし、ファイルを保存した後、タスク スイッチャー内のプレースホルダー アイコンが Obsidian アイコンに置き換わることはできませんでした。

答え1

デスクトップは、デスクトップ ランチャーを最終プロセスに接続できません。これを修正するには、デスクトップ ファイルで Obsidian ウィンドウの WMClass を指定する必要があります。

  1. wmctrl -lxまたは(Xorg でのみ機能)を使用するxpropか、Gnome Shell のルッキング グラス (Alt+F2 を押して入力し、lgEnter を押して [Windows] タブに移動し、開いているウィンドウのプロパティを一覧表示します) を使用して、ウィンドウの WMClass を決定します。

  2. デスクトップランチャーにWMClassを指定するには、次の行を追加します。

    StartupWMClass=<windowclass>
    

    ここで、<windowclass>はステップ 1 で見つけた値です (例: ) obsidian

関連情報