From 404590623599398f120cd73d44ad235271c3b5bd Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Mon, 20 Jul 2026 14:23:38 -0500 Subject: feat(agenda): add S- dedicated fullscreen agenda frame I added a standing agenda surface in its own fullscreen frame of the daemon, placeable on its own workspace while the working frames stay untouched. S- spawns, raises, or closes it. The force-rescan moves to C-M-. It shows a today-anchored seven-day view and refreshes every five minutes through org-agenda-redo, so the now-line and synced events stay current without re-scanning the file list. A default-deny minor mode keeps it read-only: only navigation, the engage keys (routed to the working frame), and the frame's own controls are allowed. A failed redo falls back to the last-good snapshot with cloned markers, so the frame is never blank or unrestricted. I made it a frame of the daemon rather than a second process, so it shares the live state (calendar-sync, edits, the now-line). There's no startup auto-open, and the Hyprland-managed-window variant is a vNext once this proves out. --- modules/org-agenda-config.el | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'modules/org-agenda-config.el') diff --git a/modules/org-agenda-config.el b/modules/org-agenda-config.el index 3cff9d95..7bbb31ae 100644 --- a/modules/org-agenda-config.el +++ b/modules/org-agenda-config.el @@ -225,11 +225,14 @@ improves performance from several seconds to instant." Use this after adding new projects or todo.org files. Bypasses cache and scans directories from scratch. -Bound to S-, the force-rebuild sibling of the F8 agenda family -\( display, s- all files, C- single project, M- this buffer)." +Bound to C-M-, the force-rebuild sibling of the F8 agenda family +\( display, s- all files, C- single project, M- this buffer). +The binding lives in `org-agenda-frame.el', which took S- for the +agenda-frame toggle and moved the force-rescan here." (interactive) (cj/build-org-agenda-list 'force-rebuild)) -(global-set-key (kbd "S-") #'cj/org-agenda-refresh-files) +;; S- and C-M- are bound by `org-agenda-frame.el' (cj/--agenda-frame-install-keys): +;; S- toggles the fullscreen agenda frame; C-M- runs the force-rescan above. (defun cj/todo-list-all-agenda-files () "Displays an \\='org-agenda\\=' todo list. -- cgit v1.2.3