]> git.rkrishnan.org Git - .emacs.d.git/blob - emacs/my-erc.el
remove toolbar and menubar
[.emacs.d.git] / emacs / my-erc.el
1 ;;; erc
2 (require 'erc)
3
4 ;; Load authentication info from an external source.  Put sensitive
5 ;; passwords and the like in here.
6 ;;; (load "~/.emacs.d/emacs/.erc-auth")
7
8 (require 'erc-services)
9 (require 'erc-match)
10 (erc-services-mode 1)
11
12 (setq erc-prompt-for-nickserv-password nil)
13
14 ;; (setq erc-nickserv-passwords
15 ;;       `((freenode     (("vu3rdd" . ,freenode-nick-pass)))
16 ;;      (debian       (("vu3rdd" . ,debian-nick-pass)))))
17
18 (setq erc-autojoin-channels-alist
19       '((".*\\.freenode.net" "#plan9" "#notmuch")
20         (".*\\.oftc.net" "#debian-in" "#debian" "#debian-devel")))
21
22 (global-set-key "\C-cef" (lambda () (interactive)
23                            (erc :server "irc.freenode.net" :port "8000"
24                                 :nick "vu3rdd")))
25 (global-set-key "\C-ced" (lambda () (interactive)
26                            (erc :server "irc.debian.org" :port "6668"
27                                 :nick "vu3rdd")))
28
29 (setq erc-user-full-name "Ramakrishnan Muthukrishnan")
30 (setq erc-email-userid "vu3rdd@gmail.com")
31
32 (require 'erc-track)
33 (erc-track-mode 1)
34 (setq erc-track-switch-direction 'importance)
35
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"))
40     ad-do-it))
41
42 (setq erc-keywords '("vu3rdd" "rkrishnan"))
43
44 (setq erc-track-exclude-types '("JOIN" "NICK" "PART" "QUIT" "MODE"
45                                 "324" "329" "332" "333" "353" "477"))
46
47 (global-set-key (kbd "C-c SPC") 'erc-track-switch-buffer)
48
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 "<" "&lt;"
55   (replace-regexp-in-string ">" "&gt;" s)))))))
56
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))))
63
64 (add-hook 'erc-text-matched-hook 'call-libnotify)
65
66 ;; Enable logging
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)