Mapping Laser Pointer Ugreen 80136 di Linux
Katanya, gunakan tunjangan sertifikasi untuk menunjang peningkatan kinerja diri. Jadilah akhirnya saya membeli laser pointer untuk membantu proses pembelajaran di kelas. Sebenarnya tidaklah mendesak untuk memiliki benda ini, but, why not?.
Sejujurnya jarang menampilkan presentasi, dan ketika perlu maka selama ini sudah tercukupi menggunakan KDEConnect.
Namun menggunakan KDEConnect dirasa merepotkan, pertama karena saya menggunakan GTK based desktop sementara ia aplikasi untuk desktop KDE yang akhirnya akan menarik banyak berkas KDE/Qt yang dibutuhkan. Kedua, KDEConnect menggunakan telepon genggam sebagai kendali presentasi. Jika sial tergelincir dari tangan, kemungkinan besar jadinya akan meratapi hape yang hancur.
Dan tentunya laser pointer yang tidak dimiliki hape.
Pilihan jatuh ke Ugreen 80136. Selain suka dengan desainnya, sejauh ini belum pernah dikecewakan oleh merek UGreen.
Alasan lainnya adalah karena di deskripsi toko dijelaskan bahwa menggunakan baterai AA. I hate integrated battery. Karena jika daya baterai habis maka kemungkinan besar perangkat tidak bisa dipakai akibat kesulitan mengganti baterainya. Sulit membuka perangkat karena tidak dirancang memakai baterai replaceable, juga sulit mencari suku cadang baterai.
But you know what? Ketika barang diterima, ternyata ia menggunakan baterai yang menyatu alias tidak bisa diganti. Damn.
Overall, lumayan puas dengan laser pointer ini. Plug and Play di Linux. Hanya memang tombol paling atas sekilas tidak berfungsi. Tidak kaget, karena di spesifikasi dijelaskan hanya bisa untuk Microsoft Office.
Namun ada masalah, ternyata pointer ini menggunakan UP dan DOWN untuk kendali. Mungkin tidak masalah untuk aplikasi presentasi, namun saya lebih sering menampilkan aplikasi yang navigasinya mayoritas LEFT dan RIGHT.
Dan karena aplikasi presentasi juga menerima LEFT serta RIGHT sebagai navigasi, mengapa tidak memetakan tombol pointer saja?
So, here we go…
Pertama, cari
bustype,productiddanvendorid.Daftar perangkat USB yang terhubung ke komputer
~$ lsusb Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 004: ID 8087:0032 Intel Corp. AX210 Bluetooth Bus 001 Device 003: ID 046d:c534 Logitech, Inc. Unifying Receiver Bus 001 Device 002: ID 046d:c548 Logitech, Inc. Logi Bolt Receiver Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hubColokkan receiver pointer ke komputer kemudian ulangi perintah tadi.
~$ lsusb Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 011: ID 1ea7:0066 SHARKOON Technologies GmbH [Mediatrack Edge Mini Keyboard] Bus 001 Device 004: ID 8087:0032 Intel Corp. AX210 Bluetooth Bus 001 Device 003: ID 046d:c534 Logitech, Inc. Unifying Receiver Bus 001 Device 002: ID 046d:c548 Logitech, Inc. Logi Bolt Receiver Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hubTampak bahwa perangkat pointer adalah:
Bus 003 Device 004: ID 1ea7:0066 SHARKOON Technologies GmbH [Mediatrack Edge Mini Keyboard]Patut diingat bahwa bus USB mungkin berbeda antar port bergantung rancangan motherboard dari komputer. Misal pada ThinkPad x230 yang saya miliki terdapat dua buah bus untuk tiap USB port-nya, yaitu
001dan003.Cari event dari pointer.
Daftar event yang ada di /dev/input
ls /dev/input/event* > /tmp/eventColok USB receiver pointer, ulangi perintah tadi dan tambahkan output ke berkas yang sama.
ls /dev/input/event* >> /tmp/eventUrutkan kemudian cari event yang beda. Itulah laser pointer kita.
~$ sort /tmp/event | uniq -u /dev/input/event23 /dev/input/event24 /dev/input/event25 /dev/input/event26 /dev/input/event27Cari keymap untuk tiap tombol pointer.
sudo apt install evtestGunakan salah satu event tersebut pada langkah sebelumnya.
Misal/dev/input/event23tidak bereaksi, gunakan event berikutnya.sudo evtest /dev/input/event23Tekan semua tombol pada pointer (kecuali tombol laser).
Event: time 1702368736.459692, type 17 (EV_LED), code 0 (LED_NUML), value 0 Event: time 1702368736.459692, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70052 Event: time 1702368736.459692, type 1 (EV_KEY), code 103 (KEY_UP), value 1 Event: time 1702368736.459692, -------------- SYN_REPORT ------------ ^[[AEvent: time 1702368736.515552, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70052 Event: time 1702368736.515552, type 1 (EV_KEY), code 103 (KEY_UP), value 0 Event: time 1702368736.515552, -------------- SYN_REPORT ------------ Event: time 1702368737.851668, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70051 Event: time 1702368737.851668, type 1 (EV_KEY), code 108 (KEY_DOWN), value 1 Event: time 1702368737.851668, -------------- SYN_REPORT ------------ ^[[BEvent: time 1702368737.907618, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70051 Event: time 1702368737.907618, type 1 (EV_KEY), code 108 (KEY_DOWN), value 0 Event: time 1702368737.907618, -------------- SYN_REPORT ------------ Event: time 1702368740.131433, type 4 (EV_MSC), code 4 (MSC_SCAN), value 7002b Event: time 1702368740.131433, type 1 (EV_KEY), code 15 (KEY_TAB), value 1 Event: time 1702368740.131433, -------------- SYN_REPORT ------------ Event: time 1702368740.187533, type 4 (EV_MSC), code 4 (MSC_SCAN), value 7002b Event: time 1702368740.187533, type 1 (EV_KEY), code 15 (KEY_TAB), value 0 Event: time 1702368740.187533, -------------- SYN_REPORT ------------Tampak bahwa scancode untuk pointer adalah:
TombolKEY_UP:70052
TombolKEY_DOWN:70051
TombolKEY_TAB:7002bBuat hardware database config.
sudo nano /etc/udev/hwdb.d/99-ugreen-80136.hwdbIsi berdasarkan data yang diperoleh:
b adalah bustype, yaitu001dan003
v adalah vendor id, yaitu1ea7(harus ditulis kapital,1EA7)
p adalah product id, yaitu0066Isikan pula key mapping:
- scancode
70052yang tadinya UP kita jadikan RIGHT - scancode
70051yang tadinya DOWN kita jadikan LEFT - scancode
7002byang tadinya TAB kita jadikan F5
evdev:input:b001v1EA7p0066 evdev:input:b003v1EA7p0066 KEYBOARD_KEY_70052=right KEYBOARD_KEY_70051=left KEYBOARD_KEY_7002b=f5- scancode
Buat udev rules.
sudo nano /etc/udev/rules.d/99-ugreen-80136.rulesDan isikan data berikut:
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1ea7", ATTRS{idProduct}=="0066", IMPORT{builtin}="hwdb 'evdev:input:b001v1EA7p0066'", RUN{builtin}+="keyboard" SUBSYSTEMS=="usb", ATTRS{idVendor}=="1ea7", ATTRS{idProduct}=="0066", IMPORT{builtin}="hwdb 'evdev:input:b003v1EA7p0066'", RUN{builtin}+="keyboard"Muat rules anyar tersebut:
sudo systemd-hwdb update sudo udevadm trigger /dev/input/event*
Nice. Kini laser pointer selain sebagai pengendali berkas presentasi, juga bisa untuk menavigasi aplikasi yang dikendalikan tombol kiri dan kanan. Nilai plus, tombol yang katanya hanya bisa untuk Microsoft Office kini juga bisa dimanfaatkan.