Подтвердить что ты не робот

Отключить экран датчика освещенности на программном уровне OS X

В течение нескольких дней я возвращался в репозиторий кода ядра, но я просто ничего не могу найти.

Я хочу отключить/включить/детектировать состояние окружающего света на основе синего света на экране, что многие из ноутбуков более высокого уровня Mac. Это затемнение, которое активируется с помощью флажка "Автоматическая настройка яркости" на панели управления дисплеем.

Обратите внимание, что я НЕ говорит о настройке halfdim, которая заставляет экран резко тускневать перед тем, как он спит. Я говорю о настройке, которая тускнеет на экране в темных комнатах и ​​освещает ее в светлых комнатах, что отличается.

Если кто-нибудь может даже указать мне в правильном направлении, я был бы замечательным. Я предполагаю, что он обрабатывается где-то в IOKit, возможно, либо в IOGraphics, где обрабатывается яркость экрана, либо где-то в IOKit/pwr_mgt, но я просто не могу его найти.

Спасибо

Изменить: я знаю, что вы можете это сделать, обратившись к системным настройкам с помощью AppleScript. Я ищу реальный путь, если он существует.

4b9b3361

Ответ 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 для отключения функции.
Вам может потребоваться снова войти в систему, чтобы изменения вступили в силу.