Расширение клавиатуры X
Оригинальный автор(ы) | Фонд X.Org |
---|---|
Стабильная версия | 1.0 / 1996 |
Веб-сайт | www ![]() |
В интерфейсах человек-компьютер расширение клавиатуры X или XKB является частью системы X Window , которая расширяет возможности управления клавиатурой по сравнению с тем, что предлагается основным протоколом системы X Window , и позволяет использовать несколько раскладок клавиатуры .
Его основные особенности:
- расширенная поддержка модификаторов ( Alt, ⇧ Shift, и т. д.);
- лучшая обработка групп клавиш (обычно раскладок клавиатуры );
- расширенное управление индикаторами клавиатуры ( светодиодами ) и звонками ;
- различные новые параметры клавиатуры (элементы управления);
- привязка действий (определенного вида) к клавишам.
XKB состоит из двух частей: серверного расширения и клиентской библиотеки. Современные версии Xlib содержат XKB, который активен по умолчанию. Клиентские программы, не использующие это расширение, могут деактивировать его перед подключением к серверу или могут просто работать нормально, поскольку расширение по умолчанию имитирует основной протокол.
XKB также используется композиторами Wayland и kmscon .
Зафиксированные и заблокированные модификаторы
[ редактировать ]модификатор XKB позволяет заблокировать или зафиксировать , кроме его обычного состояния. Обычно модификатор активен именно тогда, когда он нажат, например, Shift . Однако модификатор также может быть заблокирован, например, модификатор Caps Lock . Когда модификатор заблокирован, он остается активным до тех пор, пока не будет явно деактивирован. Промежуточным состоянием между обычным и заблокированным является состояние фиксации: когда модификатор зафиксирован, он остается активным, но только до тех пор, пока не будет нажата следующая клавиша, не являющаяся модификатором.
XKB позволяет клиентскому приложению явно фиксировать или блокировать модификатор. Более того, приложение может привязать нажатие или отпускание клавиши к изменению состояния модификатора. Таким образом, модификатор может автоматически фиксироваться или блокироваться при каждом нажатии или отпускании клавиши.
Ключевые группы
[ редактировать ]XKB позволяет клавиатуре переключаться между любой из четырех различных групп символов. Обычно это делается для того, чтобы клавиатура вела себя как клавиатура другого языка. В этом контексте набор символов, генерируемый клавиатурой, называется группой , и клавиатура может в любой момент переключиться на другую группу.
XKB определяет некоторые селекторы групп называются просто группами (которые в спецификации ). Как и в случае с модификаторами, селектор группы может быть связан с клавишей, но также может быть зафиксирован или заблокирован.
Элементы управления
[ редактировать ]Поведение клавиатуры зависит от ряда параметров, которые могут быть изменены клиентами. Эти параметры называются элементами управления . Например, элемент управления SlowKey можно использовать для игнорирования коротких нажатий клавиш. Еще один элемент управления — MouseKeys , который выполняет нажатия некоторых клавиш для имитации движений мыши. Элемент управления только указывает, активна ли эта симуляция или нет; какие клавиши производят движение, не считается частью управления, а определяется путем прикрепления к этим клавишам действий.
Два вышеуказанных элемента управления являются логическими : они либо активны, либо нет. PerKeyRepeat — это элемент управления, который не является логическим. А именно, это маска, которая говорит, какие клавиши находятся в режиме автоповтора. Согласно спецификации, нелогические элементы управления «всегда активны»: это означает, что они всегда зависят от набора параметров (в данном случае от маски), но не существует ни одного бита, который можно было бы использовать для деактивации эффектов. контроля полностью.
Помимо логических или нелогических элементов управления, они также классифицируются как влияющие на поведение сервера и на поведение клиентской библиотеки. Два вышеперечисленных являются элементами управления сервером. Элементы управления клиентской библиотеки влияют на преобразование кода клавиши или последовательности кодов клавиш в строку ( XLookupString ) и доставку событий.
Действия
[ редактировать ]XKB позволяет связывать действия с нажатиями клавиш, что переносит часть нагрузки по обработке входных событий с клиентских приложений на X-сервер. Однако действия, которые могут быть связаны с ключами, ограничены следующим:
- Измените состояние модификатора, сделав его активным, неактивным, зафиксированным или заблокированным.
- Изменить состояние групповых селекторов (так же, как модификаторы)
- Имитировать событие мыши (движение или действие кнопки)
- Сменить активный экран (данное действие является необязательным, то есть не обязательно поддерживается сервером)
- Изменение состояния логических элементов управления
- Создать событие сообщения (то есть пакет, который отправляется клиенту)
- Создать другой код ключа
Более того, есть некоторые действия, связанные с устройствами, которые доступны, если сервер поддерживает расширение X Input .
Проблемы совместимости
[ редактировать ]Расширение клавиатуры X несовместимо с базовой обработкой клавиатуры, в результате чего некоторые клавиши-модификаторы не работают или требуют обходных решений в эмулируемых средах, таких как VNC или Xephyr .
Другой
[ редактировать ]XKB позволяет лучше управлять индикаторами клавиатуры (светодиодами). В частности, XKB предоставляет символические имена индикаторам, что позволяет привязывать индикаторы к активности клавиатуры и проверять, какие индикаторы действительно присутствуют на клавиатуре.
XKB также улучшает в основном протоколе обработку звонков ; основной протокол поддерживает только один звонок, и единственное действие, которое может выполнить клиент, — это позвонить в звонок. XKB поддерживает несколько именованных звонков и позволяет клиенту деактивировать некоторые из них и получать информацию о звонке звонка.
XKB позволяет клиенту запрашивать физическую форму клавиатуры, включая форму отдельных клавиш. В частности, клавиши разбиты на секции, возможно, повернутые (например, цифровая клавиатура обычно считается секцией). Внутри раздела клавиши расположены в ряды. Клавиши и секции имеют геометрию, которая включает в себя приблизительный контур клавиши, ее ограничивающую рамку и точную форму. Помимо клавиш, геометрия также включает в себя декоративные элементы — элементы клавиатуры, не являющиеся клавишами. Общая форма клавиатуры представляет собой безделушку. Информация, предоставляемая о безделушках, включает их цвет и любой текст, напечатанный на них (включая используемый шрифт).
Ссылки
[ редактировать ]- X Consortium Inc. Расширение клавиатуры X: спецификация библиотеки (1996). HTML , PDF .
- X Consortium Inc. Расширение клавиатуры X: спецификация протокола (1996). HTML , PDF .
- X Consortium Inc. Руководство по настройке XKB (2010 г.) HTML , PDF .
- X Consortium Inc. Как улучшить конфигурацию XKB (2002 г.). HTML , PDF .
Внешние ссылки
[ редактировать ]- На XKB
- АрчВики. Расширение клавиатуры X
- Дамиано Вентурин. Простое, скромное, но подробное руководство по XKB для Linux (2016 г.)
- Михал Космульский. Создание пользовательских раскладок клавиатуры для X11 с помощью XKB (2011)
- Иван Паскаль. Расширение клавиатуры X — подробная информация о различных файлах конфигурации XKB.
- Дуг Палмер. Ненадежное руководство по настройке XKB (2004 г.)