Инвертирует и/или понижает цветовую температуру экрана(ов) по расписанию для более приятного опыта в ночное время
Использование:
-- make a windowfilterDisable for redshift: VLC, Photos and screensaver/login window will disable color adjustment and inversion
local wfRedshift=hs.window.filter.new({VLC={focused=true},Photos={focused=true},loginwindow={visible=true,allowRoles='*'}},'wf-redshift')
-- start redshift: 2800K + inverted from 21 to 7, very long transition duration (19->23 and 5->9)
hs.redshift.start(2800,'21:00','7:00','4h',true,wfRedshift)
-- allow manual control of inverted colors
hs.hotkey.bind(HYPER,'f1','Invert',hs.redshift.toggleInvert)
Примечание:
Начиная с macOS 10.12.4, Apple предоставляет «Night Shift», который реализует простой эффект красного смещения, как часть ОС. Кажется маловероятным, что hs.redshift будет подвергаться существенному дальнейшему развитию.
Таблица, содержащая значения гамма для заданных цветовых температур; каждый ключ должен быть числом цветовой температуры в К (полезные значения находятся между
Примечания
hs.inspect(hs.redshift.COLORRAMP) из консоли покажет, как построена таблица
в стандартной таблице значения от 1000К до 10000К с шагом 100К
Подписывает обратный вызов, чтобы получать уведомления о изменениях состояния инверсии цвета
Параметры
id - (необязательно) строка, идентифицирующая запросчика (обычно имя модуля); если опущено, fn само будет идентификатором; этот идентификатор должен передаваться в hs.redshift.invertUnsubscribe()
fn - функция, которая будет вызываться всякий раз, когда изменяется состояние инверсии цвета; она должна принимать единственный параметр, строку или ложь в соответствии со значением возврата hs.redshift.isInverted()
Возвращаемое значение
Ничего
Примечания
Вы можете использовать это для динамической настройки цветов пользовательского интерфейса в ваших модулях или настройках, если это необходимо.
Устанавливает или очищает запрос на инверсию цвета
Параметры
id - строка, идентифицирующая запросчика (обычно имя модуля)
v - логическое значение, указывающее, нужно ли инвертировать цвета (если true) или очистить предыдущие запросы (если false или nil)
Возвращаемое значение
Ничего
Примечания
вы можете использовать эту функцию, например, для автоматической инверсии цветов, если значение датчика окружающего освещения падает ниже определенного порога (hs.brightness.DDCauto() может это сделать)
если в конфигурации пользователя не указано явное включение модуля redshift, вызов этой функции не повлияет
Устанавливает расписание и (снова) запускает модуль
Параметры
colorTemp - число, указывающее желаемую цветовую температуру (Кельвин) в ночной период; рекомендуемый диапазон от 3600К до 1400К; меньшие значения (минимум 1000К) приводят к более выраженному изменению
nightStart - строка в формате "ЧЧ:ММ" (24-часовой формат) или количество секунд после полуночи (см. hs.timer.seconds()) указывающее время начала ночного цикла
nightEnd - строка в формате "ЧЧ:ММ" (24-часовой формат) или количество секунд после полуночи (см. hs.timer.seconds()) указывающее время окончания ночного цикла
transition - (необязательно) строка или количество секунд (см. hs.timer.seconds()) указывающее продолжительность перехода к ночной цветовой температуре и обратно; если опущено, по умолчанию 1 час
invertAtNight - (необязательно) логическое значение, указывающее, нужно ли инвертировать цвета (в дополнение к смещению цветовой температуры) в ночное время; если опущено, по умолчанию false
windowfilterDisable - (необязательно) объект hs.window.filter , который отключит корректировку цвета (и инверсию цвета) всякий раз, когда разрешается любое окно; альтернативно, вы можете просто предоставить список имен приложений (обычно приложения для медиа и/или приложения для работы с цветочувствительной информацией) и будет создан windowfilter, который отключает корректировку цвета всякий раз, когда фокусируется одно из этих приложений
dayColorTemp - (необязательно) число, указывающее желаемую цветовую температуру (в Кельвинах) в дневной период; вы можете использовать это для поддержания некоторой степени "redshift" в течение дня также, или, если это необходимо, вы можете указать значение выше 6500К (до 10000К) для более синих цветов, хотя это не рекомендуется; если опущено, по умолчанию 6500К, что отключает корректировку цвета и восстанавливает исходные цветовые профили экранов
Устанавливает или очищает переопределение пользователя для корректировки цветовой температуры.
Параметры
v - (необязательно) логическое значение; если true, переопределение включит корректировку цветовой температуры по заданному расписанию; если false, переопределение отключит корректировку цветовой температуры; если опущено или nil, оно переключится, т.е. очистит его, если он в настоящее время применён, или установит его на противоположное текущему статусу корректировки цветовой температуры в противном случае.
Возвращаемое значение
Ничего
Примечания
Эта функция должна быть связана с горячей клавишей, например: hs.hotkey.bind('ctrl-cmd','-','Redshift',hs.redshift.toggle)
Устанавливает или очищает переопределение пользователя для инверсии цвета.
Параметры
v - (необязательно) логическое значение; если true, переопределение инвертирует цвета независимо от чего-либо; если false, переопределение отключит инверсию цвета независимо от чего-либо; если опущено или nil, оно переключится, т.е. очистит его, если оно в настоящее время применён, или установит его на противоположное текущему статусу инверсии цвета в противном случае.
Возвращаемое значение
Ничего
Примечания
Эта функция должна быть связана с горячей клавишей, например: hs.hotkey.bind('ctrl-cmd','=','Invert',hs.redshift.toggleInvert)