Como escapar de espaços em arquivos .desktop Exec line

13

Eu quero criar um arquivo .desktop como descrito aqui .

[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

No entanto, executá-lo no menu de contexto do Nautilus usando Abrir com isso me dá

Não foi possível encontrar '/ home / user / opt / sublime / Sublime'

Então eu tentei

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

e obtivemos

O texto foi encerrado antes da correspondência da cotação ". (O texto era '" / home / user / opt / sublime / Sublime')

Qual é a maneira correta de escapar de espaços na linha Exec de .desktop files?

    
por nh2 17.09.2012 / 18:03

7 respostas

6

Preceda cada espaço por uma barra invertida:

[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
    
por January 17.09.2012 / 18:14
3

Eu estava tendo exatamente o mesmo problema! Depois de tentar vários padrões de escape / citação, decidi que a solução mais simples era ter um link simbólico para sublime_text em meu $ PATH (ou você poderia usar um alias de linha de comando).

[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
    
por c24w 23.01.2013 / 12:44
3

Você já tentou usar '' quotes em vez de "" quotes? Eu tenho um arquivo .desktop personalizado com espaços na linha Exec, e o meu trabalha com aspas.

    
por Henry Gibson 09.04.2013 / 18:41
3

Eu tenho o mesmo problema ao seguir as instruções de instalação de ( link ) site .. Então minha solução foi:

  1. Remova / exclua o link virtual chamado "sublime" de /usr/bin

  2. Remova todos os espaços em branco da pasta "Sublime Text 2" renomeando-a para "SublimeText2"

  3. Re Crie um link temporário em /usr/bin/ :

    sudo ln -s /opt/SublimeText2/sublime_text /usr/bin/sublime
    
  4. Faça o arquivo .desktop incluindo:

    Exec=/opt/SublimeText2/sublime_text %U
    Icon=/opt/SublimeText2/Icon/48x48/sublime_text.png
    
por SantyVillagomez 05.11.2015 / 16:29
1

De acordo com a especificação de entrada da área de trabalho , o espaço ASCII pode ser representado pela sequência de escape \s (para valores string e localestring ).

    
por moon.musick 19.04.2018 / 15:38
0

Eu tive o mesmo problema usando o GNOME nautilus 3.4.2 no Ubuntu 12.04. Eu encontrei esta alternativa alternativa em um relatório de bug para o mesmo problema no Moblin UI Framework que eu prefira aquele mencionado onde você precisa adicionar cada pasta ao $ PATH.

A solução alternativa é simplesmente:
"Crie um link simbólico em um caminho que não tenha espaços e aponte o campo EXEC para esse link."

    
por Björn 09.04.2013 / 18:08
-1

Os arquivos .desktop não manipulam aspas, espaços e caracteres de escape da mesma maneira que os shells. Provavelmente, a melhor opção seria chamar um shell em sua linha exec para obter o comportamento esperado, assim:

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

Para mais informações, consulte man sh . Isso também evita ter que criar e manter links simbólicos, assim como as outras respostas.

    
por KDØBPV 03.03.2018 / 23:00