I am using the predefined Hyperkey feature.
Is there anyway to stop Mac from still being able to recognise that fact that Caps is being pressed?
While it doesn't trigger the caps lock itself, they keyboard lights up and you also get the icon drawn to the screen showing you that you've pressed it.
I see in the Hyperkey app this isn't an issue so I assume it's possible, but perhaps outside of the scope of BTT.
you can disable the icon with this terminal command:
sudo mkdir -p /Library/Preferences/FeatureFlags/Domain && sudo /usr/libexec/PlistBuddy -c "Add 'redesigned_text_cursor:Enabled' bool false" /Library/Preferences/FeatureFlags/Domain/UIKit.plist
requires a restart of macOS
I presume this just disables the UI portion of the caps lock so the keyboard will still light up as though caps lock was pressed.
I do wonder how Hyperkey achieves this then since it doesn't require a restart either. I think for the time being I will stick to the app since it's free.
Edit: Just as an update to this, there is an option on Mac, Keyboard > Keyboard Shortcuts > Modifier Keys where you can set the Caps Lock button to No Action.
This completely fixes the issue while still keeping the hyper key functionality.
In the past few days, I’ve been dealing with a similar issue, and this could be one of the solutions. However, when I set Caps Lock to No Action in the system, I can no longer use it in BTT. It can’t be used as a trigger to execute the "Act as Hyper Key" action. And even if I set up the shortcut first and then remap Caps Lock to No Action, the Hyper Key + something shortcuts still don’t work. So, I’m surprised that it works for you.
@garnatian, I don't think that is possible. As @lukasvac mentioned BTT relies on the CapsLock key being available for its hyper key functionality to work.
//edit: actually I'm wrong. I just tried and indeed the hyperkey functionality still partially works if it is disabled in system settings. However it behaves in weird ways (e.g. the modifiers stay pressed until the first shortcut happens) -- at least for me. Also it doesn't support all functions. However I think I can leverage this fact to make BTT's hyper key more reliable!
It does work until you restart BTT, then it no longer recognises Caps Lock being pressed.
What I found is, BTT will not recognise the trigger until you have first triggered it which is cannot do if it no longer recognises the key. So you have to use the CapsLock hyper key, then in the settings set CapsLock to No Action and it then should work until BTT shuts down and you have to repeat the process.
Instead of using the no action setting, you can get a similar effect doing:
hidutil property --set '{"UserKeyMapping":[]}'
hidutil property --set '{"UserKeyMapping":[{"HIDKeyboardModifierMappingSrc":0x700000039,"HIDKeyboardModifierMappingDst":0x0}]}'
in the terminal, but you have to press the caps key in between the two commands.
Anyway, for the time being I will just keep HyperKey installed until maybe a cleaner method can be found using BTT.
In 4.957 alpha (uploading) I have completely rewritten the hyperkey functionality. If this works well I can also extend it to other keys.