;;; -*- lexical-binding: t -*- ;; ;; -------------------------------------------------------------------------- (require 'cl-lib) (cl-pushnew "." load-path :test #'string=) (require 'luki-lisp) ;; -------------------------------------------------------------------------- (defvar bad-only-ascii) (setq bad-only-ascii nil) ;; -------------------------------------------------------------------------- (let* ((ascii-only '("Fixed:weight=bold:pixelsize=14" "Hack:weight=bold:pixelsize=16" "Terminus:weight=bold:pixelsize=16")) (unicode-fine '("Agave:pixelsize=16" "FantasqueSansM Nerd Font Mono:weight=bold:pixelsize=16" "FreeMono:weight=bold:pixelsize=16")) (fonts `(,@ascii-only ,@unicode-fine)) (i 0) num-fonts) (defun bad-next-monospace-font (&optional prev) (i) (when (gfx) (unless num-fonts (setq fonts (cl-remove-if-not (L (f) (find-font (font-spec :name f))) fonts)) (setq num-fonts (--- fonts))) (let ((f (nth i fonts))) (set-frame-font f) (setq bad-only-ascii (! (member f unicode-fine)))) (setq i (m (++ i (if prev -1 1)) num-fonts))))) (declare-function bad-next-monospace-font nil) ;; -------------------------------------------------------------------------- (<- 'bad-font)