tl; dr
Saya baru saja membeli Logitech T630 . Ini adalah mouse Bluetooth yang mendukung beberapa acara keyboard melalui gerakan (PDF). Gerakan-gerakan ini baik-baik saja dan keren tetapi saya tidak banyak menggunakannya. Saya mengalami kesulitan menyingkirkan mereka.
Saya ingin melakukan hal berikut, dalam rangka mengurangi prioritas:
- nonaktifkan gerakan ini
- memetakan ulang gestur (saya pikir tanpa meretas firmware atau merekayasa balik driver perangkat Windows / OS X, ini tidak mungkin)
Saya tidak mau:
- gunakan Windows
- nonaktifkan semua gerakan
Untuk info lebih lanjut, baca terus ...
tombol dan gerakan
Tiga belas kemungkinan acara mouse adalah:
- klik kiri
- klik tengah
- klik kanan
- gulir ke atas
- gulir ke bawah
- gulir ke kiri
- gulir ke kanan
- geser ke kiri
- geser ke kanan
- geser dua jari ke kiri
- dua jari menggesek ke kanan
- ketuk dua kali
- ketuk dua jari dua kali
Tujuh yang pertama adalah dalam urutan bagaimana OS memetakannya.
Hanya tiga yang pertama yang mekanis — yang lainnya menggunakan permukaan sentuh:
Opsi GUI
Mengatur di Kubuntu Trusty sangat mudah, tetapi ia menawarkan sedikit dukungan untuk mengonfigurasi gerakan lain ini.
Gerakan ini tidak terkait dengan:
- touchpad (
synaptics
tidak aktif) - aksesibilitas
- sudut panas
- gerakan mouse standar
Semua pengaturan terkait dengan yang telah diperiksa dan semuanya mati.
pengaturan baris perintah
lomoco
The lomoco
utilitas untuk bantuan configure fitur-fitur khusus dari Logitech USB tikus tidak berlaku.
xinput
Saya pikir xinput
mungkin menawarkan bantuan:
$ 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
Perhatikan label 13 tombol:
$ xinput --get-button-map "Ultrathin Touch Mouse"
1 2 3 4 5 6 7 8 9 10 11 12 13
Menonaktifkannya tidak membantu:
$ xinput --set-button-map "Ultrathin Touch Mouse" 1 2 3 4 5 6 7 0 0 0 0 0 0
Meskipun demikian, misalnya, ini dapat mengubah tombol tengah mouse menjadi klik kiri:
$ xinput --set-button-map "Ultrathin Touch Mouse" 1 1 3 4 5 6 7 0 0 0 0 0 0
xmodmap
Mirip dengan xinput
, hasil yang sama:
$ xmodmap -e "pointer = 1 2 3 4 5 6 7 0 0 0 0 0 0"
inputkbd
Disarankan oleh elmicha di bawah ini, ini berfungsi pada level kernel, mencoba untuk membuat gestur menghasilkan peristiwa keyboard nol. Harus bekerja, tetapi tidak ada keberuntungan di sini, juga, dengan proses berikut:
$ 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
Setelah melakukan ini, keymap tidak menunjukkan perubahan.
xkbcomp
Ini disarankan oleh X
input peretas Peter Hutterer , tentu saja seorang pria yang harus tahu apa yang dia lakukan. Tetap saja tidak berhasil:
$ 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
Setelah melakukan ini, deskripsi keyboard tidak menunjukkan perubahan.
Peter merasa bahwa ini kemungkinan disebabkan oleh fakta yang X
dikacaukan dengan sifat perangkat seperti keyboard atau mouse, seperti bug yang memiliki masalah sebaliknya. Ini mungkin menjelaskan mengapa semua barang yang diharapkan lainnya tidak berfungsi. Namun, ia juga mengatakan bahwa menggunakan evdev
tidak boleh bekerja karena alasan yang sama.
evdev
Tampaknya pada awalnya berhasil, tetapi ternyata tidak. Upaya ini untuk meningkatkan pengandar input generik untuk X
mengatur pemetaan tombol dengan menambahkan berikut ini ke /usr/share/X11/xorg.conf.d/10-evdev.conf
atau /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
Ini tampaknya berfungsi tanpa kesalahan dalam /var/log/Xorg.0.log
(menggunakan grep EE
), dan xinput
mengonfirmasi pemetaan tombol, tetapi tidak menghasilkan efek keinginan.
Ini adalah diketahui bekerja untuk T631, namun.
acara keyboard
Masalahnya terletak, saya pikir, pada kenyataan bahwa gerakan ini menghasilkan peristiwa keyboard:
$ 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) ----------
Sejauh menyangkut keymap , ini merujuk pada:
$ 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
Ketuk dua kali tampaknya tidak melakukan apa-apa.
referensi lain
Mungkin juga membantu untuk menunjukkan referensi ke masalah serupa dalam bug dengan mouse yang disebutkan di atas tidak ada dalam gnome-bluetooth
database kode PIN. Tak perlu dikatakan, komentar lebih lanjut tentang subjek secara resmi offtopic pada laporan bug itu, tetapi referensi dapat membantu menambah beberapa perspektif tentang sifat masalah ini.
Inilah output dari evemu-describe /dev/input/event4
FWIW.
Adaptor Bluetooth
FWIW Saya telah menggunakan dua adapter USB Bluetooth yang berbeda:
$ 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
utilitas.xmodmap
danxinput
dan bahkanxorg.conf
akan berguna di bawah Kubuntu Anda tetapi tidak di bawah Windows VM. Jadi di bawah WinVM Anda harus dapat mengkonfigurasi mouse Anda dengan utilitas Logitech standar untuk Windows.Jawaban:
Setelah banyak kesakitan, saya berhasil membuat peta kunci yang melakukan sesuatu yang bermanfaat.
Beberapa catatan pertama (saya belum bisa berkomentar) pada jawaban sebelumnya:
skrip fixMouse yang disediakan oleh cadangan Mr tidak berfungsi, karena kadang-kadang entri Keyboard mouse muncul dengan nama yang salah di xinput, yaitu dalam kasus saya ini menunjukkan:
di sisi lain Anda dapat menggunakan lsinput dari input-utils untuk menemukan id yang benar:
untuk beberapa alasan saat membuang peta untuk mouse, beberapa kode digandakan (kode antara 0x700e0 dan 0x700e7), hati-hati untuk menemukan dan menghilangkannya, atau Anda akan menjadi gila.
mengganti semua kode kunci dengan KEY_UNKNOWN mencegah ledakan karakter acak, tetapi menjadikan tindakan sentuhan khusus tidak berguna. Saya malah menemukan bahwa Anda dapat memetakan kembali beberapa gerakan menjadi kombinasi yang berguna. Secara khusus "gesek masuk dari kiri" mengirimkan kode 0x700e0 + 0x700e3 + 0x7002b, sedangkan "gesek masuk dari kanan" mengirim 0x700e3 + 0x700e3 + 0x70072. Saya memetakan 0x700e3, yang umum untuk kedua gerakan, ke KEY_UNKNOW, untuk menghindarinya. Kemudian saya menggunakan kode kunci yang tersisa untuk membuat CTRL + F8 (desktop grid) dan ALT-F2 (runner), tetapi tentu saja Anda dapat menghasilkan kombinasi dua tombol apa saja. Ini peta saya, berhati-hatilah saat menyalin / menempel agar tidak meninggalkan garis kosong dan tidak ada spasi kosong awal (mereka memecah input-kbd):
Saya tidak bisa mendapatkan kode yang tepat untuk gesekan dua jari, tapi sekali lagi saya tidak peduli karena gerakan itu tidak mungkin dilakukan.
PS Jika Anda ingin mencoba menyesuaikan gerakan lain, berikut adalah cara saya melanjutkan:
Saya mengurutkan entri peta, membersihkan duplikat, dan memperhatikan bahwa itu terdiri dari 252 simbol (ditambah 5 tombol).
Saya mengatur sepuluh simbol pertama ke KEY_A, sepuluh berikut ke KEY_B dan seterusnya sampai 2 terakhir yang menjadi KEY_Z; lalu saya memuat peta ini.
Saya melakukan gerakan di jendela teks (atau Anda dapat menggunakan "xbindkeys -mk") dan perhatikan huruf yang dihasilkan.
Di peta saya mengubah semua huruf TIDAK diproduksi menjadi KEY_UNKNOWN, tiga yang tersisa menjadi KEY_A, KEY_B, KEY_C .. KEY_Z, KEY_1, .., KEY_4, lalu saya memuat MAP baru ini.
Saya melakukan gerakan lagi, perhatikan huruf / angka yang dihasilkan: ini adalah kode yang dapat didefinisikan untuk apa pun yang Anda butuhkan untuk membuat kombinasi tombol tertentu.
sumber
Anda dapat mencoba menggunakan
input-kbd
dariinput-utils
paket:Menggunakan indeks perangkat input (mis. 4 untuk
/dev/input/event4
, yang dapat ditemukan melaluilsinput
yang tentu berbeda dari id yang digunakan dalamxinput
), Anda dapat mengkonfigurasi ulang peta keyboard dengan mengumpankannya file dengan-f
switch, mis.di mana
some-file
mengambil bentukscancode = keycode|keyname
, di mana yang berikut ini setara:Anda dapat menemukan peta saat ini dengan
sudo input-kbd 4
. Karena Anda perlu membuka file dari/dev
, Anda perlu menggunakan superuser untuk acara membaca ini.Perhatikan juga, meskipun nama itu kelihatannya menyesatkan, ini juga berfungsi dengan mouse.
sumber
awk '/KEY_/ { $3 = 240 } { print }'
.KEY_UNKNOWN
, atau dalam hal iniBTN_EXTRA
,?sudo input-events 4
untuk melihat tombol mouse mana. KEY_UNKNOWN (mudah-mudahan) tidak mencetak atau memicu tindakan apa pun.name.sh
sana untuk membalikkan nama kunci -> pemetaan kode, untuk mengaktifkan input_kbd untuk mencetak nama untuk kode-kode kunci.Untuk menonaktifkan gerakan, Anda dapat mengubah pemetaan tombol dengan
evdev
driver sehingga 6 "tombol" terakhir semua dinonaktifkan seperti:menambahkan yang berikut ke
/usr/share/X11/xorg.conf.d/10-evdev.conf
atau/etc/X11/xorg.conf.d/10-evdev.conf
tergantung pada apa yang Anda miliki:memulai kembali
X
server dengansudo service lightdm restart
xinput --get-button-map "Ultrathin Touch Mouse"
Anda dapat mengubah nilai
InputDevice Identifier
jika Anda mau, tetapi penting untuk menyimpan nilai untukInputDevice Name
danInputClass Identifier
sebagai "Ultrathin Touch Mouse," karena ini adalah caraxinput
mengenalinya.Diuji dengan versi Mac, T631.
Jika Anda ingin sedikit informasi lebih lanjut
evdev
, posting blog ini oleh Joe Shaw sangat wawasan tentang bagaimana hal itu cocok dengan seluruh tumpukan input.sumber
X
file konfigurasi, terutama yang didefinisikan secara global. Jalur peningkatan tertentu akan menimpa ini, yang tidak ideal. Selain itu, ini tidak ideal karena tidak jelas cara memetakan kembali kunci. Saya tidak mengatakan itu bukan solusi yang valid, tetapi ketika datang ke karunia jawaban lain mungkin menang. ☺ Akhirnya, ini menyedihkan bahwa ini tidak dapat diimplementasikan tanpa restart. Mungkin jika Anda bisa mencari cara untuk menghadapinyaevdev
secara langsung, itu mungkin baik, tetapi saya belum menemukan hal seperti itu.evemu-record
. tidak bekerja :(Saya berhasil mengonfigurasi gerakan "geseran tepi kiri" dan "gesekan tepi kanan" menggunakan xbindkeys; ini mungkin bisa berlaku juga untuk sapuan jari dua, tapi saya tidak repot-repot dengan itu karena saya merasa sulit untuk melakukan pula.
Ini adalah .xbindkeysrc saya
Saya telah memetakannya ke cara pintas KDE yang berguna, tentu saja Anda dapat melakukan hal lain. Anda perlu menjalankan xbindkeys saat login, saya telah membuat file .desktop seperti yang dijelaskan dalam tutorial xbindkeys:
HTH
sumber
Saya merasa frustrasi pada hal ini karena saya tidak pernah bisa membuatnya bekerja, terlepas dari semua solusi yang disediakan, termasuk yang disediakan oleh seseorang yang benar-benar menulis
X
kode input. Yang mengatakan, saya berjalan menjauh dari itu dan hanya menggunakan mouse, dijalin dgn tali normal.Kemarin saya menemukan Ultrathin dan memutuskan untuk mencobanya lagi dan Just Works ™.Ini benar setidaknya dalam arti bahwa alasan untuk pertanyaan ini adalah bahwa gerakan ini ditafsirkan dengan cara yang aneh dan mengacaukan alur kerja saya. Sekarang mereka tampaknya tidak memiliki efek nyata, kecuali bahwa menggesek tepi kiri memungkinkan saya untuk bertukar antara tab yang terakhir digunakan di Firefox.
Apa yang aneh adalah bahwa sama sekali tidak ada gerakan yang benar-benar dinonaktifkan. Semua 13 "tombol" dikembalikan oleh
xinput --get-button-map "Ultrathin Touch Mouse"
. Jugagrep Ultrathin /usr/share/X11/xorg.conf.d
tidak mengembalikan apa pun. Tidak ada yang relevanNoSymbol
(dan tidak adaVoidSymbol
sama sekali) ditemukanxkbcomp
atau relevanKEY_UNKNOWN
denganinput-kbd
.Di sisi lain, semuanya terlihat sama
evemu-record
kecuali untuk kenyataan bahwa gerakan ketuk ganda hanya dilakukan sesederhana ituBTN_LEFT
peristiwa .Yang mengatakan, ada sesuatu yang berubah sehubungan dengan ini, tapi saya tidak yakin apa.
Juga, saya belum menguji memetakan hal-hal, tapi itu tidak benar-benar dalam lingkup pertanyaan aslinya.
sumber
Saya telah membaca semua jawaban, dan saya telah menulis skrip di input-kbd (bagian dari input-utils) untuk memperbaiki secara otomatis masalah ini.
Anda harus menjalankan fixMouse dari repositori ini setiap kali login. Itu akan:
Fitur mouse standar (tombol kiri; gulir; dll.) Masih berfungsi dengan baik. Hanya tombol keyboard aneh yang dihentikan.
Ini bertahan dari penundaan, tidur bluetooth, mouse on-off, dll.
Ini bekerja untuk saya.
sumber