summaryrefslogtreecommitdiffstats
path: root/Emacs.org
diff options
context:
space:
mode:
Diffstat (limited to 'Emacs.org')
-rw-r--r--Emacs.org441
1 files changed, 88 insertions, 353 deletions
diff --git a/Emacs.org b/Emacs.org
index dee6877..77d656f 100644
--- a/Emacs.org
+++ b/Emacs.org
@@ -43,7 +43,6 @@
43 - [[#mu4e][Mu4e]] 43 - [[#mu4e][Mu4e]]
44 - [[#rss][RSS]] 44 - [[#rss][RSS]]
45- [[#runtime-performance][Runtime Performance]] 45- [[#runtime-performance][Runtime Performance]]
46- [[#emacs-manifest][Emacs Manifest]]
47 46
48* Startup Performance 47* Startup Performance
49 48
@@ -55,7 +54,7 @@
55 (message "Emacs loaded in %s with %d garbage collections." 54 (message "Emacs loaded in %s with %d garbage collections."
56 (format "%.2f seconds" 55 (format "%.2f seconds"
57 (float-time 56 (float-time
58 (time-subtract after-init-time before-init-time))) 57 (time-subtract after-init-time before-init-time)))
59 gcs-done)) 58 gcs-done))
60 59
61#+end_src 60#+end_src
@@ -64,12 +63,12 @@
64=jd/startup= function will be invoke after emacs startup 63=jd/startup= function will be invoke after emacs startup
65 64
66#+begin_src emacs-lisp 65#+begin_src emacs-lisp
67 (defun jd/startup () 66 (defun jd/startup ()
68 (electric-pair-mode 1) 67 (electric-pair-mode 1)
69 (global-company-mode 1) 68 (global-company-mode 1)
70 (jd/display-startup-time)) 69 (jd/display-startup-time))
71 70
72 (add-hook 'emacs-startup-hook #'jd/startup) 71 (add-hook 'emacs-startup-hook #'jd/startup)
73#+end_src 72#+end_src
74 73
75* User information setup 74* User information setup
@@ -100,24 +99,24 @@
100 99
101#+begin_src emacs-lisp 100#+begin_src emacs-lisp
102 101
103 (require 'package) 102 (require 'package)
104 (setq package-archives '(("melpa" . "https://melpa.org/packages/") 103 (setq package-archives '(("melpa" . "https://melpa.org/packages/")
105 ("org" . "https://orgmode.org/elpa/") 104 ("org" . "https://orgmode.org/elpa/")
106 ("gnu-devel" . "https://elpa.gnu.org/devel/") 105 ("gnu-devel" . "https://elpa.gnu.org/devel/")
107 ("elpa" . "https://elpa.gnu.org/packages/"))) 106 ("elpa" . "https://elpa.gnu.org/packages/")))
108 (package-initialize) 107 (package-initialize)
109 108
110 (unless package-archive-contents 109 (unless package-archive-contents
111 (package-refresh-contents)) 110 (package-refresh-contents))
112 111
113 (unless (package-installed-p 'use-package) 112 (unless (package-installed-p 'use-package)
114 (package-install 'use-package)) 113 (package-install 'use-package))
115 114
116 ;; (setq use-package-always-ensure t) 115 (setq use-package-always-ensure t)
117 116
118 (add-to-list 'load-path ".config/emacs/jd/") 117 (add-to-list 'load-path ".config/emacs/jd/")
119 118
120 (require 'use-package) 119 (require 'use-package)
121 120
122#+end_src 121#+end_src
123 122
@@ -138,14 +137,6 @@
138 137
139#+end_src 138#+end_src
140 139
141*Guix Packages*
142
143#+begin_src scheme :noweb-ref packages :noweb-sep ""
144
145 "emacs-general"
146
147#+end_src
148
149** Evil mode setup 140** Evil mode setup
150 141
151#+begin_src emacs-lisp 142#+begin_src emacs-lisp
@@ -176,16 +167,6 @@
176 167
177#+end_src 168#+end_src
178 169
179*Guix Packages*
180
181#+begin_src scheme :noweb-ref packages :noweb-sep ""
182
183 "emacs-undo-tree"
184 "emacs-evil"
185 "emacs-evil-collection"
186
187#+end_src
188
189*Keybinds* 170*Keybinds*
190 171
191#+begin_src emacs-lisp 172#+begin_src emacs-lisp
@@ -230,16 +211,6 @@
230 211
231#+end_src 212#+end_src
232 213
233*Guix Packages*
234
235#+begin_src scheme :noweb-ref packages :noweb-sep ""
236
237 "emacs-diminish"
238 "emacs-doom-themes"
239 "font-hack"
240
241#+end_src
242
243** Hl todo 214** Hl todo
244 215
245#+begin_src emacs-lisp 216#+begin_src emacs-lisp
@@ -255,48 +226,31 @@
255 226
256#+end_src 227#+end_src
257 228
258*Guix Packages*
259
260#+begin_src scheme :noweb-ref packages :noweb-sep ""
261
262 "emacs-hl-todo"
263
264#+end_src
265
266** Ivy and Counsel 229** Ivy and Counsel
267 230
268#+begin_src emacs-lisp 231#+begin_src emacs-lisp
269 232
270 (defun jd/switch-buffer () 233 (defun jd/switch-buffer ()
271 (interactive) 234 (interactive)
272 (let ((completion-regexp-list '("\\`[^*]" 235 (let ((completion-regexp-list '("\\`[^*]"
273 "\\`\\([^T]\\|T\\($\\|[^A]\\|A\\($\\|[^G]\\|G\\($\\|[^S]\\|S.\\)\\)\\)\\).*"))) 236 "\\`\\([^T]\\|T\\($\\|[^A]\\|A\\($\\|[^G]\\|G\\($\\|[^S]\\|S.\\)\\)\\)\\).*")))
274 (call-interactively 'counsel-switch-buffer))) 237 (call-interactively 'counsel-switch-buffer)))
275
276 (use-package ivy
277 :diminish
278 :bind
279 (("C-s" . swiper)
280 :map ivy-minibuffer-map
281 ("C-k" . ivy-previous-line)
282 ("C-j" . ivy-next-line)
283 :map ivy-switch-buffer-map
284 ("C-k" . ivy-previous-line))
285 :config
286 (ivy-mode 1))
287
288 (use-package counsel
289 :config
290 (counsel-mode 1))
291
292#+end_src
293
294*Guix Packages*
295 238
296#+begin_src scheme :noweb-ref packages :noweb-sep "" 239 (use-package ivy
240 :diminish
241 :bind
242 (("C-s" . swiper)
243 :map ivy-minibuffer-map
244 ("C-k" . ivy-previous-line)
245 ("C-j" . ivy-next-line)
246 :map ivy-switch-buffer-map
247 ("C-k" . ivy-previous-line))
248 :config
249 (ivy-mode 1))
297 250
298 "emacs-counsel" 251 (use-package counsel
299 "emacs-ivy" 252 :config
253 (counsel-mode 1))
300 254
301#+end_src 255#+end_src
302 256
@@ -328,14 +282,6 @@
328 282
329#+end_src 283#+end_src
330 284
331*Guix Packages*
332
333#+begin_src scheme :noweb-ref packages :noweb-sep ""
334
335 "emacs-which-key"
336
337#+end_src
338
339** Modline 285** Modline
340 286
341#+begin_src emacs-lisp 287#+begin_src emacs-lisp
@@ -348,14 +294,6 @@
348 294
349#+end_src 295#+end_src
350 296
351*Guix Packages*
352
353#+begin_src scheme :noweb-ref packages :noweb-sep ""
354
355 "emacs-doom-modeline"
356
357#+end_src
358
359** Hydra 297** Hydra
360 298
361#+begin_src emacs-lisp 299#+begin_src emacs-lisp
@@ -398,14 +336,6 @@
398 336
399#+end_src 337#+end_src
400 338
401*Guix Packages*
402
403#+begin_src scheme :noweb-ref packages :noweb-sep ""
404
405 "emacs-hydra"
406
407#+end_src
408
409** Beacon 339** Beacon
410 340
411#+begin_src emacs-lisp 341#+begin_src emacs-lisp
@@ -416,14 +346,6 @@
416 346
417#+end_src 347#+end_src
418 348
419*Guix Packages*
420
421#+begin_src scheme :noweb-ref packages :noweb-sep ""
422
423 "emacs-beacon"
424
425#+end_src
426
427** Other Keybindings 349** Other Keybindings
428*** Files 350*** Files
429 351
@@ -512,14 +434,6 @@
512 434
513#+end_src 435#+end_src
514 436
515*Guix Packages*
516
517#+begin_src scheme :noweb-ref packages :noweb-sep ""
518
519 "emacs-org"
520
521#+end_src
522
523*Keybinds* 437*Keybinds*
524 438
525#+begin_src emacs-lisp 439#+begin_src emacs-lisp
@@ -546,14 +460,6 @@
546 460
547#+end_src 461#+end_src
548 462
549*Guix Packages*
550
551#+begin_src scheme :noweb-ref packages :noweb-sep ""
552
553 "emacs-evil-org"
554
555#+end_src
556
557** Org make toc 463** Org make toc
558 464
559#+begin_src emacs-lisp 465#+begin_src emacs-lisp
@@ -564,14 +470,6 @@
564 470
565#+end_src 471#+end_src
566 472
567*Guix Packages*
568
569#+begin_src scheme :noweb-ref packages :noweb-sep ""
570
571 "emacs-toc-org"
572
573#+end_src
574
575** Org fonts 473** Org fonts
576 474
577#+begin_src emacs-lisp 475#+begin_src emacs-lisp
@@ -672,14 +570,6 @@
672 570
673#+end_src 571#+end_src
674 572
675*Guix Packages*
676
677#+begin_src scheme :noweb-ref packages :noweb-sep ""
678
679 "emacs-visual-fill-column"
680
681#+end_src
682
683** Org superstar 573** Org superstar
684 574
685#+begin_src emacs-lisp 575#+begin_src emacs-lisp
@@ -693,14 +583,6 @@
693 583
694#+end_src 584#+end_src
695 585
696*Guix Packages*
697
698#+begin_src scheme :noweb-ref packages :noweb-sep ""
699
700 "emacs-org-superstar"
701
702#+end_src
703
704** Org roam 586** Org roam
705 587
706#+begin_src emacs-lisp 588#+begin_src emacs-lisp
@@ -738,14 +620,6 @@
738 620
739#+end_src 621#+end_src
740 622
741*Guix Packages*
742
743#+begin_src scheme :noweb-ref packages :noweb-sep ""
744
745 "emacs-org-roam"
746
747#+end_src
748
749* Development 623* Development
750** Languages 624** Languages
751 625
@@ -768,15 +642,6 @@
768 642
769#+end_src 643#+end_src
770 644
771*Guix Packages*
772
773#+begin_src scheme :noweb-ref packages :noweb-sep ""
774
775 "emacs-lsp-mode"
776 "emacs-lsp-ivy"
777
778#+end_src
779
780*** Python 645*** Python
781 646
782#+begin_src emacs-lisp 647#+begin_src emacs-lisp
@@ -787,26 +652,17 @@
787 (pyvenv-activate project-venv-path) 652 (pyvenv-activate project-venv-path)
788 (pyvenv-mode)))) 653 (pyvenv-mode))))
789 654
790;; (use-package python-mode ;;TODO: find alternative 655 ;; (use-package python-mode ;;TODO: find alternative
791;; :hook (python-mode . lsp-deferred) 656 ;; :hook (python-mode . lsp-deferred)
792;; :hook (python-mode . jd/python-mode-setup) 657 ;; :hook (python-mode . jd/python-mode-setup)
793;; :config 658 ;; :config
794;; (add-to-list 'auto-mode-alist '("\\.py\\'" . python-mode))) 659 ;; (add-to-list 'auto-mode-alist '("\\.py\\'" . python-mode)))
795 660
796 (use-package pyvenv 661 (use-package pyvenv
797 :after python-mode) 662 :after python-mode)
798 663
799#+end_src 664#+end_src
800 665
801*Guix Packages*
802
803#+begin_src scheme :noweb-ref packages :noweb-sep ""
804
805 "emacs-pyvenv"
806 ;; "emacs-python-mode"
807
808#+end_src
809
810*** TypeScript 666*** TypeScript
811 667
812#+begin_src emacs-lisp 668#+begin_src emacs-lisp
@@ -846,30 +702,11 @@
846 702
847#+end_src 703#+end_src
848 704
849*Guix Packages*
850
851#+begin_src scheme :noweb-ref packages :noweb-sep ""
852
853 "emacs-typescript-mode"
854 "emacs-web-mode"
855 "emacs-tide"
856 "emacs-flycheck"
857
858#+end_src
859
860*** Yaml 705*** Yaml
861 706
862#+begin_src emacs-lisp 707#+begin_src emacs-lisp
863 708
864 (use-package yaml-mode) 709 (use-package yaml-mode)
865
866#+end_src
867
868*Guix Packages*
869
870#+begin_src scheme :noweb-ref packages :noweb-sep ""
871
872 "emacs-yaml-mode"
873 710
874#+end_src 711#+end_src
875 712
@@ -881,14 +718,6 @@
881 718
882#+end_src 719#+end_src
883 720
884*Guix Packages*
885
886#+begin_src scheme :noweb-ref packages :noweb-sep ""
887
888 "emacs-docker"
889
890#+end_src
891
892*Keybinds* 721*Keybinds*
893 722
894#+begin_src emacs-lisp 723#+begin_src emacs-lisp
@@ -904,30 +733,21 @@
904 733
905#+begin_src emacs-lisp 734#+begin_src emacs-lisp
906 735
907 (use-package company 736 (use-package company
908 :after lsp-mode 737 :after lsp-mode
909 :hook (lsp-mode . company-mode) 738 :hook (lsp-mode . company-mode)
910 :bind (:map company-active-map 739 :bind (:map company-active-map
911 ("<tab>" . company-complete-selection)) 740 ("<tab>" . company-complete-selection))
912 (:map lsp-mode-map 741 (:map lsp-mode-map
913 ("<tab>" . company-indent-or-complete-common)) 742 ("<tab>" . company-indent-or-complete-common))
914 :custom 743 :custom
915 (company-minimum-prefix-length 1) 744 (company-minimum-prefix-length 1)
916 (company-idle-delay 0.0) 745 (company-idle-delay 0.0)
917 :config 746 :config
918 (global-company-mode)) 747 (global-company-mode))
919
920 (use-package company-box
921 :hook (company-mode . company-box-mode))
922
923#+end_src
924
925*Guix Packages*
926
927#+begin_src scheme :noweb-ref packages :noweb-sep ""
928 748
929 "emacs-company" 749 (use-package company-box
930 "emacs-company-box" 750 :hook (company-mode . company-box-mode))
931 751
932#+end_src 752#+end_src
933 753
@@ -947,14 +767,6 @@
947 767
948#+end_src 768#+end_src
949 769
950*Guix Packages*
951
952#+begin_src scheme :noweb-ref packages :noweb-sep ""
953
954 "emacs-projectile"
955
956#+end_src
957
958*Keybinds* 770*Keybinds*
959 771
960#+begin_src emacs-lisp 772#+begin_src emacs-lisp
@@ -998,14 +810,6 @@
998 810
999#+end_src 811#+end_src
1000 812
1001*Guix Packages*
1002
1003#+begin_src scheme :noweb-ref packages :noweb-sep ""
1004
1005 "emacs-neotree"
1006
1007#+end_src
1008
1009*Keybinds* 813*Keybinds*
1010 814
1011#+begin_src emacs-lisp 815#+begin_src emacs-lisp
@@ -1025,14 +829,6 @@
1025 829
1026#+end_src 830#+end_src
1027 831
1028*Guix Packages*
1029
1030#+begin_src scheme :noweb-ref packages :noweb-sep ""
1031
1032 "emacs-magit"
1033
1034#+end_src
1035
1036*Keybinds* 832*Keybinds*
1037 833
1038#+begin_src emacs-lisp 834#+begin_src emacs-lisp
@@ -1064,57 +860,40 @@
1064 860
1065#+end_src 861#+end_src
1066 862
1067*Guix Packages*
1068
1069#+begin_src scheme :noweb-ref packages :noweb-sep ""
1070
1071 "emacs-vterm"
1072
1073#+end_src
1074
1075*Keybinds* 863*Keybinds*
1076 864
1077#+begin_src emacs-lisp 865#+begin_src emacs-lisp
1078 866
1079 (jd/leader-key-def 867 (jd/leader-key-def
1080 "ot" '(jd/open-new-vterm :which-key "Open terminal in current window")) 868 "ot" '(jd/open-new-vterm :which-key "Open terminal in current window"))
1081 869
1082#+end_src 870#+end_src
1083 871
1084** Dired 872** Dired
1085 873
1086#+begin_src emacs-lisp 874#+begin_src emacs-lisp
1087 875
1088 (use-package all-the-icons-dired 876 (use-package all-the-icons-dired
1089 :hook (dired-mode . all-the-icons-dired-mode)) 877 :hook (dired-mode . all-the-icons-dired-mode))
1090
1091 (use-package dired-ranger)
1092
1093 (use-package dired
1094 :ensure nil
1095 :commands (dired dired-jump)
1096 :custom ((dired-listing-switches "-agho --group-directories-first"))
1097 :config
1098 (evil-collection-define-key 'normal 'dired-mode-map
1099 "y" 'dired-ranger-copy
1100 "p" 'dired-ranger-paste
1101 "X" 'dired-ranger-move
1102 "h" 'dired-up-directory
1103 "t" 'dired-create-empty-file
1104 "T" 'dired-toggle-marks
1105 "l" 'dired-single-buffer)
1106 (setq dired-kill-when-opening-new-dired-buffer t)
1107 (evil-define-key 'normal dired-mode-map (kbd "q") 'kill-current-buffer))
1108
1109 878
1110#+end_src 879 (use-package dired-ranger)
1111
1112*Guix Packages*
1113 880
1114#+begin_src scheme :noweb-ref packages :noweb-sep "" 881 (use-package dired
882 :ensure nil
883 :commands (dired dired-jump)
884 :custom ((dired-listing-switches "-agho --group-directories-first"))
885 :config
886 (evil-collection-define-key 'normal 'dired-mode-map
887 "y" 'dired-ranger-copy
888 "p" 'dired-ranger-paste
889 "X" 'dired-ranger-move
890 "h" 'dired-up-directory
891 "t" 'dired-create-empty-file
892 "T" 'dired-toggle-marks
893 "l" 'dired-find-file)
894 (setq dired-kill-when-opening-new-dired-buffer t)
895 (evil-define-key 'normal dired-mode-map (kbd "q") 'kill-current-buffer))
1115 896
1116 "emacs-dired-hacks"
1117 "emacs-all-the-icons-dired"
1118 897
1119#+end_src 898#+end_src
1120 899
@@ -1122,25 +901,17 @@
1122 901
1123#+begin_src emacs-lisp 902#+begin_src emacs-lisp
1124 903
1125 (use-package emms 904 (use-package emms
1126 :config 905 :config
1127 (require 'emms-setup) 906 (require 'emms-setup)
1128 (emms-all) 907 (emms-all)
1129 (emms-standard) 908 (emms-standard)
1130 (emms-default-players) 909 (emms-default-players)
1131 (emms-mode-line-disable) 910 (emms-mode-line-disable)
1132 ; (setq emms-info-functions '(emms-info-tinytag)) 911 ; (setq emms-info-functions '(emms-info-tinytag))
1133 (setq emms-browser-covers 'emms-browser-cache-thumbnail-async) 912 (setq emms-browser-covers 'emms-browser-cache-thumbnail-async)
1134 (setq emms-lyrics-dir "~/Documents/music/lyrics") 913 (setq emms-lyrics-dir "~/Documents/music/lyrics")
1135 (emms-add-directory-tree "~/Documents/music/")) 914 (emms-add-directory-tree "~/Documents/music/"))
1136
1137#+end_src
1138
1139*Guix Packages*
1140
1141#+begin_src scheme :noweb-ref packages :noweb-sep ""
1142
1143 "emacs-emms"
1144 915
1145#+end_src 916#+end_src
1146 917
@@ -1152,29 +923,13 @@
1152 923
1153#+end_src 924#+end_src
1154 925
1155*Guix Packages*
1156
1157#+begin_src scheme :noweb-ref packages :noweb-sep ""
1158
1159 "emacs-pdf-tools"
1160
1161#+end_src
1162
1163** Mu4e 926** Mu4e
1164- Load my [[./Mu4e.org][mu4e]] config 927- Load my [[./Mail.org][mu4e]] config
1165 928
1166#+begin_src emacs-lisp 929#+begin_src emacs-lisp
1167 (require 'jd-mu4e) 930 (require 'jd-mu4e)
1168#+end_src 931#+end_src
1169 932
1170*Guix Packages*
1171
1172#+begin_src scheme :noweb-ref packages :noweb-sep ""
1173
1174 "mu"
1175
1176#+end_src
1177
1178** RSS 933** RSS
1179 934
1180#+begin_src emacs-lisp 935#+begin_src emacs-lisp
@@ -1186,28 +941,8 @@
1186 941
1187#+end_src 942#+end_src
1188 943
1189*Guix Packages*
1190
1191#+begin_src scheme :noweb-ref packages :noweb-sep ""
1192
1193 "emacs-elfeed"
1194
1195#+end_src
1196
1197* Runtime Performance 944* Runtime Performance
1198 945
1199#+begin_src emacs-lisp 946#+begin_src emacs-lisp
1200 (setq gc-cons-threshold (* 2 1000 1000)) 947 (setq gc-cons-threshold (* 2 1000 1000))
1201#+end_src 948#+end_src
1202
1203* Emacs Manifest
1204
1205#+begin_src scheme :tangle .config/guix/manifests/emacs.scm :noweb yes
1206
1207 (specifications->manifest
1208 '("emacs"
1209 ;;"emacs-native-comp"
1210 <<packages>>
1211 ))
1212
1213#+end_src