コタツの上で、古い PC に linuxBean を入れて使っている。 PC は快調なんだけどトラックボールが壊れかけてて、クリックが約 50% 失敗するので、キーボードに機能を持たせることにした。
xdm だか gdm だか忘れたけど、startx 以外だと .xinitrc を見ないんだっけ、とか不安になったので、いちばん確実なのは wm だろうということで、openbox の設定ファイルに xmodmap を書いた。
しかし実は既定の起動実行ファイルは ~/.config/option/lxsession/LXDE/autostart だった。なんでやねん。*1 LXDE だからですね。
その autostart に
# 画面が10分で暗くなるのヤメテ xset s 0 0 xset -dpms # テンキーでマウス操作できるといい #setxkbmap -option mousekeys xkbset m # スピード調整 xkbset ma 60 10 10 5 2 # 勝手にやめるのヤメテ xkbset exp "=m" # 上のexpiryを設定する前はこれで何度もenableしてた #xmodmap -e "keycode 77 = Pointer_EnableKeys" #テンキーの0でクリック、.で右クリック xmodmap -e "keycode 90 = Pointer_Button1" xmodmap -e "keycode 91 = Pointer_Button3"
という感じのことを書いた。
あとは、/usr/share/X11/xorg.conf.d/11-evdev-marblemouse.conf みたいなファイルを作って
Section "InputClass"
       Identifier      "marble mouse catchall"
       MatchIsPointer  "true"
       # Marble じゃマッチしない。Ball が大文字でもダメ。
       # 文字列は "Logitech USB Trackball" なんだよなぁ。
       MatchProduct    "Trackball"
       MatchDevicePath "/dev/input/event*"
       Option  "Emulate3Buttons"       "true"
       Option  "EmulateWheel"  "true"
       # 左ボタンの内側のちっちゃいボタンを押しながら
       # ボールを動かすと、ホイールになるようにする。
       # ThinkPad の中央ボタンみたいな感じね。
       Option  "EmulateWheelButton"    "8"
       # ちょっと動かしただけで反応するように
       Option  "EmulateWheelInertia"   "1"
       # このボタンも壊れかけてるので、
       # 押してすぐ離したと思われることがある。
       # そういうとき「戻る」ボタンと思わないでほしいので。
       Option  "EmulateWheelTimeout"   "0"
       # 正直 XAxis はあまり使わないけど、たまに欲しい。
       Option  "XAxisMapping"  "6 7"
       Option  "YAxisMapping"  "4 5"
EndSection
って書いた。*2