Personal productivityOriginal Reddit post

I built HyperSwitcher, a native Mac app for fixed Hyper-key app and window shortcuts

Full contextOriginal content · Reddit

Hey, I’m Dennis, an indie Apple developer from Germany, and I’m releasing a new macOS app called HyperSwitcher. Problem I built HyperSwitcher because I wanted switching between apps and windows to feel more predictable and muscle-memory based. Cmd-Tab works well, but because it is ordered by recent usage, the same app is not always in the same position. If you switch between the same apps all day, that small bit of friction adds up. HyperSwitcher lets you assign fixed Hyper-key shortcuts to your most-used apps, for example: Hyper + B opens your browser Hyper + C opens your calendar Pressing the same shortcut again cycles through that app’s windows Hyper + Arrow keys can be used for to quickly create window layouts "Hyper" is a physical key, usually Caps Lock, that is remapped to behave as the combined press of the Cmd+option+control keys; this gives you an easy to reach shortcut key that does not conflict with any other system or app shortcuts The idea is: instead of thinking “where is this app right now?”, you press the same shortcut every time. Comparison Compared to Cmd-Tab, HyperSwitcher is not based on recent order. Your shortcuts stay fixed, so switching can become more automatic. Compared to tools like Raycast or Alfred, HyperSwitcher is more focused on app/window switching specifically. It is not trying to be a launcher or command palette replacement. It is meant for keyboard-first Mac users who want direct shortcuts for the apps and windows they use constantly. One specific app I want to mention is rcmd. To be honest, when I started working on HyperSwitcher, I was way too excited about the idea to even consider searching for apps with a similar approach. I literally found out about rcmd when I read the new PCP rules where the app was linked to as an example. I'm a bit discouraged about releasing HyperSwitcher but in the end, it's my own spin on an app switcher and it does some things quite differently like focusing on building quick layouts and applying some heuristics to figure out the best window to focus and I have a lot of ideas for the future direction of the app. Pricing HyperSwitcher is free to try, with a $5.99 one-time unlock. No subscription, no account, no cloud. Everything stays local. Download: https://hyperswitcher.app I’d genuinely love feedback from other Mac users. I was pretty excited when I started building on this and had the initial prototype ready. This is exactly the type of app and window switcher I've always wanted but that doesn't mean it's for everyone. --- Trust and Transparency My personal website: https://swiftedmind.com General information about me, my career and my portfolio My LinkedIn: https://www.linkedin.com/in/dennis-müller-3830061b4/ I am a professional software engineer with 6+ years of experience, currently working as a senior iOS developer. I am building lots of stuff on the side because programming is a huge passion for me. My GitHub: https://github.com/SwiftedMind Information about my open-source work, which primarily focuses on building tools for developing apps in Swift and SwiftUI Another app I made: https://apps.apple.com/us/app/tessera-seamless-patterns/id6756501042 A seamless pattern design studio for Mac and iPad. Privacy Policy for HyperSwitcher: https://hyperswitcher.app/privacy-policy/ Terms of Service for HyperSwitcher: https://hyperswitcher.app/terms-of-service/ Why is HyperSwitcher not on the App Store? As is the case with a lot of app switchers on Mac, HyperSwitcher needs special system permissions to focus and move apps and windows in specific ways, which for some mechanisms is either not available or not allowed for apps on the App Store.

01Demand tags
Personal productivityMissing featureDesktop appUnsolved

Collected discussion

25 collected

25collected56reported on Reddit
u/UnluckyDuckyDuck

This looks awesome and I'll come back to provide feedback after using it, hopefully it's what I am looking for. About being discouraged because rcmd exists -- You should be super happy that rcmd exists, it means there's market and that it's a real problem. Alternatives are always welcome whether they're free, open source or paid. People appreciate the small details and features, and even if only 10% of the app is "unique", there will still be people who look for that exact uniqueness. Viel Glück!

u/d3muellerOPReply

Thank you for the kind words 🙂 I look forward to your feedback!

u/terza36

How is your app different from the Hyperkey app, which is free and seems to perform the same functions?

u/d3muellerOPReply

As far as I'm aware, HyperKey only helps you to turn the Caps Lock key into a Hyper key. Does it do more than that? HyperSwitcher allows you to make use of that Hyper key by setting shortcuts to launch apps, switch between apps and create layouts. 🤔

u/CosmicCodeRunner

Will be very interested to try this out. I'm currently achieving this through HammerSpoon (sharing my config here). One requirement I have is being able to keep a core set of mappings that work across both personal and work laptops, but, have machine specific ones depending on which machine I'm using. Probably a super unique workflow requirement.

u/d3muellerOPReply

