Extra keyboard keys in Xorg (Русский)

From ArchWiki
Jump to: navigation, search

Tango-preferences-desktop-locale.pngЭта страница нуждается в сопроводителеTango-preferences-desktop-locale.png

Статья не гарантирует актуальность информации. Помогите русскоязычному сообществу поддержкой подобных страниц. См. Команда переводчиков ArchWiki

Общие сведения о том, как назначать различные действия дополнительным клавишам клавиатуры в Xorg

Введение

Внутри графического окружения может появиться необходимость печати специального символа или выполнения определенной команды. Есть несколько способов реализации такой возможности, они и будут рассмотрены в этом HOWTO.

Примечание: Предполагается, что уже известны коды клавиш для требуемых комбинаций. Если коды не известны, то следует прочитать статью Extra keyboard keys, где обьясняется, как их получить.

Присваивание кодов клавиш символам

Введение

В графическом режиме наиболее традиционным и правильным путем присваивания клавишам нужных кодов, является использование Xmodmap. Xmodmap, это эквивалент loadkeys: он использует файл с некоторыми директивами. Как и loadkeys, Xmodmap можно применить для изменения многих аспектов поведения вашей клавиатуры (например, модификаторов и т.д.), но эти аспекты выходят за рамки темы данной статьи. Единственный тип применения, который будет здесь рассмотрен, заключается в сопоставлении в соответствие X keycode и keysym. xmodmap входит в состав пакета xorg-server-utils.

# pacman -S xorg-server-utils

Шаг 1: создание файла для Xmodmap

В этом файле, необходимо перечислить keycode директив, соблюдая следующий синтаксис:

keycode <Xkeycode> = <keysym>

Список keysyms для X можно найти в /usr/include/X11/keysymdef.h. В большинстве случаев они интуитивно понятны. Будем считать, что 239 это X keycode для моей горячей клавиши. Для присваивания ему литерала 'e', следует написать следующую директиву:

keycode 239 = e

Для получения на выходе символа американской валюты, следует написать следующую директиву::

keycode 239 = dollar

Этот способ также можно использовать для присваивания функций мультимедийным клавишам. Специальные функции можно найти в /usr/include/X11/XF86keysym.h.

Пример ~/.Xmodmap:

keycode 160 = XF86AudioMute
keycode 176 = XF86AudioRaiseVolume
keycode 174 = XF86AudioLowerVolume

Такие мультимедиа программы как Rhythmbox и Exaile рассчитаны на работу с клавишами заданными в XF86 Symbols out-of-the-box, без необходимости настройки сторонними приложениями.

Шаг 2: Тестирование

Для проверки запустить xmodmap с созданным файлом:

$ xmodmap ~/.Xmodmap

Шаг 3: Постоянное использование

Очевидно, что это будет работать только для текущей сессии X, для постоянного применения используйте xprofile.

Присваивание кодов клавиш действиям

Использование xbindkeys

xbindkeys (доступен в репозитории extra) позволяет назначать keycodes клавишам независимо от используемого окружения рабочего стола (Desktop Environment). В AUR можно найти GUI-оболочку xbindkeys_config.

Использование actkbd

Из actkbd home page:

actkbd (доступен в AUR) это простой демон, который связывает определенные действия с сигналами с клавиатуры. Он получает комбинации клавиш и обрабатывает события при нажатии, повторе и отпускании. В настоящее время обеспечена поддержка только linux-2.6 evdev interface. Все необходимые привязки к комбинациям клавиш описываются в текстовом конфигурационном файле.

Использование инструментов окружения рабочего стола

Gnome

В Gnome Control Center есть все механизмы для управления доплнительными комбинациями клавиш. Фактически, он может обработать любой сканкод и сопоставить его любой клавише, которую видит ядро.

KDE

Сочетания клавиш можно настроить в Параметры системы -> Комбинации клавиш и росчерки.

Xfce4

Сочетания клавиш можно изменить в Настройках Клавиатуры (Keyboard Settings), которой для работы требуется xfce4-keyboard-settings.

Openbox

Горячие клавиши и действия настраиваются в секции keyboard вашего файла ~/.config/openbox/rc.xml. Пример, настройки мультимедийной клавиши уменьшения громкости:

<keybind key="XF86AudioLowerVolume">
<action name="Execute">
<execute>amixer set Master 5%- unmute</execute>
</action>
</keybind>

Для получения дополнительной информации, пожалуйста посетите urukrama's Openbox Guide или Openbox Wiki.

PekWM

Настройка клавиш в PekWM осуществляется путем редактирования файла ~/.pekwm/keys. Например, добавление следующей строки в нижнюю часть секции Global, позволит уменьшать громкость с помощью мультимедийных клавиш:

KeyPress = "XF86AudioLowerVolume" { Actions = "exec amixer set Master 5- unmute &" }