From 1283a71c34fd6ce4d0cde9bc84a900733ab22d59 Mon Sep 17 00:00:00 2001 From: jao Date: Tue, 21 Oct 2025 23:52:00 +0100 Subject: org-focus: minor modes --- lib/doc/jao-org-focus.el | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'lib/doc/jao-org-focus.el') diff --git a/lib/doc/jao-org-focus.el b/lib/doc/jao-org-focus.el index ac33df9..13f1201 100644 --- a/lib/doc/jao-org-focus.el +++ b/lib/doc/jao-org-focus.el @@ -46,6 +46,7 @@ When invoked on an indirect buffer, pops back to its base." (if-let* ((b (get-buffer bname))) (pop-to-buffer b) (clone-indirect-buffer bname t) + (org-focus-child-mode) (setq jao-org-focus--parent parent jao-org-focus--section title) (org-narrow-to-subtree) @@ -62,7 +63,7 @@ sync." (goto-char (point-min)) (when (re-search-forward (format "\\*+ %s" title) nil t) (org-narrow-to-subtree) - (beginning-of-line)))) + (goto-char (point-min))))) (defun jao-org-focus-redisplay-children () "Find focused children and redisplay them." @@ -100,5 +101,20 @@ With arg, offer to switch to all children, regardless of their parent." :history jao-org-focus--focused-history :items ,(lambda () (mapcar 'buffer-name (jao-org-focus-list t))))) +(define-minor-mode org-focus-mode + "A mode where keeping track of focused children is on by default." + :lighter " ◎" + :keymap '(("\C-cl" . jao-org-focus-switch) + ("\C-cR" . jao-org-focus-redisplay) + ("\C-co" . jao-org-focus)) + (if org-focus-mode + (add-hook 'after-save-hook #'jao-org-focus-redisplay-children nil t) + (remove-hook 'after-save-hook #'jao-org-focus-redisplay-children t))) + +(define-minor-mode org-focus-child-mode + "A mode for the children of a focused org buffer." + :lighter " ◉" + :keymap org-focus-mode-map) + (provide 'jao-org-focus) ;;; jao-org.el ends here -- cgit v1.2.3