;;; erc (require 'erc) ;; Load authentication info from an external source. Put sensitive ;; passwords and the like in here. ;;; (load "~/.emacs.d/emacs/.erc-auth") (require 'erc-services) (require 'erc-match) (erc-services-mode 1) (setq erc-prompt-for-nickserv-password nil) ;; (setq erc-nickserv-passwords ;; `((freenode (("vu3rdd" . ,freenode-nick-pass))) ;; (debian (("vu3rdd" . ,debian-nick-pass))))) (setq erc-autojoin-channels-alist '((".*\\.freenode.net" "#plan9" "#notmuch") (".*\\.oftc.net" "#debian-in" "#debian" "#debian-devel"))) (global-set-key "\C-cef" (lambda () (interactive) (erc :server "irc.freenode.net" :port "8000" :nick "vu3rdd"))) (global-set-key "\C-ced" (lambda () (interactive) (erc :server "irc.debian.org" :port "6668" :nick "vu3rdd"))) (setq erc-user-full-name "Ramakrishnan Muthukrishnan") (setq erc-email-userid "vu3rdd@gmail.com") (require 'erc-track) (erc-track-mode 1) (setq erc-track-switch-direction 'importance) ;; Only track my nick(s) (defadvice erc-track-find-face (around erc-track-find-face-promote-query activate) (if (erc-query-buffer-p) (setq ad-return-value (intern "erc-current-nick-face")) ad-do-it)) (setq erc-keywords '("vu3rdd" "rkrishnan")) (setq erc-track-exclude-types '("JOIN" "NICK" "PART" "QUIT" "MODE" "324" "329" "332" "333" "353" "477")) (global-set-key (kbd "C-c SPC") 'erc-track-switch-buffer) ;; erc notification via notify (defun clean-message (s) (setq s (replace-regexp-in-string "'" "'" (replace-regexp-in-string "\"" """ (replace-regexp-in-string "&" "&" (replace-regexp-in-string "<" "<" (replace-regexp-in-string ">" ">" s))))))) (defun call-libnotify (matched-type nick msg) (let* ((cmsg (split-string (clean-message msg))) (nick (first (split-string nick "!"))) (msg (mapconcat 'identity (rest cmsg) " "))) (shell-command-to-string (format "notify-send -t 5000 -u critical '%s says:' '%s'" nick msg)))) (add-hook 'erc-text-matched-hook 'call-libnotify) ;; Enable logging (setq erc-log-insert-log-on-open nil) (setq erc-log-channels t) (setq erc-log-channels-directory "~/.erc/logs/") (setq erc-save-buffer-on-part t) (setq erc-save-queries-on-quit nil erc-log-write-after-send t erc-log-write-after-insert t) (defadvice save-buffers-kill-emacs (before save-logs (arg) activate) (save-some-buffers t (lambda () (when (and (eq major-mode 'erc-mode) (not (null buffer-file-name))))))) (add-hook 'erc-insert-post-hook 'erc-save-buffer-in-logs)