Commit | Line | Data |
---|---|---|
4c05c418 AB |
1 | ;;; bandali-erc.el --- bandali's ERC setup -*- lexical-binding: t; -*- |
2 | ||
3 | ;; Copyright (C) 2018-2020 Amin Bandali | |
4 | ||
5 | ;; Author: Amin Bandali <bandali@gnu.org> | |
6 | ;; Keywords: tools | |
7 | ||
8 | ;; This program is free software; you can redistribute it and/or modify | |
9 | ;; it under the terms of the GNU General Public License as published by | |
10 | ;; the Free Software Foundation, either version 3 of the License, or | |
11 | ;; (at your option) any later version. | |
12 | ||
13 | ;; This program is distributed in the hope that it will be useful, | |
14 | ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
15 | ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
16 | ;; GNU General Public License for more details. | |
17 | ||
18 | ;; You should have received a copy of the GNU General Public License | |
19 | ;; along with this program. If not, see <https://www.gnu.org/licenses/>. | |
20 | ||
21 | ;;; Commentary: | |
22 | ||
23 | ;; My ERC setup for IRC. It uses my fork of ZNC.el. | |
24 | ||
25 | ;;; Code: | |
26 | ||
39c1c073 | 27 | (use-package erc |
5361eed6 | 28 | :bind ("C-c w e" . erc-switch-to-buffer-other-window) |
39c1c073 | 29 | :custom |
b0e197de | 30 | (erc-auto-query 'bury) |
e3e01ce1 AB |
31 | (erc-autojoin-domain-only nil) |
32 | (erc-format-nick-function 'erc-format-@nick) | |
39c1c073 AB |
33 | (erc-join-buffer 'bury) |
34 | (erc-lurker-hide-list '("JOIN" "PART" "QUIT")) | |
35 | (erc-nick "bandali") | |
36 | (erc-prompt "erc>") | |
37 | (erc-rename-buffers t) | |
38 | (erc-server-reconnect-attempts 5) | |
39 | (erc-server-reconnect-timeout 3) | |
40 | :config | |
5361eed6 AB |
41 | (declare-function erc-message "erc-backend" |
42 | (message-command line &optional force)) | |
43 | (declare-function erc-default-target "erc") | |
44 | (declare-function erc-current-nick "erc") | |
39c1c073 AB |
45 | (defun erc-cmd-OPME () |
46 | "Request chanserv to op me." | |
47 | (erc-message "PRIVMSG" | |
48 | (format "chanserv op %s %s" | |
49 | (erc-default-target) | |
50 | (erc-current-nick)) nil)) | |
5361eed6 | 51 | (declare-function erc-cmd-DEOP "erc" (&rest people)) |
39c1c073 AB |
52 | (defun erc-cmd-DEOPME () |
53 | "Deop myself from current channel." | |
54 | (erc-cmd-DEOP (format "%s" (erc-current-nick)))) | |
55 | (add-to-list 'erc-modules 'keep-place) | |
56 | (add-to-list 'erc-modules 'notifications) | |
57 | (add-to-list 'erc-modules 'smiley) | |
58 | (add-to-list 'erc-modules 'spelling) | |
5361eed6 | 59 | (declare-function erc-update-modules "erc") |
39c1c073 AB |
60 | (erc-update-modules)) |
61 | ||
62 | (use-package erc-fill | |
63 | :after erc | |
64 | :custom | |
65 | (erc-fill-column 77) | |
66 | (erc-fill-function 'erc-fill-static) | |
67 | (erc-fill-static-center 18)) | |
68 | ||
e3e01ce1 AB |
69 | (use-package erc-match |
70 | :after erc | |
b0e197de AB |
71 | :config |
72 | (set-face-attribute | |
73 | 'erc-pal-face nil | |
74 | :foreground 'unspecified | |
75 | :weight 'unspecified | |
76 | ;; :inherit 'font-lock-string-face | |
77 | ;; :background (face-attribute 'font-lock-string-face :background) | |
78 | :background "#ffffed") | |
e3e01ce1 | 79 | :custom |
b0e197de | 80 | (erc-pal-highlight-type 'message) |
e3e01ce1 AB |
81 | (erc-pals |
82 | '("aindilis" "blackbeard" "bremner" "brettgilio" "civodul" "dto" | |
83 | "ggoes" "jrasata" "jxself" "mplsCorwin" "quiliro" "rindolf" "rwp" | |
84 | "sachac" "technomancy"))) | |
85 | ||
39c1c073 AB |
86 | (use-package erc-pcomplete |
87 | :after erc | |
88 | :custom | |
89 | (erc-pcomplete-nick-postfix ", ")) | |
90 | ||
91 | (use-package erc-track | |
92 | :after erc | |
93 | :bind (("C-c a e t d" . erc-track-disable) | |
5361eed6 AB |
94 | ("C-c a e t e" . erc-track-enable) |
95 | ("C-c a e M-a" . erc-track-switch-buffer-other-window) | |
96 | :map erc-mode-map | |
97 | ("M-a" . erc-track-switch-buffer)) | |
39c1c073 AB |
98 | :custom |
99 | (erc-track-enable-keybindings nil) | |
100 | (erc-track-exclude-types '("JOIN" "MODE" "NICK" "PART" "QUIT" | |
101 | "324" "329" "332" "333" "353" "477")) | |
102 | (erc-track-position-in-mode-line t) | |
103 | (erc-track-priority-faces-only 'all) | |
e3e01ce1 AB |
104 | (erc-track-shorten-function nil) |
105 | (erc-track-showcount t)) | |
39c1c073 AB |
106 | |
107 | (use-package erc-hl-nicks | |
108 | :after erc) | |
109 | ||
39c1c073 AB |
110 | (use-package znc |
111 | :bind (("C-c a e e" . znc-erc) | |
112 | ("C-c a e a" . znc-all)) | |
113 | :config | |
114 | (let ((pwd (let ((auth (auth-source-search :host "znca"))) | |
115 | (cond | |
116 | ((null auth) (error "Couldn't find znca's authinfo")) | |
117 | (t (funcall (plist-get (car auth) :secret))))))) | |
118 | (setq znc-servers | |
6b09fc8a AB |
119 | `(("znc.emacsconf.org" 6697 t |
120 | ((freenode "bandali/freenode" ,pwd))) | |
121 | ("znc.emacsconf.org" 6697 t | |
b0e197de AB |
122 | ((oftc "bandali/oftc" ,pwd))) |
123 | ("znc.emacsconf.org" 6697 t | |
124 | ((tildechat "bandali/tildechat" ,pwd))))))) | |
39c1c073 AB |
125 | |
126 | (provide 'bandali-erc) | |
4c05c418 | 127 | ;;; bandali-erc.el ends here |