;;; -*- lexical-binding: t; -*- ;;; Commentary: ;;; Code: (defun bd/enable-variable-pitch-exempt () "Text modes to exempt from variable pitch fonts." (unless (derived-mode-p 'latex-mode 'mhtml-mode 'nxml-mode 'yaml-mode) (variable-pitch-mode 1))) (defvar bd/enable-variable-pitch-in-hooks '(text-mode-hook) "List of hook symbols to add `variable-pitch-mode' to.") (mapc (lambda (hook) (add-hook hook #'bd/enable-variable-pitch-exempt)) bd/enable-variable-pitch-in-hooks) (set-face-attribute 'variable-pitch nil :family "Dejavu Math TeX Gyre" :height 110) (set-face-attribute 'fixed-pitch nil :family "Terminus" :height 110) (set-face-attribute 'default nil :family "Terminus" :height 140) (use-package modus-themes :load-path (lambda () (expand-file-name "themes/" data-directory)) :demand t :init (load-theme 'modus-vivendi-tinted t) :hook ((modus-themes-post-load . bd/modus-set-faces)) :config ;; Disable all other themes to avoid awkward blending (defun bd/modus-set-faces (&rest _) "Blends the modeline with the echo area, and some other minor face changes." (modus-themes-with-colors (custom-set-faces `(eshell-prompt ((,c :foreground ,fg-main :background ,bg-prose-block-contents :height 1.1 :extend t))) `(tab-bar-tab ((,c :box (:line-width 1 :style released-button))))))) (setopt modus-themes-to-toggle '(modus-operandi-tinted modus-vivendi-tinted) modus-themes-mixed-fonts t modus-themes-italic-constructs t modus-themes-bold-constructs t modus-themes-variable-pitch-ui nil modus-themes-prompts '(bold) modus-themes-headings '((0 variable-pitch regular 1.3) (1 variable-pitch regular 1.2) (2 variable-pitch regular 1.1) (3 variable-pitch regular 1.0) (t variable-pitch regular 1.0)) modus-themes-common-palette-overrides '((bg-main "#1a1c30") (bg-active bg-main) (fg-main "#cff0f6") (fg-active fg-main) (fg-mode-line-active "#a6accd") (bg-mode-line-active "#3b3d62") (fg-mode-line-inactive "#676E95") (bg-mode-line-inactive "#282c3d") (border-mode-line-active nil) (border-mode-line-inactive nil) (bg-tab-bar bg-main) (bg-tab-current "#3b3d62") (bg-tab-other bg-main) (fg-heading-0 "#b2ebf2") (fg-heading-1 "#98fb98") (fg-heading-2 "#fa80e6") (fg-heading-3 "#ff7f50") (fg-heading-4 "#ffd700") (fg-prompt "#ca65e3") (bg-prompt unspecified) (bg-region "#3C435E") (fg-region "#fffff0") (fg-line-number-active fg-main) (fg-line-number-inactive "#a9a9a9") (bg-line-number-active unspecified) (bg-line-number-inactive "#292939") (fringe bg-main) (cursor "#b2ebf2") (fg-prose-verbatim "#af9fff") (bg-prose-block-contents "#222b42") (fg-prose-block-delimiter "#7C839E") (bg-prose-block-delimiter bg-prose-block-contents) (keyword "#4dd0e1") (builtin "#a490ff") (comment "#afa7b0") (string "#50f2ca") (fnname "#d8bfd8") (type "#89c6f9") (variable "#98fb98") (docstring "#f0e68c") (constant "#fa80e6")))) (load-theme 'modus-vivendi-tinted :no-confirm) (run-hooks 'modus-themes-post-load-hook) (provide 'bd--themes) ;;; bd--themes.el ends here