web-dev-qa-db-fra.com

Aide avec la ligne "Exec = ..." pour le lanceur .desktop - la commande ne fonctionne que dans le terminal

Je veux ajouter une autre option de menu contextuel à mon lanceur Thunderbird dans Unity. Cependant, cela ne fonctionne pas. L'action supplémentaire apparaît dans le menu contextuel du lanceur, et lorsque je clique dessus, le curseur se transforme en "cercle d'attente" pendant quelques secondes, mais rien ne se passe. Si je lance le script dans un terminal, cela fonctionne comme un charme.
Que dois-je changer pour exécuter ces commandes nécessaires à partir du menu contextuel du lanceur?

Les commandes que je dois exécuter sont externalisées dans un fichier de script bash, donc la ligne Exec est:

Exec=/bin/bash -c "/home/bytecommander/bin/Thunderbird-win.sh"

Contenu de /home/bytecommander/bin/Thunderbird-win.sh:

#! /bin/bash

# Launches Thunderbird after mounting the Windows partition with that profile.
# Both mount commands as root are set in the sudoers file to not ask for passwords.

Sudo mount /dev/sda2 /mnt/windows
Thunderbird -p windows
Sudo umount /dev/sda2

Contenu raccourci de /usr/share/applications/Thunderbird.desktop (sans traductions):

[Desktop Entry]
Encoding=UTF-8
Name=Thunderbird Mail
Comment=Send and receive mail with Thunderbird
GenericName=Mail Client
Keywords=Email;E-mail;Newsgroup;Feed;RSS
Exec=Thunderbird %u
Terminal=false
X-MultipleArgs=false
Type=Application
Icon=Thunderbird
Categories=Application;Network;Email;
MimeType=x-scheme-handler/mailto;application/x-xpinstall;
StartupNotify=true
Actions=Compose;Contacts;LoadWindowsProfile

[Desktop Action Compose]
Name=Compose New Message
Exec=Thunderbird -compose
OnlyShowIn=Messaging Menu;Unity;

[Desktop Action Contacts]
Name=Contacts
Exec=Thunderbird -addressbook
OnlyShowIn=Messaging Menu;Unity;

[Desktop Action LoadWindowsProfile]
Name=Run with Windows profile
Exec=/bin/bash -c "/home/bytecommander/bin/Thunderbird-win.sh"
OnlyShowIn=Messaging Menu;Unity;
3
Byte Commander

Je suis à la fois désolé et un peu gêné de vous dire que le problème a disparu ...

La raison pour laquelle rien ne s'est produit si le démarrage à partir du lanceur .desktop était une faute de frappe dans le chemin du script, de sorte que le Exec=... la ligne pointait vers un fichier inexistant.

Je ne peux que m'excuser auprès de ceux qui ont consacré une partie de leur temps à cette question.

1
Byte Commander