From 5d8262e7854e43c3a5013d60b8d32fa869bbb924 Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Sat, 11 Jul 2026 21:07:00 -0500 Subject: fix(keyboard-macros): require user-constants at runtime, drop exit prompt user-constants was required only at eval-when-compile, but macros-file lives there and every macro-load path reads it at runtime. The byte-compiled module never pulled user-constants, so it worked only because init.el happens to load user-constants first. An isolated load of the .elc left macros-file unbound. Made it a plain require. Dropped cj/save-last-kbd-macro-on-exit and its kill-emacs-hook. On a daemon or systemd shutdown the y-or-n-p and name prompt have no one to answer, and M- already persists named macros, so unnamed throwaways don't need a shutdown gate. --- modules/keyboard-macros.el | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) (limited to 'modules/keyboard-macros.el') diff --git a/modules/keyboard-macros.el b/modules/keyboard-macros.el index 4e801096..bca36eed 100644 --- a/modules/keyboard-macros.el +++ b/modules/keyboard-macros.el @@ -43,7 +43,7 @@ ;;; Code: (require 'subr-x) ;; for string-trim -(eval-when-compile (require 'user-constants)) +(require 'user-constants) ;; for macros-file, read at runtime (defvar cj/macros-loaded nil "Whether saved keyboard macros have been loaded from file.") @@ -130,15 +130,7 @@ With prefix arg, open the macros file for editing after saving." (keymap-global-set "C-" #'cj/kbd-macro-start-or-end) (keymap-global-set "" #'call-last-kbd-macro) (keymap-global-set "M-" #'cj/save-maybe-edit-macro) - (keymap-global-set "s-" #'cj/open-macros-file) - (add-hook 'kill-emacs-hook #'cj/save-last-kbd-macro-on-exit)) - -;; Add hook to save any unnamed macros on exit if desired -(defun cj/save-last-kbd-macro-on-exit () - "Save the last keyboard macro before exiting Emacs if it's not saved." - (when last-kbd-macro - (when (y-or-n-p "Save last keyboard macro before exiting? ") - (call-interactively #'cj/save-maybe-edit-macro)))) + (keymap-global-set "s-" #'cj/open-macros-file)) ;; Auto-call setup after init (if after-init-time -- cgit v1.2.3