como fazer com que meu script bash pareça 100% como um aplicativo GUI (para que o usuário nunca veja o terminal)

4

Eu criei um script bash usando o kdialog (e ele roda no Kubuntu 12.04). A GUI é usada para cada interação do usuário (após a primeira). No entanto, o script ainda tem que ser iniciado a partir do terminal e o terminal ainda é visível, mesmo que o usuário nunca precise ler a saída do terminal ou inserir qualquer coisa no terminal. Existe uma maneira simples de ir para a próxima etapa e fazer meu script bash parecer 100% semelhante a um aplicativo KDE Gui?

A partir das respostas iniciais de slm e Ilya Ananyev abaixo, vejo que fazer um arquivo .desktop pode fazer isso. Isso é incrível para mim e é o tipo de resposta simples que eu estava procurando. (Eu queria uma tarefa que eu pudesse concluir na minha hora de almoço e levar meu roteiro de bash o resto do caminho para parecer um aplicativo de GUI real.) O arquivo .desktop pode ser a resposta certa para outros leitores dessa questão também. p>

No entanto, no meu caso específico, o script é um script de instalação. Então eu me encontro em um Catch-22. Como faço para instalar o arquivo .desktop para iniciar meu instalador sem que o usuário tenha que primeiro executar outro instalador para o arquivo .desktop?

Além disso, no meu caso, o script é usado por usuários finais que não são alfabetizados em computadores. Os usuários finais compram um computador com o Linux pré-instalado por recomendação minha. Meu objetivo é permitir que eles instalem meu software sem precisar acessar o terminal. (O mais provável é que eles nunca tenham visto um prompt de comando antes - alguns deles nem sabem como usar um mouse ainda!)

Então, parece que a minha solução requer uma maneira mágica de instalar o arquivo .desktop para que o usuário possa clicar nele para iniciar meu script de instalação.

Em resumo, meus principais requisitos são:

  1. uma maneira de iniciar o script sem mostrar o terminal. Um arquivo .desktop fará isso.
  2. uma maneira de manter o terminal oculto durante a execução (como eu dependo inteiramente do kdialog). Um arquivo .desktop fará isso com Terminal=false set.
  3. opcionalmente, uma maneira segura de o usuário digitar sua senha sudo. Eu sei sobre o diálogo de entrada de senha do kdialog, mas os exemplos de que eu vi não são seguros . O kdesudo pode ser uma solução, mas ele repete a senha muitas vezes, ignorando o tempo limite usual / padrão de sudo de X minutos. Então não está funcionando para mim atm.
  4. simples o suficiente para implementar na minha hora de almoço. Um arquivo .desktop fará isso.
  5. utiliza meu script bash existente com o kdialog. Um arquivo .desktop fará isso.
  6. não exige que o usuário realize etapas de configuração adicionais antes de poder executar meu script. Acontece que um usuário do KDE pode clicar em um arquivo .desktop que reside em qualquer local. Assim, meus usuários podem baixar o arquivo .desktop em sua pasta ~ / Downloads e iniciá-lo de lá.
por MountainX 28.06.2013 / 08:27

1 resposta

6

Espero que tenha entendido corretamente: você precisa apenas de um iniciador para o script existente. Se assim for, tente escrever um pequeno arquivo .desktop para o seu script e coloque-o em ~ / .local / share / applications ou / usr / share / applications. Aqui está um exemplo para isso:

[Desktop Entry]
Type=Application
Encoding=UTF-8
Name=Sample Application Name
Comment=A sample application
Exec=application
Icon=application.png
Terminal=false

Além disso (se você quiser escrever um tipo de instalador), você pode criá-lo no script de instalação.

    
por 28.06.2013 / 08:49