GNU/Linux >> Belajar Linux >  >> Linux

Hubungan Tata Letak Keyboard Dan Xmodmap?

Saya menggunakan Xubuntu. Sebelum masuk saya dapat memilih tata letak keyboard. Saya menggunakan xmodmap untuk memetakan kembali beberapa kunci.

Saya tertarik pada dua hal:

  1. Bagaimana status pemetaan keyboard berubah (a) saat saya menyalakan laptop, (b) selama proses booting dan (c) masuk ke sistem (dalam tiga fase ini) dan saat bekerja dengan sistem (masuk ).
  2. Apa yang menyebabkan simbol mana yang akan ditampilkan di layar (dan tombol kontrol yang dikirim) selama fase individu. Ketika saya menekan beberapa tombol, itu mengirimkan beberapa sinyal ke driver keyboard(?) dan kemudian harus ada beberapa proses keputusan (aplikasi dan file konfigurasi) menentukan simbol apa yang akan ditampilkan. Jawaban atas pertanyaan ini harus berupa daftar aplikasi dan jalur ke file konfigurasi tersebut (saya sangat tertarik dengan Ubuntu (sistem berbasis Debian), tetapi Anda dapat menjelaskan beberapa sistem lain, tetapi Ubuntu lebih disukai).

Jawaban yang Diterima:

Ada dua lapisan di sini, KEYCODE untuk pemetaan KEYSYM dan KEYSYM untuk pemetaan teks. Ada lebih banyak lapisan jika Anda menghitung kernel, yang harus memetakan AT Keyboard scancode ke XT-style KEYCODE atau kode USB Keyboard HID ke KEYCODE. KODE KUNCI hanyalah sebuah bilangan bulat tak bertanda 8-bit yang diteruskan oleh kernel Sistem Operasi ke server X11. Ini dapat bervariasi antara Sistem Operasi seperti Linux dan Solaris. Di Linux, KEYCODE ini biasanya nomor yang sama yang digunakan pada Keyboard PC XT lama. Komputer yang lebih baru dengan keyboard AT, PS/2, atau USB biasanya hanya memetakan keyboard tersebut ke kode XT lama agar kuncinya tetap sederhana.

Kode keyboard mentah, apakah itu XT, AT, PS/2, atau USB mewakili lokasi fisik pada keyboard. Keyboard XT hanya mengirimkan satu nomor 8-bit saat tombol ditekan atau dilepaskan. Tombol q pada keyboard XT US/British mengirimkan angka 16. Pada keyboard Prancis, tombol fisik yang sama diberi label a, tetapi tetap mengirimkan 16. Lapisan yang lebih tinggi dalam sistem operasilah yang memberinya arti sebenarnya. Ketika sebuah kunci dilepaskan pada keyboard XT, kode kunci yang sama dikirim ditambah 128. Untuk contoh ini, ketika q ditekan, 16 dikirim, tetapi saat dilepaskan, angka 142 (16+128) dikirim. AT Keyboard menggunakan kode pindaian yang merupakan rangkaian angka dan bisa panjang. Rilis kunci menambahkan kode tambahan. Misalnya, kode pindaian untuk Jeda adalah E1, 1D, 45, E1, 9D, C5. Kebanyakan Sistem Operasi termasuk DOS, Windows, Linux, FreeBSD, dan BIOS semua memetakan scancode ke dalam scancode gaya XT yang lebih sederhana. Ini juga membuatnya lebih mudah untuk mendukung keyboard baru yang menggunakan kode berbeda seperti Keyboard USB yang mengirim kode HID. Semua kode dipetakan ke kumpulan kode yang sama oleh Sistem Operasi sebelum X11 atau aplikasi melihatnya.

Terkait:Bagaimana cara memahami ini atau itu (2 hal) dalam file?

X11 tidak mengetahui bagian proses ini, ia hanya mendapatkan KODE KUNCI dari kernel dan menerapkan pemetaannya sendiri untuk mengonversi KODE KUNCI tersebut menjadi KUNCI. Xmodmap adalah alat standar untuk mengendalikan pemetaan itu. Sebagian besar perilaku pemetaan keyboard dapat dikonfigurasi, tetapi ada beberapa kasus khusus seperti Num Lock, Mode Switch, dan Caps Lock/Shift Lock yang dikodekan ke dalam X11. Aspek lain seperti Shift sebenarnya dapat dikonfigurasi. Tombol apa pun dapat dipetakan untuk bertindak sebagai shift, tidak seperti Mode Switch atau Num Lock.

