LINUX.ORG.RU

Чёткое расписание в Org Agenda

 , ,


0

1

Вогнал я расписание по неделям в org agenda с помощью периодичности дат .+1w и возникло нескольо вопросов:

  1. С помощью TODO флагов получается этакий журнал. Проблема в том, что если я опоздаю с отметкой на день, то следующее событие по периоду начнётся со сдвигом от запланированного (это же расписание) ровно на период от даты отметки. Как сделать так, чтобы следующее событие отсчитывалось от даты запланированной, не зависимо от того поставлю я флаг DONE в тот же день или на следующий.

    Т.е. прошло событие - я прошляпал и поставил его на DONE на следующий день - отмечается следующее это же событие по расписани ровно через неделю, а надо чтобы через неделю от запланированного (т.е. через неделю - 1 день).

  2. Как сделать так, чтобы по умолчанию следующие по периоду события отмечалить на WAIT (просто свои умолчания флагов для пунктов) после отметки только что прошедшего события.

    Т.е. прошло событие - отметил я его на DONE, выставляется следующее с флагом TODO, а мне надо другое (WAIT).

  3. А ещё у меня календарь поломался - строка с днями недели поехала вправо, т.е. над числами понедельников стоит вторник, над числами вторников - среда.
★★★★★

1. Используйте символ ++ или .+ вместо плюса, как советует мануал.

2. Надо установить пользовательский набор ключевых слов состояний для Org-файла.

3. Пока неясно, что это и почему случилось. Можно скриншот и вывод команды org-goto-calendar? Баг проявляется, если стартовать не загружая ~/.emacs?

Cheater
()
Ответ на: комментарий от Cheater

2. Чёрт, не прочитал толком вопрос. Насколько я знаю, из коробки такое не реализуемо. Сейчас посмотрю, можно ли быстро реализовать это на Elisp.

Cheater
()
Ответ на: комментарий от Cheater

2. Ага. По коду функции org-auto-repeat-maybe стало видно, что требуемого можно добиться 2 путями:

А) Выставить переменную org-todo-repeat-to-state равной «WAIT».

B) Если её не трогать (оставить nil, как по умолчанию), то состояние, в которое переходит repeated task после команды «пометить сделанной», - это первое состояние в цепочке несделанных состояний. Т.е. если записать в файл:

#+TODO: WAIT(w@/!) TODO(t) | DONE(d!) CANCELED(c@)

- то repeated task будет выставляться в состояние WAIT по умолчанию.

Cheater
()
Ответ на: комментарий от Cheater

Может это можно сделать в properties под определённой веткой?

ados ★★★★★
() автор топика
Ответ на: комментарий от Cheater

1. Используйте символ ++ или .+ вместо плюса, как советует мануал.

Вроде работает и, вроде, что-то ломается, например интервальность событий.

ados ★★★★★
() автор топика
Ответ на: комментарий от Cheater

3. Пока неясно, что это и почему случилось. Можно скриншот и вывод команды org-goto-calendar? Баг проявляется, если стартовать не загружая ~/.emacs?

Ну естественно после того как я поставил понравившуюся мне тему. При смене темы уходит - это баг темы. Вот паста из эмакса:

         August 2013             September 2013            October 2013    
     Su Mo Tu We Th Fr Sa     Su Mo Tu We Th Fr Sa     Su Mo Tu We Th Fr Sa 
                  1  2  3      1  2  3  4  5  6  7            1  2  3  4  5 
      4  5  6  7  8  9 10      8  9 10 11 12 13 14      6  7  8  9 10 11 12 
     11 12 13 14 15 16 17     15 16 17 18 19 20 21     13 14 15 16 17 18 19 
     18 19 20 21 22 23 24     22 23 24 25 26 27 28     20 21 22 23 24 25 26 
     25 26 27 28 29 30 31     29 30                    27 28 29 30 31 

Вот скиншот

ados ★★★★★
() автор топика
Ответ на: комментарий от ados

Может это можно сделать в properties под определённой веткой?

Org->Org TODO->Org Todo Repeat To State

Ну естественно после того как я поставил понравившуюся мне тему.

Это совершенно не «естественно» и ниоткуда ни следует. Ок, теперь ясно, что причиной бага является код темы. Приведите название темы, если это встроенная тема, или её код, если она кастомная.

Cheater
()
Ответ на: комментарий от ados

Причиной смещения дней недели является сочетание небольшого размера дефолтного шрифта и настройки height=0.9 у начертания (face) под названием font-lock-comment-face (который используется для выделения выходных дней, а также для выделения комментариев в коде):

(font-lock-comment-face ((t (:italic t :foreground "gray60" :slant oblique :height 0.9))))

Чем меньше размер шрифта Emacs, тем менее корректно ведут себя его начертания со свойствами, изменяющими ширину и высоту букв. Как результат, ширина букв в этом начертании вычисляется некорректно (получается слишком большой), что и вызывает смещение остальных дней недели вправо.

У меня баг проявляется на размере шрифта 160 и исчезает на размере 180 (в единицах 1/10 pt). Итого, можно либо увеличить размер шрифта, либо убрать ":height 0.9" из кода темы.

Cheater
()
Ответ на: комментарий от Cheater

Оговорился:

s/слишком большой/слишком маленькой

s/смещение вправо/смещение влево

Cheater
()

На первый вопрос советую почитать мануал — узнаете ответ не только на этот, но и на множество других вопросов. Org-mode невероятно гибкая штука и самая большая ценность в Emacs, после самого емакса.

Кстати, всем кто собирается использовать org-mode всегда рекомендую почитать эту офигенную конфигурацию для вдохновения: http://doc.norang.ca/org-mode.html

vyazovoi ★★★
()
Ответ на: комментарий от Cheater

Спасибо. Я, кажется, перезагружал функцию после того как убрал все указания о размерах, только недавно подметил что календарь починен. Наверно полная перезагрузка емакса всё утрясла.

ados ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.