Theming layer
Table of ContentsClose
1. Description
This layer allows for a simple way of modifying themes.
1.1. Features:
- Modify themes from your
.spacemacs. - Tweak face attributes and other aspects of themes.
- Includes three additional layer variables for tweaking headings.
2. Install
To use this configuration layer, add it to your ~/.spacemacs. You will need to
add theming to the existing dotspacemacs-configuration-layers list in this
file.
3. Usage
To use this layer, set the value of theming-modifications (a good place is
inside your .spacemacs in dotspacemacs/user-init()).
It should be a list of the following form:
((theme1 (face1 attributes...) (face2 attributes...) ...) (theme2 (face1 attributes...) (face2 attributes...) ...) ...)
3.1. Example
(defun dotspacemacs/user-init () (setq theming-modifications '((monokai ;; Font locking (font-lock-comment-face :slant italic) (web-mode-html-attr-name-face :inherit font-lock-variable-name-face :foreground 'unspecified) ;; Modeline (powerline-active1 :box (:color "#999999" :line-width 1 :style released-button) :background "#5a5a5a")))))
Source: gist
This will apply the given attributes to the relevant faces whenever the
appropriate theme is loaded. To update without changing the theme, use SPC SPC
spacemacs/update-theme.
4. Attributes
See face attributes in the Emacs manual for more information. Some of the more common attributes you might want to tweak are the following:
:inherit- the name of a face to inherit attributes from
:foregroundand:background- Hexadecimal color strings
:height- typically a floating point number (1.0 gives the same height as the underlying face)
:weight- typically
boldornormal :underline- typically
nilort :slant- typically
oblique,italicornormal :box- set to
tto draw a box around characters in the foreground
5. Faces
To see a list over all loaded faces and what they look like, use SPC SPC
list-faces-display. You can also use SPC h d c (describe character) on a
character to see its face.
Some of the most common faces to modify are the syntactical elements:
font-lock-builtin-facefont-lock-comment-delimiter-facefont-lock-comment-facefont-lock-constant-facefont-lock-doc-facefont-lock-function-name-facefont-lock-keyword-facefont-lock-preprocessor-facefont-lock-string-facefont-lock-type-facefont-lock-variable-name-facefont-lock-warning-face
As well as the mode-line faces for the active and inactive windows:
powerline-active1powerline-active2powerline-inactive1powerline-inactive2mode-linemode-line-inactive
6. Headers
This layer includes three additional layer variables for tweaking headings.
Allowed values are a list of themes in which the given effect should happen, or
the symbol all to apply it on all themes.
theming-headings-inherit-from-default- inherits all headings from the default face to avoid non-monospaced fonts
theming-headings-same-size- sets the
:heightattribute to one on all headings to give them the same size as the rest of the text theming-headings-bold- sets the
:weightattribute to bold on all headings
7. Example
An example of how to set the default font colour to be black in a custom theme leuven:
(defun dotspacemacs/user-init () ; custom theme modification - overriding default font colour (setq-default theming-modifications '((leuven (default :foreground "#000000") )) ) )