-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathinit.el
65 lines (43 loc) · 1.69 KB
/
init.el
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
;;; init.el --- main init file for Emacs -*- lexical-binding: t -*-
;; Author: Phillip Sorensen <[email protected]>
;; URL: https://github.com/philsorensen/dotemacs
;; Compatibility: emacs-version >= 29.1
;;; Commentary:
;; This is the main file for my Emacs setup. It configures
;; use-package, and then pulls in the rest of the configuration from
;; the 'modules' directory. Finally it loads any extra local setup
;; from the customization system (custom.el) and local.el files.
;;; Code:
;; Check compatibility
(if (version< emacs-version "29.1")
(error "This Emacs setup only works with version 29.1 and above"))
;;;; Configure use-package
(require 'use-package)
(require 'use-package-ensure)
;; "Production" use-package settings
(setq use-package-always-defer t
use-package-always-ensure t
use-package-expand-minimally t)
;; "Debug" settings (when --debug-init)
(when init-file-debug
(setq use-package-verbose t
use-package-expand-minimally nil
use-package-compute-statistics t
debug-on-error t))
;; Add :ensure-system-package keyword
(use-package use-package-ensure-system-package)
;;;; Load the rest of the configuration from seperate files
;; Add modules directory to the load path
(add-to-list 'load-path (locate-user-emacs-file "modules"))
(require 'defaults)
(require 'ui)
(require 'completion)
(require 'projects)
(require 'programming)
;;;; "Local" overrides loaded from customization file and local.el
(let ((new-custom-file (file-name-concat pas--data-dir "custom.el")))
(setq custom-file new-custom-file)
(load custom-file t))
(let ((local-file (file-name-concat pas--data-dir "local.el")))
(load local-file t))
;;; init.el ends here