diff --git a/.emacs.d/init.el b/.emacs.d/init.el index ddd66885..2db8560c 100644 --- a/.emacs.d/init.el +++ b/.emacs.d/init.el @@ -342,22 +342,29 @@ transmission-refresh-interval 1)) ;;; Theme -(if (ignore-errors (load-theme 'cyberpunk 'no-confirm)) - (progn - ;; REVIEW: Backport unmerged changes. See - ;; https://github.com/n3mo/cyberpunk-theme.el/issues/46. - (set-face-attribute 'lazy-highlight nil - :underline '(:color "yellow") - :foreground 'unspecified - :background 'unspecified) - (with-eval-after-load 'magit - (let ((cyberpunk-green-2 "#006400")) - (set-face-background 'diff-refine-added cyberpunk-green-2))) - (with-eval-after-load 'org - (set-face-attribute 'org-level-1 nil :height 1.1) - (set-face-attribute 'org-level-2 nil :height 1.0) - (set-face-attribute 'org-level-3 nil :height 1.0))) - (require 'theme-ambrevar)) +(cond + ((require 'doom-themes nil :noerror) + (load-theme 'doom-one :no-confirm)) + + ((ignore-errors (load-theme 'cyberpunk :no-confirm)) + ;; Backport unmerged changes. See + ;; https://github.com/n3mo/cyberpunk-theme.el/issues/46. + (set-face-attribute 'lazy-highlight nil + :underline '(:color "yellow") + :foreground 'unspecified + :background 'unspecified) + (with-eval-after-load 'magit + (let ((cyberpunk-green-2 "#006400")) + (set-face-background 'diff-refine-added cyberpunk-green-2))) + (with-eval-after-load 'org + (set-face-attribute 'org-level-1 nil :height 1.1) + (set-face-attribute 'org-level-2 nil :height 1.0) + (set-face-attribute 'org-level-3 nil :height 1.0))) + + (require 'theme-ambrevar)) +;;; Modeline. +(when (require 'doom-modeline nil :noerror) + (doom-modeline-mode)) ;;; Translator (when (require 'google-translate nil t) diff --git a/.emacs.d/lisp/init-evil.el b/.emacs.d/lisp/init-evil.el index 44c24107..d6655926 100644 --- a/.emacs.d/lisp/init-evil.el +++ b/.emacs.d/lisp/init-evil.el @@ -66,12 +66,15 @@ ;;; Change mode-line color by Evil state. (setq evil-default-modeline-color (cons (face-background 'mode-line) (or (face-foreground 'mode-line) "black"))) (defun ambrevar/evil-color-modeline () - (let ((color (cond ((minibufferp) evil-default-modeline-color) - ((evil-insert-state-p) '("#006fa0" . "#ffffff")) ; 00bb00 - ((evil-emacs-state-p) '("#444488" . "#ffffff")) - (t evil-default-modeline-color)))) - (set-face-background 'mode-line (car color)) - (set-face-foreground 'mode-line (cdr color)))) + ;; Doom themes already have support for Evil. + (if (string-prefix-p "doom" (symbol-name (car custom-enabled-themes))) + (remove-hook 'post-command-hook 'ambrevar/evil-color-modeline) + (let ((color (cond ((minibufferp) evil-default-modeline-color) + ((evil-insert-state-p) '("#006fa0" . "#ffffff")) ; 00bb00 + ((evil-emacs-state-p) '("#444488" . "#ffffff")) + (t evil-default-modeline-color)))) + (set-face-background 'mode-line (car color)) + (set-face-foreground 'mode-line (cdr color))))) (add-hook 'post-command-hook 'ambrevar/evil-color-modeline) (setq evil-mode-line-format nil)