Took quite a bit of trial and error, but here was the eventual solution:
Create .authinfo.gpg file in a directory of your choice
Add the following to the .authinfo.gpg file (for IRC login)
machine irc.freenode.net login <your-irc-nick> port nickserv password <your-irc-pw>
Add the following to your emacs .init file
Set the dir where .authinfo....
The problem (that I see) is this line:
(setq rcirc-authinfo '(("freenode" nickserv jd:irc-nickname jd:irc-password)))
If you C-h v rcirc-authinfo, the value will be ("freenode" nickserv jd:irc-nickname jd:irc-password). I'm not sure if rcirc accepts symbols for nickname and password, but I bet not.
The problem is, the quote ' quotes everything, including ...
There are two aspects: is there an erc process running in the buffer? and if there is such a process, is there an established network connection to the server?
If you look in erc.el, you will see how erc itself determines the process status to add to the mode line (line 6438 in the file):
(let ( ...
(process-status (cond ((and (...
I ended up patching the erc-login function to use the SASL extension. I first installed this package https://github.com/joseph-gay/erc-sasl and added this to my init file:
(add-to-list 'erc-sasl-server-regexp-list "irc\\.freenode\\.net")
(defun erc-login ()
"Perform user authentication at the IRC server. (PATCHED)"
(erc-log (format "...
So what I found out was, it was in fact because of my network/wifi port. I didn't think it was at the time only because I could still connect to things over the internet through emacs (i.e. package-refresh-contents for melpa), and I could still connect to the internet normally/connect to irc using other applications.
The wifi error I got was: Double NAT ...
Entirely up to you, really. I don't think there is any agreed "best practice" here. Your concerns are perfectly valid, so it's certainly not unreasonable to isolate distinct use-cases as separate Emacs instances (especially if you are less-willing to restart some of them than others). If you're happy with how you can switch between them, I'd suggest you ...
First, make sure you're running (rcirc-notify-add-hooks) in your config.
It seems that rcirc-notify simply does not allow itself to work when window-system is nil. So if you are running emacs in a terminal, it will never notify you.
You can get around this with some advice:
(defadvice rcirc-notify (around spoof-window-system activate)
In Emacs 22 or later just type M-x irc to start rcirc. Using the default configuration will connect to Freenode and join #rcirc. If you don't want to use the default configuration, type C-u M-x irc instead. Otherwise you can configure rcirc in your init file.