;;; -*- lexical-binding: t; -*- ;;; Commentary: ;;; Code: (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 t modus-themes-prompts '(bold) modus-themes-headings '((0 variable-pitch regular 1.4) (1 variable-pitch regular 1.4) (2 variable-pitch regular 1.3) (3 variable-pitch regular 1.2) (t variable-pitch regular 1.2)) modus-themes-common-palette-overrides '((bg-main "#1a1c20") (bg-active bg-main) (fg-main "#cff0f6") (fg-active fg-main) (fg-mode-line-active "#a6accd") (bg-mode-line-active "#2b2d42") (fg-mode-line-inactive "#676E95") (bg-mode-line-inactive "#181c2d") (border-mode-line-active nil) (border-mode-line-inactive nil) (bg-tab-bar bg-main) (bg-tab-current bg-main) (bg-tab-other "#3b3d62") (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")))) (run-hooks 'modus-themes-post-load-hook) (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 Serif" :height 110) (set-face-attribute 'fixed-pitch nil :family "Iosevka" :height 120) (set-face-attribute 'default nil :family "Iosevka" :height 140) (set-face-attribute 'modus-themes-ui-variable-pitch nil :family "MedievalSharp" :height 130) (mapc (lambda (x) (set-face-attribute x nil :family "MedievalSharp")) '(modus-themes-heading-0 modus-themes-heading-1 modus-themes-heading-2 modus-themes-heading-3 modus-themes-heading-4 modus-themes-heading-5 modus-themes-heading-6 modus-themes-heading-7 modus-themes-heading-8)) (provide 'bd--themes) ;;; bd--themes.el ends here