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
John Practicalli Stevenson 92c010a207 [applications] refactor key bindings to layer categories
refactor key bindings for applications to provide additional room for
applications and use lower case characters.

Move calc-dispatch to `SPC a *`

Relates to #13503
2020-07-02 23:43:19 +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 [applications] refactor key bindings to layer categories 2020-07-02 23:43:19 +02:00
README.org [applications] refactor key bindings to layer categories 2020-07-02 23:43:19 +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 c i e Starts ERC
SPC a c i E Starts ERC via TLS/SSL
SPC a c i i Switch to next active ERC buffer
SPC a c 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