+ Add documentation + Add support for doom-unicode-font as default candidate for non-latin glyphs. Fixes https://github.com/hlissner/doom-emacs/issues/3329
30 lines
1.2 KiB
EmacsLisp
30 lines
1.2 KiB
EmacsLisp
;;; ui/unicode/autoload.el -*- lexical-binding: t; -*-
|
|
|
|
;;;###autoload
|
|
(defun +unicode--add-doom-unicode-font ()
|
|
"Include doom-unicode font as the top suggested font for unicode glyphs for all blocks"
|
|
(when doom-unicode-font
|
|
(let ((doom-unicode-font-family (plist-get (font-face-attributes doom-unicode-font) :family)))
|
|
(dolist (unicode-block unicode-fonts-block-font-mapping)
|
|
(push doom-unicode-font-family (cadr unicode-block))))))
|
|
|
|
;;;###autoload
|
|
(add-hook! 'doom-init-ui-hook
|
|
(defun +unicode-init-fonts-h ()
|
|
"Set up `unicode-fonts' to eventually run; accommodating the daemon, if
|
|
necessary."
|
|
(setq-default bidi-display-reordering t
|
|
doom-unicode-font nil)
|
|
(if (display-graphic-p)
|
|
(+unicode-setup-fonts-h (selected-frame))
|
|
(add-hook 'after-make-frame-functions #'+unicode-setup-fonts-h))))
|
|
|
|
;;;###autoload
|
|
(defun +unicode-setup-fonts-h (&optional frame)
|
|
"Initialize `unicode-fonts', if in a GUI session."
|
|
(when (and frame (display-graphic-p frame))
|
|
(with-selected-frame frame
|
|
(require 'unicode-fonts)
|
|
;; NOTE will impact startup time on first run
|
|
(+unicode--add-doom-unicode-font)
|
|
(unicode-fonts-setup))))
|