rcirc is a next generation InternetRelayChat client. It blends seamlessly with the rest of Emacs, it’s tight, fast, and doesn’t light up like a christmas tree. rcirc also has sane defaults. There is little or no reason to customize it because it does what you want by default (except that many people still do).
rcirc is part of GNU Emacs since release 22.0.
If you want to chat about rcirc, the place is #rcirc on freenode.
M-x irc should take you there.
You can override these settings in your InitFile or use
C-u M-x rcirc to set server, port, username and channels.
You also can define a key to start rcirc for you:
(global-set-key (kbd "C-c I") 'irc)
Please also consider visiting these pages in order to getting started:
Emacs 24 has SSL support out of the box but rcirc doesn’t use it by default. Here’s how to set it up:
(setq rcirc-server-alist '(("irc.freenode.net" :port 6697 :encryption tls :channels ("#rcirc" "#emacs" "#emacswiki"))))
If you are on Windows, you can download a precompiled binary. Make sure the
bin directory is on your path. Test it by calling
‘eshell’. This is what you would expect:
Welcome to the Emacs shell ~ $ gnutls-cli No hostname specified
gnutls.c:  Note that the security level of the Diffie-Hellman key exchange has been lowered to 256 bits and this may allow decryption of the session data
If you’re getting this warning, add the following to your init file:
(setq gnutls-min-prime-bits 1024)
There’s an explanation on the mailing list.
/color– color each nick using a separate color
/retake– send RECOVER and RELEASE messages to NickServ
/reconnect– quit and reconnect immediately for users waking their laptop from sleep after the server has closed the connection
/unpounce– store messages for people and send them when they join one of the channels you’re on
/all– run a command such as
/awayfor all connections
/sv– show rcirc version
/help– list rcirc commands and show their documentation
/occur– find stuff in all your rcirc buffers
rcirc-activities/switch-to-bufferto see and switch to buffers with activities, using ido.
(setq rcirc-switch-to-buffer-function 'elscreen-find-and-goto-by-buffer). This has a problem though: automatic switching after some actions (joining a channel, for example) will stop working. One possible solution is:
(defun rcirc-switch-buffer-or-screen (buffer) (if (elscreen-find-screen-by-buffer buffer) (elscreen-find-and-goto-by-buffer buffer) (switch-to-buffer buffer))) (setq rcirc-switch-to-buffer-function 'rcirc-switch-buffer-or-screen)
rcirc can highlight the channels in the mode line only when your nick is mentioned in them. Use the following code snippet:
(rcirc-track-minor-mode 1) (setq neale/rcirc-ignored-channels '( "#emacs" "#guile" "#guix" "#lisp" "#scheme" "#rcirc" )) (defun neale/rcirc-print-function (process sender response target text) (if (not (eq target nil)) (with-current-buffer (rcirc-get-buffer process target) (cond ((and (equal sender (rcirc-nick process)) (equal response "JOIN")) (rcirc-omit-mode) (when (member target neale/rcirc-ignored-channels) (setq rcirc-ignore-buffer-activity-flag t))))))) (add-hook 'rcirc-print-functions 'neale/rcirc-print-function)
VincentFoley asks: could anyone describe the differences between rcirc and ERC from an end-user point of view?
AlexSchroeder replies: For beginners, there should be no significant differences. After all, both claim to be easy-to-use IRC clients. The differences begin when customizing or hacking it. Neither of the two has introduced radical changes to the user interface.
I used ERC for a while, but I was not very fond of the 20 odd files required in my elisp directory, so I switched to rcirc and haven’t looked back since. It does everything I need, the (very clean) code is contained in a single file, I’m very happy!
Hope it helps.