Remap tombol sentuh samping pada Microsoft Sculpt Comfort Mouse

12

Saya baru-baru ini membeli Microsoft Sculpt Comfort Mouse. Menggunakan Bluetooth untuk terhubung ke laptop saya dan semua biasa tombol mouse sempurna bekerja di bawah kedua Linux dan Windows 7. Apakah yang berbeda mouse ini, meskipun, adalah bahwa ia memiliki khusus Windows/ Supertombol pada sisi yang meluncurkan start / menu saat ditekan. Ini juga memiliki sensor sentuh yang mendeteksi ketika tombol samping dibelai ke atas atau ke bawah dan bergetar mouse untuk mengakui itu telah diaktifkan.

Tentu saja di Windows ada program yang memungkinkan saya mengubah apa yang stroke lakukan dan mematikan getarannya.

Di Linux, xev hanya mendeteksi keystroke normal ketika tombol samping ditekan atau digesek. Xev tidak melaporkan penekanan tombol mouse apa pun.

Jadi pertanyaan saya adalah, bisakah saya mengubah penekanan tombol apa yang dikirim saat di Linux?

Aku akan senang untuk mengubah kunci mengikat dari tabke down, backspaceke up, (laporan apa xev) ke ctrl+ alt+ left/ rightuntuk beralih di antara ruang kerja.

Terima kasih atas bantuannya!

pengguna223544
sumber
Apakah Anda memeriksa howto untuk mouse di help.ubuntu.com/community/ManyButtonsMouseHowto ?
ubfan1
1
Terima kasih atas tip ubfan1, xinput get-button-map memberi saya 13 tombol. laporan pengujian xev dan xinput hanya tombol 1-7. Saya mencoba memetakan ulang tombol 8-13 menggunakan xinput set-button-map dan xbindkeys dari tautan tetapi tidak ada yang berubah. Menekan tombol samping melaporkan tombol tekan 133 (super), geser ke atas tombol laporan tekan 22 (mundur), geser ke bawah tombol laporan tekan 23 (tab).
user223544

Jawaban:

5

Saya baru saja membeli satu dan menemukan bahwa berikut ini bekerja dengan baik untuk saya.

  1. Buka dconf-editor ( sudo apt-get install dconf-editorjika belum diinstal).
  2. Arahkan ke org -> gnome -> desktop -> wm -> keybindings.
  3. Ubah nilai switch-to-workspace-down menjadi

    ['<Control><Alt>Down', '<Primary><Super>Tab', '<Control><Super>Tab']

    dan nilai switch-to-ruang kerja-up untuk

    ['<Control><Alt>Up', '<Primary><Super>BackSpace', '<Control><Super>Backspace']

Axel David Ingolfsson
sumber
Solusi ini bekerja lebih andal daripada solusi yang saya temukan dengan xbindkeys. Satu-satunya kelemahan dibandingkan dengan xbindkeys adalah bahwa solusi xbindkeys tampaknya hanya menangkap peristiwa tombol mouse, sedangkan solusi ini juga akan berfungsi jika tombol keyboard digunakan. Apapun, keandalan solusi ini menjadikannya solusi yang lebih baik.
user223544
2

Jadi karena Microsoft Sculpt Comfort Mouse tidak mendaftarkan penekanan tombol mouse untuk gerakan super dan geser, tetapi sebaliknya mendaftarkan penekanan tombol keyboard, saya menggunakan paket 'xautomation' dan 'xbindkeys' untuk mendengarkan penekanan tombol tersebut dan mengirim Ctrl+ Alt+ Right/ Leftuntuk beralih di antara ruang kerja. Ini bukan solusi yang ideal, tetapi berfungsi seperti 8 dari 10 kali.

#Move to left workspace
"xte 'keydown Control_L' 'keydown Alt_L' 'usleep 100' 'key Left' 'keyup Control_L' 'keyup Alt_L' 'keyup Left'"
   m:0x4+mod4+m:0x0+c:23
   #Control_L+Super_L+Tab

#Move to right workspace
"xte 'keydown Control_L' 'keydown Alt_L' 'usleep 100' 'key Right' 'keyup Control_L' 'keyup Alt_L' 'keyup Right'"
   m:0x4+mod4+m:0x0+c:22
   #Control_L+Super_L+Backspace

Apa yang dilakukan skrip xbindkeys ini adalah mendengarkan penekanan tombol yang digerakkan mouse ke atas dan geser ke bawah untuk mengirim gerakan ke komputer. Jika terdeteksi, xautomation mengirimkan langkah standar keystroke desktop, control+ alt+ left/ right.

Gerakan menggesek ke atas pada mouse mengirimkan keystroke left control+ left super+ backspace. Gerakan menggesek ke bawah pada mouse mengirimkan keystroke left control+ left super+ tab. m: 0x4 + mod4 + m: 0x0 + c22 adalah kombinasi kode kunci aktual yang dideteksi oleh xbindkeys.

Saya akan mengacaukannya sedikit lebih untuk melihat apakah saya dapat meningkatkan efisiensi, tetapi untuk sekarang ini menyelesaikan pekerjaan. Saya hanya berharap tabdan backspacebahwa output mouse tidak mengacaukan pekerjaan apa pun yang saya lakukan.

pengguna223544
sumber
1
Bisakah Anda menjelaskan bagaimana solusinya bekerja? Apakah mouse mengirim Control_L+Super_L+Tab(Dari mana datangnya Control_L + Super_L)? Atau apakah Anda cocok dengan tombol mouse m:0x4+mod4+m:0x0+c:23(Anda sepertinya mengatakan bahwa tidak ada peristiwa mouse yang dihasilkan dalam pertanyaan)?
Volker Siegel
Saya mengedit solusi saya untuk menjelaskan dari mana Control_L + Super_L berasal. Saya juga menjelaskan tujuan m: 0x0 + mod4 + m: 0x0 + c: 23.
user223544
0

Saya ingin memetakan tombol yang sama untuk bernavigasi melalui tab di Firefox di kedua arah. Saya menggunakan xbindkeys dan xmacro. Ini bekerja dengan cukup baik!

.xbindkeysrc

#Thumb down
"echo 'KeyStrPress Control_L KeyStrPress Tab KeyStrRelease Control_L KeyStrRelease Tab'|xmacroplay :0"
   Control+Mod4+Tab

#Thumb up
"echo 'KeyStrPress Control_L KeyStrPress Shift_L KeyStrPress ISO_Left_Tab KeyStrRelease Control_L KeyStrRelease Shift_L KeyStrRelease ISO_Left_Tab' |xmacroplay :0"
   Control+Mod4+BackSpace
pengguna3229974
sumber