hidutil stopped working on macOS 14.2 update

Originator:Yaroslav.Yashin
Number:rdar://FB13465290 Date Originated:13.12.2023
Status:Open Resolved:
Product:macOS Product Version:14.2
Classification:Keyboard Reproducible:It happens every time
 
I've got the following command to run on every macOS start:

hidutil property --set '{"UserKeyMapping": [{"HIDKeyboardModifierMappingSrc": 0x700000064, "HIDKeyboardModifierMappingDst": 0x700000035}]}'

It always rebinds a key (non_us_backslash to grave_accent_and_tilde) on my international Apple Magic Keyboard to a convenient one to match with my us keyboard laptop.

Right after 14.2 install this command stopped working. It throws no error, the hidutil property --get UserKeyMapping prints out some kind a valid output as follow, but the key behaviour isn't updates after the command run as it appears before update. Also I'm not sure that in the past the --get argument output was printed out as a Decimal rather than hex. But this is as it is now.

The command output:

(
    {
        HIDKeyboardModifierMappingDst = 30064771125;
        HIDKeyboardModifierMappingSrc = 30064771172;
    }
)

Comments

Updated to 14.3, the problem no longer persists as long as you have hidutil run as root (e.g. sudo) as per:

run hidutil w/ sudo

ps also make sure you are using the correct ProductID / VendorID...i noticed mine had changed w/ the update.

By steamboat.coat at Jan. 26, 2024, 3:13 p.m. (reply...)

I wrote: Just to save for both of us one response/request iteration, let me notice that the problem is still persists on 14.3 as well.

By Yaroslav.Yashin at Jan. 23, 2024, 4:30 p.m. (reply...)

I've objected:

I can't confirm the full fix of this issue.

The issue is still persists, but with lower severity, as now the bug can be worked around with a few additional seteps.

But here's the steps to reproduce the issue on 14.2.1 (23C71):

  1. Power on and log it into a mac
  2. Input into the terminal app the command provided bellow
  3. Press the "non_us_backslash" key on an international keyboard

Actual result:

The original char will be appeared on a given input field instead of "tilde" char.

Expected result:

The "tilde" char appears on a remapped key press.

Additional info:

The expected behaviour occurs after keyboard replugging the keyboard, whether by restarting bluetooth service or reconnecting a wire keyboard. Having to do this is redundant and indicative of a bug.

The command that I run: hidutil property --set '{"UserKeyMapping": [{"HIDKeyboardModifierMappingSrc": 0x700000064, "HIDKeyboardModifierMappingDst": 0x700000035}]}'

By Yaroslav.Yashin at Jan. 21, 2024, 2:23 p.m. (reply...)

Apple responded:

Changes have been released that should have addressed this issue. If you are still experiencing this behavior, please submit a fresh report so that we can continue to investigate.

Thank you for your feedback.

By Yaroslav.Yashin at Jan. 21, 2024, 2:23 p.m. (reply...)

ditto

same issue here; 14.2.1 (23C71)

any word of a fix?

By steamboat.coat at Jan. 4, 2024, 4:34 p.m. (reply...)

According to this[1] comment on my question on apple.stackexchange.com the same issue represents on macOS 13.6.3 as well.

By Yaroslav.Yashin at Dec. 13, 2023, 7:13 p.m. (reply...)

Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!