]> git.earman.xyz Git - emacsinit.git/commitdiff
Don't use use-package
authorrearman <rearman@r717.net>
Wed, 17 Jun 2026 15:41:12 +0000 (11:41 -0400)
committerrearman <rearman@r717.net>
Wed, 17 Jun 2026 15:41:12 +0000 (11:41 -0400)
Why not try it this way

config.org

index ea70e07f94e45e8cfbb120a4b734f2bb1ddd4592..037313d49d89a99d5f5d883e1d64173c23ad1f5d 100644 (file)
@@ -24,102 +24,101 @@ Set up the correct lexical binding to avoid screaming compiler
       (find-alternate-file (concat "/sudo:root@localhost:" buffer-file-name)))))
 #+END_SRC
 * Packages
-** Add melpa, and reduce the declarations by setting defaults
+** Add melpa, initialize
 #+BEGIN_SRC emacs-lisp
 (require 'package)
 
 (add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t)
-
-(setq use-package-always-ensure t
-      use-package-always-defer t)
+(package-initialize)
+#+END_SRC
+** Install all packages that are not included
+#+BEGIN_SRC emacs-lisp
+(defvar *re/packages*
+  '(corfu
+    expand-region
+    page-break-lines
+    pdf-tools
+    auctex
+    csv-mode
+    markdown-mode
+    edit-indirect
+    sly
+    geiser
+    geiser-chicken
+    forth-mode
+    trashed
+    org-transclusion))
+
+(dolist (pkg *re/packages*)
+  (unless (package-installed-p pkg)
+    (package-refresh-contents)
+    (package-install pkg)))
 #+END_SRC
 ** Corfu
 #+BEGIN_SRC emacs-lisp
