Estou tendo problemas com meus arquivos .desktop. Eu tenho um script de shell que constantemente assiste a um arquivo para ser colocado na pasta "Downloads". Quando um arquivo é colocado na pasta, ele automaticamente executa um programa em C que eu escrevi no terminal e oferece diferentes opções para onde eu gostaria de mover o arquivo.
Tudo está bem lá. No entanto, quero um atalho na área de trabalho para o programa. Eu tentei usar o editor de atalho para especificar o comando a ser executado e para executá-lo no terminal e manter o terminal em execução após a execução do comando. Tudo o que está no comando é cd ~/Documents/prog/c/learn/inotify-tools && ./notifyscript.sh
No entanto, isso não funcionará. Além disso, tentei escrever um programa em C que basicamente dizia ao sistema o comando acima, pensando que o editor de atalhos estava bagunçando.
INTERESSANTE, ele roda bem quando estou em seu diretório e digita ./'Download Manager'
No entanto, não quero continuar mudando para o diretório em todas as reinicializações e executar o programa. Em vez disso, quero um atalho para o .desktop ou, melhor ainda, uma maneira de iniciar a reinicialização automaticamente. Eu não entendo porque não está funcionando. Se eu não executar no terminal, não funciona ...
Aqui está o arquivo da área de trabalho:
[Desktop Entry]
Name=Download Manager
Comment=
Exec=cd ~/Documents/prog/c/learn/inotify-tools && ./notifyscript.sh
Icon=icon name
Terminal=true
Type=Application
StartupNotify=true
X-KeepTerminal=true
Aqui está o código-fonte C e o arquivo da área de trabalho, bem como outra opção:
[Desktop Entry]
Name=Download Manager
Comment=
Exec=./'Download Manager'
Icon=icon name
Terminal=true
Type=Application
StartupNotify=true
X-KeepTerminal=true
Código-fonte C:
/*
desktoplauncher.c Source Code
Written by me
This program is used to launch
the inotify monitor shell script
which in turn launches the
download manager program
whenever a file is placed in the
"Downloads" folder.
*/
#include <stdio.h>
int main()
{
system("cd ~/Documents/prog/c/learn/inotify-tools && ./notifyscript.sh");
}