Ну шо, поцоны, на приём работает:

(defun jabber-chat-print-encrypted (xml-data who mode)
"Decrypts and prints encrypted message"
(let ((foundp nil))
(dolist (x (jabber-xml-node-children xml-data))
(when (and (listp x) (eq (jabber-xml-node-name x) 'x)
(string= (jabber-xml-get-xmlns x) "jabber:x:encrypted"))
(setq foundp t)

(when (eql mode :insert)
(let* ((enc-b64-multi (car (split-string (caddr x) "\n=")))
(enc-b64 (replace-regexp-in-string "\n" "" enc-b64-multi))
(enc (base64-decode-string enc-b64))
(context (epg-make-context epa-protocol))
(dec (epg-decrypt-string context enc)))
(insert "\n"
(jabber-propertize
"encrypted message: " 'face 'jabber-chat-prompt-system)
(format "%s" (jabber-unhex dec)))))))
foundp))

Немного переусложнённо, но блин, спасибо XEP-ам

Чтобы постоянно не спрашивал пароли — gpg-agent в помощь

Пока как-то так:
(add-to-list 'jabber-chat-printers 'jabber-chat-print-encrypted)
(defun jabber-chat-print-encrypted (xml-data who mode)
"Print encrypted part of the message "
(message "detect encrypted")
(let ((foundp nil))
(dolist (x (jabber-xml-node-children xml-data))
(when (and (listp x) (eq (jabber-xml-node-name x) 'x)
(string= (jabber-xml-get-xmlns x) "jabber:x:encrypted"))
(setq foundp t)

(when (eql mode :insert)
(let ((enc (caddr x)))
(insert "\n"
(jabber-propertize
"encrypted message: " 'face 'jabber-chat-prompt-system)
(format "%s" enc))))))
foundp))

осталось декриптануть

лажа какая-то, при подключении только к акку на jabber.ru пишет "Authentication succeeded", но контакты с сервера не загружает. Если потом поключиться к любому другому — выползают контакты из обоих ростеров.
Да, к другим серверам (gmail.com и jabber.se) подключается нормально.

1. если убить буфер с конфой (groupchat), то останешься вошедшим в нее (сообщения будут приходить), но не понятно, как в нее перейти, если нет новых сообщений (кроме jabber-groupchat-join). может таки можно как-то?
2. как сделать, чтобы сохранялись логи конфы?
стоит так и логов конференций в ~/.emacs-jabber не видно:
(setq jabber-history-enabled t)
(setq jabber-use-global-history nil)
3. какие есть готовые (или как это лучше сделать) способы нотификации о пришедшем сообщении? проигрывание звука &| popup с текстом сообщения &| мигающая иконка в трее (xfce). все что связано с X'ами должно уметь запускаться отдельно и после старта емакса, ибо daemon (и jabber.el запускается и коннектится при его старте).
4. кто какие версии юзает? app-emacs/emacs-jabber-0.8.0 из гентовых портов — это сильно старье?

Выяснил, почему криво работала раскраска чатов с ванильным 0.8.0 — в нём всё еще старая версия jabber-truncate-top. Грязно пофиксил через ignore-errors (хотя имхо надо фиксить сам jabber.el на предмет увеличения версии в git).
Брать у меня на гитхабах.

ЗА прокси жизнь есть:

./socat TCP4-LISTEN:31337,reuseaddr,fork PROXY:proxy.localnet:allports.jabber.ru:443,proxyport=8080

(setq (jabber-account-list (quote (("nick@jabber.ru/home" (:network-server . "localhost") (:port . 31337))))))

(setq url-proxy-services '(("no_proxy" . "local.com")
("http" . "proxy.localnet:8080")))

как-то так...

Вот что-то я не понимаю. Когда-то недавно прицепил к емаксу juick.el, чтобы удобнее, значится, в жуйке было общаться. Однако вот не захотел он у меня тогда работать почему-то. Ну и ладно, думаю, пускай себе лежит. Сейчас случайно вышел из емакса (но у меня сервер запущен, то есть отсоединил только клиента), быстренько набираю emacsclient, открываю буфер жуйка, а у меня тут всё красивенько так разоформлено. Интересно...

(setq outline-regexp "\[[ 0-9:\\-]+\]")

и включаем outline-minor-mode :)

теперь можно ходить по постам как по заголовкам, и, что самое главное — сворачивать-разворачивать

достаточно примитивно, но лучше чем ничего

jabber.el начал чудить и периодически «терять» соединение с сервером. Собственно, это стало последней каплей, после которой я наконец-то снёс нахуй Emacs. Пошёл, собрал Psi+, попробовал попользоваться этим кутишным вырвиглазием, победил даже невнятное поведение панелек в ростере в однооконном режиме, но всё равно не смог ужиться с ним — чтобы не блевать с его внешности и, частично, процесса непосредственно использования, надо сильно потерпеть при длительной работе напильником. В общем, я говорю «Psi+ == Tkabber на Qt» и запиливаю Gajim. Возможно, как-нибудь вернусь на mcabber.