Xorg: Как мне сопоставить AltGr с ключом CapsLock (для переключения символов 3-го уровня)


12

как и многие другие мне не нужны CapsLock. Я хочу переназначить его так, чтобы он имел функцию AltGr. Я использую Kubuntu 9.10, но я думаю, что должно быть решение, которое не зависит от распространения.

Я уже пытался использовать setxkbmap или xmodmap. Используя xmodmapпо крайней мере мне удалось, чтобы CapsLockвести себя как Del, следуя этому описанию .

Но я не смог добиться назначения AltGrповедения CapsLock.

Ответы:


14

Я знаю, что этот вопрос старый, но если кто-то снова наткнется на него, есть альтернативное решение:

setxkbmap -option "lv3:caps_switch"

Полный список опций читайте в разделе «ОПЦИИ»

man xkeyboard-config

6

Основываясь на ответе Денниса и поиграв с ним, xevя обнаружил, что волшебная фраза выглядит так ISO_Level3_Shift.

По крайней мере, это работает для меня:

xmodmap -e "keycode 66 = ISO_Level3_Shift"

Теперь я не рискую сломать пальцы, когда набираю [,], {,} и co на моей немецкой раскладке клавиатуры.

Изменить: теперь с помощью опции -e xmodmap


Благодарность! Я искал именно это с момента перехода на Ubuntu из Windows. Без этого JavaScript - боль на немецкой клавиатуре.
gzost

1

Попробуйте один из них (замените keyim или код ключа вашего ключа caps-lock, если он другой):

xmodmap -e "keysym 0xffe5 = Mode_switch"

или

xmodmap -e "keycode 66 = Mode_switch"

Благодарю. Ваша строка не работает напрямую по двум причинам: 1. xmodmap хочет файл, поэтому я должен передать строку и прочитать из stdin. 2. Mode_switch был успешно назначен, но не привел к модификатору 3-го уровня. Затем я снова играл с xev. Когда я понял, что там появляется строка «Mode_switch», было легко нажать AltGr и посмотреть, что можно прочитать вместо этого в соответствующем месте. -> ISO_Level3_Shift.
cнколл

@ Basweber: я забыл -eвариант. Я отредактировал свой ответ.
Приостановлено до дальнейшего уведомления.

Да. Это намного чище, чем подход трубопровода.
cknoll

1

Ответ Лонга является лучшим для современных настольных компьютеров, таких как Gnome, потому что сам Gnome использует xkb и по умолчанию перезаписывает конфигурации xmodmap (кроме того, xmodmap отключен и не поддерживается в Wayland). К сожалению, он будет работать только до перезагрузки.

Вы можете навсегда применить эту опцию для рабочего стола Gnome с помощью этой команды:

gsettings set org.gnome.desktop.input-sources xkb-options "['lv3:caps_switch']"

Конечно, вы можете сделать это изменение постоянно и даже в масштабе всей системы, не используя Gnome. Если вы используете Gnome, вы все равно должны использовать приведенную выше команду, чтобы Gnome не перезаписывал этот параметр. Для Arch вы можете добавить файл /etc/X11/xorg.conf.d/90-custom-kbd.confсо следующим содержимым:

Section "InputClass"
    Identifier "keyboard defaults"
    MatchIsKeyboard "on"
    Option "XKbOptions" "lv3:caps_switch"
EndSection

Я предполагаю, что это отличается между дистрибутивами, поэтому ваш пробег может отличаться.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.