1 ;; -*- lexical-binding: t; -*-
4 (let ((lisp-dir (expand-file-name "lisp" user-emacs-directory)))
5 (make-directory lisp-dir t)
6 (add-to-list 'load-path lisp-dir))
8 (setopt custom-file (expand-file-name "custom.el" user-emacs-directory))
11 (setopt package-archives '(("gnu" . "https://elpa.gnu.org/packages/")
12 ("nongnu" . "https://elpa.nongnu.org/nongnu/")
13 ("melpa-stable" . "https://stable.melpa.org/packages/")
14 ("melpa" . "https://melpa.org/packages/"))
15 package-archive-priorities '(("gnu" . 3)
19 package-pinned-packages '((sly . "melpa"))
20 package-selected-packages '(elfeed magit nhexl-mode notmuch paredit paredit-menu sly))
24 (setopt tab-always-indent 'complete
25 completion-ignore-case t
26 completion-styles '(basic substring initials flex)
27 completion-preview-mode t
28 completion-auto-select t
29 completion-auto-help 'visible
30 completion-show-help nil
31 completions-sort 'historical
32 completions-format 'one-column
33 completions-max-height 20)
34 (setopt fido-vertical-mode t)
36 ;; This hack allows using my default set of completion styles in fido instead of being forced to
37 ;; use flex. Flex is especially annoying since it does not prioritise prefix matches.
38 (defun lh/advice-fido-setup (func &rest args)
39 (let ((cs completion-styles))
42 (setq-local completion-styles cs))))
43 (advice-add 'icomplete--fido-mode-setup :around 'lh/advice-fido-setup)
48 (defun lh/enable-trailing-whitespace ()
49 (setq show-trailing-whitespace t))
50 (add-hook 'prog-mode-hook 'lh/enable-trailing-whitespace)
53 (setopt inferior-lisp-program "sbcl")
54 (defun lh/enable-paredit-menu ()
55 (require 'paredit-menu))
56 (add-hook 'paredit-mode-hook 'lh/enable-paredit-menu)
57 (add-hook 'lisp-mode-hook 'paredit-mode)
58 (add-hook 'emacs-lisp-mode-hook 'paredit-mode)
61 (setopt focus-follows-mouse t
62 frame-resize-pixelwise t
63 scroll-conservatively 100
64 pixel-scroll-precision-mode t
67 ring-bell-function 'ignore
69 recentf-max-saved-items 200
72 delete-selection-mode t
80 (let ((backup-dir (expand-file-name "backup" user-emacs-directory)))
81 (make-directory backup-dir t)
82 (setopt backup-directory-alist `(("." . ,backup-dir))))
84 (put 'narrow-to-region 'disabled nil)
86 ;;;; Private and custom overrides
87 (let ((private-file (expand-file-name "private.el" user-emacs-directory)))
88 (when (file-exists-p custom-file)
90 (when (file-exists-p private-file)