Jawaban:
Alat untuk memanipulasi tata letak keyboard pada konsol virtual adalah loadkeys
, dumpkeys
dan showkey
. Baca halaman manual mereka dan beri tahu diri Anda tentang seluk-beluk mereka.
Perhatikan bahwa alat ini hanya bekerja di konsol virtual, bukan di emulator terminal di lingkungan grafis seperti gnome. Pelajari perbedaannya, baca pertanyaan dan jawaban ini: https://askubuntu.com/questions/14284/why-is-a-virtual-terminal-virtual-and-what-why-where-is-the-real-terminal .
Berikut ini panduan singkat untuk melakukan apa yang Anda inginkan:
Simpan tata letak keyboard Anda saat ini:
$ dumpkeys > backup.kmap
Jika terjadi kesalahan, Anda mungkin dapat memulihkan keymap menggunakan perintah:
$ sudo loadkeys backup.kmap
Jika keyboard sangat kacau sehingga Anda bahkan tidak bisa melakukan ini, maka satu-satunya pilihan Anda yang tidak melibatkan sulap kernel kuno adalah reboot.
Periksa kode kunci mana yang ditetapkan untuk kunci Anda:
$ showkey
Sekarang tekan tombol ESC dan tombol CAPSLOCK. Kode kunci harus muncul di layar. Perhatikan kode kunci. Pada sistem saya ESC memiliki kode kunci 1 dan CAPSLOCK memiliki kode kunci 58. showkey
akan berakhir setelah 10 detik tidak aktif (setidaknya itu terjadi di ubuntu 10,04 saya).
Perhatikan nama kunci ESC dan CAPSLOCK dari dumpkeys:
$ dumpkeys | grep 1
...
keycode 1 = Escape
...
$ dumpkeys | grep 58
...
keycode 58 = CtrlL_Lock
...
Perhatikan baris keymap dari dumpkeys:
$ dumpkeys | head -1
keymaps 0-127
Buat file keymap yang mengaktifkan ESC dan CAPSLOCK:
keymaps 0-127
keycode 1 = CtrlL_Lock
keycode 58 = Escape
Muat keymap:
$ sudo loadkeys swap_esc_capslock.kmap
Uji: Menguji kunci CAPSLOCK sudah jelas. Cukup tekan tombol CAPSLOCK mereka dan periksa apakah kunci lain keluar huruf besar. Untuk menguji kunci ESC Anda dapat menggunakan CTRL + V diikuti oleh ESC. Itu harus dicetak ^[
. CTRL + V membuat shell mencetak kunci berikutnya kata demi kata alih-alih menafsirkannya.
Untuk mendapatkan modifikasi ini pada setiap reboot, tulis baris berikut di /etc/rc.local
file Anda :
/usr/bin/loadkeys /path/to/swap_esc_capslock.kmap
Informasi dikumpulkan dari berbagai halaman, termasuk, tetapi tidak terbatas pada:
/usr/bin/loadkeys
dalam /etc/rc.local
karena variabel lingkungan jalan tidak dijamin akan ditetapkan pada tahap ini. Dan sudo
tidak diperlukan di rc.local
.
rc.local
dijalankan setiap kali sistem melakukan boot. @ bukzor ini sudo setupcon
adalah tidak di rc.local
, itu adalah satu kali perintah setup, yang menggantikan keymap sistem default, tanpa menambahkan kode runtime startup. Menambahkan loadkeys
untuk rc.local
, menambah ekstra start up kode dan duplikat apa yang sudah dilakukan oleh loadkeys sistem default. The rc.local
Metode benar-benar bisa kurang aman karena tergantung pada jalur non-standar untuk keymap tersebut.
setupcon
metodenya. Tambahkan jawaban Anda sendiri atau edit jawaban saya jika Anda mau.
setupcon
. Tampaknya Agustus membuat asumsi bahwa sudo setupcon --save
akan masuk ke rc.local
mana saya tidak berpikir itu benar, tetapi jika ya, Anda tidak perlu sudo
masuk rc.local
. Saya pikir kami perlu info lebih lanjut sebelum memperbarui jawaban Anda. Pertanyaan utamanya adalah "Bagaimana cara menginstal keymap yang dimodifikasi sehingga dapat dimuat secara otomatis selama proses booting?" Saya benar-benar tidak tahu mana cara yang lebih baik, rc.local
atau menginstal keymap, atau bahkan jika menginstal keymap akan berhasil. Saya telah meneliti ini akhir-akhir ini dan saya akan memeriksanya kembali di sini.
Gunakan 'ctrl: nocaps' bukan 'ctrl: swapcaps' jika Anda hanya ingin memiliki dua tombol capslocks (capslock dengan nama lain masih sangat tidak berguna).
X11: (lihat juga /usr/share/X11/xkb/rules/base.lst
:)
sudo vim /etc/default/keyboard
XKBOPTIONS="ctrl:swapcaps"
udevadm trigger --subsystem-match=input --action=change
sudo restart lightdm
Konsol teks: (dicuri dari setupcon)
#!/bin/sh
. /etc/default/console-setup
. /etc/default/keyboard
ckbcomp $acm_option $rules_option -model "$XKBMODEL" \
"$XKBLAYOUT" "$XKBVARIANT" "$XKBOPTIONS" \
| gzip -9 2>/dev/null >/etc/console-setup/cached.kmap.gz
loadkeys /etc/console-setup/cached.kmap.gz
sudo setupcon --save
untuk membuat perubahan permanen, daripada mengedit rc.local. Itu pada dasarnya sama dengandumpkeys < /dev/tty1 | gzip > /etc/console-setup/cached.kmap.gz