summary refs log tree commit diff
path: root/init.el
blob: de81c2be304004e47505e1b580f8812dff49c10f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
;;; init.el --- This is where all emacs start. -*- lexical-binding: t -*-

;;; Commentary:

;;; Code:

(defconst emacs-start-time (current-time))

(defun report-time-since-load ()
  "Report how long it takes to load my Emacs configuration."
  (message "[after-init ]Loading init...done (%.3fs)"
	   (float-time (time-subtract (current-time) emacs-start-time))))

(add-hook 'after-init-hook #'(lambda () (report-time-since-load)) t)

;;; Configure how to install packages
(require 'package)

(add-to-list 'package-archives '("melpa" . "http://melpa.org/packages/"))
(add-to-list 'package-archives '("gnu" . "http://elpa.gnu.org/packages/"))
(add-to-list 'package-archives '("elpa" . "https://elpa.nongnu.org/nongnu/"))

(package-initialize)

;; Auto-install use-package.
(unless (package-installed-p 'use-package)
  (package-refresh-contents)
  (package-install 'use-package))

;; This is only needed once, near the top of the file
(eval-when-compile
  (require 'use-package))

;;; Custom configurations
;; Load custom code under the "lisp" and "config" directories.
(add-to-list 'load-path (expand-file-name "config" user-emacs-directory))
(add-to-list 'load-path (expand-file-name "lisp" user-emacs-directory))

(require 'init-ui)
(require 'init-modeline)
(require 'init-theme)
(require 'init-session)

(require 'init-osx)

(require 'init-buffer)
(require 'init-dired)
(require 'init-file)
(require 'init-time)
(require 'init-project)
(require 'init-snippets)
(require 'init-completion)
(require 'init-whitespace)
(require 'init-rg)

(require 'init-keys)
(require 'init-imenu)
(require 'init-git)

(require 'init-programming)
(require 'init-writing)
(require 'init-org)
(require 'init-eshell)

;;; Custom modules
(use-package my-cheeseboard)

(use-package my-uptime
  :init
  (add-to-list 'display-buffer-alist '("\\*slo-calculator\\*"
                                       (display-buffer-in-side-window)
                                       (side . left)
                                       (slot . 0)
                                       (window-width . 0.35))))

;;; Custom Variables
(setq custom-file (user-data "customizations.el"))
(load custom-file 'noerror)

(report-time-since-load)

;; Local Variables:
;; byte-compile-warnings: (not docstrings lexical noruntime)
;; End: