summaryrefslogtreecommitdiff
path: root/init.el
diff options
context:
space:
mode:
Diffstat (limited to 'init.el')
-rw-r--r--init.el142
1 files changed, 142 insertions, 0 deletions
diff --git a/init.el b/init.el
new file mode 100644
index 00000000..bb7d714e
--- /dev/null
+++ b/init.el
@@ -0,0 +1,142 @@
+;;; init.el --- Emacs Init File -*- lexical-binding: t; coding: utf-8; -*-
+;; author: Craig Jennings <c@cjennings.net>
+
+;;; Commentary:
+
+;; Note: This init.el file has an early-init.el file associated with it.
+;; That file defines a few variables and settings used within the rest of the config.
+
+;;; Code:
+
+(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/"))
+
+;; ---------------------------- System Configuration ---------------------------
+
+;;(require 'config-utilities) ;; enable for extra Emacs config debug helpers
+(require 'user-constants) ;; paths for files referenced in this config
+(require 'host-environment) ;; convenience functions re: host environment
+(require 'system-defaults) ;; native comp; log; unicode, backup, exec path
+(require 'keybindings) ;; system-wide keybindings and keybinding discovery
+
+;; -------------------------- Utilities And Libraries --------------------------
+
+(require 'media-utils) ;; download and play urls
+(require 'custom-functions) ;; custom function library w/ keybindings
+(require 'external-open) ;; files to open outside of Emacs
+
+;; ------------------------- System Level Functionality ------------------------
+
+(require 'auth-config) ;; emacs gnupg integration
+(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 Configuration -----------------------
+
+(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) ;; font and emoji configuration
+(require 'selection-framework) ;; menu config
+(require 'modeline-config) ;; modeline (status-bar) config
+
+;; ----------------- Emacs Built-In Functionality Configuration ----------------
+
+(require 'chrono-tools) ;; calendar, world clock, timers
+(require 'diff-config) ;; diff and merge functionality w/in Emacs
+(require 'erc-config) ;; seamless IRC client
+(require 'eshell-vterm-config) ;; shell and terminal configuration
+(require 'help-utils) ;; search: arch-wiki, devdoc, tldr, wikipedia
+(require 'help-config) ;; info, man, help config
+(require 'tramp-config) ;; remote shell connections
+
+;; ---------------------- Added Features And Integrations ----------------------
+
+(require 'calibredb-epub-config) ;; ebook reader/manager settings
+(require 'dashboard-config) ;; the nice landing page with links
+(require 'dirvish-config) ;; file manager configuration
+(require 'dwim-shell-config) ;; shell commands brought to dirvish/dired
+(require 'elfeed-config) ;; feed reader and podcast player/downloader
+(require 'eww-config) ;; text mode web browsing, w/o javascript
+(require 'flyspell-and-abbrev) ;; spell check and auto-correct
+(require 'httpd-config)
+(require 'latex-config) ;; WIP need to fix
+(require 'mail-config) ;; email using mu4e and org-msg
+(require 'markdown-config)
+(require 'pdf-config) ;; pdf display settings
+(require 'show-kill-ring) ;; displays and facilitates pasting from history
+(require 'video-audio-recording) ;; desktop and/or audio recording via ffmpeg
+(require 'weather-config) ;; utility to display the weather
+
+;; -------------------------------- Programming --------------------------------
+
+(require 'prog-general) ;; general programming functionality/settings
+(require 'test-runner)
+(require 'vc-config) ;; version control packages and keybindings
+(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) ;; basic org-mode settings
+(require 'org-agenda-config) ;; agenda, task tracking, and notifications
+(require 'org-babel-config) ;; org-mode prog blocks; literate programming
+(require 'org-capture-config)
+(require 'org-contacts-config) ;; fully integrated org-mode contacts management
+(require 'org-drill-config)
+(require 'org-export-config)
+(require 'org-gcal-config)
+(require 'org-refile-config) ;; refile org-branches
+(require 'org-roam-config) ;; personal knowledge management in org mode
+(require 'org-webclipper) ;; "instapaper" to org-roam workflow
+
+;; -------------------------- AI Integration And Tools -------------------------
+
+(require 'ai-config) ;; LLM integration with GPTel and friends
+
+(with-eval-after-load 'gptel
+ (add-to-list 'load-path "~/.emacs.d/gptel-tools")
+ ;; Buffer Tools
+ (require 'read_buffer)
+ ;; Filesystem Tools
+ (require 'read_text_file)
+ (require 'write_text_file)
+;; (require 'update_text_file) ;; BUG: issues with this tool
+ (require 'list_directory_files)
+ (require 'move_to_trash)
+ ;; Web Tools
+ (require 'fetch_page))
+
+;; ------------------------- Personal Workflow Related -------------------------
+
+(require 'reconcile-open-repos)
+(require 'local-repository)
+
+;; ------------------------------- Entertainment -------------------------------
+
+(require 'eradio-config)
+(require 'games-config)
+(require 'music-config)
+
+;; ---------------------------------- Wrap Up ----------------------------------
+
+(require 'wrap-up)
+
+;; ------------------------------ Modules In Test ------------------------------
+(require 'wip)
+(require 'org-noter-config)
+;;(require 'lipsum-generator)
+;;(require 'jumper)
+
+;;; init.el ends here