Dock with ease
One of the things I love about using linux OS is being able to open apps that are in your dock with the means of a hotkey (e.g. control + 1–9). When I started using mac I was surprised this was not possible to do in MacOS. You have options that are out there which are either behind a paywall, or require multiple configuration steps in order to make it work. The paid options are very affordable as well. However giving access to everything I type on my macbook, and not being able to inspect the code myself is somewhat wonky to me.
Maybe there are open source solutions for this, which I didn’t find and are way better. But for this usecase simplicity was key. I didn’t want to configure any hotkeys myself, it should just work out of the box, no matter which order my apps were in. I tent to change them from time to time.
So between way too much eating and preparing for the next meal these past christmas holidays, I’ve developed a quick app that does this for me. Why? Why not I say.
Introducing hotdock
Hotdock is a Mac only open source app that makes it possible to quickly open and minimalize apps by pressing control + a number. When you hold down control the numbers appear as a visual aid (handy in the beginning), and when you release the control key the numbers dissapear.

But you have Mission Control on your mac why not use that? Well for me it often takes too long to search for the window I need, which then takes me out of the well known flow.
Implementation
Golang, python or javascript/typescript are my go to languages these days to develop quick ideas. Even though it would have been possible to use those languages, it required introducing external libraries, or worse rewrite the code that those libraries abstract away. What it means? More maintainability in case a new vulnerability shows up.
So I chose to go with Swift. It offers native functionality to call the macOS API’s that I needed. It also helps that Swift is quite fast.
However there was one problem. I’m not that familiar with Swift as I’m with the other languages I work with on a day to day basis. So big part of the implementation was with the help of Claude code.
It often tried to overcomplicate things, make it “production worthy”, or write duplicate functions. I just needed a way to quickly open or minimalize my apps. After some back and forth I succeeded to have a local build going. Great! Now how to distribute this.
Preferably it would be an easy install that we know and love from the Mac, just an easy click and drag to the applications folder. However I quickly saw that to do everything neatly, it would require an Apple Developer account and a yearly subscription of 99$ to do the signing. This to prevent the Gatekeeper window from popping up every new build.
I chose not to go that route. I had no desire to become a Apple developer in the near future, and I also didn’t want to spent the money. Luckily the world of Mac has homebrew. A simple .rb file later and it was possible to install the app with brew:
brew tap bartbriek/hotdock https://github.com/bartbriek/hotdock
brew install --cask hotdock
It does require to trust the app everytime I install a newer version, but it’s a very low price I’m willing to pay since this app is very small and will not require a lot of updates, unless a security vulnerability comes a long or swift version is no longer supported.
Hope you’ve enjoyed this short write up, and see value in creating things yourself. It’s a great way to digest, and keep the mind sharp during the holidays!