summaryrefslogtreecommitdiff
path: root/init.el
blob: 5f4b13c9da53bb5567311a2b85f0febe348ad7c9 (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
;;; init --- Emacs Init File -*- lexical-binding: t; coding: utf-8-unix; -*-
;;  author: Craig Jennings <c@cjennings.net>

;;; Commentary:

;; Note: This init.el file has an early-init.el file associated with it.
;; That file defines variables and settings used within the rest of the 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.")

;; ---------------------------- System Configuration ---------------------------

(add-to-list 'load-path (concat user-emacs-directory "assets/"))
(add-to-list 'load-path (concat user-emacs-directory "custom/"))
(add-to-list 'load-path (concat user-emacs-directory "modules/"))

(require 'user-constants)        ;; paths for files referenced in this config
(require 'host-environment)      ;; convenience functions re: host environment
(require 'config-utilities)      ;; functions useful when modifying Emacs config
(require 'system-defaults)       ;; native comp; log; unicode, backup, exec path
(require 'keybindings)           ;; system-wide keybindings and keybinding discovery

;; -------------------------- Utilities And Libraries --------------------------

(require 'auth-config)           ;; emacs gnupg integration
(require 'custom-functions)      ;; custom function library w/ keybindings
(require 'file-config)           ;; files to open outside of Emacs
(require 'keyboard-macros)       ;; keyboard macro management
(require 'system-utils)          ;; timers, process monitor
(require 'text-config)           ;; text settings and functionality
(require 'undead-buffers)        ;; bury rather than kill specific buffers

;; ------------------------------- User Interface ------------------------------

(require 'ui-config)             ;; transparency, cursor color, icons, &c.
(require 'ui-theme)              ;; themes and theme persistency
(require 'ui-navigation)         ;; the movement and navigation of windows
(require 'font-config)

;; --------------------------- Internal Functionality --------------------------

(require 'diff-config)           ;; ediff and ztree configuration
(require 'eshell-vterm-config)   ;; shell and terminal configuration
(require 'flyspell-and-abbrev)   ;; spell check and auto-correct
(require 'help-utils)            ;; search: arch-wiki, devdoc, tldr, wikipedia
(require 'help-config)           ;; info, man, help config
(require 'latex-config)          ;; need to fix
(require 'modeline-config)       ;; modeline (status-bar) config
(require 'pdf-config)            ;; pdf display settings
(require 'selection-framework)   ;; menu config
(require 'tramp-config)          ;; remote shell connections
(require 'show-kill-ring)        ;; utility to display history of kill ring

;; ------------------------- Features And Integrations -------------------------

(require 'ai-config)             ;; LLM integration. note: ai-directives.el
(require 'calibredb-epub-config) ;; ebook reader/manager settings
(require 'dashboard-config)      ;; the nice landing page with links
(require 'dirvish-config)        ;; file manager configuration
(require 'elfeed-config)
(require 'erc-config)
(require 'eww-config)
(require 'httpd-config)
(require 'mail-config)           ;; email using mu4e and org-msg
(require 'markdown-config)
(require 'weather-config)        ;; utility to display the weather

;; -------------------------------- Programming --------------------------------

(require 'prog-general)
(require 'vc-config)             ;; version control packages and keybindings
(require 'treesitter-config)     ;; treesitter language syntax highlighting
(require 'flycheck-config)       ;; linting for all languages including human ones
(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-babel-config)
(require 'org-capture-config)
(require 'org-refile-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)
(require 'record-desktop)
(require 'local-repository)

;; ---------------------------------- Wrap Up ----------------------------------

(require 'wrap-up)

;; ---------------------------------- In Test ----------------------------------

(require 'test-code)
(require 'jumper)

;;; init.el ends here