普通に右利き用としてはそこそこ機能するのだけど、左手で使いたいので、左手用に設定する。
Xの設定
/usr/share/X11/xorg.conf.d/20-trackman.confSection "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 93と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 91と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 件のコメント:
コメントを投稿