Отключить экран датчика освещенности на программном уровне OS X
В течение нескольких дней я возвращался в репозиторий кода ядра, но я просто ничего не могу найти.
Я хочу отключить/включить/детектировать состояние окружающего света на основе синего света на экране, что многие из ноутбуков более высокого уровня Mac. Это затемнение, которое активируется с помощью флажка "Автоматическая настройка яркости" на панели управления дисплеем.
Обратите внимание, что я НЕ говорит о настройке halfdim, которая заставляет экран резко тускневать перед тем, как он спит. Я говорю о настройке, которая тускнеет на экране в темных комнатах и освещает ее в светлых комнатах, что отличается.
Если кто-нибудь может даже указать мне в правильном направлении, я был бы замечательным. Я предполагаю, что он обрабатывается где-то в IOKit, возможно, либо в IOGraphics, где обрабатывается яркость экрана, либо где-то в IOKit/pwr_mgt, но я просто не могу его найти.
Спасибо
Изменить: я знаю, что вы можете это сделать, обратившись к системным настройкам с помощью AppleScript. Я ищу реальный путь, если он существует.
Ответы
Ответ 1
Попытка сделать это на Маверикс была неудачной для меня. После некоторых исследований я обнаружил, что вам нужно использовать следующую команду:
defaults write /Library/Preferences/com.apple.iokit.AmbientLightSensor "Automatic Display Enabled" -bool TRUE
Я считаю, что нужно указать полный путь, иначе он будет по умолчанию для неправильной библиотеки/Предпочтения пользователя. Быть в этом каталоге в терминале не работает либо из-за того, как работает defaults
.
Это не обновляет флажок в настройках системы → Дисплеи.
Ответ 2
Это не API, а также много способов управления launchd
через API.
sudo launchctl stop com.apple.AmbientDisplayAgent
sudo launchctl remove com.apple.AmbientDisplayAgent
Ta Da!
Ответ 3
Измените настройку "Автоматическая настройка яркости" с помощью команды defaults
:
defaults write com.apple.BezelServices dAuto -boolean false
Также извлекайте текущую настройку с помощью команды defaults
:
defaults read com.apple.BezelServices dAuto
AppleScript эквивалент:
do shell script "defaults write com.apple.BezelServices dAuto -boolean false"
Используйте true
для включения и false
для отключения функции.
Вам может потребоваться снова войти в систему, чтобы изменения вступили в силу.