;; ========== Set the fill column ========== ;; from http//www.emacswiki.org/emacs/ErcFilling ;; (setq-default fill-column 86) ;; above is simpler though. more than 4 windows is ADHD, anyway ;; below makes filling window size specific ;; (make-variable-buffer-local 'erc-fill-column) ;; (add-hook 'window-configuration-change-hook ;; '(lambda () ;; (save-excursion ;; (walk-windows ;; (lambda (w) ;; (let ((buffer (window-buffer w))) ;; (set-buffer buffer) ;; (when (eq major-mode 'erc-mode) ;; (setq erc-fill-column (- (window-width w) 2))))))))) ;; (add-hook 'erc-mode-hook (lambda () (auto-fill-mode 0))) (global-set-key [tab] 'erc-pcomplete) (require 'erc) (setq erc-modules (quote ( autojoin button completion ;; fill ;; goodies irccontrols keep-place list log match menu move-to-prompt netsplit networks noncommands readonly ring scrolltobottom services spelling stamp track truncate))) (erc-update-modules) (evil-set-initial-state 'erc-mode 'normal) (setq erc-prompt-for-nickserv-password nil erc-autojoin-timing 'ident erc-current-highlight-type 'nick erc-prompt (lambda () (format "[%s]" (buffer-name))) erc-log-channels-directory "~/var/erclogs/" erc-generate-log-file-name-function 'erc-generate-log-file-name-with-date erc-log-channels t erc-save-buffer-on-part nil erc-save-queries-on-quit nil erc-log-write-after-send t erc-log-write-after-insert t erc-timestamp-right-column 78 ;; erc-track-shorten-aggressively 'max global-visual-line-mode t erc-track-exclude-types '("NICK" "JOIN" "LEAVE" "QUIT" "PART" "301" ; away notice "305" ; return from awayness "306" ; set awayness "324" ; modes "329" ; channel creation date "332" ; topic notice "333" ; who set the topic "353" ; Names notice )) ;; don't add newline at end of file (setq require-final-newline nil) ;; no need of the fill-column-indicator line (global-fci-mode 0) ;; don't show any of this (setq erc-hide-list '("JOIN" "PART" "QUIT" "NICK")) ;;("stealth.net" "#lofasz") check below notes on why this server ;; ; does not work (setq erc-autojoin-channels-alist '( ("oftc.net" "#geda" "#suckless" ;; "#pentadactyl" ) ( "freenode.net" "#haskell" ;; "##hardware" ;; "##electronics" ;; "#linuxcnc" ;; "#bash" ;; "#zsh" ;; "#vim" "#xmonad" ;; "#c" ;; "#crux" ;; "#rxvt-unicode" ;; "#agda" ;; "#idris" ;; "#diycnc" ;; "#hurd" ;; "#kernel" ;; "#syslinux" ;; "#linuxcnc-devel" ;; "#openscad" ;; "#cam" ;; "#freecad" ;; "#crux-devel" ;; "#heekscad" ;; "##microchip" ;; "#laenpcborder" ;; "##pic" ;; "#openssh" ;; "#dragora" ;; "#tmux" "#gentoo" ;; "#gentoo-dev-help" "#gentoo-sunrise" ;; "#emc" ;; "##prolog" ;; "#emacs" "#evil-mode" ;; "#lisp" ) )) ;; stealth server connects to a random irc server and that screws ;; up autojoining as pattern matching cannot be done ;; documented under the section ;; Problems with networks using servers without a common domain ;; at http://www.emacswiki.org/emacs/ErcAutoJoin ;; (erc :server "irc.stealth.net" :port 6667 :nick "joe9" ) ;; seul.org redirects to oftc.net, just connect directly to oftc.net ;; (erc :server "irc.seul.org" :port 6667 :nick "joe9_" ) (erc :server "chat.freenode.net" :port 6667 :nick "joe9" ) (erc :server "irc.oftc.net" :port 6667 :nick "joe9" ) (setq erc-nick-uniquifier "_" erc-nick "joe9" erc-server-reconnect-attempts 4 erc-server-reconnect-timeout 5 erc-keywords nil erc-header-line-format "%t(%m): %o") (defun cofi/erc-ignore-lines () (let ((s (buffer-substring-no-properties (point-min) (point-max)))) (when (string-match-p (rx (or "has joined" "has quit" "has changed mode" "is now known as" "has left")) s) (goto-char (point-min)) (insert (format-time-string erc-timestamp-format)) (put-text-property (point-min) (point-max) 'invisible t)))) (add-hook 'erc-insert-modify-hook #'cofi/erc-ignore-lines) (defadvice erc-send-current-line (before send-no-blank-line activate) "to avoid empty lines being sent" (save-excursion (goto-char (point-max)) (let ((real-end (progn (skip-chars-backward " \t\n") (while (get-text-property (point) 'read-only) (forward-char 1)) (point)))) (delete-forward-char (- (point-max) real-end))))) (erc-autojoin-mode t) (erc-services-mode 1) ;; (erc-spelling-mode 1) ;; above seems to be causing sluggishness (erc-spelling-mode nil) (erc-track-mode 1) (erc-log-enable) ;; as I am opening this window, by default ;; (sr-speedbar-close) ;;; Truncate buffers so they don't hog core. (setq erc-truncate-buffer-on-save t) ;;; kill buffer ;; Kill buffers for channels after /part (setq erc-kill-buffer-on-part t) ;; Kill buffers for private queries after quitting the server (setq erc-kill-queries-on-quit t) ;; Kill buffers for server messages after quitting the server (setq erc-kill-server-buffer-on-quit t)