これは、一般的な問題の具体例であり、まだ解決策を見つけることができませんでした。
自分の中から「サブプログラム」(つまり、エミュレーターまたは仮想デバイス)を起動するプログラム(Android Virtual Device Manager)があります(他の場所からも起動できます)。これらのプログラムのいずれかのインスタンスを同じUnityアイコンの下にグループ化する必要があります。
私は.desktop
これを試して達成するためのファイルを作成しましたが、その方法を正確に知りません。デスクトップファイルは次のとおりです。
#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Name=Android Virtual Device
Icon=/home/ben/.icons/android.svg
Exec=/home/ben/usr/bin/android avd
StartupWMClass=Android Virtual Device Manager
私が理解してStartupWMClass
いることから、これを正しく達成するために設定する必要があるものです。xprop WM_CLASS
それぞれのウィンドウで2つのクラス名(「Android Virtual Device Manager」と「emulator64-arm」)を取得しました。両方とも個別に機能します(起動方法に関係なく、ランチャーアイコンはプログラムに正しくアタッチされます)が、両方で機能するようにすることはできません。
私はどういうわけか2つの値を設定する必要があると仮定しStartupWMClass
ていますが、正しくそれを行うことができませんでした(またはそれが有効な操作であるかどうかを知っています)。環境変数のようにコロンで区切られたもの、コンマで区切られたもの、引用符などを試しましたが、公式のドキュメントにはヒントが見つかりません。
助言がありますか?
編集:
もう1つの、より独創的ですが、おそらくより識別可能な例は、Matlab
です。2013aを実行していますが、最初に表示されるスプラッシュスクリーンとプログラムのWM_CLASS
値はまったく異なります。つまり、ランチャーをクリックStartupWMClass=com-mathworks-util-PostVMInit
すると、スプラッシュ画面に別の(デフォルトの不明)Unity
アイコンが表示され、残りはランチャーの下にグループ化されて表示されます。
xprop WMCLASS
最初にスプラッシュ画面を使用してクリックし、アクティブなMatlab
セッションで繰り返すと、次の端末出力が得られます。
ben@ben-OptiPlex-9010:~$ xprop WM_CLASS
WM_CLASS(STRING) = "MATLAB", "MATLAB"
ben@ben-OptiPlex-9010:~$ xprop WM_CLASS
WM_CLASS(STRING) = "sun-awt-X11-XFramePeer", "com-mathworks-util-PostVMInit"
次の行に沿って何かを指定できる場合:
StartupWMClass=com-mathworks-util-PostVMInit&&MATLAB
それは完全に機能します(両方とも個別に機能するため)が、構文が存在する場合でも、その構文についてはわかりません。これまでのところ、私が試したことがないことを知っています。
私は、これがうまく機能するデスクトップの非常に基本的な要素であると信じているので、いずれの方法でも助けまたは決定的な答えは素晴らしいでしょう。
Drawers
あなたが任意のサブ項目をクリックしたとき、それはまだで、独自のアイコンを使用して作成され、それは単にグループのリンクを、そのリンクで、彼らが示したものからUnity
、私は停止しようとしているものですランチャー