summaryrefslogtreecommitdiff
path: root/early-init.el
blob: fbf9ace61021ec7a283e97835aeb16844b1231e3 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
;; -*- lexical-binding: t; -*-

;; ---- Startup perf knobs ----
;; Suppress GC and file-name-handlers during init; restored in after-init.
(defvar my/file-name-handler-alist file-name-handler-alist)
(setq file-name-handler-alist nil)
(setq gc-cons-threshold most-positive-fixnum
      gc-cons-percentage 0.6)

;; Skip site-start.el on NixOS — it loads /etc/emacs and slows boot.
(setq site-run-file nil)

;; Don't let Emacs parse customizations affecting frame on first GUI frame.
(setq frame-inhibit-implied-resize t)

;; Suppress redisplay during heavy init.
(setq inhibit-compacting-font-caches t
      idle-update-delay 1.0
      redisplay-skip-fontification-on-input t)

;; Restore after init.
(add-hook 'emacs-startup-hook
          (lambda ()
            (setq file-name-handler-alist my/file-name-handler-alist
                  gc-cons-threshold (* 64 1024 1024)
                  gc-cons-percentage 0.1)))

;; ---- Package manager hands-off until init.el ----
(setq package-enable-at-startup nil)

;; ---- UI chrome off pre-frame ----
(push '(left-fringe . 0) default-frame-alist)
(push '(right-fringe . 0) default-frame-alist)
(push '(menu-bar-lines . 0) default-frame-alist)
(push '(tool-bar-lines . 0) default-frame-alist)
(push '(vertical-scroll-bars) default-frame-alist)
(menu-bar-mode -1)
(tool-bar-mode -1)
(scroll-bar-mode -1)
(fringe-mode 0)
(setq-default overflow-newline-into-fringe nil)

(provide 'early-init)