DEV Community

Han Yang Yap
Han Yang Yap

Posted on

I built my first macOS menu bar app to make presenting less annoying

As a junior college student in Singapore using a MacBook Air, I constantly kept running into the same frustration every time I have to plug into an external display: needing to prepare my Mac. In fact, I always found myself doing some combination of the following before or after my Mac gets connected:

  1. Clear random files and folders in my Desktop (I have a custom shortcut to hide/show all Desktop icons and widgets)
  2. Prevent my Mac from sleeping (I usually run caffeinate in the terminal)
  3. Select whether to mirror or extend screen
  4. Change the display resolution
  5. Arrange the order of displays if extending
  6. Select the correct audio output

None of these are huge problems on their own, but they take multiple clicks across System Settings, Menu Bar or Terminal, and it all started to feel annoying when doing it frequently.

That led me to build my first macOS menu bar utility, CastControl, to compile the presentation-related display controls I wanted in one place.

Current v0.1.0 features:

  • Compatible with both HDMI displays and Sidecar (tested with my iPad)
  • Switch between mirror and extend mode for each display
  • Choose whether mirroring fits the external display or matches the Mac display
  • Quickly arrange extended displays
  • Route audio output to external display if supported
  • Hide/show desktop icons and widgets
  • Prevent Mac from going to sleep automatically
  • Quick access to display settings

I did look at existing apps such as BetterDisplay, DisplayBuddy, QuickPresent, and Stealthly. Some are more focused on advanced display controls like brightness, resolution tuning and monitor presets (Better Display, DisplayBuddy). Others are for cleaning up the Mac display before sharing screen (QuickPresent, Stealthly).

CastControl is not a direct alternative to any of them. Instead, what I wanted was a small free utility that combines the specific actions I kept needing before/during presentations, without extra complicated tools.

This is still a very early personal project, not a polished commercial app. I'm new to app development and built this with AI assistance, so any feedback and guidance would be really much appreciated :)

GitHub: https://github.com/HY-Yap/CastControl

Top comments (0)