-- Leo's gemini proxy

-- Connecting to flexibeast.space:1965...

-- Connected

-- Sending request

-- Meta line: 20 text/gemini;lang=en_AU

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

-- Response ended

-- Page fetched on Tue May 21 18:19:29 2024