spacemacs/layers/+fonts/unicode-fonts/README.org

69 lines
2.6 KiB
Org Mode

#+TITLE: unicode-fonts layer
#+TAGS: font|layer
* Table of Contents :TOC_5_gh:noexport:
- [[#description][Description]]
- [[#features][Features:]]
- [[#install][Install]]
- [[#ligature-fonts][Ligature Fonts]]
* Description
This layer adds support for [[https://github.com/rolandwalker/unicode-fonts][unicode-fonts]] package. It is recommended to
install the fonts listed in the [[https://github.com/rolandwalker/unicode-fonts#quickstart][Quickstart]] section of the unicode-fonts README.
** 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 [[https://github.com/mickeynp/ligature.el][ligatures.el]].
* 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.
If using [[https://github.com/d12frosted/homebrew-emacs-plus/][emacs-plus]], you can set =unicode-fonts-force-multi-color-on-mac= to
enable color emoji.
#+BEGIN_SRC elisp
(unicode-fonts :variables unicode-fonts-force-multi-color-on-mac t)
#+END_SRC
If you want ligature support Emacs must be built with =Harfbuzz= and a ligature
font must be installed and configured you can see the [[https://github.com/mickeynp/ligature.el#compatibility-and-version-requirements][upstream]] docs for a full
list of requirements. By default this is not enabled you can enable it with
=unicode-fonts-enable-ligatures=.
#+BEGIN_SRC elisp
(unicode-fonts :variables unicode-fonts-enable-ligatures t)
#+END_SRC
By default ligatures will be enabled in all programing modes.
You can enable ligatures for specific modes with
=unicode-fonts-ligature-modes= variable.
#+BEGIN_SRC elisp
(unicode-fonts :variables unicode-fonts-ligature-modes '(php-mode js-mode))
#+END_SRC
To enable only for text modes you can use =text-mode=
#+BEGIN_SRC elisp
(unicode-fonts :variables unicode-fonts-ligature-modes '(text-mode))
#+END_SRC
To configure the ligature set that gets used with your font there is a
=unicode-fonts-ligature-set= variable. To only enable the ligatures in
=if= statements you can limit the =unicode-fonts-ligature-set=
#+BEGIN_SRC elisp
(unicode-fonts :variables unicode-fonts-ligature-set '("==" "===" "!=" "!==" "||" "&&"))
#+END_SRC
* Ligature Fonts
- [[https://github.com/tonsky/FiraCode][Fira Code]]
- [[https://github.com/microsoft/cascadia-code][Cascadia Code]]
- [[https://github.com/be5invis/Iosevka/][Iosevka]]