ERC with soju: update
A couple of months ago i wrote about setting up soju on OpenBSD (it was pretty straightforward) and trying to get Emacs' ERC working with it (shenanigans were required):
“Setting up the soju IRC bouncer on OpenBSD, and using it with Emacs' ERC”
However, i recently started using Emacs 29.1 (rc1), and i'm pleased to say that using ERC with soju has - at least for me! - moved into the “pretty straightforward” category:
- Enable the new `sasl` ERC module, and set the auth mechanism appropriately:
(require 'erc-sasl)
(add-to-list 'erc-modules 'sasl)
(erc-update-modules)
(setopt erc-sasl-mechanism 'plain)
- Create some variables for later use, including an assoc list of networks and their associated nicks:
(setq erc-soju-server "[server]")
(setq erc-soju-port "[port]")
(setq erc-soju-networks '(("[network 1]" . "[network 1 nick]")
("[network 2]" . "[network 2 nick]"))
- Use _both_ ‘:user’ and ‘:nick’ when calling ‘erc-tls’; use ‘:id’ to uniquely identify each network being accessed via soju; and ask for [soju username]'s password:
(defun erc-soju-start ()
"Start an ERC session with soju. Requires Emacs 29.1 and greater."
(interactive)
(let ((choice
(completing-read
"[Soju] Network? "
(mapcar #'car erc-soju-networks))))
(erc-tls :server erc-soju-server
:port erc-soju-port
:id (concat erc-soju-server "/" choice)
:user (concat "[soju username]/" choice)
:nick (cdr (assoc choice erc-soju-networks))
:password (read-passwd "Password? "))))
And .... that seems to be it. :-) Seems to be working smoothly so far. Thanks to those - primarily "J.P.", if i understand correctly - who made this happen!
☙
🏷 ict
Glossary
Gemlog Home