- キーボードには、他のキーと組み合わせることで追加の機能を持たせる「修飾キー」という特殊なキーがあります。
- もっとも使われる修飾キーはShiftキーで、タイプライター時代から大文字と小文字を切り替える機能を持っています。
- ControlキーとAltキーなどは、効率的に操作するための「シュートカットキー」で活用されます。
歴史的には、キーコードを「変更」する意味合いがありましたが、現在は組み合わせパターンとして使われます。
1. キーボードの修飾キー
キーボードにはいくつか「修飾キー(modifier key)」があります。
これらのキーは、基本的には単独で押しても何も起こりません。
他のキーと組み合わせて使います。
ただし、Windowsキーは、単独でもスタートメニューを表示させることができます。
むしろ、Windowsキーが組み合わせて使えることの方が、あまり知られていない気がします。
「Modifier」は、「modify(修正・変更)する」という言葉に由来し、「修飾する」「変更を加える」という意味を持つ英単語です。
2. Shiftキーとキーコードの関係
「Shiftキー」は、タイプライターの時代から存在する最も古い修飾キー。
「Shift」は「移動する」の意味で、大文字と小文字を切り替えるために、物理的に活字バーの位置を移動させる機能でした。
ASCII(American Standard Code for Information Interchange)の場合、
小文字(0110 0001(a) – 0111 1010(z))と
大文字(0100 0001(A) – 0101 1010(Z))は 6 ビット目で区別されます。
したがって、Shiftキーを押すと6ビット目(0x20)が0になります。
ただし、この関係はアルファベットだけの話です。
数字・記号キーの場合には、単純な対応関係はないため、キーの上側に印字されている記号になるようにASCIIコードが変更されています。
3. Controlキーと制御コードの関係
次に出ていた代表的な修飾キーは、Controlキー。
Controlキーは、もともと「制御文字」を入力するために導入されました。
Controlキーを押していると、キーを押したときの信号の下位5ビット以外がゼロになり、ASCIIの非表示文字 (0x00 – 0x1f)を「打つ」ことができます。
「制御文字」は、当時のコンピュータ端末で、プログラムの無限ループする強制的に停止するなど、特殊な制御命令を送るために使用されました。
例えば、基本的な制御コマンドにCtrl + C(中断)、Ctrl + Z(一時停止)などがあります。
これは、
- Ctrl + C (0x03) : ETX(End of Text)
- Ctrl + Z(0x1A):SUB(Substitute)
に対応しています。
3-1. 現在のControlキーは組み合わせで解釈される
ただし、現在のOSではControlキーによってキーコードを直接変更しているわけではありません。
先述のキーコードの仕組みを素直に考えれば、Ctrl+CもCtrl+Shift+Cも同じになるはずです。
しかし、実際は区別されるのです。
各キーの状態は個別に通知されてショートカットキーが解釈されるからです(イベントベース)。
物理的な信号操作から論理的なイベント処理へと進化したことで、現代のキーボードインターフェースはより柔軟で機能的になっています。
4. MetaキーとAltキー/Optionキー
Altキーの起源のひとつに「Metaキー」があります。
Metaキーを押すと、キー信号の最上位ビットが 1 になってを生成されます。
ただし、この後 (1960年代後半)に出てきたAltキーは、特殊なキー信号を作るよりも、既存のキーに代替機能を持たせることに主眼が置かれています。
CUI環境での操作の幅を広げる役割を果たしました。
5. WindowsキーやFnキー
そのほかには、オペレーティングシステム固有の機能を使うための Windowsキー/Commandキー。
また、ノートPCなどでの機能キーの切り替えで使う「Fnキー(Function)」があります。