summaryrefslogtreecommitdiff
path: root/.config/emacs/modules/bd--irc.el
blob: c07a4fee29e8ae0db6f7a4d2401a61126d54e5e5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
;;; -*- lexical-binding: t; -*-
;;; Commentary:
;;; Code:


(require 'fill-column)
(use-package rcirc
  :bind (:map rcirc-mode-map
	 ("C-c j" . #'bd/rcirc-jump-net))
  :hook
  ((rcirc-mode . (lambda ()
                   (setq-local fill-column-desired-width 80)
                   (fill-column-mode)
                   (rcirc-omit-mode))))
  :config
  (setopt bd/rcirc-networks '("libera" "furnet"))
  (defun bd/rcirc-jump-net ()
    "Prompts the user for a irc network in BD/RCIRC-NETWORKS, then issues
ZNC to hop networks."
    (interactive)
    (let ((buffer (current-buffer)))
      (when (and (buffer-local-value 'rcirc-server-buffer buffer)
		 (eq (process-status (rcirc-buffer-process)) 'open))
	(let ((target (completing-read "Jump to: " bd/rcirc-networks)))
	  (if (stringp target)
	      (rcirc-send-string (rcirc-buffer-process)
				 "PRIVMSG" "*status" :
				 (concat "JUMPNETWORK " target)))))))
  (setopt rcirc-fill-column 80
          rcirc-omit-threshold 10
          rcirc-reconnect-delay 60
          rcirc-omit-responses '("JOIN" "PART" "QUIT" "NICK" "AWAY")
          rcirc-track-minor-mode t
          rcirc-track-ignore-server-buffer-flag t
          rcirc-server-alist
          '(("operationnull.com"
             :nick "Gondul"
             :user-name "Gondul"
             :port 6697
             :encryption tls))))


(provide 'bd--irc)
;;; bd--irc.el ends here