Next: Frame Parameters, Previous: Creating Frames, Up: Frames
A single Emacs can talk to more than one X display.
Initially, Emacs uses just one display—the one chosen with the
DISPLAY
environment variable or with the ‘--display’ option
(see Initial Options). To connect to
another display, use the command make-frame-on-display
or specify
the display
frame parameter when you create the frame.
Emacs treats each X server as a separate terminal, giving each one its own selected frame and its own minibuffer windows. However, only one of those frames is “the selected frame” at any given moment, see Input Focus.
A few Lisp variables are terminal-local; that is, they have a
separate binding for each terminal. The binding in effect at any time
is the one for the terminal that the currently selected frame belongs
to. These variables include default-minibuffer-frame
,
defining-kbd-macro
, last-kbd-macro
, and
system-key-alist
. They are always terminal-local, and can never
be buffer-local (see Buffer-Local Variables) or frame-local.
A single X server can handle more than one screen. A display name ‘host:server.screen’ has three parts; the last part specifies the screen number for a given server. When you use two screens belonging to one server, Emacs knows by the similarity in their names that they share a single keyboard, and it treats them as a single terminal.
This creates a new frame on display display, taking the other frame parameters from parameters. Aside from the display argument, it is like
make-frame
(see Creating Frames).
This returns a list that indicates which X displays Emacs has a connection to. The elements of the list are strings, and each one is a display name.
This function opens a connection to the X display display. It does not create a frame on that display, but it permits you to check that communication can be established with that display.
The optional argument xrm-string, if not
nil
, is a string of resource names and values, in the same format used in the .Xresources file. The values you specify override the resource values recorded in the X server itself; they apply to all Emacs frames created on this display. Here's an example of what this string might look like:"*BorderWidth: 3\n*InternalBorder: 2\n"See Resources.
If must-succeed is non-
nil
, failure to open the connection terminates Emacs. Otherwise, it is an ordinary Lisp error.
This function closes the connection to display display. Before you can do this, you must first delete all the frames that were open on that display (see Deleting Frames).