クスクス り〜な!
雑記など

さて、毎度おなじみ、キーボードの設定です。

私は英字キーボードを使っています。

でも、英字にしても106日本語にしても、Controlキーが押しにく過ぎです。Linux等、UNIX系のOSは、かなり Crl+○ という操作が多いので、これではかないません。 そこで、Linux等の定番カスタムとして、Caps Lock を Control として割り当てて使おうというものです。

定義ファイルは何処に・・・ anchor.png

Vineの場合は、/usr/lib/kbd/keymaps/i386/qwerty/ 以下に、各種の定義ファイルが格納されています。

で、「どの定義ファイルを使うか?」の設定が、/etc/sysconfig/keybord というファイルに書かれています。私の場合はUSキーボードを選択したのでこんな感じになっています。

KEYBORDTYPE="pc"
KEYTABLE="us"

この、「KEYTABLE」で定義された言葉に .kmap.gz を付けると、使用するキー定義ファイルとなります。すなわち、私の場合は、 /usr/lib/kbd/keymaps/i386/qwerty/us.kmap.gz という定義ファイルが使われているわけです。

Page Top

定義ファイルを改造する anchor.png

さて、では、 /usr/lib/kbd/keymaps/i386/qwerty/us.kmap.gz を改造するわけですが、このファイルは単なるテキストファイルですが、gzipで圧縮されており、そのままでは編集できません。なので、一旦、/root にでもコピーして作業しましょう。

$ su -
# cd /root
# cp /usr/lib/kbd/keymaps/i386/qwerty/us.kmap.gz ./

これを解凍します。

# ls
# anaconda-ks.cfg us.kmap.gz
# gzip -d us.kmap.gz
# ls
anaconda-ks.cfg us.kmap
#

us.kmap.gz が us.kmap になり、解凍できました。あとは、エディタで書き換えます。

この時点では、どっちみちエディタはviしか入っていないでしょう。私はemacs派ですが、viは、最低限の使い方は憶えておくべきでしょう。なにか異常が起きた時にはviしか動かせないなんてこともあります。また、これは私の経験則ですが、この、キー定義ファイルを編集する場合、なぜかemacsでやると、かならずエラーになります。どっちにしても、こいつはviで編集です。

Page Top

書き換える anchor.png

エディタで中を見れば、おそらく一目瞭然でしょう。各キーを番号で指定してあります。この番号を書き換えると、各キーボタンに好きな割り当てが出来ます。

まずは、Caps Lock と 左Ctrl を入れ替えます。

keycode 29 = Control     →   keycode 58 = Control

keycode 58 = Caps_Lock   →   keycode 29 = Caps_Lock

はい。これでOK。

ちなみに私は、Capl Lock をほとんど使いませんので、29番も Control を割り当てています。まあつまり、どっちを押しても Control になると。

また、これは好みが分かれるところですが、emacs などでは、よく「メタキー」と言って、Esc + ○ なんていう操作も少なくありません。そういう場合、普通のキーボードの Esc はチョット遠いと感じる場合があります。これの対処のため、「`」キー (日本語キーボードでは、全角/半角キー)とEscを入れ替えちゃうなんてのもよくやります。

このキーを定義ファイルの中で捜しても見つからないことがあります。このキーは、「grave」といい、41番に割り当てられています。

keycode 1 = Escape   →   keycode 41 = Escape

keycode 41 = grave   →   keycode 1 = grave

ま、こんな感じで、いろいろ割り当てたり入れ替えたりできます。

意図的に、「なにもしてくれるな!」という割り当ては、番号の代わりに nul を割り当てます。そうすると、そのキーは、なんにもしないキーとなります

Page Top

動作確認 anchor.png

出来上がった定義ファイル。これ、間違いとかはないでしょうか?

そこで、一時的にこの定義ファイルを読み込んでみて、意図したとおりにカスタムされているか確認してみます。

# loadkeys ./us.kmap
Loading ./us.kmap
#

もし、動作がおかしかったり、エラーが出ている場合は、元に戻してもう一度チェックしてみましょう

元の定義ファイルにもどす

# loadkeys -d
Loading /usr/lib/kbd/keymaps/i386/qwerty/us.kmap.gz
#
Page Top

起動時に読み込むようにする anchor.png

さて、うまく出来上がった定義ファイル。これを、起動時に自動的に読み込むように設定します。

まず!

カスタムした us.kmap 。これをそのままの名前で使うのもいいんですが、念のため、元の us.kmap も残しておくべきです。なので、カスタムしたほうの名前を変えます。例えば・・

# mv us.kmap us_hide.kmap
# ls
anaconda-ks.cfg us_hide.kmap
#

とか。

で、さらに、このファイルを元通り圧縮します。

# gzip us_hide.kmap
# ls
anaconda-ks.cfg us_hide.kmap.gz
#

そして、標準の場所に移動しておきます。

# mv ./us_hide.kmap.gz /usr/lib/kbd/keymaps/i386/qwerty/

これで、いつでもこのキー定義を呼び出せるようになりましたが、起動時に自動的に読み込みたいですよね?

そこで、/etc/sysconfig/keybord を書き換えます。

こんな感じね。

KEYBORDTYPE="pc"
KEYTABLE="us_hide"

さて。うまくできましたら、念のため、再起動とかして確認しておいてください。(この定義は、どうせ一度ちゃんとやれば、まず二度と弄らないものですから。逆に失敗しないようにしておきましょう)

なにこれ?
お品書き
雑記など
XOOPS Cube PROJECT