Quero definir a variável 'Path' em um arquivo .desktop em relação ao local em que o arquivo da área de trabalho está localizado e não consigo fazer isso.
Quando não o declaro ou o coloco em branco, o padrão é minha pasta pessoal, não importa de onde eu o execute; e ele não aceita valores relativos à minha localização atual no sistema de arquivos.
Respostas:
Você não pode definir o CWD dentro de um arquivo .desktop. Se você deseja que um aplicativo tenha um CWD específico, será necessário escrever um script de wrapper simples para o aplicativo, parecido com o seguinte:
Você pode substituir por
your_program
lá$@
e executar o script com seu_programa como argumento, comorun-in-dir.sh your_program
. Dessa forma, você pode usar o mesmo script para agrupar qualquer programa que deseja iniciar nesse diretório.fonte
Você pode contornar isso usando um mini-script bash in-line no seu Exec. Isso adicionará o caminho do arquivo .desktop ao PATH antes de executar seu comando.
% k será substituído pelo caminho do próprio arquivo da área de trabalho. O
dirname
comando corta a parte do nome do arquivo, deixando apenas o diretório. Depois que PATH é definido assim,your_command
pode ser chamado sem um caminho completo.fonte
Eu usei isso:
O% k é o nome completo do arquivo .desktop, incluindo seu caminho. Em seguida, é usado pelo dirname para obter um local e alterar o diretório para esse local. Finalmente, agora que está no lugar certo, ele encontra o script e o executa.
fonte
Para nomes de diretório com espaços no nome, isso finalmente funcionou para mim:
Crédito para /unix//a/144428/61349
fonte
Isso funcionou para mim Ubuntu 14.04:
A especificação mais recente diz que % k aponta para o local do arquivo da área de trabalho:
fonte