Table of Contents

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 '("==" "===" "!=" "!==" "||" "&&")))

Author: root

Created: 2024-06-14 Fri 18:50

Validate