;;; -*- 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'.")

(defvar syd-sitelen-pona-font
  (font-spec :family "sitelen seli kiwen mono juniko"))

(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)))
  (set-fontset-font
   t '(#xF1900 . #xF19FF)
   syd-sitelen-pona-font))

(let ((hook-point (if (daemonp)
                'server-after-make-frame-hook
              'after-init-hook)))
  (add-hook hook-point #'syd-init-fonts-h -10))

(provide 'syd/fonts)
