Настройка мультимедийных клавиш клавиатуры в FreeBSD/Linux
До недавнего времени на дополнительные кнопки своей клавиатуры (SVEN 4500) я не обращал внимания. Ну не пользуюсь и нафиг они мне. Но тут что-то в общем дёрнуло меня использовать их с толком. В общем порывшись немного в интернете я нашёл хороший проект, а точнее программу SVEN (не путать с производителем клавиатур, колонок и прочего). Программка предоставляла все что только можно: графический интерфейс, ну собственно саму привязку клавиш ко всему что только можно и удобную иконку в трее. Скачав архив с программой я попытался ее скомпилировать, вот тут собственно и постиг меня облом. Программа не хотелось компилироваться. А все собственно из-за того что вендор дистрибутива не выложил девелоп пакет gtk+ (сколько обломов из за этой gtk у меня было, лучше промолчу). Немного расстроившись, я поикал prm'ку для программы. Она конечно нашлась, но поставить ее тоже не удалось. Рпмка требовала либу. В общем откинув желание возиться с этой прогой я начал изучать альтернативные решения. И через некоторое время оно нашлось. Довольно хорошее решение, позволяющее подключить мультимедийные клавиши на вашей клавиатуры, не запуская ни каких сторонних программ (зачем тратить память и ресурсы процессора?) Нужно всего-то немного терпения. Данное руководство подходит для настройки клавиш в Linux и в FreeBSD.
Все шаманство сводиться к нахождению скан-кодов для клавиш.
Найти их можно с помощью утилиты xev. Запускаем ее, а потом жмём любую мультимедийную клавишу. В ответ в консоле у вас должно появиться следующее:
Ищем слово keycode. Это и есть нужный нам код клавиши. Записываем его, не забывая пометить какой клавише он принадлежит. Дальше в скобках видим слово NoSymbol. Это означает что клавиша у нас ещё не определена. Проделываем эту операцию для всех клавиш.
Теперь идем в /usr/X11R6/lib/X11/xkb/keycodes/ и открываем файл xfree86 В нем ищем записанные нами скен-коды и узнаем их имена.
Для моей мультимедиа клавиатуры SVEN 4500 получились следующие сочетания:
Записываем имена для всех клавиш.. Снова переходим в каталог /usr/X11R6/lib/X11/xkb/symbols/ и открываем файл inet. В нем уже идет привязка наших клавиш к именам. Удобно, что в этом файле уже есть описанные некоторые клавиатуры. Именно для моей модели не нашлось, но производитель имелся. Поэтому я отредактировал только содержимое этого раздела. У меня получилось вот что:
Если для вашей клавиатуры не нашлось ни модели, ни производителя, можно создать по аналогии свою. Главное на что стоит уделить внимание это значение xkb_symbols "sven". У меня это sven, а вам надо придумать новое уникальное имя. Имена клавиш XF86Stop, нужно оставить стандартные, а не придумывать новые, иначе клавиши не подрубятся. Имена для клавиш можно поискать по всему файлу. Ну и на последок самое главное. Открываем файл /etc/X11/xorg.conf Ищем в нем раздел описывающей клавиатуру и меняем значение "XkbModel" на ту, что вы отредактировали/создали в файле inet. Должно получить вот так.
Сохраняем конфиг и перезапускаем Графический сервер. После перезапуска снова запускаем программку xev и снова жмём все кнопки по очереди. Теперь, если все было настроено правильно, вместо значения NoSymbol должны появляться имена назначенные нами в файле inet. И на последок. После перезагрузки и проверки у меня без настройки привязки клавиш работали кнопки Mute и Refresh. Теперь идем в Центр Управления KDE и в разделе Региональные и специальные возможности привязываем мультимедийные клавиши к нужным нам действиям.