2017-09-25 2 views
-2

Je suis sous Linux et en particulier, un projet pour détecter tout d'abord le spectre RF, puis un second fichier pour envoyer un préambule et un troisième pour envoyer des données sur la fréquence optimale. Ceci est réalisé grâce à un mélange de fichiers python et sh qui sont tous chmod + x.Icône de bureau sous Linux

Toute la procédure fonctionne bien quand je lance le premier fichier par cli, cependant, j'ai maintenant tenté de créer une icône de bureau pour la facilité d'utilisation et de démonstration similaire à ci-dessous:

[Desktop Entry] 
Version=1.0 
Type=Application 
Name=helloworld 
Comment= 
Exec=./test.py 
Icon= 
Path=/home/xxx/Desktop 
Terminal=true 
StartupNotify=false 

Quand je commence maintenant le processus utilisant l'icône du bureau, il ouvrira seulement le premier fichier python. Tous les liens restent mais ils ne fonctionnent pas. Y a-t-il quelque chose de significatif que je puisse manquer?

Répondre

0

Je pense que c'est une utilisation plutôt non conventionnelle des fichiers .desktop. Normalement, vous devez spécifier soit un chemin absolu vers l'exécutable, soit juste le nom, dans l'espoir que $ PATH le trouverait. Je ne pense pas qu'il soit garanti que l'invocation de l'icône du bureau définirait un répertoire de travail particulier, donc je suppose que les différents bits de votre application ne peuvent pas se trouver les uns les autres. La manière habituelle de contourner des problèmes comme celui-ci sous Linux, lorsqu'une application doit en invoquer une autre, est de s'assurer que toutes les parties sont dans $ PATH. Comme cela est souvent impraticable, une approche courante consiste à faire en sorte que la première partie de l'application utilise readlink() sur/proc/self/exe pour trouver son propre emplacement, puis analyser cela pour savoir où se trouvent les autres bits. Généralement, ils sont dans le même répertoire. Nous trouvons donc le chemin absolu en supprimant la partie finale, nom de fichier du chemin complet du premier exécutable, et en substituant le nouveau nom de fichier.

Il existe des façons similaires de faire la même chose, mais toutes impliquent de travailler avec des chemins d'accès absolus et connus, plutôt que de compter sur le bureau pour faire la bonne chose. Le bureau peut parfois faire la bonne chose, mais il ne sera pas portable.