š¾ Archived View for gemini.ctrl-c.club āŗ ~dhruva āŗ 2021-08-20_010631.gmi captured on 2024-02-05 at 10:28:24. Gemini links have been rewritten to link to archived content
ā¬ ļø Previous capture (2022-06-03)
-=-=-=-=-=-=-
I love TUIs. Being able to use just keys to do a lot of things without touching your mouse is pretty awesome. But I canāt constantly be on my laptop. I mean sure, with the pandemic, thatās all Iāve done, but ~~if~~ when it gets over, Iāll be on the move. I canāt turn on my laptop for every damn thing. I need to have the things I am working with on my phone too, especially things like the calendar. Now you get to read about the things Iāve tried to set up a TUI calendar which also syncs to my phone.
Conclusion: Calcurse. Beautiful.
I first tried
with
, but it just seemed tooā¦ much. Itās pretty cool, but it seems to have a very condensed UI, and I prefer more open UIs
Then I tried
. With a pretty light UI and sensible (read vim-like) key bindings, itās super easy to get a hang of. Creating, editing and other stuff is pretty easy. Also, the notes feature is pretty awesome as it allows me to add pesky zoom links which have a tendency to get mixed up. Zoom should just give a random name to their meetings, like yellow-monkey-poop or something. It might even bring some joy into a dreary life of pointless Zoom meetings. Anywho, I pretty much stuck to calcurse.
But then I read about khal in
and decided to try it. The interface is a bit different, with way too many months shown at once, and the key bindings are weird too. It seemed like there were 3 layers to the UI- the month layer, the day layer and the event layer. Calcurse on the other hand uses a single layer with 3 parallel sections, the to-do, appointments and the month. Calcurse just looked better, but khal isnāt far behind.
Now comes the real issue. Syncing. Sure I could set up a CalDav server, but I donāt have a static IP, and if I go back to my institute, I will not be able to access my laptop. Also, my laptop has to always be up, which is not the case. Plus, implementing my own set up would be a pretty painful task.
I could use some online server, but I couldnāt find any services which were not self-hosting. Also, I wouldnāt be able to store the calcurse format, instead store an ical which I convert on opening calcurse, which seems dumb.
My solution was git. Git is device and OS-agnostic, and I already know how to use it. Plus I get a change history for free, though I assume that at some point the history will get too large, and Iāll have to squash previous commits, but thatās like a once in a year thing. Putting it on a remote server also ensures that it is backed up, so even if my beauty of a laptop dies, Iād still have my calendar.
You can make the calcurse directory a git repo and add
to commit and push in post-save and pull in pre-load. I used GitHub as the remote repo, but you could use anything of your choice. Now in another device, all I had to do was clone the calcurse directory, and Iād be done. Since literally everything from settings to hooks was in the same place, it would work exactly the same in all devices.
The final issue. Phone syncing.
My first attempt was to simply try to extend the same set up to android via
. While that worked, calcurse was pretty hopeless on such a tiny screen with a soft keyboard. TUIs are not made for touch screens. I tried wyrd and khal too, but they werenāt easy to use either.
I knew I could get the calcurse data onto the phone, it was the UI that was a problem. I briefly thought about making an app which could parse and display calcurse data, but then remembered the painful thing that is Android development. Plus I would basically have to rewrite the calcurse parser which itself is in constant development, which would mean my thing would have to be in constant development. No, thanks.
I then dabbled with exporting an ical file from calcurse on exit, which worked fine, and I was able to import it into my calendar(
) too. At first, it would import the data multiple times, but then I found out that adding --export-uid while exporting from calcurse prevented that from happening, so that was fine. But the major issue was that I would have to run the git pull myself and then open the ics file with the calendar. Then too, events which were deleted from calcurse wouldnāt be deleted from the calendar, as events would be imported and merged to the default calendar.
I needed a calendar app which would basically only display the ics file, thatās all. Not knowing any apps, I just typed ics into Aurora Droid and I found
. This was perfect. I could sync a CalDav server, and it would work perfectly.
But this cycled back to the first issue. I donāt want to set up CalDav. Then I thought of just trying to āsyncā a URL which was just the link to an ics file. I used the raw link of the exported ics in my calcurse repo, and it worked!
Now, any time I edit the calendar on my laptop, it exports the calendar to an ics, commits it the repo, pushes to GitHub. From there, ICSxāµ syncs the changes to my calendar when I refresh in the app.
Success!
This set up is still not perfect. I cannot make changes on my calendar app which propagate to the laptop. I have to fall back to the calcurse CLI or TUI to add an event via termux. Itās not a dealbreaker, especially since I donāt have too many updates anyway, but a person can dream.