mirror of
https://github.com/jimeh/.emacs.d.git
synced 2026-02-19 13:46:41 +00:00
Clean up init file
- Move most logic from init.el into core/siren-init.el. - Move siren-modules.el and siren-theme.el into core/ directory. - Create core/siren-vendor.el to deal with setting up the vendor load paths. - Let core/siren-modules.el and core/siren-theme.el deal with setting up their own relevant load paths.
This commit is contained in:
57
core/siren-init.el
Normal file
57
core/siren-init.el
Normal file
@@ -0,0 +1,57 @@
|
||||
;;; siren-init.el --- jimeh's Emacs Siren: Initialize all the things
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
;; Initialize and start loading Emacs Siren config.
|
||||
|
||||
;;; Code:
|
||||
|
||||
(message "Siren is powering up... Be patient, Master %s!"
|
||||
(getenv (if (equal system-type 'windows-nt) "USERNAME" "USER")))
|
||||
|
||||
;; Check Emacs version.
|
||||
(when (version< emacs-version "24.1")
|
||||
(error "Siren requires at least GNU Emacs 24.1, but you're running %s"
|
||||
emacs-version))
|
||||
|
||||
;; Setup basic paths.
|
||||
(setq siren-core-dir (file-name-directory load-file-name))
|
||||
(setq siren-dir (expand-file-name ".." siren-core-dir))
|
||||
(add-to-list 'load-path siren-core-dir)
|
||||
|
||||
;; Configure savefile-dir
|
||||
(setq siren-savefile-dir (expand-file-name "savefile" siren-dir))
|
||||
(unless (file-exists-p siren-savefile-dir)
|
||||
(make-directory siren-savefile-dir))
|
||||
|
||||
;; Ensure vendor directory load-paths are configured
|
||||
(require 'siren-vendor)
|
||||
|
||||
;; Core stuff
|
||||
(require 'siren-custom)
|
||||
(require 'siren-core)
|
||||
(require 'siren-packages)
|
||||
(require 'siren-env)
|
||||
(require 'siren-ui)
|
||||
(require 'siren-editor)
|
||||
|
||||
;; OSX specific
|
||||
(when (eq system-type 'darwin)
|
||||
(require 'siren-osx))
|
||||
|
||||
;; Linux specific
|
||||
(when (eq system-type 'gnu/linux)
|
||||
(require 'siren-linux))
|
||||
|
||||
;; config changes made through the customize UI will be store here
|
||||
(setq custom-file (expand-file-name "custom.el" siren-dir))
|
||||
(load-file custom-file)
|
||||
|
||||
;; The modules
|
||||
(require 'siren-modules)
|
||||
|
||||
;; The theme
|
||||
(require 'siren-theme)
|
||||
|
||||
(provide 'siren-init)
|
||||
;;; siren-init.el ends here
|
||||
@@ -6,6 +6,9 @@
|
||||
|
||||
;;; Code:
|
||||
|
||||
(setq siren-modules-dir (expand-file-name "modules" siren-dir))
|
||||
(add-to-list 'load-path siren-modules-dir)
|
||||
|
||||
;; Modules
|
||||
(require 'siren-aliases)
|
||||
(require 'siren-avy)
|
||||
@@ -6,6 +6,9 @@
|
||||
|
||||
;;; Code:
|
||||
|
||||
(setq siren-themes-dir (expand-file-name "themes" siren-dir))
|
||||
(add-to-list 'load-path siren-themes-dir)
|
||||
|
||||
(if window-system
|
||||
(require 'siren-theme-twilight-anti-bright)
|
||||
(require 'siren-theme-tomorrow-night-paradise))
|
||||
24
core/siren-vendor.el
Normal file
24
core/siren-vendor.el
Normal file
@@ -0,0 +1,24 @@
|
||||
;;; siren-vendor.el --- jimeh's Emacs Siren: Setup vendor load-paths
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
;; Setup vendor directory load paths.
|
||||
|
||||
;;; Code:
|
||||
|
||||
(defun siren-add-subfolders-to-load-path (parent-dir)
|
||||
"Add all level PARENT-DIR subdirs to the `load-path'."
|
||||
(dolist (f (directory-files parent-dir))
|
||||
(let ((name (expand-file-name f parent-dir)))
|
||||
(when (and (file-directory-p name)
|
||||
(not (string-prefix-p "." f)))
|
||||
(add-to-list 'load-path name)
|
||||
(siren-add-subfolders-to-load-path name)))))
|
||||
|
||||
(setq siren-vendor-dir (expand-file-name "vendor" siren-dir))
|
||||
|
||||
(add-to-list 'load-path siren-vendor-dir)
|
||||
(siren-add-subfolders-to-load-path siren-vendor-dir)
|
||||
|
||||
(provide 'siren-vendor)
|
||||
;;; siren-vendor.el ends here
|
||||
75
init.el
75
init.el
@@ -12,80 +12,9 @@
|
||||
;;
|
||||
;; (package-initialize)
|
||||
|
||||
(defvar current-user
|
||||
(getenv (if (equal system-type 'windows-nt) "USERNAME" "USER")))
|
||||
|
||||
(message "Siren is powering up... Be patient, Master %s!" current-user)
|
||||
|
||||
(when (version< emacs-version "24.1")
|
||||
(error "Siren requires at least GNU Emacs 24.1, but you're running %s"
|
||||
emacs-version))
|
||||
|
||||
;; Always load newest byte code
|
||||
(setq load-prefer-newer t)
|
||||
|
||||
;; Setup paths
|
||||
(defvar siren-dir (file-name-directory load-file-name)
|
||||
"The root dir of the Emacs config.")
|
||||
(defvar siren-core-dir (expand-file-name "core" siren-dir)
|
||||
"The home of core stuff.")
|
||||
(defvar siren-modules-dir (expand-file-name "modules" siren-dir)
|
||||
"This directory houses all of the modules.")
|
||||
(defvar siren-themes-dir (expand-file-name "themes" siren-dir)
|
||||
"This directory houses all of the modules.")
|
||||
(defvar siren-savefile-dir (expand-file-name "savefile" siren-dir)
|
||||
"This folder stores all the automatically generated save/history-files.")
|
||||
(defvar siren-vendor-dir (expand-file-name "vendor" siren-dir)
|
||||
"This directory houses packages that are not yet available in ELPA (or MELPA).")
|
||||
|
||||
(defvar siren-modules-file (expand-file-name "siren-modules.el" siren-dir)
|
||||
"This files contains a list of modules to be loaded.")
|
||||
(defvar siren-theme-file (expand-file-name "siren-theme.el" siren-dir)
|
||||
"This files contains a list of modules to be loaded.")
|
||||
|
||||
(unless (file-exists-p siren-savefile-dir)
|
||||
(make-directory siren-savefile-dir))
|
||||
|
||||
(defun siren-add-subfolders-to-load-path (parent-dir)
|
||||
"Add all level PARENT-DIR subdirs to the `load-path'."
|
||||
(dolist (f (directory-files parent-dir))
|
||||
(let ((name (expand-file-name f parent-dir)))
|
||||
(when (and (file-directory-p name)
|
||||
(not (string-prefix-p "." f)))
|
||||
(add-to-list 'load-path name)
|
||||
(siren-add-subfolders-to-load-path name)))))
|
||||
|
||||
(add-to-list 'load-path siren-core-dir)
|
||||
(add-to-list 'load-path siren-modules-dir)
|
||||
(add-to-list 'load-path siren-themes-dir)
|
||||
(add-to-list 'load-path siren-vendor-dir)
|
||||
(siren-add-subfolders-to-load-path siren-vendor-dir)
|
||||
|
||||
;; core stuff
|
||||
(require 'siren-custom)
|
||||
(require 'siren-core)
|
||||
(require 'siren-packages)
|
||||
(require 'siren-env)
|
||||
(require 'siren-ui)
|
||||
(require 'siren-editor)
|
||||
|
||||
;; osx specific
|
||||
(when (eq system-type 'darwin)
|
||||
(require 'siren-osx))
|
||||
|
||||
(when (eq system-type 'gnu/linux)
|
||||
(require 'siren-linux))
|
||||
|
||||
;; config changes made through the customize UI will be store here
|
||||
(setq custom-file (expand-file-name "custom.el" siren-dir))
|
||||
(load-file custom-file)
|
||||
|
||||
;; the modules
|
||||
(if (file-exists-p siren-modules-file)
|
||||
(load siren-modules-file))
|
||||
|
||||
;; the theme
|
||||
(if (file-exists-p siren-theme-file)
|
||||
(load siren-theme-file))
|
||||
(load (expand-file-name "core/siren-init.el"
|
||||
(file-name-directory load-file-name)))
|
||||
|
||||
;;; init.el ends here
|
||||
|
||||
Reference in New Issue
Block a user