Регулировка яркости клавишами Fn (Ver. 3.0 – Sierra 10.12 FIXED)

Всем привет.

Не работает регулировка яркости на ноутбуке? Не знаете, как заставить работать Fn+xx?
Немного ранее этот вопрос был достаточно трудоемкий, но я смог облегчить работу многим, особенно себе 🙂
Если не поленитесь – заведете все и будете счастливы.


Наверное, идея перенести часть управления некоторыми функциями системы на отдельные клавиши, еще с самых первых попыток, была удачной и уместной. Думаю, что садясь за десктоп после длительного (или, даже, короткого) использования ноутбука, Вы сразу же сталкивались с проблемой регулировки звука: а ведь при просмотре фильма нужно сделать громче или тише, а делать это нужно мышью. Хорошо, если у Вас настроена регулировка громкости на стрелочки или другие клавиши. А если нет? Думаю все сразу ощущают удобство регулировки яркости, звука и некоторых других функций, с помощью специальных кнопок на клавиатуре. Это очевидно, сам такой 🙂

Вообще, вопрос завода функциональных клавиш на OS X достаточно болезненный, так как на настоящиках клавиши F1-F12 работают изначально, как запрограммированные на какое-либо действие, а кнопку Fn Вы используете только ради справки в Windows на Parallels, например. Этот же метод использования изначально запрограммированных клавиш F1-F12 мы можем массово встретить в ноутбуках НР, производители которых, без всякого стыда и смущения, сперли эту идею в Apple. Но все же, гуру Obj-C постарались научить наш обожаемый хакинтош воспринимать комбинации клавиш Fn+F1-F12, которые мы привыкли использовать в Windows.

В этой статье я попытаюсь рассмотреть все возможные варианты фирм производителей ноутбуков и решение по их заводу. Разумеется, чтобы завести яркость с клавиатуры, она уже должна работать в системе (ползунок в настройках). Если же у вас его нету – хоть землю носом ройте, вы яркость с клавиатуры не заведете, пока не активируете подсветку на программном уровне. Если у вас нет ползунка, то Вам нужно прочитать мою статью по заводу подсветки дисплея в ноутбуках.

Итак, приступим к делу!

ASUS

ASUS

Кто не успел, тот опоздал. Недавно я опубликовал первоначальную версию этой статьи, где рассказал о чудо-кексте, который без лишнего труда заводит яркость по Fn+ клавишам. Но когда добрался до АСУСа, то нашел метод не до конца рабочим. Оказывается, что Рехабмен сделал изменения в патчах на батарею, что привело кекст в нерабочее состояние. Теперь, одним кекстом Вы яркость не заведете. Да, у Вас будет работать все: звук, сон, трекпад, вайфай, а вот яркость – нет. Без правки ДСДТ Вам не обойтись. Хотя, я видел пару моделей буков, где нужные правки сделаны разрабами, так что если вы установили 2 кекста и все работает – Вам крупно повезло!

Итак, что же нам нужно:

  1. Уже заведенная яркость в системе, с помощью ползунка, в графе “Дисплей”.
  2. Кекст для Вашего трекпада (Обычно это ELAN, реже Synaptics).
  3. Кекст, непосредственно для работы Ваших “горячих” клавиш. (Данный кекст работает ТОЛЬКО с ноутбуками фирмы ASUS. Не пытайтесь использовать его для завода клавиш на других буках, т.к. у вас попросту ничего не выйдет).
  4. Правка методов яркости в ДСДТ.
Кексты советую положить в Кловер, но вы так же можете их установить и с помощью Кекстовой утилиты.
Хочу сразу успокоить тех, кто испугался правок ДСДТ. В общем метод сам по себе не очень простой, но я, специально для облегчения этой задачи (помните я говорил об этом в начале статьи?), сделал автопатчи для программы MaciASL. Все, что Вам нужно будет – выбрать патч под модель своего ноутбука и применить его к своему ДСДТ.
Если же Вы не имеете понятия, как работать с ДСДТ файлами – Вам сюда. Изучайте, разбирайте, пробуйте.

Первые 3 пункта предельно ясны. Предлагаю более детально разобрать 4-й пункт списка.
Итак:

  1. Открываем свой ДСДТ через MaciASL. *Если его нету – извлекаем таблицы кловером. 
  2. Добавляем мой репозиторий “Keyboard Patches” через настройки:
    http://raw.github.com/olderst/Keyboard-Patches/master
  3. Находим [FnKeys] –> AsusNBFnKeys и вибираем патч ниже, соответственно к своей модели.
    *Советую перед добавлением патча сделать копию своего ДСДТ на случай, если вдруг патч Вам не подойдет и нужно будет применять другой патч из списка.
  4. После этого проверяем ДСДТ на наличие ошибок, сохраняем и кладем его по пути ~/EFI/CLOVER/ACPI/patched/DSDT.aml
  5. Перезагружаемся и радуемся рабочим клавишам!
