Eventualmente, consegui o que queria com o seguinte no meu arquivo .emacs.
(progn
(interactive)
(split-window-horizontally)
(other-window 1)
(split-window)
(other-window 1)
(eshell)
(other-window 1)) ;; finally change back to scratch window
;; open temporary buffers in a dedicated window split
(setq special-display-regexps
'("^\*Completions\*$"
"^\*Help\*$"
"^\*grep\*$"
"^\*Apropos\*$"
"^\*elisp macroexpansion\*$"
"^\*local variables\*$"
"^\*Compile-Log\*$"
"^\*Quail Completions\*$"
"^\*Occur\*$"
"^\*frequencies\*$"
"^\*compilation\*$"
"^\*Locate\*$"
"^\*Colors\*$"
"^\*tumme-display-image\*$"
"^\*SLIME Description\*$"
"^\*.* output\*$" ; tex compilation buffer
"^\*TeX Help\*$"
"^\*Shell Command Output\*$"
"^\*Async Shell Command\*$"
"^\*Backtrace\*$"))
(setq grb-temporary-window (nth 1 (window-list)))
(defun grb-special-display (buffer &optional data)
(let ((window grb-temporary-window))
(with-selected-window window
(switch-to-buffer buffer)
window)))
(setq special-display-function #'grb-special-display)
Encontrei o que eu precisava neste arquivo .emacs no github.