Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MacOS 10.15.4 warning: Legacy extensions need to be updated #2196

Open
lvnilesh opened this issue Mar 24, 2020 · 17 comments
Open

MacOS 10.15.4 warning: Legacy extensions need to be updated #2196

lvnilesh opened this issue Mar 24, 2020 · 17 comments

Comments

@lvnilesh
Copy link

@lvnilesh lvnilesh commented Mar 24, 2020

https://support.apple.com/en-us/HT210999

Appreciate your help. Thanks.

@sdaitzman

This comment has been minimized.

Copy link

@sdaitzman sdaitzman commented Mar 24, 2020

Same. This is because Apple is planning to deprecate kernel extensions and move to a new framework called DriverKit.

@jnozsc

This comment has been minimized.

Copy link
Contributor

@jnozsc jnozsc commented Mar 24, 2020

document from apple about how to migrate it to new API https://developer.apple.com/support/kernel-extensions/

@aerobounce

This comment has been minimized.

Copy link

@aerobounce aerobounce commented Mar 25, 2020

This quite reminds me when Keyremap4macbook (was it renamed to Karabiner already at that time?) stopped working on the latest macOSes, and had to wait for several years 😖 to see complete-comeback of the Karabiner Elements with ThumbSense.
Which heavily lowered my productivity and took a while to get used to do workflows without it.

So this is it, yet again.

Do you have any thoughts or plans with this currently, @tekezo ?

@sdaitzman

This comment has been minimized.

Copy link

@sdaitzman sdaitzman commented Mar 25, 2020

😭

@tommit

This comment has been minimized.

Copy link

@tommit tommit commented Mar 25, 2020

Just as a PSA: macOS has built-in support for doing simple keyboard remapping (since version 10.12 Sierra). For example, to remap Right Option key to Delete Forward key, create a text file named local.RemapRightOptionToDeleteForward.plist with the following content:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>local.RemapRightOptionToDeleteForward</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/bin/hidutil</string>
        <string>property</string>
        <string>--set</string>
        <string>{"UserKeyMapping":[{"HIDKeyboardModifierMappingSrc":0x7000000E6,"HIDKeyboardModifierMappingDst":0x70000004C}]}</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>

Then copy the file to:
~/Library/LaunchAgents/

...and log out & back in.

See Apple's Technical Note TN2450 in order to figure out how to configure other remappings and then replace the "UserKeyMapping" key-value pairs in the aforementioned plist file accordingly.

@ruohola

This comment has been minimized.

Copy link

@ruohola ruohola commented Mar 25, 2020

For sure gonna have to stay with Catalina as long as the migration is not complete.

@mcdado

This comment has been minimized.

Copy link

@mcdado mcdado commented Mar 25, 2020

Just as a PSA: macOS has built-in support for doing simple keyboard remapping (since version 10.12 Sierra). For example, to remap Right Option key to Delete Forward key, create a text file named local.RemapRightOptionToDeleteForward.plist with the following content:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>local.RemapRightOptionToDeleteForward</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/bin/hidutil</string>
        <string>property</string>
        <string>--set</string>
        <string>{"UserKeyMapping":[{"HIDKeyboardModifierMappingSrc":0x7000000E6,"HIDKeyboardModifierMappingDst":0x70000004C}]}</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>

Then copy the file to:
~/Library/LaunchAgents/

...and log out & back in.

See Apple's Technical Note TN2450 in order to figure out how to configure other remappings and then replace the "UserKeyMapping" key-value pairs in the aforementioned plist file accordingly.

This seems interesting, but not a replacement. For example, I want to switch around left alt with left gui (option and command) only on my external keyboard, which Karabiner allows me to do. This procedure applies the mapping to all keyboards, unless in the UserKeyMapping you can specify a device too, but I don't know.

Anyway, I'm hopeful that this app can continue to provide its features for future versions of macOS.

@DJF3

This comment has been minimized.

Copy link

@DJF3 DJF3 commented Mar 26, 2020

Just as a PSA: macOS has built-in support for doing simple keyboard remapping (since version 10.12 Sierra). For example, to remap Right Option key to Delete Forward key, create a text file named local.RemapRightOptionToDeleteForward.plist with the following content:

