web-dev-qa-db-fra.com

Comment fonctionne le fichier EXEC des fichiers .desktop?

Cela fait plusieurs mois que j'ai ce problème horrible. J'utilise actuellement Unity 2D et je gère mes entrées de menu à l'aide de fichiers .desktop, ce qui est fatiguant. Y a-t-il une meilleure façon de les gérer? Quoi qu'il en soit, le problème vient du champ EXEC. Je suis tellement fatigué! Je me bats pour résoudre ce problème depuis des jours! Cela m'a presque fait une dépression nerveuse une fois. Par exemple, la dernière entrée que j'ai essayé d'ajouter était une entrée pour un jeu Windows (utilisant Wine):

[Desktop Entry]
Name=Venus Patrol 1.1
Icon=/usr/share/icons/venuspatrol.jpg
Type=Application
Categories=Game;
Exec=wine "/home/LOL/Autres/ProgramFiles/Games/Venus Patrol 1.1/VENUS PATROL.exe"
Path="/home/LOL/Autres/ProgramFiles/Games/Venus Patrol 1.1"
Keywords=game;indie;jam;
Terminal=true
GenericName=Indie game by Neil Thapen originally made for TIGSource Cockpit Competition 2009

Je mets directement les programmes et les jeux exécutables (aucune installation requise, principalement Windows) dans le répertoire "/ home/LOL/Autres/ProgramFiles". Je n'aime pas jouer avec les dossiers racine, car je suis obligé d'ouvrir le gestionnaire de fichiers en tant que root et de parcourir tous les dossiers système.

Que le chemin contienne ou non des espaces, cela ne fonctionne pas. Que je précise le chemin d’environnement WINEPREFIX ou non, cela ne fonctionne pas. J'ai essayé Alacarte, mais ça ne marche pas aussi bien. J'ai lu this , mais cela n'a pas aidé.

S'il vous plaît, aidez-moi, j'ai besoin d'aide. Avez-vous des idées?

PS: ... eh bien, je suis une personne difficile

EDIT: Donc, après la réponse de M. Gruber, j'ai mis à jour mon fichier .desktop, sans succès:

[Desktop Entry]
Name=Venus Patrol 1.1
Icon=/usr/share/icons/venuspatrol.jpg
Type=Application
Categories=Game;
TryExec=/home/LOL/Autres/ProgramFiles/Games/Venus\sPatrol\s1.1/VENUS\sPATROL.exe
Exec=wine "/home/LOL/Autres/ProgramFiles/Games/Venus Patrol 1.1/VENUS PATROL.exe"
Path="/home/LOL/Autres/ProgramFiles/Games/Venus Patrol 1.1"
Keywords=game;indie;jam;
Terminal=true
GenericName=Indie game by Neil Thapen originally made for TIGSource Cockpit Competition 2009.

Que je précise la variable Path ou non, comme toujours, cela ne fonctionne pas. Cela peut être lié à Wine (WINEPREFIX, ce genre de choses), car j'ai (supposément) eu finalement le champ Exec bien écrit.

3
SyS

Si vous utilisez des fonctionnalités de Shell, vous devez utiliser sh -c "the command". En outre, avec Wine, vous devez définir le répertoire actuel pour certains éléments. man wine

2
user72421

Je vous suggère d'essayer de changer votre ligne Exec pour:

Exec="/usr/bin/wine /home/LOL/Autres/ProgramFiles/Games/Venus Patrol 1.1/VENUS PATROL.exe"
0
John S Gruber

J'avais aussi ce problème précis et je ne pouvais pas le faire fonctionner avec les réponses que je pouvais trouver n'importe où. En fin de compte, j'avais défini par erreur les mauvaises autorisations sur le fichier de bureau. Si les autorisations ne sont pas définies sur 644 (Sudo chmod 644 [filename]), le lien dans le tableau de bord ne fonctionnera pas pour moi pour une raison quelconque. Peut-être que cela pourrait être votre problème aussi?

0
Cyriuz

Sur le chemin = mettre le/à la fin

exemple:

Path = "/ home/LOL/Autres/ProgramFiles/Games/Venus Patrol 1.1 /"

0
Thevirtua