diff --git a/users/crumb/programs/emacs/modules/syd-ui.el b/users/crumb/programs/emacs/modules/syd-ui.el index e6dd7ba..45f2c42 100755 --- a/users/crumb/programs/emacs/modules/syd-ui.el +++ b/users/crumb/programs/emacs/modules/syd-ui.el @@ -1,7 +1,9 @@ ;;; syd-ui.el -*- lexical-binding: t; -*- +(require 'syd-prelude) + (defvar syd-fixed-pitch-font - (font-spec :family "VictorMono NF" :size 13) + (font-spec :family "VictorMono Nerd Font" :size 13) "Default fixed-pitch (monospace) font.") (defvar syd-variable-pitch-font @@ -13,9 +15,40 @@ :config (load-theme 'kanagawa-wave t)) +(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)))) + +(defun syd-configure-default-frame-h () + "Customise the default frame, primarily by adding to `default-frame-alist'." + ;; Maximise the frame. + ;; (add-to-list 'default-frame-alist '(fullscreen . maximized)) + ;; Disable the titlebar and borders (decorations). + (add-to-list 'default-frame-alist '(undecorated . t))) + +(let ((hook (if (daemonp) + 'server-after-make-frame-hook + 'after-init-hook))) + (add-hook hook #'syd-init-fonts-h) + (add-hook hook #'syd-init-fonts-h)) + +;; 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")) + (use-package emacs ;; Display (relative) line numbers only in prog-mode derivatives. - :hook ((prog-mode-hook . display-line-numbers-mode)) + :hook ((prog-mode-hook . display-line-numbers-mode) + ;; (on-init-ui-hook . syd-configure-default-frame-h) + ;; (on-init-ui-hook . syd-init-fonts-h) + ) :custom ((display-line-numbers-type 'relative) ;; Always ask "y/n"; never "yes/no". (use-short-answers t) @@ -36,27 +69,7 @@ ;; Disable the menu bar, scroll bar, and tool bar. (menu-bar-mode -1) (scroll-bar-mode -1) - (tool-bar-mode -1) - - ;; Configuring the defaults for newly-created frames: - ;; Set default font. - ;; (add-to-list 'default-frame-alist '(font . "VictorMono NF")) - ;; Disable the titlebar and borders (decorations). - (add-to-list 'default-frame-alist '(undecorated . t)) - ;; Maximise the window. - ;; (add-to-list 'default-frame-alist '(fullscreen . maximized)) - - ;; Set the default font... again? No! Earlier, we said "when creating a new - ;; frame use this font." This call instead defines the face used for - ;; "default" text to use this font. - (set-face-attribute 'default nil :font syd-fixed-pitch-font) - - (set-face-attribute 'variable-pitch nil :font syd-variable-pitch-font) - - ;; 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"))) + (tool-bar-mode -1)) (use-package persp-mode :disabled