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.79k stars 838 forks source link

Consumer keycodes for launchpad and mission control are unknown #3310

Open MageJohn opened 1 year ago

MageJohn commented 1 year ago

I have a Keychron K8 Pro keyboard, and noticed that, when Karabiner-Elements was modifying events for it, the Launchpad and Mission Control keys didn't work. This keyboard sends consumer keycodes (usage page 12) for these buttons, and the other consumer keycodes that this keyboard sends, in particular brightness, play/pause, next and previous song, and volume control keys, are all recognised by Karabiner; they're correctly identified in the Karabiner-EventViewer, and when event modification is enabled they work as expected.

Here's the JSON output of the Unknown Events tab in Karabiner-EventViewer, showing the keycodes being used. The first key pressed is the Mission Control key, and the second is the Launchpad key.

[
  {
    "value": "1",
    "usagePage": "12 (0x000c)",
    "usage": "671 (0x029f)"
  },
  {
    "value": "0",
    "usagePage": "12 (0x000c)",
    "usage": "671 (0x029f)"
  },
  {
    "value": "1",
    "usagePage": "12 (0x000c)",
    "usage": "672 (0x02a0)"
  },
  {
    "value": "0",
    "usagePage": "12 (0x000c)",
    "usage": "672 (0x02a0)"
  }
]

These keycodes are correctly recognised by MacOS and do what I expect. Can they be added to the known events in Karabiner so it passes them through correctly to the virtual keyboard?

psyspeedi commented 1 year ago

I join

ucomesdag commented 1 year ago

Same issue on the Keychron K6 Pro, they are registered as unknown events and not passed on.

puttin commented 1 year ago

Keychron Q1 Pro, exactly same

[
  {
    "value": "1",
    "usagePage": "12 (0x000c)",
    "usage": "671 (0x029f)"
  },
  {
    "value": "0",
    "usagePage": "12 (0x000c)",
    "usage": "671 (0x029f)"
  },
  {
    "value": "1",
    "usagePage": "12 (0x000c)",
    "usage": "672 (0x02a0)"
  },
  {
    "value": "0",
    "usagePage": "12 (0x000c)",
    "usage": "672 (0x02a0)"
  }
]
puttin commented 1 year ago

qmk issue: https://github.com/qmk/qmk_firmware/issues/10111 mr: https://github.com/qmk/qmk_firmware/pull/19884 usb: https://www.usb.org/sites/default/files/hut1_2.pdf

puttin commented 1 year ago

@tekezo how about add these ID into https://github.com/pqrs-org/cpp-hid/blob/dbfe730bbe353ef5ea86b6a2bbd03748af0be9c0/include/pqrs/hid/usage.hpp#L300 ?

ucomesdag commented 10 months ago

Would adding this be enough to make it work? 🤷🏼‍♂️

constexpr value_t mission_control(0x029f);
constexpr value_t spotlight(0x0221);
tborychowski commented 4 months ago

any progress on this? or a workaround? I have a Keychron Q3 and the same issue.

sevenshamrocks commented 1 month ago

I'm having the same issue. Those two commands don't work with Karabiner running. Keychron K8 Pro.

jjaychen1e commented 1 month ago

Same issue here.

bellflower2015 commented 3 weeks ago

Same issue with Keychron B1 Pro. 671: MissionControl(F3), 672: LaunchPad(F4), and 545: SpotlightSearch(F5).

[
  {
    "value": "1",
    "usagePage": "12 (0x000c)",
    "usage": "671 (0x029f)"
  },
  {
    "value": "0",
    "usagePage": "12 (0x000c)",
    "usage": "671 (0x029f)"
  },
  {
    "value": "1",
    "usagePage": "12 (0x000c)",
    "usage": "672 (0x02a0)"
  },
  {
    "value": "0",
    "usagePage": "12 (0x000c)",
    "usage": "672 (0x02a0)"
  },
  {
    "value": "1",
    "usagePage": "12 (0x000c)",
    "usage": "545 (0x0221)"
  },
  {
    "value": "0",
    "usagePage": "12 (0x000c)",
    "usage": "545 (0x0221)"
  }
]