Estou escrevendo alguns pequenos scripts bash no Ubuntu linux. Quero poder executá-los a partir da GUI sem precisar de uma janela de terminal para inserir qualquer entrada ou exibir qualquer saída.
Até agora, a única entrada necessária é uma senha para o sudo - e o gksudo lida com isso. Mas ainda não encontrei uma maneira fácil de mostrar uma caixa de mensagem. Existe algum tipo de comando 'gkmessage' disponível? Prefiro algo presente em uma instalação padrão do Ubuntu, mas não me importo de instalar um novo pacote, se necessário.
Respostas:
Eu acredito que o Zenity fará o que você quiser. Ele foi projetado especificamente para exibir caixas de diálogo GTK na linha de comando e está disponível como um pacote Ubuntu .
fonte
zenity --help
não é tão útil. Para tornar isso útil, você precisa garantir que você definir--text=My text here
para torná-lo exibir alguma coisa ...zenity --info --text="Calculation complete"
zenity --help-all
..xinitrc
meuxorg
servidor. Caso contrário, os erros seriam transparentes. Eu também prefiro estezenity
ao longokdialog
desde o KDE não começou ainda e libs GTK são mais leves.Se você estiver usando muitas distros do
Ubuntu,onotify-send
comando lançará uma dessas boas notificações perecíveis no canto superior direito. Igual a:notify-send "My name is bash and I rock da house"
Lindo!
fonte
libnotify-bin
pacote contém onotify-send
binário. Não Gnome3 não parecem exigirnotify-osd
mas acho que outros ambientes de trabalho pode exigir que, além delibnotify-bin
Todo mundo menciona zenidade, parece haver muitos outros. Uma lista confusa, mas interessante, está em http://alternativeto.net/software/zenity/
Primeiro, um exemplo de zenity com marcação de formatação de texto, título da janela, rótulo do botão.
gxmessage
xmessage
xmessage
é muito antigo, portanto é estável e provavelmente está disponível em todas as distribuições que usam X (uma vez que é distribuído com X). É personalizável através dos recursos do X, para aqueles que usam o Linux ou Unix há tempo suficiente para saber o que isso significa (.Xdefaults
, alguém?).kdialog
(não testado)
Em um PPA
YAD: Zenity on Steroids [Exibir caixas de diálogo gráficas de scripts de shell] ~ Web Upd8: Blog do Ubuntu / Linux . Não parece dimensionar automaticamente as caixas de diálogo.
Um exemplo maior
Outros que não estão nos repositórios padrão do Ubuntu
Fora do tópico (para terminal)
Sinta-se livre para editar.
fonte
--infobox
tem um bug exibição de longa data com xterm (gnome-terminal)whiptail --infobox
(que não funciona corretamente em terminais que suportam tela alternativa) retorna sem aguardar a entrada do usuário, enquantowhiptail --msgbox
(que funciona) aguarda confirmação do usuário antes de sair.O aplicativo zenity parece ser o que você está procurando.
Para obter informações do zenity , você pode especificar uma variável e salvar a saída do zenity --entry . Parece algo assim:
Se você observar o valor em my_variable agora, será o que foi digitado na caixa de diálogo de entrada pop-up do zenity.
Se você deseja fornecer algum tipo de prompt sobre o que o usuário (ou você) deve digitar na caixa de diálogo, adicione a opção --text com o rótulo que deseja. Parece algo assim:
O Zenity tem muitas outras opções legais para tarefas específicas, então você pode conferir isso também com o zenity --help . Um exemplo é a opção --calendar, que permite selecionar uma data em um calendário gráfico.
O que fornece uma data bem formatada com base no que o usuário clicou:
dá:
Também existem opções para seletores, erros, listas e assim por diante.
Espero que isto ajude.
fonte
zentity
parece legal. No entanto, ele não faz parte do Ubuntu 12.04, então fui comgxmessage
ele.Encontrei o comando xmessage , que é bom o suficiente.
fonte
Aqui está um pequeno script Tcl que fará o que você deseja. O intérprete do Wish deve ser instalado por padrão no Ubuntu.
Chame assim:
fonte
alert
enotify-send
parece ser a mesma coisa. eu usonotify-send
para mensagens que não são de entrada, pois não roubam o foco e não consigo encontrar uma maneira de impedir o zenity etc.por exemplo
fonte
Existe também
dialog
a versão do KDEkdialog
.dialog
é usado pelo slackware, portanto, pode não estar disponível imediatamente em outras distribuições.fonte
se nada mais estiver presente. você pode iniciar um xterm e eco nele, assim:
fonte
E o alerta do Ubuntu . Ele pode ser usado após qualquer operação para alertá-lo como concluído e até mostrar o ícone da cruz vermelha se a operação foi finalizada com erros
fonte
O Zenity é realmente a ferramenta exata que eu acho que você está procurando.
ou
fonte
Kdialog e dialog são bons, mas eu recomendaria o Zenity. Rápido, fácil e muito melhor visualizando o xmessage ou o diálogo.
fonte
Exemplo de script bash para usar os controles Gambas GTK / QT (objetos da GUI): O Gambas IDE pode ser usado para projetar até mesmo grandes GUIs e atuar como um servidor da GUI. Exemplos de explicações podem ser baixados na App Store Gambas.
https://gambas.one/gambasfarm/?id=823&action=search
fonte