bAcpiDescription.txt 6.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. Техническое описание скрипта мониторинга батареи
  2. Этот Bash-скрипт предоставляет удобный интерфейс в терминале для мониторинга состояния батареи, температуры и охлаждения на системах Linux с использованием утилиты `acpi`. Он отображает информацию в реальном времени в структурированном виде с двойной рамкой, цветовым кодированием и полосами прогресса, обновляясь каждые 5 минут. Ниже приведено подробное описание его функциональности:
  3. 1. **Инициализация и настройка**:
  4. - Скрипт очищает терминал и скрывает курсор (функция `clear_box`).
  5. - Использует ANSI-коды для позиционирования, окрашивания и форматирования текста.
  6. - Установлена ловушка для восстановления курсора и очистки экрана при нажатии `Ctrl+C` (SIGINT).
  7. 2. **Основной макет отображения (`double_line_box`)**:
  8. - Создаёт рамку с двойными линиями (42 строки, 83 столбца) с использованием Unicode-символов (╔, ═, ║ и т.д.).
  9. - Цвет фона зависит от уровня заряда батареи:
  10. - 100%: Жёлтый (43)
  11. - 96–99%: Синий (44)
  12. - 92–95%: Фиолетовый (45)
  13. - 88–91%: Красный (41)
  14. - Ниже 88%: Жёлтый (43)
  15. - Горизонтальные разделители разбивают рамку на секции для разных типов данных.
  16. 3. **Секции информации**:
  17. - **Заголовок (`ifo_box`)**: Отображает "Linux OS acpi Состояние батареи" и инструкцию для выхода ("Нажмите 'ctrl+c' для выхода").
  18. - **Информация ACPI (`acpi_box`)**: Показывает версию `acpi`, если утилита установлена, или ошибку с инструкцией по установке, если нет.
  19. - **Обнаружение батареи (`bat_box`)**: Указывает, обнаружена ли батарея ("Detected" или "Undetected").
  20. - **Состояние батареи (`line_box`)**: Показывает состояние зарядки ("Charging", "Discharging", "Full" или "Unknown") с цветовым кодированием.
  21. - **Оставшееся время (`time_box`)**: Отображает примерное оставшееся время работы батареи (например, "02:30:00" или "N/A").
  22. - **Уровень заряда (`battery_progress_bar`)**: Рисует полосу прогресса из 50 символов (▓ для заполненной части, ░ для пустой) с процентом.
  23. - **Скорость разряда (`check_battery_rate`)**: Указывает, если информация о скорости недоступна.
  24. - **Состояние адаптера (`get_adapter_status`)**: Показывает состояние адаптера питания (например, "on-line" или "off-line").
  25. - **Температура (`get_thermal1_status`, `get_thermal2_status`)**: Отображает температуру для зон Thermal 0 и Thermal 1.
  26. - **Состояние охлаждения (`get_cooling`)**: Перечисляет состояния устройств охлаждения (например, "Cooling 0: intel_powerclamp 0 of 100") с префиксом "Battery" для первой строки, выровненные в столбец.
  27. - **Здоровье батареи (`get_battery_health`)**: Указывает проектную ёмкость, последнюю полную ёмкость, текущий процент ёмкости и износ.
  28. - **Полоса здоровья (`progress_bar`)**: Показывает здоровье батареи в виде полосы прогресса из 50 символов с процентом.
  29. 4. **Система предупреждений (`alert_box`)**:
  30. - Отображает рамку с предупреждением ("Компьютер скоро выключится!"), если уровень заряда ≤91%.
  31. - Цвет фона: Красный (41) для ≤91%, чёрный (40) для остальных случаев.
  32. 5. **Управление питанием**:
  33. - Проверяет уровень заряда каждые 5 минут (`sleep 300`).
  34. - Если уровень падает ниже порога (по умолчанию 70%), вызывает выключение системы через `systemctl poweroff`.
  35. 6. **Ключевые особенности**:
  36. - Динамическое цветовое кодирование для визуальной обратной связи (зелёный для активных состояний, красный для ошибок).
  37. - Настраиваемая начальная позиция для состояний охлаждения (по умолчанию: строка 19, столбец 5).
  38. - Полосы прогресса для уровня заряда и здоровья обеспечивают интуитивное представление.
  39. - Непрерывный цикл обеспечивает обновление данных в реальном времени.
  40. 7. **Зависимости**:
  41. - Требуется утилита `acpi` для данных о батарее, температуре и охлаждении.
  42. - Использует стандартные инструменты Linux: `awk`, `grep`, `tr`, `systemctl`.
  43. 8. **Использование**:
  44. - Запустите скрипт в терминале: `./имя_скрипта.sh`.
  45. - Выход с помощью `Ctrl+C` для восстановления состояния терминала.
  46. Этот скрипт предназначен для системных администраторов или пользователей, которым нужен детальный мониторинг батареи и температуры в Linux с акцентом на ясность и эстетику.
  47. asciinema: https://asciinema.org/a/711722
  48. codeberg: https://codeberg.org/Grannik/bAcpi
  49. github: https://github.com/Grannik/bAcpi
  50. gitlab: https://gitlab.com/grannik/bacpi
  51. sourceforge: https://sourceforge.net/projects/bacpi/