unicode-fonts layer
Table of ContentsClose
1. Description
This layer adds support for unicode-fonts package. It is recommended to install the fonts listed in the Quickstart section of the unicode-fonts README.
1.1. Features:
- Display Unicode glyphs using the best available font.
- Easily override glyphs or sections of glyphs.
- Display color emoji on both the macOS port version of Emacs and emacs-plus
(with
unicode-fonts-force-multi-color-on-mac
set to non nil). - Enable support for font ligature in Emacs 27 + via ligatures.el.
2. Install
To use this configuration layer, add it to your ~/.spacemacs
. You will need to
add unicode-fonts
to the existing dotspacemacs-configuration-layers
list in
this file.
(setq-default dotspacemacs-configuration-layers '(unicode-fonts))
If using emacs-plus, you can set unicode-fonts-force-multi-color-on-mac
to
enable color emoji.
(setq-default dotspacemacs-configuration-layers '(unicode-fonts :variables unicode-fonts-force-multi-color-on-mac t))
3. Configuration
If you want ligature support Emacs must be built with Harfbuzz
and a ligature
font must be installed and configured. You can see the upstream docs for a full
list of requirements. By default this is not enabled, and you can enable it with
unicode-fonts-enable-ligatures
.
(setq-default dotspacemacs-configuration-layers '(unicode-fonts :variables unicode-fonts-enable-ligatures t))
By default ligatures will be enabled in all programming modes. You can enable
ligatures for specific modes with unicode-fonts-ligature-modes
variable. For
example, to enable ligatures only in PHP and Javascript files:
(setq-default dotspacemacs-configuration-layers '(unicode-fonts :variables unicode-fonts-enable-ligatures t unicode-fonts-ligature-modes '(php-mode js-mode)))
Or to enable ligatures only for text files:
(setq-default dotspacemacs-configuration-layers '(unicode-fonts :variables unicode-fonts-enable-ligatures t unicode-fonts-ligature-modes '(text-mode)))
To configure the ligature set that gets used with your font there is a
unicode-fonts-ligature-set
variable. For example To only enable the ligatures
in if
statements you can set the unicode-fonts-ligature-set
as:
(setq-default dotspacemacs-configuration-layers '(unicode-fonts :variables unicode-fonts-enable-ligatures t unicode-fonts-ligature-set '("==" "===" "!=" "!==" "||" "&&")))