web-dev-qa-db-fra.com

Lanceur VirtualBox personnalisé dans GNOME 3

J'utilise Ubuntu 13.04 avec GNOME 3. Mon objectif est de créer un lanceur personnalisé qui lancera une machine virtuelle VirtualBox spécifique, et j'aimerais qu'il ait sa propre icône.

D'un point de vue purement fonctionnel, j'ai réussi. Cet article (webupd8.org) m'a donné une commande qui lance directement une machine virtuelle. J'ai donc créé un nouveau fichier .desktop dans ~/.local/share/applications qui utilise cette commande pour la partie 'Exec'. Lorsque je clique sur le lanceur, la machine démarre correctement.

Mon problème est avec le comportement de l'icône. J'ai spécifié une icône personnalisée dans le fichier .desktop, et elle apparaît magnifiquement dans ma barre de favoris. Cependant, lorsque je clique sur l'icône et que la machine virtuelle démarre, la fenêtre nouvellement ouverte n'est pas associée à mon lanceur personnalisé (c'est-à-dire que mon icône personnalisée n'est pas "mise en évidence"). Au lieu de cela, la fenêtre devient associée à une icône VirtualBox nouvellement créée.

Est-ce que quelqu'un sait s'il existe un moyen d'indiquer à GNOME 3 que je veux associer la nouvelle fenêtre à mon icône personnalisée? Je me souviens avoir eu un problème similaire avec Matlab et avoir spécifié quelque chose appelé "StartupWMClass" dans le fichier .desktop, mais je ne sais pas à quoi je devrais définir la valeur dans ce cas (ou si cela s'applique même pour un lanceur non Matlab) .

Voici mon fichier .desktop au cas où quelqu'un penserait qu'il pourrait s'avérer utile:

[Desktop Entry]
Name=Windows 8
GenericName=Windows 8 Virtual Machine
Comment=Windows 8 in VirtualBox
Exec=VBoxManage startvm 'Windows 8'
Icon=/home/username/Pictures/Icons/Windows8.png
Terminal=false
Type=Application
Categories=Office;

Merci!

2
Garrett Warnell

J'utilise le dernier GNOME 3.10 sur Fedora 20 et StartupWMClass=VirtualBox semble faire l'affaire.

Peut-être qu'il a été corrigé depuis le moment où vous avez posé la question?

Quoi qu'il en soit, VirtualBox a toujours un inconvénient - toutes les fenêtres ont le même WM_CLASS. Donc, si vous utilisez plusieurs machines, elles seront regroupées. J'ai déposé un rapport de bogue pour cela: https://www.virtualbox.org/ticket/12534 . J'espère que nous le verrons bientôt résolu.

1
antitoxic

J'ai trouvé une bonne solution de contournement.

Mon lanceur windows.desktop:

[Desktop Entry]
Name=Windows 10 VM
GenericName=Windows 10 Virtual Machine
Comment=Windows 10 in VirtualBox

Exec=/home/admin/.local/share/applications/windows.sh
Icon=/home/admin/.local/share/applications/windows.png
StartupWMClass=Windows

Terminal=false
Type=Application
Categories=Office;

Mon fichier windows.sh:

#!/bin/bash

virtualbox --startvm agromov-vm &
VM_PID=$!
sleep 1
xprop -id $(wmctrl -lp | grep $VM_PID | cut -d ' ' -f 1) -f WM_CLASS 8s -set WM_CLASS 'Windows'

"agromov-vm" est le nom de la machine virtuelle
wmctrl obtient l'identifiant de la fenêtre sans le pointeur de la souris

0
Artem Gromov