1つのEmacsで複数のXディスプレイを操作できます。初期状態では、Emacsは1つのディスプレイ(環境変数 DISPLAY または ‘--display’ オプションで指定されたもの)のみを使用します(初期オプションを参照)。別のディスプレイに接続するには、make-frame-on-display コマンドを使用します:
ディスプレイ上に新しいフレーム display を作成します。
1台のXサーバーで複数の画面を扱えます。1台のサーバーに属する2つの画面でフレームを開くと、Emacsはそれらが単一のキーボードを共有していることを認識し、これらの画面から届くすべてのコマンドを単一の入力ストリームとして処理します。
異なるXサーバーでフレームを開くと、Emacsはサーバーごとに個別の入力ストリームを作成します。また、各サーバーには独自の選択済みフレームがあります。特定のXサーバーで入力したコマンドは、そのサーバーの選択済みフレームに適用されます。
マルチモニター環境では、make-frame-on-monitorコマンドを使用できます:
現在のディスプレイの一部を画面領域とする新しいフレームをモニター monitor に作成します。
各ディスプレイには対応するキーボードがあります。通常、Emacsはこれらのキーボードが物理的に独立していると想定しており、ある人が一方のキーボードで入力し、別の人が別のキーボードで、異なる端末の異なるフレームに入力できるようになっています。しかし、特定の状況下では、Emacsはシングルキーボードモードに入り、1台を除くすべてのキーボードからの入力がブロックされます。これにより、一方のキーボードで押されたキーが、別のキーボードで開始された操作に干渉するのを防ぎます。これが適用される主な操作は、再帰的編集(再帰的編集レベルを参照)の開始であり、これにはすべてのミニバッファプロンプティング(ミニバッファの使用を参照)が含まれます。
個別のディスプレイとそれぞれに対応するキーボードがあるものの、Emacsを操作するユーザーが1人で、物理キーボードも1台しかない場合、シングルキーボードモードは不便なことがあります。これはXフォワーディングで起こり得ます。リモートのEmacsデーモンがあり、ssh -X daemon-host emacsclient -cのようなコマンドで複数のフレームが作成されている場合、リモートEmacsデーモンの視点からは、ssh -X daemon-hostコマンドが呼び出されるたびに1つのターミナルと1つのキーボードが存在することになりますが、実際には単一のローカルXサーバーがすべてのフレームを表示しており、物理キーボードも1台しかありません。
このような状況では、各フレームを C-x 5 2 で作成されたかのように動作させたい場合があります(フレームの作成を参照)。その場合、あるフレームで再帰的な編集を開始しても、他のフレームへのキーボード入力がブロックされることはありません。これを実現するには、変数
multiple-terminals-merge-keyboards を nil 以外の値に設定してください。