コンソールのキーマップをお手軽に変更できる`loadkeys'

今日の小江戸らぐのオフな集まりで三浦さんに教わった技.
コンソールでパイプ入力できない!とかキーマップがおかしいときにloadkeys コマンドでワンタッチでキーマップを変更できます.

$ sudo loadkeys emacs
Loading /usr/share/keymaps/i386/qwerty/emacs.kmap.gz
$ sudo loadkeys jp106
Loading /usr/share/keymaps/i386/qwerty/jp106.kmap.gz
$ sudo loadkeys us
Loading /usr/share/keymaps/i386/qwerty/us.kmap.gz

自分でkeymap をカスタマイズしておいてそれを呼び出すことも可能.


以下Debian 系なら同じように行けると思います.

$ loadkeys emacs
Couldnt get a file descriptor referring to the console

keymap file が無いようです.

$ apt-cache search keymap
console-common - Basic infrastructure for text console configuration
console-data - Keymaps, fonts, charset maps, fallback tables for console-tools
dh-consoledata - Debhelper-based script to help packaging console data file
keymapper - Keyboard map decision tree builder and interpreter
libslang1-dev - The S-Lang programming library, development version
libslang1-utf8-dev - The S-Lang programming library, development version with utf8 support
libslang2-dev - The S-Lang programming library, development version
lkl - userspace keylogger for x86 architecture
xbase-clients - miscellaneous X clients
xkeycaps - manipulate X11 keymaps (for xmodmap) graphically

`console-data' がそれっぽいので入れてみます.

$ sudo apt-get install console-data
$ find /usr/share/keymaps | wc -l
247

いけそうです.

$ loadkeys emacs
Loading /usr/share/keymaps/i386/qwerty/emacs.kmap.gz
Keymap 0: Permission denied
Keymap 1: Permission denied
Keymap 2: Permission denied
KDSKBENT: Operation not permitted
loadkeys: could not deallocate keymap 3
$ sudo loadkeys emacs
Loading /usr/share/keymaps/i386/qwerty/emacs.kmap.gz
$ sudo loadkeys jp106
Loading /usr/share/keymaps/i386/qwerty/jp106.kmap.gz
$ sudo loadkeys us
Loading /usr/share/keymaps/i386/qwerty/us.kmap.gz

一般ユーザでは権限が足りないようでsudo で実行するとうまくいきました.
これは覚えておくと便利かもしれません.

- Article 26557 at 09/08/22 00:47:12 From: yoshida Subject: [KoedoLUG:26557] 9月のオフな集まり(第87回) ご案内
http://hatochan.dyndns.org/koedolug/ml/200908.month/26557.html
- KoedoLUG - matoken's wiki.
http://hpv.cc/~maty/pukiwiki1/index.php?KoedoLUG#a3989b3b