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
:foreground
and:background
- Hexadecimal color strings
:height
- typically a floating point number (1.0 gives the same height as the underlying face)
:weight
- typically
bold
ornormal
:underline
- typically
nil
ort
:slant
- typically
oblique
,italic
ornormal
:box
- set to
t
to 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-face
font-lock-comment-delimiter-face
font-lock-comment-face
font-lock-constant-face
font-lock-doc-face
font-lock-function-name-face
font-lock-keyword-face
font-lock-preprocessor-face
font-lock-string-face
font-lock-type-face
font-lock-variable-name-face
font-lock-warning-face
As well as the mode-line faces for the active and inactive windows:
powerline-active1
powerline-active2
powerline-inactive1
powerline-inactive2
mode-line
mode-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
:height
attribute to one on all headings to give them the same size as the rest of the text theming-headings-bold
- sets the
:weight
attribute 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") )) ) )