Идея состоит в том, что после того, как яркость пройдет определенный уровень, можно переключиться на другую визуальную схему, чтобы обеспечить большую видимость. Кроме того, если это может быть какая-то вещь типа слушателя, это будет еще лучше, но я возьму то, что смогу получить.Есть ли способ запросить текущий уровень яркости ЖК-дисплея MacBook?
ответ
epatel был довольно близко, я просто должен был изменить ключевое слово AppleGraphicsControlBacklight к чему-то еще, чтобы заставить его работать на моем MacBook, поэтому я предполагаю, что это может измениться между версиями OSX и/или версиями macbook.
Я собрал короткий рубиновый скрипт, чтобы распечатать небольшой визуальный индикатор в командной строке.
# grab the string containing the values
brite_string = `ioreg -c AppleBacklightDisplay | grep brightness`
# build a regex to match those vals
brite_regex = /"brightness"=\{"min"=([0-9]{1,3}),"value"=([0-9]{1,3}),"max"=([0-9]{1,3})/
# match them
match_data = brite_regex.match(brite_string)
# extract the values from the match
min = match_data[1].to_i
val = match_data[2].to_i
max = match_data[3].to_i
# print them out nice
puts "Current Brightness"
print "["
max.times do |i|
print i > val ? " " : "*"
end
puts "]"
Я не парень-парень, но есть ли/proc в файловой системе? Возможно, вы захотите посмотреть в этом каталоге виртуальных файлов, если он существует.
/proc не существует на Max OS X. Я не знаю, играет ли какая-либо другая директория в той же роли. – mouviciel
hm .. да, просто угадай, так как Linux и OS X - более или менее кузены. – 2009-02-13 21:50:35
/proc существует, но не монтируется в файловой системе. Вы можете получить доступ к нему программно. [citation-needed] – strager
Я считаю, что можно найти его с помощью IOKit. Запуск команды ioreg в терминале, как показано ниже, дает две строки, в которых отображается значение яркости.
% ioreg -c AppleGraphicsControlBacklight | grep brightness
| | | "IODisplayParameters" = {"brightness"={"min"=0,"value"=408,"max"=1024},"commit"={"reg"=0}}
| | | "IODisplayParameters" = {"brightness"={"min"=0,"value"=408,"max"=1024},"commit"={"reg"=0}}
Может быть, кто-то с достаточно знаний IOKit мог собрать образец ...
Отличные сценарии ... Я подумал, что на самом деле требуется другое решение C/C++/ObjC. Должно быть возможным доступ к нему через IOKit, затем ... – epatel
В конце концов, да, я мог бы захотеть что-то еще более подключенное к IOKit. Это в основном просто доказательство концепции. –