Если клавиши так и не заработали, Вам нужно будет выполнить 1-7 пункты с метода для Lenovo, Acer, а за тем выбрать любой из патчей в списке FnKeys и заменить цифры в методах _Qxx на те, что Вы получили в логе. Затем, попрошу оставить комментарий к этой статье, где Вы укажете модель своего ноутбука и методы, которые у Вас отвечают за регулировку яркости, чтобы сделать новый патч

Знімок екрана 2016-04-07 о 22.26.40

Но если же Вы предпочитаете более гибкую регулировку яркости и громкости, чтобы ползунок двигался на не 1 деление, как в настоящем маке, а на четверть деления – Вы всегда можете включить эту функцию в infо.plist второго кекста.

HP, Pegatron, SAMSUNG

HP, Pegatron, SAMSUNG

Для ноутбуков этих и других фирм, функциональные клавиши которых находятся на F1-F12, метод завода аналогичный предыдущему, за исключением установки второго кекста – он Вам не нужен. Горячие клавиши заведутся просто кекстом для трекпада.

Но могут возникнуть некоторые проблемы. Например, после выхода из сна перестает работать регулировка яркости и помогает только ребут. Если это Ваша ситуация, то решением будет отказаться от использования функциональных клавиш в связке Fn и использовать метод “настоящиков” – регулировать эти параметры просто клавишами F1-F12. Тем более, что большинству владельцев НР особо привыкать не придется.
Чтобы это “провернуть”, нужно внести изменения в info.plist кекста для вашего трекпада.

Для этого ПКМ по кексту и жмем “показать содержимое пакета”.
Далее идем по пути Contents/Plugins/ApplePS2Keyboard.kext.
Опять ПКМ и “показать содержимое пакета”.
Заходим в папку Contents и открываем info.plist.

  1. Выставляем значение параметру Fn keys Mode.

Знімок екрана 2016-04-07 о 22.57.44

2. Открываем Fn Keys Mode 1 и редактируем под свой ноутбук.
Назначаем те, которые хотим, в пределах F1-F12.

Знімок екрана 2016-04-07 о 23.00.41

После этого перезагружаемся и радуемся рабочим клавишам регулировки.
Если же Вас не устраивает данный метод и Вы, все-таки, хотите использовать “горячие” клавиши, в связке с Fn, то для Вас подойдет метод, который я опишу дальше.

Lenovo, Acer и др. (10.12 Fixed)

Lenovo, Acer и др. (10.12 Fixed)

А вот Вам повезло не так сильно, как владельцам ноутбуков, которые я перечислил выше.
Lenovo – это вообще сплошная головная боль по заводу хакинтоша, как и Samsung. Производители этих буков настолько ленивы, что решили не дописывать методы горячих клавиш в ДСДТ и оставить их завод утилитам для виндовс. Ну а как же быть нам?

Если вы владелец Lenovo Thinkpad, то Вам повезло куда больше, чем остальным. У Вас “горячие” клавиши находятся на F1-F12, по-этому Вы можете смело использовать метод завода для ноутбуков HP, Pegatron, SAMSUNG.
*Или можете попытаться сделать все по-канону, чтобы не привыкать к новому или не путаться. В этом случаи читайте далее.

Если же Вы “гордый” обладатель ноутбука Lenovo или Acer и у Вас регулировка яркости или громкости (или и то и другое) находятся на стрелках – я Вас поздравляю! В этой ситуации установкой одного кекста на трекпад не обойтись, так что без редактирования ДСДТ никак. Если Вы не имеете понятия, как работать с ДСДТ файлами, Вам сюда. Изучайте, разбирайте, пробуйте. А если же Вы уже имели дело с патчем ДСДТ,  Вам не составит большого труда завести свои “горячие клавиши”.

По идее далее у нас 2 пути. По скольку это вторая версия статьи, это значит, что что-то изменилось. В действительности, так и есть. Найдя новые патчи на батарейку от Рехаба, я решил, что было бы неплохо иметь свои патчи на клавиатуру, чтобы облегчить работу себе, в будущем, да и облегчить работу всем, чтобы Вам не приходилось особо вникать в тонкости. В любом случаи, эти патчи уже есть на github.com и их база постоянно пополняется, т.к. еще не все методы вписаны. Но уже имеющиеся патчи могут завести клавиатуры на 70% ноутбуках. Если Вашей модели нету в списке, это не значит, что патч Вам не подходит. Просто нужно будет выполнить инструкции, которые написаны ниже.

