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
Maximilian Wolff 689244821c
[erc] Refactor window purpose allocation to use official form
In the old form the wrong type of extension
was added, this prevented any reconfiguration
of purpose allocations in the dotfile.

Now the right type of allocation is used
allowing users to overwrite the config easily.
How this is done is described in
the purpose layer.
2020-06-26 01:29:10 +02:00
..
local converted cl to cl-lib 2019-12-14 20:20:51 +00:00
config.el [erc] Refactor window purpose allocation to use official form 2020-06-26 01:29:10 +02:00
funcs.el [erc] Refactor window purpose allocation to use official form 2020-06-26 01:29:10 +02:00
packages.el [erc] Refactor window purpose allocation to use official form 2020-06-26 01:29:10 +02:00
README.org Document new keybinding for erc layer 2020-01-02 23:08:10 +01: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 c Open the log file of the current channel
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