web-dev-qa-db-fra.com

Pourquoi deux icônes de panneau distinctes, une fois ouvertes, regroupées sous la même icône

J'ai deux fichiers .desktop distincts verrouillés sur le panneau. Les deux ouvrent des fenêtres de terminal et exécutent une série de commandes (avec une entrée utilisateur). Le problème est que, alors que l'un est déjà ouvert, l'ouverture de l'autre entraîne le regroupement des deux sous le même (celui qui a été ouvert en premier). C'est un peu troublant puisque..dire si j'ai ouvert une fenêtre de terminal par raccourci ctrl + alt + t, au lieu d'ouvrir une nouvelle icône dans le panneau, elle est ajoutée au fichier .desktop déjà ouvert!

J'utilise Ubuntu 12.10 avec une interface d'unité.

2
Python Student

Je pense que le problème pourrait être pour le WM_CLASS (STRING) dans les propriétés de la fenêtre du gnome-terminal

Si vous avez deux fichiers de bureau avec des icônes différentes mais exécutez gnome-terminaux ... vous pouvez vérifier le WM_CLASS avec la commande xprop

  • xprop | grep WM_CLASS

Cliquez ensuite dans les fenêtres (avec le curseur en croix) ... et le résultat pour vos applications devrait être:

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

À mon avis, étant donné que les fenêtres ont le même WM_CLASS, elles seront regroupées dans le lanceur Unity.


Définir la classe et le nom dans Gnome-Terminal

Pour éviter ce problème, vous pouvez essayer de définir une chaîne WM_CLASS différente pour chaque fichier de bureau.

La commande doit être:

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

Voici un exemple pour exécuter gnome-terminal et exécuter un petit script.

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

Exemple avec 2 fichiers de bureau.

J'ai créé 2 fichiers de bureau qui exécuteront des scripts (en utilisant gnome-terminal), et l'icône de bureau gnome-terminal verrouillée sur le lanceur Unity.

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

enter image description here

Lorsque je clique sur les 3 fichiers du bureau, ils ne sont pas regroupés sous la même icône.

enter image description here

Comme vous pouvez le voir, 3 terminaux sont en cours d'exécution (avec leur propre icône) .

enter image description here

Vous avez ici le contenu du terme red.desktop.

enter image description here

Les clés importantes à ajouter dans vos fichiers .desktop seraient:

  • 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

Ici, vous avez des informations sur Desktop Entry Specification .


Une autre option serait d'exécuter xterm à la place de gnome-terminal.
xterm acceptera la classe d'options et le nom.

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

REMARQUE: Veuillez modifier ces exemples en fonction de vos besoins.

J'espère que cela aide.

3
Roman Raguet

Peut-être parce que vous utilisez gnome-terminal pour Exec. Grâce à la documentation , vous pouvez adresser votre fichier exécutable puis ajouter une ligne Terminal=true pour l'exécuter dans un terminal.

[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;

Voici une capture d'écran qui montre le résultat d'une application de test avec une icône identique à Terminal:

Test app with Terminal icon

Les Exec étant différents, les fenêtres ne sont pas regroupées.

Vous pouvez également utiliser l'icône de votre choix pour rendre les applications différentes. Déplacement du fichier SVG ou PNG vers ~/.icons et en utilisant uniquement le nom.ext du fichier pour Icon donnera le meilleur résultat dans Unity.

1
Alen

Ils sont regroupés de cette façon pour garder votre lanceur plus propre (imaginez si vous aviez dix fenêtres ouvertes). Si vous cliquez une fois sur cette icône, le focus passe à l'une de ces dernières fenêtres. Si vous cliquez à nouveau sur cette icône, elle devrait étendre toutes ces fenêtres sur votre bureau et vous permettre de choisir celle que vous souhaitez - comme ceci:

Spread

C'est VRAIMENT pratique quand on s'y habitue.

1
Jack

ne approche très simple mais pas gratifiante pour ceux qui manquent de temps est:

  1. Fermez toutes les fenêtres du système de fichiers que vous avez ouvertes.
  2. Déverrouillez l'icône des fichiers dans la barre latérale.
  3. À l'aide du lanceur, recherchez des fichiers et ouvrez à nouveau une fenêtre
  4. Verrouillez à nouveau l'icône du lanceur.

Cela peut ou non le résoudre pour vous. Je suis juste un débutant à Ubuntu. J'espère que cela t'aides :)

0
user633958