about summary refs log blame commit diff stats
path: root/.emacs.d/init.el
blob: 422b2ab840bbf8aaa0b8b82af036e2a8fe95c55c (plain) (tree)
1
2
3
4
5
6
7
                                                                        


               


                                                                                     







                                                                      

                                 

                                                                       
                                                                          
 




                                                          
 



                                                                        







                                                                                    




























                           
 
                     
;;; init.el --- Init File -*- lexical-binding: t; no-byte-compile: t -*-
;;; Commentary:
;;; Code:

(setq load-prefer-newer t
      native-comp-async-report-warnings-errors nil
      byte-compile-warnings '(not free-vars unresolved noruntime lexical make-local))

(defvar save-dir (expand-file-name "save" user-emacs-directory))
(unless (file-exists-p save-dir)
  (make-directory save-dir))

(setq custom-file (expand-file-name "custom.el" user-emacs-directory))

(defgroup djm nil
  "Custom variables added by me."
  :group 'convenience)

(add-to-list 'load-path (expand-file-name "lisp" user-emacs-directory))
(add-to-list 'load-path (expand-file-name "contrib" user-emacs-directory))

(defun display-startup-echo-area-message ()
  "Custom version of `display-startup-echo-area-message'."
  (message "%s packages loaded in %0.1f seconds"
           (cdar elpaca--status-counts)
           (string-to-number (emacs-init-time))))

(add-hook 'after-init-hook #'(lambda ()
                               (setq gc-cons-threshold (* 100 1024 1024)
                                     gc-cons-percentage 0.1)))

;; Some straight functions need to be able to reload everything, so require won't do
(defun require! (feature &optional filename noerror)
  "Like `require', but if `force-reload' is non-nil, `load' instead.
`FEATURE', `FILENAME' and `NOERROR' have the same meaning as with require"
  (if (and (boundp 'force-reload) force-reload)
      (load (prin1-to-string feature) noerror nil nil t)
    (require feature filename noerror)))

(require 'init-packages)
(require 'init-ui)
(require 'init-compile)
(require 'init-editor)
(require 'init-search)
(require 'init-windows)
(require 'init-project)
(require 'init-modeline)
(require 'init-completion)
(require 'init-minibuffer)
(require 'init-navigation)
(require 'init-kill)
(require 'init-dired)
(require 'init-smartparens)
(require 'init-emacs-lisp)
(require 'init-clojure)
(require 'init-crux)
(require 'init-lsp)
(require 'init-git)
(require 'init-shell)
(require 'init-nix)
(require 'init-org)
;;(require 'init-latex)
(require 'init-xml)
(require 'init-web)
(require 'init-misc)
(require 'init-tramp)
(require 'init-sql)
(require 'init-local nil t)

;;; init.el ends here