TL;DR
Exec=gnome-terminal -- bash -c 'script="%u";if [[ -e "$script" ]] ; then "$script" ; else exec bash ; fi'
A linha no arquivo da área de trabalho do GNOME executa scripts, mas apenas sem espaços no nome. Como executar script com qualquer nome?
Descrição completa de "o que eu quero" e o que eu tentei:
Desejo abrir scripts no editor por padrão do Nemo (gerenciador de arquivos AFAIK baseado no Nautilus), mas ainda ser capaz de abrir no terminal como outra opção no Nemo para abrir esses arquivos.
A pesquisa na Web encontra https://askubuntu.com/questions/286621/how-do-i-run-executable-scripts-in-nautilus . Não é novidade para mim, mas quando defino a opção no gerenciador de arquivos para "visualizar", não há opção para executar em "abrir com", tenho que abrir o terminal separadamente e inserir o nome do script.
Eu abri /usr/share/applications/org.gnome.Terminal.desktop
, ele roda Exec=gnome-terminal --window
. Eu encontrei https://askubuntu.com/questions/974756/how-can-i-open-a-extra-console-and-run-a-program-in-it-with-one-command e mudei a linha Exec=gnome-terminal --window
com linha de amostra Exec=gnome-terminal -- bash -c 'script="%u";if [[ -e "$script" ]] ; then "$script" ; else exec bash ; fi'
, funciona para scripts sem espaços nos nomes, mas com scripts que contêm espaços, não resulta na saída de script esperada. Não é grande coisa, talvez, mas eu quero melhor.
Significado de, por exemplo, %u
confirmado aqui: https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-1.0.html .
A página freedesktop que você vinculou diz claramente
Eu passaria a URL como um argumento para o bash: