Di mana letak kunci di Debian? (Menggunakan loadkeys untuk mengubah keymap.)

12

Dari konsol yang sebenarnya (misalnya Ctrl- Alt- F3), saya ingin menggunakan sudo loadkeys dvorak seperti di ubuntu . Sementara itu secara otomatis berfungsi di Ubuntu, Debian ingin saya menemukan file keymap. Saya tidak memiliki /usr/share/keymapsyang kadang-kadang diberikan sebagai jawaban. find / -type f -name '*dvorak*'muncul beberapa file yang loadkeystidak akan diambil. Seperti dalam jawaban lain ini saya tidak ingin membuat perubahan permanen menggunakan sistem saya console-config. Saya ingin menulis skrip sederhana yang dapat mengubah keymap dengan cepat.

Apakah ada paket yang bisa saya instal atau apalah?

Karena saya ingin menukar Caps-Lock dan Escape pada akhirnya, saya mungkin harus membuat tombol kustom sendiri , betul, betul?

John Baber-Lucero
sumber

Jawaban:

15

1) Pastikan console-datapaket diinstal:

# loadkeys dvorak
Loading /usr/share/keymaps/i386/dvorak/dvorak.kmap.gz

$ dpkg --search /usr/share/keymaps/i386/dvorak/dvorak.kmap.gz
console-data: /usr/share/keymaps/i386/dvorak/dvorak.kmap.gz

$ cat /etc/debian_version 
wheezy/sid

2) IMHO, ya dumpkeys > test.keymap && edit test.keymap && loadkeys testadalah yang termudah.

barti_ddu
sumber
1

Ini adalah skrip dari kabinet racun pribadi saya yang saya gunakan untuk menjadikan CAPSLOCK sebagai CTRL tambahan secara permanen pada debian. Ini harus memberikan petunjuk yang cukup sehingga Anda dapat lebih lanjut menyesuaikannya sendiri.

Diasumsikan tata letak kbd 'us' digunakan sampai sekarang, tata letak keyboard baru akan disebut 'sja' di sini.

Oneliner:

apt install console-data -y; TMP=$(loadkeys us | awk {'print $2'}); TMP2=$(dirname $TMP)/sjas.kmap.gz; cp -vaf $TMP $TMP2; gzip -d $TMP2; TMP3=${TMP2%%.gz}; sed -i -e 's/us.map/sjas.map/' -e 's/.*58.*/keycode  58 = Control/' $TMP3; gzip -c $TMP3 > $TMP2; rm $TMP3; sed -i 's/"us"/"sjas"/g' /etc/default/keyboard

Tidak dalam satu baris, sehingga lebih mudah dibaca:

apt install console-data -y
TMP=$(loadkeys us | awk {'print $2'})
TMP2=$(dirname $TMP)/sjas.kmap.gz
cp -vaf $TMP $TMP2
gzip -d $TMP2
TMP3=${TMP2%%.gz}
sed -i -e 's/us.map/sjas.map/' -e 's/.*58.*/keycode  58 = Control/' $TMP3
gzip -c $TMP3 > $TMP2
rm $TMP3
sed -i 's/"us"/"sjas"/g' /etc/default/keyboard

Ganti kejadian string 'sja' dan 'us' dengan yang sesuai dengan letak tata letak Anda saat ini dan bagaimana Anda ingin memanggil yang baru.

sja
sumber