spacemacs/layers/colors/README.org
syl20bnr 6b33031dc5 core: dotspacemacs-distribution, spacemacs-core layer and rename contrib
- Rename contrib directory to layers
- Add new variable dotspacemacs-distribution
- Move spacemacs layer to layers/!distribution
- New layer spacemacs-core in layers/!distribution
- User can now set dotspacemacs-distribution to spacemacs or
  spacemacs-core (default spacemacs)

spacemacs-core is very lightweight layer sufficient to build upon
spacemacs.
2015-09-07 23:44:43 -04:00

114 lines
3.4 KiB
Org Mode

#+TITLE: Colors contribution layer for Spacemacs
[[file:img/rainbow_dash.png]]
* Table of Contents :TOC@4:
- [[#description][Description]]
- [[#install][Install]]
- [[#enable-rainbow-identifiers][Enable rainbow-identifiers]]
- [[#enable-nyan-cat][Enable Nyan cat]]
- [[#key-bindings][Key bindings]]
- [[#rainbow-identifiers][Rainbow Identifiers]]
- [[#rainbow-mode][Rainbow Mode]]
- [[#nyan-mode][Nyan Mode]]
* Description
This layer colors your life with:
- [[https://github.com/Fanael/rainbow-identifiers][rainbow identifiers]] mode will colorize each variables and functions with an
almost unique color. The keywords and the declaration of function colors are
disabled in order to make the colorized variables and functions stand out.
- [[https://julien.danjou.info/projects/emacs-packages][rainbow mode]] displays strings representing colors with the color they
represent as background.
- [[https://github.com/syl20bnr/nyan-mode][nyan mode]] display a Nyan cat progress bar in the mode-line.
* Install
To use this contribution add it to your =~/.spacemacs=
#+BEGIN_SRC emacs-lisp
(setq-default dotspacemacs-configuration-layers '(colors))
#+END_SRC
** Enable rainbow-identifiers
To enable the package =rainbow-identifiers= set the variable
=colors-enable-rainbow-identifiers= to =t=:
#+BEGIN_SRC emacs-lisp
(setq-default dotspacemacs-configuration-layers '(
(colors :variables colors-enable-rainbow-identifiers t)))
#+END_SRC
Saturation and lightness of identifiers can be set per theme by adding
an entry in the variable =colors-theme-identifiers-sat&light=. This
is an alist where the key is a theme symbol and the value is a pair
=(saturation lightness)=.
Example:
#+BEGIN_SRC emacs-lisp
(push '(mytheme . (50 50)) colors-theme-identifiers-sat&light)
#+END_SRC
** Enable Nyan cat
To enable the package =nyan-mode= set the variable
=colors-enable-nyan-cat-progress-bar= to =t=:
#+BEGIN_SRC emacs-lisp
(setq-default dotspacemacs-configuration-layers '(
(colors :variables colors-enable-nyan-cat-progress-bar t)))
#+END_SRC
It may be handy to enable it only in a GUI, you can do it by using
a quasi-quoted list:
#+BEGIN_SRC emacs-lisp
(setq-default dotspacemacs-configuration-layers
=((colors :variables
colors-enable-nyan-cat-progress-bar ,(display-graphic-p))))
#+END_SRC
* Key bindings
The prefix associated with colors is ~C~.
** Rainbow Identifiers
[[file:img/theme-tweaks-python.png]]
=rainbow-identifiers= mode can be toggled on and off with: ~<SPC> t C i~
Note that the toggle is local to the current buffer.
The =saturation= and =lightness= of identifier colors can be adjusted live
with the micro-state:
| Key Binding | Description |
|-----------------+------------------------------------------|
| ~<SPC> C i s~ | initiate change =saturation= mini-mode |
| ~<SPC> C i l~ | initiate change =lightness= mini-mode |
| ~+~ | increase the =saturation= or =lightness= |
| ~-~ | decrease the =saturation= or =lightness= |
| ~=~ | reset the =saturation= or =lightness= |
| ~Any other key~ | leave the change mini-mode |
** Rainbow Mode
[[file:img/rainbow-mode.png]]
=rainbow-mode= mode can be toggled on and off with: ~<SPC> t C c~
** Nyan Mode
=nyan-mode= mode can be toggled on and off with: ~<SPC> t m n~
Note that the toggle is local to the current buffer.