App not working after upgrade to v2?
There was a bug in the migration of the settings and in handling number keys in v2.0.0.
Make sure you're running rcmd v2.0.1 or later, check if the Apps Key is configured correctly and restart the app.
What do I do if I have two apps with the same first letter (e.g. Music and Mail)?
Best way to handle this is to assign a custom key for the second app.
For example, if rcmd focuses Mail on
M and you want to assign
U for Music:
- Focus the Music app
And that's it, from now on you can use
U to focuse the Music app.
What does Cycle do?
If you have multiple apps with the same first letter, pressing that letter multiple times will cycle between those apps.
For example, if you have Safari, Spotify and Shortcuts running:
Swill focus Safari
Sagain will cycle and focus Spotify
Syet again will cycle and focus Shortcuts
Can I cycle between windows of the same app?
Unfortunately there's no macOS API that allows us to focus specific windows of an app.
The Accessibility API would allow this in some manner but it is not allowed on the App Store.
There is a macOS native way to switch between windows of the same app:
New window is opened when activating an already running app
To fix this, restart the app you are trying to focus.
Why does it happen?
This happens because that app has updated itself in the background while it was running.
Because the app on disk is different than the running app, the system creates another app instance when rcmd tries to focus it.
This usually happens with browser as they update frequently.
rcmd will try to detect this and fix the problem itself but information about the binary may be missing and the detection doesn't always work.
Left Command triggering rcmd?
letter not doing anything?
It's possible that your keyboard is sending the wrong key codes.
You can check what keycodes get sent by downloading this simple app: KeyCodes.zip
After launching it, check the Log key up events and modifier changes checkbox.
Now if you press your
Right Command key and click on the Info button you should see:
- Modifiers: 104884
Left Command key you should see:
- Modifiers: 104884
If you don't see those key codes exactly, then it's a problem with your keyboard mapping.
- Specific models of external keyboards
- Changing the Modifier Keys settings in System Preferences
Keep in mind that you can always change the trigger key to something else than
Right Command if that key is not working on your keyboard.
High CPU Usage?
Looking at the % CPU usage is not a very accurate way of judging the app's efficiency.
Especially on M1, read more about it in this article: CPU percentage is misleading on M1 Macs by The Eclectic Light Company
Why do I see CPU usage spikes?
rcmd has to listen on window change events and keep track of how often an app is switched to.
This is used in the scoring algorithm for choosing which apps get priority in the dynamic first letter assignment.
The compute workload is minimal and the spike only lasts a few milliseconds.
Should I worry about it?
Usually, you shouldn't look at the % CPU field, but at the CPU Time metric. By default Activity Monitor updates every 5 seconds, so even if the CPU % was at 7% for a few milliseconds, you'll still see it for 5 seconds.
Even with the Very often (1 sec) setting, the % CPU metric is still not best for judging app efficiency.
In the following case, from the time rcmd started running (3 days ago) until now, it only consumed about 20 minutes of CPU time.
That's an incredibly small amount of CPU power used for an app that I use 20 times a minute. My finger basically rests on the Right Command key.
❯ echo "rcmd was launched "(soulver '(now - '(lsappinfo info -only kLSLaunchTimeKey rcmd | cut -d= -f2)') as time')" ago" rcmd was launched 2 days 21 hours 49 min 5 s ago ❯ soulver "(19 min 29 s) is what % of (2 days 21 hours 49 min 5 s)" 0.465%
If you compare that to other keyboard utilities like BetterTouchTool for example, you'll see their CPU Time is comparable to rcmd.
For example in the same case, BetterTouchTool was just launched 2 hours 16 minutes ago and it already consumed 2 minutes of CPU time.
❯ echo "BetterTouchTool was launched "(soulver '(now - '(lsappinfo info -only kLSLaunchTimeKey BetterTouchTool | cut -d= -f2)') as time')" ago" BetterTouchTool was launched 2 hours 16 min 26 s ago ❯ soulver '(2 min 9 s) is what % of (2 hours 16 min 26 s)' 1.576%