momokuri (4128) の日記

2003 年 07 月 05 日
午後 03:28

\の入力の話

2.5 カーネルで、\とか、|が入力できねーと繰り返し文句が出るけど、これは、カーネルの問題じゃなくて、console-toolsの更新が遅いせいなの!

せっかく働いたのに、まるでなにもやってねーみたいじゃないか。

さて、どうするかというと、
/usr/include/linux が、2.5系カーネルを参照するようにして、console-toolsをコンパイルする。一部ツールはエラーで止まってしまうが、loadkeysユーティリティはコンパイルできるから安心してくれ。
そして、キーボード定義ファイル /usr/share/keymaps/i386/qwerty/jp106.kmap.gz
のkeycode 124=の代わりに、keycode 183=にするとつかえるようになるんだ。
あと、カタカナひらがなキーに付いても、2.5.73から定義がカーネルのキーボードドライバにいれてもらったのでこれに、IMEの定義を割り当てることも可能。キーコードは182 になってる。
とにかく、日本語キーボードで割り当てられるキーには、すべてキーコードが割り当てられだんだし、状況はよくなってるんだ。

実は、2.4までのカーネルではキーコードは128未満だったのだけれど、むりやり各国語のキーボードのキーコードを重複して割り当ててたのだ。今後はRAWモードのキーコードが256までに拡張され、USB keyboard に類似したコード割り当てになって、現状知られている大抵の場合には問題なくつかえるようになったんだ。拡張RAWモードというのも新設されて、この場合は14bitが割り当てられるから1万個以上キーがあるようなキーボードでも大丈夫:)

実際には、複雑なキーシーケンス(T-CODEみたいな)で直接漢字とかを生成するようなキーボードドライバを作って、コンソールにIMEなしで、カーネルネイティブにサポートしたりできるってこと。キーコード的には、0、上位7ビット|upflag、下位7ビット|upflagというキーコードを生成する。最初の0には、キーダウンかキーリリースかといったフラグもつく。このへんは、showkey -k を2.5.73カーネルのコンソールで実行して、平仮名カタカナキーとか、\|キーとか入力してみるとわかるよ。

Linux Kernel ストーリーにも投稿したけど、見るひとも少ないだろうから、とりあえずこっちに書いて置いて、いろんなところにリンクを置こう:)

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

Stableって古いって意味だっけ? -- Debian初級

処理中...