Xorg составляет ключ без потери ценного режима ключ / обход?

1803
blueyed

Я хотел бы настроить ключ создания, но единственные параметры, доступные в системных настройках 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(правая клавиша Alt, Shift + правая клавиша Alt - Multi_Key), но она не работает должным образом (см. Http://bugs.kde.org/246472 ).

5

2 ответа на вопрос

2
blueyed

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 
+42 - wȯŕkß łīkə ả čhą®µ ™ ;-) Лучшее из того, что сочетания клавиш на моей пользовательской карте все еще работают, если я использую `AltGr` +` Shift` (четвертый уровень сдвига) вместо менее распространенного `Shift` +` AltGr` (теперь Compose), и что `systemsettings` сохраняет его. PointedEars 11 лет назад 0
Вам не нужно редактировать файл конфигурации. Эта настройка находится в KDE 4.8.4 в разделе «Клавиатура» → «Дополнительно» → «Клавиша перехода на третий уровень клавиатуры» → «Правая клавиша Alt, Shift + правая клавиша Alt - мультиключ». Именно поэтому он переживает обновление через графический интерфейс. (Я перевел немецкие ярлыки, поэтому английские могут отличаться.) PointedEars 11 лет назад 0
Вопрос утверждает, что это не работает. Почему ответ принят тогда? Смотрите также: http://unix.stackexchange.com/questions/265834/setxkbmap-option-lv3ralt-switch-multikey-doesnt-work-with-many-layouts Pavel Šimerda 8 лет назад 0
@ PavelŠimerda - ответ и вопрос обо мне, и, хотя я сейчас использую другую настройку, я обнаружил, что так оно и было тогда. Я думаю, это может быть связано с тем, как на самом деле используется `lv3: ralt_switch_multikey`. blueyed 8 лет назад 0
1
Jonas Kölker

Another approach is to use xmodmap. Add the following to your ~/.Xmodmap:

keycode 134 = ISO_Level3_Shift Multi_key 

This is case sensitive. The right alt key ( AltGr ) on my keyboard happens to have keycode 134. If this doesn't work, the likely explanation is that your keyboard uses a different number for that key. To find out, run xev, hit whatever key you want to use and look for the part that says "keycode XXX".

You can of course use any key for the purpose; for instance,

keycode 38 = a Multi_key 

would make the a key serve as the compose key (only) when shifted. The inability to type capital As would be a clear detriment, so perhaps you want to do something else ☺

I use Shift+Shift with a trick:

keysym Shift_L = Shift_L Multi_key keysym Shift_R = Shift_R Multi_key 

This makes the left shift key act as the left shift key and the right shift key as the right shift key—except that if you hold a shift key, each shift key acts like Compose. A few scenarios to illustrate:

If you press left shift, press right shift, release right shift, and release left shift—then you get the same effect as if you had pressed a physical Compose key (old Sun keyboards had those, IIRC). So in particular:

  • ShiftShift + : + ) produces a smiley, ☺ (at least with my ~/.XCompose)
  • ShiftShift + a + a produces the å character, "å".

If press left shift, press right shift, and then release the two shift keys in the opposite order, you get the same effect as above.

If you press left shift and release it again (with no intervening right shift), you get two keyboard events:

  • a KeyPress event for Shift_L
  • a KeyRelease event for Multi_key

This is because when you release the left shift key, a shift key is being held (the left one -_-) so the key is treated as if Multi_key was all it ever did. This hasn't caused me any noticeable problems, but perhaps some old and buggy application could choke on the KeyPress vs. KeyRelease mismatch.

Note also that interaction between one-shot keys, modifier keys and state-toggle keys (e.g. a, Shift and Caps Lock) interact funnily. If you want to use the same key both as a Caps Lock key and (when shift is held) a compose key, you might get funky effects. I seem to recall that you get all applicable effects, which is probably not what you want, but feel free to try it out.

Похожие вопросы