Always-on mini-monitor as a dashboard
Recently I've wanted to be more organised with my to-do list, especially at work, but also for this blog.
I've tried a few different tools/applications for this, ranging from as simple as a single text/markdown file or a TODO markdown file in Obsidian, or a floating note in Raycast, all the way through to daily notes in Obsidian with a complex system involving the dataview, QuickAdd and Templater plugins.
Most of these had some drawbacks that meant they either were not available where/when I needed them (e.g. only on one device) or involved too much overhead to be useful.
So I eventually settled on a dedicated service for my to-do/task list: TickTick. I had used TickTick long, long ago, and was pleasantly surprised to see they were still going strong and had made a lot of improvements in their UI and feature set. It is available on pretty much everything, including my Android phone, which is key to being able to quickly add things when I'm not at a computer.
But there was one other thing that always bugged me about all of these solutions that potentially a simple paper-based list would have solved: being able to always glance at the list at any point to see what was on it and quickly mark things off as I completed them.
I set out to build something mostly with things I already had available, and one new, key piece of hardware: a small touchscreen monitor. I found one on Amazon (AU) for a decent price, the GeeekPi 7-Inch IPS LCD Touch Screen.
It would have been nice to get a e-paper/e-ink screen, but they were fairly expensive for what they were, and even more so for a touch-enabled one. I even considered trying to make my own DIY equivalent of the TRMNL device, though it is only for viewing information, and not controlling anything. It is also fairly expensive for something that isn't fully open and configurable.
In any case, I first attempted to connect the mini-monitor to an old Raspberry Pi 3B my brother gave me, but it was already not working well, and it seemed to really struggle keeping up, so I quickly abandoned that.
I also tried connecting it to my work MacBook Pro directly, but managing a 3rd screen (laptop screen, external monitor, and then the mini-monitor) was painful and the touchscreen functionality didn't work at all. Window management was especially annoying.
So it was clear my mini PC running Arch Linux and Hyprland (via Omarchy) was the way to go so I could effectively manage the mini-monitor with its own workspace. It worked out of the box, but needed a decent bit of Hyprland configuration to get it just how I wanted it.
First up, I needed the touchscreen to only detect input for the monitor it was on (I originally had the mini-monitor connected to my second HDMI port but then it didn't run as well as the only connected monitor when I wanted that):
Next, in the auto-positioning from Hyprland, the mini-monitor was positioned to one side of my main monitor. So I positioned it and set the specific resolution I wanted (aiming for a scale large enough to quickly glance at and tap to check off tasks, but still display a decent amount of information):
I then needed to configure the mini-monitor to use its own workspace, and also force the web app version of TickTick to always open in that workspace:
In that same file, I also configured TickTick to open fullscreen, to stay on (i.e. not show the screensaver or go idle) while in fullscreen mode (so I could still exit fullscreen if I wanted Arch/Hyprland to go idle). Basically, running like a "kiosk" device, always ready to help:
With the assumption that I always wanted this available, I set up a shell script (and put it in my PATH) that would check if the mini-monitor was connected, and if so, launch TickTick immediately.
[!note] The script above assumes jq is available, and the omarchy-launch-webapp command is obviously from Omarchy, but you could do something similar with grep and a browser CLI command
I then added this so it would run on startup:
And the final piece of the puzzle was another shell script to cycle active workspaces without going through the workspace shown on the mini-monitor. (I do confess, I needed a bit of assistance from Gemini to get this started, as I'm not that good with bash scripts):
And of course update my Hyprland bindings to use this:
And here's what it looks like (taken at night to hide all the mess on my desk 😉):
![[attachments/mini-monitor-below-main-monitor.jpg|Mini-monitor below main monitor]]
Discussion in the ATmosphere