Emacs config utilizing prelude as a base
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

191 lines
5.3 KiB

  1. ;;; init.el --- Emacs Prelude: configuration entry point.
  2. ;;
  3. ;; Copyright (c) 2011 Bozhidar Batsov
  4. ;;
  5. ;; Author: Bozhidar Batsov <bozhidar.batsov@gmail.com>
  6. ;; URL: http://www.emacswiki.org/cgi-bin/wiki/Prelude
  7. ;; Version: 1.0.0
  8. ;; Keywords: convenience
  9. ;; This file is not part of GNU Emacs.
  10. ;;; Commentary:
  11. ;; This file simply sets up the default load path and requires
  12. ;; the various modules defined within Emacs Prelude.
  13. ;;; License:
  14. ;; This program is free software; you can redistribute it and/or
  15. ;; modify it under the terms of the GNU General Public License
  16. ;; as published by the Free Software Foundation; either version 3
  17. ;; of the License, or (at your option) any later version.
  18. ;;
  19. ;; This program is distributed in the hope that it will be useful,
  20. ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
  21. ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  22. ;; GNU General Public License for more details.
  23. ;;
  24. ;; You should have received a copy of the GNU General Public License
  25. ;; along with GNU Emacs; see the file COPYING. If not, write to the
  26. ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
  27. ;; Boston, MA 02110-1301, USA.
  28. ;;; Code:
  29. (defgroup prelude nil
  30. "Emacs Prelude"
  31. :group 'convenience)
  32. ;; On OS X Emacs doesn't use the shell PATH if it's not started from
  33. ;; the shell. If you're using homebrew modifying the PATH is essential.
  34. (if (eq system-type 'darwin)
  35. (push "/usr/local/bin" exec-path))
  36. (defvar prelude-dir (file-name-directory load-file-name)
  37. "The root dir of the Emacs Prelude distribution.")
  38. (defvar prelude-modules-dir (concat prelude-dir "modules/")
  39. "This directory houses all of the built-in Prelude module. You should
  40. avoid modifying the configuration there.")
  41. (defvar prelude-vendor-dir (concat prelude-dir "vendor/")
  42. "This directory house Emacs Lisp packages that are not yet available in
  43. ELPA (or Marmalade).")
  44. (defvar prelude-personal-dir (concat prelude-dir "personal/")
  45. "Users of Emacs Prelude are encouraged to keep their personal configuration
  46. changes in this directory. All Emacs Lisp files there are loaded automatically
  47. by Prelude.")
  48. (add-to-list 'load-path prelude-modules-dir)
  49. (add-to-list 'load-path prelude-vendor-dir)
  50. (add-to-list 'load-path prelude-personal-dir)
  51. ;; config changes made through the customize UI will be store here
  52. (setq custom-file (concat prelude-personal-dir "custom.el"))
  53. ;; the core stuff
  54. (require 'prelude-ui)
  55. (require 'prelude-packages)
  56. (require 'prelude-core)
  57. (require 'prelude-editor)
  58. (require 'prelude-global-keybindings)
  59. (defcustom prelude-c-module t
  60. "Enable Prelude's C module."
  61. :type 'boolean
  62. :group 'prelude)
  63. (defcustom prelude-clojure-module t
  64. "Enable Prelude's Clojure module."
  65. :type 'boolean
  66. :group 'prelude)
  67. (defcustom prelude-coffee-script-module t
  68. "Enable Prelude's CoffeeScript module."
  69. :type 'boolean
  70. :group 'prelude)
  71. (defcustom prelude-common-lisp-module t
  72. "Enable Prelude's Common Lisp module."
  73. :type 'boolean
  74. :group 'prelude)
  75. (defcustom prelude-emacs-lisp-module t
  76. "Enable Prelude's Emacs Lisp module."
  77. :type 'boolean
  78. :group 'prelude)
  79. (defcustom prelude-erc-module t
  80. "Enable Prelude's ERC module."
  81. :type 'boolean
  82. :group 'prelude)
  83. (defcustom prelude-haskell-module t
  84. "Enable Prelude's Haskell module."
  85. :type 'boolean
  86. :group 'prelude)
  87. (defcustom prelude-js-module t
  88. "Enable Prelude's JavaScript module."
  89. :type 'boolean
  90. :group 'prelude)
  91. (defcustom prelude-latex-module t
  92. "Enable Prelude's LaTeX module."
  93. :type 'boolean
  94. :group 'prelude)
  95. (defcustom prelude-markdown-module t
  96. "Enable Prelude's Markdown module."
  97. :type 'boolean
  98. :group 'prelude)
  99. (defcustom prelude-org-module t
  100. "Enable Prelude's org-mode module."
  101. :type 'boolean
  102. :group 'prelude)
  103. (defcustom prelude-perl-module t
  104. "Enable Prelude's Perl module."
  105. :type 'boolean
  106. :group 'prelude)
  107. (defcustom prelude-python-module t
  108. "Enable Prelude's Python module."
  109. :type 'boolean
  110. :group 'prelude)
  111. (defcustom prelude-ruby-module t
  112. "Enable Prelude's Ruby module."
  113. :type 'boolean
  114. :group 'prelude)
  115. (defcustom prelude-scheme-module t
  116. "Enable Prelude's Scheme module."
  117. :type 'boolean
  118. :group 'prelude)
  119. (defcustom prelude-xml-module t
  120. "Enable Prelude's XML module."
  121. :type 'boolean
  122. :group 'prelude)
  123. ;; programming & markup languages support
  124. (when prelude-c-module
  125. (require 'prelude-c))
  126. (when prelude-clojure-module
  127. (require 'prelude-clojure))
  128. (when prelude-coffee-script-module
  129. (require 'prelude-coffee))
  130. (when prelude-common-lisp-module
  131. (require 'prelude-common-lisp))
  132. (when prelude-emacs-lisp-module
  133. (require 'prelude-emacs-lisp))
  134. (when prelude-erc-module
  135. (require 'prelude-erc))
  136. (when prelude-haskell-module
  137. (require 'prelude-haskell))
  138. (when prelude-js-module
  139. (require 'prelude-js))
  140. (when prelude-latex-module
  141. (require 'prelude-latex))
  142. (when prelude-markdown-module
  143. (require 'prelude-markdown))
  144. (when prelude-org-module
  145. (require 'prelude-org))
  146. (when prelude-perl-module
  147. (require 'prelude-perl))
  148. (when prelude-perl-module
  149. (require 'prelude-python))
  150. (when prelude-ruby-module
  151. (require 'prelude-ruby))
  152. (when prelude-scheme-module
  153. (require 'prelude-scheme))
  154. (when prelude-xml-module
  155. (require 'prelude-xml))
  156. ;; load the personal settings (this includes `custom-file')
  157. (when (file-exists-p prelude-personal-dir)
  158. (mapc 'load (directory-files prelude-personal-dir nil "^[^#].*el$")))
  159. ;;; init.el ends here