spacemacs/contrib/!irc/erc/packages.el

152 lines
4.6 KiB
EmacsLisp
Raw Normal View History

2015-03-25 03:34:19 +00:00
;;; packages.el --- erc Layer packages File for Spacemacs
;;
;; Copyright (c) 2012-2014 Sylvain Benner
;; Copyright (c) 2014-2015 Sylvain Benner & Contributors
;;
;; Author: Sylvain Benner <sylvain.benner@gmail.com>
;; URL: https://github.com/syl20bnr/spacemacs
;;
;; This file is not part of GNU Emacs.
;;
;;; License: GPLv3
2015-04-27 01:48:32 +00:00
(setq erc-packages
'(
erc
erc-hl-nicks
erc-image
erc-social-graph
erc-view-log
erc-yt
))
2015-03-25 03:34:19 +00:00
(when (system-is-mac)
(push 'erc-terminal-notifier erc-packages))
2015-03-25 03:34:19 +00:00
(defun erc/init-erc ()
"Initialize ERC"
(use-package erc
:defer t
:init
(evil-leader/set-key
"aie" 'erc
"aiE" 'erc-tls
"aii" 'erc-track-switch-buffer)
2015-04-27 01:48:32 +00:00
;; utf-8 always and forever
(setq erc-server-coding-system '(utf-8 . utf-8))
;; disable linum mode in erc
;; check if this will not be efficient
(defun no-linum (&rest ignore)
(when (or 'linum-mode global-linum-mode)
(linum-mode 0)))
(add-to-hooks 'no-linum '(erc-hook
erc-mode-hook
erc-insert-pre-hook))
:config
2015-03-25 03:34:19 +00:00
(progn
2015-04-27 01:48:32 +00:00
(use-package erc-autoaway
:config
(setq erc-auto-discard-away t
erc-autoaway-idle-seconds 600
erc-autoaway-use-emacs-idle t))
(erc-services-mode 1)
(defun erc-list-command ()
"execute the list command"
(interactive)
(insert "/list")
(erc-send-current-line))
(setq erc-kill-buffer-on-part t
erc-kill-queries-on-quit t
erc-kill-server-buffer-on-quit t)
2015-04-27 01:48:32 +00:00
(add-hook 'erc-connect-pre-hook (lambda (x) (erc-update-modules)))
(erc-track-mode t)
(setq erc-track-exclude-types '("JOIN" "NICK" "PART" "QUIT" "MODE")
erc-server-coding-system '(utf-8 . utf-8))
2015-04-27 01:48:32 +00:00
(setq erc-prompt (lambda () (concat "[" (buffer-name) "]")))
(require 'notifications)
(defun erc-global-notify (match-type nick message)
"Notify when a message is recieved."
(notifications-notify
:title nick
:body message
:app-icon "/home/io/.emacs.d/assets/spacemacs.svg"
:urgency 'low))
(add-hook 'erc-text-matched-hook 'erc-global-notify)
;; keybindings
(evil-leader/set-key-for-mode 'erc-mode
"md" 'erc-input-action
"mj" 'erc-join-channel
"mn" 'erc-channel-names
"ml" 'erc-list-command
"mp" 'erc-part-from-channel
"mq" 'erc-quit-server))))
2015-04-03 21:35:33 +00:00
2015-04-27 01:48:32 +00:00
(defun erc/init-erc-hl-nicks ()
(use-package erc-hl-nicks
:defer t
;; may need a hook ?
2015-04-27 01:48:32 +00:00
))
(defun erc/init-erc-social-graph ()
(use-package erc-social-graph
:init
(progn
;; does not exist ?
;; (erc-social-graph-enable)
(setq erc-social-graph-dynamic-graph t)
(evil-leader/set-key-for-mode 'erc-mode
"mD" 'erc-social-graph-draw))))
2015-04-27 01:48:32 +00:00
(defun erc/init-erc-yt ()
(use-package erc-yt
:init (eval-after-load 'erc '(add-to-list 'erc-modules 'youtube))))
2015-04-27 01:48:32 +00:00
(defun erc/init-erc-view-log ()
(use-package erc-view-log
:init
(progn
(eval-after-load 'erc '(add-to-list 'erc-modules 'log))
(setq erc-log-channels-directory
(expand-file-name
(concat spacemacs-cache-directory
"erc-logs")))
(unless (file-exists-p erc-log-channels-directory)
(make-directory erc-log-channels-directory)))
2015-04-27 01:48:32 +00:00
:config
;; ERC Logging
(progn
(add-to-list 'auto-mode-alist
`(,(format "%s/.*\\.[log|txt]"
(regexp-quote
(expand-file-name
erc-log-channels-directory))) . erc-view-log-mode))
;; Following https://raw.githubusercontent.com/Niluge-KiWi/erc-view-log/master/erc-view-log.el
;; installation instructions
(add-hook 'erc-view-log-mode-hook 'turn-on-auto-revert-tail-mode)
(defun spacemacs//erc-log-ms-documentation ()
"Return the docstring for the workspaces micro-state."
(concat
"\n[r] to reload the log file"
"[>], [<] to go to the next/prev mention"))
(spacemacs|define-micro-state erc-log
:doc (spacemacs//erc-log-ms-documentation)
:use-minibuffer t
:evil-leader "m."
:bindings
("r" erc-view-log-reload-file)
(">" erc-view-log-next-mention)
("<" erc-view-log-previous-mention)))))
2015-04-27 01:48:32 +00:00
(defun erc/init-erc-image ()
(use-package erc-image
:init (eval-after-load 'erc '(add-to-list 'erc-modules 'image))))
2015-04-27 01:48:32 +00:00
2015-04-03 21:35:33 +00:00
(defun erc/init-erc-terminal-notifier ())