That's awesome! I thought about HammerSpoon before starting to work on my app, but I wanted a setup that's a bit easier than what you need for HammerSpoon 😅 It's an interesting requirement. You can currently export/import shortcuts, but that doesn't quite solve your workflow. Would adding profiles of some kind help you? 🤔 So you can have one kind of config file with common settings and "profile" overrides? I'll think about it a bit more, that seems like a nice feature.

u/d3muellerOPReply

Hey, in the latest version of HyperSwitcher, you can now set up profiles :)

u/SilentTransition5695

While this isn’t something I see myself using, I like the idea of bringing these features to less technically savvy users. I’m curious about how you’ve implemented this. Did you use the skylight API? I know that’s how yabai does it under the hood, although I’m not sure if your app actually needs it.

u/d3muellerOPReply

Yep, it's partially using the Skylight API for a few things that would otherwise not be possible. I did try to fallback on as many public APIs as possible, but they are really lacking and buggy for most of the time. So I opted for occasional use of private APIs with a fallback on public ones, to keep the app stable but improve its capabilities.

u/jdex72

I have a Chrome window on every desktop. What most frustrates me with the default app switcher is how it forgets which desktop the app was displayed on last. App A is in focus on Desktop 1. Next I focus App Y - shown on Desktop 2. When I now select App A from the switcher, the instance on Desktop 2 is focused, and I'm forced to manually switch to Desktop 1. Is this a behavior your app can fix?

u/d3muellerOPReply

I agree that these kind of things are infuriating and one of the reasons I wanted to build my own app. What the app currently does: Whenever you press a shortcut for an app with multiple windows, it focuses the one closest to your mouse cursor, i.e. where your eyes/focus likely are/is. It also prevents all other windows from being brought to the foreground (which is what annoys me most with Cmd+Tab), so only the one window will be shown. In an earlier prototype, I actually did implement it so that the most recent app window is shown, I just thought a context-aware solution might work better. But if you like a recency-based focus mechanism, I can certainly bring it back and add it as a toggle in the settings. When I'm off work tonight I can implement that and then you can give it a try with the free version, if you like 🙂

u/Beardy4906

Seems like a hotkey based app launcher more than a switcher no?

u/d3muellerOPReply

It's not about launching the apps, though it can do that too, of course. It's for quick switching between open apps and windows, and meant as an alternative/addition to the default Cmd+Tab mechanism that macOS has. So I'd argue it's an app switcher first and foremost

u/ahmett9

really like the muscle memory angle, can you pin specific windows and not just apps?

u/d3muellerOPReply

The issue is that individual windows don't have a stable identity, so it's really hard to permanently pin them to a shortcut. I am thinking about options to somehow add mechanisms that can maybe keep track of windows during an app's lifecycle (aka once the app is closed, the window identities will be gone). It's a super tricky problem, unfortunately. But I am working on it 😃

u/RegattaJoe

I'll check it out. Thanks. Your other app, Tessera, looks cool too.

u/dvdweyer

Cool, I’ll give it a spin for sure. But if I understand the principle correctly, it will conflict with Hyperkey https://hyperkey.app. Correct?

u/d3muellerOPReply

Yes, but if you prefer to keep using Hyperkey, you can disable "Use Caps Lock as Hyper key" in the General settings of HyperSwitcher. I added support for the Hyper key mapping to make it easy for people, but some are using third-party solutions for that, so I added that toggle 😄

u/jonaithan

This is great - probably user error but I swear mine are moving around on me

u/d3muellerOPReply

Interesting. Are you able to reproduce it and seer if you can send me the steps via settings > Feedback? That would be super helpful :) I’d gladly take a look at it. I wouldn’t rule out some kind of bug or edge case you are hitting.

u/A_Drop_of_Colour

No clue which app came first and you might not even know of this app but just wanted to mention your app icon looks extremely similar to Wallspace. Like the only difference is the dots in your icon.

u/d3muellerOPReply

Oh, I do not know that app. The star in my app logo is generally used as the symbol for the Hyper key, that's where it comes from and why I chose it. But thanks for the heads up, maybe I can modify it without losing the Hyper key symbol 🤔

u/yoyoTechKnows

I have been trying to find an app that would "pin" windows with a hotkey to specific windows - some do close to this, but the biggest issue I have is with windows like teams, each window has a new name so it seems to get lost - anyway, this looks interesting and wondering if it would help me?

u/d3muellerOPReply

That is indeed very tricky because macOS doesn’t provide stable identification for windows, so the best any app can do is capture as best a fingerprint of a windows as possible and hope for the best. I have been trying to get something like this working but nothing is reliable enough. However, there is an experimental version of something like this in the app, right now! “temporary shortcuts” that can pin an app (or a window, which you can enable in the settings) until the app or window is closed. It is also not working perfectly 100% of the time but if you want to try it and provide feedback, that would be appreciated. https://hyperswitcher.app/guide/switching/temporary-shortcuts/