Commit Graph

26590 Commits

Author SHA1 Message Date
rootiest 6d6eee5571 feat(k17): add tap-chords to keychron k17_max 2026-04-10 23:13:36 -04:00
rootiest df671b656b fix(q5_max): fix RAW_EPSIZE and via_command_kb hook conflict
Two build errors:

1. RAW_EPSIZE undeclared — usb_descriptor.h is not in scope when
   keymap.c is compiled through Keychron's build path. Replace all
   uses with HID_PACKET_SIZE (= 32), now defined in hid_protocol.h.

2. via_command_kb duplicate symbol — keychron_raw_hid.c already defines
   via_command_kb (non-weak) so we cannot redefine it in keymap.c.

Fix by adding a weak kc_raw_hid_rx_kb() extension hook to
keychron_raw_hid.c (following the same pattern as kc_rgb_matrix_rx).
kc_raw_hid_rx() now calls this hook from its default case instead of
returning false directly. The keymap overrides kc_raw_hid_rx_kb() to
handle our custom HID command range (0x40-0x7E).
2026-04-10 15:10:14 -04:00
rootiest 6fd5179c55 feat(q5_max): implement bi-directional Raw HID protocol
Add hid_protocol.h defining a shared 32-byte packet structure for the
qmk-host bridge application (command IDs 0x40-0x7E, clear of VIA's
range). Implement via_command_kb() in keymap.c to intercept incoming
packets: LAYER_SYNC applies a new active layer, VOLUME and BRIGHTNESS
store host-reported values for future RGB indicators, and ACTIVE_APP
is stubbed for a later commit. Layer state changes are broadcast to the
host via raw_hid_send() from layer_state_set_user(), guarded by
g_hid_recv_active to prevent echo loops when the change itself
originated from HID.
2026-04-10 14:41:58 -04:00
rootiest 9b2cd0cb32 chore: ignore gemini session file
Session file is only relevant during development and unique to the local
machine.
2026-04-10 14:19:59 -04:00
rootiest d4bd903423 fix(chatter): fix key chatter with stricter tap terms and debounce 2026-04-10 14:19:09 -04:00
rootiest c0d868dca3 fix(caps-mod) implement dummy keypress for capsmod combos
Send KC_F24 when modifiers are used with CAPS_MOD to avoid the modifiers
being treated as lone taps.
2026-04-09 00:28:34 -04:00
rootiest d8dccd67a6 fix(caps-mod): fixes errant taps of modifiers
Prevents modifiers (GUI and ALT) from firing a tap signal when they are
used in conjunction with the CAPS_MOD key.
2026-04-09 00:19:04 -04:00
rootiest 360e642fcf chore(dict): add thiink and fiish to dictionary 2026-04-09 00:16:49 -04:00
rootiest 4cfa85ee8e chore(dict): generate dictionary file
Create a autocorrect_dictionary.txt file which is used to generate the
autocorrect_data.h file.
2026-04-09 00:16:20 -04:00
rootiest 41fe2a11bd chore: use direnv to manage python venv 2026-04-09 00:12:20 -04:00
rootiest d52d55e442 Merge pull request 'chore: cleanup dev artifacts — CLAUDE.md update and remove superpowers notes' (#7) from chore/cleanup-dev-artifacts into main 2026-04-08 05:08:20 +00:00
rootiest aad85d9930 chore: remove superpowers development notes
Features are merged with descriptive commit messages and PR summaries;
these ephemeral planning docs are no longer needed.
2026-04-08 01:07:58 -04:00
rootiest 0c28ba889f docs(CLAUDE.md): document delete-on-merge pattern for stacked PRs 2026-04-08 01:07:58 -04:00
rootiest 846d07966f Merge pull request 'chore/feat(q5_max): gitignore update, layer control, and CAPS_MOD' (#6) from feat/layer-control into main 2026-04-08 04:57:09 +00:00
rootiest 5c0fb31e41 Merge pull request 'feat(q5_max): CAPS_MOD — multi-function CapsLock key with CapsWord, Autocorrect, and RGB indicators' (#4) from feat/caps-mod into feat/layer-control 2026-04-08 04:50:36 +00:00
rootiest 14747159fa Merge pull request 'chore: remove upstream GitHub Actions workflows' (#5) from chore/remove-actions into main 2026-04-08 04:50:17 +00:00
rootiest d2a67b2bb3 fix(q5_max): invert autocorrect LED indicator — purple when autocorrect is OFF 2026-04-08 00:47:29 -04:00
rootiest 0210caf90e feat(q5_max): add RGB indicators for CapsWord/Autocorrect/CapsLock on LED 55 2026-04-08 00:47:29 -04:00
rootiest 6045cfa866 fix(q5_max): add clarifying comments to CAPS_MOD release handler 2026-04-08 00:47:29 -04:00
rootiest b77eea4192 feat(q5_max): implement CAPS_MOD tap/hold logic (ESC/Ctrl/CapsLock/CapsWord/Autocorrect) 2026-04-08 00:47:29 -04:00
rootiest bab766887a fix(q5_max): restore void casts for CAPS_MOD vars (QMK uses -Werror=unused-variable) 2026-04-08 00:47:28 -04:00
rootiest a2ef1712ab feat(q5_max): add CAPS_MOD keycode and replace KC_CAPS in all layers 2026-04-08 00:47:28 -04:00
rootiest 0865d7ed26 docs: update capslock-mod plan to reflect autocorrect_data.h already defines AUTOCORRECT_MIN_LENGTH 2026-04-08 00:47:28 -04:00
rootiest 3d283cdf48 fix(q5_max): remove duplicate AUTOCORRECT_MIN_LENGTH define from config.h 2026-04-08 00:47:28 -04:00
rootiest aeae6d485d feat(q5_max): enable CAPS_WORD and AUTOCORRECT features 2026-04-08 00:47:28 -04:00
rootiest 926628bc4f docs: add Caps Lock mod design spec
Spec for CAPS_MOD custom keycode: tap=ESC, hold=Ctrl, Shift+tap=CapsLock,
Alt+tap=CapsWord, GUI+tap=Autocorrect toggle. Includes RGB indicators and
feature enablement plan.
2026-04-08 00:47:28 -04:00
rootiest 45276ac042 feat(q5_max): add layer-lock keycodes for persistent layer activation
Introduces LCK_FN1–LCK_FN4, LCK_CTL, and LCK_BASE custom keycodes that
toggle a layer into a locked state so it stays active after momentary keys
are released. A second press on the same lock key or pressing LCK_BASE
clears all locks and returns to BASE.
2026-04-08 00:47:22 -04:00
rootiest 423e544097 feat(q5_max): add ESC key RGB indicator for active layer
Implements rgb_matrix_indicators_advanced_user to colour the ESC key
(LED 0) based on the current layer: dark on BASE, blue on FN1, green
on FN2, orange on FN3, purple on FN4, and red on KEEB_CTL.
2026-04-08 00:47:22 -04:00
rootiest 86cad58f34 feat(q5_max): add COMM+DOT+SLSH fallback combo to return to BASE
Adds a three-key combo (,  .  /) that fires TO(BASE), providing an
emergency escape hatch when stuck on an unknown layer. COMBO_ONLY_FROM_LAYER
is set to 0 in the keymap config.h so keycodes are always resolved from
BASE, making the combo reliable regardless of the active layer.
2026-04-08 00:47:22 -04:00
rootiest e897c73ff4 chore: ignore Claude session and session memory ID files
Pull Request Labeler / triage (pull_request) Successful in 4s
2026-04-08 00:47:06 -04:00
rootiest 949d34941a chore: remove upstream GitHub Actions workflows
Pull Request Labeler / triage (pull_request) Successful in 4s
Keychron's CI workflows don't apply to this personal fork and trigger
unwanted runs. Remove the entire .github/workflows directory.
2026-04-08 00:46:53 -04:00
rootiest 9d2531efd3 Merge pull request 'feat(q5_max): chord-based unicode/emoji input system' (#1) from q5_dev into main
Close stale issues and PRs / stale (push) Successful in 5s
Automatic Approve / automatic_approve (push) Has been skipped
Reviewed-on: #1
2026-04-06 17:31:49 +00:00
rootiest bdcec0fd7e docs(CLAUDE.md): add git conventions section
PR Lint keyboards / lint (pull_request) Failing after 2m18s
Pull Request Labeler / triage (pull_request) Successful in 17s
2026-04-06 12:23:49 -04:00
rootiest e1bed8ec91 docs: add CLAUDE.md with project guidelines and venv requirement
Document build commands, code style, and development workflow for the
Q5 Max via keymap. Emphasize that all qmk commands must be run inside
the project Python venv (.venv/bin/activate) rather than the system qmk.
2026-04-06 12:23:49 -04:00
rootiest c819c83b80 feat(q5_max): add chord-based unicode/emoji input system
Implement a chord-mode unicode entry system activated by Fn1+LeftAlt
(CHORD_KEY). Supports two activation styles: tap CHORD_KEY then type
the sequence within a 2-second window, or hold CHORD_KEY, type the
sequence, and release to commit.

- Add chord_unicode.c/h with a ~110-entry table covering math symbols
  (°²³√≈≠≤≥±÷×∞π), Greek letters, currency, fractions, arrows,
  typography, and a broad emoji set
- Prefix-aware matching with a 300ms disambiguation timer handles
  same-prefix alias pairs (e.g. lte/lteq→≤, inf/infty→∞) cleanly
- Backspace deletes, Enter confirms, Escape cancels while in chord mode
- Modifier and layer key-up events pass through so TT(FN1) release
  correctly deactivates the layer while chord mode is active
- Enable UNICODE_ENABLE and wire chord_unicode.c into the build
2026-04-06 12:23:35 -04:00
rootiest 893fd02ec2 feat(q5_max): add sleep/power and tweak home/end keys
Add additional functionality and more intuitive use of existing keys:
  - Add a Sleep key (FN1+Esc)
  - Add a Power key (FN2+Esc)
  - Keep old End key behavior alongside tap-dance (FN1+Home - End)
  - Add Home key (FN1+LeftArrow)
  - Add End key (FN1+RightArrow)
2026-04-05 20:32:44 -04:00
rootiest f2c5c157e4 feat(q5_max): set typing heatmap as default RGB effect
Close stale issues and PRs / stale (push) Successful in 1m31s
Automatic Approve / automatic_approve (push) Has been skipped
2026-04-05 20:15:57 -04:00
rootiest e99318637c feat(q5_max): overhaul via keymap with custom layers and encoder features
Automatic Approve / automatic_approve (push) Has been skipped
Replace stock MAC/WIN dual-boot layers with a single-OS 6-layer layout
(BASE, FN1, FN2, FN3, FN4, KEEB_CTL). Add tap-dance Home/End, a mouse
control layer (FN2), and timer-based Alt+Tab cycling on the FN2 encoder.

- Restructure layers: drop MAC_BASE/MAC_FN/WIN_BASE/WIN_FN; add FN1-FN4
  and KEEB_CTL with Bluetooth/RGB controls
- Add ALT_TAB_FWD/ALT_TAB_BWD custom keycodes driven by matrix_scan_user
  timer to hold Alt across encoder ticks (750ms timeout)
- Assign FN2 encoder to Alt+Tab / Alt+Shift+Tab cycling
- Add TD_HOME_END tap-dance (tap=Home, double=End) on numpad Home key
- Enable MOUSEKEY_ENABLE and TAP_DANCE_ENABLE in rules.mk
- Set DYNAMIC_KEYMAP_LAYER_COUNT=6 and TAPPING_TOGGLE=3 in config.h
2026-04-05 20:07:55 -04:00
rootiest 2dba2a548b feat(k17_max): add td_home_end to zooey's board
Add the tap-dance sequence:
  - Single Tap - Home
  - Double Tap - End
2026-04-05 20:07:55 -04:00
lokher 666862cb81 Add Q2 Max JIS 2026-03-16 19:07:27 +08:00
lokher 6f5058f7d0 Add Lemokey L1 ISO 2026-01-19 11:17:48 +08:00
lokher f3cea8e97a Add Q3 Max JIS 2025-12-08 10:14:28 +08:00
lokher 0a529031e6 Added Q6 Max JIS 2025-09-09 12:31:34 +08:00
lokher 8b525cb770 Added snap click and per-key/mixed RGB to V3 MAX 2025-05-30 23:56:29 +08:00
lokher c9049679ac Added snap click, per-key/mixed rgb, custom debounce, wireless config feature 2025-05-30 23:55:10 +08:00
lokher b507ea2216 Added K11 Max JIS 2025-03-25 16:16:19 +08:00
lokher 3a445969c4 Fixed Q6 Max compile error when rgb_matrix is disabled 2025-03-25 16:15:30 +08:00
lokher d619c03d54 Enable SEND_STRING when VIA_EANBLE is set 2025-03-24 16:10:32 +08:00
lokher 3fd4430bf2 Added V1 Max JIS 2025-01-17 15:08:58 +08:00
lokher f1ea73ca8a Fixed K Pro white backlight compile error 2025-01-15 10:04:57 +08:00