From c25f88c874f652ac4d6e873e3f1754def7a2c8bd Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Thu, 30 Apr 2020 17:02:24 -0400 Subject: [PATCH] Fix #2995: ligature & all-the-icons conflicts See domtronn/all-the-icons.el#174 --- core/core-ui.el | 16 ++++++++++++++-- modules/ui/pretty-code/+fira.el | 4 +--- modules/ui/pretty-code/+hasklig.el | 2 +- modules/ui/pretty-code/+iosevka.el | 4 +--- 4 files changed, 17 insertions(+), 9 deletions(-) diff --git a/core/core-ui.el b/core/core-ui.el index fe9adad88..9b590b668 100644 --- a/core/core-ui.el +++ b/core/core-ui.el @@ -54,6 +54,9 @@ examples. It is recommended you don't set specify a font-size, as to inherit `doom-font's size.") +(defvar doom-unicode-extra-fonts nil + "Fonts to inject into the unicode charset before `doom-unicode-font'.") + ;; ;;; Custom hooks @@ -481,6 +484,14 @@ windows, switch to `doom-fallback-buffer'. Otherwise, delegate to original all-the-icons-wicon all-the-icons-material all-the-icons-alltheicon) + :preface + (setq doom-unicode-extra-fonts + (list "Weather Icons" + "github-octicons" + "FontAwesome" + "all-the-icons" + "file-icons" + "Material Icons")) :config (cond ((daemonp) (defadvice! doom--disable-all-the-icons-in-tty-a (orig-fn &rest args) @@ -575,8 +586,9 @@ behavior). Do not set this directly, this is let-bound in `doom-init-theme-h'.") (set-face-attribute 'fixed-pitch-serif nil :font doom-serif-font)) (when doom-variable-pitch-font (set-face-attribute 'variable-pitch nil :font doom-variable-pitch-font)) - (when (and doom-unicode-font (fboundp 'set-fontset-font)) - (set-fontset-font t 'unicode doom-unicode-font nil 'prepend))) + (when (fboundp 'set-fontset-font) + (dolist (font (append doom-unicode-extra-fonts (doom-enlist doom-unicode-font))) + (set-fontset-font t 'unicode font nil 'prepend)))) ((debug error) (if (string-prefix-p "Font not available: " (error-message-string e)) (lwarn 'doom-ui :warning diff --git a/modules/ui/pretty-code/+fira.el b/modules/ui/pretty-code/+fira.el index 99e9a6d08..b92f30f3c 100644 --- a/modules/ui/pretty-code/+fira.el +++ b/modules/ui/pretty-code/+fira.el @@ -118,9 +118,7 @@ ("*" . #Xe16f))) (defun +pretty-code-setup-fira-ligatures-h () - (set-fontset-font t '(#Xe100 . #Xe16f) +pretty-code-fira-code-font-name) - (when (featurep 'doom-modeline) - (set-fontset-font t #Xe161 nil)) + (set-fontset-font t '(#Xe100 . #Xe16f) +pretty-code-fira-code-font-name nil 'prepend) (setq-default prettify-symbols-alist (append prettify-symbols-alist (mapcar #'+pretty-code--correct-symbol-bounds diff --git a/modules/ui/pretty-code/+hasklig.el b/modules/ui/pretty-code/+hasklig.el index 7b2136ca6..e9d040704 100644 --- a/modules/ui/pretty-code/+hasklig.el +++ b/modules/ui/pretty-code/+hasklig.el @@ -49,7 +49,7 @@ (defun +pretty-code-setup-hasklig-ligatures-h () - (set-fontset-font t '(#Xe100 . #Xe129) +pretty-code-hasklig-font-name) + (set-fontset-font t '(#Xe100 . #Xe129) +pretty-code-hasklig-font-name nil 'prepend) (setq-default prettify-symbols-alist (append prettify-symbols-alist (mapcar #'+pretty-code--correct-symbol-bounds diff --git a/modules/ui/pretty-code/+iosevka.el b/modules/ui/pretty-code/+iosevka.el index 35c62c0ce..9d52fd818 100644 --- a/modules/ui/pretty-code/+iosevka.el +++ b/modules/ui/pretty-code/+iosevka.el @@ -224,9 +224,7 @@ "Defines the character mappings for ligatures for Iosevka.") (defun +pretty-code-setup-iosevka-ligatures-h () - (set-fontset-font t '(#Xe100 . #Xe1cc) +pretty-code-iosevka-font-name) - (when (featurep 'doom-modeline) - (set-fontset-font t #Xe161 nil)) + (set-fontset-font t '(#Xe100 . #Xe1cc) +pretty-code-iosevka-font-name nil 'prepend) (setq-default prettify-symbols-alist (append prettify-symbols-alist +pretty-code-iosevka-font-ligatures)))