ページ

2015-04-03

Ubuntu 14.04でLogicool TrackMan Marbleを左利き設定で使う

たまにやってくる右手の指の付け根の痛みが来たので、緩和策を打つべくトラックボールを買ってきた。機種は、Logicool TrackMan Marble

普通に右利き用としてはそこそこ機能するのだけど、左手で使いたいので、左手用に設定する。

Xの設定

 /usr/share/X11/xorg.conf.d/20-trackman.conf
Section "InputClass"
  Identifier "Marble Mouse"
  Driver "evdev"
  MatchProduct "Logitech USB Trackball"
  MatchDevicePath "/dev/input/event*"
  MatchIsPointer "yes"
  Option "ButtonMapping" "3 2 1 4 5 6 7 8 9"
  Option "EmulateWheel" "true"
  Option "EmulateWheelButton" "9"
  Option "YAxisMapping" "4 5"
  Option "XAxisMapping" "6 7"
EndSection

最初のほうはこのマウスにマッチさせる設定。

Option "ButtonMapping"は、1 2 3 4 5 6 7 8 9の物理ボタンを、どのボタンとして割り振るかという設定。今回は3と1、すなわちleft clickとright clickを交換する。
元のボタンは、1=左ボタン(大)、3=右ボタン(大)、8=左ボタン(小)、9=右ボタン(小)。詳しくはArch Wikiを参照。

EmulateWheel以下は、「9」すなわち右ボタン(小)を押しながらボールを操作することによって、上下左右のスクロールをできるようにする設定。

設定の確認

これが効いていることの確認。

xinput listでデバイスを探しだす。
$ xinput list
⎡ Virtual core pointer                     id=2 [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer               id=4 [slave  pointer  (2)]
⎜   ↳ Logitech Unifying Device. Wireless PID:402d id=11 [slave  pointer  (2)]
⎜   ↳ Logitech USB Trackball                   id=12 [slave  pointer  (2)]
⎣ Virtual core keyboard                    id=3 [master keyboard (2)]
    ↳ Virtual core XTEST keyboard              id=5 [slave  keyboard (3)]
    ↳ Power Button                             id=6 [slave  keyboard (3)]
    ↳ Video Bus                                id=7 [slave  keyboard (3)]
    ↳ Power Button                             id=8 [slave  keyboard (3)]
    ↳ USB Keyboard                             id=9 [slave  keyboard (3)]
    ↳ USB Keyboard                             id=10 [slave  keyboard (3)]
    ↳ Eee PC WMI hotkeys                       id=13 [slave  keyboard (3)]

id=12だとわかる。あとはxinput get-button-mapで確認する。
$ xinput get-button-map 12
3 2 1 4 5 6 7 8 9 
3と1が入れ替わっていることがわかる。

ちなみに、xinputには他の機能もある。set-button-mapにすれば一時的に設定を変えることも可能だし、list-propsで詳しい情報を得ることも可能だ。
$ xinput list-props 12
Device 'Logitech USB Trackball':
 Device Enabled (143): 1
 Coordinate Transformation Matrix (145): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
 Device Accel Profile (275): 0
 Device Accel Constant Deceleration (276): 1.000000
 Device Accel Adaptive Deceleration (277): 1.000000
 Device Accel Velocity Scaling (278): 10.000000
 Device Product ID (264): 1133, 50184
 Device Node (265): "/dev/input/event16"
 Evdev Axis Inversion (279): 0, 0
 Evdev Axes Swap (281): 0
 Axis Labels (282): "Rel X" (153), "Rel Y" (154)
 Button Labels (283): "Button Left" (146), "Button Middle" (147), "Button Right" (148), "Button Wheel Up" (149), "Button Wheel Down" (150), "Button Horiz Wheel Left" (151), "Button Horiz Wheel Right" (152), "Button Side" (268), "Button Extra" (269)
 Evdev Middle Button Emulation (284): 0
 Evdev Middle Button Timeout (285): 50
 Evdev Third Button Emulation (286): 0
 Evdev Third Button Emulation Timeout (287): 1000
 Evdev Third Button Emulation Button (288): 3
 Evdev Third Button Emulation Threshold (289): 20
 Evdev Wheel Emulation (290): 1
 Evdev Wheel Emulation Axes (291): 6, 7, 4, 5
 Evdev Wheel Emulation Inertia (292): 10
 Evdev Wheel Emulation Timeout (293): 200
 Evdev Wheel Emulation Button (294): 9
 Evdev Drag Lock Buttons (295): 0

GNOMEの左手設定の罠

上記のget-button-mapで、以下のように1と3が入れ替わっていないことがある。
$ xinput get-button-map 12
1 2 3 4 5 6 7 8 9 
1と3以外なら変更が効く、大変に腹立たしい状況。

こんなことがないか検索したところ、mouse - X11/Gnome/TrackPoint: custom button mapping not working - Super Userという記事に情報があったので、期待を膨らませて実行するも変わらず。
$ gsettings set org.gnome.settings-daemon.plugins.mouse active false

だいぶ悩んだが、「マウスとタッチパッド」設定の「左利き」に関係があるだろうと思い、変更してgsettings list-recursivelyのdiffを取ってみると、org.cinnamonなんちゃらというキーが変わっていることに気付き、まさかと思って探してみるとgnomeをcinnamonに変えただけのキーが存在したので、以下を実行して解決。
$ gsettings set org.cinnamon.settings-daemon.plugins.mouse active false
悲しい結末だった。


0 件のコメント:

コメントを投稿