web-dev-qa-db-ja.com

2つの独立したパネルアイコンが、開いたときに同じアイコンの下にグループ化されるのはなぜですか

パネルにロックされている2つの.desktopファイルがあります。どちらもターミナルウィンドウを開き、一連のコマンドを(ユーザー入力を使用して)実行します。問題は、一方が既に開かれている間に、両方が同じもの(最初に開かれたもの)の下にグループ化されるという結果になります。これは、パネルで新しいアイコンを開く代わりに、ctrl + alt + tショートカットでターミナルウィンドウを開いた場合、既に開いている.desktopファイルに追加されるため、少し面倒です。

ユニティインターフェイスでUbuntu 12.10を実行しています。

2
Python Student

私は問題がgnome-terminalのウィンドウプロパティのWM_CLASS(STRING)にあると思う

異なるアイコンの2つのデスクトップファイルがあり、gnome-terminalsを実行している場合...コマンド xprop でWM_CLASSを確認できます。

  • xprop | grep WM_CLASS

次に、ウィンドウをクリックします(クロスカーソルを使用) ...と、アプリケーションの結果は次のようになります。

WM_CLASS(STRING)= "gnome-terminal"、 "Gnome-terminal"

私の意見では、ウィンドウは同じWM_CLASSを持っているため、Unityランチャーでグループ化されます。


Gnome-Terminalでクラスと名前を設定する

この問題を回避するには、デスクトップファイルごとに異なるWM_CLASS文字列を設定してください。

コマンドは次のようになります。

  • gnome-terminal --disable-factory --class <appname> --name <appname>

ここに、gnome-terminalを実行して小さなスクリプトを実行する例があります。

  • gnome-terminal --disable-factory --class term-red --name term-red --title Term-Red --window-with-profile=red -e '/home/virtual/Desktop/test1.sh'

2つのデスクトップファイルの例。

スクリプトを実行する2つのデスクトップファイルを作成しました(gnome-terminalを使用)、およびgnome-terminalデスクトップアイコンはUnityランチャーにロックされています。

1)gnome-terminal.desktop
2)term-green.desktop
3)term-red.desktop

enter image description here

3つのデスクトップファイルをクリックすると、それらは同じアイコンの下にグループ化されません。

enter image description here

ご覧のとおり、3つのターミナルが実行されています(独自のアイコン付き)

enter image description here

ここには、term-red.desktopのコンテンツがあります。

enter image description here

.desktopファイルに追加する重要なキーは次のとおりです。

  • Exec=gnome-terminal --disable-factory --class term-red --name term-red --title Term-Red --window-with-profile=red -e '/home/virtual/Desktop/test1.sh'
  • StartupWMClass=term-red
  • StartupNotify=true

ここには、 Desktop Entry Specification に関する情報があります。


別のオプションは、gnome-terminalの代わりにxtermを実行することです。
xtermはオプションクラスと名前を受け入れます。

  • Exec=uxterm -class term-red -name term-red -T Term-Red -e '/home/virtual/Desktop/test1.sh'

注:ニーズに応じてこれらの例を変更してください。

それが役に立てば幸い。

3
Roman Raguet

おそらく、Execにgnome-terminalを使用しているためでしょう。 ドキュメント を使用して、実行可能ファイルをアドレス指定し、Terminal=true行を追加して端末で実行できます。

[Desktop Entry]
Version=0
Name=Your app
Comment=An app for doing something
Exec=/complete/path/to/your/file
Icon=gnome-terminal
Terminal=true
Type=Application
Categories=Application;

以下は、ターミナルと同じアイコンのテストアプリの結果を示すスクリーンショットです。

Test app with Terminal icon

Execは異なるため、ウィンドウはグループ化されません。

独自のアイコンを使用して、アプリを別のものにすることもできます。 SVGまたはPNGファイルを~/.iconsに移動し、アイコンにファイルのname.extのみを使用すると、Unityで最高の結果が得られます。

1
Alen

ランチャーをよりきれいに保つために、それらはグループ化されています(10個のウィンドウが開いている場合を想像してください)。そのアイコンを1回クリックすると、最後にフォーカスがあったウィンドウの1つにフォーカスが移動します。そのアイコンをもう一度クリックすると、デスクトップ上のすべてのウィンドウが広がり、次のように必要なウィンドウを選択できるようになります。

Spread

それに慣れるときそれは本当に便利です。

1
Jack

時間の短い人にとっては非常に簡単ですが、やりがいのないアプローチは:

  1. 開いているすべてのファイルシステムウィンドウを閉じます。
  2. サイドバーからファイルアイコンのロックを解除します。
  3. ランチャーを使用して、ファイルを見つけて、もう一度ウィンドウを開きます
  4. アイコンを再度ランチャーにロックします。

これで解決できる場合とできない場合があります。私はちょうどubuntuの初心者です。お役に立てれば :)

0
user633958