ea60cb2209
* Add support for font ligatures in Emacs 27 + * Move ligatures under unicode-fonts
69 lines
2.6 KiB
Org Mode
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 the [[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][upsteam]] docs for a full
|
|
list of requirements. By default this is not enabled you can enable it with
|
|
=unicode-fonts-enable-ligatures=.
|
|
|
|
#+BEGIN_SRC emacs-lisp
|
|
(unicode-fonts :variables unicode-fonts-enable-ligatures t)
|
|
#+END_SRC
|
|
|
|
|
|
|
|
By default when ligatures are enabled all modes are will have ligatures. You can
|
|
enable ligatures for specific modes with the =unicode-fonts-ligature-modes=
|
|
variable.
|
|
|
|
#+BEGIN_SRC emacs-lisp
|
|
(unicode-fonts :variables unicode-fonts-ligature-modes '(php-mode js-mode))
|
|
#+END_SRC
|
|
|
|
To enable for only programming modes you can use =prog-mode=
|
|
|
|
#+BEGIN_SRC emacs-lisp
|
|
(unicode-fonts :variables unicode-fonts-ligature-modes '(prog-mode))
|
|
#+END_SRC
|
|
|
|
To configure the ligature set that gets used with your font there is a
|
|
=unicode-fonts-ligature-setligature-set= variable. To only enable the ligatures
|
|
in =if= statements you can limit the =unicode-fonts-ligature-setligature-set=
|
|
|
|
#+BEGIN_SRC emacs-lisp
|
|
(unicode-fonts :variables unicode-fonts-ligature-set '("==" "===" "!=" "!==" "||" "&&"))
|
|
#+END_SRC
|
|
|
|
* Ligature Fonts
|
|
- [[https://github.com/tonsky/FiraCode][Fira Code]]
|