Итак, путь первый:

  1. Кладем этот кекст в Кловер.
  2. Открываем свой ДСДТ через MaciASL. *Если его нету – извлекаем таблицы кловером. 
  3. Добавляем мой репозиторий “Keyboard Patches” через настройки: 
    http://raw.github.com/olderst/Keyboard-Patches/master
  4. Находим раздел [ACPI] –> ACPI Keyboard и применяем патч Enable ACPIKeyboard”.
  5. Далее вибираем “Brightness patch”, соответственно к модели Вашего ноутбука.
    *Советую перед добавлением патча сделать копию своего ДСДТ на случай, если вдруг патч Вам не подойдет и нужно будет применять другой патч из списка.
  6. После этого проверяем ДСДТ на наличие ошибок, сохраняем и кладем его по пути ~/EFI/CLOVER/ACPI/patched/DSDT.aml
  7. Перезагружаемся и радуемся рабочим клавишам!
Если вашей модели ноутбука нету в моих патчах, то Вам нужно будет проделать то, что ниже. Затем, попрошу оставить комментарий к этой статье, где Вы укажете модель своего ноутбука и методы, которые у Вас отвечают за регулировку яркости, чтобы сделать новый патч. Этим Вы поможете другим и мне.

Путь второй:

Для начала нам нужно определить наименование наших с Вами стрелок (или других кнопок). У кого-то они называются _Q8E/_Q8F (Acer), у кого-то _Q1C/_Q1D (Lenovo), _Q0E/_Q0F (ASUS), _Q17/_Q18 (HP) и т.д. Вариаций может быть много, так как производители сами решают какой метод закрепить за конкретной клавишей. Но, думаю, что суть ясна.

  1.  Устанавливаем кекст OS-X-ACPI-Debug.
  2. Открываем MaciASL и добавляем репозиторий.
    http://raw.github.com/RehabMan/OS-X-ACPI-Debug/master 
  3. Сделайте копию своего ДСДТ, так как после обнаружения нужных клавиш, нам будет не нужен мусор, который мы сейчас туда вкинем.
  4. Применяем “DSDT Debug Methods” и “Instrument EC Queries”.
  5. Сохраняем ДСДТ и перезагружаемся.
  6. Глядим в system.log и нажимаем клавиши яркости, которые определятся как “_QXX“. Записываем где-нибудь значения, чтобы потом не перепутать их местами.
  7. Удаляем кекст, что установили и открываем свой старый ДСДТ. Его мы и будем сейчас патчить.
  8. Теперь выполняем пункты 4 и 5 с предыдущего метода, только в пункте 5 Вам нужно будет вписать свои значения, которые вы получили в логе.
    Вместо _QXX вписываем свои данные и применяем патч. В моем случаи это методы _Q1D/_Q1C (в порядке понижение/повышение яркости).
  9. Сохраняем ДСДТ и кладем его по пути ~/EFI/CLOVER/ACPI/patched/DSDT.aml
  10. Перезагружаемся и радуемся рабочим клавишам яркости!

Lenovo, Acer и др. (10.12 Context Menu)

Lenovo, Acer и др. (10.12 Context Menu)

Раньше этого пункта не было и его пришлось добавить с выходом Сиерры на свет. В этот раз купертиновцы сделали нам много подарков: сломали трекпад, клавиатуру (глюк с Caps Lock), отвал функциональных клавишь и еще много других сюрпризов.

Изначально они перестали работать вообще. Потом на санях появилась бета-версия кекста AppleSmartTouchpad.kext и Рехабмен выпустил новую версию VoodooPS2.

После выхода 10.12.2 клавиши сами починились, но не у всех. И нам что-то нужно было придумать…
Но недавно я залез в исходники кекста Рехабмена и увидел как он починил кнопки. После этого я обновил свои патчи и теперь все работает как нужно. Но никто нам не мешает продублировать кнопку Fn и сделать двустороннюю регулировку звука и подсветки через “ContextMenu” (клавишу, которая на винде имитирует нажатие ПКМ).

Идем в наш кекст.

  • Для этого ПКМ по кексту и жмем “показать содержимое пакета”.
  • Далее идем по пути Contents/Plugins/ApplePS2Keyboard.kext.
  • Опять ПКМ и “показать содержимое пакета”.
  • Заходим в папку Contents и открываем info.plist.

  • Открываем Fn Keys Mode 2 и редактируем под свой ноутбук. Скорее-всего у вас регулировка на стрелочках, по-этому назначаем, как на скрине – ArrowRight (стрелка вправо), ArrowLeft (стрелка влево), ArrowUp (стрелка вверх), ArrowDown (стрелка вниз), или же подставляем свои значения, а другие, которые пересекаются, обозначаем #, как на скрине.

После этого у вас будет исправно все работать с помощью “ContextMenu”+xx. 
После этого перезагружаемся и радуемся рабочим клавишам регулировки.

 

Поздравляю! Вы это сделали!

Надеюсь, что данная статья помогла Вам с Вашей проблемой.
Если есть замечания или пожелания – пишите комментарии!


За основу взяты материалы с репозитория Рехабмена и исходника его кекста.

Автор статьи, оформление – Александр Дубовик (Olderst)

Добавить комментарий

%d такие блоггеры, как: