org-agenda
- https://orgmode.org/org.html#Agenda-Views - самое правильное место для смотрения :)
- https://orgmode.org/manual/Agenda-Commands.html
- https://orgmode.org/worg/org-tutorials/agenda-filters.html filters and limits
- https://orgmode.org/org.html#Agenda-Commands - очень много полезняшек
- https://github.com/unhammer/org-random-todo - забавная штука про показать случайную тудушку раз в какое-то время. Вряд ли окажется удобно, но идея забавна. Равно как и https://github.com/mwfogleman/org-randomnote. Впрочем, тут-то у меня есть org-roam, и выбор случайных записей там.
- https://github.com/enisozgen/idle-org-agenda - вывешивает указанный вид адженды после указанного периода неактивности емакса. И вот это пробую применять. Чтоб не забывать, что у меня вообще-то планы есть. Хорошая штука оказалась - 2022-01-24.
- 2022-12-07 - эта штука реально рулит. Может, единственное, что пока огорчает — при выпрыгивании на поверхность не обновляет адженду. 2024-07-03 - продолжаю пользоваться, щетаю, musthave.
- https://orgmode.org/worg/doc.html#hooks - в принципе, вообще оргмодные хуки. Но про agenda там довольно много.
- https://github.com/alphapapa/org-super-agenda - могучая штука, правда делает адженду огромной по занимаемому пространству.
- https://github.com/alphapapa/org-ql - хитрая штука про запросы, это на когда-нибудь на будущее. Package org-ql which lets you, for example, create an Agenda-like view of all tasks that changed state to DONE in the last 14 days, which I find to be a nice way to look back on a sprint and see what I've accomplished. https://www.reddit.com/r/orgmode/comments/ii8r7h/comment/g35ncnv
- org-roam + org-agenda
Для настраиваемых штук, типа org-agenda, в отличие от бумажного bujo, ценно иметь возможность менять выводимые планы «по силе», от «самые базовые привычки» до «не мелочимся, список великих подвигов ждёт!». В agenda можно как перенастраивать, скажем, лимиты в одном view; так и запрашивать специальный вариант.
- https://emacs.dyerdwelling.family/emacs/20230722194000-emacs--showing-org-agenda-for-the-year/ - адженда на год. Но я не пробовала.
Про задать за сколько уведомлять и повторы
2023-10-19
https://orgmode.org/manual/Repeated-tasks.html
Про условные +5d, .+5d, ++5d - я помнила. А вот про отдельную предупреждалку, которая -3d в примере - то ли не увидела, когда читала, то ли не заметила, как появилось.
If you need both a repeater and a special warning period in a deadline entry, the repeater should come first and the warning period last
DEADLINE: <2005-10-01 Sat +1m -3d>
некоторые способы фильтровать
- https://orgmode.org/org.html#Special-Agenda-Views
- https://orgmode.org/org.html#Matching-tags-and-properties - понятно, что теги и свойства
Лимиты
https://orgmode.org/org.html#Filtering_002flimiting-agenda-items, там разное, меня заинтересовало:
- org-agenda-max-entries Limit the number of entries.
- org-agenda-max-effort Limit the duration of accumulated efforts (as minutes).
- org-agenda-max-todos Limit the number of entries with TODO keywords.
- org-agenda-max-tags Limit the number of tagged entries.
When set to a positive integer, each option excludes entries from other categories: for example, ‘(setq org-agenda-max-effort 100)’ limits the agenda to 100 minutes of effort and exclude any entry that has no effort property. If you want to include entries with no effort property, use a negative value for org-agenda-max-effort. One useful setup is to use org-agenda-max-entries locally in a custom command.
Примеры таковы:
(setq org-agenda-custom-commands '(("o" todo "Начато" ((org-agenda-max-todos 2))) ("b" "Block agenda and all todos" ((agenda "") (alltodo)) ) ("n" "test agenda and part of todos" ((agenda "" ((org-agenda-max-entries 5))) (alltodo "" ((org-agenda-max-todos 3)))) ) ))
Самое неожиданное для меня тут, что ограничение на alltodo
заработало после кавычек, хотя зачем там вообще кавычки.
На сейчас, 2022-12-23, думаю, что можно так попробовать собрать все-все мои тудушечки разной степени позабытости и неприоритетности в то, что будет выныривать в пределы видимости по мере появления сил. И временами сортировать по приоритетности их. Хотя рандом в сортировке был бы тоже неплох.
2022-12-26 Занятно, что скрыть «заблокированные» подзадачами задачи можно только в невидимость: (setq org-agenda-dim-blocked-tasks (quote invisible))
. То есть, похоже, если у меня есть такое заблокированное в том, что должно было бы быть показано, оно включается в количество записей, показываемых в разделе. То есть, реально их показывается меньше. И можно прийти к тому, что ни фига не будет показываться не потому, что нечего, а потому, что место занято невидимками. Кажется. Надо будет перепроверить позже.
Agenda по файлу или даже подзаголовку файла
If you would like to focus the agenda temporarily on a file not in this list, or on just one file in the list, or even on only a subtree in a file, then this can be done in different ways. For a single agenda command, you may press < once or several times in the dispatcher (see The Agenda Dispatcher). To restrict the agenda scope for an extended period, use the following commands:
C-c C-x < (org-agenda-set-restriction-lock)
Restrict the agenda to the current subtree. If there already is a restriction at point, remove it. When called with a universal prefix argument or with point before the first headline in a file, set the agenda scope to the entire file. This restriction remains in effect until removed with C-c C-x >, or by typing either < or > in the agenda dispatcher. If there is a window displaying an agenda view, the new restriction takes effect immediately.
C-c C-x > (org-agenda-remove-restriction-lock)
Remove the restriction created by C-c C-x <.
When working with Speedbar, you can use the following commands in the Speedbar frame:
< (org-speedbar-set-agenda-restriction)
Restrict the agenda to the item—either an Org file or a subtree in such a file—at point in the Speedbar frame. If agenda is already restricted there, remove the restriction. If there is a window displaying an agenda view, the new restriction takes effect immediately.
> (org-agenda-remove-restriction-lock)
Remove the restriction.
приоритеты могут быть числовыми, не только A,B,C
You can also use numeric values for priorities, such as
*** TODO [#15] Write letter to Sam
When using numeric priorities, you need to set org-priority-highest, org-priority-lowest and org-priority-default to integers, which must all be strictly inferior to 65.
Priorities can be attached to any outline node; they do not need to be TODO items.
Числовые можно шевелить через Shift-up/down, но только после настройки. Либо в буфере: #+PRIORITIES: 1 10 5
, числа произвольные, порядок - самый высокий уровень, самый низкий, самый по умолчанию.
Как вариант.
(setq org-priority-highest 0) (setq org-priority-lowest 64) (setq org-priority-default 15)
Здесь, кажется, самые широкие возможные пределы — от 0 до 64. Отрицательные, похоже, не хотят работать. Больше 64 тож не предусмотрено. Но по мне уже довольно большие просторы :)
Думала, что поумолчательный уровень лучше делать существенно ближе к самому неприоритетному из возможных. На практике оказалось, что лучше ближе к приоритетному. На сейчас у меня стоит 15. И те задачи, которые не хочется делать, сгоняются по приоритету вниз, с тем, чтоб выплывали, когда что-то из более посильного и приемлемого сделалось. 2023-01-25
Ещё теоретически есть org-fancy-priorities как пакет в мельпе — позволяет всякие произвольные строки как уровни приоритета (видимо, тож в количестве не более 65 :)). Но я думаю, что числа мне удобнее. Нагляднее.
про просмотр адженды
- F (org-agenda-follow-mode)
- Toggle Follow mode. In Follow mode, as you move point through the agenda buffer, the other window always shows the corresponding location in the Org file. The initial setting for this mode in new agenda buffers can be set with the variable
org-agenda-start-with-follow-mode
. - C-c C-x < (org-agenda-set-restriction-lock)
- Restrict the agenda to the current subtree. If there already is a restriction at point, remove it. When called with a universal prefix argument or with point before the first headline in a file, set the agenda scope to the entire file. This restriction remains in effect until removed with C-c C-x >, or by typing either < or > in the agenda dispatcher. If there is a window displaying an agenda view, the new restriction takes effect immediately.
- C-c C-x > (org-agenda-remove-restriction-lock)
- Remove the restriction created by C-c C-x <.
- A
- Interactively select another agenda view and append it to the current view.
- v l or v L or short l (org-agenda-log-mode)
- Toggle Logbook mode. In Logbook mode, entries that were marked as done while logging was on (see the variable org-log-done) are shown in the agenda, as are entries that have been clocked on that day. You can configure the entry types that should be included in log mode using the variable org-agenda-log-mode-items. When called with a C-u prefix argument, show all possible logbook entries, including state changes. When called with two prefix arguments C-u C-u, show only logging information, nothing else. v L is equivalent to C-u v l.
q Вот здесь не очень поняла, что надо делать, чтоб отображалось.
- v [ or short [ (org-agenda-manipulate-query-add)
- Include inactive timestamps into the current view. Only for weekly/daily agenda.
- v l or v L or short l (org-agenda-log-mode)
- Toggle Logbook mode. In Logbook mode, entries that were marked as done while logging was on (see the variable org-log-done) are shown in the agenda, as are entries that have been clocked on that day. You can configure the entry types that should be included in log mode using the variable org-agenda-log-mode-items. When called with a C-u prefix argument, show all possible logbook entries, including state changes. When called with two prefix arguments C-u C-u, show only logging information, nothing else. v L is equivalent to C-u v l.
- v [ or short [ (org-agenda-manipulate-query-add)
- Include inactive timestamps into the current view. Only for weekly/daily agenda.
org-habit
показывает в расписании красивую линейку, немного отличается способом задавания сроков и повторов.
(require 'org-habit) (setq org-habit-graph-column 80)
Затребовали. Установили, где ему отображаться в агенде.
Дальше в задаче написать
:PROPERTIES: :STYLE: habit :END:
Это должно быть todo в активном статусе, и там должна быть scheduled date с настроенными повторами:
- + - от момента, на который назначено
- ‘.+’ - от момента выполнения
- ‘++’ - сохранит привязку к дню недели, часу, дню месяца - в зависимости от того, что там за буква
- ‘y’, ‘m’, ‘w’, ‘d’ and ‘h’ letters. - год, месяц, неделя, час соответственно.
- минимум-максимум, например ‘.+2d/3d’ - не чаще двух дней, не реже трёх. У меня обычно стоят ужасы типа .+2d/1m
Например, вот так не чаще раза в неделю, не реже раза в три месяца.
SCHEDULED: <2020-10-15 Чт .+1w/3m>
«Не реже» мне лучше ставить с большим запасом. В год, например. Чтоб не огорчало. Подпинывать себя — не мой жанр, мне лучше напоминать нежно. 2022-12-09 Напоминает и показывает некоторый удобно видимый обзор, насколько часто я нечто делаю. Страйки - не мой жанр, но порадоваться тому, что в целом-то получается - я вполне. 2022-01-24.
https://emacs.stackexchange.com/questions/32430/how-to-sort-habits-by-priority-in-the-org-agenda-view - про то, как сортировать привычки по приоритетности, а уже потом schedule + deadline + consistency
Edna
Edna provides an extensible means of specifying conditions which must be fulfilled before a task can be completed and actions to take once it is. https://www.nongnu.org/org-edna-el/
https://karl-voit.at/2020/08/14/project-mgt-draft/ - здесь карл войт использует это расширение.
Org-review - наметить пересмотр
https://github.com/brabalan/org-review
Информацию хранит в пропертях. Не совсем удобно в расставлении, но наверное, это неужасно. Если буду активнее использовать capture, можно будет добавить в формочку, я думаю.
Entries will be scheduled for review if their NEXT_REVIEW or their LAST_REVIEW property is set. The next review date is the NEXT_REVIEW date, if it is present, otherwise it is computed from the LAST_REVIEW property and the REVIEW_DELAY period, such as +1m (точку перед интервалом, как это в scheduled удобно - не ставить. Точка во-первых подразумевается, следующий пересмотр намечается от сегодня, а не от ранее намеченного, во-вторых мешает распознавать интервал). If REVIEW_DELAY is absent, a default period is used. Note that the LAST_REVIEW property is not considered as inherited, but REVIEW_DELAY is, allowing to set it for whole subtrees.
To set these properties, you may use the org-set-property command (bound to C-c C-x p by default). For the NEXT_REVIEW property, a command org-review-insert-next-review is provided, that prompts for a date and inserts it.
Из этого прекрасно делается отдельный раздел в адженде. Но пока оно, похоже, согласно замечать в этом разделе только тудушки.
Пример, где есть и ревью, и ещё org-super-agenda, вписанная в блочную адженду.
(setq org-agenda-custom-commands '( ("b" "Block agenda and all todos" ((agenda "") (alltodo)) ) ("f" "С супераджендой" ((agenda "" ((org-agenda-span 'day) (org-super-agenda-groups '( (:name "Утреннее" :and (:habit t :category "Утреннее")) (:name "Рутина" :take (-3 :and (:habit t ; Потому что мне нужно в первую очередь поддерживать то, что и так идёт. :category "Рутина"))) (:name "Вечернее" :and (:habit t :category "Вечернее")) )))) (todo "Можно" ((org-agenda-max-todos 3))) (todo "" ((org-agenda-max-todos 7))) (tags "review" ((org-agenda-overriding-header "Reviews Scheduled") (org-agenda-skip-function 'org-review-agenda-skip) (org-agenda-cmp-user-defined 'org-review-compare) (org-agenda-sorting-strategy '(user-defined-down)) (org-agenda-max-todos 3) )) )))
тудушки
Так ставится набор статусов
(setq org-todo-keywords '((sequence "TODO" "FEEDBACK" "VERIFY" "|" "DONE" "DELEGATED")))
Более заковыристо - несколько последовательностей. C-c C-t
перемещает в последовательности вперёд. Буква, которая в скобках, сразу ставит нужный статус. Пробел статус убирает.
(setq org-todo-keywords '((sequence "TODO(t)" "|" "DONE(d)") (sequence "REPORT(r)" "BUG(b)" "KNOWNCAUSE(k)" "|" "FIXED(f)") (sequence "|" "CANCELED(c)")))
Впрочем, для меня, кажется, чаще работает более простой вариант:
(setq org-todo-keywords '((type "Можно" "|" "Готово")))
- https://orgmode.org/manual/Tracking-TODO-state-changes.html#Tracking-TODO-state-changes - запрашивать таймштамп или таймштамп с заметкой при смене статуса.
- https://orgmode.org/manual/Setting-Tags.html#Setting-Tags - про теги.
Все org-файлы каталога в агенду
(setq org-agenda-files (file-expand-wildcards "~/org/*.org"))
Вообще, список. Который можно хранить в отдельном файле.
If an entry is a directory, all files in that directory that are matched by ‘org-agenda-file-regexp’ will be part of the file list.
If the value of the variable is not a list but a single file name, then the list of agenda files is actually stored and maintained in that file, one agenda file per line. In this file paths can be given relative to ‘org-directory’. Tilde expansion and environment variable substitution are also made.
Entries may be added to this list with ‘M-x org-agenda-file-to-front’ and removed with ‘M-x org-remove-file’. Возможно, custom-save после этого приведёт к сохранению…
org-ql
Оба примера открывают аджендаобразную страничку просмотра, в результат пишут 1.
Кажется, менее удобно в плане обозримости
;; Show entries with any timestamp from last 7 days: (org-ql-view-recent-items :num-days 7)
Кажется, удобнее:
(org-ql-search (org-agenda-files) '(ts :from -7 :to today) :title "Recent Items" :sort '(todo priority date) :super-groups '((:auto-ts t)))
Habits пишут только последний раз, когда было сделано. Погордиться тем, что делаю с регулярностью — пока непонятно, как.
Как добавлять архивные файлы к тем, из которых собирается адженда — хорошего способа не знаю. Если не делать этого, ощущение, что неудобно поддерживать порядок в файлах.
Ссылки
- https://mbork.pl/2023-02-18_My_approach_to_TODOs - выглядит занятно, но не особо пока въехала.
- http://cachestocaches.com/2016/9/my-workflow-org-agenda/
- https://stackoverflow.com/questions/36782644/randomize-todo-list - зарандомить туду.
- https://github.com/Trevoke/org-gtd.el - тема на поразбираться. GTD
- https://github.com/brabalan/org-review - тема про намечать пересмотр отдельным таймштампом.
- https://christiantietze.de/posts/2022/12/updated-org-mode-agenda-display-buffer-alist/ - настройки окошек и поведения
- https://hugocisneros.com/org-config/#super-agenda - неплохой пример superagenda
- https://200ok.ch/posts/2022-12-06_how_much_did_you_get_done_today.html - можно глянуть, не переделать ли под себя. Ну, или решить эту задачку при помощи org-ql, но сама идея списка готового за сегодня - норм тема!