Normally, each frame has its own minibuffer window at the bottom, which
is used whenever that frame is selected. If the frame has a minibuffer,
you can get it with
minibuffer-window (see Minibuffer Windows).
However, you can also create a frame without a minibuffer. Such a frame
must use the minibuffer window of some other frame. That other frame
will serve as surrogate minibuffer frame for this frame and cannot
be deleted via
delete-frame (see Deleting Frames) as long as
this frame is live.
When you create the frame, you can explicitly specify the minibuffer
window to use (in some other frame). If you don’t, then the minibuffer
is found in the frame which is the value of the variable
default-minibuffer-frame. Its value should be a frame that does
have a minibuffer.
If you use a minibuffer-only frame, you might want that frame to raise
when you enter the minibuffer. If so, set the variable
t. See Raising and Lowering.
This variable specifies the frame to use for the minibuffer window, by default. It does not affect existing frames. It is always local to the current terminal and cannot be buffer-local. See Multiple Terminals.