pqrs-org / Karabiner-Elements

Karabiner-Elements is a powerful utility for keyboard customization on macOS Sierra (10.12) or later.
https://pqrs.org/osx/karabiner/
The Unlicense
18.87k stars 838 forks source link

Cannot install KE v14.12.0 on Ventura 13.3.1 #3471

Open bbauder opened 1 year ago

bbauder commented 1 year ago

I'm experiencing a problem similar to what was reported here, 5 months ago. That issue is still in Open state, with no recent activity or resolution, so I'm opening a new ticket for the current version of KE on the current version of macOS.

Problem: When first launching Karabiner-Elements Settings, the System Extension Blocked alert never appears. Also, the Allow button never appears in Settings | Privacy & Security, for Karabiner-VirtualHIDDeviceManager.

This is a blocking issue. I have been unable to successfully install the current version of Karabiner-Elements on the current version of macOS.

Configuration System: 2021 MacBook Pro, with M1 Pro processor (Apple Silicon) Karabiner version: 14.12.0 macOS version: Ventura 13.3.1

I followed the installation instructions:

Since this is a known issue I tried (multiple times) the Safe Mode workaround. It had no effect, regardless of whether I:

My system isn't blocking me from installing system extensions. I recently installed a Logitech app for my trackball, and in the KE event viewer, I see the Logitech system extension listed as expected.

tmargarian commented 1 year ago

Have exactly the same issue. +1 the problem on MacOS Ventura 13.3.1. Running an M1 Max MacBook Pro. Installing the beta version of KE (14.12.1) didn't help.

bbauder commented 1 year ago

@tmargarian For what it's worth, I came across a way to get the behavior I want without Karabiner-Elements.

It turns out that macOS already includes command-line support for remapping keys. That's exactly the functionality I need to get the numeric keypad on my Microsoft ergonomic keyboard to behave as if the NumLk toggle is off--in other words to use the keys for navigation.

Until now, I've used Karabiner on my Macs to remap those keys and get the same behavior. But since KE no longer installs, and doesn't appear to be actively supported, I searched for an alternative.

Initially, I discovered Apple's key binding system, and thought it was the way to go. But I quickly discovered that binding is too high-level for what I'm trying to accomplish--any application can apply its own custom binding scheme. For example, I use Xcode and VS Code every day, and whatever bindings I cobbled together were being messed up by the binding schemes in these applications. The deal-breaker was when I realized that binding, say, PgUp, to movePageUp, worked exactly as it should in a text editor by moving the insertion caret to the new position, this was ignored in read-only views like browsers. I could page up in a text file but a browser would need the bound function to be scrollPageUp. Plus, I had to explicitly declare bindings for these keys in combination with all the modifiers--Control, Shift, Option, Command, which only compounded the problem.

I came across the following article describing key remapping, and it's exactly what I needed, and without the system extensions, background processes and overhead of Karabiner: https://developer.apple.com/library/archive/technotes/tn2450/_index.html#//apple_ref/doc/uid/DTS40017618-CH1-TNTAG8

It appears that remappings made with hidutil aren't persistent between reboots, so I wrote a simple function and put it in my .bashrc file. I rarely have to restart anyway, but now after I do, I just open Terminal and run mapKeys, and everything works perfectly for my needs. Of course, NumLk isn't supported, so the remapping means I can't use the keypad for numeric entry. But I rarely use the keypad for anything but navigation, so this isn't a problem.

Anyway, if all you need to do is remap keys like me--for example, when the numeric keypad 9 key is pressed, the system now sees the same code as the PgUp key--you might want to give this a try. The command is hidutil, and you pass it an array of mappings from source key codes to destination (remapped) key codes. You can find the table of key codes in the Apple article I pasted above and maybe this approach will work for you.

Try something like the following. Note that I also mapped the keypad 5 key to something macOS ignores, which matches Windows behavior. I arbitrarily chose the PrtScn key. Just paste this anywhere in your .bashrc (or equivalent if you prefer Zsh). You could also just create a single-purpose script:

# https://developer.apple.com/library/archive/technotes/tn2450/_index.html#//apple_ref/doc/uid/DTS40017618-CH1-TNTAG8
function mapKeys() {
    hidutil property --set '{"UserKeyMapping":
       [{"HIDKeyboardModifierMappingSrc":0x700000062,"HIDKeyboardModifierMappingDst":0x700000049},
        {"HIDKeyboardModifierMappingSrc":0x70000005F,"HIDKeyboardModifierMappingDst":0x70000004A},
        {"HIDKeyboardModifierMappingSrc":0x700000061,"HIDKeyboardModifierMappingDst":0x70000004B},
        {"HIDKeyboardModifierMappingSrc":0x700000063,"HIDKeyboardModifierMappingDst":0x70000004C},
        {"HIDKeyboardModifierMappingSrc":0x700000059,"HIDKeyboardModifierMappingDst":0x70000004D},
        {"HIDKeyboardModifierMappingSrc":0x70000005B,"HIDKeyboardModifierMappingDst":0x70000004E},
        {"HIDKeyboardModifierMappingSrc":0x70000005E,"HIDKeyboardModifierMappingDst":0x70000004F},
        {"HIDKeyboardModifierMappingSrc":0x70000005C,"HIDKeyboardModifierMappingDst":0x700000050},
        {"HIDKeyboardModifierMappingSrc":0x70000005A,"HIDKeyboardModifierMappingDst":0x700000051},
        {"HIDKeyboardModifierMappingSrc":0x700000060,"HIDKeyboardModifierMappingDst":0x700000052},
        {"HIDKeyboardModifierMappingSrc":0x70000005D,"HIDKeyboardModifierMappingDst":0x700000046}]}'
}
Zoomer547547 commented 1 year ago

I have this issue as well. Following for solution.

jgspratt commented 1 year ago

I noticed this at first, but I was able to get the prompt to allow the driver, and now I get an error in the log showing that the driver version is mismatched.

https://github.com/pqrs-org/Karabiner-Elements/issues/3072