Just received my UHK 80 (US version), after being a UHK 60 user for a couple years, so
I am conversant with the keyboard, using UHK Agent, etc. In general my issues have been minimal, I did have an issue with one of my dongles that I’ll post about separately but other than that everything seems to be working except for this issue, so far.
The issue I’m posting about here is that I am unable to configure capslock or engage capslock. I am using the default “Qwerty for Mac” keymap with no changes.
Everything looks to be configured properly in the Agent keymap config (“A” key mapped to send “Caps Lock” when the mod layer is activated) but even after deleting/re-adding the keymap from the defaults, and saving my config to the keyboard, pressing mod+A sends “escape” instead of “capslock”, and the capslock indicator in the LED display never comes on. Any ideas why this might be happening? I’m using firmware 12.2.0, MacOS 15.3 and Agent 5.0.2. This occurs when the UHK 80 is connected via the USB cable or the dongle or bluetooth, with or without the bridge cable connected.
I was unable to find documentation showing a direct set of scancode definitions, but after doing some keymap userconfig.json export juggling, it looks like scancode for capslock is 57. Is this correct?
Also, not sure if this is relevant, but MacOS’s setup assistant was unable to identify my keyboard, erring out after the first test (“press the key to the left of the left shift key” which on my keyboard is z/zed.), requiring me to manually set it to to ANSI (U.S.). I wonder if this is related…
FWIW, the link on the UHK page that leads to this AskDifferent article, is fairly dated and not necessarily applicable to more modern versions of MacOS (I’m running Sequoia 15.3.1), so I went searching for other solutions to disable/minimize the capslock delay and ran across this Reddit thread on How to remove Caps Lock key delay:
Their suggestion was to run this command:
hidutil property --set '{"CapsLockDelayOverride":10}' where the numeric value is possibly/probably 10 milliseconds.
Despite trying multiple values for the delay as low as 0/1ms, I was unable to set it to any value that would allow me to engage caps lock.
This did not result in any discernible change in behavior. Also tried setting UHK keystroke delay to 8 and 12, with no change. To be clear, here’s my current hidutil property override:
stock QWERTY for Mac keymapping with no modifications
Keystroke delay on the UHK80 set to 7ms
CapsLockDelayOverride set to 10ms
using UHK80 connected via USB-C & dongle,
with and without halves connected,
I’ve tried on both my 2019 16" Intel Macbook Pro, and my 2022 Mac Studio, both running MacOS 15.3.1, I have not been able to enable Caps Lock using the mod+a keypress combo. Using KeyCastr on both machines to monitor keyboard input, when I press the mod+A combo, KeyCastr tells me I’m sending “Escape” when pressing mod+a.
[EDIT]: I downloaded keylogger, compiled the binary and ran it via sudo, and according to /var/log/keystroke.log when I press mod+a on my UHK80, the Mac sees it as [right-cmd][right-ctrl][right-option][right-shift][esc]
In the base layer of QWERTY for Mac, the mod key appears to the right of Fn2 on the left half, and to the right of Fn, and to the right of Fn2 on the right half. All send the same [right-cmd][right-ctrl][right-option][right-shift][esc] keystrokes when pressing mod+a.
I also tried mapping one of the keys on my keycluster module in the base layer to send CapsLock, and keylogger shows the same [right-cmd][right-ctrl][right-option][right-shift][esc] keystrokes.
I think that a process is intercepting the keys post-keypress. I do have a couple utilities running capable of modifying keypress behavior but they don’t have any rules enabled that would modify the behavior of Caps Lock, which is what it looks like is happening here - Caps Lock is being sent from the keyboard, then modified before being recorded by keylogger.
It sounds like the ‘Hyper’ key gets triggered - I think that’s what the combination of all modifiers (cmd+ctrl+option+shift) is called by some software. There’s also Meh or Meta.
Meh (⌃⌥⇧) and Hyper (⌃⌥⇧⌘) are aliases for modifier combinations that are so awkard to hold that almost no application uses them, making them great candidates for global hotkeys you may want to set using something like Raycast.