e0b751bee3
Replace push with add-to-list in layer init functions and related code. Modify spacemacs|add-toggle to check for and update an existing toggle in spacemacs-toggles and only create a new toggle if none already existed. Replace a conditional push onto erc-packages with use of :toggle. When initializing which-key, set which-key-replacement-alist to its default or customized setting before adding all the Spacemacs replacements. We want to keep the stock replacements but avoid adding duplicates of the Spacemacs replacements. Replace the emacs-lisp-mode-hook lambda with a named function to avoid adding duplicate hooks (which can add duplicate definitions of the evil-surround pair). |
||
---|---|---|
.. | ||
local | ||
config.el | ||
funcs.el | ||
packages.el | ||
README.org |
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
andViewLogMode
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.
OS X
It's recommended to install the terminal-notifier gem so that you get notifications via the OS X 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