Как сделать эти графические интерфейсы старой школы (например, установщик debian / arch)

13

В последнее время я делал много установок, и по возможности я обычно выбираю текстовую установку из меню GRUB на Live CD. Большинство установщиков выглядит так:

введите описание изображения здесь

Я всегда думал, что эти графические интерфейсы (если их можно так назвать) были действительно потрясающими и легкими. Учитывая, что многие приложения / дистрибутивы используют их, это должна быть общая библиотека или что-то в этом роде? Есть ли способ, которым я могу сделать такие вещи?

n0pe
источник
Следует отметить, что у большинства системных установщиков для linux & bsd ужасная презентация пользовательского интерфейса с использованием проклятий относительно кнопок OK и Отмена: редко когда ясно, когда пользователь выделил их. При реализации с помощью curses лучше не использовать эти установщики в качестве примера проектирования; Вместо этого вернитесь, чтобы рассмотреть те старые программы для DOS, как Lotus 123, на предмет того, как хорошие графические интерфейсы ANSI должны работать с точки зрения пользовательского интерфейса. Это что-то вроде: [Ok] слегка окрашено, но не выделено, пока не выбрано пользователем.
Джонатан Клайн IEEE

Ответы:

18

Вы ищете няни .

bauerd
источник
2
Читая в ответ, я спрашиваю себя, что именно означает «бить деньги» ... Наверное, я был просто взволнован.
n0pe
3
@MaxMackie: Теперь этот дополнительный вопрос лучше подходит для english.stackexchange.com ;)
Писквор покинул здание
14

Я не знаю об Arch и Debian, но часто эти графические интерфейсы создаются с использованием dialog(1)аргументов командной строки, а затем выводят диалог ncurses. Например, menuconfig ядра Linux выглядит так:

Снимок экрана menuconfig

Пример dialogиспользования:

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

Что приводит к:

Скриншот диалога (1)

Михаил Мрозек
источник
Это просто потрясающе, поэтому диалог использует ncurses для вывода на терминал? Не может быть проще, чем это. Спасибо
n0pe
8

На более высоком уровне те, которые выглядят именно так, обычно используют что-то вроде newt / whiptail или диалогового окна . Этот конкретный выглядит как тритон / хлыст, так как диалог имеет тенденцию рисовать рамку вокруг элементов управления, как этот список. В другом примере в конфигурации ядра Linux используется урезанная пользовательская версия диалога (без дополнительных функций он не используется, и я бы предположил, что флажок да / нет / модуль является пользовательской функцией)

Random832
источник