Ubuntu 9.04 で Sticky Shift / SandS
8.10からXのマウス・キーボードドライバが、全自動認識のevdevになったので、9.04とかでは以前の方法では出来ない。
そこで、evdevでのやり方が開発されるまでは、kbdにもどして使う方法でがんばる。
作業内容
例によって、apt-get source xserver-xorg-input-kbd でソースを展開。
以前の記事を参考に、xf86-input-keyboard-1.3.0-mad-key.patch から人間パッチ。ソースの意味が分かれば、気合いでパッチが当てられるはず。
あとは同様にbuildしてインストール。
問題は設定。xorg.confを自分で書く。以下は自分のX61用。
Section "InputDevice" Identifier "Generic Keyboard" Driver "kbd" Option "CoreKeyboard" Option "XkbRules" "xorg" Option "XkbModel" "jp106" Option "XkbLayout" "jp,jp" Option "XkbVariant" "latin," Option "XkbOptions" "grp:alt_shift_toggle,grp_led:scroll" # Sticky Shift / SandS の設定 Option "PseudoModSpace" "50" # Option "OneShotCtrl" "9" # Option "StickyShift" "on" EndSection Section "InputDevice" Identifier "Configured Mouse" Driver "mouse" Option "CorePointer" Option "Device" "/dev/input/mice" Option "Protocol" "ImPS/2" Option "Emulate3Buttons" "true" Option "Emulate3Timeout" "50" Option "XAxisMapping" "6 7" Option "ZAxisMapping" "4 5" Option "EmulateWheel" "true" Option "EmulateWheelButton" "2" EndSection : : 下の方 : Section "ServerFlags" # evdevやめる Option "AutoAddDevices" "false" EndSection Section "ServerLayout" Identifier "Default Layout" screen 0 "Default Screen" 0 0 Inputdevice "Generic Keyboard" Inputdevice "Configured Mouse" EndSection
あとは、キーコードが evdevとkbdで違うので、xmodmapやvmwareのキーを入れ替えている場合は修正する。自分のところでは、[無変換]と[→]が変わっていた。
すごく便利なので、なるべくこういうハックでない方法で実現できるとうれしい。