From 329ba6372648fd01fddd73e42ffa38a1fad62545 Mon Sep 17 00:00:00 2001 From: rearman Date: Fri, 8 May 2026 16:00:34 -0400 Subject: [PATCH] Packages back into main config file --- README.org | 426 ++++++++++++++++++++++++++++++++-------------- re/re-packages.el | 163 ------------------ 2 files changed, 301 insertions(+), 288 deletions(-) delete mode 100644 re/re-packages.el diff --git a/README.org b/README.org index 1511153..e782ad7 100644 --- a/README.org +++ b/README.org @@ -13,10 +13,10 @@ * Initial #+BEGIN_SRC emacs-lisp (dolist (path '("sedit-mouse/" "themes/" "re/")) - (add-to-list 'load-path (concat user-emacs-directory path))) + (add-to-list 'load-path (concat user-emacs-directory path))) - (dolist (file '(re-packages re-pass-alike eng-paper-theme sedit-mouse)) - (require file)) + (dolist (file '(re-pass-alike eng-paper-theme sedit-mouse)) + (require file)) (setq w32-recognize-altgr 'nil) @@ -35,83 +35,299 @@ (find-alternate-file (concat "/sudo:root@localhost:" buffer-file-name))))) #+END_SRC -* Editing +* Packages +** Boilerplate +Add melpa, and reduce the declarations by setting defaults #+BEGIN_SRC emacs-lisp -;; Editing -(defun re/open-line-below (n) - "Creates a new empty line below the current line and moves to it." - (interactive "*p") - (end-of-line) - (open-line n) - (next-line 1) - (indent-for-tab-command)) - -(keymap-global-set "C-o" #'re/open-line-below) - -(defun re/open-line-above (n) - "Creates a new empty line above the current line." - (interactive "*p") - (beginning-of-line) - (open-line n) - (indent-for-tab-command)) - -(keymap-global-set "M-o" #'re/open-line-above) - -(defun re/flush-extra-lines () - "Change all groups of blank lines to 1 blank line." - (interactive) - (save-excursion (mark-whole-buffer) - (replace-regexp "^\n+" - "\n" - nil - (region-beginning) - (region-end)))) - -(defun re/comment-dwim (&optional arg) - "Comment region if active, otherwise comment line. -Stolen from https://depp.brause.cc/dotemacs" - (interactive "P") - (if (use-region-p) - (comment-or-uncomment-region (region-beginning) (region-end)) - (comment-line arg))) +(require 'package) -(keymap-global-set "M-;" #'re/comment-dwim) - -(defun re/comment-defun (&optional arg) - "Mark a defun and comment it out. -Return to initial position after. Arg works on `mark-defun'." - (interactive "P") - (save-excursion (mark-defun arg) - (comment-region (region-beginning) (region-end)))) +(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t) -(keymap-global-set "C-M-;" #'re/comment-defun) - -(defun re/kill-defun (&optional arg) - "Mark a defun and kill it. -Arg works on `mark-defun'." - (interactive "P") - (mark-defun arg) - (kill-region (region-beginning) (region-end))) - -(keymap-global-set "C-M-S-K" #'re/kill-defun) - -(defun re/kill-bword-or-region (&optional arg) -"Kill region if active, otherwise kill back one word." -(interactive "p") -(if (use-region-p) - (kill-region (region-beginning) (region-end)) - (backward-kill-word arg))) +(setq use-package-always-ensure t + use-package-always-defer t) +#+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 with M-t, fast refresh once on + (corfu-popupinfo-hide nil) + :config + (corfu-popupinfo-mode)) +#+END_SRC +** Expand Region +#+BEGIN_SRC emacs-lisp +(use-package expand-region + :bind + (("C-=" . er/expand-region))) +#+END_SRC +** Aggressive Indent +#+BEGIN_SRC emacs-lisp +(use-package aggressive-indent) +#+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 +#+BEGIN_SRC emacs-lisp +(use-package page-break-lines + :demand + t + :config + (global-page-break-lines-mode)) +#+END_SRC +** AucTeX and pdftools +Make AucTeX use pdftools, prompt for master file, synctex, etc. +#+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)) +#+END_SRC +** CSV Mode +#+BEGIN_SRC emacs-lisp +(use-package csv-mode + :config + (add-hook 'csv-mode-hook 'csv-align-mode)) -(keymap-global-set "C-w" #'re/kill-bword-or-region) +#+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-" . markdown-demote) + ("M-" . markdown-promote) + ("M-" . markdown-move-up) + ("M-" . 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) +#+END_SRC +** Sly +#+BEGIN_SRC emacs-lisp + (defun re/sly-repl-new-frame (&optional arg) + "Start a SLY repl in a new frame." + (interactive "P") + (re/open-with-new-frame "SLY" #'sly)) + + (defun re/sly-quit-current-lisp () + "Quit the current lisp repl connection without prompting." + (interactive) + (sly-quit-lisp nil nil)) + + (defun re/sly-connect-stump (&optional arg) + "Connect to my typical stumpwm instance." + (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))) +#+END_SRC +*** Eldoc settings +Sly really doesn't play well with elodc in the minibuffer, so here are some settings to make it better. +#+BEGIN_SRC emacs-lisp +(add-to-list 'display-buffer-alist + '("^\\*eldoc" display-buffer-in-direction + (direction . 'down) + (window-height . 4))) +(keymap-global-set "C-c d" #'eldoc) ; force eldoc to show in minibuffer +(keymap-global-set "C-c D" #'eldoc-doc-buffer) ; open eldoc buffer when it's getting spammed +#+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) +#+END_SRC +** Forth +*** TODO Try out this mode for gforth +#+BEGIN_SRC emacs-lisp +(use-package forth-mode) +#+END_SRC +** ORG +Loading in org customizations from a separate file for now. Maybe tangle that file from here in the future +#+BEGIN_SRC emacs-lisp + (use-package org + :config + (require 'org-mouse) + (require 're-org) + :bind + (("C-c l" . org-store-link) + ("C-c a" . org-agenda) + ("C-c c" . org-capture) + ("C-c b" . org-switchb) + ("" . org-clock-out) + ("" . org-clock-goto) + :map org-mode-map + ("M-" . org-shiftmetaright) + ("M-" . org-shiftmetaleft) + ("M-S-" . org-metaright) + ("M-S-" . 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) + ("" . org-clock-in))) + + (use-package org-transclusion + :after + org + :bind + (("C-c t" . org-transclusion-mode))) +#+END_SRC +** HOWM +On-again, off-again relationship with this one +#+BEGIN_SRC emacs-lisp +(use-package howm + :config + (require 're-howm) + :bind + (("" . howm-menu) + ("S-" . re/howm-menu-new-frame) + :map howm-mode-map + ("C-c , k" . re/howm-create-keyword) + ("C-c , =" . howm-narrow-to-memo))) +#+END_SRC +** 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 + trashed-use-header-line t + trashed-sort-key '("Date deleted" . t) + trashed-date-format "%Y-%m-%d %H:%M:%S")) +#+END_SRC +* Editing +** UNIX/vi-like bindings +=C-h=, =C-w=, =C-u=, et. al to work as I expect. Some functions get re-bound when these take over a default. +#+BEGIN_SRC emacs-lisp + (defun re/open-line-below (n) + "Creates a new empty line below the current line and moves to it." + (interactive "*p") + (end-of-line) + (open-line n) + (next-line 1) + (indent-for-tab-command)) + + (keymap-global-set "C-o" #'re/open-line-below) + + (defun re/open-line-above (n) + "Creates a new empty line above the current line." + (interactive "*p") + (beginning-of-line) + (open-line n) + (indent-for-tab-command)) + + (keymap-global-set "M-o" #'re/open-line-above) + + (defun re/kill-bword-or-region (&optional arg) + "Kill region if active, otherwise kill back one word." + (interactive "p") + (if (use-region-p) + (kill-region (region-beginning) (region-end)) + (backward-kill-word arg))) + + (keymap-global-set "C-w" #'re/kill-bword-or-region) + (keymap-global-set "C-u" (lambda () (interactive) (kill-line 0))) ; kill-line backwards + (keymap-global-set "C-S-U" #'universal-argument) + (keymap-set key-translation-map "C-h" "") ; Rather F1 for help, also C-S-H works + (keymap-global-set "M-j" (lambda () (interactive) (join-line 0))) ; join-line other way +#+END_SRC +** Commenting and defun-level bindings +#+BEGIN_SRC emacs-lisp + (defun re/comment-dwim (&optional arg) + "Comment region if active, otherwise comment line. + Stolen from https://depp.brause.cc/dotemacs" + (interactive "P") + (if (use-region-p) + (comment-or-uncomment-region (region-beginning) (region-end)) + (comment-line arg))) + + (keymap-global-set "M-;" #'re/comment-dwim) + + (defun re/comment-defun (&optional arg) + "Mark a defun and comment it out. + Return to initial position after. Arg works on `mark-defun'." + (interactive "P") + (save-excursion (mark-defun arg) + (comment-region (region-beginning) (region-end)))) + + (keymap-global-set "C-M-;" #'re/comment-defun) + + (defun re/kill-defun (&optional arg) + "Mark a defun and kill it. + Arg works on `mark-defun'." + (interactive "P") + (mark-defun arg) + (kill-region (region-beginning) (region-end))) + + (keymap-global-set "C-M-S-K" #'re/kill-defun) +#+END_SRC +** Misc QOL bindings +#+BEGIN_SRC emacs-lisp (keymap-global-set "" nil) ; I keep toggliŋ overwrite-mode haply (keymap-global-set "C-\\" #'undo-redo) ; issues with C-? sometimes (keymap-global-set "C-S-K" #'kill-whole-line) -(keymap-global-set "C-u" (lambda () (interactive) (kill-line 0))) ; kill-line backwards -(keymap-global-set "C-S-U" #'universal-argument) ; C-u used above -(keymap-set key-translation-map "C-h" "") ; Rather F1 for help, also C-S-H works (keymap-global-set "C-S-d" #'delete-pair) -(keymap-global-set "M-j" (lambda () (interactive) (join-line 0))) ; join-line other way (keymap-global-set "C-z" #'zap-up-to-char) (keymap-global-set "C-c s" #'sort-lines) (keymap-global-set " " #'capitalize-dwim) ; M-c @@ -151,11 +367,6 @@ Arg works on `mark-defun'." (dolist (hook '(text-mode-hook LaTeX-mode-hook)) (add-hook hook #'visual-line-mode)) -(add-to-list 'display-buffer-alist - '("^\\*eldoc" display-buffer-in-direction - (direction . 'down) - (window-height . 4))) - (blink-cursor-mode -1) (delete-selection-mode t) @@ -195,8 +406,6 @@ Arg works on `mark-defun'." (keymap-global-set "C-x M-b" #'buffer-menu-other-window) (keymap-global-set "C-x k" #'kill-current-buffer) (keymap-global-set "C-x K" #'kill-buffer) -(keymap-global-set "C-c d" #'eldoc) ; force eldoc to show in minibuffer -(keymap-global-set "C-c D" #'eldoc-doc-buffer) ; open eldoc buffer when it's getting spammed #+END_SRC * Motion #+BEGIN_SRC emacs-lisp @@ -580,11 +789,20 @@ Start from bottom if given a negative line number." #+END_SRC * Cleanup on write #+BEGIN_SRC emacs-lisp -;; Cleanup on write -(setq require-final-newline t) -(add-hook 'before-save-hook #'re/flush-extra-lines) -(add-hook 'before-save-hook #'whitespace-cleanup) -(add-hook 'after-save-hook #'executable-make-buffer-file-executable-if-script-p) + (defun re/flush-extra-lines () + "Change all groups of blank lines to 1 blank line." + (interactive) + (save-excursion (mark-whole-buffer) + (replace-regexp "^\n+" + "\n" + nil + (region-beginning) + (region-end)))) + ;; Cleanup on write + (setq require-final-newline t) + (add-hook 'before-save-hook #'re/flush-extra-lines) + (add-hook 'before-save-hook #'whitespace-cleanup) + (add-hook 'after-save-hook #'executable-make-buffer-file-executable-if-script-p) #+END_SRC * Control #+BEGIN_SRC emacs-lisp @@ -815,48 +1033,6 @@ Stolen from https://depp.brause.cc/dotemacs" (eshell-life-is-too-much) (delete-char arg))) #+END_SRC -* SLY REPL -#+BEGIN_SRC emacs-lisp -;; SLY REPL -(add-hook 'sly-mrepl-mode-hook - (lambda () - (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))) - -(defun re/sly-repl-new-frame (&optional arg) - "Start a SLY repl in a new frame." - (interactive "P") - (re/open-with-new-frame "SLY" #'sly)) - -(defun re/sly-quit-current-lisp () - "Quit the current lisp repl connection without prompting." - (interactive) - (sly-quit-lisp nil nil)) - -(defun re/sly-connect-stump (&optional arg) - "Connect to my typical stumpwm instance." - (interactive "P") - (sly-connect "localhost" 4004)) -#+END_SRC -* GEISER REPL -#+BEGIN_SRC emacs-lisp -;; GEISER REPL -(add-hook 'geiser-repl-mode-hook - (lambda () - (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 * C-mode #+BEGIN_SRC emacs-lisp ;;; C-mode diff --git a/re/re-packages.el b/re/re-packages.el deleted file mode 100644 index 2a43385..0000000 --- a/re/re-packages.el +++ /dev/null @@ -1,163 +0,0 @@ -;;; re-packages.el --- Load Packs -*- lexical-binding: t; -*- -;; This file is not part of Emacs. - -;;; Code: - -(require 'package) - -(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t) - -(setq use-package-always-ensure t - use-package-always-defer t) - -;; UI/Editing - -(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 with M-t, fast refresh once on - (corfu-popupinfo-hide nil) - :config - (corfu-popupinfo-mode)) - -(use-package expand-region - :bind - (("C-=" . er/expand-region))) - -(use-package aggressive-indent :defer t) - -(use-package magit - :config - (message "Magit Loaded")) - -(use-package page-break-lines - :demand - t - :config - (global-page-break-lines-mode)) - -;; Filetypes -(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)) - -(use-package csv-mode - :config - (add-hook 'csv-mode-hook 'csv-align-mode)) - -(use-package markdown-mode - :config - (setq markdown-special-ctrl-a/e t) - :bind - (:map markdown-mode-map - ("M-" . markdown-demote) - ("M-" . markdown-promote) - ("M-" . markdown-move-up) - ("M-" . 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) - -;; REPLs -(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))))))) - -(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)) - -(use-package geiser-chicken :after 'geiser) - -(use-package forth-mode) - -;; PIM -(use-package org - :config - (require 'org-mouse) - (require 're-org) - :bind - (("C-c l" . org-store-link) - ("C-c a" . org-agenda) - ("C-c c" . org-capture) - ("C-c b" . org-switchb) - ("" . org-clock-out) - ("" . org-clock-goto) - :map org-mode-map - ("M-" . org-shiftmetaright) - ("M-" . org-shiftmetaleft) - ("M-S-" . org-metaright) - ("M-S-" . 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) - ("" . org-clock-in))) - -(use-package org-transclusion - :after - org - :bind - (("C-c t" . org-transclusion-mode))) - -(use-package howm - :config - (require 're-howm) - :bind - (("" . howm-menu) - ("S-" . re/howm-menu-new-frame) - :map howm-mode-map - ("C-c , k" . re/howm-create-keyword) - ("C-c , =" . howm-narrow-to-memo))) - -;; MISC -(use-package trashed - :config - (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")) - -(provide 're-packages) -;;; re-packages.el ends here -- 2.39.5