Fix daemon startup optimizations and buffer initialization
- Remove (not (daemonp)) checks from early-init.el performance blocks. This allows Emacs to properly optimize file name handlers, UI rendering suppression, and frame resizing when starting as a background server. - Move initial-major-mode and initial-scratch-message from early-init.el to init.el to prevent silent overwrites by custom.el. - Move default-input-method to init.el.
This commit is contained in:
@@ -194,9 +194,6 @@ pre-early-init.el, and post-early-init.el.")
|
|||||||
|
|
||||||
(set-language-environment "UTF-8")
|
(set-language-environment "UTF-8")
|
||||||
|
|
||||||
;; Set-language-environment sets default-input-method, which is unwanted.
|
|
||||||
(setq default-input-method nil)
|
|
||||||
|
|
||||||
;; Increase how much is read from processes in a single chunk
|
;; Increase how much is read from processes in a single chunk
|
||||||
(setq read-process-output-max (* 2 1024 1024)) ; 1024kb
|
(setq read-process-output-max (* 2 1024 1024)) ; 1024kb
|
||||||
|
|
||||||
@@ -225,7 +222,7 @@ pre-early-init.el, and post-early-init.el.")
|
|||||||
;; icon fonts on Windows. This will increase memory usage.
|
;; icon fonts on Windows. This will increase memory usage.
|
||||||
(setq inhibit-compacting-font-caches t)
|
(setq inhibit-compacting-font-caches t)
|
||||||
|
|
||||||
(when (and (not (daemonp)) (not noninteractive))
|
(when (not noninteractive)
|
||||||
;; Resizing the Emacs frame can be costly when changing the font. Disable this
|
;; Resizing the Emacs frame can be costly when changing the font. Disable this
|
||||||
;; to improve startup times with fonts larger than the system default.
|
;; to improve startup times with fonts larger than the system default.
|
||||||
(setq frame-resize-pixelwise t)
|
(setq frame-resize-pixelwise t)
|
||||||
@@ -259,16 +256,6 @@ pre-early-init.el, and post-early-init.el.")
|
|||||||
;; `inhibit-startup-screen', but it would still initialize anyway.
|
;; `inhibit-startup-screen', but it would still initialize anyway.
|
||||||
(advice-add 'display-startup-screen :override #'ignore)
|
(advice-add 'display-startup-screen :override #'ignore)
|
||||||
|
|
||||||
;; The initial buffer is created during startup even in non-interactive
|
|
||||||
;; sessions, and its major mode is fully initialized. Modes like `text-mode',
|
|
||||||
;; `org-mode', or even the default `lisp-interaction-mode' load extra packages
|
|
||||||
;; and run hooks, which can slow down startup.
|
|
||||||
;;
|
|
||||||
;; Using `fundamental-mode' for the initial buffer to avoid unnecessary
|
|
||||||
;; startup overhead.
|
|
||||||
(setq initial-major-mode 'fundamental-mode
|
|
||||||
initial-scratch-message nil)
|
|
||||||
|
|
||||||
(unless minimal-emacs-debug
|
(unless minimal-emacs-debug
|
||||||
;; Unset command line options irrelevant to the current OS. These options
|
;; Unset command line options irrelevant to the current OS. These options
|
||||||
;; are still processed by `command-line-1` but have no effect.
|
;; are still processed by `command-line-1` but have no effect.
|
||||||
@@ -302,7 +289,6 @@ this stage of initialization."
|
|||||||
minimal-emacs--old-file-name-handler-alist))))
|
minimal-emacs--old-file-name-handler-alist))))
|
||||||
|
|
||||||
(when (and minimal-emacs-optimize-file-name-handler-alist
|
(when (and minimal-emacs-optimize-file-name-handler-alist
|
||||||
(not (daemonp))
|
|
||||||
(not minimal-emacs-debug))
|
(not minimal-emacs-debug))
|
||||||
;; Determine the state of bundled libraries using calc-loaddefs.el. If
|
;; Determine the state of bundled libraries using calc-loaddefs.el. If
|
||||||
;; compressed, retain the gzip handler in `file-name-handler-alist`. If
|
;; compressed, retain the gzip handler in `file-name-handler-alist`. If
|
||||||
@@ -334,7 +320,6 @@ this stage of initialization."
|
|||||||
(remove-hook 'post-command-hook #'minimal-emacs--reset-inhibit-redisplay))
|
(remove-hook 'post-command-hook #'minimal-emacs--reset-inhibit-redisplay))
|
||||||
|
|
||||||
(when (and minimal-emacs-inhibit-redisplay-during-startup
|
(when (and minimal-emacs-inhibit-redisplay-during-startup
|
||||||
(not (daemonp))
|
|
||||||
(not noninteractive)
|
(not noninteractive)
|
||||||
(not minimal-emacs-debug))
|
(not minimal-emacs-debug))
|
||||||
;; Suppress redisplay and redraw during startup to avoid delays and
|
;; Suppress redisplay and redraw during startup to avoid delays and
|
||||||
@@ -350,7 +335,6 @@ this stage of initialization."
|
|||||||
(remove-hook 'post-command-hook #'minimal-emacs--reset-inhibit-message))
|
(remove-hook 'post-command-hook #'minimal-emacs--reset-inhibit-message))
|
||||||
|
|
||||||
(when (and minimal-emacs-inhibit-message-during-startup
|
(when (and minimal-emacs-inhibit-message-during-startup
|
||||||
(not (daemonp))
|
|
||||||
(not noninteractive)
|
(not noninteractive)
|
||||||
(not minimal-emacs-debug))
|
(not minimal-emacs-debug))
|
||||||
(setq-default inhibit-message t)
|
(setq-default inhibit-message t)
|
||||||
@@ -359,7 +343,6 @@ this stage of initialization."
|
|||||||
;;; Performance: Disable mode-line during startup
|
;;; Performance: Disable mode-line during startup
|
||||||
|
|
||||||
(when (and minimal-emacs-disable-mode-line-during-startup
|
(when (and minimal-emacs-disable-mode-line-during-startup
|
||||||
(not (daemonp))
|
|
||||||
(not noninteractive)
|
(not noninteractive)
|
||||||
(not minimal-emacs-debug))
|
(not minimal-emacs-debug))
|
||||||
(put 'mode-line-format
|
(put 'mode-line-format
|
||||||
@@ -416,8 +399,7 @@ this stage of initialization."
|
|||||||
(when (bound-and-true-p tool-bar-mode)
|
(when (bound-and-true-p tool-bar-mode)
|
||||||
(funcall 'tool-bar-setup))))
|
(funcall 'tool-bar-setup))))
|
||||||
|
|
||||||
(when (and (not (daemonp))
|
(unless noninteractive
|
||||||
(not noninteractive))
|
|
||||||
(when (fboundp 'tool-bar-setup)
|
(when (fboundp 'tool-bar-setup)
|
||||||
;; Temporarily override the tool-bar-setup function to prevent it from
|
;; Temporarily override the tool-bar-setup function to prevent it from
|
||||||
;; running during the initial stages of startup
|
;; running during the initial stages of startup
|
||||||
|
|||||||
13
init.el
13
init.el
@@ -28,6 +28,19 @@
|
|||||||
|
|
||||||
;;; Before package
|
;;; Before package
|
||||||
|
|
||||||
|
;; The initial buffer is created during startup even in non-interactive
|
||||||
|
;; sessions, and its major mode is fully initialized. Modes like `text-mode',
|
||||||
|
;; `org-mode', or even the default `lisp-interaction-mode' load extra packages
|
||||||
|
;; and run hooks, which can slow down startup.
|
||||||
|
;;
|
||||||
|
;; Using `fundamental-mode' for the initial buffer to avoid unnecessary
|
||||||
|
;; startup overhead.
|
||||||
|
(setq initial-major-mode 'fundamental-mode
|
||||||
|
initial-scratch-message nil)
|
||||||
|
|
||||||
|
;; Set-language-environment sets default-input-method, which is unwanted.
|
||||||
|
(setq default-input-method nil)
|
||||||
|
|
||||||
;; Ask the user whether to terminate asynchronous compilations on exit.
|
;; Ask the user whether to terminate asynchronous compilations on exit.
|
||||||
;; This prevents native compilation from leaving temporary files in /tmp.
|
;; This prevents native compilation from leaving temporary files in /tmp.
|
||||||
(setq native-comp-async-query-on-exit t)
|
(setq native-comp-async-query-on-exit t)
|
||||||
|
|||||||
Reference in New Issue
Block a user