Saya ingin mengocok beberapa kunci dengan XKB. (Mengapa? Pada laptop di mana beberapa tombol tidak dapat ditemukan dengan nyaman.) Saat ini saya menggunakan xmodmap:
keycode 110 = Prior
keycode 115 = Delete
keycode 112 = Next
keycode 117 = Insert
keycode 119 = End
keycode 118 = Home
Alih-alih, saya ingin menggunakan XKB dan menetapkan nama simbolis yang berbeda untuk kunci fisik tertentu, daripada menetapkan simbol kunci yang berbeda untuk kode kunci tertentu. (Inilah sebabnya.) Saya ingin kode kunci 110 mengirim PGUP
bukannya HOME
, kode kunci 115 untuk mengirim DELE
bukannya END
, dll. Konfigurasi lainnya tidak boleh terpengaruh (jadi PGUP
adalah tetap mengirim keysym Prior
, dll., dan semua kunci lainnya tetap apa adanya).
Bagaimana cara mengubah penetapan kode kunci khusus ini? Saya akan memuat file dengan xkbcomp somefile.xkb $DISPLAY
, apa yang harus saya masukkan ke somefile.xkb
?
Jawaban yang Diterima:
Buat file yang berisi perubahan kode kunci Anda, dan simpan sebagai (misalnya) ~/.xkb/keycodes/local
. (keycodes
direktori hard-coded; direktori dasar bisa menjadi sesuatu yang lain, dan nama file juga.) Ini akan berisi dalam kasus Anda
xkb_keycodes {
<PGUP> = 110;
<PGDN> = 112;
<DELE> = 115;
<INS> = 117;
<HOME> = 118;
<END> = 119;
};
Untuk memuat ini, jalankan
setxkbmap -print | sed -e '/xkb_keycodes/s/"[[:space:]]/+local&/' | xkbcomp -I${HOME}/.xkb - $DISPLAY
Ini menampilkan pengaturan Anda saat ini, menambahkan +local
ke xkb_keycodes
include
pernyataan, dan memuatnya ke dalam kompiler XKB, menambahkan ~/.xkb
ke jalur termasuk. (Jika Anda menamai file Anda selain ~/.xkb/keycodes/local
, Anda jelas harus mengubah +local
dan -I${HOME}/.xkb}
.) Dengan cara itu semua pengaturan lainnya dipertahankan.