- macOSはCommandキーがGUI操作、Controlキーがターミナル系の操作を担い、両者の役割がはっきり分かれています。
- このキーの役割分離は、もともとGUIアプリケーション開発者向けに新しい修飾キーを追加した結果の副産物と言えます。
- WindowsとLinuxではControlがアプリとCLIの両方に使われ、Winキー・SuperキーはOS操作に限定されている。
1. macOSのキー設計
macOSに慣れていると、WindowsやLinuxを触るときに、不思議なタイミングで違和感を覚えます。
行の先頭に移動しようと、Ctrl+Aを押して、全選択になる。
あるいは、ターミナルでプロセスを止めるには、コピーと同じ Ctrl+Cを打つ。
この背景には、キーボードの設計そのものに違いがあります1。
1.1. GUIとCLIでキーの担当が分かれる
macOSでは、CommandキーがGUIの世界を担っています。
Command+Cでコピーし、Command+Tabでアプリを切り替え、Command+Spaceでスポットライトを開く。
デスクトップ環境からアプリケーションまで、GUIに関わる操作がほぼCommandに集まっています。
一方のControlキーは、UNIX由来のターミナル操作で使われます。
テキスト編集のEmacsキーバインドもControlが中心です。
ターミナルでCtrl+CはSIGINTを送り、Ctrl+DはEOFを意味します2。
GUIとCLIで担当が分かれているため、両者がぶつかることはほとんどありません。
1.2. Commandキー誕生の経緯
ただ、1984年のMac発売時にAppleが意図して、設計したのは「GUIとCLIの分離」ではなかったように思います。
最初に生まれた Appleキーは、アプリケーション開発者にショートカットキーを登録できる場所を提供するためのものでした。
すでにシステム制御に使われていたControlの代わりに、新しい修飾キーを導入したのです3。
結果として、Commandという専用の場所ができたことで、ControlはUNIX的な用途に専念できるようになった。
UNIX層との分離は、その副産物として生まれました。
2. WindowsとLinuxの構造
一方、Windowsでは、ControlがアプリとCLIの両方に使われています。
Ctrl+CはExcelではコピーですが、PowerShellでは割り込みシグナルになります。
Windows PCでCommandキーに相当するのは、Winキーです。
しかし、WinキーはOSのショートカットに使われるものの、一般のアプリが自由に使える領域ではありません。
Microsoftが管理する例外的な割り当てにとどまります4。
2.1. LinuxのSuperキーはデスクトップ環境用
WindowsキーボードのWinキーは、LinuxのデスクトップではSuperキーと呼ばれます。
Superキーは、Winキーと物理的に同じキーです。
Superキーも、デスクトップ環境のショートカットに充てられていて、あまりアプリケーションでは使われません。
たとえば、GNOMEではSuper単体でアクティビティ画面を開きます5。
アプリケーション内ではWindowsの慣習をそのまま引き継ぎCtrl+Cがコピーになり、ターミナルでは衝突を避けるためCtrl+Shift+Cをコピーに割り当てているものがほとんどです。
つまり、Linuxでは、SuperをデスクトップOS、ControlをアプリとUNIXの両方に使う構造です。
層の境界が曖昧なままで、Superを後から充てた設計では、Controlの二重人格は解消できませんでした。
macOSから離れられない理由は、慣れではなく構造にあります。
CommandとControlの境界が体に刷り込まれると、その境界が曖昧な環境では手が止まる。
副産物として生まれた分離が、使い心地の一貫性として効いています。
- ⌘記号はグラフィックデザイナーのSusan Kareが1983年に国際記号辞典から見つけた「場所のシンボル(Place of Interest Sign)」で、北欧の地図で名所を示すために使われていたものです。Appleロゴがメニューのショートカットキーのとなりにすべて表示されることを問題視したSteve Jobsの指示で、代替記号として採用されました。 – Command key – Wikipedia
- SIGINTはSignal Interruptの略で、POSIXで標準化されたシグナルの一つです。シグナル番号は2番で、プロセスに割り込みを要求します。デフォルトではプロセスを終了させますが、プログラム側でハンドラを実装して独自の動作をさせることもできます。1970年代のBell Labs UNIXに起源を持ちます。 – Signal (IPC) – Wikipedia
- 初代Macintosh(1984年)にはControlキーがありませんでした。ターミナルソフトウェアとの互換性のために後から追加されたものです。これは、Appleが当初からControlをUNIX用途と意識していたのではなく、GUI操作とUNIXが自然に分離した経緯を示しています。 – The Secret History of Mac Keyboard Keys – MacMost
- WinキーはDOS時代のキーボードには存在せず、1994年9月にMicrosoftが発売したMicrosoft Natural Keyboardで初めて登場しました。Windows 95の発売より約1年早い登場です。Windows 95以降、Windowsロゴの認定を受けるキーボードにはWinキーの搭載が必須となり、標準的な101キーレイアウトが104キーに拡張されました。 – Windows key – Wikipedia
- GNOMEの公式ドキュメントでは、Superキーを押すとActivities overviewが表示されると説明されています。このキーは通常キーボードの左下、Altキーの隣にあり、Windowsロゴが印字されていることが多いとも記載されています。 – What is the Super key? – GNOME Help