HOWTO Добавление модели мультимедийной клавиатуры

Материал из Gentoo Linux Wiki

Перейти к: навигация, поиск
Вернуться в раздел руководства

Для начала надо узнать коды мультимедийных клавиш, для этого используем утилиту xev (x11-apps/xev): из консоли запускаем xev и в открывшемся окне по очереди нажимаем все мультимедийные клавиши, параллельно смотрим в консоль и записываем коды клавиш.

Code: пример вывода xev
KeyPress event, serial 31, synthetic NO, window 0x2a00001,
    root 0x119, subw 0x0, time 1275880387, (100,360), root:(514,380),
    state 0x0, keycode 134 (keysym 0x0, NoSymbol), same_screen YES,
    XLookupString gives 0 bytes:
    XmbLookupString gives 0 bytes:
    XFilterEvent returns: False

KeyRelease event, serial 31, synthetic NO, window 0x2a00001,
    root 0x119, subw 0x0, time 1275880591, (100,360), root:(514,380),
    state 0x0, keycode 134 (keysym 0x0, NoSymbol), same_screen YES,
    XLookupString gives 0 bytes:
    XFilterEvent returns: False

нас интересует keycode (в примере 134).

В файл /usr/share/X11/xkb/symbols/inet добавляем описание модели своей клавиатуры:

Файл: /usr/share/X11/xkb/symbols/inet
...
// Genius KB-16e Scroll
partial alphanumeric_keys
xkb_symbols "genius16s" {
    // Describes the extra keys on a Genius KB-16e Scroll
    include "inet(geniuscomfy)"
    key <I10>   {       [ XF86AudioPrev         ]       };
    key <I05>   {       [ XF86Word              ]       };
    key <I06>   {       [ XF86Excel             ]       };
    key <I07>   {       [ XF86ScrollClick       ]       };
    key <I19>   {       [ XF86AudioNext         ]       };
};
...

Формат довольно простой: genius16s - кодовое название модели, include "inet(geniuscomfy)" - добавить клавиши ранее определённой модели geniuscomfy, XF86AudioPrev, XF86Word и т.п. - полный список определен в /usr/share/X11/XKeysymDB. Теперь что касается кодов клавиш: из полученного числа отнимите 128 и переведите в шестнадцатеричную систему исчисления. Для примера (134) в этом файле надо записывать как key <I06>.

Однако правильнее будет найти соответствие полученному с помощью xev коду клавиши в файле /usr/share/X11/xkb/keycodes/xfree86, так как некоторые шестнадцатеричные "аналоги" в этом файле закомментированы. Соответственно они работать не будут, и придется искать другой "аналог".

Переходим к редактированию файла /usr/share/X11/xkb/rules/xorg: находим определение мультимедийных клавиатур:

Файл: /usr/share/X11/xkb/rules/xorg
...
! $inetkbds = a4techKB21 a4techKBS8 acer_tm_800 acpi airkey azonaRF2300 \
              brother \
...

добавляем в этот список кодовое название своей модели (в примере genius16s). Также добавляем описание в файлы /usr/share/X11/xkb/rules/xorg.lst и /usr/share/X11/xkb/rules/xorg.xml.

Всё, теперь можно добавлять модель своей клавиатуры в конфиге иксов (Option "XkbModel" "genius16e"), или, например, если используете KDE и kxkb, то просто выбираем модель в Центре управления -> Региональные и специальные возможности -> Раскладка клавиатуры.

Личные инструменты