Saya memahami frustrasi Anda, tetapi masalah ini dapat diselesaikan dengan sangat sederhana dengan bantuan xinput
alat.
Pertama-tama colokkan mouse USB Anda, kemudian jalankan perintah berikut:
xinput list
untuk melihat id
mouse Anda. Output dari perintah di atas dapat mirip dengan:
xinput | kucing
⎡ Virtual core pointer id = 2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id = 4 [pointer slave (2)]
⎜ ↳ SynPS / 2 Synaptics TouchPad id = 14 [pointer slave (2)]
⎜ ↳ USB Mouse id = 11 [pointer slave (2)]
⎣ Id keyboard inti virtual = 3 [keyboard master (2)]
...
Pada contoh di atas, mouse USB memiliki id=11
. Kami akan menggunakan ini id
dalam perintah berikut yang akan menukar tombol menjadi tangan kiri hanya untuk mouse USB (dan bukan untuk tauchpad):
xinput set-button-map 11 3 2 1
Secara umum:
set-tombol-map id xinput 3 2 1
Untuk mengembalikan perubahan, gunakan:
XInput set-tombol-peta id 1 2 3
Untuk melakukan perubahan secara permanen, tambahkan perintah berikut di Aplikasi Startup (cari di Dash untuk Aplikasi Startup ):
sh -c "xinput set-tombol-map id 3 2 1"
Memperbarui:
Karena id mungkin berubah setelah reboot tetapi nama USBmouse tidak, Anda juga bisa memahami nama mouse dan menerapkannya. Untuk melewati detail reg. memilih nama solusi akhir seperti:
untuk id di `/ usr / bin / xinput list | / bin / grep ' USB Mouse ' | / bin / grep -o [0-9] [0-9] `; lakukan xinput set-button-map $ id 3 2 1; dilakukan;
masukkan ke dalam Aplikasi Startup yang disebutkan di atas Anda akan mendapatkan akhirnya:
sh -c "untuk id di` / usr / bin / xinput list | / bin / grep ' USB Mouse ' | / bin / grep -o [0-9] [0-9] `; lakukan xinput set-button-map $ id 3 2 1; selesai; "
sh -c "for id in '/usr/bin/xinput list | /bin/grep 'Razer' | /bin/grep -o [0-9][0-9]'; do xinput set-button-map $id 3 2 1; done;"
dan ini bekerja (mungkin orang harus peduli dengan tanda hubung yang tepat). Terima kasih untuk petunjuknya.Bahkan ada cara yang lebih sederhana daripada jawaban Radu Rădeanu .
xinput
menerima nama perangkat input sebagai alternatif untuk ID numeriknya. Karena mouse USB Anda mungkin diperlakukan secara umum, kemungkinan besar namanyaUSB Mouse
. Karena itu Anda bahkan mungkin tidak perlu berlarixinput list
.Dengan demikian
xinput set-button-map
, dengan nama ini menggantikan ID numerik, menjadi:Ini mengambil tempat dan harus mencapai hal yang sama, dengan menjadikannya mouse tangan kiri, sama seperti ketika cara numerik ID digunakan. (Dan menggantinya dengan masih akan bekerja untuk mengubahnya menjadi mouse tangan kanan.)
xinput set-button-map id 3 2 1
3 2 1
3 2 1
1 2 3
Ini memiliki keuntungan bahwa, asalkan bekerja pada awalnya, itu akan terus bekerja di reboot, tanpa harus mendapatkan nomor ID perangkat menggunakan perintah yang panjang dan kompleks.
sumber
xinput list
menunjukkan 2 entri dengan nama yang sama ("2.4G Wireless Keyboard & Mouse") kecuali satu mengatakan "[pointer slave (2)]" dan yang lainnya mengatakan "[keyboard slave (3 )] ". Jadi dengan solusi Anda, saya memiliki kesalahan ini "Ada beberapa perangkat bernama '2.4G Wireless Keyboard & Mouse'.". Saat ini, saya menggunakan menambahkan solusi Radugrep 'slave pointer'
. Saya bertanya-tanya apakah xinput memungkinkan untuk menentukan kita merujuk ke suatu pointer tanpa melakukan semua ini.Saya menemukan bahwa perintah startup di jawaban lain hanya berfungsi jika id adalah angka dua digit. Berikut ini modifikasi saya yang dapat digunakan untuk nomor satu dan dua digit:
Di Aplikasi Startup
sumber
Berikut adalah solusi yang lebih verbose yang memecahkan dua masalah:
xinput list
menunjukkan 2 entri dengan nama yang sama ("2.4G Wireless Keyboard & Mouse") kecuali satu mengatakan "[pointer slave (2)]" dan yang lainnya mengatakan "[keyboard slave (3 )] ". Jadi dengan solusi @reedstrm Saya memiliki kesalahan ini "Ada beberapa perangkat bernama '2.4G Wireless Keyboard & Mouse'.", Sedangkan dengan larutan @Radu Rădeanu, yangfor
itu iterasi 2 id, satu untuk mouse dan satu untuk keyboard, memiliki pesan kesalahan "perangkat tidak memiliki tombol" dengan yang kedua.sumber