Como criar essas GUIs da velha escola (como o instalador debian / arch)


13

Ultimamente, tenho feito muitas instalações e, quando possível, geralmente opto pela instalação de texto no menu GRUB do Live CD. A maioria dos instaladores fica assim:

insira a descrição da imagem aqui

Eu sempre pensei que essas GUIs (se você pode chamá-las como tal) eram realmente incríveis e leves. Como muitos aplicativos / distribuições os usam, deve ser uma biblioteca compartilhada ou algo assim, certo? Existe uma maneira de fazer coisas assim?


Deve-se notar que a maioria dos sysinstallers para linux e bsd tem uma apresentação horrível da interface do usuário usando maldições relacionadas aos botões OK e Cancelar: raramente fica claro quando o usuário os destaca. Ao implementar com curses, é melhor não usar esses instaladores como um exemplo de design; volte para revisar esses programas antigos do DOS, como o Lotus 123, para saber como as boas GUIs de gráficos ANSI devem funcionar em termos de interface do usuário. É algo como: [Ok] é levemente colorido, mas não realçado, até ser selecionado pelo usuário.
Jonathan Cline IEEE

Respostas:



14

Eu não conheço o Arch e o Debian, mas muitas vezes essas GUIs são criadas dialog(1), o que leva vários argumentos de linha de comando e depois gera um diálogo ncurses. Por exemplo, o kernel do Linux menuconfig se parece com isso:

Captura de tela do menuconfig

Um exemplo de dialoguso é:

$ dialog --title "Hello" --infobox "Hello there Unix and Linux Stack Exchange" 20 100

O que resulta em:

Captura de tela da caixa de diálogo (1)


Isso é incrível, então o diálogo usa ncurses para desenhar no terminal? Não poderia ser mais fácil do que isso. Obrigado
n0pe

8

Em um nível superior, aqueles que se parecem exatamente com isso geralmente usam algo como tritão / chicote ou diálogo . Esse em particular parece que é tritão / chicote, já que o diálogo tende a desenhar um quadro em torno de controles como essa caixa de listagem. Por outro exemplo, a configuração do kernel do linux usa uma versão personalizada do diálogo (sem recursos extras que ele não usa, e eu imagino que a caixa de seleção yes / no / module seja um recurso personalizado)

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.