- Операционная система: Linux с поддержкой X11/Wayland
- Python: 3.7+
- Монитор: Поддержка DDC/CI протокола
- Системный трей: GNOME, KDE, или другая DE с поддержкой system tray
git clone https://github.com/toxblh/Monic.git
cd Monic
./install.sh
# Ставим pip
sudo apt-get install pip
# И выдаём доступ на усправление шиной i2c
sudo mkdir -p /etc/modules-load.d; echo i2c-dev | sudo tee /etc/modules-load.d/i2c-dev.conf
sudo groupadd i2c
sudo chown :i2c /dev/i2c-*
sudo usermod -aG i2c $USER
echo 'KERNEL=="i2c-[0-9]*", GROUP="i2c"' | sudo tee -a /etc/udev/rules.d/10-i2c.rules
sudo udevadm control --reload-rules
sudo udevadm trigger
# Первый запуск с консоли (долгий), далее можно из меню приложений
~/.local/share/monitor-control/run_monitor_control.sh
git clone https://github.com/toxblh/Monic.git
cd Monicpip install -r requirements.txtУбедитесь, что DDC/CI включен в настройках вашего монитора:
- Зайдите в меню монитора
- Найдите раздел "Дополнительно" или "Advanced"
- Включите "DDC/CI" или "DDC Command Interface"
# Установка в систему
./install.sh
# После установки приложение будет доступно в меню приложений
# Поиск: "Monitor Control"# Прямой запуск
python3 monitor_control.py
# Или через скрипт запуска
./run_monitor_control.shПосле запуска приложение появится в системном трее. Щелкните правой кнопкой мыши по иконке для доступа к меню управления.
Если приложение было установлено через install.sh:
./uninstall.sh- 🌑 0% - Минимальная яркость
- 🌘 25% - Низкая яркость
- 🌗 50% - Средняя яркость
- 🌖 75% - Высокая яркость
- 🌕 100% - Максимальная яркость
- 🔇 0% - Беззвучный режим
- 🔈 25% - Тихо
- 🔉 50% - Средняя громкость
- 🔊 100% - Максимальная громкость
- DP-1 - DisplayPort 1
- HDMI-1 - HDMI порт 1
- HDMI-2 - HDMI порт 2
- Type-C - USB-C (если поддерживается)
Основные параметры можно настроить в файле monitor_control.py:
# Настройки анимации
ANIMATION_DURATION_MS = 400 # Длительность анимации (мс)
ANIMATION_STEPS = 40 # Количество шагов анимации
# Автообновление
UPDATE_INTERVAL_MS = 10000 # Интервал обновления (10 сек)main()- Точка входа и инициализация приложенияBrightnessAnimator- Класс для плавной анимации яркостиscan_monitors()- Сканирование и обнаружение мониторовcreate_monitor_menus()- Создание меню для управленияupdate_brightness_display()- Автоматическое обновление UI
- DDC/CI (Display Data Channel Command Interface)
- VCP (Virtual Control Panel) коды для управления параметрами
Monic/
├── monitor_control.py # Основное приложение
├── requirements.txt # Python зависимости
├── README.md # Документация
├── icon.png # Иконка приложения
├── monitor-control.desktop # Desktop файл (для разработки)
├── run_monitor_control.sh # Скрипт запуска
├── install.sh # Скрипт установки в систему
└── uninstall.sh # Скрипт удаления
- Приложение может быть установлено как системное приложение
- Автоматическое создание виртуального окружения
- Интеграция с меню приложений рабочего стола
- Поддержка современных desktop-файлов
- Плавная анимация изменения яркости за 400ms
- 40 шагов анимации для гладкого перехода
- Обновление иконки в трее в реальном времени
- Обновление информации каждые 10 секунд
- Дебаунсинг для предотвращения частых обновлений
- Безопасные межпоточные обновления UI
- Проверьте, что DDC/CI включен в настройках монитора
- Убедитесь, что кабель поддерживает передачу данных (не только видео)
- Попробуйте другой порт (DisplayPort обычно работает лучше HDMI)
# Добавьте пользователя в группу i2c
sudo usermod -a -G i2c $USER
# Перелогиньтесь после выполнения команды- Убедитесь, что ваша DE поддерживает system tray
- Для GNOME установите расширение "AppIndicator Support"
Приложение выводит подробную информацию в консоль:
- ✅ Успешные операции
- ❌ Ошибки и проблемы
- 🔄 Статус обновлений
- 🎬 Информация об анимации
- Сделайте Fork репозитория
- Создайте ветку для новой функции (
git checkout -b feature/amazing-feature) - Сделайте коммит изменений (
git commit -m 'Add amazing feature') - Отправьте в ветку (
git push origin feature/amazing-feature) - Откройте Pull Request
Этот проект распространяется под лицензией MIT. См. файл LICENSE для подробностей.
- monitorcontrol - Библиотека для управления мониторами
- PyQt6 - GUI фреймворк
- DDC/CI стандарт - Протокол управления мониторами
При возникновении проблем:
- Проверьте раздел "Устранение неполадок"
- Создайте Issue с подробным описанием проблемы
- Приложите логи из консоли
Версия: 1.0.0
Автор: toxblh