This page deals with ERC’s mode-line and header-line.
If you’ve ever found yourself reading the backlog of messages in an ERC channel buffer, and only after you’ve made it down to the ERC propmt you see you’ve been disconnected for a while, you might need more than the “ERC: CLOSED” text in the mode-line to give you a clue. The following code makes the header-line face red whenever the connection to the IRC server is closed.
;;; change header line face if disconnected
(defface erc-header-line-disconnected '((t (:foreground "black" :background "indianred"))) "Face to use when ERC has been disconnected.") (defun erc-update-header-line-show-disconnected () "Use a different face in the header-line when disconnected." (erc-with-server-buffer (cond ((erc-server-process-alive) 'erc-header-line) (t 'erc-header-line-disconnected)))) (setq erc-header-line-face-method 'erc-update-header-line-show-disconnected)
I have wrapped the below slightly more formally. It’s currently wrapped with my init stuff and not published as a seperate project or gist but may remain findable via gitlab permalink. -Corwin
Add this to your .emacs to see the number of opped/voiced/normal members of the current channel in the modeline:
(define-minor-mode ncm-mode "" nil (:eval (let ((ops 0) (voices 0) (members 0)) (maphash (lambda (key value) (when (erc-channel-user-op-p key) (setq ops (1+ ops))) (when (erc-channel-user-voice-p key) (setq voices (1+ voices))) (setq members (1+ members))) erc-channel-users) (format " %S/%S/%S" ops voices members))))