8
votes

Hashbang pour gnome .desktopsktop fichiers

J'aimerais pouvoir ajouter un #! Commentaire en haut de mon .desktop de sorte que s'il a effectué des autorisations et que ce soit exécuté, 'll réellement courir. Cependant, je ne sais pas ce que l'interprète pour .desktop est, donc je ne sais pas quel fichier / usr / bin / pour écrire dans le hashbang. TOUTES IDÉES?


EDIT:

Jusqu'à présent, j'ai fait un petit script Bash, EXECDESKTOP , qui peut exécuter Desktop Fichiers: xxx

si j'ajoute ensuite ce qui suit à mon .desktop fichiers: xxx

Alors ça marche bien. Cette méthode fonctionne, mais je préférerais ne pas avoir à l'utiliser car elle nécessite l'installation d'EXECDESKTOP.


1 commentaires

Sauf si vous avez créé un package qui installe exécutésktop à l'aide de votre gestionnaire de packages système ( dpkg ? Rpm? émerger ? Etc) le script devrait probablement être dans / usr / local / bin , pas dans / usr / bin .


3 Réponses :


5
votes

Il n'y en a pas un; Les fichiers .desktop ne sont pas destinés à être exécutés. Exécutez l'exécutable indiqué dans la touche EXEC à la place.


3 commentaires

Ils sont exécutés d'une manière ou d'une autre. Il n'y a absolument aucun moyen d'invoquer un fichier .desktop de la ligne de commande? Cela ne semble pas très linux ...


Les fichiers de bureau ne sont pas exécutés. La ligne à l'intérieur d'eux qui a une ligne de commande exécutable est celle qui est exécutée. Le reste du fichier est analysé par l'environnement de bureau.


Le problème est que, dans mon cas, le script mentionné dans l'attribut EXED fonctionne, mais le fichier de bureau ne fonctionne pas uniquement sous Ubuntu (cela fonctionne sur Magea). C'est pourquoi il est logique d'ouvrir un fichier de bureau dans la ligne de commande afin qu'il exécute la commande de la même manière que le système d'exploitation effectue.



6
votes

Vous pouvez toujours utiliser xdg-ouvrir pour votre shebang, comme dans: xxx

Cela ne causera aucun problème car # Démarre également les commentaires dans .desktop fichiers.


11 commentaires

Intéressant, bien que xdg-ouvert semble vouloir ouvrir tous mes fichiers .desktop à GEDIT au lieu de les lancer réellement.


@Reinderien: avez-vous associé .desktop à geit ? Qu'est-ce que Application par défaut de requête XDG-MIME / X-X-Desktop retourner?


@ninjalj il ne renvoie rien (vide).


@Reinderien: Il semble gnome-ouvert est inconscient de Application / x-Desktop et finit par appeler le gestionnaire pour sa superclasse Texte / Code .


@Reinderien: Vous pouvez utiliser kfmclient exécuté au lieu de xdg-ouvert , si cela ne vous dérange pas de tirer dans beaucoup de bibliothèques QT / KDE.


@ninjalj Je vais prendre votre parole pour ça. Malheureusement, il semble que la réponse courte est que "il n'y a pas de réponse facile".


@Reinderien: Quoi qu'il en soit, vous devriez être capable d'utiliser #! / Bin / sed -ne s / ^ exec = // e comme ligne Shebang.


BugZilla.gnome.org/show_bug.cgi?id=343896 bugzilla.gnome.org/show_bug.cgi?id=307172


@Ninjalj Le numéro XDG-Open (Ouvre GEDIT) est dû à un bug de gnome. Il y a toujours une solution de contournement. S'il vous plaît voir ma réponse à la même question à [Askubuntu] ( askubuntu.com/questions/5172/... )


Cette réponse est fausse. Les fichiers de bureau ne sont pas destinés à être exécutés. Le fait que, dans certaines machines, XDG-Open pourrait fonctionner n'est qu'une question de l'association de fichiers, mais il est toujours faux. Ne courez pas de fichiers .desktop, ne les rendez pas exécutables.


@Marga Materola, vous avez donc voulu les utiliser pour lancer des programmes? Lorsque j'installe des programmes qui essaient de me donner un lanceur, je reçois un fichier de bureau. Quand je l'ouvre, il s'ouvre dans Gedit.



7
votes

juste pour être explicite, Ignacio est correct ici dans ce .desktop em> les fichiers ne doivent pas être dirigé directement. Il est possible (comme vous l'avez découvert), mais imprudent.

sur une autre note, n'utilisez pas xdg-ouvert code>. Cela peut arriver à fonctionner s'il y a un type de mime correctement associé, mais ce n'est pas fiable. P>

Vous devez utiliser GTK-Launch code>. Il est utilisé comme suit: p> xxx pré>

voici l'entrée de l'homme: p>

nom p>

launch ./path/to/shortcut.desktop


1 commentaires

Suscité sur le mérite technique; Mais la bonne réponse qui devrait être acceptée est celle de Ignacio Vazquez-Abrams.