This repository has been archived on 2024-10-22. You can view files and clone it, but cannot push or open issues or pull requests.
spacemacs/layers/+chat/erc
Miciah Masters 552fd5953c Update references to macOS
Apple renamed "Mac OS X" to "OS X" in 2012 and then to "macOS" in 2016.
Update references to use the current name.
2019-10-13 12:04:40 +02:00
..
local
config.el
funcs.el Make custom layout configs consistent 2018-01-09 23:01:34 -05:00
packages.el Layer +chat/erc: Add spell checking and mIRC colors 2019-07-31 12:14:06 +02:00
README.org Update references to macOS 2019-10-13 12:04:40 +02:00

ERC layer

Description

Layer for ERC IRC chat.

Features:

  • Highlight nicks (using erc-hl-nicks)
  • Image inline support (using erc-image)
  • Logging to ~/.emacs.d/.cache/erc-logs and ViewLogMode for viewing logs (using erc-view-log)
  • YouTube videos Thumbnails inline (using erc-yt)
  • Social Graph for ERC messages (using erc-social-graph)
  • Optional SASL authentication via the variable erc-enable-sasl-auth (using erc-sasl)
  • D-BUS notifications via the variable erc-enable-notifications
  • Completion of Emojis using company-emoji (still needs a way of showing, either using the emoji layer or having a proper font) 👏

Install

Layer

To use this configuration layer, add it to your ~/.spacemacs. You will need to add erc to the existing dotspacemacs-configuration-layers list in this file.

macOS

It's recommended to install the terminal-notifier gem so that you get notifications via the macOS Notification Center.

Social graph

erc-social-graph needs graphviz to be installed on your system.

Disable notifications

By default D-BUS notifications are enabled, to disable them set the layer variable erc-enable-notifications to nil.

  (setq-default dotspacemacs-configuration-layers
               '((erc :variables erc-enable-notifications nil)))

Enable SASL authentication

To enable SASL authentication set the layer variable erc-enable-sasl-auth to non nil.

  (setq-default dotspacemacs-configuration-layers
               '((erc :variables erc-enable-sasl-auth t)))

Default servers

You can define the default servers in the ERC custom layout by setting the variable erc-server-list. Setting :ssl non nil will connect with erc-tls. You can also use <leader>aiD to connect to your default servers outside the custom layout.

  (setq-default dotspacemacs-configuration-layers
               '((erc :variables
                      erc-server-list
                      '(("irc.freenode.net"
                         :port "6697"
                         :ssl t
                         :nick "some-user"
                         :password "secret")
                        ("irc.myworkirc.net"
                         :port "1234"
                         :nick "some-suit"
                         :password "hunter2")))))

Security Note

You should not store your passwords in the clear in your .spacemacs, and that goes double if you version your config file. ERC allows for a number of ways of protecting this information.

First, ERC will check your ~/.authinfo.gpg, looking for lines like

  machine <irc.server.url> login <yournick> password <yourpassword> port <portnumber>

You can omit :password in this case.

You could also set an environment variable (or otherwise secret variable) and read that in :password.

Key bindings

Key binding Description
SPC a i e Starts ERC
SPC a i E Starts ERC via TLS/SSL
SPC a i i Switch to next active ERC buffer
SPC a i D Start ERC with default servers
SPC m b Switch between ERC buffers
SPC m d Interactively input a user action and send it to IRC.
SPC m D Draw Social Graph using erc-social-graph
SPC m j Join a channel, executes the /join command
SPC m n Run "/names #channel" in the current channel.
SPC m l Run the /list command
SPC m p Part from the channel
SPC m q Quit server

Note: If you want to connect securely to an IRC server, you must run erc-tls command on SPC a i E instead of the erc command.

Spacemacs Layout Support

ERC buffers are added automatically to the default layout for ERC controlled by the variable erc-spacemacs-layout-name (defaults to "@ERC") and the default binding ("E") is controlled by erc-spacemacs-layout-binding