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")
))
)
)