numaの日記: キーボード配列の設定変更(また続き) 1
前回の記事のさらにまた続き。
前回いろいろとキーボード配列変更プログラムを探したのだが、そのときに見つけたものにMicrosoft Keyboard Layout Creatorがある。 これは、デバイスドライバーを生成することによって、キーボード配列や複数キーの操作による文字入力を実現するものだ。残念ながら、CapsLockキーをCtrlキーに置き換えるようなことはできない。
これで実現できる機能は次の通り:
- キーボード配列変更方式
既存のキー(記号キーなど)に別の文字を割り当てる。
たとえば、「[」「]」「\」の各キーに「ä」「ë」「ö」を、それぞれ割り当てるようなやり方である。もちろんShiftキーを押しながらそれらのキーをタイプすれば、それぞれの大文字版が入力されるように設定する。CapsLockについても同様。
それじゃ「[」「]」「\」が入力できないって? このキーボード配列とは別に、普通のキーボード配列も登録しておけばよい。そうすればAlt + Shiftで配列を切り替えられる。 - デッドキー方式
いくつかのキーをデッドキーとして扱い、それと別の1文字との組み合わせで、さらに別の1文字を入力する。
たとえば、「`」をデッドキーとする。「`」だけをタイプしても文字は入力されず、その次に「a」をタイプすることで「à」を入力できるようにする。どの組み合わせでどの文字が入力されるかは、キーボード配列を設定するときに決めておく。ちなみに、「`」という文字自体を入力したい場合は、「`」を2回タイプするように設定すればよい。(いや、別に「`」の後に空白というのでもいいけれど。) - コンポーズキー方式
どれか1つのキーを「Compose」というキーに割り当てる。たとえば、「à」を入力したい場合は、「Compose」「`」「a」の順番でタイプする。 - シフト状態追加方式
別のシフト状態を追加し、さらにいくつかの追加文字を入力可能にする。
CapsLockではアルファベットが大文字シフトになるが、ここで一部の記号類に別の文字を割り当てる。たとえば、CapsLock状態で「[」「]」「\」の各キーが「ä」「ë」「ö」になるよう設定する。そうすると、次のような動作になる:- 通常状態:
- [ キー ⇒ [
- Shift + [ キー ⇒ {
- CapsLock状態:
- [ キー ⇒ ä
- Shift + [ キー ⇒ Ä
(ここに挙げた例は説明のためのもので、実用性を考えたものではない。)
なお、通常のシフト状態でもCtrl + Altを押しながら別のキーをタイプして1文字入力という技があり、それの大文字版は当然Shift + Ctrl + Altを押すのだ。もはや曲芸である。 - 通常状態:
キーボード配列変更方式は直感的でわかりやすいが、文字を割り当て可能なキーの数に制限がある。そもそもキーの数には限界があるし、アクセント付アルファベットを普通のアルファベットとして使うキーに割り当てるわけにもいかない。
それに対してデッドキー方式は、キーの数に対する制約はキーボード配列変更よりも少ないが、1文字入力するのに2回キータイプを行う必要がある。なお、デッドキー方式は、昔のタイプライターでも使われていた古典的な方式だ。他にもたとえば、文字にアンダーラインを引きたいときに、まず「_」をタイプし(ここで文字送りは行われない)、その後に別の文字「A」をタイプすれば、アンダーライン付きの文字「 A 」が完成する。
コンポーズキー方式は、デッドキー方式よりもさらに制約が少ないが、1文字入力に3回タイプする必要がある。また、1つのキーを「Compose」に割り当てると、そのキーはほかの用途には使えない。
シフト状態追加方式は操作が複雑なので、よほどのことがない限り使わない方がいいだろう。でも、スイスのドイツ語キーボードでは、標準でこの方式を使うらしい。もちろん、上に挙げた例ほどひどくはないけれど。
なお、このツールは日本語キーボードをサポートしていない(と、ドキュメントには書いてある)。日本語キーボードには他では使っていないキーが1つあって(Backspaceの左のキー)、これには対応していないらしい。もちろん、「変換」や「無変換」にも対応していない。
たまにヨーロッパで使われるアクセント記号付き文字を入力したい場合がある(この文章を書いている時とか)ので、そういうときには使えそうだ。いまはコード表から探しているので、少々面倒なのだ。でもまあ、さすがに「♥」に専用キーを割り当てようとは思わないけれど。
自分の場合 (スコア:0)
アルファベット用の配列は2つあり、普段はUS international AltGr Dead keysを使っていて、ある言語の時だけはその言語の配列を使う。ZとYの位置が反対だったりするが、必要なアクセント付きのアルファベットは一打でいけるし、スペルは指が覚えているので、多少の混乱は問題にはならない。
また、どちらの配列でもAltGrとの組み合わせでデッドキーも打てるようになっている。アクセント記号とアルファベットを組み合わせる時に必要という点でComposeキーと似ているが、AltGrは同時押しで作用するし、ユーロ記号やポンド記号なども入力できる。でも、US international AltGr Dead keysのAltGr側にはカーソルキーとかBSとかを独自に割り当てていて、オリジナルのものはµと×ぐらいしか使わない。
※ただし、Linuxでの話なので、Windowsでどの程度のことが可能なのかは知らない。