Cómo hacer esas GUI de la vieja escuela (como el instalador de Debian / Arch)

13

Últimamente he realizado muchas instalaciones y, cuando es posible, generalmente opto por la instalación de texto desde el menú GRUB del Live CD. La mayoría de los instaladores se ve así:

ingrese la descripción de la imagen aquí

Siempre pensé que estas GUI (si puedes llamarlas así) eran realmente increíbles y livianas. Viendo que muchas aplicaciones / distribuciones las usan, ¿debe ser una biblioteca compartida o algo correcto? ¿Hay alguna manera de hacer cosas como esta?

n0pe
fuente
Cabe señalar que la mayoría de los instaladores de sistemas para linux y bsd tienen una presentación horrible de la interfaz de usuario usando maldiciones con respecto a los botones Aceptar y Cancelar: rara vez está claro cuando el usuario los ha resaltado. Al implementar con maldiciones, es mejor no usar esos instaladores como ejemplo de diseño; en su lugar, revise esos viejos programas de DOS, como Lotus 123, para ver qué tan buenas deberían ser las GUI de gráficos ANSI en términos de IU. Es algo así como: [Ok] está ligeramente coloreado pero no resaltado, hasta que el usuario lo seleccione.
Jonathan Cline IEEE

Respuestas:

18

Estás buscando ncurses .

bauerd
fuente
2
Leyendo de nuevo, me pregunto qué significa exactamente "golpear el dinero" ... Creo que estaba emocionado.
n0pe
3
@MaxMackie: Ahora esa pregunta de seguimiento sería más adecuada para english.stackexchange.com ;)
Piskvor salió del edificio el
14

No sé acerca de Arch y Debian, pero a menudo esas GUI están hechas dialog(1), lo que toma un montón de argumentos de línea de comandos y luego muestra un diálogo ncurses. Por ejemplo, el menú de configuración del kernel de Linux se ve así:

Captura de pantalla de menuconfig

Un ejemplo de dialoguso es:

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

Lo que resulta en:

Captura de pantalla del diálogo (1)

Michael Mrozek
fuente
Esto es puramente asombroso, ¿entonces el diálogo usa ncurses para dibujar en la terminal? No podría ser más fácil que eso. Gracias
n0pe
8

En un nivel superior, los que se ven exactamente así generalmente usan algo como newt / whiptail o dialog . Ese en particular parece que es newt / whiptail, ya que el diálogo tiende a dibujar un marco alrededor de controles como ese cuadro de lista. Para otro ejemplo, la configuración del kernel de Linux utiliza una versión de diálogo personalizada cortada (sin características adicionales que no usa, y me imagino que la casilla sí / no / módulo es una característica personalizada)

Aleatorio832
fuente