panel-management(1)

PANEL-MANAGEMENT(1) Команды пользователя PANEL-MANAGEMENT(1)

NAME

panel-management - управление интерактивными панелями Promethean и NexTouch

SYNOPSIS

panel-management [команда] [-p тип] [-n номер] [-c команда] [-v значение] [-f] [--autostart] [--no-autostart] [--autostart-all] [--no-autostart-all] [--nextouch-ip адрес]

DESCRIPTION

panel-management управляет интерактивными панелями Promethean и NexTouch. Она умеет отправлять команды по сети, выводить пронумерованный список доступных команд, настраивать сетевой интерфейс для работы с панелью, управлять автозапуском утилиты, а также открывать графический интерфейс.

При запуске без аргументов программа открывает графический интерфейс с таблицей доступных команд и помещает значок в системный трей. При сворачивании окно скрывается в трей; при закрытии окна программа завершается. Правый клик по значку в трее открывает меню с пунктами «Показать окно», «Выбор источника», «Сменить тип панели», «Добавить в автозапуск» / «Убрать из автозапуска» и «Выход».

При запуске хотя бы с одним аргументом программа работает в консольном режиме и разбирает аргументы с помощью модуля argparse(3). Консольный режим не зависит от графической подсистемы и полностью работает по ssh, в том числе команды setup и setup с флагами автозапуска.

ARGUMENTS

