Jadi ceritanya laptop yang biasa dipakai untuk bekerja mulai bermasalah. Salah satunya masalah di papantik alias keyboard. Salah satu kunci (key) di keyboard, yakni tombol panah kanan tiba-tiba saja tak bisa digunakan, padahal fungsinya cukup signifikan. Untunglah ada setxkbmap.
Dari hasil googling, ternyata penggunaan xmodmap sudah tidak disarankan lagi. Bahkan berkas konfigurasi .xmodmap katanya tidak akan dibaca sama sistem. Padahal -masih dari hasil googling- katanya penggunaan xmodmap cukup mudah untuk memetakan ulang tombol di keyboard. Beruntung ada xkb dan kawan-kawannya.
Terus bagaimana caranya? Mudah saja. Pertama, siapkan direktori .xkb/keymap dan .xkb/symbols. Mari gunakan terminal untuk membuatnya.
~: $ mkdir -p .xkb/keymap ~: $ mkdir -p .xkb/symbols
Setelah itu, simpan konfigurasi letak keyboard kita pada berkas mykbd menggunakan setxkbmap.
~: $ setxkbmap -print > ~/.xkb/keymap/mykbd
Sekarang mari buat berkas konfigurasi swapnya. Di sini, saya menggantikan tombol panah kanan (RGHT) dengan Menu yang jarang digunakan. Ya daripada mubazir ya. Misalkan konfigurasinya dinamakan myswap, dan disimpan di direktori .xkb/symbols.
~: $ nano .xkb/symbols/myswap
Oh iya, untuk mengetahui tombol mana dipetakan ke mana, kita bisa manfaatkan aplikasi xev atau lihat konfigurasi di /usr/share/X11/xkb/symbols/pc. Kalau kita gunakan xev, lalu tekan tombol atas (Up), maka keluarannya seperti ini.
KeyRelease event, serial 37, synthetic NO, window 0x2400001,
root 0x105, subw 0x0, time 4532783, (430,108), root:(530,271),
state 0x0, keycode 111 (keysym 0xff52, Up), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
Masalahnya kan tombol kanannya rusak, jadi susah cari keycodenya apa. Jadi mending intip berkas konfig xkb saja. Contohnya seperti ini.
$ less /usr/share/X11/xkb/symbols/pc | grep Right
key { [ Right ] };
$ less /usr/share/X11/xkb/symbols/pc | grep Menu
key
Dari sana ketahuan bahwa tombol kanan simbolnya RGHT, dan Menu simbolnya MENU. Kita gunakan informasi ini di berkas myswap. Mari kita tukar keduanya.
partial modifier_keys
xkb_symbols "swap_right_menu" {
replace key <RGHT> { [ Menu ] };
replace key <MENU> { [ Right ] };
};
Selesai? Tentu saja belum. Agar konfigurasi ini bisa dipakai, sekarang kita edit berkas mykbd, dan tambahkan konfigurasi swap_right_menu di bagian xkb_symbols. Jadinya seperti ini.
xkb_keymap {
xkb_keycodes { include "evdev+aliases(qwerty)" };
xkb_types { include "complete" };
xkb_compat { include "complete" };
xkb_symbols { include "pc+us+us:2+inet(evdev)+terminate(ctrl_alt_bksp)+myswap(swap_right_menu)" };
xkb_geometry { include "pc(pc105)" };
};
Jika sudah, lakukan langkah terakhir, yakni menjalankan perintah agama xkbcomp.
~: $ xkbcomp -I$HOME/.xkb ~/.xkb/keymap/mykbd $DISPLAY
Jika tidak ada halangan, rintangan dan cobaan seharusnya tidak ada error, cuma warning saja. Tapi kalau masih ada error, coba periksa lagi, apakah ada saltik atau tidak. Contoh error seperti ini:
$ xkbcomp -I$HOME/.xkb ~/.xkb/keymap/mykbd $DISPLAY
syntax error: line 3 of myswap
last scanned symbol is: RIGHT
Error: Error interpreting include file "myswap"
Exiting
Abandoning symbols file "(null)"
Error: success in unknown
Couldn't write keyboard description to :0
Di situ, saya salah tulis simbol untuk tombol kanan. Seharusnya RGHT, bukan RIGHT. Silakan edit lagi berkas mykbd atau myswap-nya, lalu jalankan lagi perintah xkbcomp di atas.
$ xkbcomp -I$HOME/.xkb ~/.xkb/keymap/mykbd $DISPLAY
Warning: Key <OUTP> not found in evdev+aliases(qwerty) keycodes
Symbols ignored
Warning: Key <KITG> not found in evdev+aliases(qwerty) keycodes
Symbols ignored
Warning: Key <KIDN> not found in evdev+aliases(qwerty) keycodes
Symbols ignored
Warning: Key <KIUP> not found in evdev+aliases(qwerty) keycodes
Symbols ignored
...
Seharusnya kali ini tidak ada error, cuma warning. Jika begitu, selamat! Untuk sementara kamu belum perlu beli keyboard baru 😐
Selamat mencoba. Hidup Linux!
One response to “Ganti tata letak keyboard dengan setxkbmap”
[…] saya lakukan berhasil? Ternyata tidak. Saat dinyalakan, ternyata kibor laptop bermasalah. Tepatnya, masalahnya bertambah. Kali ini yang error adalah kunci bawah. Tidak seperti msalah kunci kanan yang […]