| 1 | ;;; init-erc.el -*- lexical-binding: t; -*- |
| 2 | |
| 3 | ;; soju password: read from `pass' (gpg-encrypted), cached in memory per session |
| 4 | (defvar my/soju-pass-entry "irc/soju") |
| 5 | (defvar my/soju--password nil) |
| 6 | |
| 7 | (defun my/soju-password (&rest _) |
| 8 | (or my/soju--password |
| 9 | (setq my/soju--password |
| 10 | (or (auth-source-pass-get 'secret my/soju-pass-entry) |
| 11 | (user-error "No soju password in pass entry %s" my/soju-pass-entry))))) |
| 12 | |
| 13 | (defun my/soju-user (client &optional network) |
| 14 | "Build soju username for CLIENT on NETWORK (default libera)." |
| 15 | (format "stevedylandev_/%s@%s" (or network "libera") client)) |
| 16 | |
| 17 | (with-eval-after-load 'erc |
| 18 | (setq erc-server "138.197.115.89" |
| 19 | erc-port 6697 |
| 20 | erc-nick "stevedylandev_" |
| 21 | erc-user-full-name "Steve Simkins" |
| 22 | erc-prompt-for-password nil |
| 23 | erc-track-shorten-start 8 |
| 24 | erc-kill-buffer-on-part t |
| 25 | erc-kill-queries-on-quit t |
| 26 | erc-hide-list '("JOIN" "PART" "QUIT") |
| 27 | erc-nicks-skip-nicks '("ChanServ" "NickServ")) |
| 28 | (add-to-list 'erc-modules 'nicks) |
| 29 | (erc-update-modules)) |
| 30 | |
| 31 | (defun my/erc-soju () |
| 32 | "Connect ERC to soju over TLS." |
| 33 | (interactive) |
| 34 | (erc-tls :server "138.197.115.89" |
| 35 | :port 6697 |
| 36 | :nick "stevedylandev_" |
| 37 | :user (my/soju-user "erc-benson") |
| 38 | :password (my/soju-password))) |
| 39 | |
| 40 | (provide 'init-erc) |