web-dev-qa-db-fra.com

Comment échapper aux espaces dans les fichiers .desktop Exec line

Je veux faire un fichier .desktop comme décrit ici .

[Desktop Entry]
Name=Sublime Text 2
GenericName=Sublime Text 2
Comment=Edit text files
Exec=/home/user/opt/sublime/Sublime Text 2/sublime_text %U

Cependant, utiliser le menu contextuel de Nautilus avec Ouvrir avec me donne

Impossible de trouver '/ home/user/opt/sublime/Sublime'

Alors j'ai essayé

Exec="/home/user/opt/sublime/Sublime Text 2/sublime_text" %U

et j'ai

Le texte s'est terminé avant que la citation correspondante soit trouvée pour ". (Le texte était '"/home/user/opt/sublime/Sublime')

Quelle est la bonne façon d'échapper aux espaces dans la ligne Exec des fichiers .desktop?

14
nh2

Faites précéder chaque espace par une barre oblique inverse:

[Desktop Entry]
Name=Sublime Text 2
GenericName=Sublime Text 2
Comment=Edit text files
Exec=/home/user/opt/sublime/Sublime\ Text\ 2/sublime_text %U
5
January

J'avais exactement le même problème! Après avoir essayé différents modèles d'échappement/citations, j'ai décidé que la solution la plus simple était d'avoir un lien symbolique vers sublime_text sur mon $ PATH (ou vous pouvez utiliser un alias de ligne de commande).

[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Icon[C]=/usr/share/Sublime Text 2/Icon/256x256/sublime_text.png
Name[C]=Sublime Text 2
Exec=Sublime-Text-2 %U
Comment[C]=Text Editor
Name=Sublime Text 2
Comment=Text Editor
Icon=/usr/share/Sublime Text 2/Icon/256x256/sublime_text.png
X-Desktop-File-Install-Version=0.21
3
c24w

Avez-vous essayé d’utiliser des guillemets au lieu de ""? J'ai un fichier .desktop personnalisé avec des espaces dans la ligne Exec, et le mien fonctionne avec des guillemets.

3
Henry Gibson

J'ai le même problème lorsque je suis les instructions d'installation fournies par ( http://monkeyhacks.com/post/how-to-install-sublime-text-2-on-ubuntu-14-04 ) site .. Donc ma solution était:

  1. Supprimer/supprimer le lien nommé "sublime" de /usr/bin

  2. Supprimez tous les espaces du dossier "Sublime Text 2" en le renommant "SublimeText2".

  3. Re Créer un lien symbolique dans /usr/bin/:

    Sudo ln -s /opt/SublimeText2/sublime_text /usr/bin/sublime
    
  4. Créez le fichier .desktop comprenant:

    Exec=/opt/SublimeText2/sublime_text %U
    Icon=/opt/SublimeText2/Icon/48x48/sublime_text.png
    
3
SantyVillagomez

Selon espace de travail ASCII l'espace peut être représenté par la séquence \s d'échappement (pour les valeurs string et localestring).

2
moon.musick

J'ai rencontré le même problème avec GNOME nautilus 3.4.2 dans Ubuntu 12.04. J'ai trouvé cette solution de contournement alternative dans un rapport de bogue pour le même problème dans Moblin UI Framework , que je préfère à celui mentionné où vous devez ajouter chaque dossier au $ PATH.

La solution de contournement est simplement:
"Créez un lien symbolique dans un chemin ne comportant pas d'espaces et pointez le champ EXEC sur ce lien."

0
Björn