Commit c82de9a95728

Vincent Demeester <vincent@sbr.pm>
2018-08-28 10:29:58
Fix theme loading when emacs start as a daemon
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
1 parent 259e294
Changed files (1)
lisp/vde-style.el
@@ -41,7 +41,32 @@
   :config
   (setq doom-themes-enable-bolt t)
   (setq doom-themes-enable-italic t)
-  (load-theme 'doom-one t))
+  (load-theme 'doom-one t)
+  ;; Fix theme loading with daemon(ed) emacs
+  (defvar my:theme 'doom-one)
+  (defvar my:theme-window-loaded nil)
+  (defvar my:theme-terminal-loaded nil)
+
+  (if (daemonp)
+      (add-hook 'after-make-frame-functions(lambda (frame)
+                                             (select-frame frame)
+                                             (if (window-system frame)
+                                                 (unless my:theme-window-loaded
+                                                   (if my:theme-terminal-loaded
+                                                       (enable-theme my:theme)
+                                                     (load-theme my:theme t))
+                                                   (setq my:theme-window-loaded t))
+                                               (unless my:theme-terminal-loaded
+                                                 (if my:theme-window-loaded
+                                                     (enable-theme my:theme)
+                                                   (load-theme my:theme t))
+                                                 (setq my:theme-terminal-loaded t)))))
+
+    (progn
+      (load-theme my:theme t)
+      (if (display-graphic-p)
+          (setq my:theme-window-loaded t)
+        (setq my:theme-terminal-loaded t)))))
 
 (use-package solaire-mode
   :config