KEYCODE mewakili kunci fisik yang dikirim oleh kernel Sistem Operasi. Setiap KEYCODE dapat memetakan ke 8 KEYSYM yang mungkin. Hanya 4 yang digunakan dan terkadang disebut level 1-4. Level 1 menentukan KEYSYM yang akan dicetak saat tidak ada pengubah yang aktif. Ini sering berupa huruf kecil dan angka. Pengubah adalah KODE KUNCI yang memodifikasi KEYSYM yang dihasilkan oleh KODE KUNCI lain saat pengubah aktif (ditekan atau diaktifkan.) Kode kunci pengubah juga dikontrol melalui Xmodmap. Level 2 menentukan KEYSYM yang akan dikirim saat pengubah shift ditekan. Level 3 diaktifkan setiap kali Mode Switch KEYSYM telah ditekan. Level 4 diaktifkan saat tombol shift dan Mode Switch aktif.

Setelah KEYSYM dibuat, ini dapat ditafsirkan secara langsung, tetapi paling sering akan dikonversi ke teks. Tidak semua KEYSYM berubah menjadi teks atau mungkin hanya memengaruhi KEYSYM mendatang. Salah satu contohnya adalah Shift_L, tentu saja, yang tidak memiliki representasi tekstual, tetapi ada juga sejumlah KEYSYM yang digunakan untuk Menulis karakter lain. Daftarnya di sistem saya ada di bawah /usr/share/X11/locale/en_US.UTF-8/Compose . Salah satu contohnya adalah KEYSYM dead_acute yang, ketika ditekan, akan mencoba mengubah KEYSYM berikutnya menjadi huruf beraksen akut. Ada pemetaan standar untuk mengubah KEYSYM menjadi Unicode.

Sekarang semua ini telah dikatakan, perhatikan bahwa Xmodmap sudah usang dan digantikan oleh XKB yang jauh lebih canggih. Ini mempengaruhi bagaimana KEYCODE dipetakan ke KEYSYM, tetapi bukan bagaimana kernel menghasilkan KEYCODE atau bagaimana KEYSYM diubah menjadi teks atau disusun yang masih sama. XKB dapat dinonaktifkan untuk memulihkan perilaku Xmodmap. Ini juga memiliki lapisan kompatibilitas untuk mendukung Xmodmap, tetapi dapat memiliki masalah karena tidak sepenuhnya kompatibel. Aturan XKB berada di bawah /usr/share/X11/xkb/ dan jauh lebih canggih. Ada beberapa dokumentasi bagus di tempat lain tentang cara menghasilkan tata letak keyboard untuk memetakan KEYCODE ke KEYSYM.

Untuk konsol Linux, ia memiliki tata letak keyboard sendiri yang disimpan di /usr/share/keymaps dan dimuat dengan loadkeys memerintah. Saat berada di BIOS dan tahap boot loader sebelumnya, termasuk GRUB2, pemetaan keyboard adalah nomor berapa pun yang ditentukan oleh BIOS untuk memetakan kuncinya.

Terkait:Debian – Openssl ditingkatkan melalui apt-get, `openssl version` menampilkan versi sebelumnya?
Linux
  1. Memetakan Kombinasi Kunci Dengan Xmodmap?

  2. Tata Letak Keyboard Apa yang Memungkinkan Saya Mengetik ?

  3. Emacs, Linux, dan tata letak keyboard internasional

  1. Linux:ubah tata letak keyboard dengan cepat

  2. Tata letak keyboard Xephyr

  3. Remap kunci tanpa xmodmap atau alat X apa pun

  1. Mengubah Tata Letak Bahasa &Keyboard Pada Berbagai Distribusi

  2. Bagaimana Cara Kerja Input Keyboard Dan Output Teks?

  3. Ubah tata letak keyboard GRUB di tahap 1