`hidutil` stopped working on macOS 14.2

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 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;
    }
)

MacBook Pro (M1, 2020)

Posted on Dec 12, 2023 4:21 AM

Reply
Question marked as Top-ranking reply

Posted on Feb 27, 2024 6:18 AM

Here is a step-by-step guide to fix the issue: https://apple.stackexchange.com/a/470622/383122


50 replies

Apr 3, 2024 10:16 PM in response to zfigz

For a long overdue reply, I have tried your solution but I could not seem to get it to work. Since I've last tried there have been some updates. I'm now on 14.4.1.


My workaround for the moment is to execute this on startup:


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


It's probably a fault on my end I guess. If the command above is working, I must assume it can be automated with the plist file, I just did not find the right syntax. I tried your solution zfigz with the ProductID / VendorID and also tried with sudo. It did not work. From the general tone here it seems it's working for other people.


I will try again and report back.

Dec 13, 2023 7:52 AM in response to Tom Gewecke

Hi Tom,


I have the same need for swapping the `Keyboard Delete Forward, 0x4C` with `Keyboard \ and |, 0x31` and then swapping `Keyboard \ and |, 0x31` to the `Keyboard Right Alt, 0xE6`. I used to do it with this command until 14.2 as well.

```

hidutil property --set '{"UserKeyMapping":

  [{"HIDKeyboardModifierMappingSrc":0x700000031,

   "HIDKeyboardModifierMappingDst":0x70000004c},

   {"HIDKeyboardModifierMappingSrc":0x7000000e6,

   "HIDKeyboardModifierMappingDst":0x700000031}]

}'

```

I'm on a work laptop that restricts apps so I cannot download karabiner, so do you please mind sharing/showing me how to create a custom layout with these swaps as well? I'd very much appreciate it.


Thanks!



Dec 18, 2023 1:33 AM in response to yaroslav280

UserKeyMapping with hidutil is no longer working for me after upgrading to 14.2. I'm on a restrict macOS where it's not allowed to install third-party software.


I need to map these keys § <=>`, and ± <=> ~ which swap some special keys from Norwegian keyboard layout to US keyboard layout. Even I did change the layout to US in Keyboard settings but it didn't help for those keys. hidutil was really helpful to map them. Now, it's gone. This impacts my daily work's speed.


UserKeyMapping:(
        {
        HIDKeyboardModifierMappingDst = 30064771172;
        HIDKeyboardModifierMappingSrc = 30064771125;
    },
        {
        HIDKeyboardModifierMappingDst = 30064771125;
        HIDKeyboardModifierMappingSrc = 30064771172;
    }
)

Dec 27, 2023 7:37 AM in response to Tom Gewecke

The thing is that the layout from the "Others" section is not considered as an ABC (non-removable). So looks like I have one more language because the ABC can not be replaced with this one. Also, the Caps-lock language switch does not work as expected.

Don't you know if I can change existing layouts from "English" section or move your custom layout to "English" section?

Dec 27, 2023 8:11 AM in response to mikeldpl

mikeldpl wrote:


Don't you know if I can change existing layouts from "English" section or move your custom layout to "English" section?

This version should go into the English section, but I don't think you can have a custom layout as the only latin keyboard item on your input sources list. This one should also do the caps lock thing with non-Latin keyboards. It is a .bundle file instead of .keylayout, which has more options.

Jan 2, 2024 2:32 AM in response to Tom Gewecke

How can I do this for other keys? I am having a similar issue, as I use a German keyboard (QWERTZ) and used the hidutil command to swap the Z and Y keys:


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


Thanks!

This thread has been closed by the system or the community team. You may vote for any posts you find helpful, or search the Community for additional answers.

`hidutil` stopped working on macOS 14.2

Welcome to Apple Support Community
A forum where Apple customers help each other with their products. Get started with your Apple Account.