Eu estou utilizando o Nativefier para criar somente dois web-apps, e pensei qual seria o motivo para um programa tão bom e conhecido funcionar somente via CLI.
E mesmo não sabendo programar gostaria de saber qual o processo de criação de uma front-end para qualquer comando do terminal.
PS: isso pensando a outras áreas como um “full upgrade” do sistema, ou qualquer coisa.
Basicamente você cria a interface gráfica com as seleções (botões, textos, checkboxes etc…) e um botão de ação que, uma vez clicado, vai executar o comando com os parâmetros selecionados em um shell que pode estar oculto ou aparente.
Basicamente vc vai precisar da biblioteca de desenvolvimento gráfico (no linux o mais comum é GTK ou Qt) e, na linguagem de programação que você escolher, incluir essa biblioteca e realizar as chamadas. Cada linguagem de programação vai ter seu jeito específico de fazer essa inclusão da bibliotea e criar os “ganchos” para pescar os eventos disparados pela biblioteca da interface gráfica.
Tem várias opções para construir essa interface, como o Gambas, Lazarus e Glade.
Antecipando a pergunta: Mas o Gambas não trabalha “apenas” com VB e Lazarus com Pascal? Não! É possível usá-los para criar uma interface que executa um script ou comando.
Fui pesquisar as alternativas dadas e apesar de minha leiguice, acredito que o Glade se mostra uma ferramenta bastaante interessante e fácil de se usar para a ideia que eu coloquei.
Até me empolguei e tô vendo aqui se eu consigo fazer alguma coisa.
Acho que tem muita ferramentazinha simples que as vezes ficam em falta no Linux. Nisso eu gosto da galera do Mint, ferramentas como o USB Stick por exemplo são uma mão na roda.
Uma saída que eu já utilizei foi python programa.py | bash
Basicamente você usaria o print() do Python para gerar um shellscript em tempo real. Para printar erros pode-se usar um print alterado. A principal desvantagem é a dificuldade em comunicar com o shell.
Pesquisa por YAD é mais simples de usar (recomendo usar o --form e --borders=32 para uma melhor aparência) e é feito exatamente pro seu use case segue um exemplo:
Note que o código só é extenso porque ele tem 3 idiomas
Mas é como disse, eu não sou programador (e nem pretendo ser), só estou com algumas ideias de aplicações que gostaria de tentar fazer. E apesar de eu entender um pouco de lógica de programação é muita coisa pra assimilar de primeira.
Uma das mais simples que já encontrei, e pra quem não tem conhecimento em programação é o Gtkdialog (não GtkDialog que é a raiz do GTK, mas Gtkdialog que por ser uma linguagem simples baseada no XML, ou seja Tags, fica muito mai simples de se entender), por isso muitas distos minimalistas preferem usar para criar suas interfaces para seus scripts.
O Gtkdialog era usado no Ubuntu até a versão 14.04 LTS, mas por ter alguns bugs, eles deixaram de usar ao invéz de quem sabe ajudar ivestindo na correção dos bugs. Mas ainda é bem utilizável. Tanto, que como já disse, ainda é usado em distibuições cujo foco é ser minimalista mesmo, como o Puppylinux e o Slitaz.
Esse é o pacote que baixei diretamente do repositório do Ubuntu 14.04 na época, mas é tão simples que é compatível até com as mais recentes versões do Ubuntu isso inclui o Mint:
Como disse, pode ter uns bugzinhos, mas nada que interfira na eficiencia do app, e a eficiencia e simplicidade pra se construir um app a partir de um bloco de notas, olhar o código e entender aonde estão as coisas por causa da estrura xml é incomparável.
Bom, eu resolvi largar de tentar fazer trabalho porco. E resolvi fazer algum curso de programação, como não sabia qual escolher eu fui de Python pois eu acredito que possa me servir muito bem.
É a melhor? Não sei. Só ela serve? Não sei. Mas foi a que escolhi .