From 2f46871e56dbd8b33701b904a4625290b8f6457c Mon Sep 17 00:00:00 2001 From: Ian Keane Date: Sun, 2 Aug 2026 12:33:24 -0400 Subject: [PATCH] Emacs updates for guile, etc --- emacs-config.org | 165 +++++++++++++++++++++++++++++------------------ 1 file changed, 103 insertions(+), 62 deletions(-) diff --git a/emacs-config.org b/emacs-config.org index f8f2add..78d42e1 100644 --- a/emacs-config.org +++ b/emacs-config.org @@ -63,6 +63,11 @@ To get started, run =C-c C-v t= :init (savehist-mode)) #+end_src +** Paths +#+begin_src emacs-lisp + ;; (add-to-list 'exec-path "/opt/homebrew/bin") + ;; (setenv "PATH" (concat "/opt/homebrew/bin:" (getenv "PATH"))) +#+end_src ** Straight I don't use straight for much currently, but needed it in order to install beancount-mode and intend to migrate all my packages to it eventually. #+begin_src emacs-lisp @@ -321,6 +326,7 @@ Setting this in the :init of evil doesn't work for some reason. It has to be ear :init :config (setq evil-respect-visual-line-mode t) + (setq evil-collection-repl-submit-state 'insert) (evil-collection-init)) @@ -436,10 +442,10 @@ Setting this in the :init of evil doesn't work for some reason. It has to be ear ;; opening 'other window' on a subdir enters 2 window dired mode for copy/paste (setq dired-dwim-target t) - ;; if dired's already loaded, then the keymap will be bound - (if (boundp 'dired-mode-map) - (my-dired-init) - (add-hook 'dired-load-hook 'my-dired-init)) + ;; ;; if dired's already loaded, then the keymap will be bound + ;; (if (boundp 'dired-mode-map) + ;; (my-dired-init) + ;; (add-hook 'dired-load-hook 'my-dired-init)) (use-package dired-open :config @@ -517,7 +523,7 @@ I know these could be bound on a per-package basis, but since this is my primary "-" '(dired :which-key "Find Directory") "d" '(docker :which-key "Docker") "i" '(ian/conditional-imenu :which-key "Imenu") - "w" '(acewindow :which-key "Window") + "w" '(ace-window :which-key "Window") "W" '(ace-window-manual-dispatch :which-key "Window (dispatch)") ;; Agenda @@ -1198,70 +1204,105 @@ Idk I think this came from the vertico readme ** Lisp All lisp-family languages #+begin_src emacs-lisp - ; Required for some reason - (use-package symex-core - :straight - (symex-core - :host github - :repo "drym-org/symex.el" - :files ("symex-core/symex*.el"))) + ; Required for some reason + (use-package symex-core + :straight + (symex-core + :host github + :repo "drym-org/symex.el" + :files ("symex-core/symex*.el"))) - (use-package symex - :after (symex-core) - :straight - (symex - :host github - :repo "drym-org/symex.el" - :files ("symex/symex*.el" "symex/doc/*.texi" "symex/doc/figures")) - :config - (symex-mode 1) - (global-set-key (kbd "s-;") #'symex-mode-interface)) + (use-package symex + :after (symex-core) + :straight + (symex + :host github + :repo "drym-org/symex.el" + :files ("symex/symex*.el" "symex/doc/*.texi" "symex/doc/figures")) + :config + (symex-mode 1) + (global-set-key (kbd "s-;") #'symex-mode-interface)) - (use-package symex-ide - :after (symex) - :straight - (symex-ide - :host github - :repo "drym-org/symex.el" - :files ("symex-ide/symex*.el")) - :config - (symex-ide-mode 1)) + (use-package symex-evil + :after (symex evil) + :straight + (symex-evil + :host github + :repo "drym-org/symex.el" + :files ("symex-evil/symex*.el")) + :config + (symex-evil-mode 1)) - (use-package symex-evil - :after (symex evil) - :straight - (symex-evil - :host github - :repo "drym-org/symex.el" - :files ("symex-evil/symex*.el")) - :config - (symex-evil-mode 1)) + (use-package symex-ide + :after (symex) + :straight + (symex-ide + :host github + :repo "drym-org/symex.el" + :files ("symex-ide/symex*.el")) + :config + (define-key symex-editing-mode-map + (kbd "?") + #'symex-describe) + (define-key symex-editing-mode-map + (kbd "g d") + #'geiser-edit-symbol-at-point) + (symex-ide-mode 1)) - (use-package lithium - :straight t - :config - (lithium-mode 1)) - -(use-package rigpa - :straight - (rigpa - :type git - :host github - :repo "countvajhula/rigpa") - :config - (rigpa-mode 1)) - - (use-package symex-rigpa - :after (symex rigpa symex-evil) - :straight - (symex-rigpa - :host github - :repo "drym-org/symex.el" - :files ("symex-rigpa/symex*.el")) + (use-package lithium + :straight t :config - (symex-rigpa-mode 1)) + (lithium-mode 1)) + + (use-package rigpa + :straight + (rigpa + :type git + :host github + :repo "countvajhula/rigpa") + :config + (rigpa-mode 1)) + + (use-package symex-rigpa + :after (symex rigpa symex-evil) + :straight + (symex-rigpa + :host github + :repo "drym-org/symex.el" + :files ("symex-rigpa/symex*.el")) + :config + (symex-rigpa-mode 1)) #+end_src +*** Scheme +**** Guile +#+begin_src emacs-lisp + (use-package geiser) + (use-package geiser-guile) + + ;; Guile debug mode uses ',' to bind a bunch of useful command + ;; None of my evil packages seem to account for this + (with-eval-after-load 'geiser-debug + (evil-define-key 'motion geiser-debug-mode-map + (kbd ",") #'geiser-guile-debug-menu)) + + ;; Why why why doesn't homebrew just handle this? + (when IS-MACOS + (let ((brew-guile-share "/opt/homebrew/share/guile/site/3.0") + (brew-guile-cache "/opt/homebrew/lib/guile/3.0/site-ccache") + (brew-guile-ext "/opt/homebrew/lib/guile/3.0/extensions")) + (setenv "GUILE_LOAD_PATH" brew-guile-share) + (setenv "GUILE_LOAD_COMPILED_PATH" brew-guile-cache) + (setenv "GUILE_SYSTEM_EXTENSIONS_PATH" brew-guile-ext) + (setenv "GUILE_TLS_CERTIFICATE_DIRECTORY" + "/opt/homebrew/etc/gnutls/") + (setenv "GUILE_LOAD_PATH" + (string-join + '("/opt/homebrew/share/guile/site/3.0" + "/opt/homebrew/share/guile-lib") + ":")) + )) + #+end_src ** Go #+begin_src emacs-lisp (use-package go-mode)