#+TITLE: Slack layer
#+HTML_HEAD_EXTRA:
#+CAPTION: logo
# The maximum height of the logo should be 200 pixels.
[[img/slack.png]]
* Table of Contents :TOC_4_org:noexport:
- [[Description][Description]]
- [[Install][Install]]
- [[Key bindings][Key bindings]]
* Description
This layer provides an interface to the Slack chat service via the emacs-slack package. Where possible, this layer aims to reuse keybindings from the IRC packages in Spacemacs.
* Install
To use this contribution add it to your =~/.spacemacs=
#+begin_src emacs-lisp
(setq-default dotspacemacs-configuration-layers '(slack))
#+end_src
Follow the instructions in the [[https://github.com/yuya373/emacs-slack/blob/master/README.md][emacs-slack]] package for obtaining your client ID, client secret, and token.
Then, in your ~dotspacemacs/user-init()~ set the following:
#+begin_src emacs-lisp
(setq slack-enable-emoji t)
(slack-register-team
:name "emacs-slack"
:default t
:client-id "something"
:client-secret "secret!"
:token "token"
:subscribed-channels '(general slackbot)
)
#+end_src
* Key bindings
| Key Binding | Description |
|---------------+--------------------------|
| ~ a C s~ | (Re)connects to Slack |
| ~ a C j~ | Join a channel |
| ~ a C d~ | Direct message someone |
| ~ m j~ | Join a channel |
| ~ m d~ | Direct message someone |
| ~ m p~ | Load previous messages |
| ~ m e~ | Edit message at point |
| ~ m q~ | Quit Slack |
| ~ m m~ | Embed mention of user |
| ~ m c~ | Embed mention of channel |
The following bindings are provided to mimic bindings in the official Slack client.
| Key Binding | Description |
|-------------+--------------------------|
| ~ m k~ | Join a channel |
| ~ m @~ | Embed mention of user |
| ~ m #~ | Embed mention of channel |
In insert state, one can also use ~@~ and ~#~ directly without the leader key prefix.