RedLamp
Redlamp - это программа, предоставляющая возможность регулировать цветовую температуру экрана в соответствии с окружающей обстановкой. Это позволяет защитить глаза пользователя от негативного влияния свечения монитора, особенно в ночное время.
Возможности и особенности
Программа является аналогом (и некоторые плагины являются прямым форком) таких проектов, как RedShift / Gammastep, отличаясь от них наличием таких возможностей как:
- Модульность Программа, как сущность, реализует только минимальное рабочее ядро процесса. Все остальные функции являются плагинами и могут (не-)использоваться по желанию пользователя.
- Интегрируемость Программа предоставляет плагины для работы с популярными композиторами Linux (как следствие, поддерживает Wayland)
- Управляемость В состав программы включены плагины, дающие возможность осуществлять внешнее управление запущенным приложением.
- Интеграция с системой Возможность работать как в режиме приложения, так и в режиме unix-демона (старый и новый стиль, опционально, можно отключать при сборке). Обеспечена опциональная интеграция с systemd.
- Минимизация зависимостей Приложение требует минимально необходимое для работы количество зависимостей.
- Кастомизация Расширено количество опций конфигурирования сборки и параметров настройки.
- Совместимость Обеспечена возможность импорта настроек RedShift при первом запуске. Таккже обеспечена максимально возможная совместимость в ключах запуска и режимах работы.
Особенности эксплуатации
Программа запускается, как консольное unix-приложение и начинает работу. Никаких дальнейших действий не требуется. Выход из приложения осуществляется по сигналу SIGTERM (Ctrl+C
в консоли)
Опции запуска приложения (опции совместимые с RedShift помечены соответствующей меткой)
- -b <основной[:ночной]> - параметры яркости экрана (если разрешено управления яркостью) (RedShift)
- -c <файл> - альтернативный конфигурационный файл приложения. При отсутствии, будет создан, если не указана опция read-only (RedShift)
- -d - отключение проверки плагинов на совместимость с текущей версией приложения (опасно)
- -g <R[:G:B]> - установка параметров гаммы
- -h, -? - справка приложения
- -l <id-плагина[:help]> [list|<lat:lon>] - опции плагина геолокации
- id - использовать указанный плагин (RedShift)
- list - список доступных плагинов (RedShift)
- id:help - информация о плагине (RedShift)
- lat:lon - ручной режим указания координат (RedShift)
- -m <id-плагина[:help]> [list] - опции плагина окраски
- id - использовать указанный плагин (RedShift)
- list - список доступных плагинов (RedShift)
- id:help - информация о плагине (RedShift)
- -o - oneshot-режим. Запуск приложения на опредённое количество секунд (по умолчанию 5 сек.). (RedShift)
- -O <температура> - oneshot-режим с указанной температурой красного. (RedShift)
- -p - режим отображения текущего плана работы (RedShift)
- -q - тихий режим. Любые сообщения stdout/stderr подавляются (не отражается на работе плагинов логгирования) (RedShift)
- -r - отключение плавного перехода (fade) между режимами (RedShift)
- -t <основной[:ночной]> - температура красного день/ночь (RedShift)
- -v - расширенный режим вывода сообщений (RedShift)
- -D - запуск в режиме демона
- -H - расширенная справка приложения. Информация об особенностях сборки, рабочих путях и плагинах.
- -R - защита от изменений конфигурации (read-only mode)
- -V - информация о версии
Логика опции -P и -X не совместима с RedShift, потому что данная функциональность не предусмотрена в приложении.
Плагины в комплекте
- comm_dbus - плагин управления через D-Bus
- comm_socket - плагин управления через сокеты
- geoclue2 - плагин геолокации GeoClue2
- manual - плагин геолокации вручную
- hooks - плагин запуска скриптов по определённым событиям
- notify - плагин пользовательских уведомлений
- flogger - плагин для ведения текстовых логов приложения (преимущественно для отладочных целей)
- drm - плагин коррекции гаммы DRM
- gnome_nl - плагин коррекции гаммы для DE GNOME 3.*,4.*
- kde5_nc - плагин коррекции гаммы для DE KDE 5 (в разработке)
- randr - плагин коррекции гаммы XRandr
- vidmode - плагин коррекции гаммы xf86VidMode
- zwlr - плагин коррекции гаммы wlroots
Более подробное описание см. README.md конкретного плагина.
Также в комплекте исходников (в каталоге plugins) присутствует плагин-пример example. Он не включён в список плагинов для установки и представляет из себя типовой шаблон, на основании которого можно реализовать собственный плагин.
Особенности сборки
Для сборки проекта используется система сборки meson
и ninja
, актуальная на данный момент
Для сборки необходим компилятор с поддержкой стандарта С11: GCC >= 4.6
, CLANG >= 3.1
Необходимые зависимости
['iniparser' , '>=4.1'] (обязательно, включена поставку)
['libsystemd'] (опционально)
Зависимости для плагинов смотрите в README конкретного плагина.
Конфигурирование сборки
Настройка сборки осуществляется стандартным для системы meson
способом: редактированием опций файла meson_options.txt
или ключами командной строки (ознакомьтесь с документацией)
FAQ
-
Зачем этот проект при наличии Redshift/Gammastep
Изначально рассматривалось развитие работы с DE GNOME в рамках проекта gammastep. Gammastep - это форк заброшенного Redshift, в который собраны патчи от сообщества, не вошедшие в оригинальный проект, и добавлен провайдер для wlroots-based систем . Автор не увидел возможности в рамках проекта gammastep, без глубоких и, иногда, достаточно спорных архитектурных изменений, внести необходимую функциональность (см.выше).
-
Почему плагины KDE считаются нестабильными
На то существует несколько причин (в порядке убывания значимости):
- В KDE есть свой конфиуратор NightColor, который имеет практически идентичную функциональность.
- В режиме Xorg, KDE не препятствует установке нужной гаммы напрямую в Xorg (плагины XRandr, XVidMode), не задействуя механизмы KDE
- Автор приложения не пользуется KDE и осуществляет поддержку и тестирование данных плагинов в режиме минимальной работоспособности.
Более подробное описание можно прочесть в README плагина. Возможно, со временем найдутся желающие более деятельно развивать данное направление и ситуация улучшится.
-
Почему проект ведётся на русском языке
Поскольку единственный, на данный момент, автор - русский и вести проект на родном языке для него предпочтительней. Современные онлайн-переводчики вполне хороши (Yandex.Translate, Google.Translate). Желающие могут пользоваться ими, если есть такая потребность.
-
Почему gitflic.ru, а не github.com/gitlab.com/etc.
Потому что это желание автора. Для пользователя gitflic принципиально ничем не отличается. Желание организовать зеркала на соответствующих сервисах автором приветствуется, но участие в их жизни не гарантируется.
-
Почему логика опций -P и -X отличается от родительских проектов
Потому что данные проекты коренным образом архитектурно отличаются от RedLamp. Redhift (как и gammastep, т.к. код управления у них общий) поддерживает управление с помощью реагирования на unix-сигналы (SIGTERM и SIGINT для корректного завершения, SIGUSR1 - для переключения активности ) . RedLamp поддерживает обработку этих сигналов в паритетном объёме. Отличие заключается в том, что Redlamp при завершении (и динамическом переключении модулей корректировки гаммы) автоматически восстанавливает настройки гаммы к тем, что были на момент запуска. Поэтому опции -P и -X, которые предназначены для сброса и восстановления установок гаммы, не актуальны для RedLamp и не реализованы.
-
Почему, на данный момент, поддерживается только Linux
Потому что автор приложения использует Linux в повседневной жизни и разработка плагинов под другие системы не является приоритетом. Под Windows и MacOS сущестует множество замечательных решений, зачастую куда более функциональных. Тем не менее, ядро RedLamp разрабатывается максимально независимым от особенностей конкретной системы и, следовательно, может быть легко портировано под нужную ОС. Реализацию-же плагинов коррекций гаммы и, возможно, геолокации, очевидно придётся осуществлять под конкретную систему.
-
Я не буду использовать это приложение, пока не …, вы обязаны … , и прочий FUD
Авторы приложения не заставляют Вас пользоваться данным приложением и не интересуются Вашим мнением о том, что им делать.
Приветствуются:
- осмысленные сообщения об ошибках в разделе “Проблемы”,
- вежливые запросы на реализацию желаемых функций в разделе “Проблемы” (реализация не гарантируется),
- исправления ошибок и реализации интересных идей в разделе “Запросы на слияние” (слияние не гарантируется, но будет рассмотрено, при наличии у сопровождающих времени)
Описание
Модульный аналог RedShift с поддержкой Wayland и плагинами для DE