キーを移動しようとすると、CapsLockをエスケープ、ControlをCapsLock、Escapeを左側のコントロールに設定すると、次のエラーが発生します。
% xmodmap ~/.Xmodmap
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: 15
Current serial number in output stream: 15
それは失敗するコードです:
remove Lock = Caps_Lock
! ESC
keycode 9 = Caps_Lock
add Lock = Caps_Lock
remove Control = Control_L
! CapsLock
keycode 66 = Control_L
add control = Control_L
! Control_R
keycode 37 = Escape
! 2*Meta_L
keycode 148 = Meta_L
add mod1 = Meta_L
add
またはremove
で始まるすべての行をコメントアウトすると、エラーなしで実行されますが、希望どおりに実行されません。
プログラムバージョン(Gentoo x86(安定版)):
Xorg.conf:
# nvidia-xconfig: X configuration file generated by nvidia-xconfig
# nvidia-xconfig: version 1.0 (buildmeister@builder63) Fri Aug 14 17:54:58 PDT 2009
Section "ServerLayout"
Identifier "Layout0"
Screen 0 "Screen0"
InputDevice "Evdev Keyboard" "CoreKeyboard"
InputDevice "Evdev Mouse" "CorePointer"
EndSection
Section "Module"
Disable "dri"
Disable "dri2"
EndSection
Section "InputDevice"
Identifier "Evdev Keyboard"
Driver "evdev"
Option "Device" "/dev/input/event2"
Option "CoreKeyboard"
Option "AutoRepeat" "500 25"
Option "XkbRules" "xorg"
Option "XkbModel" "yahoo"
Option "XkbLayout" "dvp2"
Option "XkbOptions" "grp_led:scroll,grp:rctrl_toggle,compose:rwin,grp:lwin_switch"
EndSection
Section "InputDevice"
Identifier "Evdev Mouse"
Driver "evdev"
Option "CorePointer"
Option "Device" "/dev/input/event3"
Option "Name" "Genius Ergo Mouse"
Option "HWHEELRelativeAxisButtons" "7 6"
Option "WHEELRelativeAxizButtons" "4 5"
Option "SendCoreEvents" "true"
Option "Buttons" "11"
EndSection
Section "Files"
FontPath "/usr/share/fonts/misc"
FontPath "/usr/share/fonts/Type1"
FontPath "/usr/share/fonts/100dpi"
FontPath "/usr/share/fonts/75dpi"
FontPath "/usr/share/fonts/terminus"
# FontPath "/usr/share/fonts/intlfonts"
FontPath "/usr/share/fonts/ttf-bitstream-vera"
# FontPath "/usr/share/fonts/ttf"
FontPath "/usr/share/fonts/corefonts"
FontPath "/usr/share/fonts/paratype"
EndSection
Section "Monitor"
Identifier "Monitor0"
VendorName "Unknown"
ModelName "Unknown"
HorizSync 28.0 - 33.0
VertRefresh 43.0 - 72.0
Option "DPMS"
EndSection
Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 24
SubSection "Display"
Depth 24
EndSubSection
EndSection
#Section "Extensions"
#Option "Composite" "Disable"
#EndSection
Section "ServerFlags"
Option "AutoAddDevices" "false"
Option "DontVTSwitch" "false"
Option "DontZap" "false"
Option "DontZoom" "true"
EndSection
更新前にすべてが機能しました。
Xmodmap Manual によると、省略したように見える重要なステップが少なくとも1つあります。モディファイアビットの割り当てを「削除」するだけでなく、モディファイアグループからキーを「クリア」する必要があります。
はい、それはIS紛らわしい、私は知っています!
また、これらのタスク/コマンドは特定の順序で実行する必要があるようです。
このスレッドはしばらくの間非アクティブであり、明らかに死んでいることがわかります(OPはこの問題を解決したか、あきらめました)。しかし、うまくいけば、この説明が他の誰かが同様の状況に対処するのに役立つかもしれません。
ほとんどの場合、このエラーが発生するのは、key-symを修飾子に割り当てようとしたが、そのkey-symがすでに別の修飾子に使用されているためです。 「xmodmap-pm」を実行して、修飾子に割り当てようとしているkey-symsがまだ使用されていないことを確認してください。
たとえば、Meta_Lがすでにmod4に割り当てられている場合、最初にmod4から削除せずにMeta_Lをmod1に割り当てようとすると、このエラーが発生する可能性があります。