-
Notifications
You must be signed in to change notification settings - Fork 212
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
Issues with Keychron Keyboards in VIA #91
Comments
Q1 v2 & Linux (Fedora 37) user here. I did use the "Use V2 definition" toggle, and it did make things better as I was able to load the definition and have the "configure" tab show the keyboard layout. However, whatever change I made in the app had no impact on the keyboard itself. I have made tests on window, which did not bring any improvement. So I decided to go through the QMK path. I followed the tutorial and compiled the firmware myself, but couldn't use the flash utility, because it's not available on Linux. The firmware of the v2 version of the Q1 is not available yet, because the v2 is based on a new chip. It can be found on this pull request by Keychron's staff though. So if you checkout the branch, you can fully use QMK to configure the Q1 v2. It is a bit of a hassle and involves many manual tasks, but it is fully functional, and with some luck it will soon be mainlined so things will be 100% functional with QMK and VIA. |
I shared this link with Keychron support. |
This is mostly because of both, how it came as a surprise out of nowhere for manufacturers like KC and how people either don't know that there's a new version of VIA that they have to use instead of 1.3.1 that they might be on, or they don't know or don't care about updating the firmware on their boards to be able to take advantage to that, both sides that I've seen more and more of. In which case, they'd have to do one or both of these 2 options regardless. For the "developer's back-end" method, in the case of the K Pro, which was spawned from
This. Even with the "developer's back-end" method since people didn't understand that this toggle was needed for loading the JSONs that KC currently has. (V2 Definitions)
For other KC boards that weren't in mainline QMK and any boards people got before Nov 26, that used to be the case, but now the |
It doesn't look like the q1v2 has been pushed to master yet correct, been trying to find a way to use the new VIA version 3, but I have not found any documentation on how to do it |
It did take a lot of tinkering and a support page from keychron to get VIA able to do anything with my k8 pro. It does work once I enable the v2 toggle, import the json, and switch to the configure tab. |
I've follow the instructions here of toggle v2, import json and then switch to configure tab. But I only get this error instead:
This is on Fedora. |
Does there exist a current working solution for Keychron keyboards? Looks like V3 auto-detection doesn't work for the reasons OP mentioned, and "Use V2 Definitions" doesn't fix the issue (in my case, getting "Object: should NOT have additional properties" error message when using V2). Windows 10, VIA v3 desktop app, Keychron Q1 v2 w/ knob ANSI |
I just received the Keychron Q1 Pro ISO and have the exact same issue @rigtorp described.
This is only under Linux (ArchLinux + Google Chrome). I get the error when not providing a JSON as well as when providing the JSON with forcing the version to v2. It works perfectly fine under Windows 10 (also Google Chrome). |
@Syphdias This might be an access rights issue (it was in my case). Chrome is trying to access /dev/hidraw*, which may be restricted to root. You could try running as root, or adjusting the access rights of those files (although this doesn't seem optimal). |
@hofheinz I am not convinced that this the case. I tried to chown all Keychron |
Hmm, sorry it didn't work for you, @Syphdias . For the record, in my case (Alpine Linux, Chromium installed from package, i.e., non-flatpak), I got these messages:
and then
Looking at |
Thank you for the hint. It was indeed the hidraw device missing the permissions. Looking at |
The logs shown in |
Same. Remember that a reboot will also reset the permissions. |
So I just visited https://usevia.app/ and noticed the UI changed. The interface still recognizes my keyboard, Keychron Q5 ANSI KNOB, and I can set keymaps fine. Apparently from https://www.keychron.com/pages/how-to-use-via-to-pair-with-keychron-q-series-keyboard the right keymaps should be used, so are things resolved now? I only found this ticket because when I tried to export my configuration, the file generated is empty and via reports 16 errors:
|
The |
Thnx. This solved it for me! I have a Keychron K7 Pro on Linux Mint 21.2 (Ubuntu 22.04 LTS). and was getting the same error.
To make the solution permanent, I've created a new system group, added my user to it and created a udev rule allowing the group access to
Logout and back in to make your users |
@martin-braun mind providing a link to this page? I'm not sure what to download for keychron q3 pro |
@seanwessmith Text-search for "please" on their product page, which is https://www.keychron.com/products/keychron-q3-pro-qmk-via-wireless-custom-mechanical-keyboard for the q3 pro. |
@martin-braun Same for me with macOS and K7 Pro, have you figured it out? Edit: Got it working by downloading this json file and loading it as draft in the via design tab. |
Is it possible to add the json files from Keychron's Here are the JSON files: https://github.com/Keychron/qmk_firmware/tree/bluetooth_playground/keyboards/keychron/k3_pro/via_json |
Tested with Keychron K6 Pro -> usevia.app works on Windows (not on Linux). |
Since this issue got quite long with the discussion and side-tracked with unrelated problems (Linux permissions, wonky 2D letters, etc), I opened a specific issue explaining the perms problem and possible workarounds, in case it helps the devs to look into it 🙏 |
Case insensitive. Or "Please". |
I added such a udev rule for an ansi Q10 (Max) I received today but after authorising the device it still doesn't load the app with no error displayed on |
I now solved this issue by downloading the definition json file from https://www.keychron.com/pages/firmware-and-json-files-of-the-keychron-qmk-keyboards for my keyboard and loading it via the Design tab. |
there is a typo in here so it won't work (first double quote in the rules file), please use this:
|
Are the JSON files on the Keychron website licensed in a permissible way that I can copy them into this project? If not, can I do a black box implementation of the same files and would that be accepted as a PR here to solve the problem for millions of people ? |
The usual way VIA works is for keyboard definitions to be added to the Github repository the-via/keyboards allowing the VIA client to automatically download and use a definition when matching firmware is detected.
For whatever reason, Keychron has not added definition for some of their keyboards to the Github repository, and is instructing users to a) enable the "Design" tab in Settings, b) use the "Load Draft Definition" to load a definition. This is essentially instructing users to use a "developer's back-end" every time they want to use VIA, which is not what the VIA developers intended.
Maybe the recent change from V2 to V3 definitions is related to people's issues. The toggle button that was previously "Use V3 Definitions" has now changed to "Use V2 Definitions", since V3 is now the latest and current, and V2 is the previous. Maybe people should try using that toggle button and loading the definition and see if that fixes things.
As far as I know, Keychron firmware was built and installed before the change from V2 to V3 (because their "VIA Guide" refers to an old version of VIA), so most likely VIA needs a V2 definition loaded in order to recognize a device with that V2-compatible firmware.
Technical details: If VIA detects QMK firmware built with
VIA_PROTOCOL_VERSION
of 11+ it will require a V3 definition, otherwise it requires a V2 definition. All keyboards in QMK master branch should have both V2 and V3 definitions in the Github repository, thus VIA will work with old firmware and newly built firmware.The text was updated successfully, but these errors were encountered: