;;; -*- lexical-binding: t; -*- ;;; BEGIN OPTIMIZATION ;; Optimizations (mostly taken from doom) (defvar init-done-hook nil) ;; Don't garbage collect during init (add-hook 'init-done-hook `(lambda () (setq gc-cons-threshold ,(default-toplevel-value 'gc-cons-threshold)))) (setq gc-cons-threshold most-positive-fixnum) ;; Don't use file type handlers during init (let ((old-value (default-toplevel-value 'file-name-handler-alist))) (setq file-name-handler-alist nil) (set-default-toplevel-value 'file-name-handler-alist file-name-handler-alist) (put 'file-name-handler-alist 'initial-value old-value) (add-hook 'init-done-hook (lambda () (setq file-name-handler-alist ;; Merge instead of overwrite because there may have been changes to ;; `file-name-handler-alist' since startup we want to preserve. (delete-dups (append file-name-handler-alist old-value)))))) ;; Don't resize during init (setq frame-inhibit-implied-resize t) (setq inhibit-startup-screen t inhibit-startup-echo-area-message user-login-name) (advice-add #'display-startup-echo-area-message :override #'ignore) (advice-add #'display-startup-screen :override #'ignore) ;; Don't use advanced modes for scratch buffer (setq initial-major-mode 'fundamental-mode initial-scratch-message nil) ;; Don't cause rewrites when loading file (define-advice load-file (:override (file) silence) (load file nil 'nomessage)) (define-advice startup--load-user-init-file (:before (&rest _) undo-silence) (advice-remove #'load-file #'load-file@silence)) ;; Disable modeline (put 'mode-line-format 'initial-value (default-toplevel-value 'mode-line-format)) (setq-default mode-line-format nil) (dolist (buf (buffer-list)) (with-current-buffer buf (setq mode-line-format nil))) ;; Inhibit redraws (setq-default inhibit-redisplay t inhibit-message t) (defun reset-inhibited-vars-h () (setq-default inhibit-redisplay nil ;; Inhibiting `message' only prevents redraws and inhibit-message nil) (redraw-frame)) (add-hook 'after-init-hook #'reset-inhibited-vars-h) (define-advice startup--load-user-init-file (:after (&rest _) undo-inhibit-vars) (when init-file-had-error (reset-inhibited-vars-h)) (unless (default-toplevel-value 'mode-line-format) (setq-default mode-line-format (get 'mode-line-format 'initial-value)))) ;; Don't load toolbar (advice-add #'tool-bar-setup :override #'ignore) (define-advice startup--load-user-init-file (:before (&rest _) defer-tool-bar-setup) (advice-remove #'tool-bar-setup #'ignore) (add-transient-hook! 'tool-bar-mode (tool-bar-setup))) ;; Don't bother with MACOS exclusive options (setq command-line-ns-option-alist nil) ;;; END OPTIMIZATION ;; Packages (require 'package) (setq package-archives '(("gnu" . "https://elpa.gnu.org/packages/") ("melpa" . "https://melpa.org/packages/"))) (package-initialize) ;; File inclusion (defun path (f) (concat "/home/deppy/.emacs.d/" f)) (defmacro include (f) (load (path f))) ;; Keybinds (include "binds.el") ;; Style (theme, etc) (include "style.el") ;; Zotero (include "packages.el") ;; Secrets (include "secrets.el") ;; Behaviour (include "behaviour.el") ;; Emacs server (server-start) ;; Exwm (include "exwm.el") (custom-set-variables ;; custom-set-variables was added by Custom. ;; If you edit it by hand, you could mess it up, so be careful. ;; Your init file should contain only one such instance. ;; If there is more than one, they won't work right. '(display-time-24hr-format t) '(display-time-default-load-average nil) '(display-time-interval 15) '(display-time-mode t) '(evil-undo-system 'undo-tree) '(org-agenda-files '("/home/deppy/doc/org/todo.org")) '(package-selected-packages '(edwina markdown-preview-mode markdown-mode exwm org-superstar org-fragtog org-pretty-tags visual-fill writeroom-mode haskell-emacs treemacs-evil treemacs solarized-theme doom-modeline all-the-icons-dired page-break-lines all-the-icons dashboard org-evil zotero vterm magit undo-fu latex-math-preview use-package haskell-mode evil-surround undo-tree evil-org evil)) '(warning-suppress-log-types '((comp))) '(warning-suppress-types '((comp))) '(writeroom-mode-line t) '(writeroom-width 100) '(zotero-recognize-pdfdata "/home/deppy/.emacs.d/elpa/zotero-20211008.2207/pdftools/poppler-data/") '(zotero-recognize-pdfinfo "/home/deppy/.emacs.d/elpa/zotero-20211008.2207/pdftools/pdfinfo-linux-x86_64" t) '(zotero-recognize-pdftotext "/home/deppy/.emacs.d/elpa/zotero-20211008.2207/pdftools/pdftotext-linux-x86_64")) (custom-set-faces ;; custom-set-faces was added by Custom. ;; If you edit it by hand, you could mess it up, so be careful. ;; Your init file should contain only one such instance. ;; If there is more than one, they won't work right. '(bookmark-face ((t (:foreground "#fdf6e3")))) '(mode-line ((t (:underline nil :overline nil)))) '(mode-line-inactive ((t (:underline nil :overline nil))))) ;; Reset values (run-hooks 'init-done-hook)