UNPKG

arch-wiki-md-repo

Version:

All arch-wiki articles in markdown format, updated every two days.

135 lines (82 loc) 9.83 kB
Общие сведения о том, как назначать различные действия дополнительным клавишам клавиатуры в [Xorg](/index.php/Xorg "Xorg") ## Contents * [1 Введение](#.D0.92.D0.B2.D0.B5.D0.B4.D0.B5.D0.BD.D0.B8.D0.B5) * [2 Присваивание кодов клавиш символам](#.D0.9F.D1.80.D0.B8.D1.81.D0.B2.D0.B0.D0.B8.D0.B2.D0.B0.D0.BD.D0.B8.D0.B5_.D0.BA.D0.BE.D0.B4.D0.BE.D0.B2_.D0.BA.D0.BB.D0.B0.D0.B2.D0.B8.D1.88_.D1.81.D0.B8.D0.BC.D0.B2.D0.BE.D0.BB.D0.B0.D0.BC) * [2.1 Введение](#.D0.92.D0.B2.D0.B5.D0.B4.D0.B5.D0.BD.D0.B8.D0.B5_2) * [2.2 Шаг 1: создание файла для Xmodmap](#.D0.A8.D0.B0.D0.B3_1:_.D1.81.D0.BE.D0.B7.D0.B4.D0.B0.D0.BD.D0.B8.D0.B5_.D1.84.D0.B0.D0.B9.D0.BB.D0.B0_.D0.B4.D0.BB.D1.8F_Xmodmap) * [2.3 Шаг 2: Тестирование](#.D0.A8.D0.B0.D0.B3_2:_.D0.A2.D0.B5.D1.81.D1.82.D0.B8.D1.80.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D0.B5) * [2.4 Шаг 3: Постоянное использование](#.D0.A8.D0.B0.D0.B3_3:_.D0.9F.D0.BE.D1.81.D1.82.D0.BE.D1.8F.D0.BD.D0.BD.D0.BE.D0.B5_.D0.B8.D1.81.D0.BF.D0.BE.D0.BB.D1.8C.D0.B7.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D0.B5) * [3 Присваивание кодов клавиш действиям](#.D0.9F.D1.80.D0.B8.D1.81.D0.B2.D0.B0.D0.B8.D0.B2.D0.B0.D0.BD.D0.B8.D0.B5_.D0.BA.D0.BE.D0.B4.D0.BE.D0.B2_.D0.BA.D0.BB.D0.B0.D0.B2.D0.B8.D1.88_.D0.B4.D0.B5.D0.B9.D1.81.D1.82.D0.B2.D0.B8.D1.8F.D0.BC) * [3.1 Использование xbindkeys](#.D0.98.D1.81.D0.BF.D0.BE.D0.BB.D1.8C.D0.B7.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D0.B5_xbindkeys) * [3.2 Использование actkbd](#.D0.98.D1.81.D0.BF.D0.BE.D0.BB.D1.8C.D0.B7.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D0.B5_actkbd) * [3.3 Использование инструментов окружения рабочего стола](#.D0.98.D1.81.D0.BF.D0.BE.D0.BB.D1.8C.D0.B7.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D0.B5_.D0.B8.D0.BD.D1.81.D1.82.D1.80.D1.83.D0.BC.D0.B5.D0.BD.D1.82.D0.BE.D0.B2_.D0.BE.D0.BA.D1.80.D1.83.D0.B6.D0.B5.D0.BD.D0.B8.D1.8F_.D1.80.D0.B0.D0.B1.D0.BE.D1.87.D0.B5.D0.B3.D0.BE_.D1.81.D1.82.D0.BE.D0.BB.D0.B0) * [3.3.1 Gnome](#Gnome) * [3.3.2 KDE](#KDE) * [3.3.3 Xfce4](#Xfce4) * [3.3.4 Openbox](#Openbox) * [3.3.5 PekWM](#PekWM) # Введение Внутри графического окружения может появиться необходимость печати специального символа или выполнения определенной команды. Есть несколько способов реализации такой возможности, они и будут рассмотрены в этом HOWTO. **Примечание:** Предполагается, что уже известны коды клавиш для требуемых комбинаций. Если коды не известны, то следует прочитать статью [Extra keyboard keys](/index.php/Extra_keyboard_keys_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "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](/index.php/Xprofile_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Xprofile (Русский)"). # Присваивание кодов клавиш действиям ## Использование xbindkeys *[xbindkeys](/index.php/Xbindkeys "Xbindkeys")* (доступен в репозитории extra) позволяет назначать keycodes клавишам независимо от используемого окружения рабочего стола (Desktop Environment). В [AUR](/index.php/Arch_User_Repository_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Arch User Repository (Русский)") можно найти GUI-оболочку *xbindkeys_config*. ## Использование actkbd Из [actkbd home page](http://users.softlab.ece.ntua.gr/~thkala/projects/actkbd/): > **actkbd** (доступен [в AUR](https://aur.archlinux.org/packages.php?ID=8056)) это простой демон, который связывает определенные действия с сигналами с клавиатуры. Он получает комбинации клавиш и обрабатывает события при нажатии, повторе и отпускании. В настоящее время обеспечена поддержка только 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](http://urukrama.wordpress.com/openbox-guide/#Key_mouse) или [Openbox Wiki](http://openbox.org/wiki/Help:Actions). ### PekWM Настройка клавиш в PekWM осуществляется путем редактирования файла `~/.pekwm/keys`. Например, добавление следующей строки в нижнюю часть секции Global, позволит уменьшать громкость с помощью мультимедийных клавиш: ``` KeyPress = "XF86AudioLowerVolume" { Actions = "exec amixer set Master 5- unmute &" } ```