blob: 9e20aa00abcd06be4c0d10004d7a1f9a9b98488d (
plain)
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
|
;;; init --- Emacs Init File -*- lexical-binding: t -*-
;; author: Craig Jennings <c@cjennings.net>
;;; Commentary:
;; Note: This init.el file has an early-init.el file associated with it. That
;; file defines some variables and settings used within the rest of this config.
;;; Code:
;; -------------------------------- Contact Info -------------------------------
(defvar user-whole-name "Craig Jennings"
"The user's full name.")
(defconst user-name (getenv "USER")
"The user's name retrieved from the environment variable.")
(defvar user-mail-address "c@cjennings.net"
"The user's email address.")
;; ------------------------- Directory / File Constants ------------------------
(defconst code-dir (concat user-home-dir "/code/"))
(defconst projects-dir (concat user-home-dir "/projects/"))
(defconst sync-dir (concat user-home-dir "/sync/org/")) ;; emacs data to be sync'd across machines
(defconst roam-dir (concat sync-dir "/roam/")) ;; emacs org roam data
(defconst snippets-dir (concat sync-dir "snippets")) ;; snippets
(defconst emacs-init-file (concat user-emacs-directory "init.el")) ;; 'user-init-file' might be compiled
(defconst emacs-early-init-file (concat user-emacs-directory "early-init.el"))
(defvar schedule-file (concat sync-dir "schedule.org")) ;; scheduled events & appointments
(defvar inbox-file (concat roam-dir "inbox.org")) ;; tasks and task inbox
(defvar contacts-file (concat sync-dir "contacts.org")) ;; org-contacts
(defvar article-file (concat sync-dir "article-queue.org")) ;; articles to read
(defvar article-archive (concat sync-dir "article-archive.org")) ;; articles to keep
(defvar ledger-file (concat user-home-dir "/projects/finances/main.ledger")) ;; $$$
(defvar macros-file (concat sync-dir "macros.el")) ;; macros with cj/save-macro are saved here
;; ---------------------------- System Configuration ---------------------------
(add-to-list 'load-path (concat user-emacs-directory "modules"))
(add-to-list 'load-path (concat user-emacs-directory "assets"))
(add-to-list 'load-path (concat user-emacs-directory "custom"))
(require 'config-utilities) ;; functions useful when modifying Emacs config
(require 'host-environment) ;; convenience functions re: host environment
(require 'system-defaults)
(require 'keybindings)
;; -------------------------- Utilities And Libraries --------------------------
(require 'custom-functions) ;; custom function library w/ keybindings
(require 'system-utils)
(require 'epa-config) ;; emacs gnupg integration
(require 'text-config) ;; text settings and functionality
;; ------------------------------- User Interface ------------------------------
(require 'ui-config)
(require 'ui-theme)
(require 'ui-navigation)
(require 'font-config)
(require 'selection-framework)
;; ------------------------------- Functionality -------------------------------
(require 'ai-config)
(require 'calibredb-epub-config)
(require 'dashboard-config)
(require 'diff-config)
(require 'dirvish-config)
(require 'elfeed-config)
(require 'erc-config)
(require 'eshell-vterm-config)
(require 'eww-config)
(require 'flyspell-config)
(require 'graphviz-config) ;; merge with latex module?
(require 'help-utils)
(require 'httpd-config)
(require 'ledger-config)
(require 'local-repository) ;; wip
(require 'mail-config)
(require 'markdown-config)
(require 'modeline-config)
(require 'pdf-config)
(require 'show-kill-ring)
(require 'telegram-config)
(require 'tramp-config)
;; (require 'latex-config) ;; need to fix
;; -------------------------------- Programming --------------------------------
(require 'prog-general)
(require 'prog-comments)
(require 'vc-config)
(require 'treesitter-config)
(require 'flycheck-config)
(require 'prog-lsp)
(require 'prog-training)
(require 'prog-c)
(require 'prog-go)
(require 'prog-lisp)
(require 'prog-shell) ;; combine elsewhere
(require 'prog-python)
(require 'prog-webdev)
(require 'prog-yaml)
;; ---------------------------------- Org Mode ---------------------------------
(require 'org-config)
(require 'org-agenda-config)
(require 'org-appearance-config)
(require 'org-babel-config)
(require 'org-capture-config)
(require 'org-refile-config)
(require 'org-contacts-config)
(require 'org-drill-config)
(require 'org-export-config)
(require 'org-roam-config)
;; ------------------------------- Entertainment -------------------------------
(require 'eradio-config)
(require 'games-config)
;; ------------------------- Personal Workflow Related -------------------------
(require 'reconcile-open-repos)
;; ---------------------------------- Wrap Up ----------------------------------
(require 'test-code)
(require 'wrap-up)
;;; init.el ends here
|