#+TITLE: Colors layer [[file:img/rainbow_dash.png]] * Table of Contents :TOC_4_gh:noexport: - [[#description][Description]] - [[#install][Install]] - [[#configuration][Configuration]] - [[#colorize-identifiers][Colorize identifiers]] - [[#enable-nyan-cat][Enable Nyan cat]] - [[#key-bindings][Key bindings]] - [[#colorize-identifiers-1][Colorize 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 all identifiers (christmas tree mode :-)) with an almost unique color. - [[https://github.com/ankurdave/color-identifiers-mode][color-identifiers]] mode will colorize only identifiers recognized as variables. - [[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 configuration layer, add it to your =~/.spacemacs=. You will need to add =colors= to the existing =dotspacemacs-configuration-layers= list in this file. * Configuration ** Colorize identifiers To colorize some identifiers by default in programming language buffers, set the layer variables =colors-colorize-identifiers= to either =variables= or =all=. =variables= will colorize only words recognized as variables, =all= will colorize all the words. #+BEGIN_SRC emacs-lisp (setq-default dotspacemacs-configuration-layers '( (colors :variables colors-colorize-identifiers 'all))) #+END_SRC When using the value =all= the Saturation and lightness of 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)=. For now saturation and lightness are not supported with the =variables= value. 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~. ** Colorize Identifiers | Key Binding | Description | |-------------+-----------------------------------------------------------------| | ~SPC C a~ | colorize all idendifiers in current buffer | | ~SPC C C-a~ | globally colorize all idendifiers and all subsequent buffers | | ~SPC C v~ | colorize all variables only in current buffer | | ~SPC C C-v~ | globally colorize all variables only and all subsequent buffers | The =saturation= and =lightness= of identifier colors can be adjusted live when colorizing all the identifiers with the transient-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.