summary refs log tree commit diff
path: root/emacs/early-init.el
diff options
context:
space:
mode:
Diffstat (limited to 'emacs/early-init.el')
-rw-r--r--emacs/early-init.el41
1 files changed, 41 insertions, 0 deletions
diff --git a/emacs/early-init.el b/emacs/early-init.el
new file mode 100644
index 0000000..5ba6898
--- /dev/null
+++ b/emacs/early-init.el
@@ -0,0 +1,41 @@
+;;; early-init.el -*- lexical-binding: t; -*-
+
+;; Emacs 27+ introduces early-init.el, which is run before init.el,
+;; before package and UI initialization happens.
+
+;; Defer garbage collection further back in the startup process
+(setq
+	gc-cons-threshold most-positive-fixnum
+	gc-cons-percentage 0.6
+
+	;; In noninteractive sessions, prioritize non-byte-compiled source files to prevent the use of stale byte-code. Otherwise, it saves us a little IO time to skip the mtime checks on every *.elc file.
+	load-prefer-newer 'noninteractive
+	native-comp-jit-compilation nil
+
+	;; is this a bad idea?
+	site-run-file nil
+	inhibit-default-init t
+
+	;; In Emacs 27+, package initialization occurs before `user-init-file' is loaded, but after `early-init-file'.
+	;; package-enable-at-startup nil
+
+	;; `use-package' is builtin since 29.  It must be set before loading `use-package'.
+	use-package-enable-imenu-support t
+
+	;; Disable built-in mode-line because we have own config
+	;; mode-line-format nil
+
+	;; Gui changes are expensive
+	frame-inhibit-implied-resize t
+	default-frame-alist '(
+		(fullscreen . maximized)
+		(font . "SN Pro-13")
+		(menu-bar-lines . 0)
+		(tool-bar-lines . 0)
+		;; (vertical-scroll-bars . nil)
+	)
+	
+	)
+
+;; Ignore X resources; its settings would be redundant with the other settings in this file and can conflict with later config (particularly where the cursor color is concerned).
+(advice-add #'x-apply-session-resources :override #'ignore)