Xorg составляет ключ без потери ценного режима ключ / обход?
Я хотел бы настроить ключ создания, но единственные параметры, доступные в системных настройках KDE (и через /usr/share/X11/xkb/rules):
compose:ralt Right Alt
compose:lwin Left Win
compose:rwin Right Win
compose:menu Menu
compose:lctrl Left Ctrl
compose:rctrl Right Ctrl
compose:caps Caps Lock
compose:102 Less-than/Greater-than
Никто из них не радует меня; "compose:caps" может быть в порядке, но он уже сопоставлен ctrl.
Есть ли такая опция, чтобы установить какую-либо клавишу (например, некоторые из этих дополнительных функциональных клавиш) или получить сам ключ? (например ralt
было бы хорошо, если бы я мог легко получить оригинальное поведение ключа (AltGr))
Я хотел бы иметь что-то вроде Shift-AltGr для запуска режима Compose.
Я думаю, я мог бы добавить дополнительное правило, как это сделано для / с compose:102
.. что означает 102? (это не что-то сбрасывается через xev
).
Также есть опция lv3:ralt_switch_multikey
(Right Alt, Shift+Right Alt - Multi_Key), но это не сработало, как ожидалось (см. http://bugs.kde.org/246472).
2 ответа
lv3:ralt_switch_multikey
это то, что я искал:
# But here it is: /usr/share/X11/xkb/rules/xorg.lst
# Anyway... what this is doing:
# lvl3:ralt_switch_multikey
# right alt = AltGr = choose third shift level
# shift + right alt = compose key aka Multi_Key
(через http://ndim.fedorapeople.org/stuff/radeonhd/xorg.conf)
У меня есть этот набор через системные настройки KDE (Keyboard => Advanced), так что у меня есть следующее в моем ~/.kde/share/config/kxkbrc
:
Options=ctrl:nocaps,lv3:ralt_switch_multikey
Другой подход заключается в использовании xmodmap
, Добавьте следующее к вашему ~/.Xmodmap
:
keycode 134 = ISO_Level3_Shift Multi_key
Это с учетом регистра. Правая клавиша Alt (AltGr) на моей клавиатуре имеет код 134. Если это не сработает, вероятное объяснение состоит в том, что ваша клавиатура использует другой номер для этой клавиши. Чтобы узнать, беги xev
нажмите любую клавишу, которую вы хотите использовать, и найдите часть, которая гласит "код ключа XXX".
Конечно, вы можете использовать любой ключ для этой цели; например,
keycode 38 = a Multi_key
сделает ключ служить ключом (только) при сдвиге. Невозможность набрать заглавную букву А будет явным ущербом, поэтому, возможно, вы захотите заняться чем-то другим ☺
Я использую Shift+Shift с трюком:
keysym Shift_L = Shift_L Multi_key
keysym Shift_R = Shift_R Multi_key
Это заставляет левую клавишу Shift действовать как левую клавишу Shift и правую клавишу Shift как правую клавишу Shift, за исключением того, что если вы удерживаете клавишу Shift, каждая клавиша Shift действует как Compose. Несколько сценариев для иллюстрации:
Если вы нажмете левую клавишу "Shift", нажмете клавишу "Shift" вправо, отпустите клавишу "Shift" вправо и отпустите клавишу "Shift" - тогда вы получите тот же эффект, как если бы вы нажимали физическую клавишу Compose (у старых клавиатур Sun такие были, IIRC). Так в частности:
- Shift Shift + : + ) производит смайлик, ☺ (по крайней мере, с моим
~/.XCompose
) - Shift Shift + a + a производит & aring; персонаж "å".
Если нажать левую клавишу "Shift", нажать клавишу "Shift" вправо, а затем отпустить две клавиши "Shift" в обратном порядке, вы получите тот же эффект, что и выше.
Если вы нажмете левую клавишу Shift и отпустите ее снова (без промежуточной правой клавиши), вы получите два события клавиатуры:
-
KeyPress
событие дляShift_L
-
KeyRelease
событие дляMulti_key
Это потому, что когда вы отпускаете левую клавишу Shift, клавиша Shift удерживается (левая клавиша -_-), поэтому клавиша обрабатывается как Multi_key
было все, что он когда-либо делал. Это не вызвало у меня каких-либо заметных проблем, но, возможно, какое-то старое и глючное приложение могло подавиться KeyPress
против KeyRelease
несоответствие.
Также обратите внимание, что взаимодействие между клавишами одноразового использования, клавишами-модификаторами и клавишами переключения состояний (например, a, Shift и Caps Lock) взаимодействует забавно. Если вы хотите использовать одну и ту же клавишу в качестве клавиши Caps Lock и (когда удерживается Shift) клавишу Comose, вы можете получить эффектные эффекты. Кажется, я помню, что вы получаете все применимые эффекты, что, вероятно, не то, что вы хотите, но не стесняйтесь попробовать.