Files
sydnix/modules/home/users/msyds/emacs/lisp/syd/fonts.el
2025-11-23 04:06:39 -07:00

36 lines
1.3 KiB
EmacsLisp
Executable File

;;; -*- lexical-binding: t; -*-
(defvar syd-fixed-pitch-font
(font-spec :family "VictorMono Nerd Font" :size 13)
"Default fixed-pitch (monospace) font.")
(defvar syd-variable-pitch-font
(font-spec :family "IBM Plex Serif" :size 17)
"Default variable-pitch font.")
(defvar syd-alt-fixed-pitch-font
(font-spec :family "JuliaMono" :size 16)
"A monospace font secondary to `syd-fixed-pitch-font'.")
(defun syd-init-fonts-h ()
"Loads `syd-fixed-pitch-font' and `syd-variable-pitch-font'."
(dolist (map `((default . ,syd-fixed-pitch-font)
(fixed-pitch . ,syd-fixed-pitch-font)
(variable-pitch . ,syd-variable-pitch-font)))
(pcase-let ((`(,face . ,font) map))
(set-face-attribute face nil
:width 'normal :weight 'normal
:slant 'normal :font font))))
(let ((hook-point (if (daemonp)
'server-after-make-frame-hook
'after-init-hook)))
(add-hook hook-point #'syd-init-fonts-h -10))
;; Use JuliaMono as a fallback for some glyphs that VictorMono does not cover.
(dolist (char-range '((#x0250 . #x02af) ; IPA extensions
(#x2200 . #x22FF))) ; Mathematical operators
(set-fontset-font "fontset-default" char-range "JuliaMono"))
(provide 'syd/fonts)