.desktopとdockの間でアイコンを同期します

Jun 01 2020

ホームディレクトリ~/.local/share/applications/startMyApp.desktopにカスタムの.desktopエントリを作成し、gnome-terminalの代わりにxtermを使用するように作成しました。ドック内で、インタラクティブに使用するgnome-terminalとは異なる外観にしたい。

startMyApp.desktop次のようになります。

[Desktop Entry]
Type=Application
Name=MyScript
Terminal=false
Exec=xterm -e myScript.sh
Icon=myIcon.png

でアイコンファイルを作成しました ~/.icons/myIcon.png

アイコンは、デフォルトのファイルブラウザに正しく表示されます。ファイルブラウザから開くと、期待どおりにxtermでスクリプトが実行されますが、ドック内のアイコンは他の一般的なxtermアイコンとして表示されます。そのアイコンはどこから来たのですか?バイナリに埋め込まれていますか?

どうすればこれを変更できますか?ドック内のアイコンを.desktopファイルで指定されているものと同じように表示したい。Ubuntuにバンドルされているアプリケーションは、起動時にドックに同じアイコンが表示されます(開いているウィンドウの数を示す赤い点は別として)。

回答

pomsky Jun 01 2020 at 22:18

あなたは適切な追加する必要がStartupWMClassエントリーあなたに.desktopファイルを。これを行うには、以下の手順に従います。

  1. 問題のアプリケーションを起動します。
  2. 別のターミナルウィンドウを起動して、を実行しxprop WM_CLASSます。
  3. 開いているアプリケーションウィンドウにカーソルを置きます。これで、カーソルが十字線に変わるはずです。クリック。あなたは得るべきであるWM_CLASS、ターミナルウィンドウ内のアプリケーションのための文字列を。
  4. .desktopファイル次の行を追加します。

    StartupWMClass=OBTAINED-VALUE
    

    OBTAINED-VALUE手順3で取得した値を引用符なしで入力する代わりに。


OPからの更新:

また、xtermインスタンスの名前を指定する必要があるようです。exec行は次のようになりますxterm -name myApp -e myScript.sh