#+TITLE: Tabs layer

#+TAGS: emacs|layer|spacemacs

* Table of Contents                     :TOC_5_gh:noexport:
- [[#description][Description]]
  - [[#features][Features:]]
- [[#install][Install]]
- [[#hide-tabs][Hide tabs]]
- [[#key-bindings][Key bindings]]

* Description
This layer adds support for tabs. Implementation is done using [[https://github.com/ema2159/centaur-tabs][Centaur Tabs]].

** Features:
- Sets up tabs using Centaur tabs as backend
- Optionally auto hide tabs after delay

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

* Hide tabs
You can set hooks for buffers in which it isn't desired to have tabs by
customizing =centaur-tabs-hide-tabs-hooks=

Alternatively you can set ~tabs-auto-hide~ to ~t~ to auto hide tabs after some
delay ~tabs-auto-hide-delay~ via the :variables keyword in your dotfile:

#+BEGIN_SRC emacs-lisp
  (tabs :variables
        tabs-auto-hide t
        tabs-auto-hide-delay 3)
#+END_SRC

* Key bindings

| Key binding | Description                                           |
|-------------+-------------------------------------------------------|
| ~C-{~       | Select the previous available tab                     |
| ~C-}~       | Select the next available tab                         |
| ~C-M-{~     | Move current tabe to left                             |
| ~C-M-}~     | Move current tabe to right                            |
| ~C-c t s~   | Display a list of current buffer groups using Counsel |
| ~C-c t p~   | Group buffer tabs by projectile                       |
| ~C-c t g~   | Group buffer tabs by groups                           |
