Jak stworzyć old-schoolowe GUI (takie jak debian / arch installer)

13

Ostatnio robiłem wiele instalacji i tam, gdzie to możliwe, zwykle wybieram instalację tekstową z menu GRUB Live CD. Większość instalatorów wygląda następująco:

wprowadź opis zdjęcia tutaj

Zawsze uważałem, że te GUI (jeśli można je tak nazwać) były naprawdę niesamowite i lekkie. Ponieważ wiele aplikacji / dystrybucji korzysta z nich, musi to być biblioteka współdzielona czy coś w porządku? Czy istnieje sposób na zrobienie takich rzeczy?

n0pe
źródło
Należy zauważyć, że większość sysinstallerów dla systemu Linux i bsd ma okropną prezentację interfejsu użytkownika, używając przekleństw dotyczących przycisków OK i Cancel: rzadko kiedy jest jasne, kiedy użytkownik je zaznaczył. Podczas wdrażania z przekleństwami najlepiej nie używać tych instalatorów jako przykładu projektowego; wróć do przeglądu tych starych programów DOS, takich jak Lotus 123, aby dowiedzieć się, jak dobre graficzne interfejsy graficzne ANSI powinny działać pod kątem interfejsu użytkownika. To coś w stylu: [Ok] jest lekko zabarwiony, ale nie podświetlony, dopóki nie zostanie wybrany przez użytkownika.
Jonathan Cline IEEE

Odpowiedzi:

18

Szukasz ncurses .

bauerd
źródło
2
Czytając, zadaję sobie pytanie, co dokładnie oznacza „trafienie pieniędzy”… Chyba po prostu byłem podekscytowany.
n0pe
3
@MaxMackie: Teraz to kontynuacja pytanie byłoby lepiej nadaje się do english.stackexchange.com ;)
Piskvor opuścił budynek
14

Nie wiem o Archu i Debianie, ale często te GUI są tworzone dialog(1), co wymaga wielu argumentów wiersza poleceń, a następnie wyświetla okno dialogowe ncurses. Na przykład menuconfig jądra Linux wygląda następująco:

Zrzut ekranu menuconfig

Przykład dialogużycia to:

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

Co skutkuje w:

Zrzut ekranu okna dialogowego (1)

Michał Mrożek
źródło
To jest niesamowite, więc okno dialogowe używa ncurses do rysowania na terminalu? Nie może być łatwiejsze niż to. Dzięki
n0pe
8

Na wyższym poziomie, te, które wyglądają dokładnie tak, zazwyczaj używają czegoś takiego jak traszka / whiptail lub dialog . Ten konkretny wygląda jak traszka / whiptail, ponieważ okno dialogowe ma tendencję do rysowania ramki wokół kontrolek takich jak ten listbox. W innym przykładzie konfiguracja jądra Linuksa używa przyciętej niestandardowej wersji okna dialogowego (bez dodatkowych funkcji, których nie używa, i wyobrażam sobie, że pole wyboru tak / nie / moduł jest funkcją niestandardową)

Losowo 832
źródło