1 ;;; Slime/etc
2 (setq inferior-lisp-program "/opt/homebrew/bin/sbcl")
3 (load (expand-file-name "~/.local/opt/quicklisp/slime-helper.el"))
4
5 ; Smooth mouse scroll a bit
6 (setq mouse-wheel-scroll-amount '(1 ((shift) . 1) ((control) . nil)))
7 (setq mouse-wheel-progressive-speed nil)
8
9 ;; normal home/end behavior
10 (global-set-key (kbd "<home>") 'beginning-of-line)
11 (global-set-key (kbd "<end>") 'end-of-line)
12
13 ;;; erc config
14 (setq erc-nick "speskk")
15
16 (defvar bootstrap-version)
17 (let ((bootstrap-file
18 (expand-file-name "straight/repos/straight.el/bootstrap.el" user-emacs-directory))
19 (bootstrap-version 5))
20 (unless (file-exists-p bootstrap-file)
21 (with-current-buffer
22 (url-retrieve-synchronously
23 "https://raw.githubusercontent.com/raxod502/straight.el/develop/install.el"
24 'silent 'inhibit-cookies)
25 (goto-char (point-max))
26 (eval-print-last-sexp)))
27 (load bootstrap-file nil 'nomessage))
28
29 ;; packages to install and load
30 (straight-use-package 'auto-complete)
31 (straight-use-package '(nano-theme :type git :host github
32 :repo "rougier/nano-theme"))
33 ;;(straight-use-package
34 ;; '(nano-emacs :type git :host github :repo "rougier/nano-emacs"))
35 (straight-use-package
36 '(slime-company :type git :host github :repo "anwyn/slime-company"))
37 (straight-use-package 'sublimity)
38 (straight-use-package 'dashboard)
39 (straight-use-package 'all-the-icons)
40 (straight-use-package 'neotree)
41 (straight-use-package 'rust-mode)
42 (straight-use-package 'powerline)
43 (straight-use-package 'markdown-mode)
44 (straight-use-package 'moe-theme)
45 (straight-use-package 'ample-theme)
46 (straight-use-package 'slime)
47 (straight-use-package 'ac-slime)
48 ;; Not enabled/required by default
49 (straight-use-package 'evil)
50 (straight-use-package 'dimmer)
51 (straight-use-package 'magit)
52 (straight-use-package 'diff-hl)
53 (straight-use-package 'powerline-evil)
54
55 ;; Git stuff
56 (require 'magit)
57 (require 'diff-hl)
58 (global-diff-hl-mode)
59 (add-hook 'magit-pre-refresh-hook 'diff-hl-magit-pre-refresh)
60 (add-hook 'magit-post-refresh-hook 'diff-hl-magit-post-refresh)
61
62 ;; Easily set cua mode on/off so that I don't have to
63 ;; use shift+insert for paste on mac
64 (global-set-key (kbd "C-c c") 'cua-mode)
65
66 (require 'dimmer)
67 (setq dimmer-fraction 0.4)
68 (dimmer-mode t)
69
70 ;; always enable ido mode
71 (require 'ido)
72 (ido-mode t)
73
74 (require 'evil)
75 (evil-mode 1)
76
77 ;; Enable tab behavior like vi
78 (straight-use-package '(evil-tabs :type git :host github
79 :repo "krisajenkins/evil-tabs"))
80 (require 'evil-tabs)
81 (global-evil-tabs-mode t)
82
83 (require 'auto-complete)
84 (global-auto-complete-mode t)
85
86 (require 'slime)
87 (require 'ac-slime)
88 (slime-setup '(slime-fancy ac-slime))
89 (add-hook 'slime-mode-hook 'set-up-slime-ac)
90 (add-hook 'slime-repl-mode-hook 'set-up-slime-ac)
91 (eval-after-load "auto-complete"
92 '(add-to-list 'ac-modes 'slime-repl-mode))
93
94 (require 'markdown-mode)
95
96 (require 'powerline)
97 (powerline-default-theme)
98 ;; Better powerline support for evil mode
99 (require 'powerline-evil)
100
101 (require 'neotree)
102 (global-set-key [f8] 'neotree-toggle)
103
104 (require 'dashboard)
105 (dashboard-setup-startup-hook)
106
107 (require 'all-the-icons)
108
109 (require 'sublimity)
110 (require 'sublimity-scroll)
111 (require 'sublimity-map) ;; experimental
112 (require 'sublimity-attractive)
113 (setq sublimity-scroll-weight 10
114 sublimity-scroll-drift-length 5)
115 (setq sublimity-map-size 30)
116 (setq sublimity-map-fraction 0.3)
117 (setq sublimity-map-text-scale -5)
118 (sublimity-map-set-delay nil)
119 (setq sublimity-attractive-centering-width nil)
120
121 ;(add-to-list 'default-frame-alist '(font . "GohuFont" ))
122 ;(set-face-attribute 'default t :font "GohuFont" )
123
124 (setq backup-directory-alist
125 `((".*" . ,temporary-file-directory)))
126 (setq auto-save-file-name-transforms
127 `((".*" ,temporary-file-directory t)))
128
129 ;(load-theme 'moe-light t)
130 (if (display-graphic-p)
131 (progn
132 (load-theme 'nano t)
133 (nano-dark))
134 nil)
135
136 ;; Allow M-up / M-down behavior to switch windows
137 (windmove-default-keybindings 'meta)
138
139 (display-time-mode t)
140 (display-line-numbers-mode t)
141
142 ;;; Custom commands
143 (load "/Users/swatson/.emacs.d/.erc-auth.el")
144 (defun connect-to-libera-erc () (interactive)
145 (erc :server "irc.libera.chat" :port "6667"
146 :nick "speskk" :password *libera-chat*))
147
148 (custom-set-variables
149 ;; custom-set-variables was added by Custom.
150 ;; If you edit it by hand, you could mess it up, so be careful.
151 ;; Your init file should contain only one such instance.
152 ;; If there is more than one, they won't work right.
153 '(custom-safe-themes
154 '("27a1dd6378f3782a593cc83e108a35c2b93e5ecc3bd9057313e1d88462701fcd" "f703efe04a108fcd4ad104e045b391c706035bce0314a30d72fbf0840b355c2c" "c9ddf33b383e74dac7690255dd2c3dfa1961a8e8a1d20e401c6572febef61045" "01106ca9b4446341ecb86a76b9db48f1100e2eb13980aa0ec6f6adf8e69fd9a7" "bf798e9e8ff00d4bf2512597f36e5a135ce48e477ce88a0764cfb5d8104e8163" "0feb7052df6cfc1733c1087d3876c26c66410e5f1337b039be44cb406b6187c6" default))
155 '(diff-hl-margin-mode t)
156 '(display-time-mode t)
157 '(frame-background-mode 'dark))
158 (custom-set-faces
159 ;; custom-set-faces was added by Custom.
160 ;; If you edit it by hand, you could mess it up, so be careful.
161 ;; Your init file should contain only one such instance.
162 ;; If there is more than one, they won't work right.
163 '(default ((t (:family "CodingFontTobi" :foundry "nil" :slant normal :weight normal :height 181 :width normal)))))