web-dev-qa-db-ja.com

Xorg:AltGrをCaps Lockキーにマップするにはどうすればよいですか(第3レベルの記号を切り替えるため)

私が必要としない他の多くの CapsLock。次の機能を持つように再割り当てしたい AltGr。私はKubuntu9.10を使用していますが、配布に依存しないソリューションが必要だと思います。

私はすでにsetxkbmapまたはxmodmapを使おうとしました。 xmodmapを使用して、少なくとも私はそれを管理しました CapsLock のように振る舞う Del 次のように この説明

しかし、私は割り当てを達成することができませんでした AltGr 行動する CapsLock

12
cknoll

デニスの答えに基づいて、xevをいじってみると、魔法のフレーズはISO_Level3_Shiftのようであることがわかりました。

少なくともこれは私にとってはうまくいきます:

xmodmap -e "keycode 66 = ISO_Level3_Shift"

これで、ドイツ語のキーボードレイアウトで[、]、{、}などを入力しているときに指を折る危険に遭遇することはありません。

編集: xmodmapの-eオプションを使用するようになりました

6
cknoll

私はこの質問が古いことを知っていますが、誰かが再びそれに遭遇した場合、別の解決策があります:

setxkbmap -option "lv3:caps_switch"

オプションの完全なリストについては、の「オプション」セクションをお読みください。

man xkeyboard-config
14
Long

Gnome自体がxkbを使用し、デフォルトでxmodmap構成を上書きするため(また、xmodmapは途中であり、Waylandではサポートされていないため)、Longの答えはGnomeのような最新のデスクトップに最適です。残念ながら、それでも再起動するまでしか機能しません。

次のコマンドを使用して、このオプションを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

これはディストリビューションによって異なると思いますので、マイレージは異なる場合があります。

1
Daniel R.

これらのいずれかを試してください(異なる場合は、Caps Lockキーのkeysimまたはkeycodeに置き換えてください)。

xmodmap -e "keysym 0xffe5 = Mode_switch"

または

xmodmap -e "keycode 66 = Mode_switch"