Jadikan tombol capslock Anda tombol putar / jeda
Solusi ini akan memetakan ulang scancode kunci capslock Anda ke kode kunci yang berbeda pada driver input kernel, dalam hal ini play / pause.
Keuntungan
- Tidak perlu memodifikasi file sistem yang ada (hanya satu file baru yang harus dibuat)
- Aplikasi tidak akan tahu bahwa itu sebenarnya adalah tombol capslock tetapi berpikir tombol putar / jeda yang sebenarnya telah ditekan
- Tidak perlu menonaktifkan capslock, tidak ada kemungkinan untuk mengacaukan
xkb
konfigurasi
Kekurangan
- Harus dilakukan untuk setiap keyboard secara individual (yang, tergantung pada situasinya, juga dapat menjadi keuntungan)
Prasyarat
- evtest (dapat diinstal melalui
sudo apt-get install evtest
)
Prosedur
Di terminal, jalankan sudo evtest
dan pilih keyboard Anda. Jika tidak ada output saat Anda menekan tombol, tekan Ctrl+ Cdan coba perangkat lain. Ingat nomor acara perangkat yang Anda pilih, kami akan membutuhkannya nanti. Tekan tombol capslock. Beberapa baris seperti berikut ini akan muncul:
Event: time 1529406021.187148, -------------- SYN_REPORT ------------
Event: time 1529406021.218427, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70039
Event: time 1529406021.218427, type 1 (EV_KEY), code 58 (KEY_CAPSLOCK), value 0
Kami membutuhkan nilai dari MSC_SCAN
garis sebelum KEY_CAPSLOCK
garis. Pada contoh di atas, ini akan menjadi 70039, tetapi scancode pada keyboard Anda mungkin berbeda.
Sekarang jalankan perintah berikut, tetapi ganti X dengan nomor acara perangkat yang Anda gunakan untuk evtest
perintah:
grep "" /sys/class/input/eventX/device/id/*
... ini akan menampilkan bustype
, product
, vendor
dan version
keyboard.
Buat sebuah file bernama 65-keyboard-custom.hwdb
dalam /etc/udev/hwdb.d/
(akses root diperlukan) dengan konten berikut:
evdev:input:b[bustype]v[vendor]p[product]e[version]*
KEYBOARD_KEY_[scancode]=playpause
...dimana
- [bus], [vendor], [produk] dan [versi] memiliki tepat 4 karakter dan huruf harus huruf besar
- [scancode] harus berupa huruf kecil
- yang
evdev:...
garis memiliki tidak ada ruang sebelumnya
- yang
KEYBOARD_KEY...
garis memiliki tepat satu ruang sebelumnya
Sebagai contoh:
evdev:input:b0003v046DpC228e0110*
KEYBOARD_KEY_70039=playpause
Terakhir, kompilasi konfigurasi baru ke basis data perangkat keras:
sudo systemd-hwdb update
Jika Anda ingin segera menerapkan perubahan, informasikan udev:
sudo udevadm trigger
Jika Anda ingin mengembalikan perubahan, hapus saja file yang Anda buat dan reboot.
Anda dapat menemukan informasi lebih rinci dalam jawaban asli saya tentang topik ini.
vlc --key-play-pause <key-string>
, tapi saya belum menemukan string yang diterima VLC sebagai capslock ...