summaryrefslogtreecommitdiffstats
path: root/content/posts/org-agenda-eink/index.org
blob: b7595b91421bdf1eb7f77c333b4b86b08575deef (plain) (blame)
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
56
57
58
59
60
61
62
#+TITLE: Creating an Always On E-Ink Org Agenda
#+DATE: 2021-01-25T22:07:25-05:00
#+DRAFT: false
#+DESCRIPTION: Creating a physical org agenda for fun and profit
#+TAGS[]: org-mode agenda emacs hardware
#+KEYWORDS[]: org-mode agenda emacs hardware
#+SLUG:
#+SUMMARY:

#+ATTR_HTML: :title E-Ink org agenda displaying example events
#+ATTR_HTML: :alt E-Ink org agenda displaying example events
[[file:cover.jpg]]


I recently made a [[{{< ref "/posts/org-agenda-new-tab" >}}][post]] about how I was able to configure the new tab
page in my browser to display my org agenda. Since then I've been
working on another project similar to that, trying to take the concept
even further.

A while ago I purchased an [[https://inkplate.io/][Inkplate 6]] during its crowd funding stage
on [[https://www.crowdsupply.com/e-radionica/inkplate-6][Crowd Supply]], with the exact intention of creating something like
this.

At the core of the Inkplate 6 is the [[https://www.espressif.com/en/products/socs/esp32][ESP32]]. An [[https://www.arduino.cc/][Arduino]]-compatible
micro-controller with integrated Bluetooth and WiFi. It draws
very little power, which makes it ideal for something like this, as I
leave on 24/7. It also has the benefit of being able to pull from the
Arduino community, benefiting from the many libraries people have
created.

The way it works is very similar to the org agenda new tab page. It
leverages the exact same [[https://github.com/dantecatalfamo/agenda-html][agenda-html]] script, which has been modified
to export a text version of the agenda, as well as the HTML version I
already used. This script is run by a cron job every 5 minutes. The
ESP32 fetches this text agenda export and prints it verbatim onto the
screen. This happens on a loop, also every 5 minutes, so it's always
up to date with any changes I make to my org files. The Arduino sketch
for this project can be found on my github [[https://github.com/dantecatalfamo/inkplate-agenda][here]].

To make the output look as good as possible for display, before
exporting to a text file I replace all links with just their
description text. I do the conversion because I have a lot of links in
my org agenda, and if I don't the full link markup text would show up
in the export. It would look like
=[[https://example.com][Description]]= instead of =Description=, which
would be quite ugly and takes up a lot of horizontal space.

This project been hugely beneficial for me. Mostly because I can check
my org agenda without even turning on my computer. Even with my PC on,
I can look at it any time without having to open either a new tab in
my browser or Emacs.

Being an e-ink display, it's also not bright and distracting, and
doesn't need to be turned off at night. It sort of just looks like any
other appliance.

Between this e-ink version of the org agenda and the new tab version,
my usage of the org agenda has gone up substantially. I used to use
org for a handful of tasks, but moved over to regular calendar apps
for most things, as they were simply more accessible in many
situations. Now that I have this e-ink version of the org agenda, I
find myself using it for almost everything.