
Lunar
macOS app to control monitor brightness, volume or input
A lot of challenges had to be surpassed before I got to this version.
There was no good solution for M1 Macs so I had to settle for two workarounds that kind of worked and I wasn't sure users would be happy with them.
The codebase wasn't prepared to support more than one way to control a monitor so a big refactor was expecting me.
The payment SDK I used didn't have a way to provide a license valid forever and also only allow updates for one year, so I had to create a custom licensing server.
The external light sensor needed a firmware written in a way that could work with a lot of sensor modules so that users could DIY it where I couldn't ship it.
I had to find beta testers, work around macOS bugs, secure code containing Pro features (as the app is still open source, mostly).
And users still kept coming with feature requests and minor annoyances that they wanted fixed.
It was a long and hard journey, but on May 31st, Lunar 4 was finally released on Product Hunt, with support for M1: https://www.producthunt.com/posts/lunar-4-2
I gave free licenses to all the users that donated even a single dollar and it was great getting all those thank you emails!
But some users were still upset that Lunar now had paid features, and voiced that with an attitude that made me question if I did the right thing.
For 7 months I worked on Lunar whenever I could get some time.
Between a demanding job, spending time with my family and trying to stay sane by learning to play way too many musical instruments, there wasn't much time when I was rested enough to work on a side project.
So on March 1st I decided to quit my job and focus solely on Lunar.
Also, the first M1 MacBooks just arrived and users were complaining all around that Lunar doesn't work for them.
I got an M1 MacBook as well and guess what: the DDC protocol, which is the only way Lunar can communicate with monitors, was not available for apps on M1.
So I started frantically looking for ways to make Lunar work on M1, and a lot of people started helping me with suggestions in this looong Github thread: https://github.com/alin23/Lunar/issues/210
1 Like
Comment
I had no idea why, but suddenly I was getting a lot of emails and Github issues about Lunar, Sentry was being filled with errors I've never seen before, and people were buying me coffee each 10 minutes.
I knew Hacker News could have such an effect so I checked the front page, and there it was, the top submission: https://news.ycombinator.com/item?id=24344045
This definitely had an effect on me. First, it gave me more work with so many support emails and issues. Second, it gave me enough money to buy the required hardware to start prototyping the ambient light sensor.
But most important, it gave me ambition to jump into Lunar's codebase again and try to implement all those useful functionalities that users wanted (like hide menubar icon, or more automatic curve and simpler UI).
Some users even contacted me personally on Twitter to let me know that I should definitely ask for money on this app as it has a lot of value. So I thought I should listen to them...
1 Like
Comment
After 2 years of working continuously on fixing user issues and adding feature after feature and trying to please everyone even when some people were asking for contradicting features, I needed a break.
Lunar 3.2.3 was the last Lunar 3 release which I deemed stable enough that I don't need to care much about it anymore.
Some users were very supportive and donated close to $5000 in the course of 3 years which helped pay for Apple certificates, server hosting and hardware for building an ambient light sensor.
But some were downright abusive and I felt I needed to pause before investing any more time into this app.
1 Like
Comment
Even though the first Product Hunt launch only got 17 votes, somehow, more and more people were finding out about Lunar.
I made a good choice to include a Buy Me a Coffee button and a way to contact me in the app menu, as this lead to me understanding that other people have this problem too.
Some users even requested functionalities that are now the most important features in Lunar.
These include Sync Mode (sync the built-in MacBook display brightness to external monitors) or Media Keys (use the same brightness keys on the keyboard to also control external monitors).
So after 3 hectic weeks of coding and talking with users to find out what they need in an app like this, Lunar 2.0 was launched on Product Hunt with a roaring success!
1 Like
Comment
After finding a cool (and totally ungooglable) name, and after 6 months of trial and error with creating a proper macOS UI, I finally took the plunge and launched Lunar on Product Hunt: https://www.producthunt.com/posts/lunar-5
I launched it as a completely free product as I only saw it as a personal project and didn't think that anyone would pay for such a thing.
After all, I thought, I'm probably the only MacBook user that finds pressing monitor buttons hard.
It didn't get much traction, probably because I didn't explain well what problem it solves. But some people liked it.
1 Like
Comment
After almost 2 months of reading about DDC/CI and how I can use it to send commands to external monitors, I finally got Lunar 0.1 semi-working.
I was calling it AdaptiveService or Adaptivo then. I had no plans to publish it as a full-fledged app, but I published the code on Github anyway in case others might be in need of inspiration for their project.
I couldn't have done Lunar without another Github project that is still at the base of it and all other monitor controlling apps in existence now: https://github.com/kfix/ddcctl
1 Like
Comment
New job, more stuff to do, so I got myself a 4K LG Monitor to extend my small Macbook screen.
I had set up my home office right on an interior balcony where I had lots of natural light.
That meant that the monitor brightness and contrast needed to be constantly adjusted to have the screen visible in sunlight and to not blind me when the clouds/night came.
If you ever used an external monitor, you know how cumbersome it is to adjust the brightness constantly using its physical buttons or touch controls. And macOS doesn't provide any way to change the brightness from the Macbook, unless you use something expensive like an Ultrafine.
So I started working on an app to automatically adjust the brightness based on the sun position in the sky.
1 Like
Comment
About
Lunar exists because changing monitor brightness, volume or input feels clunky when you have to press one button 10 times just to find the right menu, and 10 more times to get the right value.

Comment