GNU/Linux >> Belajar Linux >  >> Linux

Ganti Beberapa Kode Kunci Dengan Xkb?

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.


Linux
  1. 3 Cara Menghapus Semua File di Direktori Kecuali Satu atau Beberapa File dengan Ekstensi

  2. Perintah JQ di Linux dengan Contoh

  3. Menambal Biner Dengan Dd?

  1. Pelacakan kernel dengan trace-cmd

  2. Perintah Nohup dengan Contoh

  3. Duplikat, Dengan Beberapa Perubahan Kecil, Beberapa Baris Dalam File Teks?

  1. Instal Linux dengan LVM

  2. Menggunakan Notify-send Dengan Cron?

  3. Tambahan Dengan 'sed'?