;;; 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.
)