Gnome:アプリケーションの実行に使用されたアイコンに関連付けられているアプリケーションの各インスタンスを取得できますか?

Gnome:アプリケーションの実行に使用されたアイコンに関連付けられているアプリケーションの各インスタンスを取得できますか?

私はGnome 3.30以降のorg.gnome.Terminal.desktopを使用しており、カスタムExec=gnome-terminal --window-with-profile=XXXコマンドを使用してプロファイルXXXを持つ2つの.desktopファイルを添付して、他のコンピュータでssh kalle@XXX簡単に端末を開くことができます。

特に、ローカルおよび他のコンピュータで複数の端末ウィンドウを使用するときに気に入らないのは、すべてのウィンドウがorg.gnome.Terminal.desktopアイコンに関連付けられていることです。

各ウィンドウをそのウィンドウに属するアイコンに関連付ける方法はありますか?

注:まだ開発中のEclipseのバージョンを使用し始めたときも同じ問題が発生しました。安全のために、以前の安定版を維持し、新しいバージョン用の別の.desktopファイルを作成しました。古いサイトから新しいサイトにソフトウェアサイトをコピーして貼り付け始めると、両方のウィンドウが古いサイトのアイコンに関連付けられます。 GNOME端末の問題とは異なり、ウィンドウは次のようになります。その他アプリ。 2つの実行可能ファイルのうちの1つの名前を変更しても何も変更されませんでした。

答え1

解決策が見つかりました。 "org.gnome.Terminal" が D-Bus サービス名に似ており、端末を開いてシステムログを確認しました。重要な部分は次のとおりです。

dbus-daemon: systemd で有効化: サービス名='org.gnome.Terminal' 単位='gnome-terminal-server.service'

私は "org.gnome.Terminal.XXX"という新しいサービスを作成し、システムXXXの.desktopファイル名を "org.gnome.Terminal.XXX.desktop"に変更することで問題が解決すると思いますが、実際には.desktopファイルは重要ではありません。次のように進んでください。

  1. 新しいD-Busサービスの作成
    • sudo cp /usr/share/dbus-1/services/org.gnome.Terminal{,.XXX}.service
    • アイテムの修正
      • Name=org.gnome.Terminal.XXX
      • SystemdService=gnome-terminal-server-XXX.service
      • Exec=/usr/lib/gnome-terminal/gnome-terminal-server --app-id org.gnome.Terminal.XXX
  2. 新しい Systemd デバイスの作成
    • sudo cp /usr/lib/systemd/user/gnome-terminal-server{,-XXX}.service
    • アイテムの修正
      • Description=GNOME Terminal Server XXX
      • BusName=org.gnome.Terminal.XXX
      • ExecStart=/usr/lib/gnome-terminal/gnome-terminal-server --app-id org.gnome.Terminal.XXX
  3. .desktop ファイルの更新
    • Exec=gnome-terminal --window-with-profile=XXX --app-id org.gnome.Terminal.XXX

--app-id組み込みサービス名の代わりにサービス名を使用するには、このオプションが必須です。

関連情報