mAcpiDescription.txt 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. Техническое описание программы acpi_menu
  2. Команда для компиляции: gcc -o mAcpi mAcpi.c -lncursesw
  3. Эта программа на языке C использует библиотеку ncurses для создания интерактивного меню в терминале, предоставляющего информацию о утилите `acpi` в Linux. Она отображает список опций и описаний, связанных с `acpi`, с поддержкой навигации и выбора пунктов. Ниже приведено подробное описание её функциональности:
  4. 1. **Компиляция и зависимости**:
  5. - Для компиляции требуется библиотека `ncursesw` (широкие символы для поддержки UTF-8).
  6. - Команда: `gcc -o acpi_menu acpi_menu.c -lncursesw`.
  7. 2. **Инициализация**:
  8. - Устанавливает локаль `ru_RU.UTF-8` для поддержки русского языка.
  9. - Инициализирует ncurses (`initscr`), проверяет поддержку цветов и отключает эхо ввода, активирует клавиши управления (стрелки).
  10. - Скрывает курсор и устанавливает обработчик SIGINT для корректного завершения (`cleanup`).
  11. 3. **Цветовые пары**:
  12. - Определяет 6 цветовых пар:
  13. - 1: Чёрный текст на жёлтом фоне (рамки, выделение).
  14. - 2: Жёлтый текст на чёрном фоне (заголовки, линии).
  15. - 3: Голубой текст (для "Git").
  16. - 4: Зелёный текст (пункты меню).
  17. - 5: Белый текст (основной текст).
  18. - 6: Тёмно-белый текст (дополнительный).
  19. 4. **Меню**:
  20. - Содержит 19 пунктов, включая "Установка", "Краткий обзор", "Описание", "Автор", опции `acpi` (например, `-b --battery`, `-t --thermal`), "Git" и "Exit".
  21. - Пункты хранятся в массиве `items` как широкие строки (`wchar_t`) для поддержки UTF-8.
  22. 5. **Интерфейс (`draw_menu`)**:
  23. - Рисует рамку с одинарными линиями (80 столбцов, 31 строка) с жёлтыми краями.
  24. - Добавляет горизонтальные разделители на строках 3, 5, 10, 25.
  25. - Заголовок "*** acpi ***" (жирный белый), подзаголовок "Shows battery status and other ACPI information" (тусклый).
  26. - Подсказка навигации ("↑ Up ─ ↓ Down ─ ↵ Select Enter") внизу жёлтым цветом.
  27. 6. **Отображение пунктов (`print_menu_items`)**:
  28. - Пункты меню выводятся на заданных строках (6–9, 12–24, 26, 28).
  29. - Выбранный пункт выделяется чёрным текстом на жёлтом фоне.
  30. - Остальные пункты — зелёным текстом, с выравниванием описания и опции.
  31. 7. **Навигация и выбор**:
  32. - Стрелки вверх/вниз изменяют `selected` (циклически от 0 до 18).
  33. - Enter (код 10) очищает экран и показывает информацию о выбранном пункте:
  34. - "Установка": "Утилита предустановлена."
  35. - "Краткий обзор": "acpi [options]".
  36. - "Описание": Информация о выводе ACPI из файловой системы.
  37. - "Автор": Сведения об авторах и лицензии GNU GPL.
  38. - Опции `acpi`: Краткие описания и команды (например, `acpi -b`, `acpi --battery`).
  39. - "Git": Пустой список репозиториев (заглушка).
  40. - "Exit": Завершает программу.
  41. - После вывода появляется кнопка "ENTER = Main Menu" для возврата.
  42. 8. **Завершение (`cleanup`)**:
  43. - Вызывается при SIGINT или выборе "Exit", завершает ncurses (`endwin`) и выходит.
  44. 9. **Особенности**:
  45. - Поддержка русского языка через UTF-8 и `ncursesw`.
  46. - Цветовое выделение для улучшения читаемости.
  47. - Интерактивная навигация с помощью стрелок и Enter.
  48. 10. **Использование**:
  49. - После компиляции запустите: `./acpi_menu`.
  50. - Навигация: стрелки вверх/вниз, выбор — Enter, выход — выбор "Exit" или `Ctrl+C`.
  51. Программа предназначена для пользователей Linux, желающих изучить возможности `acpi` через удобный текстовый интерфейс с поддержкой русского языка.