-
Notifications
You must be signed in to change notification settings - Fork 3.4k
Description
Managed to get Vial going on Lemokey P1 HE after patching Keychron's QMK fork. I only tested locking/unlocking in the app and seems to be working fine, recognizes the keyboard and I can map keys. Did not test any other functions.
Any way for Keychron's HE being officially supported? I know Keychron made a lot of patches to chibios-contrib and a few to some drivers.
I attached a patch file that reflects what I now have working, for Keychron's 2025q3 branch (where analog keyboards are). Maybe it's useful for anyone to figure out official Keychron HE support in Vial.
For vial.json I just copied the via one, seems to build fine without any modification to it.
git status
On branch 2025q3
Your branch is up to date with 'origin/2025q3'.
Changes not staged for commit:
(use "git add/rm <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: Makefile
modified: builddefs/build_keyboard.mk
modified: builddefs/common_features.mk
modified: builddefs/common_rules.mk
modified: data/mappings/info_rules.hjson
modified: data/schemas/keyboard.jsonschema
modified: drivers/sensors/analog_joystick.c
modified: drivers/sensors/analog_joystick.h
modified: keyboards/lemokey/p1_he/info.json
modified: keyboards/lemokey/p1_he/iso/rules.mk
modified: lib/python/qmk/cli/ci/validate_aliases.py
modified: lib/python/qmk/cli/list/keyboards.py
modified: lib/python/qmk/cli/migrate.py
modified: lib/python/qmk/cli/resolve_alias.py
modified: lib/python/qmk/info.py
modified: lib/python/qmk/keyboard.py
modified: lib/python/qmk/path.py
modified: platforms/chibios/bootloader.mk
modified: platforms/chibios/drivers/eeprom/eeprom_legacy_emulated_flash_defs.h
modified: platforms/chibios/drivers/wear_leveling/wear_leveling_efl_config.h
modified: quantum/action.c
modified: quantum/action_layer.c
modified: quantum/action_util.c
modified: quantum/command.c
modified: quantum/dynamic_keymap.c
modified: quantum/dynamic_keymap.h
modified: quantum/keyboard.c
modified: quantum/keymap_common.c
modified: quantum/keymap_introspection.c
modified: quantum/led_matrix/led_matrix.c
modified: quantum/led_matrix/led_matrix.h
modified: quantum/mousekey.c
modified: quantum/mousekey.h
modified: quantum/nvm/eeprom/nvm_dynamic_keymap.c
modified: quantum/nvm/nvm_dynamic_keymap.h
modified: quantum/pointing_device/pointing_device.c
modified: quantum/pointing_device/pointing_device.h
modified: quantum/process_keycode/process_auto_shift.c
modified: quantum/process_keycode/process_combo.c
modified: quantum/process_keycode/process_grave_esc.c
modified: quantum/process_keycode/process_haptic.c
deleted: quantum/process_keycode/process_oneshot.c
deleted: quantum/process_keycode/process_oneshot.h
deleted: quantum/process_keycode/process_quantum.c
deleted: quantum/process_keycode/process_quantum.h
modified: quantum/process_keycode/process_tap_dance.c
modified: quantum/process_keycode/process_underglow.c
modified: quantum/quantum.c
modified: quantum/quantum.h
modified: quantum/quantum_keycodes.h
modified: quantum/quantum_keycodes_legacy.h
modified: quantum/via.c
modified: quantum/via.h
deleted: util/stm32eeprom_parser.py
Untracked files:
(use "git add <file>..." to include in what will be committed)
builddefs/build_vial.mk
platforms/chibios/bootloaders/vibl.c
quantum/qmk_settings.c
quantum/qmk_settings.h
quantum/quantum_keycodes.h_old
quantum/quantum_keycodes_legacy.h_old
quantum/rgb_matrix/animations/vialrgb_direct_anim.h
quantum/vial.c
quantum/vial.h
quantum/vial_ensure_keycode.h
quantum/vialrgb.c
quantum/vialrgb.h
quantum/vialrgb_effects.inc
util/build_id.py
util/ci_compile_vial_keyboards.py
util/ci_vial_verify_uid.py
util/vial_generate_definition.py
util/vial_generate_keyboard_uid.py
util/vial_generate_vfw.py
vial-nckiser.sln
no changes added to commit (use "git add" and/or "git commit -a")
Keychron's web UI doesn't work anymore, so you lose access to setting analog functions. I will try getting my custom analog HID file working with Vial.
Here's the files for reference:
https://github.com/gibs2193/qmk_firmware/blob/2025q3/keyboards/keychron/common/analog_hid.c
https://github.com/gibs2193/qmk_firmware/blob/2025q3/keyboards/keychron/common/analog_hid.h
And the python script I use to set the analog functions:
https://github.com/gibs2193/qmk_firmware/blob/2025q3/keyboards/lemokey/p1_he/lmk.py
I made them for my 10bit version of the QMK build (1024 steps instead of 40), so they cannot be used for the stock Keychron HE QMK config as they are atm. But could be helpful. I'll try getting it to work with Vial so I don't miss out on the analog settings.
The QMK patch for Keychron's fork, that I attached, should work for all HE keyboards, there's nothing specific for my P1 HE.
Edit: Also fixed RGB, all effects work + direct control for per-key RGB. The whole thing ready to use is here:
https://github.com/gibs2193/qmk_firmware/tree/2025q3_vial
There's a Vial keymap for P1 HE, had to tweak the vial.json file for encoder to show up in the app.