summaryrefslogtreecommitdiff
path: root/init.el
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2024-04-07 13:41:34 -0500
committerCraig Jennings <c@cjennings.net>2024-04-07 13:41:34 -0500
commit754bbf7a25a8dda49b5d08ef0d0443bbf5af0e36 (patch)
treef1190704f78f04a2b0b4c977d20fe96a828377f1 /init.el
new repository
Diffstat (limited to 'init.el')
-rw-r--r--init.el134
1 files changed, 134 insertions, 0 deletions
diff --git a/init.el b/init.el
new file mode 100644
index 00000000..9e20aa00
--- /dev/null
+++ b/init.el
@@ -0,0 +1,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