Ubuntu 18.04では、代替ドイツ語キーボードレイアウトを使用しています。
~$ setxkbmap de koy
次のように3つのキー(Mod3→f→ß→Mod3)を交換したいと思います。
これらのキーのキーコードは次のとおりです。
~$ xmodmap -pke | grep -E 'keycode (33|48|51)'
keycode 33 = ssharp U1E9E ssharp U1E9E ampersand Greek_finalsmallsigma KP_Add KP_Add jot NoSymbol ampersand Greek_finalsmallsigma KP_Add KP_Add jot
keycode 48 = f F f F at Greek_phi period KP_Decimal Greek_PHI NoSymbol at Greek_phi period KP_Decimal Greek_PHI
keycode 51 = ISO_Level3_Shift NoSymbol ISO_Level3_Shift
Q1:fキーとßキーに15列の列があるのはなぜですか?/usr/share/X11/xkb/symbols/de
8つの列のみが定義されました!
次のxmodmapコマンドを使用してキーを交換できます。
~$ xmodmap -e "keycode 51 = ssharp U1E9E ssharp U1E9E ampersand Greek_finalsmallsigma KP_Add KP_Add jot NoSymbol ampersand Greek_finalsmallsigma KP_Add KP_Add jot"
~$ xmodmap -e "keycode 33 = f F f F at Greek_phi period KP_Decimal Greek_PHI NoSymbol at Greek_phi period KP_Decimal Greek_PHI"
~$ xmodmap -e "keycode 48 = ISO_Level3_Shift NoSymbol ISO_Level3_Shift"
今鍵は交換されましたが…
- ß(ssharp)キーは
ß
すべてのレベルで返されます!予想(スワップ前と同じ):ß ẞ & + ς ∘
- キー48(以前のfキー)は、他の修飾子で使用されている場合を除いて、Mod3と同じように機能します。 Shift + Mod3 + aは1つを提供する必要があります
α
が、今は1つを提供しますA
。
もう一度確認してください。
~$ xmodmap -pke | grep -E 'keycode (33|48|51)'
keycode 33 = f F f F ampersand Greek_phi KP_Add KP_Add Greek_PHI NoSymbol ampersand Greek_phi KP_Add KP_Add Greek_PHI NoSymbol f F ampersand Greek_phi KP_Add KP_Add Greek_PHI NoSymbol f F ampersand Greek_phi KP_Add KP_Add Greek_PHI
keycode 48 = ISO_Level3_Shift NoSymbol ISO_Level3_Shift NoSymbol NoSymbol NoSymbol NoSymbol NoSymbol NoSymbol NoSymbol NoSymbol NoSymbol NoSymbol NoSymbol NoSymbol NoSymbol ISO_Level3_Shift NoSymbol NoSymbol NoSymbol NoSymbol NoSymbol NoSymbol NoSymbol ISO_Level3_Shift
keycode 51 = ssharp NoSymbol ssharp U1E9E at Greek_finalsmallsigma period KP_Decimal
キーコード48と51は私が設定したものではありません。
質問2:何が間違っていますか?
StackExchangeに関する他の質問では、人々は修飾子を変更する前に修飾子を削除または消去することが重要であると述べました。しかし、これは常に失敗します。
~$ xmodmap -pm
xmodmap: up to 3 keys per modifier, (keycodes in parentheses):
shift Shift_L (0x32), Shift_R (0x3e)
lock Shift_L (0x32)
control Control_L (0x25), Control_R (0x69)
mod1 Alt_L (0x40), Meta_L (0xcd)
mod2 BadKey (0xcf)
mod3 ISO_Level5_Shift (0xcb)
mod4 Super_L (0x85), Super_R (0x86), Super_L (0xce)
mod5 ISO_Level3_Shift (0x5c)
~$ xmodmap -e "remove mod5 = ISO_Level3_Shift"
X Error of failed request: BadValue (integer parameter out of range for operation)
Major opcode of failed request: 118 (X_SetModifierMapping)
Value in failed request: 0x17
Serial number of failed request: 11
Current serial number in output stream: 11
~$ xmodmap -e "clear mod5"
X Error of failed request: BadValue (integer parameter out of range for operation)
Major opcode of failed request: 118 (X_SetModifierMapping)
Value in failed request: 0x17
Serial number of failed request: 8
Current serial number in output stream: 8
Q3:これらのエラーはどういう意味ですか?