🎃

AppImageなアプリがDock上で分裂するのを解決する

2021/08/11に公開

前提

  • Biscuit (<https://eatbiscuit.com/ja) の Linux 版は AppImage で配布されている
  • AppImage のアプリは、メニューにも出てこないし、Dock とか Dash に登録できない
  • .Desktop ファイルを /home/yakumo/.local/share/applications/ に置くことでメニューに出てくる

問題点

  • Dash にアプリケーションを登録することはできるが、アプリが起動すると Dock のアイコンではなく別のアイコンが表示されてしまう(Biscuit が 2 個になってしまう)

why?

  • おそらく実行ファイル名とウィンドウ名が異なるため

解決策

  • .Desktop ファイルに StartupWMClass=biscuit を追加する。

調べ方

対象のアプリケーションを起動した状態で xprop を実行するとマウスカーソルがターゲットの形になるので、その状態で調べたいアプリケーションをクリックする。

WM_CLASS(STRING) = "biscuit", "biscuit" となっているので、それをそのまま .Desktopファイルの StartupWMClass に指定すれば良い

(Firefox など、名前が異なるものが 2 つ表示される場合があるが、この場合どちらを指定するかは不明。どちらかを指定すれば当たると思われる)

蛇足

biscuit.Desktop の中身は以下の通り

`#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Name=Biscuit
Keywords=
Exec=AppImageへのパス %u
Terminal=false
X-MultipleArgs=false
Type=Application
Categories=Network;
Icon=アイコンファイルへのパス(png形式)
StartupNotify=true
StartupWMClass=biscuit

Discussion