GNU/Linux >> Belajar Linux >  >> Linux

Remap kunci tanpa xmodmap atau alat X apa pun

Pertama, kabar baiknya

Konsol sistem Linux benar-benar memiliki kumpulan pemetaan keyboardnya sendiri, yang dapat dikelola menggunakan alat dari kbd paket, khususnya dumpkeys dan showkey untuk penemuan dan loadkeys untuk memuat dalam pemetaan yang disesuaikan. Pertanyaan SuperUser Bagaimana cara mengubah keymap konsol di Linux? memiliki jawaban dengan informasi bagus tentang cara menggunakan alat ini.

Sekarang, berita buruknya

Meskipun benar bahwa alat tersebut akan memungkinkan Anda untuk memetakan ulang kunci di konsol Linux, tanpa melibatkan xmodmap atau mengharuskan X berjalan, mereka hanya mempengaruhi keymappings pada konsol teks virtual. Perubahan tersebut sama sekali tidak akan berpengaruh pada lingkungan grafis, karena sistem XInput/evdev X membaca dari perangkat input secara langsung dan melakukan pemrosesannya sendiri.

Jadi, jika Anda berharap untuk menghindari penggunaan xmodmap dengan hanya memetakan ulang di konsol dan menerapkannya di mana-mana, saya khawatir itu tidak akan berhasil. Nyatanya, Anda perlu memetakan ulang keduanya konsol (menggunakan loadkeys ) dan X11 (menggunakan metode seperti xmodmap ), untuk menggunakan tata letak keyboard yang sama di mana saja.

Solusi untuk xmodmap kelambatan (dan bug, karena pemetaan ulangnya bermasalah dan tidak bertahan lama di lingkungan desktop yang menggunakan pengalihan tata letak) adalah untuk mendefinisikan yang sepenuhnya baru tata letak keyboard berdasarkan tata letak apa pun yang Anda gunakan sebelumnya, daripada menerapkan modifikasi runtime. Pada startup X, Anda akan memuat tata letak baru yang dipetakan ulang itu alih-alih apa pun yang Anda gunakan sekarang. (Sepertinya ini adalah satu-satunya sekarang cara yang andal untuk memodifikasi tata letak keyboard di Ubuntu baru-baru ini — dan mungkin distro lain — sebagai xmodmap mereka tidak lagi berguna.)

Untuk informasi tentang mendefinisikan dan menggunakan xkb khusus tata letak keyboard, lihat:

  1. Cara:Definisi tata letak keyboard ubahsuaian di Wiki Komunitas Ubuntu.
  2. Cara memodifikasi tata letak keyboard di Linux, entri blog oleh Romano Giannetti.

Keduanya ditulis tahun ini (2014), jadi informasinya harus terkini. Informasi wiki Ubuntu harus dapat diterapkan pada distro apa pun, sebagian besar, karena semuanya menggunakan xkb sistem di X.


Sebenarnya ada cara untuk memetakan ulang pada tingkat yang cukup rendah untuk diterapkan ke seluruh sistem, X11 atau tidak, dan mereka menjadi lebih penting dari sebelumnya karena kita melihat penggunaan kompositor Wayland yang lalai untuk mengekspos UI untuk pemetaan ulang libinput dukungan.

Anda pada dasarnya perlu mengonfigurasi ulang bagaimana lapisan masukan kernel menerjemahkan kode pindaian mentah menjadi kode kunci sebelum mencapai konsol atau API evdev tempat X11 dan Wayland berada di atasnya.

Saya mengetahui dua cara untuk melakukannya:

  1. Ubah basis data perangkat keras (hwdb ) untuk keyboard Anda. udev memungkinkan Anda melakukannya dengan menambahkan file aturan ke /etc/udev/hwdb.d/ dan memicu pembangunan kembali basis data dengan systemd-hwdb update , lalu memaksanya untuk diterapkan tanpa memulai ulang melalui udevadm trigger .

    Halaman ArchiWiki ini memiliki petunjuk lengkap dan secara eksplisit mengatakan bahwa ini akan berfungsi baik untuk input X11 maupun konsol.

  2. Ada daemon bernama evdevremapkeys yang secara khusus ditulis untuk memetakan ulang peristiwa penting pada perangkat evdev untuk mendukung pemetaan ulang monkey-patch ke klien evdev yang tidak mendukungnya, seperti penyusun Wayland.

    Ini pada dasarnya menggunakan pendekatan yang sama dengan driver userspace seperti G15Daemon yang perlu mengkompensasi perangkat input non-standar. (Buka perangkat evdev, telusuri peristiwa apa pun yang ingin dipetakan ulang, sehingga tidak ada orang lain yang mendengarkan di perangkat yang dapat melihatnya, lalu pancarkan peristiwa yang telah diperbaiki melalui uinput API untuk membuat perangkat input level kernel dari userspace.)


Linux
  1. Cara Menyematkan Biner yang Dapat Dieksekusi Dalam Skrip Shell Tanpa Alat Ekstra?

  2. Tombol Pintasan yang Independen dengan Tata Letak Keyboard?

  3. Hubungan Tata Letak Keyboard Dan Xmodmap?

  1. Menggunakan Ubuntu Tanpa Pengetahuan Tentang Linux?

  2. 4 alat untuk mengunduh file apa pun menggunakan baris perintah di Linux

  3. Cara mengonversi \uXXXX unicode ke UTF-8 menggunakan alat konsol di *nix

  1. Mengubah Tata Letak/pemetaan Keyboard Pada Konsol (tty) Dan X Dengan Cara Agnostik X/konsol?

  2. Linux – Tombol Remap Keras Keyboard?

  3. Skype 4.3 tanpa PulseAudio, hanya ALSA. Ada pilihan?