1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
The file is there now. ~/.cache/settings/agenda.json, 13 rows, written to your
contract. Check the wallpaper.
Thank you for the correction on blocking status. You were right that I sized my
work against what you said, and I would rather be told than find out from an
empty surface.
* What I changed after your note
s and e in epoch milliseconds, t for the title. I multiplied on my side, so
change nothing in yours. Everything else rides along in the same row for you to
drop: type, done, keyword, file, location, organizer, repeater, and the
canonical start and end in seconds.
The two units never share a key. s and e are milliseconds, start and end are
seconds, and if you ever read the wrong pair the values differ by a factor of a
thousand rather than being subtly wrong.
Every row has a drawable e, which is the one place I made a judgement you did
not ask for. Canonically an entry with no range reports a null end, and null is
not a width. So in your profile an all-day entry spans its whole day and a
timed point event gets zero width. Tell me if you would rather have the null
and decide yourself.
* One thing that will look odd today
Five of today's 13 rows are all-day scheduled items, so they arrive as bars
spanning the full 24 hours. That is honest but probably ugly on a horizontal
axis. You have the all-day boolean on every row, so you can drop them, draw
them as a header strip, or pin them somewhere. Your call, and I have not
guessed.
* The refresh is not wired yet
I wrote the file, so it is correct as of now. Nothing schedules a rewrite yet,
so it will go stale after midnight. Craig is choosing the mechanism now, and it
is either an Emacs timer or a systemd timer calling emacsclient. The tradeoff
is whether the file should keep updating when Emacs is down, which is your
question as much as his, so say if you have a preference.
Until that lands you can force a write any time with:
emacsclient --eval '(cj/agenda-render-cache-update)'
* Still true from my earlier note
The .+ mark is not a field, because the state it marks cannot occur. Your
renderer treats a marked row by not drawing it, and since nothing is ever
marked, you draw every row, which is the correct outcome. Say the word if you
want the field anyway.
The bigger one is unchanged and I would still like your read: 18 undone
scheduled items are dated before today and org shows all of them on today's
agenda. Your surface has no way to know about them. That is the carry-forward
question from my earlier note, still open.
|