diff --git a/.config/emacs/init.org b/.config/emacs/init.org
index 67e401b..236f1f9 100644
--- a/.config/emacs/init.org
+++ b/.config/emacs/init.org
@@ -113,9 +113,8 @@ Finish up
(provide 'early-init)
;;; early-init.el ends here
#+end_src
-
** Elpaca
-#+BEGIN_SRC emacs-lisp
+#+BEGIN_SRC emacs-lisp :tangle no
;; -*- lexical-binding: t -*-
(defvar elpaca-installer-version 0.3)
(defvar elpaca-directory (expand-file-name "elpaca/" user-emacs-directory))
@@ -158,13 +157,97 @@ Finish up
(setq elpaca-queue-limit 30)
#+END_SRC
+** Package Management
+#+begin_src emacs-lisp
+;; Also read:
+(setq package-archives
+ '(("elpa" . "https://elpa.gnu.org/packages/")
+ ("elpa-devel" . "https://elpa.gnu.org/devel/")
+ ("nongnu" . "https://elpa.nongnu.org/nongnu/")
+ ("melpa" . "https://melpa.org/packages/")))
+;; Add MELPA to `package-archives'
+(add-to-list 'package-archives
+ '("melpa" . "https://melpa.org/packages/"))
+
+
+;; Proof-of-concept to install a list of packages
+(mapc
+ (lambda (package)
+ (unless (package-installed-p package)
+ (package-install package)))
+ '(recentf
+ dashboard
+ olivetti
+ ligature
+ highlight-quoted
+ doom-modeline
+ hydra
+ multiple-cursors
+ evil
+ evil-collection
+ evil-surround
+ evil-snipe
+ evil-commentary
+ evil-goggles
+ all-the-icons-ibuffer
+ ace-window
+ popper
+ centaur-tabs
+ all-the-icons-completion
+ vertico
+ savehist
+ embark
+ embark-consult
+ marginalia
+ all-the-icons-completion
+ orderless
+ consult
+ consult-lsp
+ dirvish
+ smtpmail
+ sendmail
+ age
+ avy
+ helpful
+ vterm
+ undo-fu
+ undo-fu-session
+ vundo
+ which-key
+ company
+ company
+ lsp-mode
+ lsp-ui
+ flycheck
+ dap-mode
+ rustic
+ ob-rust
+ typescript-mode
+ disaster
+ haskell-mode
+ clojure-mode
+ cider
+ fsharp-mode
+ go-mode
+ json-mode
+ markdown-mode
+ org-bullets
+ org-kanban
+ restclient
+ magit))
+
+(package-initialize)
+(setopt package-vc-selected-packages
+ '((dashboard . "554dc6f")
+ (doom-themes :url "https://github.com/JosephFerano/doom-themes")))
+
+#+end_src
** Benchmarking
This is commented out since it adds ever so slightly to init time, but keep it around in case we
need to benchmark slow init times later.
#+begin_src emacs-lisp :tangle no
-(elpaca 'benchmark-init)
(require 'benchmark-init)
(add-hook 'after-init-hook 'benchmark-init/deactivate)
#+end_src
@@ -228,20 +311,20 @@ This shows up when building Emacs;
#+end_quote
** Visuals
*** Initial Buffer
-#+begin_src emacs-lisp
+#+begin_src emacs-lisp :tangle no
(setq initial-buffer-choice "~/.config/emacs/init.org")
#+end_src
*** Dashboard
Use Dashboard.el. First load `all-the-icons` for nicer rendering
+#+begin_src emacs-lisp
-#+begin_src emacs-lisp :tangle no
;; (elpaca 'all-the-icons)
-(elpaca (dashboard :ref "554dc6f")
-;; (elpaca 'dashboard
- (dashboard-setup-startup-hook)
+;; (package-vc-install (dashboard :ref)
+(require 'dashboard)
+(dashboard-setup-startup-hook)
(setq dashboard-items '((recents . 6)
- (projecss . 5)
+ (projects . 5)
(bookmarks . 5)))
(setq dashboard-startup-banner 'logo)
(setq dashboard-center-content t)
@@ -253,33 +336,29 @@ Use Dashboard.el. First load `all-the-icons` for nicer rendering
(add-hook 'dashboard-mode-hook
(lambda ()
(setq-local line-spacing 12)
+;; TODO: It's not jumping
(dashboard-jump-to-recents)))
- (defun joe/launch-dashboard ()
- "Jump to the dashboard buffer, if doesn't exists create one."
- (interactive)
- (switch-to-buffer dashboard-buffer-name)
- (dashboard-mode)
- (dashboard-insert-startupify-lists)))
+ ;; (defun joe/launch-dashboard ()
+ ;; "Jump to the dashboard buffer, if doesn't exists create one."
+ ;; (interactive)
+ ;; (switch-to-buffer dashboard-buffer-name)
+ ;; (dashboard-mode)
+ ;; (dashboard-insert-startupify-lists))
#+end_src
*** Olivetti
#+begin_src emacs-lisp
-(elpaca 'olivetti
(require 'olivetti)
(setq olivetti-minimum-body-width 100)
-(global-set-key (kbd "C-x x o") 'olivetti-mode))
+(global-set-key (kbd "C-x x o") 'olivetti-mode)
#+end_src
*** Themes
#+begin_src emacs-lisp
;; Small changes to my favorite themes
-(elpaca
- '(doom-themes :host github :repo "doomemacs/themes"
- :remotes ("fork" :repo "JosephFerano/doom-themes"))
-
-(load-theme 'doom-nord-light))
+;; (load-theme 'doom-nord-light))
(setq custom-safe-themes t)
@@ -299,15 +378,13 @@ our case is worse since we have a literate file. Send all custom variables to ~c
Save the chosen theme after picking a new one
-#+begin_src emacs-lisp tangle: no
+#+begin_src emacs-lisp
(defun joe/save-current-theme (THEME)
(let ((inhibit-message t)
(message-log-max nil))
(customize-save-variable 'custom-enabled-themes custom-enabled-themes)))
(advice-add 'consult-theme :after #'joe/save-current-theme)
-;; (advice-remove 'load-theme 'joe/save-current-theme)
-
#+end_src
*** Other
@@ -348,13 +425,13 @@ Setup other stuff
;; Don’t compact font caches during GC, in case doom modeline gets laggy issue
(setq inhibit-compacting-font-caches t)
-(elpaca 'ligature
-(global-ligature-mode))
+(require 'ligature)
+(global-ligature-mode)
-(elpaca 'highlight-quoted
-(add-hook 'emacs-lisp-mode-hook 'highlight-quoted-mode))
+(require 'highlight-quoted)
+(add-hook 'emacs-lisp-mode-hook 'highlight-quoted-mode)
-(elpaca 'doom-modeline
+(require 'doom-modeline)
(doom-modeline-mode)
(doom-modeline-def-modeline 'main
'(workspace-name bar modals bar window-number matches buffer-info remote-host buffer-position word-count selection-info)
@@ -363,7 +440,7 @@ Setup other stuff
;; Set default mode-line
(add-hook 'doom-modeline-mode-hook
(lambda ()
- (doom-modeline-set-modeline 'main 'default))))
+ (doom-modeline-set-modeline 'main 'default)))
;; TODO Likely not needed anymore
@@ -444,7 +521,7 @@ weren't working, until I randomly saw this in someone's init.el
#+end_src
*** Hydra
#+begin_src emacs-lisp
-(elpaca 'hydra
+(require 'hydra)
(defhydra hydra-navigate (global-map "")
"Window Navigation"
@@ -455,12 +532,12 @@ weren't working, until I randomly saw this in someone's init.el
("y" joe/smooth-scroll-short-up "line up")
("n" next-line "line down")
("p" previous-line "line up")
- ("M-r" move-to-window-line-top-bottom "Reposition cursor")))
+ ("M-r" move-to-window-line-top-bottom "Reposition cursor"))
#+end_src
*** Multiple Cursors
#+begin_src emacs-lisp
-(elpaca 'multiple-cursors)
+(require 'multiple-cursors)
#+end_src
*** Meow
#+begin_src emacs-lisp :tangle no
@@ -612,7 +689,7 @@ weren't working, until I randomly saw this in someone's init.el
(setq evil-disable-insert-state-bindings t)
(setq evil-echo-state nil)
-(elpaca 'evil
+(require 'evil)
(evil-mode t)
(evil-global-set-key 'insert (kbd "C-w") #'evil-delete-backward-word)
@@ -686,27 +763,27 @@ weren't working, until I randomly saw this in someone's init.el
(defun joe/scroll-up-line () (interactive) (scroll-up-line 2))
(defun joe/scroll-down-line () (interactive) (scroll-down-line 2))
(evil-global-set-key 'normal (kbd "C-e") #'joe/scroll-up-line)
- (evil-global-set-key 'normal (kbd "C-y") #'joe/scroll-down-line))
+ (evil-global-set-key 'normal (kbd "C-y") #'joe/scroll-down-line)
-(elpaca 'evil-collection
- (evil-collection-init))
+(require 'evil-collection)
+(evil-collection-init)
-(elpaca 'evil-surround
- (global-evil-surround-mode t))
+(require 'evil-surround)
+(global-evil-surround-mode t)
-;; (elpaca 'evil-snipe
-;; (require 'evil-snipe)
-;; (evil-snipe-mode +1))
+;; (require 'evil-snipe)
+;; (evil-snipe-mode +1)
+;; (evil-snipe-override-mode +1)
-(elpaca 'evil-commentary
- (evil-commentary-mode t))
+(require 'evil-commentary)
+(evil-commentary-mode t)
-(elpaca 'evil-goggles
+(require 'evil-goggles)
(evil-goggles-mode t)
(setq evil-goggles-duration 0.075)
(setq evil-goggles-pulse t)
- (setq evil-goggles-async-duration 0.55))
+ (setq evil-goggles-async-duration 0.55)
#+end_src
** Buffers
@@ -722,7 +799,7 @@ weren't working, until I randomly saw this in someone's init.el
(global-set-key (kbd "C-x k") #'joe/kill-this-buffer-or-popup)
(global-set-key (kbd "C-x M-k") #'kill-buffer)
-(elpaca 'all-the-icons-ibuffer)
+(require 'all-the-icons-ibuffer)
(add-hook 'ibuffer-mode-hook #'all-the-icons-ibuffer-mode)
(global-set-key [remap list-buffers] 'ibuffer)
(global-set-key (kbd "C-x B") 'ibuffer)
@@ -766,7 +843,7 @@ The theme of `C-x 4` bindings is that they operate on other windows, so this fun
(define-key ctl-x-4-map (kbd "-") #'joe/window-split-horizontal)
(define-key ctl-x-4-map (kbd "t") #'rotate-window)
-(elpaca 'ace-window)
+(require 'ace-window)
(global-set-key (kbd "C-x o") #'ace-window)
(global-set-key (kbd "C-x C-o") #'ace-swap-window)
@@ -779,7 +856,6 @@ The theme of `C-x 4` bindings is that they operate on other windows, so this fun
*** Popper
#+begin_src emacs-lisp
-(elpaca 'popper
(require 'popper)
(setq popper-reference-buffers
'("\\*compilation\\*" compilation-mode
@@ -849,7 +925,7 @@ The theme of `C-x 4` bindings is that they operate on other windows, so this fun
(setq popper-display-function #'joe/popper-display-func)
-(popper-mode t))
+(popper-mode t)
#+end_src
*** Scrolling
#+begin_src emacs-lisp :tangle no
@@ -893,13 +969,13 @@ The theme of `C-x 4` bindings is that they operate on other windows, so this fun
(global-set-key (kbd "C-S-v") #'joe/smooth-scroll-short-down)
(global-set-key (kbd "M-S-v") #'joe/smooth-scroll-short-up)
-(elpaca 'topspace)
+(require 'topspace)
#+end_src
** Tabs/Workspaces
*** Centaur Tabs
#+begin_src emacs-lisp
-(elpaca 'centaur-tabs
+(require 'centaur-tabs)
(setq centaur-tabs-set-bar 'under)
(setq x-underline-at-descent-line t)
(setq centaur-tabs-set-close-button nil)
@@ -946,7 +1022,7 @@ The theme of `C-x 4` bindings is that they operate on other windows, so this fun
(t
"Emacs")))))
-(centaur-tabs-mode +1))
+(centaur-tabs-mode +1)
#+end_src
*** Tabs
#+begin_src emacs-lisp :tangle no
@@ -1002,20 +1078,21 @@ The theme of `C-x 4` bindings is that they operate on other windows, so this fun
Vertico Embark Marginalia Consult Orderless
#+begin_src emacs-lisp
- (elpaca 'all-the-icons-completion)
- (elpaca '(vertico :files (:defaults "extensions/*")
- :includes (vertico-indexed
- vertico-repeat
- vertico-directory))
+ (require 'all-the-icons-completion)
+ ;; (require '(vertico :files (:defaults "extensions/*")
+ ;; :includes (vertico-indexed
+ ;; vertico-repeat
+ ;; vertico-directory))
+(require 'vertico)
(vertico-mode)
;; (elpaca 'vertico-posframe)
- (define-key vertico-map (kbd "C-w") #'vertico-directory-delete-word)
+ ;; (define-key vertico-map (kbd "C-w") #'vertico-directory-delete-word)
;; (define-key vertico-map (kbd "C-r") #'vertico-repeat-)
;; (vertico-posframe-mode t)
- (vertico-indexed-mode)
+ ;; (vertico-indexed-mode)
;; (setq vertico-posframe-parameters
;; '((left-fringe . 100)
;; (right-fringe . 100)))
@@ -1038,7 +1115,7 @@ Vertico Embark Marginalia Consult Orderless
(add-hook 'minibuffer-setup-hook #'vertico-repeat-save)
(add-to-list 'savehist-additional-variables 'vertico-repeat-history)
- (define-key vertico-map (kbd "C-M-n") #'vertico-next-group))
+ (define-key vertico-map (kbd "C-M-n") #'vertico-next-group)
;; #' "C-M-p" #'vertico-previous-group)
@@ -1049,7 +1126,7 @@ Vertico Embark Marginalia Consult Orderless
;; ("M-DEL" . vertico-directory-delete-word))
;; :hook (rfn-eshadow-update-overlay . vertico-directory-tidy))
- (elpaca 'embark
+ (require 'embark)
(setq embark-quit-after-action '((kill-buffer . nil)))
@@ -1106,11 +1183,11 @@ Vertico Embark Marginalia Consult Orderless
(advice-add #'embark-completing-read-prompter
:around #'embark-hide-which-key-indicator)
- (global-set-key (kbd "C-'") #'embark-act))
+ (global-set-key (kbd "C-'") #'embark-act)
- (elpaca 'embark-consult)
+ (require 'embark-consult)
- (elpaca 'marginalia
+ (require 'marginalia)
(setq marginalia-annotators '(marginalia-annotators-heavy marginalia-annotators-light nil))
(setq marginalia-align 'right)
(setq marginalia-max-relative-age most-positive-fixnum)
@@ -1120,17 +1197,17 @@ Vertico Embark Marginalia Consult Orderless
(all-the-icons-completion-mode)
(all-the-icons-completion-marginalia-setup)
- (add-hook 'marginalia-mode-hook #'all-the-icons-completion-marginalia-setup))
+ (add-hook 'marginalia-mode-hook #'all-the-icons-completion-marginalia-setup)
- (elpaca 'orderless
+ (require 'orderless)
(setq completion-styles '(orderless basic)
- completion-category-overrides '((file (styles basic partial-completion)))))
+ completion-category-overrides '((file (styles basic partial-completion))))
#+end_src
*** Consult
#+begin_src emacs-lisp
-(elpaca 'consult)
-(elpaca 'consult-lsp)
+(require 'consult)
+(require 'consult-lsp)
;; (defun joe/consult-line ()
;; (interactive)
@@ -1149,7 +1226,7 @@ Vertico Embark Marginalia Consult Orderless
#+end_src
** Dirvish/Dired
#+begin_src emacs-lisp
-(elpaca 'dirvish)
+(require 'dirvish)
(with-eval-after-load 'dirvish
(dirvish-override-dired-mode)
(setq delete-by-moving-to-trash t)
@@ -1228,7 +1305,7 @@ Vertico Embark Marginalia Consult Orderless
** Avy
#+begin_src emacs-lisp
-(straight-use-package 'avy)
+(require 'avy)
(setq avy-case-fold-search nil)
(setq avy-keys '(?a ?s ?d ?f ?g ?h ?j ?k ?l ?q ?w ?e ?r ?u ?i ?o ?p ?z ?x ?c ?v ?n ?m))
(define-key global-map (kbd "C-;") 'avy-goto-char) ;; I use this most frequently
@@ -1237,21 +1314,20 @@ Vertico Embark Marginalia Consult Orderless
(define-key global-map (kbd "M-g e") 'avy-goto-word-0) ;; lots of candidates
(define-key global-map (kbd "M-g g") 'avy-goto-line) ;; digits behave like goto-line
(define-key global-map (kbd "M-g w") 'avy-goto-word-1) ;; first character of the word
-(define-key global-map (kbd "M-g P") 'avy-pop-mark))
+(define-key global-map (kbd "M-g P") 'avy-pop-mark)
#+end_src
** Helpful
#+begin_src emacs-lisp
-(elpaca 'helpful
+(require 'helpful)
(global-set-key (kbd "C-h f") #'helpful-callable)
(global-set-key (kbd "C-h v") #'helpful-variable)
(global-set-key (kbd "C-h k") #'helpful-key)
(global-set-key (kbd "C-h C-d") #'helpful-at-point)
(global-set-key (kbd "C-h F") #'helpful-function)
-(global-set-key (kbd "C-h C") #'helpful-command))
+(global-set-key (kbd "C-h C") #'helpful-command)
#+end_src
** Terminals/Shells
#+begin_src emacs-lisp
-(elpaca 'vterm
(require 'vterm)
(setq vterm-shell "/bin/fish")
(setq vterm-timer-delay 0.01)
@@ -1284,7 +1360,7 @@ Vertico Embark Marginalia Consult Orderless
(when (boundp 'evil-mode)
(evil-define-key 'insert vterm-mode-map (kbd "C-w") #'vterm-send-C-w)
(evil-define-key 'insert vterm-mode-map (kbd "") #'vterm-send-delete))
- (setq-local global-hl-line-mode nil))))
+ (setq-local global-hl-line-mode nil)))
#+end_src
VTerm is loading TRAMP along with it which slows down init time noticeably so call this after
@@ -1295,22 +1371,20 @@ startup. Reason we have to call this is so the vterm fucntion can call `vterm--i
#+end_src
** Undo Fu
#+begin_src emacs-lisp
- (elpaca 'undo-fu
- (undo-fu-session-global-mode +1)
- (setq undo-limit 6710886400) ;; 64mb.
- (setq undo-strong-limit 100663296) ;; 96mb.
- (setq undo-outer-limit 1006632960)) ;; 960mb.
+(require 'undo-fu)
+ (undo-fu-session-global-mode +1)
+ (setq undo-limit 6710886400) ;; 64mb.
+ (setq undo-strong-limit 100663296) ;; 96mb.
+ (setq undo-outer-limit 1006632960) ;; 960mb.
- (elpaca 'undo-fu-session
- (setq undo-fu-session-incompatible-files '("/COMMIT_EDITMSG\\'" "/git-rebase-todo\\'"))
-
- )
- (elpaca 'vundo)
+(require 'undo-fu-session)
+ (setq undo-fu-session-incompatible-files '("/COMMIT_EDITMSG\\'" "/git-rebase-todo\\'"))
+(require 'vundo)
#+end_src
** Which Key
#+begin_src emacs-lisp
-(elpaca 'which-key
+(require 'which-key)
(setq which-key-idle-delay 0.3)
(which-key-mode)
(when (boundp 'evil-mode)
@@ -1325,7 +1399,7 @@ startup. Reason we have to call this is so the vterm fucntion can call `vterm--i
"SPC t" '("Tabs")
"SPC p" '("Packages")
"SPC s" '("Shell (vterm)")
- "SPC h" '("Help"))))
+ "SPC h" '("Help")))
#+end_src
** IDE Features
*** REPLs
@@ -1336,13 +1410,9 @@ startup. Reason we have to call this is so the vterm fucntion can call `vterm--i
(evil-define-key 'insert comint-mode-map (kbd "C-p") 'comint-previous-input))
#+end_src
*** Company
-#+begin_src rust
-println!("Hello world");
-#+end_src
#+begin_src emacs-lisp
-
(setq completion-in-region-function
(lambda (&rest args)
(apply (if vertico-mode
@@ -1350,14 +1420,14 @@ println!("Hello world");
#'completion--in-region)
args)))
-(elpaca 'company)
+(require 'company)
(with-eval-after-load 'company
-(add-to-list 'completion-at-point-functions #'elisp-completion-at-point)
-(require 'company)
-(setq company-minimum-prefix-length 1)
-(setq company-tooltip-align-annotations t)
-(setq company-minimum-prefix-length 2)
+ (add-to-list 'completion-at-point-functions #'elisp-completion-at-point)
+ (require 'company)
+ (setq company-minimum-prefix-length 1)
+ (setq company-tooltip-align-annotations t)
+ (setq company-minimum-prefix-length 2)
(define-key company-active-map (kbd "C-n") nil)
(define-key company-active-map (kbd "C-p") nil)
(define-key company-active-map (kbd "") nil)
@@ -1376,12 +1446,12 @@ println!("Hello world");
;; company-echo-metadata-frontend)
company-backends '((company-capf company-elisp company-files)))
(setq company-transformers '(company-sort-by-occurrence))
- (global-company-mode))
+ (global-company-mode))
#+end_src
*** LSP
#+begin_src emacs-lisp
-(elpaca 'lsp-mode
+(require 'lsp-mode)
(setq lsp-enable-which-key-integration t)
(setq lsp-keymap-prefix "C-c c")
@@ -1421,22 +1491,22 @@ println!("Hello world");
(--take-while (not (s-equals? "```" it)) it)
(--map (s-trim it) it)
(s-join " " it))))
- (lsp--render-element (concat "```rust\n" sig "\n```")))))
+ (lsp--render-element (concat "```rust\n" sig "\n```"))))
-(elpaca 'lsp-ui)
+(require 'lsp-ui)
#+end_src
*** Flycheck
#+begin_src emacs-lisp
-(elpaca 'flycheck)
+(require 'flycheck)
;; TODO Add wrapping to these functions
(when (boundp 'evil-mode)
(evil-global-set-key 'normal (kbd "M-e") #'flycheck-next-error)
(evil-global-set-key 'normal (kbd "M-E") #'flycheck-previous-error)
(evil-global-set-key 'normal (kbd "ee") 'flycheck-mode)
(evil-global-set-key 'normal (kbd "el") #'flycheck-list-errors)
- (evil-global-set-key 'normal (kbd "ce") #'consult-lsp-diagnostics)))
+ (evil-global-set-key 'normal (kbd "ce") #'consult-lsp-diagnostics))
#+end_src
*** Compilation
#+begin_src emacs-lisp
@@ -1488,7 +1558,6 @@ println!("Hello world");
** Debugging
*** DAP
#+begin_src emacs-lisp
-(elpaca 'dap-mode
(require 'dap-mode)
;; (setq dap-auto-configure-features '(locals breakpoints expressions tooltip))
@@ -1513,20 +1582,20 @@ println!("Hello world");
:cwd "${workspaceFolder}"
:console "external"
:dap-compilation "cargo build"
- :dap-compilation-dir "${workspaceFolder}")))
+ :dap-compilation-dir "${workspaceFolder}"))
#+end_src
** Languages
*** Python
#+begin_src emacs-lisp
-(elpaca 'elpy)
+(require 'elpy)
(define-key inferior-python-mode-map (kbd "C-n") #'comint-next-input)
(define-key inferior-python-mode-map (kbd "C-p") #'comint-previous-input)
#+end_src>
*** Rust
#+begin_src emacs-lisp
-(elpaca 'rustic)
-(elpaca 'ob-rust)
+(require 'rustic)
+(require 'ob-rust)
;; Org-Babel
;; Disabling until we figure out how to get it working
;; (elpaca 'parsec) ;; Required by evcxr-mode
@@ -1564,7 +1633,7 @@ println!("Hello world");
#+end_src
*** Web
#+begin_src emacs-lisp
-(elpaca 'typescript-mode)
+(require 'typescript-mode)
(setq typescript-indent-level 2)
#+end_src
*** C
@@ -1575,7 +1644,7 @@ whether the point hasn't been moved. This way, if I switched to another popper b
it doesn't close it.
#+begin_src emacs-lisp
-(elpaca 'disaster)
+(require 'disaster)
(defun joe/c-mode-hook ()
(local-set-key (kbd "C-x c r") (defun joe/make-run () (interactive) (compile "make run")))
(local-set-key (kbd "C-x c c") (defun joe/make () (interactive) (compile "make")))
@@ -1585,7 +1654,7 @@ it doesn't close it.
#+end_src
*** Haskell
#+begin_src emacs-lisp
- (elpaca 'haskell-mode)
+ (require 'haskell-mode)
(setq haskell-interactive-popup-errors nil)
(when (boundp 'evil-mode)
@@ -1595,17 +1664,17 @@ it doesn't close it.
#+end_src
*** Clojure
#+begin_src emacs-lisp
-(elpaca 'clojure-mode)
-(elpaca 'cider)
+(require 'clojure-mode)
+(require 'cider)
(setq cider-show-error-buffer 'only-in-repl)
#+end_src
*** OCaml
#+begin_src emacs-lisp :tangle no
-(elpaca 'tuareg)
-(elpaca 'dune)
-(elpaca 'utop)
-(elpaca 'merlin)
-(elpaca 'merlin-eldoc)
+(require 'tuareg)
+(require 'dune)
+(require 'utop)
+(require 'merlin)
+(require 'merlin-eldoc)
;; Might be worth checking out, depeding on whether we stick with flycheck or not
;; (elpaca 'flycheck-ocaml)
;; Also check this out, see if it adds anything
@@ -1646,25 +1715,25 @@ and there's no need for a middle-man when it's already been implemented.
#+end_src
*** FSharp
#+begin_src emacs-lisp
-(elpaca 'fsharp-mode)
+(require 'fsharp-mode)
;; (elpaca 'eglot-fsharp)
#+end_src
*** Go
#+begin_src emacs-lisp
-(elpaca 'go-mode)
+(require 'go-mode)
;; (elpaca 'go-imports)
#+end_src
*** Other
#+begin_src emacs-lisp
-(elpaca 'json-mode)
-(elpaca 'markdown-mode)
+(require 'json-mode)
+(require 'markdown-mode)
#+end_src
** Org Mode
#+begin_src emacs-lisp
- (elpaca 'org-bullets)
+ (require 'org-bullets)
(defun joe/org-init ()
(setq org-todo-keywords '((sequence "TODO" "IN-PROGRESS" "|" "DONE" "BACKLOG")))
@@ -1704,14 +1773,14 @@ and there's no need for a middle-man when it's already been implemented.
(org-indent-mode))
(add-hook 'org-mode-hook 'joe/org-hook)
- (elpaca 'org-kanban)
+ (require 'org-kanban)
#+end_src
** Magit
The best git porcelain/client I've ever used. Also kill stray magit buffers left over as explained [[https://manueluberti.eu/emacs/2018/02/17/magit-bury-buffer/][here]]
#+begin_src emacs-lisp
-(elpaca 'magit)
+(require 'magit)
(defun joe/magit-kill-buffers (param)
"Restore window configuration and kill all Magit buffers."
@@ -1732,7 +1801,7 @@ The best git porcelain/client I've ever used. Also kill stray magit buffers left
** Restclient
#+begin_src emacs-lisp
-(elpaca 'restclient)
+(require 'restclient)
(add-to-list 'auto-mode-alist '("\\.restclient\\'" . restclient-mode))