   "Core Emacs minor modes that are used when I run Emacs with
 `emacs -Q`.")
 
+(defconst danylo/whitelist-minor-modes
+  '(solaire-global-mode
+    solaire-mode
+    global-so-long-mode
+    default-text-scale-mode
+    rainbow-mode
+    filladapt-mode
+    rainbow-delimiters-mode
+    projectile-mode
+    window-numbering-mode
+    global-hl-todo-mode
+    hl-todo-mode
+    shell-dirtrack-mode
+    gcmh-mode
+    recentf-mode
+    electric-pair-mode
+    helm-mode
+    google-this-mode)
+  "Emacs minor modes that I whitelist for being performant enough.")
+
 (defvar danylo/mode-list-cache '()
   "Cache of my active minor modes.")
 

     (lambda (mode-symbol)
       (progn
         (message "Enabling: %s" mode-symbol)
         (funcall mode-symbol +1)))
     danylo/mode-list-cache)
    (setq danylo/mode-list-cache remaining-modes)))


  :init (setq minimap-width-fraction 0.1
              minimap-minimum-width 15
              minimap-hide-fringes t))

;;;; Turbo mode for minimal-latency editing

(defvar danylo/turbo-on nil
  "State variable indicating if turbo editing mode is on.")

(defun danylo/turbo-toggle ()
  "Toggle turning off all heavy minor modes, for fast typing."
  (interactive)
  (if danylo/turbo-on
      (progn
        (danylo/enable-my-minor-modes)
        (danylo/print-in-minibuffer
         (format "%s Turbo OFF" (danylo/fa-icon "rocket"))))
    (progn
      (danylo/disable-my-minor-modes)
      (danylo/print-in-minibuffer
       (format "%s Turbo ON" (danylo/fa-icon "rocket")))))
  (setq danylo/turbo-on (not danylo/turbo-on)))

(general-define-key
 "C-c e t" 'danylo/turbo-toggle)

;;; ..:: Window management ::..

