;;; init.el --- Cytrogen's Modular Emacs Configuration -*- lexical-binding: t -*- ;; Copyright (C) 2026 Cytrogen ;; This is the main entry point for a modular Emacs configuration. ;; All specific configurations are organized in separate modules under config/ ;;; Commentary: ;; This configuration uses a modular approach where different functionalities ;; are separated into focused modules: ;; - core-settings.el: Basic system and package configuration ;; - ui-theme-fonts.el: Visual appearance and fonts ;; - pkg-org.el: Org-mode and productivity tools ;; - pkg-writing.el: Writing and blogging tools ;; - pkg-blog.el: Blog workflow for monthly posts ;; - pkg-dev.el: Development tools ;; - pkg-email.el: Email client (mu4e) ;; - pkg-reading.el: RSS reader (elfeed), OPDS browser, ebook tools ;; - pkg-social.el: Social media and security ;; - utils.el: Utility functions and dashboard ;; - keybindings.el: Global key mappings ;;; Code: ;; Add the config directory to load-path (add-to-list 'load-path (expand-file-name "config" user-emacs-directory)) ;; Load core modules first (require 'core-settings) (require 'ui-theme-fonts) ;; Load feature modules (require 'pkg-org) (require 'pkg-writing) (require 'pkg-blog) ; Blog workflow for monthly posts (when (file-exists-p (expand-file-name "immich-config.el" user-emacs-directory)) (load (expand-file-name "immich-config.el" user-emacs-directory))) (require 'pkg-calendar) ; Google Calendar/Tasks integration (require 'pkg-dev) (require 'pkg-git) ; Git integration (magit, diff-hl, git-timemachine) (require 'pkg-email) ; Email (mu4e) configuration (require 'pkg-reading) ; RSS reader, OPDS browser, ebook tools (require 'pkg-dictionary) ; Offline dictionary (sdcv + StarDict) (require 'utils) (require 'keybindings) (require 'pkg-social) ; GPG/Mastodon configuration (message "Cytrogen's Emacs configuration loaded successfully!") ;;; init.el ends here (custom-set-variables ;; custom-set-variables was added by Custom. ;; If you edit it by hand, you could mess it up, so be careful. ;; Your init file should contain only one such instance. ;; If there is more than one, they won't work right. '(epa-armor t t) '(epa-file-cache-passphrase-for-symmetric-encryption t) '(epa-file-encrypt-to nil t) '(epa-file-select-keys 'silent) '(epg-debug t) '(epg-gpg-home-directory "/home/cytrogen/.gnupg") '(epg-gpg-program "/usr/bin/gpg") '(epg-pinentry-mode 'loopback) '(epg-user-id nil t) '(package-selected-packages nil)) (custom-set-faces ;; custom-set-faces was added by Custom. ;; If you edit it by hand, you could mess it up, so be careful. ;; Your init file should contain only one such instance. ;; If there is more than one, they won't work right. )