tl; dr
ロジクールT630を購入しました。これは、ジェスチャー(PDF)を介していくつかのキーボードイベントをサポートするBluetoothマウスです。これらのジェスチャーは上手くダンディですが、私はそれらをほとんど使用しません。私はそれらを取り除くためにひどい時間を過ごしています。
優先度の高いものから順に、以下を実行します。
- これらのジェスチャーを無効にする
- ジェスチャーを再マッピングします(ファームウェアをハッキングしたり、Windows / OS Xデバイスドライバーをリバースエンジニアリングしない限り、これは不可能だと思います)
したくない:
- Windowsを使用する
- すべてのジェスチャーを無効にする
詳細については、次をお読みください…
ボタンとジェスチャー
考えられる13のマウスイベントは次のとおりです。
- 左クリック
- 中クリック
- 右クリック
- スクロールアップする
- 下へスクロール
- 左にスクロール
- 右にスクロール
- 左にスワイプ
- 右端にスワイプ
- 2本指で左にスワイプ
- 2本の指で右にスワイプ
- ダブルタップ
- 2本指ダブルタップ
最初の7つは、OSによるマッピング順です。
最初の3つだけが機械的です。他のすべてはタッチサーフェスを使用します。
GUIオプション
Kubuntu Trustyでのセットアップは簡単でしたが、これらの他のジェスチャーの構成はほとんどサポートされていません。
これらのジェスチャーは、次のものとは関係ありません。
- タッチパッド(
synaptics
実行されていません) - アクセシビリティ
- ホットコーナー
- 標準のマウスジェスチャー
それらに関連するすべての設定がチェックされ、すべてオフになっています。
コマンドライン設定
lomoco
lomoco
ロジクールのUSBマウスのヘルプのconfigureの特別な機能にユーティリティが適用されません。
xinput
私xinput
はいくつかの助けを提供するかもしれないと思った:
$ xinput --list | grep pointer
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Ultrathin Touch Mouse id=13 [slave pointer (2)]
$ xinput --list-props 13
Device 'Ultrathin Touch Mouse':
Device Enabled (144): 1
Coordinate Transformation Matrix (146): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
Device Accel Profile (266): 0
Device Accel Constant Deceleration (267): 1.000000
Device Accel Adaptive Deceleration (268): 1.000000
Device Accel Velocity Scaling (269): 10.000000
Device Product ID (261): 1133, 45069
Device Node (262): "/dev/input/event11"
Evdev Axis Inversion (270): 0, 0
Evdev Axes Swap (272): 0
Axis Labels (273): "Rel X" (154), "Rel Y" (155), "Rel Horiz Wheel" (746), "Rel Vert Wheel" (265)
Button Labels (274): "Button Left" (147), "Button Middle" (148), "Button Right" (149), "Button Wheel Up" (150), "Button Wheel Down" (151), "Button Horiz Wheel Left" (152), "Button Horiz Wheel Right" (153), "Button Side" (1032), "Button Extra" (1033), "Button Unknown" (264), "Button Unknown" (264), "Button Unknown" (264), "Button Unknown" (264)
Evdev Middle Button Emulation (275): 0
Evdev Middle Button Timeout (276): 50
Evdev Third Button Emulation (277): 0
Evdev Third Button Emulation Timeout (278): 1000
Evdev Third Button Emulation Button (279): 3
Evdev Third Button Emulation Threshold (280): 20
Evdev Wheel Emulation (281): 0
Evdev Wheel Emulation Axes (282): 0, 0, 4, 5
Evdev Wheel Emulation Inertia (283): 10
Evdev Wheel Emulation Timeout (284): 200
Evdev Wheel Emulation Button (285): 4
Evdev Drag Lock Buttons (286): 0
13個のボタンのラベルに注意してください。
$ xinput --get-button-map "Ultrathin Touch Mouse"
1 2 3 4 5 6 7 8 9 10 11 12 13
それらをオフにしても役に立たなかった:
$ xinput --set-button-map "Ultrathin Touch Mouse" 1 2 3 4 5 6 7 0 0 0 0 0 0
ただし、たとえば、マウスの中央ボタンを左クリックに変えることができます。
$ xinput --set-button-map "Ultrathin Touch Mouse" 1 1 3 4 5 6 7 0 0 0 0 0 0
xmodmap
と同様xinput
、同じ結果:
$ xmodmap -e "pointer = 1 2 3 4 5 6 7 0 0 0 0 0 0"
inputkbd
以下の elmichaによって提案されていますが、これはカーネルレベルで機能しており、ジェスチャーがnullキーボードイベントを発生させるようにしています。次のプロセスで動作するはずですが、ここでもうまくいきません。
$ sudo input-kbd 4 > keymap # note the 4 is from /dev/input/event4
# edit the keymap to map any combination of keys to either 0 or 240 (KEY_UNKNOWN)
# e.g. change this:
# 0x700e0 = 29 # KEY_LEFTCTRL
# to this:
# 0x700e0 = 0 # KEY_LEFTCTRL
# or this:
# 0x700e0 = 240 # KEY_LEFTCTRL
$ sudo input-kbd -f keymap 4
$ sudo input-kbd 4 # should return the updated keymap
これを行った後、キーマップは変化を示しません。
xkbcomp
これは、X
入力ハッカーであるPeter Huttererによって提案されました。それでも運がない:
$ xkbcomp -xkb $DISPLAY t630.xkb
# edit the keyboard description and replace the definition of any key to NoSymbol or VoidSymbol
# e.g. change this:
# key <LCTL> { [ Control_L ] };
# to this:
# key <LCTL> { [ NoSymbol ] };
# or this:
# key <LCTL> { [ VoidSymbol ] };
$ sudo xkbcomp -i 8 t630.xkb $DISPLAY # here the 8 is the id in xinput, names don't work
$ xkbcomp -xkb -i 8 $DISPLAY - # should return the updated keyboard description
これを実行した後、キーボードの説明に変化はありません。
ピーターは、これはおそらくX
キーボードまたはマウスとしてのデバイスの性質に関して混乱しているという事実のせいであると感じていました。一種の反対の問題を持つこのバグのようなものです。これは、他のすべての予想されるアイテムが機能しない理由を説明している可能性があります。ただし、evdev
同じ理由で使用することはできません。
evdev
最初は機能しているように見えましたが、機能していません。これは、またはにX
以下を追加することにより、ボタンマッピングを設定するための汎用入力ドライバーを活用しようとします。/usr/share/X11/xorg.conf.d/10-evdev.conf
/etc/X11/xorg.conf.d/10-evdev.conf
# custom for Logitech Ultrathin Touch mouse
Section "InputDevice"
Identifier "Logitech bluetooth Touch Mouse"
Driver "evdev"
Option "Name" "Ultrathin Touch Mouse"
Option "ButtonMapping" "1 2 3 4 5 6 7 0 0 0 0 0 0"
EndSection
Section "InputClass"
Identifier "Ultrathin Touch Mouse"
Option "ButtonMapping" "1 2 3 4 5 6 7 0 0 0 0 0 0"
EndSection
これは/var/log/Xorg.0.log
(を使用してgrep EE
)エラーなしで機能するようでxinput
、ボタンのマッピングを確認しますが、欲望の効果にはなりません。
ただし、これは T631で動作することがわかっています。
キーボードイベント
問題は、これらのジェスチャーがキーボードイベントを生成するという事実にあると私は思います。
$ sudo evemu-record /dev/input/event4 | grep "E: "
# swipe edge right
E: 0.000000 0004 0004 458976 # EV_MSC / MSC_SCAN 458976
E: 0.000000 0001 001d 0001 # EV_KEY / KEY_LEFTCTRL 1
E: 0.000000 0004 0004 458979 # EV_MSC / MSC_SCAN 458979
E: 0.000000 0001 007d 0001 # EV_KEY / KEY_LEFTMETA 1
E: 0.000000 0004 0004 458795 # EV_MSC / MSC_SCAN 458795
E: 0.000000 0001 000f 0001 # EV_KEY / KEY_TAB 1
E: 0.000000 0000 0000 0000 # ------------ SYN_REPORT (0) ----------
E: 0.002980 0004 0004 458976 # EV_MSC / MSC_SCAN 458976
E: 0.002980 0001 001d 0000 # EV_KEY / KEY_LEFTCTRL 0
E: 0.002980 0004 0004 458979 # EV_MSC / MSC_SCAN 458979
E: 0.002980 0001 007d 0000 # EV_KEY / KEY_LEFTMETA 0
E: 0.002980 0004 0004 458795 # EV_MSC / MSC_SCAN 458795
E: 0.002980 0001 000f 0000 # EV_KEY / KEY_TAB 0
E: 0.002980 0000 0000 0000 # ------------ SYN_REPORT (0) ----------
# swipe edge left
E: 3.306977 0004 0004 458978 # EV_MSC / MSC_SCAN 458978
E: 3.306977 0001 0038 0001 # EV_KEY / KEY_LEFTALT 1
E: 3.306977 0004 0004 458979 # EV_MSC / MSC_SCAN 458979
E: 3.306977 0001 007d 0001 # EV_KEY / KEY_LEFTMETA 1
E: 3.306977 0004 0004 458866 # EV_MSC / MSC_SCAN 458866
E: 3.306977 0001 00c1 0001 # EV_KEY / KEY_F23 1
E: 3.306977 0000 0000 0000 # ------------ SYN_REPORT (0) ----------
E: 3.310979 0004 0004 458978 # EV_MSC / MSC_SCAN 458978
E: 3.310979 0001 0038 0000 # EV_KEY / KEY_LEFTALT 0
E: 3.310979 0004 0004 458979 # EV_MSC / MSC_SCAN 458979
E: 3.310979 0001 007d 0000 # EV_KEY / KEY_LEFTMETA 0
E: 3.310979 0004 0004 458866 # EV_MSC / MSC_SCAN 458866
E: 3.310979 0001 00c1 0000 # EV_KEY / KEY_F23 0
E: 3.310979 0000 0000 0000 # ------------ SYN_REPORT (0) ----------
# two finger double tap
E: 10.225976 0004 0004 458983 # EV_MSC / MSC_SCAN 458983
E: 10.225976 0001 007e 0001 # EV_KEY / KEY_RIGHTMETA 1
E: 10.225976 0000 0000 0000 # ------------ SYN_REPORT (0) ----------
E: 10.229986 0004 0004 458983 # EV_MSC / MSC_SCAN 458983
E: 10.229986 0001 007e 0000 # EV_KEY / KEY_RIGHTMETA 0
E: 10.229986 0000 0000 0000 # ------------ SYN_REPORT (0) ----------
# two finger swipe left
E: 27.934977 0004 0004 589828 # EV_MSC / MSC_SCAN 589828
E: 27.934977 0001 0113 0001 # EV_KEY / BTN_SIDE 1
E: 27.934977 0000 0000 0000 # ------------ SYN_REPORT (0) ----------
E: 27.937983 0004 0004 589828 # EV_MSC / MSC_SCAN 589828
E: 27.937983 0001 0113 0000 # EV_KEY / BTN_SIDE 0
E: 27.937983 0000 0000 0000 # ------------ SYN_REPORT (0) ----------
# two finger swipe right
E: 32.513990 0004 0004 589829 # EV_MSC / MSC_SCAN 589829
E: 32.513990 0001 0114 0001 # EV_KEY / BTN_EXTRA 1
E: 32.513990 0000 0000 0000 # ------------ SYN_REPORT (0) ----------
E: 32.516994 0004 0004 589829 # EV_MSC / MSC_SCAN 589829
E: 32.516994 0001 0114 0000 # EV_KEY / BTN_EXTRA 0
E: 32.516994 0000 0000 0000 # ------------ SYN_REPORT (0) ----------
これまでのようにキーマップが懸念され、これらは、以下を参照してください。
$ sudo input-kbd 4 | grep -e KEY_LEFTCTL -e KEY_LEFTMETA -e KEY_TAB -e KEY_LEFTALT -e KEY_F23 -e KEY_RIGHTMETA -e BTN_SIDE -e BTN_EXTRA
0x700e2 = 56 # KEY_LEFTALT
0x700e3 = 125 # KEY_LEFTMETA
0x700e7 = 126 # KEY_RIGHTMETA
0x7002b = 15 # KEY_TAB
0x70072 = 193 # KEY_F23
0x700e2 = 56 # KEY_LEFTALT
0x700e3 = 125 # KEY_LEFTMETA
0x700e7 = 126 # KEY_RIGHTMETA
0x90004 = 275 # BTN_SIDE
0x90005 = 276 # BTN_EXTRA
ダブルタップしても何も起こらないようです。
その他の参考文献
また、前述のマウスがピンコードデータベースに存在しないというバグの同様の問題への参照を指摘すると役立つ場合がありgnome-bluetooth
ます。言うまでもなく、この件に関するそれ以上の解説は、そのバグ報告に関する公式にはトピック外ですが、参照はこの問題の性質に関するいくつかの見方を追加するのに役立ちます。
これがevemu-describe /dev/input/event4
FWIW の出力です。
Bluetoothアダプター
FWIW 2つの異なるUSB Bluetoothアダプターを使用しました。
$ lsusb | grep Bluetooth
Bus 007 Device 010: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
$ lsusb | grep Bluetooth
Bus 007 Device 011: ID 0a5c:21e8 Broadcom Corp. BCM20702A0 Bluetooth 4.0
vmmouse_detect
ユーティリティを参照する必要があると思います。xmodmap
そしてxinput
、xorg.conf
あなたのKubuntuの下では役に立ちますが、Windows VMの下では役に立ちません。したがって、WinVMでは、Windows用の標準のLogitechユーティリティを使用してマウスを設定できるはずです。