dotfiles/emacs/.emacs.d/init.el
2021-03-08 14:16:23 -05:00

98 lines
2.9 KiB
EmacsLisp

;; -*- lexical-binding: t; -*-
;; Some startup time optimizations stolen from Doom emacs
(setq gc-cons-threshold most-positive-fixnum ; 2^61 bytes
gc-cons-percentage 0.6)
(defvar file-name-handler-alist-backup file-name-handler-alist)
(setq file-name-handler-alist nil)
(add-hook 'emacs-startup-hook
(lambda ()
(setq gc-cons-threshold 16777216 ; 16mb
gc-cons-percentage 0.1
file-name-handler-alist file-name-handler-alist-backup)))
;; Start the server after init
(add-hook 'emacs-startup-hook #'server-start)
;; Bootstrap the straight.el package manager
(defvar bootstrap-version)
(let ((bootstrap-file
(expand-file-name "straight/repos/straight.el/bootstrap.el"
user-emacs-directory))
(bootstrap-version 5))
(unless (file-exists-p bootstrap-file)
(with-current-buffer
(url-retrieve-synchronously
"https://raw.githubusercontent.com/raxod502/straight.el/develop/install.el"
'silent 'inhibit-cookies)
(goto-char (point-max))
(eval-print-last-sexp)))
(load bootstrap-file nil 'nomessage))
;; Load up use-package for subsequent configuration
(straight-use-package 'use-package)
(setq straight-use-package-by-default t)
;; Fix $PATH
(use-package exec-path-from-shell
:hook (after-init . exec-path-from-shell-initialize)
:custom
(exec-path-from-shell-variables
'("PATH" "MANPATH" "LEDGER_FILE" "LOLA_HOME"
"MODELS_HOME" "LOLA_TRAVEL_SERVICE_HOME" "WORKON_HOME"
"PIPENV_VERBOSITY" "PIPENV_DONT_LOAD_ENV"
"PIPENV_MAX_DEPTH" "PYENV_ROOT" "KOPS_STATE_STORE"
"PLAID_CLIENT_ID" "PLAID_SECRET" "PLAID_ENVIRONMENT"))
(exec-path-from-shell-check-startup-files nil)
(exec-path-from-shell-arguments '("-l")))
;; Don't use this file as the custom-file
(setq custom-file (expand-file-name "custom.el" user-emacs-directory))
;; Load config modules
(add-to-list 'load-path (expand-file-name "config" user-emacs-directory))
(require 'init-defaults)
(require 'init-undo)
(require 'init-evil)
(require 'init-keybindings)
(require 'init-auth)
(require 'init-lib)
(require 'init-org)
(require 'init-profiler)
(require 'init-built-ins)
(require 'init-dashboard)
(require 'init-dotfiles)
(require 'init-buffers)
(require 'init-files)
(require 'init-windows)
(require 'init-dired)
(require 'init-completion)
(require 'init-editing)
(require 'init-ui)
(require 'init-projects)
(require 'init-git)
(require 'init-ide)
(require 'init-vterm)
(require 'init-eshell)
(require 'init-help)
(require 'init-python)
(require 'init-clojure)
(require 'init-lisp)
(require 'init-js)
(require 'init-yaml)
(require 'init-groovy)
(require 'init-terraform)
(require 'init-docker)
(require 'init-run-command)
(require 'init-aws)
(require 'init-prodigy)
(require 'init-direnv)
(require 'init-email)
(require 'init-kubernetes)
(require 'init-epub)
(require 'init-homebrew)
(when (file-exists-p custom-file)
(load custom-file 'noerror 'nomessage))