 (def-package! eldoc-eval :demand t
   :config
   ;; Show eldoc in the mode-line with `eval-expression'
+  (defun +doom-modeline--show-eldoc (input)
+    "Display string STR in the mode-line next to minibuffer."
+    (with-current-buffer (eldoc-current-buffer)
+      (let* ((str              (and (stringp input) input))
+             (mode-line-format (or (and str (doom-modeline 'eldoc))
+                                   mode-line-format))
+             mode-line-in-non-selected-windows)
+        (force-mode-line-update)
+        (sit-for eldoc-show-in-mode-line-delay))))
+
   (setq eldoc-in-minibuffer-show-fn '+doom-modeline--show-eldoc)
   (eldoc-in-minibuffer-mode +1))
 

icons."
  (when (boundp 'flycheck-last-status-change)
    (pcase flycheck-last-status-change
      (`finished (if flycheck-current-errors
                     (let-alist (flycheck-count-errors flycheck-current-errors)
                       (let ((sum (+ (or .error 0) (or .warning 0))))
                         (+doom-ml-icon "circle-slash" (format "%s issue%s" sum (if (eq 1 sum) "" "s"))
                                     (if .error 'doom-modeline-urgent 'doom-modeline-warning))))
                   (concat
                    (+doom-ml-icon "check" nil 'doom-modeline-info) " ")))
      (`running     (+doom-ml-icon "ellipsis" "Running" 'font-lock-doc-face))
      (`no-checker  (+doom-ml-icon "alert" "-" 'font-lock-doc-face))
      (`errored     (+doom-ml-icon "alert" "Error" 'doom-modeline-urgent))
      (`interrupted (+doom-ml-icon "x" "Interrupted" 'font-lock-doc-face))
      ;; (`suspicious  "")
      )))

(defsubst doom-column (pos)

(defsubst active ()
  (eq (selected-window) +doom-modeline-current-window))

;; Inspired from `powerline's `pl/make-xpm'.
(def-memoized! +doom-modeline--make-xpm (color height width)
  "Create an XPM bitmap."
  (when (display-graphic-p)
