0
Найти на сайте: параметры поиска

 

 

Настройка Fn-клавиш

  
anon
Сообщений: 359
Ставим пакеты (названия пакетов взяты из ubuntu) acpid и acpi-support (так же не помешают acpi и acpitool), если они еще не стоят. В Linux Mint (ubuntu) это делается так:

sudo aptitude install apcid acpi-support acpi acpitool

Поясню коротко для чего какой пакет :
acpid - сам acpi-демон, который обрабатывает acpi-события;
acpi-support - этот пакет ставит в систему файлы обработчики событий, т.е. правила реагирования на acpi-события, и скрипты, которые вызываются файлами-обработчиками при наступлении какого-либо события;
acpi и acpitool - это дополнительне утилиты, которые показывают различную информацию полученную через acpi.
Не смотря на то, что стоит пакет acpi-support все же не все клавиши работают.

Нужные пакеты уже стоят, а значит пора действовать.
"Набиваем" в любимой консольке:

$ acpi_listen
hotkey ATKD 00000051 00000000
hotkey ATKD 00000051 00000001

и тыкаем Fn клавиши, а когда натыкаемся жмем Ctrl+C
В этом примере я 2 раза нажал Fn+F4

Что означает вывод? А вот что:
первые два слова - тип события;
третье - номер события;
четвертое - порядковый номер нажатия на эту клавишу (это нам не нужно).

Поиск файлов-обработчиков событий и разбор их работы

Идем в каталог /etc/acpi/events/ и грепаем. Например, для того чтобы узнать какой файл-обработчик события отвечает за нажатие клавиши Fn+F4 выполняем:

$ grep 00000051 /etc/acpi/events/*
asus-internet:event=hotkey (ATKD|HOTK) 00000051

Перед двоеточием ( : ) указано имя файла-обработчика, а после - найденная строка. Давай теперь посмотрим содержимое этого файла:

$ grep -vE '^$|^#' /etc/acpi/events/asus-internet
event=hotkey (ATKD|HOTK) 00000051
action=/etc/acpi/webbtn.sh

Тут первая строка описывает событие, которое нужно отлавливать, а вторая говорит демону acpid какой скрипт нужно выполнить. Теперь глянем что это за скрипт:

$ grep -vE '^$' /etc/acpi/webbtn.sh
#!/bin/sh
test -f /usr/share/acpi-support/key-constants || exit 0
. /usr/share/acpi-support/key-constants
acpi_fakekey $KEY_WWW

Как видим, данный скрипт проверяет наличие файла и если его нет завершает свою работу иначе читает его (там переменные с кодами клавиш), вызывает утилиту acpi_fakekey (из пакета acpid) и передает ей в качестве параметра код клавиши 150 ($KEY_WWW). Утилита acpi_fakekey эмулирует нажатие клавиши на клавиатуре, код которой ей передали.
Вот и все.

Простейший пример настройки Fn-клавиш
Давай для примера сделаем так, чтобы при нажатии клавиши Fn+F4 у нас запускался гномовский калькулятор (нумерация добавлена для удобства ссылок на строки кода):


1. $ grep 00000051 /etc/acpi/events/*
/etc/acpi/events/asus-internet:event=hotkey (ATKD|HOTK) 00000051
2. $ grep action /etc/acpi/events/asus-internet
action=/etc/acpi/webbtn.sh
3. $ sudo sed -ei 's/^acpi_fakekey.*/#acpi_fakekey \$KEY_WWW\nacpi_fakekey \$KEY_CALC/' /etc/acpi/webbtn.sh
4. $ ps aux | grep -vE 'grep|ps' | grep calc
5. $ sudo /etc/init.d/acpid restart
* Stopping ACPI services... [ OK ]
* Loading ACPI modules... [ OK ]
* Starting ACPI services... [ OK ]
6. $ ps aux | grep -vE 'grep|ps' | grep calc
angel 23999 10.1 0.5 32132 16360 ? S 16:59 0:00 gcalctool

В первом шаге мы определяем какой файл-обработчик события отвечает за нажатие на клавишу Fn+F4, потом (шаг 2) заглядываем в этот файл-обработчик, чтобы узнать какой скрипт выполняется при нажатии Fn+F4. На шаге 3 мы изменяем скрипт, который выполняется при нажатии Fn+F4, а именно комментируем строку "acpi_fakekey $KEY_WWW" и под ней добавляем строку "acpi_fakekey $KEY_CALC", что заставляет клавишу Fn+F4 работать как кнопку вызова калькулятора (на некоторых мультимедиа клавах такие кнопки есть). Теперь нажми Fn+F4. Ничего не работает? Вот и у меня тоже, для этого я и выполнил команду из шага 4, чтобы убедиться, что калькулятор не запустился (вдруг в фоне повис). Дело в том, что надо перезапустить демона acpid, что мы и делаем в шаге 5. Ну а теперь снова жмем Fn+F4 и радуемся (шаг 6 показывает, что калькулятор запустился).
Сообщений: 0
При вводе команды
Код PHP:
  1. acpi_listen
и нажатии на желаемые клавиши Fn подсвеченные все клавиши работают, кроме двух (регулировка яркости дисплея), что раньше, в старых версиях Linux работало, как быть в такой ситуации?
Сообщений: 0
А у меня другая проблема: apcid не установился. После ввода команды acpi_listen и нажатий Fn + F[1-12] в терминале пишется какая-то чушь, не имеющая ни чего общего с вашими результатами.
Система mint 11, железо: asus 1001px.
Сообщений: 0
Для ноутбуков "Самсунг" вот хорошая ссылка Fn-кнопки на Самсунге
Я установил samsung-tools, samsung-laptop, easy-slow-down-manager - кнопки заработали (ноут Samsung R-425)
В начало страницы 
|
Перейти на форум:
Быстрый ответ
Чтобы писать на форуме, зарегистрируйтесь или авторизуйтесь.