From 1e497a9bcad51a14d0b7ff8a784eec6e34a5898c Mon Sep 17 00:00:00 2001 From: Tim McCarthy Date: Wed, 9 Sep 2026 12:09:05 -0700 Subject: [PATCH] Fix misc errors --- emacs/init.el | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/emacs/init.el b/emacs/init.el index f22fd8f..ada8cb6 100644 --- a/emacs/init.el +++ b/emacs/init.el @@ -741,7 +741,6 @@ EMACS-ALTERNATIVE is the Emacs equivalent (e.g., 'C-s')." (org-special-ctrl-a/e 'reversed) (org-hide-emphasis-markers t) (org-use-speed-commands t) - (add-to-list 'org-speed-commands '("h" . org-fold-hide-sublevels)) (org-use-fast-todo-selection 'expert) (org-todo-keywords '((sequence "TODO(t)" "BLOCKED(b)" "|" "DONE(d)"))) (org-use-property-inheritance '("STYLE")) @@ -751,12 +750,20 @@ EMACS-ALTERNATIVE is the Emacs equivalent (e.g., 'C-s')." ((agenda "" ((org-agenda-span 1))) (todo "TODO" ((org-agenda-skip-function '(org-agenda-skip-entry-if 'scheduled 'deadline)))))))) :config + (add-to-list 'org-speed-commands '("h" . org-fold-hide-sublevels)) + (defun my/org-agenda-today () "Show org agenda for today only." (interactive) (org-agenda nil "d")) - (add-hook 'org-after-todo-state-change-hook #'org-save-all-org-buffers)) + (defun my/org-save-current-buffer () + "Save the current Org file, including when editing an indirect buffer." + (with-current-buffer (or (buffer-base-buffer) (current-buffer)) + (when (and buffer-file-name (buffer-modified-p)) + (save-buffer)))) + + (add-hook 'org-after-todo-state-change-hook #'my/org-save-current-buffer)) (use-package org-agenda :bind (:map org-agenda-mode-map @@ -767,8 +774,7 @@ EMACS-ALTERNATIVE is the Emacs equivalent (e.g., 'C-s')." :config (add-hook 'org-mode-hook (lambda () (org-bullets-mode 1)))) -;; Preload org-mode (and warm up text-mode hooks like jinx) after -;; packages are available on the load-path +;; Preload Org and its mode hooks after packages are available. (add-hook 'emacs-startup-hook (lambda () (with-temp-buffer @@ -777,9 +783,9 @@ EMACS-ALTERNATIVE is the Emacs equivalent (e.g., 'C-s')." (defun my/org-clear-all () (interactive) (let ((ast (org-element-parse-buffer)) - ;; Temporarily disable org-save-all-org-buffers + ;; Save only once after all TODO states have been cleared. (org-after-todo-state-change-hook - (remove #'org-save-all-org-buffers + (remove #'my/org-save-current-buffer org-after-todo-state-change-hook))) ;; Iterate over all headlines in the parsed AST (org-element-map ast 'headline @@ -789,7 +795,7 @@ EMACS-ALTERNATIVE is the Emacs equivalent (e.g., 'C-s')." (goto-char (org-element-property :begin hl)) (org-todo "")))) ;; Save once at the end - (org-save-all-org-buffers))) + (my/org-save-current-buffer))) ;;;; Screenshots for games ;; Steps to set up: @@ -1145,7 +1151,7 @@ any directory proffered by `consult-dir'." eshell-prompt-regexp eshell-p10k-prompt-string)) (use-package eshell-syntax-highlighting - :after eshell-mode + :after esh-mode :ensure t :config (eshell-syntax-highlighting-global-mode +1))