See Apple's Technical Note TN2450 in order to figure out how to configure other remappings and then replace the "UserKeyMapping" key-value pairs in the aforementioned plist file accordingly.

Interesting approach! One question: I want to replace CAPS_LOCK with _DOUBLE__QUOTES.
With the plist file I can replace caps-lock with a single-quote.
{"UserKeyMapping":[{"HIDKeyboardModifierMappingSrc":0x700000039,"HIDKeyboardModifierMappingDst":0x700000034}]}

Is there a way to replace caps-lock with shift+ single-quote (= double quote)?
DJ

@tommit

This comment has been minimized.

Copy link

@tommit tommit commented Mar 26, 2020

This seems interesting, but not a replacement. For example, I want to switch around left alt with left gui (option and command) only on my external keyboard

@mcdado Option-click the Apple menu and choose System Information. Find your external keyboard in the Hardware section, either under Bluetooth or USB (depending on how it's connected). For example, information for my wired keyboard appears under Hardware > USB > Apple Keyboard and for my wireless keyboard under Hardware > Bluetooth > Magic Keyboard. Under your keyboard's section, find the value for its Product ID and replace the value 0x1234 in the following with it:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>local.SwapLeftOptionAndLeftCommand</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/bin/hidutil</string>
        <string>property</string>
        <string>--matching</string>
        <string>{"ProductID":0x1234}</string>
        <string>--set</string>
        <string>
            {"UserKeyMapping":[
                {"HIDKeyboardModifierMappingSrc":0x7000000E2,"HIDKeyboardModifierMappingDst":0x7000000E3},
                {"HIDKeyboardModifierMappingSrc":0x7000000E3,"HIDKeyboardModifierMappingDst":0x7000000E2}
            ]}
        </string>
    </array>
    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>

Save it as this text file: ~/Library/LaunchAgents/local.SwapLeftOptionAndLeftCommand.plist

And finally, either log out or execute the following in Terminal:
launchctl load ~/Library/LaunchAgents/local.SwapLeftOptionAndLeftCommand.plist

Is there a way to replace caps-lock with shift+ single-quote (= double quote)?

@DJF3 It doesn't seem to be possible to do that with hidutil. But I could very well be wrong.

@tekezo

This comment has been minimized.

Copy link
Member

@tekezo tekezo commented Mar 26, 2020

I'm working to migration from the old kext.
Please wait!

@aerobounce

This comment has been minimized.

Copy link

@aerobounce aerobounce commented Mar 26, 2020

How cool! Hearing that, I can wait forever until then.

BTW, this is one interesting case that is also trying to migrate: blog.obdev.at/little-snitch-and-the-deprecation-of-kernel-extensions
Targeting API is different and it's paid software though, just fyi.

@n8henrie

This comment has been minimized.

Copy link

@n8henrie n8henrie commented Mar 29, 2020

Just as a PSA: macOS has built-in support for doing simple keyboard remapping

I don't see any mention of modifier keys -- is this only for 1-to-1 key remapping? Or is there a way to support e.g. Caps Lock -> shift + ctrl + option + cmd ?

@chadhs

This comment has been minimized.

Copy link

@chadhs chadhs commented Mar 31, 2020

one of the big benefits out of the box is the ability to press shift one keyboard and another key on another. such as hold ⇧ on keyboard A while pressing 1 on keyboard B would produce !.
this does not work on the Mac without this extension. the biggest use case for this is gaming mice that have side buttons. being able to press shift on your keyboard and a side button vs just pushing the side button.

@herrernst

This comment has been minimized.

Copy link

@herrernst herrernst commented Apr 2, 2020

Does anybody or @tommit know how to also remap the right Option and Command key? I tried using this, but it doesn't work:

{"UserKeyMapping":[
                {"HIDKeyboardModifierMappingSrc":0x7000000E2,"HIDKeyboardModifierMappingDst":0x7000000E3},
                {"HIDKeyboardModifierMappingSrc":0x7000000E3,"HIDKeyboardModifierMappingDst":0x7000000E2},
                {"HIDKeyboardModifierMappingSrc":0x7000000E6,"HIDKeyboardModifierMappingDst":0x7000000E7},
                {"HIDKeyboardModifierMappingSrc":0x7000000E7,"HIDKeyboardModifierMappingDst":0x7000000E6}
            ]}

Btw, why is the hex starting with 7?
Thanks

@tommit

This comment has been minimized.

Copy link

@tommit tommit commented Apr 2, 2020

Does anybody or @tommit know how to also remap the right Option and Command key? I tried using this, but it doesn't work:

{"UserKeyMapping":[
                {"HIDKeyboardModifierMappingSrc":0x7000000E2,"HIDKeyboardModifierMappingDst":0x7000000E3},
                {"HIDKeyboardModifierMappingSrc":0x7000000E3,"HIDKeyboardModifierMappingDst":0x7000000E2},
                {"HIDKeyboardModifierMappingSrc":0x7000000E6,"HIDKeyboardModifierMappingDst":0x7000000E7},
                {"HIDKeyboardModifierMappingSrc":0x7000000E7,"HIDKeyboardModifierMappingDst":0x7000000E6}
            ]}

@herrernst Your snippet is correct. So I don't know why it doesn't work on your end. On my mac, executing the following command on Terminal swaps left Option with left Command, and right Option with right Command:

hidutil property --set '{"UserKeyMapping":[{"HIDKeyboardModifierMappingSrc":0x7000000E2,"HIDKeyboardModifierMappingDst":0x7000000E3},{"HIDKeyboardModifierMappingSrc":0x7000000E3,"HIDKeyboardModifierMappingDst":0x7000000E2},{"HIDKeyboardModifierMappingSrc":0x7000000E6,"HIDKeyboardModifierMappingDst":0x7000000E7},{"HIDKeyboardModifierMappingSrc":0x7000000E7,"HIDKeyboardModifierMappingDst":0x7000000E6}]}'
@chanw9

This comment has been minimized.

Copy link

@chanw9 chanw9 commented Apr 4, 2020

This seems interesting, but not a replacement. For example, I want to switch around left alt with left gui (option and command) only on my external keyboard

@mcdado Option-click the Apple menu and choose System Information. Find your external keyboard in the Hardware section, either under Bluetooth or USB (depending on how it's connected). For example, information for my wired keyboard appears under Hardware > USB > Apple Keyboard and for my wireless keyboard under Hardware > Bluetooth > Magic Keyboard. Under your keyboard's section, find the value for its Product ID and replace the value 0x1234 in the following with it:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>local.SwapLeftOptionAndLeftCommand</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/bin/hidutil</string>
        <string>property</string>
        <string>--matching</string>
        <string>{"ProductID":0x1234}</string>
        <string>--set</string>
        <string>
            {"UserKeyMapping":[
                {"HIDKeyboardModifierMappingSrc":0x7000000E2,"HIDKeyboardModifierMappingDst":0x7000000E3},
                {"HIDKeyboardModifierMappingSrc":0x7000000E3,"HIDKeyboardModifierMappingDst":0x7000000E2}
            ]}
        </string>
    </array>
    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>

Save it as this text file: ~/Library/LaunchAgents/local.SwapLeftOptionAndLeftCommand.plist

And finally, either log out or execute the following in Terminal:
launchctl load ~/Library/LaunchAgents/local.SwapLeftOptionAndLeftCommand.plist

Is there a way to replace caps-lock with shift+ single-quote (= double quote)?

@DJF3 It doesn't seem to be possible to do that with hidutil. But I could very well be wrong.

Is it possible to disable a key or all keys of the built-in keyboard?

Edit: Tried wth "HIDKeyboardModifierMappingDst":0, works fine.
Seems like launchctl unload doesn't restore them immediately so I had another plist to map them back.

@mcdado

This comment has been minimized.

Copy link

@mcdado mcdado commented Apr 4, 2020

This seems interesting, but not a replacement. For example, I want to switch around left alt with left gui (option and command) only on my external keyboard

@mcdado Option-click the Apple menu and choose System Information. Find your external keyboard in the Hardware section, either under Bluetooth or USB (depending on how it's connected). For example, information for my wired keyboard appears under Hardware > USB > Apple Keyboard and for my wireless keyboard under Hardware > Bluetooth > Magic Keyboard. Under your keyboard's section, find the value for its Product ID and replace the value 0x1234 in the following with it:
[...]

That's actually awesome! For me that's all I needed from this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
You can’t perform that action at this time.