 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;;; Color themes
 
-;; Load the official Radian color scheme.
-(when radian-customize-tweak-colors
-  ;; Passing `t' to `load-theme' suppresses the confirmation message.
-  (load-theme 'leuven t))
+;; Handle color themes that require installing packages or other
+;; additional configuration.
+
+(pcase radian-color-theme
+  ((or 'doom-one 'doom-molokai)
+   (use-package doom-themes
+     :demand t
+     :config
+
+     ;; Comments are invisible if I don't do the following.
+     (setq doom-enable-brighter-comments t)
+
+     ;; It's impossible to tell which window is active if I don't do
+     ;; this.
+     (add-hook 'minibuffer-setup-hook 'doom-brighten-minibuffer))))
+
+;; Load the appropriate color scheme as specified in
+;; `radian-color-theme'.
+
+(when radian-color-theme
+  (load-theme radian-color-theme 'no-confirm))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;;; Mode line


;; Store customizations made by custom.el into ~/.emacs.d/init.local.el
;; instead of this file.
(setq custom-file (concat user-emacs-directory "init.local.el"))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;; ElDoc

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;; User-specific configuration variables

;;; Here we are using the defvar-nil-setq pattern described in [1],
;;; which makes it so that changes to these declarations will be
;;; picked up by a reload of init.el (M-RET r).
;;;
;;; [1]: http://ergoemacs.org/emacs/elisp_defvar_problem.html

(defgroup radian nil
  "Customize your Radian Emacs experience"
  :group 'emacs)

(defcustom radian-color-theme 'leuven
  "Specifies the color theme used by Radian.

You can use anything listed by `custom-available-themes'.
Specifying `doom-one' or `doom-molokai' will cause the
appropriate package to be installed automatically.

If you wish to use your own color theme, you can set this to
nil."
  :group 'radian
  :type 'symbol)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;; Optimization