-(use-package corfu
-  :demand
-  t
-  :custom
-  (corfu-auto t)
-  (corfu-auto-delay 0)
-  (corfu-auto-prefix 1)
-  :config
-  (global-corfu-mode))
-
-(use-package corfu-popupinfo
-  :ensure
-  nil ; part of corfu
-  :after
-  corfu
-  :hook
-  (corfu-mode . corfu-popupinfo-mode)
-  :custom
-  (corfu-popupinfo-delay '(1.0 . 0.01)) ; start after one second, fast refresh once on
-  (corfu-popupinfo-hide nil)
-  :config
-  (corfu-popupinfo-mode))
+(require 'corfu)
+
+(setq corfu-auto t
+      corfu-auto-delay 0
+      corfu-auto-prefix 1)
+
+(add-hook 'corfu-mode-hook #'corfu-popupinfo-mode)
+
+(setq corfu-popupinfo-delay '(1.0 . 0.01) ; start after one second, fast refresh once on
+      corfu-popupinfo-hide nil)
+
+(global-corfu-mode)
 #+END_SRC
 ** Expand Region
 #+BEGIN_SRC emacs-lisp
-(use-package expand-region
-  :bind
-  (("C-=" . er/expand-region)))
+(require 'expand-region)
+
+(keymap-global-set "C-=" #'er/expand-region)
 #+END_SRC
-** Aggressive Indent
+** Page Break Lines
 #+BEGIN_SRC emacs-lisp
-(use-package aggressive-indent)
+(require 'page-break-lines)
+(global-page-break-lines-mode)
 #+END_SRC
-** Magit
-No longer needed, since I defer by default.
-** Page Break Lines
-Needs to be demanded so I don't have to manually load it
+** PDFtools
+Be sure to run =pdf-tools-install= before first run
 #+BEGIN_SRC emacs-lisp
-(use-package page-break-lines
-  :demand
-  t
-  :config
-  (global-page-break-lines-mode))
+(add-to-list 'auto-mode-alist '("\\.pdf\\'" . pdf-tools-install))
+
+(setq-default pdf-view-display-size 'fit-page)
 #+END_SRC
-** AucTeX and pdftools
-Make AucTeX use pdftools, prompt for master file, synctex, etc.  Be sure to run =pdf-tools-install= before first use.
+** Auctex
 #+BEGIN_SRC emacs-lisp
-(use-package pdf-tools)
-
-(use-package auctex
-  :config
-  (setq-default TeX-master nil)
-  (add-to-list 'TeX-view-program-selection '(output-pdf "PDF Tools"))
-  (setq TeX-auto-save t
-        TeX-parse-self t
-        TeX-PDF-mode t
-        TeX-source-correlate-start-server t)
-  (add-hook 'TeX-after-compilation-finished-functions
-            #'TeX-revert-document-buffer))
+(setq-default TeX-master nil)
+
+(setq TeX-auto-save t
+      TeX-parse-self t
+      TeX-PDF-mode t
+      TeX-view-program-selection '((output-pdf "PDF Tools"))
+      TeX-source-correlate-start-server t)
+
+(add-hook 'TeX-after-compilation-finished-functions
+          #'TeX-revert-document-buffer)
 #+END_SRC
 ** CSV Mode
 #+BEGIN_SRC emacs-lisp
-(use-package csv-mode
-  :config
-  (add-hook 'csv-mode-hook 'csv-align-mode))
+(add-hook 'csv-mode-hook 'csv-align-mode)
 #+END_SRC
 ** Markdown Mode
 Make markdown act more like org when I'm forced to use it
 #+BEGIN_SRC emacs-lisp
-(use-package markdown-mode
-  :config
-  (setq markdown-special-ctrl-a/e t)
-  :bind
-  (:map markdown-mode-map
-        ("M-<right>" . markdown-demote)
-        ("M-<left>" . markdown-promote)
-        ("M-<up>" . markdown-move-up)
-        ("M-<down>" . markdown-move-down)
-        ("C-M-u" . markdown-up-heading)
-        ("C-M-b" . markdown-outline-previous-same-level)
-        ("C-M-f" . markdown-outline-next-same-level)
-        ("C-M-p" . markdown-outline-previous)
-        ("C-M-n" . markdown-outline-next)))
-
-(use-package edit-indirect :after 'markdown-mode)
+(setq markdown-special-ctrl-a/e t)
+
+(with-eval-after-load 'markdown-mode
+    (keymap-set markdown-mode-map "M-<right>" #'markdown-demote)
+    (keymap-set markdown-mode-map "M-<left>" #'markdown-promote)
+    (keymap-set markdown-mode-map "M-<up>" #'markdown-move-up)
+    (keymap-set markdown-mode-map "M-<down>" #'markdown-move-down)
+    (keymap-set markdown-mode-map "C-M-u" #'markdown-up-heading)
+    (keymap-set markdown-mode-map "C-M-b" #'markdown-outline-previous-same-level)
+    (keymap-set markdown-mode-map "C-M-f" #'markdown-outline-next-same-level)
+    (keymap-set markdown-mode-map "C-M-p" #'markdown-outline-previous)
+    (keymap-set markdown-mode-map "C-M-n" #'markdown-outline-next))
 #+END_SRC
 ** Sly
 #+BEGIN_SRC emacs-lisp
@@ -138,19 +137,18 @@ Make markdown act more like org when I'm forced to use it
   (interactive "P")
   (sly-connect "localhost" 4004))
 
-(use-package sly
-  :config
-  (setq inferior-lisp-program "sbcl"
-        sly-net-coding-system 'utf-8-unix
-        sly-command-switch-to-existing-lisp 'always)
-  (let ((core (expand-file-name "~/sbcl.core-for-sly")))
-    (when (file-exists-p core)
-      (setq sly-lisp-implementations (list `(sbcl ("sbcl" "--core" ,core))))))
-  :bind
-  (:map sly-mrepl-mode-map
-        (")" . (lambda () (interactive) (re/send-on-close-paren #'sly-mrepl-return)))
-        ("]" . (lambda () (interactive) (re/balance-and-eval-sexp #'sly-mrepl-return)))
-        ("C-c q" . re/sly-quit-current-lisp)))
+(setq inferior-lisp-program "sbcl"
+          sly-net-coding-system 'utf-8-unix
+          sly-command-switch-to-existing-lisp 'always)
+
+(let ((core (expand-file-name "~/sbcl.core-for-sly")))
+      (when (file-exists-p core)
+        (setq sly-lisp-implementations (list `(sbcl ("sbcl" "--core" ,core))))))
+
+(with-eval-after-load 'sly-mrepl
+    (keymap-set sly-mrepl-mode-map ")" (re/send-on-close-paren #'sly-mrepl-return))
+    (keymap-set sly-mrepl-mode-map "]" (re/balance-and-eval-sexp #'sly-mrepl-return))
+    (keymap-set sly-mrepl-mode-map "C-c q" #'re/sly-quit-current-lisp))
 #+END_SRC
 *** Eldoc settings
 Sly really doesn't play well with elodc in the minibuffer, so here are some settings to make it better.
@@ -164,58 +162,41 @@ Sly really doesn't play well with elodc in the minibuffer, so here are some sett
 #+END_SRC
 ** Geiser
 #+BEGIN_SRC emacs-lisp
-(use-package geiser
-  :config
-  (if (equal system-type 'windows-nt)
-      (setq geiser-chicken-binary '("C:/tools/chicken/bin/csi.exe" "-:c"))
-    (setq geiser-chicken-binary "csi -:c"))
-  (setq scheme-program-name geiser-chicken-binary
-        geiser-active-implementations '(chicken))
-  (add-hook 'scheme-mode-hook 'geiser-mode)
-  :bind
-  (:map geiser-repl-mode-map
-        (")" . (lambda () (interactive) (re/send-on-close-paren #'geiser-repl-maybe-send)))
-        ("]" . (lambda () (interactive) (re/balance-and-eval-sexp #'geiser-repl-maybe-send)))))
-
-(use-package geiser-chicken :after 'geiser)
+(if (equal system-type 'windows-nt)
+    (setq geiser-chicken-binary '("C:/tools/chicken/bin/csi.exe" "-:c"))
+  (setq geiser-chicken-binary "csi -:c"))
+
+(setq scheme-program-name geiser-chicken-binary
+      geiser-active-implementations '(chicken))
+
+(add-hook 'scheme-mode-hook 'geiser-mode)
+
+(with-eval-after-load 'geiser-repl
+    (keymap-set geiser-repl-mode-map ")" (re/send-on-close-paren #'geiser-repl-maybe-send))
+    (keymap-set geiser-repl-mode-map "]" (re/balance-and-eval-sexp #'geiser-repl-maybe-send)))
 #+END_SRC
 ** Forth
-*** TODO Try out this mode for gforth
-#+BEGIN_SRC emacs-lisp
-(use-package forth-mode)
-#+END_SRC
+*** TODO Try out forth-mode for gforth
 ** ORG
-*** Load in the package and set bindings
+*** Set bindings, things that have to happen after loading
 #+BEGIN_SRC emacs-lisp
-(use-package org
-  :config
-  (require 'org-mouse)
-  (add-to-list 'org-export-backends 'md)
-  :bind
-  (("C-c l" . org-store-link)
-   ("C-c a" . org-agenda)
-   ("C-c c" . org-capture)
-   :map org-mode-map
-   ("M-<right>" . org-shiftmetaright)
-   ("M-<left>" . org-shiftmetaleft)
-   ("M-S-<right>" . org-metaright)
-   ("M-S-<left>" . org-metaleft)
-   ("C-M-h" . org-mark-subtree)
-   ("C-M-u" . org-up-element)
-   ("C-M-d" . org-down-element)
-   ("C-M-b" . org-backward-heading-same-level)
-   ("C-M-f" . org-forward-heading-same-level)
-   ("C-M-p" . org-previous-visible-heading)
-   ("C-M-n" . org-next-visible-heading)))
-
-(use-package org-transclusion
-  :after
-  org
-  :bind
-  (("C-c t" . org-transclusion-mode)))
+(with-eval-after-load 'org
+    (require 'org-mouse)
+    (add-to-list 'org-export-backends 'md)
+    (keymap-set org-mode-map "C-M-h" #'org-mark-subtree)
+    (keymap-set org-mode-map "C-M-u" #'org-up-element)
+    (keymap-set org-mode-map "C-M-d" #'org-down-element)
+    (keymap-set org-mode-map "C-M-b" #'org-backward-heading-same-level)
+    (keymap-set org-mode-map "C-M-f" #'org-forward-heading-same-level)
+    (keymap-set org-mode-map "C-M-p" #'org-previous-visible-heading)
+    (keymap-set org-mode-map "C-M-n" #'org-next-visible-heading)
+    (keymap-set org-mode-map "C-c t" #'org-transclusion-mode))
+
+(keymap-global-set "C-c l" #'org-store-link)
+(keymap-global-set "C-c a" #'org-agenda)
+(keymap-global-set "C-c c" #'org-capture)
 #+END_SRC
-*** Configuration
-**** General options
+*** General options
 #+BEGIN_SRC emacs-lisp
 (setq org-M-RET-may-split-line nil
       org-cycle-inline-images-display t
@@ -243,7 +224,7 @@ Sly really doesn't play well with elodc in the minibuffer, so here are some sett
       org-yank-adjusted-subtrees t
       org-startup-indented t)
 #+END_SRC
-**** Time Clocking
+*** Time Clocking
 #+BEGIN_SRC emacs-lisp
 (org-clock-persistence-insinuate)
 (setq org-clock-in-resume t
@@ -253,8 +234,8 @@ Sly really doesn't play well with elodc in the minibuffer, so here are some sett
       org-clock-report-include-clocking-task t
       org-time-stamp-rounding-minutes '(1 1))
 #+END_SRC
-**** Agenda and Capture
-***** Agenda settings
+*** Agenda and Capture
+**** Agenda settings
 #+BEGIN_SRC emacs-lisp
 (setq org-agenda-files (append '("~/org/")
                                (file-expand-wildcards "~/projects/*/")
@@ -299,7 +280,7 @@ Sly really doesn't play well with elodc in the minibuffer, so here are some sett
       org-log-done 'time
       org-log-state-notes-insert-after-drawers t)
 #+END_SRC
-***** Custom Agendas
+**** Custom Agendas
 #+BEGIN_SRC emacs-lisp
 (defvar *re/org-agenda-inbox*
   '(tags "CATEGORY=\"inbox\"" ((org-agenda-overriding-header "INBOX:"))))
@@ -324,7 +305,7 @@ Sly really doesn't play well with elodc in the minibuffer, so here are some sett
                                                     ,,*re/org-agenda-waiting*
                                                     ,,*re/org-agenda-undertakings*))))
 #+END_SRC
-***** Capture Templates
+**** Capture Templates
 #+BEGIN_SRC emacs-lisp
 (setq org-capture-templates '(("i" "Inbox" entry
                                (file "inbox.org")
@@ -351,7 +332,7 @@ Sly really doesn't play well with elodc in the minibuffer, so here are some sett
                                "* %^{Description}\n%U\n%?"
                                :prepend t)))
 #+END_SRC
-**** IDs
+*** IDs
 #+BEGIN_SRC emacs-lisp
 (setq org-id-link-to-org-use-id 'create-if-interactive-and-no-custom-id
       org-id-method 'ts
@@ -370,14 +351,14 @@ Sly really doesn't play well with elodc in the minibuffer, so here are some sett
 
 (advice-add 'org-refile :after (lambda (&rest _) (re/org-save-all)))
 #+END_SRC
-**** Archiving
+*** Archiving
 #+BEGIN_SRC emacs-lisp
 (setq org-archive-location (concat "~/org/old.org_keep::datetree/")
       org-agenda-text-search-extra-files '(agenda-archives))
 
 (add-to-list 'auto-mode-alist '("\\.org_keep\\'" . org-mode))
 #+END_SRC
-**** Converting markdown to org
+*** Converting markdown to org
 #+BEGIN_SRC emacs-lisp
 (defun re/markdown-to-org-region (start end)
   "Convert Markdown formatted text in region (START, END) to Org.
@@ -388,7 +369,7 @@ installed."
    start end
    "pandoc -f markdown -t org --wrap=preserve" t t))
 #+END_SRC
-**** Converting org to markdown
+*** Converting org to markdown
 #+BEGIN_SRC emacs-lisp
 (defun re/org-to-markdown-region (start end)
   "Convert Org formatted text in region (START, END) to Markdown.
@@ -402,19 +383,18 @@ installed."
 ** Trashed
 Shows the trash file as a dired buffer
 #+BEGIN_SRC emacs-lisp
-(use-package trashed
-  :config
-  (setq trashed-action-confirmer 'y-or-n-p
+(setq trashed-action-confirmer 'y-or-n-p
         trashed-use-header-line t
         trashed-sort-key '("Date deleted" . t)
-        trashed-date-format "%Y-%m-%d %H:%M:%S"))
+        trashed-date-format "%Y-%m-%d %H:%M:%S")
 #+END_SRC
 ** Use mu4e on my home pcs
 #+BEGIN_SRC emacs-lisp
 (unless (equal system-type 'windows-nt)
-  (use-package mu4e
-    :ensure nil
-    :config
+  (unless (package-installed-p 'mu4e)
+    (package-refresh-contents)
+    (package-install 'mu4e))
+  (with-eval-after-load 'mu4e
     (setq mail-user-agent 'message-user-agent
           message-send-mail-function 'smtpmail-send-it
           message-citation-line-format "Quoth %f :\n"
@@ -443,7 +423,6 @@ Shows the trash file as a dired buffer
                                    (:maildir "/Sent" :key ?s)
                                    (:maildir "/Trash" :key ?t)
                                    (:maildir "/Drafts" :key ?d)))))
-
 #+END_SRC
 * Load libraries
 Libraries Not from the package manager
@@ -559,7 +538,6 @@ I want *TABS*, not spaces, dammit.  Globally overwrite the tab key to insert the
 #+END_SRC
 * Buffer dealiŋ
 #+BEGIN_SRC emacs-lisp
-;; Buffer dealiŋ
 (setq-default indicate-empty-lines t
               truncate-lines t
               fill-column 78)
@@ -871,41 +849,18 @@ Stolen from https://www.masteringemacs.org/article/fixing-mark-commands-transien
 
 (add-hook 'dired-mode-hook
           (lambda ()
-            (progn
-              (keymap-set dired-mode-map
-                          "o"
-                          #'re/dired-display-direction)
-              ;; Rename r,R+M(mv), chmod M>c, compress-to c>z
-              (keymap-set dired-mode-map
-                          "z"
-                          #'dired-do-compress-to)
-              (keymap-set dired-mode-map
-                          "c"
-                          #'dired-do-chmod)
-              (keymap-set dired-mode-map
-                          "r"
-                          #'dired-do-rename)
-              (keymap-set dired-mode-map
-                          "M"
-                          #'dired-do-rename)
-              ;; My add-on defuns
-              (keymap-set dired-mode-map
-                          "s"
-                          #'re/dired-sort)
-              (keymap-set dired-mode-map
-                          "F"
-                          #'re/dired-find-marked-files)
-              (keymap-set dired-mode-map
-                          "M-C"
-                          #'re/copy-with-mod-time)
-              (keymap-set dired-mode-map
-                          "b"
-                          #'re/dired-open-externally)
-              (keymap-set dired-mode-map
-                          "B"
-                          #'re/dired-open-marked-externally)
-              (dired-hide-details-mode t)
-              (hl-line-mode))))
+            (keymap-set dired-mode-map "o" #'re/dired-display-direction)
+            (keymap-set dired-mode-map "z" #'dired-do-compress-to)
+            (keymap-set dired-mode-map "c" #'dired-do-chmod)
+            (keymap-set dired-mode-map "r" #'dired-do-rename)
+            (keymap-set dired-mode-map "M" #'dired-do-rename)
+            (keymap-set dired-mode-map "s" #'re/dired-sort)
+            (keymap-set dired-mode-map "F" #'re/dired-find-marked-files)
+            (keymap-set dired-mode-map "M-C" #'re/copy-with-mod-time)
+            (keymap-set dired-mode-map "b" #'re/dired-open-externally)
+            (keymap-set dired-mode-map "B" #'re/dired-open-marked-externally)
+            (dired-hide-details-mode t)
+            (hl-line-mode)))
 #+END_SRC
 * Bookmarks
 #+BEGIN_SRC emacs-lisp
@@ -1443,8 +1398,7 @@ Stolen from https://depp.brause.cc/dotemacs"
 
 (setq save-abbrevs 'silently)
 
-(dolist (hook '(org-mode-hook howm-mode-hook))
-  (add-hook hook #'abbrev-mode))
+(add-hook 'org-mode-hook #'abbrev-mode)
 #+END_SRC
 * Customization Framework
 Disable it by making it save to a temp file (stolen from prot)