aboutsummaryrefslogtreecommitdiff
path: root/init.el
blob: 876d7b987971e46076a5b1c00b0d42196dfa55d4 (plain)
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
(defun my/load-config-file (filename)
  (load-file (expand-file-name filename user-emacs-directory)))
(my/load-config-file "straight-bootstrap.el")

(defun my/copy-char ()
  (interactive)
  "Puts a unicode character into the clipboard."
  (kill-new
   (make-string 1
		(read-char-by-name "Copy character (Unicode or hex):"))))

(setopt inhibit-splash-screen t)
(setopt make-backup-files nil)
(setopt auto-save-default nil)
(setopt create-lockfiles nil)

(setopt auto-revert-avoid-polling t)
(setopt auto-revert-interval 5)
(setopt auto-revert-check-vc-info t)
(global-auto-revert-mode)

(windmove-default-keybindings 'control)

(setopt sentence-end-double-space nil)
(cua-mode 1)

(setopt enable-recursive-minibuffers t)
(setopt completion-cycle-threshold 1)
(setopt completions-detailed t)
(setopt tab-always-indent 'complete)

(setopt completion-auto-help 'always)
(setopt completions-max-height 20)
(setopt completions-format 'one-column)
(setopt completion-auto-select 'second-tab)

(keymap-set minibuffer-mode-map "TAB" 'minibuffer-complete)

(setopt line-number-mode t)
(setopt column-number-mode t)

(setopt x-underline-at-descent-line nil)
(setopt switch-to-buffer-obey-display-actions t)

(setopt mouse-wheel-tilt-scroll t)
(setopt mouse-wheel-flip-direction t)

(blink-cursor-mode -1)
(pixel-scroll-precision-mode)

(add-hook 'prog-mode-hook 'display-line-numbers-mode)
(add-hook 'text-mode-hook 'display-line-numbers-mode)
(setopt display-line-numbers-width 3)

(add-hook 'text-mode-hook 'visual-line-mode)

(setopt tab-bar-show 1)

(add-to-list 'tab-bar-format 'tab-bar-format-align-right 'append)
(add-to-list 'tab-bar-format 'tab-bar-format-global 'append)

(setopt ring-bell-function 'ignore)

(add-to-list 'auto-mode-alist '("\\.md\\'" . text-mode))

(setopt straight-use-package-by-default t)

(use-package diminish)

(use-package gcmh
  :diminish gcmh-mode
  :config
  (gcmh-mode 1))

(use-package emacs
  :hook
  ((prog-mode . electric-pair-mode))
  :bind
  (("C-x C-c" . nil)
   ("C-x R" . restart-emacs)
   ("C-c c c" . calc)
   ("C-c c f" . full-calc)
   ("C-x 8 S-<return>" . my/copy-char)))

(use-package consult
  :bind
  (("C-x b" . consult-buffer)
   ("C-s"   . consult-line)))

(use-package orderless
  :custom
  (completion-styles '(orderless))
  (completion-category-overrides '((file (styles partial-completion)))))

(use-package which-key
  :diminish which-key-mode
  :config
  (which-key-mode))

(use-package marginalia
  :config
  (marginalia-mode))

(use-package vertico
  :init
  (vertico-mode))

(use-package eat
  :custom
  (eat-term-name "xterm")
  :bind
  (("C-c t" . eat))
  :config
  (eat-eshell-mode)
  (eat-eshell-visual-command-mode))

(use-package gptel
  :config
  (setq gptel-model 'deepseek-r1:7b
	gptel-backend (gptel-make-ollama "ollama"
			:stream t
			:host "localhost:11434"
			:models '(deepseek-r1:7b)))
  :bind
  (("C-c g" . gptel)))

(use-package no-littering
  :custom
  (custom-file (no-littering-expand-etc-file-name "custom.el")))

(straight-use-package 'org)		; org complains about this for some reason

(my/load-config-file "writing.el")
(my/load-config-file "code.el")