help, list, setup, run
Команда для выполнения. Обязательна при запуске с аргументами. Одно из значений:
help
Вывести краткую справку в стандартный вывод и завершить работу. Тип панели указывать не нужно.
list
Вывести пронумерованный список доступных команд для выбранного типа панели. Если -p не указан, печатает `Укажите тип панели.' и завершает работу с кодом 0.
setup
Настроить сетевой интерфейс для работы с панелью Promethean либо управлять автозапуском утилиты. Управление автозапуском (флаги --autostart/--no-autostart/--autostart-all/--no-autostart-all) доступно для обоих типов панелей. Настройка сети без флагов автозапуска — только для Promethean (-p 0).
Без флагов автозапуска команда настраивает сеть. Она работает без интерактивного ввода: находит два Ethernet-интерфейса (обычный и USB-эзернет, имя которого содержит u), и если у USB-интерфейса нет соединения, создаёт его с именем Android и адресом 192.168.254.253/24. Если оба интерфейса уже имеют соединения, ничего не меняется. Результат печатается в стандартный вывод. При указании -f существующее соединение Android удаляется и создаётся заново.
С флагом --autostart команда включает автозапуск для текущего пользователя с активной X-сессией: создаёт файл ~/.config/autostart/panel-management.desktop с правами 0644 и владельцем-пользователем. Если утилита запущена от root, целевой пользователь определяется через get_current_user_on_x(3); если активной X-сессии нет, команда ничего не делает и сообщает об этом.
С флагом --no-autostart команда выключает автозапуск для текущего пользователя: в пользовательский файл ~/.config/autostart/panel-management.desktop записывается строка Hidden=true. Это перекрывает системный автозапуск по спецификации XDG и гарантирует, что автозапуск не сработает, даже если системный файл появится позже. Пользовательский файл не удаляется.
С флагом --autostart-all команда включает автозапуск для всех пользователей устройства: создаёт файл /etc/xdg/autostart/panel-management.desktop с правами 0644 и владельцем root. Требует прав root.
С флагом --no-autostart-all команда выключает автозапуск для всех пользователей: удаляет /etc/xdg/autostart/panel-management.desktop. Требует прав root.
Все четыре флага автозапуска взаимоисключающие и не запускают настройку сети. Требования к настройке сети см. в разделе NOTES.
run
Отправить команду на панель. Требует либо -c, либо -n. Для команд, требующих числового параметра (яркость, громкость и т. п.), необходимо также указать -v.

OPTIONS

-p, --panel-type тип
Тип панели. Одно из значений:
  • 0 — Promethean
  • 1 — NexTouch
Обязателен для всех команд, кроме help.
-n, --number номер
Номер команды для выполнения на панели (позиция команды в списке, который выводит list). Используется с командой run.
-c, --cmd команда
Строка команды для выполнения на панели. Используется с командой run.
-v, --value значение
Числовой параметр для команд, которые его требуют (яркость, громкость и т. п.). Обязателен для команд из фиксированного набора; для остальных команд указание -v приводит к ошибке. Используется с командой run.
-f, --force
Для команды setup: принудительно перенастроить Android-интерфейс (id Android, адрес 192.168.254.253/24), даже если соединение уже существует. Указание -f с любой другой командой приводит к ошибке.
--autostart
Для команды setup: включить автозапуск для текущего пользователя с активной X-сессией. Создаётся файл ~/.config/autostart/panel-management.desktop с содержанием Exec=panel-management --tray. Файл принадлежит пользователю, права 0644. Строка Hidden в файл не пишется — её отсутствие означает, что автозапуск активен. Если утилита запущена от root, имя целевого пользователя определяется через get_current_user_on_x(3); при отсутствии активной X-сессии команда ничего не делает и печатает сообщение. Указание --autostart с любой другой командой, кроме setup, приводит к ошибке.
--no-autostart
Для команды setup: выключить автозапуск для текущего пользователя. В файл ~/.config/autostart/panel-management.desktop записывается строка Hidden=true. Это перекрывает системный автозапуск для данного пользователя по спецификации XDG и гарантирует, что автозапуск не сработает, даже если системный файл появится позже. Пользовательский файл не удаляется. Указание --no-autostart с любой другой командой, кроме setup, приводит к ошибке.
--autostart-all
Для команды setup: включить автозапуск для всех пользователей устройства. Создаётся файл /etc/xdg/autostart/panel-management.desktop с правами 0644 и владельцем root. Требует прав root: при запуске не от root команда завершается с сообщением об ошибке, ничего не меняя. Указание --autostart-all с любой другой командой, кроме setup, приводит к ошибке.
--no-autostart-all
Для команды setup: выключить автозапуск для всех пользователей устройства. Удаляется файл /etc/xdg/autostart/panel-management.desktop. Требует прав root. Если файла нет, команда завершается успешно и печатает соответствующее сообщение. Указание --no-autostart-all с любой другой командой, кроме setup, приводит к ошибке.
--tray
Служебный флаг. Запускает утилиту в графическом режиме сразу свёрнутой в трей, без показа главного окна. Если в конфиге сохранён тип панели, диалог выбора типа панели не показывается; иначе показывается обычный диалог, и после выбора окно остаётся видимым. Используется в файле автозапуска; вручную вызывать не требуется.
--nextouch-ip адрес
IP-адрес панели NexTouch (не OPS-модуля). Обязателен для всех команд NexTouch, кроме list и help. Адрес проверяется как строгий IPv4 в точечной нотации (четыре октета 0–255, без ведущих нулей) и дополнительно через IPy(3) до отправки команды; при некорректном адресе программа завершается с ошибкой.
-h, --help
Показать краткую справку, сгенерированную argparse(3), и завершить работу. Это встроенная справка argparse, а не команда help.

EXAMPLES

Показать список команд для панели Promethean:
panel-management list -p 0
Отправить команду номер 5 с параметром 75 на панель Promethean:
panel-management run -p 0 -n 5 -v 75
Отправить конкретную команду на панель NexTouch:
panel-management run -p 1 --nextouch-ip 192.168.1.10 -c 6B303173503230300D
Настроить сетевой интерфейс для панели Promethean (по ssh, без вопросов):
panel-management setup -p 0
Принудительно перенастроить Android-соединение:
panel-management setup -p 0 -f
Включить автозапуск для текущего пользователя с X-сессией (по ssh от root):
panel-management setup -p 0 --autostart
Выключить автозапуск для текущего пользователя:
panel-management setup -p 0 --no-autostart
Включить автозапуск для всех пользователей устройства (только root):
sudo panel-management setup -p 0 --autostart-all
Выключить автозапуск для всех пользователей устройства:
sudo panel-management setup -p 0 --no-autostart-all

EXIT STATUS

0
Успешное выполнение. Также возвращается командой list без -p и командой help.
2
Некорректные аргументы командной строки: сообщение выдаёт либо argparse(3), либо внутренняя проверка аргументов.
другое
setup при настройке сети возвращает код завершения nmcli(1); ненулевое значение означает, что настроить сеть не удалось. При работе с автозапуском ненулевой код возврата означает, что команда не смогла выполнить действие (нет прав, не найден пользователь с X-сессией, ошибка записи файла).

FILES

promethean_commands
Список команд для панелей Promethean. Каждая непустая строка имеет вид код;перевод[;коды]. Необязательное третье поле — литерал словаря Python, сопоставляющий сырые ответы панели человекочитаемым сообщениям.
nexttouch_commands
Список команд для панелей NexTouch. Формат тот же, но без описания команд на английском для NexTouch.
~/.config/panel-management/config.ini
Пользовательский конфиг. Хранит выбранный тип панели (panel_type) и IP-адрес NexTouch (nextouch_ip). Создаётся автоматически при первом выборе типа панели в графическом интерфейсе или при добавлении утилиты в автозапуск. Используется при запуске с флагом --tray, чтобы не показывать диалог выбора типа панели.
/etc/xdg/autostart/panel-management.desktop
Системный файл автозапуска для всех пользователей устройства. Создаётся командой panel-management setup -p 0 --autostart-all от имени root. Содержит строку Exec=panel-management --tray. Права 0644, владелец root:root.
~/.config/autostart/panel-management.desktop
Пользовательский файл автозапуска. Создаётся командой panel-management setup -p 0 --autostart или из меню трея. Переопределяет системный файл по спецификации XDG. Команда panel-management setup -p 0 --no-autostart записывает в этот файл строку Hidden=true, что отключает автозапуск для пользователя независимо от наличия системного файла.

NOTES

Утилита отправляет команды Promethean по UDP на 192.168.254.254:8903 и слушает ответы на 192.168.254.253:8904. Команды NexTouch отправляются по TCP на порт 4660 панели, указанной в --nextouch-ip, с использованием nc(1).

Для работы
setup при настройке сети требуется:
  • как минимум два Ethernet-интерфейса, видимых для nmcli(1);
  • nmcli и работающий NetworkManager;
  • sudo для применения изменений (в консольном режиме);
  • pkexec для применения изменений (в графическом режиме).
Если найдено меньше двух интерфейсов, команда печатает сообщение об ошибке и завершается, ничего не меняя. Флаги автозапуска не требуют ни nmcli, ни интерфейсов.
Автозапуск действует на пользователя, у которого запущена
графическая сессия X. При запуске команды от root целевой пользователь определяется через get_current_user_on_x(3). Если активной X-сессии нет, пользовательские флаги (--autostart, --no-autostart) ничего не делают и печатают сообщение.
Панели NexTouch нельзя настраивать командой
setup; используйте list и run. Это проверяется программой до выполнения любой команды.
Признаком Android-интерфейса считается наличие символа
u в имени устройства (USB-эзернет, например enp0s20f0u3). Это не универсальное правило, но оно надёжно работает на типовых конфигурациях МосТех.
Одновременно может работать только один экземпляр утилиты в графическом
режиме. Повторный запуск (например, вручную при уже запущенном автозапуске) выводит сообщение и завершается.

SEE ALSO

nc(1), nmcli(1), pkexec(1), sudo(8), python3(1)

AUTHOR

Команда разработки МосТех

2026 panel-management 2.2