You want to specify the buffer as a "special display". It does what you want.
You can configure one or both of these options (variables):
special-display-regexpsspecial-display-buffer-names
This is an easy way. Emacs loves to consider these options obsolete since the release of 24.3, and recommends using the incredibly complex display-buffer-alist option instead.
This is all I do so that all buffers with names that start and end with * are displayed in their own allocated frames:
(setq special-display-regexps '("[ ]?[*][^*]+[*]"))
To get special display frames that have different properties (for example, frame parameters), for example, a different colored background, configure the special-display-frame-alist parameter.
This is essentially the definition I'm using:
(setq special-display-alist '((font . "-*-Lucida Console-normal-r-*-*-14-*-*-*-c-*-iso8859-1") (width . 80) (height . 14) (mouse-color . "Yellow") (cursor-color . "Yellow") (menu-bar-lines . 1) (foreground-color . "Black") (background-color . "LightSteelBlue") (top . 0) (left . 0) (unsplittable . t) (user-position . t) (vertical-scroll-bars . right)))
But I recommend that you use Customize to set the value of all such parameters.
source share