4 ;; Load authentication info from an external source. Put sensitive
5 ;; passwords and the like in here.
6 (load "~/.emacs.d/emacs/.erc-auth")
8 (require 'erc-services)
12 (setq erc-prompt-for-nickserv-password nil)
14 (setq erc-nickserv-passwords
15 `((freenode (("vu3rdd" . ,freenode-nick-pass)))
16 (debian (("vu3rdd" . ,debian-nick-pass)))))
18 (setq erc-autojoin-channels-alist
19 '((".*\\.freenode.net" "#racket" "#haskell")
20 (".*\\.oftc.net" "#debian-arm" "#debian" "#debian-devel")))
22 (global-set-key "\C-cef" (lambda () (interactive)
23 (erc :server "irc.freenode.net" :port "8000"
25 (global-set-key "\C-ced" (lambda () (interactive)
26 (erc :server "irc.debian.org" :port "6668"
29 (setq erc-user-full-name "Ramakrishnan Muthukrishnan")
30 (setq erc-email-userid "vu3rdd@gmail.com")
34 (setq erc-track-switch-direction 'importance)
36 ;; Only track my nick(s)
37 (defadvice erc-track-find-face (around erc-track-find-face-promote-query activate)
38 (if (erc-query-buffer-p)
39 (setq ad-return-value (intern "erc-current-nick-face"))
42 (setq erc-keywords '("vu3rdd" "rkrishnan"))
44 (setq erc-track-exclude-types '("JOIN" "NICK" "PART" "QUIT" "MODE"
45 "324" "329" "332" "333" "353" "477"))
47 (global-set-key (kbd "C-c SPC") 'erc-track-switch-buffer)
49 ;; erc notification via notify
50 (defun clean-message (s)
51 (setq s (replace-regexp-in-string "'" "'"
52 (replace-regexp-in-string "\"" """
53 (replace-regexp-in-string "&" "&"
54 (replace-regexp-in-string "<" "<"
55 (replace-regexp-in-string ">" ">" s)))))))
57 (defun call-libnotify (matched-type nick msg)
58 (let* ((cmsg (split-string (clean-message msg)))
59 (nick (first (split-string nick "!")))
60 (msg (mapconcat 'identity (rest cmsg) " ")))
61 (shell-command-to-string
62 (format "notify-send -t 5000 -u critical '%s says:' '%s'" nick msg))))
64 (add-hook 'erc-text-matched-hook 'call-libnotify)
67 (setq erc-log-insert-log-on-open nil)
68 (setq erc-log-channels t)
69 (setq erc-log-channels-directory "~/.erc/logs/")
70 (setq erc-save-buffer-on-part t)
71 (setq erc-save-queries-on-quit nil
72 erc-log-write-after-send t
73 erc-log-write-after-insert t)
74 (defadvice save-buffers-kill-emacs (before save-logs (arg) activate)
75 (save-some-buffers t (lambda () (when (and (eq major-mode 'erc-mode)
76 (not (null buffer-file-name)))))))
77 (add-hook 'erc-insert-post-hook 'erc-save-buffer-in-logs)