   :global t
   (unless doom-font
     (user-error "`doom-font' must be set to a valid font"))
-  (let ((frame (selected-frame)))
-    (if doom-big-font
-        (progn
-          (set-frame-font (if doom-big-font-mode doom-big-font doom-font)
-                          t (doom--frame-list frame))
-          (run-hooks 'doom-change-font-size-hook))
-      (set-frame-font doom-font t (doom--frame-list frame))
-      (when (and doom-big-font-mode
-                 (integerp doom-big-font-increment)
-                 (/= doom-big-font-increment 0))
-        (doom-adjust-font-size doom-big-font-increment)))))
+  (if doom-big-font
+      (set-frame-font (if doom-big-font-mode doom-big-font doom-font)
+                      'keep-size (doom--frame-list))
+    (doom-adjust-font-size
+     (and doom-big-font-mode
+          (integerp doom-big-font-increment)
+          (/= doom-big-font-increment 0)
+          doom-big-font-increment))))

(defun doom-adjust-font-size (increment &optional frame)
  "Increase size of font in FRAME by INCREMENT.
FRAME parameter defaults to current frame."
  (let (success)
    (if (null increment)
        (let ((frames (doom--frame-list frame)))
          (dolist (frame frames)
            (when (frame-parameter frame 'font-scale)
              (set-frame-parameter frame 'font-scale nil)))
          (set-frame-font doom-font 'keep-size frames)
          (setq success (and frames t)))
      (dolist (frame (doom--frame-list frame))
        (let* ((font (frame-parameter frame 'font))
               (font (doom--font-name font frame))

(defvar doom-big-font-increment 8
  "How many steps to increase the font size (with `doom-font' as the base) when
`doom-big-font-mode' is enabled and `doom-big-font' is nil.")


;;
