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

F13-F24 not working on MacOS. #7

Closed
joshvasquez opened this issue Sep 14, 2022 · 23 comments
Closed

F13-F24 not working on MacOS. #7

joshvasquez opened this issue Sep 14, 2022 · 23 comments

Comments

@joshvasquez
Copy link

Expected Behavior

A key assigned as &kp F13 in adv360.keymap should output F13 and each subsequent function key up to and including F24 should behave the same way on MacOS. These are supported by both MacOS and ZMK.

Current Behavior

The current behavior is that these keys produce no output whatsoever - It is not even registering as any keypress in MacOS. These keys are recognized by the operating system on other keyboards, including my modified Kinesis Advantage with QMK support. I'm not sure if these same keys produce any output on Windows or Linux as I don't currently have access to a running machine with those on it, though they may be affected as well. None of these register a keypress at all in MacOS.

I personally use at least some of these function keys extremely regularly. For example, I use F17 as a keybinding to toggle Alfred (a spotlight alternative) and F19 to toggle between two different language input modes.

Steps to Reproduce

  1. Assign any key on any layer to a Function key between F13-F24. According to ZMK's docs, the syntax should be written as&kp F131 in the adv360.keymap file for normal keypress. My current function layer keymap is:
layer_fn {
            bindings = <
 &kp F1  &kp F2      &kp F3            &kp F4      &kp F5  &kp F6            &tog 1   &mo 3  &kp F7  &kp F8  &kp F9  &kp F10  &kp F11  &kp F12
 &kp F13 &kp F14     &kp F15           &kp F16     &kp F17 &kp F18           &none   &none   &kp F19 &kp F20 &kp F21 &kp F22  &kp F23  &kp F24
 &trans  &trans  &kp C_PREV  &kp C_PLAY_PAUSE  &kp C_NEXT  &trans             &none  &trans  &trans                   &trans   &trans    &none  &kp LEFT &kp DOWN &kp UP  &kp RIGHT &C_VOL_UP &trans
 &trans  &trans      &trans            &trans      &trans  &trans             &none   &none  &trans   &none   &none   &trans    &none    &none  &trans   &trans   &trans  &trans    &C_VOL_DN &trans
 &trans  &trans      &trans            &trans      &trans  &trans            &trans  &trans  &trans  &trans  &trans   &trans   &trans   &trans  &trans   &trans
            >;

Everything except for the F13-F24 functions as expected and there is no errors on build using this keymap.

  1. Build and Flash firmware onto device.
  2. Attempt to type the function key. An application like Karabiner's event viewer 2 allows you to view input events on MacOS. Alternatively, You can attempt to bind the key to something in the keyboard shortcuts panel in System Preferences. With a function F13-F24 key, it will correctly set the keybinding for the keyboard shortcut. As it stands, it continues waiting for a valid keypress.

Footnotes

  1. https://zmk.dev/docs/codes#f-keys - one can intuit from the default keybindings that it should be possible to assign F13-F24 the same exact way as F1-F12 (which work fine), hence &kp F13.

  2. https://karabiner-elements.pqrs.org/ - I've bypassed karabiner entirely so it should not be causing the issue.

@KinesisCorporation
Copy link
Owner

Looks like there is a conflict with NKRO at the moment. Commenting out that config line makes F13-F24 work again. We are investigating a fix. Sorry!

@JW9506
Copy link

JW9506 commented Sep 23, 2022

I can reproduce on Windows.

@JW9506
Copy link

JW9506 commented Sep 23, 2022

Looks like there is a conflict with NKRO at the moment. Commenting out that config line makes F13-F24 work again. We are investigating a fix. Sorry!

I have just commented out CONFIG_ZMK_HID_REPORT_TYPE_NKRO but ALL keys would stop working.

@KinesisCorporation
Copy link
Owner

thanks for the update.

@joshvasquez
Copy link
Author

I have just commented out CONFIG_ZMK_HID_REPORT_TYPE_NKRO but ALL keys would stop working.

I changed it to value n instead of commenting it out and it works, though presumably without NKRO:

❯ rg NKRO
config/boards/arm/adv360/adv360_right_defconfig
52:CONFIG_ZMK_HID_REPORT_TYPE_NKRO=n

config/boards/arm/adv360/adv360_left_defconfig
53:CONFIG_ZMK_HID_REPORT_TYPE_NKRO=n

Acceptable workaround for me, but obviously doesn't help those that require NKRO.

@JW9506
Copy link

JW9506 commented Sep 24, 2022

I have just commented out CONFIG_ZMK_HID_REPORT_TYPE_NKRO but ALL keys would stop working.

I changed it to value n instead of commenting it out and it works, though presumably without NKRO:

❯ rg NKRO
config/boards/arm/adv360/adv360_right_defconfig
52:CONFIG_ZMK_HID_REPORT_TYPE_NKRO=n

config/boards/arm/adv360/adv360_left_defconfig
53:CONFIG_ZMK_HID_REPORT_TYPE_NKRO=n

Acceptable workaround for me, but obviously doesn't help those that require NKRO.

I cannot reproduce this whether commenting those lines out OR setting them to n...

I am using Windows11Pro.

@joshvasquez
Copy link
Author

Does your config still work when you revert it to the original? Seems odd that it'd only work when set to y.

@JW9506
Copy link

JW9506 commented Sep 24, 2022

Does your config still work when you revert it to the original? Seems odd that it'd only work when set to y.

Yes - I immediately flash my previous firmware then all keys would start working again. setting n or commenting all keys would not register.

@frankrei
Copy link

frankrei commented Oct 5, 2022

I too, have tried to set the value to =n put that did not work on my end. No F13-F20. Tested using Karabiner-EventViewer.

@KinesisCorporation
Copy link
Owner

Hi there!

  • Are you guys using the v2.0 branch?
  • Did you modify both left and right deconfig files?
  • Did you eliminate any spaces around the "=n"?

We've tested here several times and its working for us.

@JW9506
Copy link

JW9506 commented Oct 5, 2022

Hi there!

  • Are you guys using the v2.0 branch?
  • Did you modify both left and right deconfig files?
  • Did you eliminate any spaces around the "=n"?

We've tested here several times and its working for us.

Right now I am using v2.0 - NKRO=y -> F13+ are not working.

For now I just think disabling NKRO is too much of a sacrifice even if it works. (Still I haven't tested it using 2.0)

@frankrei
Copy link

frankrei commented Oct 5, 2022 via email

@ReFil
Copy link
Collaborator

ReFil commented Oct 7, 2022

Is anyone aware of other keyboards that support those keys with NKRO? This issue could be a fundamental limitation of the USB HID protocol, and a bit of rudimentary research hasn't brought up any keyboards that support both

@lukebouch
Copy link

I ran into the same issue. Any permanent solutions?

@frankrei
Copy link

frankrei commented Jan 5, 2023

Upgrading to the v2 branch activated the function keys but I had to switch off NKRO. No news since.

@ReFil
Copy link
Collaborator

ReFil commented Jan 5, 2023

Turning off NKRO is the only option. Is this supported on other keyboards/firmwares as I cannot find examples of both NKRO and these keys working, I might not be looking in the right place

@bjrnt
Copy link

bjrnt commented Jan 14, 2023

I tried to find an explanation of what disabling NKRO for this keyboard means but came up short-handed. Could someone explain what value of KRO this keyboard reverts to if this config is disabled?

@joshvasquez
Copy link
Author

6 key rollover.

mychris added a commit to mychris/Adv360-Pro-ZMK that referenced this issue Jan 22, 2023
With key rollover enabled, certain keycodes are not working.
See KinesisCorporation#7.
vlad-psh added a commit to vlad-psh/kinesis-advantage-360-pro-zmk that referenced this issue Aug 5, 2023
@felixakiragreen
Copy link

Thank you, I had to disable NKRO it too for these to work. (I'm on branch v3)

@KinesisCorporation Is this something that can be fixed, so that NKRO and F13-24 will work again?

@ReFil
Copy link
Collaborator

ReFil commented Oct 21, 2023

On the latest update (ReFil/zmk@169aa90) this should be fixed. You might need to unpair and repair to the host computer. This was reverted as it caused input issues, We hope to have them solved soon and be able to finalise this

@ReFil
Copy link
Collaborator

ReFil commented Oct 31, 2023

This fix has been re-implemented in the beta branch. If any users are willing to test this and provide feedback it would be much appreciated. https://github.com/KinesisCorporation/Adv360-Pro-ZMK#beta-testing

@ReFil
Copy link
Collaborator

ReFil commented Nov 7, 2023

This has now been changes to use a config option CONFIG_ZMK_HID_KEYBOARD_EXTENDED_REPORT, set to y for the full NKRO range

@ReFil
Copy link
Collaborator

ReFil commented Nov 8, 2023

With the merging of #264 this issue should now be solved. To use these extended NKRO keys set CONFIG_ZMK_HID_KEYBOARD_EXTENDED_REPORT=y in adv360_left_defconfig

@ReFil ReFil closed this as completed Nov 8, 2023
jonatan-branting pushed a commit to jonatan-branting/Adv360-Pro-ZMK that referenced this issue Feb 1, 2024
# This is the 1st commit message:

Updated keymap
# The commit message KinesisCorporation#2 will be skipped:

# Updated keymap

# The commit message KinesisCorporation#3 will be skipped:

# feat: Add basic changes to make me feel more at home

# The commit message KinesisCorporation#4 will be skipped:

# Updated adv360.keymap

# The commit message KinesisCorporation#5 will be skipped:

# Updated adv360.keymap

# The commit message KinesisCorporation#6 will be skipped:

# Updated adv360.keymap

# The commit message KinesisCorporation#7 will be skipped:

# Updated adv360.keymap

# The commit message KinesisCorporation#8 will be skipped:

# Updated adv360.keymap

# The commit message KinesisCorporation#9 will be skipped:

# Updated adv360.keymap

# The commit message KinesisCorporation#10 will be skipped:

# Reduce brightness of leds

# The commit message KinesisCorporation#11 will be skipped:

# Updated adv360.keymap

# The commit message KinesisCorporation#12 will be skipped:

# Updated adv360.keymap

# The commit message KinesisCorporation#13 will be skipped:

# Updated adv360.keymap

# The commit message KinesisCorporation#14 will be skipped:

# Updated adv360.keymap

# The commit message KinesisCorporation#15 will be skipped:

# Updated adv360.keymap

# The commit message KinesisCorporation#16 will be skipped:

# Updated adv360.keymap
keymap-editor bot added a commit to shrpnsld/Adv360-Pro-ZMK that referenced this issue Sep 22, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

8 participants