Linux, musical road-dogging, and daily life by Paul W. Frields
Emacs and ERC.

Emacs and ERC.

Dear Lazyweb: I’m trying out Emacs as an IRC client (via ERC) and realize that I could probably use some tuning to make it work well. I’m wondering whether anyone in the Fedora community has a set of scripts they use to do some of the following:

  • Auto-login to several networks and start up channels in some of them
  • Produce notifications via D-Bus or libnotify

OK, I haven’t done a ton of investigation yet, too much else on my plate so I have to get a Round Tuit when I can. If you have a set of goodies that work well for you, let me know.

Comments such as “use another client” will be cheerfully deleted. ? This is just an experiment, since I regularly use other clients like irssi and xchat-gnome.


  1. Yep, I use ERC too. Here’s a selection from my .emacs. For notifications with libnotify, see //

    (require 'erc)
    (require 'erc-stamp)
    (erc-timestamp-mode 1)

    ;; Create new windows for new private messages.
    (setq erc-auto-query t)

    ;; Ignore these changes on the modeline notifications
    (setq erc-track-exclude-types ‘(“JOIN” “NICK” “PART” “QUIT”))

    (defun erc-register-connection (command server port nick)
    “Create interactive command command', for connecting to an IRC server. The
    command uses interactive mode if passed an argument."
    (fset command
    (lambda (arg) (interactive “p”)
    (if (= 1 arg)
    (erc ,server ,port ,nick erc-user-full-name t)
    (erc-select ,server ,port ,nick)))))

    (erc-register-connection ‘erc-fn “” 6667 “cjb”)
    (erc-register-connection ‘erc-fn “” 6667 “cjb”)

    (setq erc-fill-column 78)
    (setq erc-user-full-name “Your Name”)
    (setq erc-max-buffer-size 200000)

    (require ‘erc-truncate)
    (defvar erc-insert-post-hook)
    (add-hook ‘erc-insert-post-hook
    (setq erc-truncate-buffer-on-save t)
    (setq erc-prompt “>>”)
    (setq erc-prompt-for-password nil)
    (setq erc-prompt-interactive-input t)
    (setq erc-hide-timestamps nil)
    (add-hook ‘erc-insert-modify-hook ‘erc-fill)
    (add-hook ‘erc-send-modify-hook ‘erc-fill)

    (erc-select :server “” :port 6667)
    (erc-select :server “” :port 6667)

    ;; Join some channels.
    (defun freenode-join (channelname)
    (with-current-buffer “”
    (erc-cmd-JOIN channelname)))

    (defun oftc-join (channelname)
    (with-current-buffer “”
    (erc-cmd-JOIN channelname)))

    (freenode-join “#channel1”)
    (freenode-join “#channel2”)
    (oftc-join “#channel3”)
    (oftc-join “#channel4”)

  2. adam stokes

    ‘(erc-autoaway-idle-method (quote user))
    ‘(erc-autoaway-mode t)
    ‘(erc-autojoin-channels-alist (quote ((“” “#augeas” “fedora”))))
    ‘(erc-autojoin-mode t)
    ‘(erc-hide-list (quote (“JOIN” “KICK” “NICK” “PART” “QUIT” “MODE”)))
    ‘(erc-join-buffer (quote bury))
    ‘(erc-kill-buffer-on-part t)
    ‘(erc-nick “stokachu”)
    ‘(erc-prompt “moo>”)
    ‘(erc-quit-reason-various-alist nil)
    ‘(erc-server “”)
    ‘(erc-user-full-name “adam stokes”)
    ;; custom-set-faces was added by Custom.
    ;; If you edit it by hand, you could mess it up, so be careful.
    ;; Your init file should contain only one such instance.
    ;; If there is more than one, they won’t work right.
    ‘(erc-input-face ((t (:foreground “orange”))))
    ‘(erc-my-nick-face ((t (:background “black” :foreground “orange” :weight bold)))))

Comments are closed.