emacs/lisp/init-erc.el 1.3 K raw
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)