Logitech T6 を購入しました。 gestures (PDF)を介して複数のキーボードイベントをサポートするBluetoothマウスです。これらのジェスチャはうまくできていますが、私はそれらをほとんど使いません。私はそれらを取り除くひどい時間を過ごしています。
次のことを優先度の高い順に行いたい:
したくない:
詳細については、続きを読む...
13の可能なマウスイベントは次のとおりです。
最初の7つは、OSがそれらをどのようにマップするかの順です。
最初の3つだけが機械的なものです。他のすべてのものはタッチ面を使用します。
Kubuntu Trustyでのセットアップは簡単でしたが、これらの他のジェスチャーの設定はほとんどサポートされていません。
これらのジェスチャーは次のものとは関係ありません。
synaptics
が実行されていません)それらに関連するすべての設定がチェックされ、すべてオフになっています。
lomoco
Logitech USBマウスの特別な機能の設定に役立つlomoco
ユーティリティは適用されません。
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
ただし、たとえば、canマウスの中ボタンを左クリックに変えます:
$ 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 below が示唆するように、これはカーネルレベルで機能しており、ジェスチャーが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
これを行った後、キーボードの説明に変更はありません。
Peterは、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
はボタンマッピングを確認しますが、望みの効果は得られません。
ただし、このisは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) ----------
keymap に関する限り、これらは以下を参照します。
$ 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
pincodeデータベースにない場合、 bug で同様の問題への参照を指摘することも役立ちます。言うまでもなく、この問題に関するさらなる解説は公式にはそのバグレポートのトピック外ですが、参考文献はこの問題の性質についての見方を追加するのに役立つ場合があります。
ここ はevemu-describe /dev/input/event4
FWIWの出力です。
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
多大な苦労の末、私はなんとか役立つキーマップを作成することができました。
前の回答に関する最初の注意事項(まだコメントできません):
mrのバックアップが提供するfixMouseスクリプトは機能しません。マウスのキーボードエントリがxinputに間違った名前で表示されることがあるためです。つまり、私の場合は次のように表示されます。
⎡ Virtual core pointer id=2 [master pointer (3)]
...
⎜ ↳ Ultrathin Touch Mouse id=11 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
...
↳ AT Translated Set 2 keyboard id=12 [slave keyboard (3)]
一方、input-utilsからlsinputを使用して、正しいIDを見つけることができます。
lsinput 2>&1|grep -B5 "Ultrathin Touch Mouse"
/dev/input/event12
bustype : BUS_BLUETOOTH
vendor : 0x46d
product : 0xb00d
version : 1792
name : "Ultrathin Touch Mouse"
マウス用のマップをダンプするときの何らかの理由で、いくつかのコード(0x700e0から0x700e7の間)が重複しているので、それらを見つけて削除するように注意してください。
すべてのキーコードをKEY_UNKNOWNに置き換えると、ランダムな文字のバーストが防止されますが、特別なタッチアクションは使用できなくなります。代わりに、いくつかのジェスチャを便利な組み合わせに再マッピングできることがわかりました。特に、「左からスワイプ」はコード0x700e0 + 0x700e3 + 0x7002bを送信し、「右からスワイプ」は0x700e3 + 0x700e3 + 0x70072を送信します。邪魔にならないように、両方のジェスチャに共通の0x700e3をKEY_UNKNOWにマッピングしました。次に、残りのキーコードを使用してCTRL + F8(デスクトップグリッド)およびALT-F2(ランナー)を作成しましたが、もちろん2つのキーの任意の組み合わせを生成できます。ここに私のマップがあります。コピー/貼り付けの際には、空行や初期の空白スペースを残さないように注意してください(input-kbdが壊れます)。
0x700e3 = KEY_UNKNOWN
0x700e0 = KEY_LEFTCTRL
0x7002b = KEY_F8
0x700e2 = KEY_LEFTALT
0x70072 = KEY_F2
0x70004 = KEY_UNKNOWN
0x70005 = KEY_UNKNOWN
0x70006 = KEY_UNKNOWN
0x70007 = KEY_UNKNOWN
0x70008 = KEY_UNKNOWN
0x70009 = KEY_UNKNOWN
0x7000a = KEY_UNKNOWN
0x7000b = KEY_UNKNOWN
0x7000c = KEY_UNKNOWN
0x7000d = KEY_UNKNOWN
0x7000e = KEY_UNKNOWN
0x7000f = KEY_UNKNOWN
0x70010 = KEY_UNKNOWN
0x70011 = KEY_UNKNOWN
0x70012 = KEY_UNKNOWN
0x70013 = KEY_UNKNOWN
0x70014 = KEY_UNKNOWN
0x70015 = KEY_UNKNOWN
0x70016 = KEY_UNKNOWN
0x70017 = KEY_UNKNOWN
0x70018 = KEY_UNKNOWN
0x70019 = KEY_UNKNOWN
0x7001a = KEY_UNKNOWN
0x7001b = KEY_UNKNOWN
0x7001c = KEY_UNKNOWN
0x7001d = KEY_UNKNOWN
0x7001e = KEY_UNKNOWN
0x7001f = KEY_UNKNOWN
0x70020 = KEY_UNKNOWN
0x70021 = KEY_UNKNOWN
0x70022 = KEY_UNKNOWN
0x70023 = KEY_UNKNOWN
0x70024 = KEY_UNKNOWN
0x70025 = KEY_UNKNOWN
0x70026 = KEY_UNKNOWN
0x70027 = KEY_UNKNOWN
0x70028 = KEY_UNKNOWN
0x70029 = KEY_UNKNOWN
0x7002a = KEY_UNKNOWN
0x7002c = KEY_UNKNOWN
0x7002d = KEY_UNKNOWN
0x7002e = KEY_UNKNOWN
0x7002f = KEY_UNKNOWN
0x70030 = KEY_UNKNOWN
0x70031 = KEY_UNKNOWN
0x70032 = KEY_UNKNOWN
0x70033 = KEY_UNKNOWN
0x70034 = KEY_UNKNOWN
0x70035 = KEY_UNKNOWN
0x70036 = KEY_UNKNOWN
0x70037 = KEY_UNKNOWN
0x70038 = KEY_UNKNOWN
0x70039 = KEY_UNKNOWN
0x7003a = KEY_UNKNOWN
0x7003b = KEY_UNKNOWN
0x7003c = KEY_UNKNOWN
0x7003d = KEY_UNKNOWN
0x7003e = KEY_UNKNOWN
0x7003f = KEY_UNKNOWN
0x70040 = KEY_UNKNOWN
0x70041 = KEY_UNKNOWN
0x70042 = KEY_UNKNOWN
0x70043 = KEY_UNKNOWN
0x70044 = KEY_UNKNOWN
0x70045 = KEY_UNKNOWN
0x70046 = KEY_UNKNOWN
0x70047 = KEY_UNKNOWN
0x70048 = KEY_UNKNOWN
0x70049 = KEY_UNKNOWN
0x7004a = KEY_UNKNOWN
0x7004b = KEY_UNKNOWN
0x7004c = KEY_UNKNOWN
0x7004d = KEY_UNKNOWN
0x7004e = KEY_UNKNOWN
0x7004f = KEY_UNKNOWN
0x70050 = KEY_UNKNOWN
0x70051 = KEY_UNKNOWN
0x70052 = KEY_UNKNOWN
0x70053 = KEY_UNKNOWN
0x70054 = KEY_UNKNOWN
0x70055 = KEY_UNKNOWN
0x70056 = KEY_UNKNOWN
0x70057 = KEY_UNKNOWN
0x70058 = KEY_UNKNOWN
0x70059 = KEY_UNKNOWN
0x7005a = KEY_UNKNOWN
0x7005b = KEY_UNKNOWN
0x7005c = KEY_UNKNOWN
0x7005d = KEY_UNKNOWN
0x7005e = KEY_UNKNOWN
0x7005f = KEY_UNKNOWN
0x70060 = KEY_UNKNOWN
0x70061 = KEY_UNKNOWN
0x70062 = KEY_UNKNOWN
0x70063 = KEY_UNKNOWN
0x70064 = KEY_UNKNOWN
0x70065 = KEY_UNKNOWN
0x70066 = KEY_UNKNOWN
0x70067 = KEY_UNKNOWN
0x70068 = KEY_UNKNOWN
0x70069 = KEY_UNKNOWN
0x7006a = KEY_UNKNOWN
0x7006b = KEY_UNKNOWN
0x7006c = KEY_UNKNOWN
0x7006d = KEY_UNKNOWN
0x7006e = KEY_UNKNOWN
0x7006f = KEY_UNKNOWN
0x70070 = KEY_UNKNOWN
0x70071 = KEY_UNKNOWN
0x70073 = KEY_UNKNOWN
0x70074 = KEY_UNKNOWN
0x70075 = KEY_UNKNOWN
0x70076 = KEY_UNKNOWN
0x70077 = KEY_UNKNOWN
0x70078 = KEY_UNKNOWN
0x70079 = KEY_UNKNOWN
0x7007a = KEY_UNKNOWN
0x7007b = KEY_UNKNOWN
0x7007c = KEY_UNKNOWN
0x7007d = KEY_UNKNOWN
0x7007e = KEY_UNKNOWN
0x7007f = KEY_UNKNOWN
0x70080 = KEY_UNKNOWN
0x70081 = KEY_UNKNOWN
0x70082 = KEY_UNKNOWN
0x70083 = KEY_UNKNOWN
0x70084 = KEY_UNKNOWN
0x70085 = KEY_UNKNOWN
0x70086 = KEY_UNKNOWN
0x70087 = KEY_UNKNOWN
0x70088 = KEY_UNKNOWN
0x70089 = KEY_UNKNOWN
0x7008a = KEY_UNKNOWN
0x7008b = KEY_UNKNOWN
0x7008c = KEY_UNKNOWN
0x7008d = KEY_UNKNOWN
0x7008e = KEY_UNKNOWN
0x7008f = KEY_UNKNOWN
0x70090 = KEY_UNKNOWN
0x70091 = KEY_UNKNOWN
0x70092 = KEY_UNKNOWN
0x70093 = KEY_UNKNOWN
0x70094 = KEY_UNKNOWN
0x70095 = KEY_UNKNOWN
0x70096 = KEY_UNKNOWN
0x70097 = KEY_UNKNOWN
0x70098 = KEY_UNKNOWN
0x70099 = KEY_UNKNOWN
0x7009a = KEY_UNKNOWN
0x7009b = KEY_UNKNOWN
0x7009c = KEY_UNKNOWN
0x7009d = KEY_UNKNOWN
0x7009e = KEY_UNKNOWN
0x7009f = KEY_UNKNOWN
0x700a0 = KEY_UNKNOWN
0x700a1 = KEY_UNKNOWN
0x700a2 = KEY_UNKNOWN
0x700a3 = KEY_UNKNOWN
0x700a4 = KEY_UNKNOWN
0x700a5 = KEY_UNKNOWN
0x700a6 = KEY_UNKNOWN
0x700a7 = KEY_UNKNOWN
0x700a8 = KEY_UNKNOWN
0x700a9 = KEY_UNKNOWN
0x700aa = KEY_UNKNOWN
0x700ab = KEY_UNKNOWN
0x700ac = KEY_UNKNOWN
0x700ad = KEY_UNKNOWN
0x700ae = KEY_UNKNOWN
0x700af = KEY_UNKNOWN
0x700b0 = KEY_UNKNOWN
0x700b1 = KEY_UNKNOWN
0x700b2 = KEY_UNKNOWN
0x700b3 = KEY_UNKNOWN
0x700b4 = KEY_UNKNOWN
0x700b5 = KEY_UNKNOWN
0x700b6 = KEY_UNKNOWN
0x700b7 = KEY_UNKNOWN
0x700b8 = KEY_UNKNOWN
0x700b9 = KEY_UNKNOWN
0x700ba = KEY_UNKNOWN
0x700bb = KEY_UNKNOWN
0x700bc = KEY_UNKNOWN
0x700bd = KEY_UNKNOWN
0x700be = KEY_UNKNOWN
0x700bf = KEY_UNKNOWN
0x700c0 = KEY_UNKNOWN
0x700c1 = KEY_UNKNOWN
0x700c2 = KEY_UNKNOWN
0x700c3 = KEY_UNKNOWN
0x700c4 = KEY_UNKNOWN
0x700c5 = KEY_UNKNOWN
0x700c6 = KEY_UNKNOWN
0x700c7 = KEY_UNKNOWN
0x700c8 = KEY_UNKNOWN
0x700c9 = KEY_UNKNOWN
0x700ca = KEY_UNKNOWN
0x700cb = KEY_UNKNOWN
0x700cc = KEY_UNKNOWN
0x700cd = KEY_UNKNOWN
0x700ce = KEY_UNKNOWN
0x700cf = KEY_UNKNOWN
0x700d0 = KEY_UNKNOWN
0x700d1 = KEY_UNKNOWN
0x700d2 = KEY_UNKNOWN
0x700d3 = KEY_UNKNOWN
0x700d4 = KEY_UNKNOWN
0x700d5 = KEY_UNKNOWN
0x700d6 = KEY_UNKNOWN
0x700d7 = KEY_UNKNOWN
0x700d8 = KEY_UNKNOWN
0x700d9 = KEY_UNKNOWN
0x700da = KEY_UNKNOWN
0x700db = KEY_UNKNOWN
0x700dc = KEY_UNKNOWN
0x700dd = KEY_UNKNOWN
0x700de = KEY_UNKNOWN
0x700df = KEY_UNKNOWN
0x700e1 = KEY_UNKNOWN
0x700e4 = KEY_UNKNOWN
0x700e5 = KEY_UNKNOWN
0x700e6 = KEY_UNKNOWN
0x700e7 = KEY_UNKNOWN
0x700e8 = KEY_UNKNOWN
0x700e9 = KEY_UNKNOWN
0x700ea = KEY_UNKNOWN
0x700eb = KEY_UNKNOWN
0x700ec = KEY_UNKNOWN
0x700ed = KEY_UNKNOWN
0x700ee = KEY_UNKNOWN
0x700ef = KEY_UNKNOWN
0x700f0 = KEY_UNKNOWN
0x700f1 = KEY_UNKNOWN
0x700f2 = KEY_UNKNOWN
0x700f3 = KEY_UNKNOWN
0x700f4 = KEY_UNKNOWN
0x700f5 = KEY_UNKNOWN
0x700f6 = KEY_UNKNOWN
0x700f7 = KEY_UNKNOWN
0x700f8 = KEY_UNKNOWN
0x700f9 = KEY_UNKNOWN
0x700fa = KEY_UNKNOWN
0x700fb = KEY_UNKNOWN
0x700fc = KEY_UNKNOWN
0x700fd = KEY_UNKNOWN
0x700fe = KEY_UNKNOWN
0x700ff = KEY_UNKNOWN
0x90001 = 272 # BTN_LEFT
0x90002 = 273 # BTN_RIGHT
0x90003 = 274 # BTN_MIDDLE
0x90004 = 275 # BTN_SIDE
0x90005 = 276 # BTN_EXTRA
2本指のスワイプで適切なコードを取得することはできませんでしたが、これらのジェスチャを実行することはできないため、気にしません。
追伸他のジェスチャーをカスタマイズしようとする場合、次のように進めました。
マップエントリを並べ替え、重複をクリーンアップすると、252個のシンボル(および5つのボタン)が含まれていることがわかりました。
最初の10個のシンボルをKEY_Aに設定し、次の10個をKEY_Bに設定し、最後の2個がKEY_Zになるまで続けます。次に、このマップをロードしました。
テキストウィンドウでジェスチャーを実行し(または「xbindkeys -mk」を使用できます)、生成された文字をメモします。
マップでは、生成されないすべての文字をKEY_UNKNOWNに変更し、残りの3文字をKEY_A、KEY_B、KEY_Cに変更します。
ジェスチャを再度実行し、生成された文字/数字に注意してください。これは、特定のキーの組み合わせを作成するために必要なものに定義できるコードです。
ジェスチャーを無効にするには、evdev
ドライバーでボタンマッピングを変更して、最後の6つの「ボタン」がすべて次のように無効になるようにします。
以下を/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
Sudo service lightdm restart
でX
サーバーを再起動する
xinput --get-button-map "Ultrathin Touch Mouse"
で確認必要に応じてInputDevice Identifier
の値を変更できますが、InputDevice Name
およびInputClass Identifier
の値を「超薄型タッチマウス」として保持することが重要です。これはxinput
それを認識します。
MacバージョンT631でテスト済み。
evdev
についてもう少し情報が必要な場合、Joe Shawによるこの ブログ投稿 は、入力スタック全体にどのように適合するかについて特に洞察力があります。
input-kbd
パッケージのinput-utils
を使用してみてください:
$ apropos input-kbd
input-kbd (8) - print or modify keyboard maps for input devices
入力デバイスインデックス(たとえば、lsinput
で使用されるIDとは必ず異なるxinput
を介して見つけることができる/dev/input/event4
の4)を使用して、キーボードマップを再構成できます。 -f
スイッチ付きのファイル、たとえば.
$ Sudo input-kbd -f some-file 4
some-file
はscancode = keycode|keyname
の形式を取ります。ここで、以下は同等です。
0x0001 = KEY_F9
0x0001 = 67
Sudo input-kbd 4
で現在のマップを見つけることができます。 /dev
からファイルを開く必要があるため、これを読み取るためにスーパーユーザーを使用する必要があります。
また、明らかに紛らわしい名前ですが、マウスでも機能します。
実際にX
入力コードを書いた人によって提供されたものを含め、提供されたすべてのソリューションにもかかわらず、私はそれを機能させることができなかったので、私はこのことにイライラしました。とは言うものの、私はそこから離れて、通常のコード付きマウスを使用しました。
昨日、私はウルトラスリムを見つけて、もう一度試してみることにしました。それはJust Works™です。これは、少なくともこの質問の理由は、これらのジェスチャーが奇妙な方法で解釈されていたということであり、私のワークフローをいじります。左のスワイプでFirefoxで最後に使用したタブを切り替えることができることを除いて、実際の効果はないようです。
奇妙なのは、ジェスチャーが実際に無効にならないことです。 13個の「ボタン」はすべてxinput --get-button-map "Ultrathin Touch Mouse"
によって返されます。また、grep Ultrathin /usr/share/X11/xorg.conf.d
は何も返しません。 NoSymbol
に関連するVoidSymbol
s(およびxkbcomp
sがまったくない)もKEY_UNKNOWN
に関連するinput-kbd
sも見つかりません。
一方、ダブルタップジェスチャが単純なevemu-record
イベントとして扱われるという事実を除いて、BTN_LEFT
のすべては同じように見えます。
そうは言っても、これに関連して何かが変更されましたが、どうなるかわかりません。
また、再マッピングのテストは行っていませんが、実際には元の質問の範囲内ではありませんでした。
Xbindkeysを使用して、「左端スワイプ」および「右端スワイプ」ジェスチャーを構成できました。これはおそらく2本の指でのスワイプにも当てはまりますが、とにかく操作が難しいと思うので、それらに気にしませんでした。
これは私の.xbindkeysrcです
#Right Edge swipe (Send Alt+F2)
"xte 'keydown Alt_L' 'key F2' 'keyup Alt_L'"
Alt+Mod4+XF86TouchpadOff
#Left Edge swipe (Send CTRL+F8)
"xte 'keydown Control_L' 'key F8' 'keyup Control_L'"
Control+Mod4 + Tab
私はそれらを便利なKDEショートカットにマッピングしましたが、もちろん他のことは何でもできます。ログイン時にxbindkeysを実行する必要があります。xbindkeysチュートリアルで説明されているように、.desktopファイルを作成しました。
#./.config/autostart/xbindkeys.desktop
[Desktop Entry]
Comment[en_GB]=
Comment=
Exec=xbindkeys
GenericName[en_GB]=
GenericName=
Icon=system-run
MimeType=
Name[en_GB]=
Name=
Path=
StartupNotify=true
Terminal=false
TerminalOptions=
Type=Application
X-DBUS-ServiceName=
X-DBUS-StartupType=
X-KDE-SubstituteUID=false
X-KDE-Username=
HTH
すべての回答を読み、input-kbd(input-utilsの一部)に関するスクリプトを作成して、この問題を自動修正しました。
ログインごとに このリポジトリ からfixMouseを実行する必要があります。そうなる:
標準のマウス機能(左ボタン、スクロールなど)は引き続き正常に機能します。奇妙なキーボードキーのみが停止します。
サスペンド、ブルートゥーススリープ、マウスのオンオフなどに耐えます。
わたしにはできる。