Closed MperorM closed 3 months ago
Is there a branch with the DriverKit development? I'd love to help out if help is needed. Otherwise, I'll just wait for 13.0.0 - it's my penalty for being a developer and using the beta.
There is no DriverKit branch yet in Karabiner Elements repo. But the DriverKit repo itself is here https://github.com/pqrs-org/Karabiner-DriverKit-VirtualHIDDevice.
Can read https://github.com/pqrs-org/Karabiner-DriverKit-VirtualHIDDevice/blob/master/DEVELOPMENT.md if you want to help out.
I built a tool that you can use to generate simple key remaps using
hidutil
until Karabiner gets fixed. I've always used Karabiner for a single key remap, so usinghidutil
is perfect for me. Inspired by @chuyeow.https://hidutil-generator.netlify.app/
Code: https://github.com/amarsyla/hidutil-key-remapping-generator
I'm new to using hidutil... I used your tool but I'm having no luck with it. My application is remapping F-keys on an external keyboard to the standard Mac multimedia-type keys. Do I need to do anything different for it to work with an external keyboard or these specific keys?
There appears to be an active DriverKit branch now FWIW
There is indeed a lot of work, with a merge onto master + a beta released earlier today: https://karabiner-elements.pqrs.org/docs/macos-big-sur
There is indeed a lot of work, with a merge onto master + a beta released earlier today: karabiner-elements.pqrs.org/docs/macos-big-sur
@bosr
It doesn't seem to be working normally. I hope this capture was helpful.
My Mac version is 11.0 beta (20A5354i)
@Hansanghyeon I'm seeing "Connection refused" with the new DriverKit beta in Big Sur as well. 🙁
I've tried everything I can think of, but not having any luck.
[2020-09-09 12:36:26.942] [info] [grabber] virtual_hid_device_service_client_ connected
[2020-09-09 12:36:26.942] [info] [observer] matching device:
[2020-09-09 12:36:26.942] [info] [observer] registry_entry_id: 4294971521
[2020-09-09 12:36:26.942] [info] [observer] manufacturer: pqrs.org
[2020-09-09 12:36:26.942] [info] [observer] product: Karabiner DriverKit VirtualHIDKeyboard 1.0.0
[2020-09-09 12:36:26.942] [info] [observer] vendor_id: 5824
[2020-09-09 12:36:26.942] [info] [observer] product_id: 10203
[2020-09-09 12:36:26.942] [info] [observer] location_id: 0x0
[2020-09-09 12:36:26.942] [info] [observer] serial_number: pqrs.org:Karabiner-DriverKit-VirtualHIDKeyboard
[2020-09-09 12:36:26.944] [info] [observer] is_keyboard: true
[2020-09-09 12:36:26.946] [info] [observer] is_pointing_device: false
[2020-09-09 12:36:26.946] [info] [observer] rescan devices...
[2020-09-09 12:36:26.951] [info] [observer] Karabiner DriverKit VirtualHIDKeyboard 1.0.0 (device_id:4294971521) is observed.
[2020-09-09 12:36:27.634] [info] [observer] device_id:4294971521 is terminated.
[2020-09-09 12:36:27.637] [info] [observer] rescan devices...
[2020-09-09 12:36:27.937] [info] [grabber] virtual_hid_device_service_client_ error_occurred: Connection reset by peer
[2020-09-09 12:36:27.938] [info] [grabber] virtual_hid_device_service_client_ closed
[2020-09-09 12:36:27.938] [info] [grabber] virtual_hid_device_service_client_ connect_failed: Connection refused
[2020-09-09 12:36:28.938] [info] [grabber] virtual_hid_device_service_client_ connect_failed: Connection refused
@Hansanghyeon I'm seeing "Connection refused" with the new DriverKit beta in Big Sur as well. 🙁
I've tried everything I can think of, but not having any luck.
[2020-09-09 12:36:26.942] [info] [grabber] virtual_hid_device_service_client_ connected [2020-09-09 12:36:26.942] [info] [observer] matching device: [2020-09-09 12:36:26.942] [info] [observer] registry_entry_id: 4294971521 [2020-09-09 12:36:26.942] [info] [observer] manufacturer: pqrs.org [2020-09-09 12:36:26.942] [info] [observer] product: Karabiner DriverKit VirtualHIDKeyboard 1.0.0 [2020-09-09 12:36:26.942] [info] [observer] vendor_id: 5824 [2020-09-09 12:36:26.942] [info] [observer] product_id: 10203 [2020-09-09 12:36:26.942] [info] [observer] location_id: 0x0 [2020-09-09 12:36:26.942] [info] [observer] serial_number: pqrs.org:Karabiner-DriverKit-VirtualHIDKeyboard [2020-09-09 12:36:26.944] [info] [observer] is_keyboard: true [2020-09-09 12:36:26.946] [info] [observer] is_pointing_device: false [2020-09-09 12:36:26.946] [info] [observer] rescan devices... [2020-09-09 12:36:26.951] [info] [observer] Karabiner DriverKit VirtualHIDKeyboard 1.0.0 (device_id:4294971521) is observed. [2020-09-09 12:36:27.634] [info] [observer] device_id:4294971521 is terminated. [2020-09-09 12:36:27.637] [info] [observer] rescan devices... [2020-09-09 12:36:27.937] [info] [grabber] virtual_hid_device_service_client_ error_occurred: Connection reset by peer [2020-09-09 12:36:27.938] [info] [grabber] virtual_hid_device_service_client_ closed [2020-09-09 12:36:27.938] [info] [grabber] virtual_hid_device_service_client_ connect_failed: Connection refused [2020-09-09 12:36:28.938] [info] [grabber] virtual_hid_device_service_client_ connect_failed: Connection refused
same here
Same here:
I just upgraded to beta 6. I've rebooted the computer, unloaded, and re-loaded the extension.
https://karabiner-elements.pqrs.org/docs/macos-big-sur/
Read the important notice. It doesn't work on beta 6
It seems to me that the notice says that it will stop working after a restart, not that it doesn't work at all?
Agreed, I followed the instructions here that come after:
You have to reinstall the driver by the following way every reboot on macOS Big Sur Beta 6.
which I think should mean that it works on beta 6 after following those instructions?
Looks like the driver is crashing?
Process 18425 stopped
* thread #2, stop reason = EXC_BAD_ACCESS (code=1, address=0x10)
frame #0: 0x0000000102552b74 Karabiner-DriverKit-VirtualHIDDeviceClient`pqrs::dispatcher::extra::dispatcher_client::enqueue_to_dispatcher(std::__1::function<void ()> const&, std::__1::chrono::time_point<std::__1::chrono::system_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000l> > >) const + 20
Karabiner-DriverKit-VirtualHIDDeviceClient`pqrs::dispatcher::extra::dispatcher_client::enqueue_to_dispatcher:
-> 0x102552b74 <+20>: ldr x0, [x0, #0x10]
0x102552b78 <+24>: cbz x0, 0x102552bb8 ; <+88>
0x102552b7c <+28>: mov x20, x2
0x102552b80 <+32>: mov x21, x1
Target 0: (Karabiner-DriverKit-VirtualHIDDeviceClient) stopped.
(lldb) bt
* thread #2, stop reason = EXC_BAD_ACCESS (code=1, address=0x10)
* frame #0: 0x0000000102552b74 Karabiner-DriverKit-VirtualHIDDeviceClient`pqrs::dispatcher::extra::dispatcher_client::enqueue_to_dispatcher(std::__1::function<void ()> const&, std::__1::chrono::time_point<std::__1::chrono::system_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000l> > >) const + 20
frame #1: 0x000000010257424c Karabiner-DriverKit-VirtualHIDDeviceClient`io_service_client::async_virtual_hid_pointing_ready() + 64
frame #2: 0x0000000102573d6c Karabiner-DriverKit-VirtualHIDDeviceClient`pqrs::dispatcher::extra::timer::call_function(int) + 76
frame #3: 0x0000000102526ebc Karabiner-DriverKit-VirtualHIDDeviceClient`pqrs::dispatcher::dispatcher::dispatcher(std::__1::weak_ptr<pqrs::dispatcher::time_source>)::'lambda'()::operator()() const + 488
frame #4: 0x0000000102526c5c Karabiner-DriverKit-VirtualHIDDeviceClient`void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, pqrs::dispatcher::dispatcher::dispatcher(std::__1::weak_ptr<pqrs::dispatcher::time_source>)::'lambda'()> >(void*) + 44
frame #5: 0x00000001948f50f8 libsystem_pthread.dylib`_pthread_start + 320
Ok, let's break atasync_virtual_hid_pointing_ready
:
(lldb) b async_virtual_hid_pointing_ready
Breakpoint 1: where = Karabiner-DriverKit-VirtualHIDDeviceClient`io_service_client::async_virtual_hid_pointing_ready(), address = 0x00000001040f820c
(lldb) c
Process 19000 resuming
Process 19000 stopped
* thread #2, stop reason = breakpoint 1.1
frame #0: 0x00000001040f820c Karabiner-DriverKit-VirtualHIDDeviceClient`io_service_client::async_virtual_hid_pointing_ready()
Karabiner-DriverKit-VirtualHIDDeviceClient`io_service_client::async_virtual_hid_pointing_ready:
-> 0x1040f820c <+0>: sub sp, sp, #0x50 ; =0x50
0x1040f8210 <+4>: stp x20, x19, [sp, #0x30]
0x1040f8214 <+8>: stp x29, x30, [sp, #0x40]
0x1040f8218 <+12>: add x29, sp, #0x40 ; =0x40
Target 0: (Karabiner-DriverKit-VirtualHIDDeviceClient) stopped.
this
seems to be nullptr
:
(lldb) p $x0
(unsigned long) $0 = 0
If you go up a frame, there's a a test and a load from it (the nullptr
check, and the vtable call, from this code apparently) so that must have worked:
(lldb) up
frame #1: 0x00000001040f7d6c Karabiner-DriverKit-VirtualHIDDeviceClient`pqrs::dispatcher::extra::timer::call_function(int) + 76
Karabiner-DriverKit-VirtualHIDDeviceClient`pqrs::dispatcher::extra::timer::call_function:
-> 0x1040f7d6c <+76>: ldr x20, [x19]
0x1040f7d70 <+80>: adr x8, #0x19790 ; vtable for std::__1::__function::__func<pqrs::dispatcher::extra::timer::call_function(int)::'lambda'(), std::__1::allocator<pqrs::dispatcher::extra::timer::call_function(int)::'lambda'()>, void ()> + 16
0x1040f7d74 <+84>: nop
0x1040f7d78 <+88>: mov w9, w21
(lldb) x/10i $pc-16
0x1040f7d5c: 0xb4000080 cbz x0, 0x1040f7d6c ; <+76>
0x1040f7d60: 0xf9400008 ldr x8, [x0]
0x1040f7d64: 0xf9401908 ldr x8, [x8, #0x30]
0x1040f7d68: 0xd63f0100 blr x8
-> 0x1040f7d6c: 0xf9400274 ldr x20, [x19]
0x1040f7d70: 0x100cbc88 adr x8, #0x19790 ; vtable for std::__1::__function::__func<pqrs::dispatcher::extra::timer::call_function(int)::'lambda'(), std::__1::allocator<pqrs::dispatcher::extra::timer::call_function(int)::'lambda'()>, void ()> + 16
0x1040f7d74: 0xd503201f nop
0x1040f7d78: 0x2a1503e9 mov w9, w21
0x1040f7d7c: 0xa900cfe8 stp x8, x19, [sp, #0x8]
0x1040f7d80: 0x910023f5 add x21, sp, #0x8 ; =0x8
So I would guess a missing lock?
@saagarjha Thank you for feedback! I released new version (12.93.0) which fixed a bug. Please confirm it. https://karabiner-elements.pqrs.org/docs/macos-big-sur/
Guess who can't read? Yep, it's me. Thanks for finding the actual fix, @tekezo :P 12.93.0 is looking good from my side; I'm glad to have Karabiner back :)
@saagarjha Thank you for feedback! I released new version (12.93.0) which fixed a bug. Please confirm it. https://karabiner-elements.pqrs.org/docs/macos-big-sur/
Confirming it works on Beta 8 6. Thanks!!!!!
Beta 8
Do you mean beta 6, or…
Beta 8
Do you mean beta 6, or…
Beta 6 yeah, sorry, too excited!
Thanks for the release, I can confirm this works on Big Sur beta 6 also 🏅
Initially I got a "something went wrong" error when trying to open the Security & Privacy prefpane to allow access. After jumping through some hoops I got it running.
The hoops, for future travellers:
🎉🎉🎉🎉 aaahhh it's so nice to have karabiner back finally!
Also working on Catalina and seems to have fixed this issue where the system would hang when shutting down or restarting
@tekezo On the latest beta (7), Karabiner-Elements reloads without a problem on reboot. 🥳
Hi, should I clone this repo and build from source for now, or should I download v12.10.0? I'm on Big Sur beta 7.
Thank y'all for the great work btw!
Use version 12.93.0 posted above.
Edit: there's a 12.94.0, use that
Hi, you can get the link to the beta here above: https://github.com/pqrs-org/Karabiner-Elements/issues/2331#issuecomment-689890790
Thank you! @saagarjha @bosr
For me, @gondalez solution worked because I (1) uninstalled all traces of Karabiner, (2) THEN opened Security and Privacy AND LEFT IT OPEN, (3) installed Karabiner 12.95.0. Previously, if the Sec and Priv was not already open, the Karabiner installation would fail because opening Sec and Priv crashed.
On Big Sur Beta 8, I needed to open Karabiner, check for beta updates, install, and that was it. Everything worked!
Oh and not sure if it's related, but if your on board keyboard is unresponsive, reset the PRAM (Cmd + Opt + P + R) and you're good to go. Yay. Everything seems to work. Even after reboot.
EDIT: Although after an update, you need to do the above steps from @gondalez again.
Just upgraded to 11.0.1. My observation is that karabiner somehow completely disables the internal keyboard on macbook pro A1704. External keyboard works fine. I wasn't able to get the internal keyboard back running with karabiner. So I just temporarily removed karabiner's entries from the LaunchAgents directory. Upgrading major versions of mac os is always such a big pain..... Still remember clearly how sierra bloodily killed the original karabiner...
If you are doing only simple remapping, you can use Apple's built-in
hidutil
tool.This was good enough for me (I only have 2 simple remaps -
Caps Lock
toEsc
, andEsc
to backtick). You can refer to this gist - I linked to an explainer blog post that I wrote from the gist in case you need a little bit more help.
This is useful except there is one simple remap that I cannot live with: fn to left mouse click. Any way to accomplish this? Thanks
On Big Sur Beta 8, I needed to open Karabiner, check for beta updates, install, and that was it. Everything worked!
Oh and not sure if it's related, but if your on board keyboard is unresponsive, reset the PRAM (Cmd + Opt + P + R) and you're good to go. Yay. Everything seems to work. Even after reboot.
EDIT: Although after an update, you need to do the above steps from @gondalez again.
You're able to shutdown/restart just fine? I literally cant turn my macbook off or sleep it, even after removing KArabiner. Its basically always on. No idea how to fix this. I'm on a macbook air M1 with big sur and the latest karabiner.
@rublev Please follow along under issue #2519 for sleep issues, #2517 for shutdown issues.
@rublev Please follow along under issue #2519 for sleep issues, #2517 for shutdown issues.
thx
If you are doing only simple remapping, you can use Apple's built-in
hidutil
tool.This was good enough for me (I only have 2 simple remaps -
Caps Lock
toEsc
, andEsc
to backtick). You can refer to this gist - I linked to an explainer blog post that I wrote from the gist in case you need a little bit more help.
Thanks for your brilliant idea, it helps me.
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
亲,您的邮件我收到了,感谢您的来信。
reinstall, sloved the issue.
It seems the beta broke Karabiner completely. The program opens and runs, but doesn't actually modify any keys.
Re-entering configurations does not fix it, nor does messing around with permissions to my knowledge.