Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

aderoks

macrumors newbie
Original poster
Sep 7, 2022
1
1
At the end of 2021, my family had asked me to search for new paper wall calendars to hang on the wall for the next year. You know, the ones with one month on each page, and a bright, beautiful picture above the month. Such calendars are easily available on Amazon, and I proceeded to order two for us.


But I suddenly got the seeds of an idea. I was about to replace my desktop monitor as the old one had become discolored in places, and wasn't looking very good anymore. We were all discussing how to get rid of the old one, and not coming up with plausible ideas. So, this lightbulb moment struck me when I thought, "hmm, is there a way to create some sort of a digital calendar with this?"


I had already heard of DAKBoard and their software. I already knew that when most people say "calendar", they mean their events for the days and months to come and they want them all listed out in the actual calendar, which means that the actual numeral which represents the day of the month is relegated to a small corner of the box whereas the rest of the place is taken up by the list of events for the day. You know, how Google Calendar displays them, and DAKBoard does too. But somehow, I'm not a fan of that. I want a good, old fashioned calendar with big blocky numerals for the days of the month, which would also be easier on the eyes for senior people. I'm not such a huge busy bee that I always need to see what's on my plate each day. I just need to see what day it is. A dumb paper calendar which we had so far used don't even show that. It just statically displays the days and leaves it up to you to figure out which day it is!!


So, I commenced searching with just a minimal set of requirements in my mind:

  • It should show the current month, and display the current day in a different format, like the numeral enclosed in a box
  • It should have a big image holder space which can be filled with any given image of my choosing

I found Magic Mirror, and immediately I knew this was the thing for me. But the default view of Magic Mirror is pretty uninspiring. Which is understandable since this software was primarily written for use behind a mirrored surface which would be used for viewing a person's reflection and so, it displays just minimal text information with the entirety of the display being black to not interfere with the reflection.


But Magic Mirror is an amazing piece of software, fully customisable with a huge number of plugins available to make its appearance as you wish. So I set out to research, since I love programming and making new pieces of software for myself.


It took some searching, since I was still finding calendar displays which resembled DAKBoard, with Google Calendar integrated, which would display all daily events along with the actual date numeral. Surely not what I required.


But then I came across this plugin:


https://github.com/kolbyjack/MMM-MonthlyCalendar


Once I tried it, I knew this was the one I've been searching for all along (did it sound overly romantic?) I used it mostly in its unaltered state itself, with just tiny changes in the font size and color to make it more visible against a wallpaper background.


Oh, and I forgot to mention, I had moved on from my original plan of having a separate space for an image and the calendar below it in a white background like a traditional paper wall calendar. I was now thinking more like a mobile home screen, where we have a full display background and icons and text against it. So I searched for and found another plugin:


https://github.com/kolbyjack/MMM-Wallpaper


This would enable me to have beautiful wallpapers on my screen, and what's more, I can have them shuffle at fixed intervals. No more looking at a single image for the entire month! There were also a variety of image sources available, so I tried all of them to see which ones contained the most beautiful images. In the end, I settled for the firetv source. I was content with this setup for a few months, having mounted my monitor up on the wall in portrait mode (which makes it look more like a traditional paper calendar, instead of landscape mode, which just makes it seem like a wall computer display or tv display), and running the Magic Mirror software on a Raspberry Pi model 4B.


But you know, all of us makers just have the itch to make things better. And I saw that the same wallpapers were being cycled over and over again, so that after a point of time, there was nothing novel about the setup. And I was thinking "hmm, this thing has internet access. And there is a huge, inexhaustible supply of images over the internet. Why do I still then have to look at a small number of images over and over again? Can I do something about it?"


So I rolled up my sleeve and set out finding wallpaper sites which caught my fancy. I found some and inspected the HTML structure for each of them. Then I wrote a simple python script and used selenium and beautiful soup to extract the list of wallpaper categories from the site. On the side, I also created an absolutely basic Android app which just has a drop-down menu and a button. I did the plumbing such that the python script was exposed as a REST API to the world and when the Android app was started, it would call the API and would get a list of all these categories, which would get populated into the drop-down menu. From here, if I choose a category, and press the button, the python script would go to work downloading a number of the wallpapers of that category to a folder, which would be monitored by the MMM-wallpaper module in Magic Mirror and displayed in a rotating fashion.


That has been my journey so far. But now, the itch has struck me again, and I'm wanting to improve this further. For instance, in a regular paper calendar, we can turn over the pages to look at other months, and even in our phones, we can swipe to other months. That is not the case in a monitor display. For a while, I tried to extend the MMM-wallpaper module to accept external requests to change the displayed month, but it was proving to be complex and in general, not worth working on. But now, I've started learning some web development and I had this idea of creating my own version of a digital wall calendar which would have certain features which I can't find anywhere:

  • Ability to display any month of any year I wish to see
  • Change the font and colour of text and numerals
  • Color code certain days based on some task or reminder (I know I said I hate displaying tasks, but I'm talking about just a simple color block around a date which would give me an idea of what's coming up, or in the case of previous months, how long ago something happened)
  • All of the above features would be controllable from a companion app if it's on a non touch display. But if it's a touchscreen, it should be controllable directly from the screen
  • The app would also be able to change the displayed elements like temperature, time, quotes, etc on the go

I just have this idea, and I'm just starting out. Once I have enough idea about web development, I will start implementing this for myself, because that's my motivation: doing something cool for myself, something which will wow people. Already, my digital wall calendar attracts eyeballs of guests, and the more technical among them really appreciate the fact that this isn't something which can be created by anyone. That alone gives me the urge to create something better, and also learn something in the process.


Please let me know how you found my idea to be.
 
  • Like
Reactions: KaliYoni
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.