to post messages and comments.

Чтобы окончательно самоутвердиться покажу как можно добавить условия выборки параметров из конфига: ideone.com
Функция test не скомпилируется, упадет с сообщением что в конфиге нет необходимых для ее работы параметров. Аналогично добавляется типизация, сколько угодно сложные вложенные условия, получение конфигурационных параметров из внешних источников и так далее.

Со временем вырабатывается привычка расположения фреймов и буферов в них. Потому каждый раз при старте емакса я повторяю одни и те же операции. Но почему бы не автоматизировать этот процесс? Ведь это же Емакс! Например, создадим два фрейма, разделим красивенько один для джаббера и переключимся на второй.

Записываем макрос:
C-( C-x 3 C-u 61 C-x } C-x o C-x C-j C-r C-x o C-x 5 2 C-x )

Вызываем edit-last-kbd-macro. Получаем буфер для редактирования макроса:

--- BEGIN ---
;; Keyboard Macro Editor. Press C-c C-c to finish; press C-x k RET to cancel.
;; Original keys: C-x 3 C-u 61 C-x } C-x o C-x C-j C-r C-x o C-x 5 2 C-x 5 2 C-x 5 2

Command: last-kbd-macro
Key: none

Macro:

C-x 3 ;; split-window-horizontally
C-u 61 C-x } ;; enlarge-window-horizontally
C-x o ;; other-window
C-x C-j C-r ;; jabber-switch-to-roster-buffer
C-x o ;; other-window
C-x 5 2 ;; make-frame-command
--- END ---

Число 61 подгонять индивидуально.
Теперь можно смело дефайнить нашу функцию:
(defun my/init-windows ()
(execute-kbd-macro (kbd "
C-x 3 ;; split-window-horizontally
C-u 61 C-x } ;; enlarge-window-horizontally
C-x o ;; other-window
<f12> ;; jabber-switch-to-roster-buffer
C-x o ;; other-window
C-x 5 2 ;; make-frame-command
")))