xmodmapを使用した個々のキーマッピングの設定

xmodmapを使用した個々のキーマッピングの設定

AltGR+Right_Windowsを再マップしたいのですが、方法がわかりません。何を試しても、右のWindowsキーを押すと、右のAltキーを押したかどうかにかかわらず、キーシムという名前が表示されます。

私が今テストしているxmodmapファイルの内容です。私のキーボードでは、38は「a」のキーコード、48はアポストロフィ/二重引用符のキーコード、134は右側のWindowsキーのキーコードです。

keycode  38 = 1 2 3 4 5 6 7 8
keycode  48 = 1 2 3 4 5 6 7 8
keycode 134 = 1 2 3 4 5 6 7 8

Right_Alt+アポストロフィを押すと5が出力されますが、Right_Alt+aとRight_Alt+Right_Windowsは1(右のAltを押すか押さないとき)を提供しますが、これは私が望むものではありません。

現在のキーボードレイアウトは、us(alt-intl)正しいAltが明らかにAltGr / Iso_Level3_Shiftとして機能するように設定されていることです。出力はxmodmap -pm次のとおりです。

xmodmap:  up to 4 keys per modifier, (keycodes in parentheses):

shift       Shift_L (0x32),  Shift_R (0x3e)
lock        Caps_Lock (0x42)
control     Control_L (0x25),  Control_R (0x69)
mod1        Alt_L (0x40),  Meta_L (0xcd)
mod2        Num_Lock (0x4d)
mod3      
mod4        Super_L (0x85),  Super_R (0x86),  Super_L (0xce),  Hyper_L (0xcf)
mod5        ISO_Level3_Shift (0x5c),  Mode_switch (0xcb)

ベストアンサー1

xmodmapを使用した個々のキーマッピングの設定

今私自身の研究結果を書く時間です。

私の考えにはxmodmapに何か抜けたものがあるようですが、よく文書化されていないので、人々が混乱しています。しかし、X.OrgのXKBとxmodmapの設計は愚かであることがわかりました。

途方もない失敗:xmodmap

元のキーボードレイアウトに実際に存在する限り、xmodmapを使用して既存のマッピングをオーバーライドできます。質問で説明されている状況では、AltGrを使用するためにキーの動作を拡張することはできません。使用されているAltGrキーコードのAltGrキーシンボルのみを変更できます。

また見なさい:http://blog.azundris.com/archives/193-X-treme-pain-XKB-vs-XModMap.html

解決策:Mode_switch

この回避策は@ Ned64の答えで説明されています。からAltGrに再マップできます。ISO_Level3_ShiftMode_switch

次のコマンドラインを使用して正常に再マッピングしましたAltGr

xmodmap -e 'keycode 108 = Mode_switch'

xmodmap欠点は、現在のキーボードレイアウトが破壊されることです。ただし、すでに述べた@Ned64メソッドを使用して、すべてのマッピングを1つずつ再作成できます。

回避策:キーボードレイアウトの変更

キーボードレイアウトを使用しておりus(cz_sk_de)、拡張したいキーの設定を追加して変更したいと思います。

key <AB08>  { [ comma, less, doublelowquotemark, leftdoublequotemark ] };
key <AB09>  { [ period, greater, ellipsis, rightdoublequotemark ] };

xkb_symbols "cz_sk_de"一部/usr/share/X11/xkb/symbols/us

修正版を使用するには、キーボードレイアウトをリセットしてください。

setxkbmap 'us(cz_sk_de)'

,(1).とキーShiftの組み合わせを使用してチェコ語と英語の引用符と省略記号を入力するAltGrか、(2)xmodmap定義されたキーを使用してこれらのキーを再マップすることができます。

主な欠点は、setxkbmapどこでもキーボードレイアウトをサポートしていないようで、ホームディレクトリの代わりにシステム構成に書き込む必要があることです。

結論として

これは、X.Orgが過度にエンジニアリングされ、正しく設計されていない例のように見え、キーコードと修飾子の組み合わせをシンボルにマッピングするなどのマイナーなものでさえ問題になる可能性があります。これらのツールは、副作用なしにユーザー設定の個々のキーマップを変更する合理的な方法を提供しないようです。

おすすめ記事