aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRaul Benencia <id@rbenencia.name>2026-05-01 10:37:39 -0700
committerRaul Benencia <id@rbenencia.name>2026-05-01 10:39:08 -0700
commit5b46ed4306e0404b40622b0a67336c26689f44f5 (patch)
treec035f937020b85417ed0ae3ba816cfb30fc97c33
parent47bd2b74000d761e938da20a4ad7d735478d2194 (diff)
emacs: save files after marking them as done in org-agenda
-rw-r--r--.emacs.d/rul-emacs.org7
-rw-r--r--.emacs.d/rul-lisp/packages/rul-org-agenda.el7
2 files changed, 14 insertions, 0 deletions
diff --git a/.emacs.d/rul-emacs.org b/.emacs.d/rul-emacs.org
index 04e3d50..b12e34b 100644
--- a/.emacs.d/rul-emacs.org
+++ b/.emacs.d/rul-emacs.org
@@ -1236,6 +1236,13 @@ My org mode configuration is quite big, so I split it across multiple files.
(global-set-key (kbd "<f12>") #'org-agenda)
(global-set-key (kbd "C-c a") #'org-agenda)
+(defun rul-org-agenda-save-after-todo (&rest _)
+ "Save Org buffers after changing a TODO state from agenda."
+ (org-save-all-org-buffers))
+
+(with-eval-after-load 'org-agenda
+ (advice-add 'org-agenda-todo :after #'rul-org-agenda-save-after-todo))
+
(defun bh/is-project-p ()
"Any task with a todo keyword subtask"
(save-restriction
diff --git a/.emacs.d/rul-lisp/packages/rul-org-agenda.el b/.emacs.d/rul-lisp/packages/rul-org-agenda.el
index 719d4e6..9d249f9 100644
--- a/.emacs.d/rul-lisp/packages/rul-org-agenda.el
+++ b/.emacs.d/rul-lisp/packages/rul-org-agenda.el
@@ -4,6 +4,13 @@
(global-set-key (kbd "<f12>") #'org-agenda)
(global-set-key (kbd "C-c a") #'org-agenda)
+(defun rul-org-agenda-save-after-todo (&rest _)
+ "Save Org buffers after changing a TODO state from agenda."
+ (org-save-all-org-buffers))
+
+(with-eval-after-load 'org-agenda
+ (advice-add 'org-agenda-todo :after #'rul-org-agenda-save-after-todo))
+
(defun bh/is-project-p ()
"Any task with a todo keyword subtask"
(save-restriction
nihil fit ex nihilo