新たにフレームを作成するためには関数make-frame
を呼び出します。
この関数はカレントバッファーを表示するフレームを作成してそれをリターンする。
parameters引数は新たなフレームのフレームパラメーターを指定するalist。フレームのパラメーターを参照のこと。alist内でterminal
パラメーターを指定すると新たなフレームはその端末上で作成される。それ以外の場合には、alist内でwindow-system
フレームパラメーターを指定すると、それはフレームがテキスト端末とグラフィカル端末のどちらで表示されるべきかを決定する。ウィンドウシステムを参照のこと。どちらも指定しなければ新たなフレームは選択されたフレームと同じ端末上に作成される。
parametersで指定されなかったパラメーターのデフォルトは連想リストdefault-frame-alist
内の値となる。そこでも指定されないパラメーターのデフォルトはXリソース、またはそのオペレーティングシステムで同等なものの値(X Resources in The GNU Emacs
Manualを参照)。フレームが作成された後に、この関数はframe-inherited-parameters
(以下参照)内で指定されたパラメーターのうち未割り当てのパラメーターにたいして、make-frame
呼び出し時に選択されていたフレームから値を取得して適用する。
マルチモニターディスプレイ(複数の端末を参照)では、ウィンドウマネージャーがparameters内の位置パラメーター(位置のパラメーターを参照)の指定とは異なる位置にフレームを配置するかもしれないことに注意。たとえばウィンドウの大きな部分、いわゆる支配モニター(dominating monitor)上のフレームを表示するポリシーをもつウィンドウマネージャーがいくつかある。
この関数自体が新たなフレームを選択されたフレームにする訳ではない。入力のフォーカスを参照のこと。以前に選択されていたフレームは選択されたままである。しかしグラフィカル端末上ではウィンドウシステム自身の理由によって新たなフレームが選択されるかもしれない。
make-frame
がフレームを作成する前に、それにより実行されるノーマルフック。
make-frame
がフレームを作成した後に実行するアブノーマルフック。after-make-frame-functions
内の各関数は作成された直後のフレームを単一の引数として受け取る。
initファイルでこれらのフックに追加した関数は、初期フレームの作成後にEmacsがinitファイルを読み込むために、通常は初期フレームにたいして実行されないことに注意してください。しかし別のミニバッファーフレーム(ミニバッファーとフレームを参照)を使用して初期フレームを指定すれば、これらの関数はミニバッファーなしのフレームとミニバッファーフレームの両方にたいして実行されます。かわりに“早期initファイル(early init file)”でこれらのフックに関数を追加することができます(initファイルを参照)。この場合には初期フレームにも同じように効果があります。
この変数はカレントで選択されているフレームから継承して新たに作成されたフレームのフレームパラメーターのリストを指定する。リスト内の各要素はmake-frame
の処理において前に割り当てられていないパラメーター(シンボル)であり、make-frame
は新たに作成されたフレームのそのパラメーターに選択されたフレームの値をセットする。
Emacsサーバーがクライアントフレームを使用する際に実行されるノーマルフック。このフックの呼び出し時には、そのクライアントフレームが選択されたフレームとなる。emacsclient
の呼び出され方(Invoking
emacsclient in The GNU Emacs
Manualを参照)によっては、そのクライアントフレームはクライアント用に新たに作成されたフレームかもしれないし、サーバーがクライアントコマンドを処理するために再利用する既存のフレームかもしれない。Emacs
Server in The GNU Emacs Manualを参照のこと。