diff --git a/config.el b/config.el index 9729db6..a397d16 100644 --- a/config.el +++ b/config.el @@ -64,7 +64,7 @@ (if (string= (system-name) "illya") (set-frame-font "Mononoki 12" nil t) - (set-frame-front "Mononoki 22" nil t)) + (set-frame-font "Mononoki 22" nil t)) (global-set-key (kbd "C-s") #'swiper) @@ -278,12 +278,50 @@ :config (setq org-roam-database-connector 'sqlite3)) -(add-to-list 'org-agenda-files "/mnt/tenma/srv/boymind/20230727221433-agenda_akko.org") +(setq akko/org-agenda-path (car (org-roam-id-find "7f9b4c89-d527-43be-8f6b-47658d87cc87")) + akko/org-tickler-path (car (org-roam-id-find "efe09517-236c-4665-af62-abfd5951a172")) + akko/org-projects-path (car (org-roam-id-find "36cd8b7e-8853-4986-8b1d-a186aa75a204")) + akko/org-inbox-path (car (org-roam-id-find "251c9862-a97c-4652-b9ee-6fcfc953cf5c")) + akko/org-someday-path (car (org-roam-id-find "22caafc8-f319-4d8a-ae64-534b1568e02e"))) + +(setq org-agenda-files (list akko/org-agenda-path + akko/org-tickler-path + akko/org-projects-path + akko/org-inbox-path + akko/org-someday-path)) (setq org-roam-capture-templates '(("d" "default" plain "%?" :target (file+head "%<%Y%m%d%H%M%S>-${slug}.org" "#+title: ${title}\n") :unnarrowed t) - ("i" "inbox" plain "* TODO %?" + ("i" "inbox" plain "* %?" :target (node "inbox") :unnarrowed t))) + +(setq org-refile-targets + (list akko/org-projects-path akko/org-someday-path akko/org-tickler-path)) + +(setq org-todo-keywords '((sequence "TODO(t)" "WAITING(w)" "|" "DONE(d)" "CANCELLED(c)"))) + +(setq org-agenda-custom-commands + '(("p" "Projects" alltodo "" + ((org-agenda-overriding-header "Projects") + (org-agenda-skip-function #'akko/org-agenda-skip-all-siblings-but-first) + (org-agenda-files (list akko/org-projects-path)) + (org-agenda-prefix-format '((todo . " %i %b"))))))) + +(defun akko/org-agenda-skip-all-siblings-but-first () + "Skip all but the first non-done entry." + (let (should-skip-entry) + (unless (org-current-is-todo) + (setq should-skip-entry t)) + (save-excursion + (while (and (not should-skip-entry) (org-goto-sibling t)) + (when (org-current-is-todo) + (setq should-skip-entry t)))) + (when should-skip-entry + (or (outline-next-heading) + (goto-char (point-max)))))) + +(defun org-current-is-todo () + (string= "TODO" (org-get-todo-state))) diff --git a/custom.el b/custom.el index 1a338b7..91037bf 100644 --- a/custom.el +++ b/custom.el @@ -23,6 +23,6 @@ ;; If you edit it by hand, you could mess it up, so be careful. ;; Your init file should contain only one such instance. ;; If there is more than one, they won't work right. - ) + '(org-scheduled-previously ((t (:foreground "#cbccc6"))))) (put 'downcase-region 'disabled nil) (put 'upcase-region 'disabled nil)