Meu alias .bashrc não é executado no arquivo .desktop

19

Adicionei a seguinte linha ao .bashrcarquivo:

alias midos="sh /home/erkanmdr/Belgeler/midos/midos.sh"

Este comando funciona bem no terminal e no tty. Mas não está funcionando no meu arquivo de atalho .desktop.

arquivo midos.desktop:

[Desktop Entry]
Name=MiDoS
Exec=midos
Icon=/home/erkanmdr/Belgeler/midos-128.png
Terminal=true

Como executo meu midoscomando no arquivo de atalho .desktop?

ErkanMDR
fonte
Você pode simplesmente substituir Exec=midoscomExec=sh /home/erkanmdr/Belgeler/midos/midos.sh
c0rp
Eu não quero isso. Eu quero usar diretamente. É possível?
217148 ErkanMDR
1
Eu substituir shcom bash(midos alias = "/home/erkanmdr/Belgeler/midos/midos.sh bash")
Sylvain Pineau
@SylvainPineau não funcionou
ErkanMDR

Respostas:

24

Enquanto as outras respostas oferecem uma boa solução alternativa para o seu problema, para responder à sua pergunta, a maneira correta de usar um alias dentro de um arquivo .desktop é, no seu caso:

Exec=bash -ic "midos"

Isso ocorre porque os aliases do ~/.bashrcarquivo funcionarão apenas em um shell interativo do bash (a -iopção é usada neste caso para iniciar o bash Interactive).

Se outro usuário quiser usar o mesmo arquivo .desktop, ele deverá ter definido também esse alias.

Radu Rădeanu
fonte
Ótimo! Exatamente o que eu estava procurando. Muito obrigado
ErkanMDR
6

Eu ficaria extremamente surpreso se a GUI tivesse alguma idéia sobre o seu shell. Você deve colocar o caminho completo no seu arquivo da área de trabalho:

Exec=/home/erkanmdr/Belgeler/midos/midos.sh

E verifique se o seu script é executável.

Glenn Jackman
fonte
6

Pouca solução alternativa.

Adicione isso #!/bin/bashà primeira linha do seu script, se ainda não estiver lá.

Por exemplo, seu script antes:

sometext1
sometext2
sometext3
sometext4

Você escreve depois de:

#!/bin/bash
sometext1
sometext2
sometext3
sometext4

Agora copie seu script /usr/local/bine torne-o executável:

sudo cp /home/erkanmdr/Belgeler/midos/midos.sh /usr/local/bin/midos
sudo chmod +x /usr/local/bin/midos

Depois disso, ele deve funcionar como você deseja.

c0rp
fonte