aboutsummaryrefslogtreecommitdiffstats
path: root/quantum
Commit message (Collapse)AuthorAgeFilesLines
* Merge remote-tracking branch 'origin/master' into developQMK Bot2025-03-281-1/+1
|\
| * Fix path typo related RP2040 (#25069)lsh47112025-03-281-1/+1
| | | | | | Fix path typo
* | Non-volatile memory data repository pattern (#24356)Nick Brassel2025-03-2142-647/+1302
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * First batch of eeconfig conversions. * Offset and length for datablocks. * `via`, `dynamic_keymap`. * Fix filename. * Commentary. * wilba leds * satisfaction75 * satisfaction75 * more keyboard whack-a-mole * satisfaction75 * omnikeyish * more whack-a-mole * `generic_features.mk` to automatically pick up nvm repositories * thievery * deferred variable resolve * whitespace * convert api to structs/unions * convert api to structs/unions * convert api to structs/unions * fixups * code-side docs * code size fix * rollback * nvm_xxxxx_erase * Updated location of eeconfig magic numbers so non-EEPROM nvm drivers can use them too. * Fixup build. * Fixup compilation error with encoders. * Build fixes. * Add `via_ci` keymap to onekey to exercise VIA bindings (and thus dynamic keymap et.al.), fixup compilation errors based on preprocessor+sizeof. * Build failure rectification.
* | [Core] get_keycode_string(): function to format keycodes as strings, for ↵Pascal Getreuer2025-03-193-0/+699
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | more readable debug logging. (#24787) * keycode_string(): Format keycodes as strings. This adds the `keycode_string()` function described in https://getreuer.info/posts/keyboards/keycode-string/index.html as a core feature. * Fix formatting. * keycode_string review revisions. * Rename keycode_string() -> get_keycode_string() for consistency with existing string utils like get_u8_str(). * Revise custom keycode names with separate _user and _kb tables. * Correct indent in builddefs/generic_features.mk. Co-authored-by: Ryan <fauxpark@gmail.com> * Add KC_NUHS, KC_NUBS, and KC_CAPS. * Fix linking error with custom names. * Attempt at simplifying interface. * Formatting fix. * Several fixes and revisions. * Don't use PSTR in KEYCODE_STRING_NAME, since this fails to build on AVR. Store custom names in RAM. * Revise the internal table of common keycode names to use its own storage representation, still in PROGMEM, and now more efficiently stored flat in 8 bytes per entry. * Support Swap Hands keycodes and a few other keycodes. * Revert "Formatting fix." This reverts commit 2a2771068c7ee545ffac4103aa07e847a9ec3816. * Revert "Attempt at simplifying interface." This reverts commit 8eaf67de76e75bc92d106a8b0decc893fbc65fa5. * Simplify custom names API by sigprof's suggestion. * Support more keycodes. * Add QK_LOCK keycode. * Add Secure keycodes. * Add Joystick keycodes. * Add Programmable Button keycodes. * Add macro MC_ keycodes. * For remaining keys in known code ranges, stringify them as "QK_<feature>+<number>". For instance, "QK_MIDI+7". * Bug fix and a few improvements. * Fix missing right-hand bit when displaying 5-bit mods numerically. * Support KC_HYPR, KC_MEH, HYPR_T(kc), MEH_T(kc). * Exclude one-shot keycodes when NO_ACTION_ONESHOT is defined. --------- Co-authored-by: Ryan <fauxpark@gmail.com>
* | Add EOL to non-keyboard files (#24990)Joel Challis2025-03-074-4/+4
| |
* | Implement battery level interface (#24666)Joel Challis2025-02-281-0/+10
|/ | | | Co-authored-by: Nick Brassel <nick@tzarc.org>
* Community modules (#24848)Nick Brassel2025-02-267-4/+93
|
* Created SH1107 driver for quantum painter (#24724)Steve Storck2025-02-163-0/+32
| | | | Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
* Retro Tapping Re-Write; Key Roll Fix (#23641)John2025-02-161-12/+38
|
* Chaining OSL and MO (#23065)DavidSannier2025-02-161-0/+4
|
* Merge remote-tracking branch 'origin/master' into developQMK Bot2025-01-292-8/+55
|\
| * [OS Detection] Improve MacOS detection (#24708)Drashna Jaelre2025-01-292-8/+55
| |
* | Invoke `process_record_via` after `_user`/`_kb` have a chance to handle it. ↵Nick Brassel2025-01-291-3/+3
| | | | | | | | (#24879)
* | [Bug][Core] Fix for Chordal Hold: stuck mods when mod-taps are pressed in a ↵Pascal Getreuer2025-01-291-1/+1
| | | | | | | | stuttered sequence. (#24878)
* | [Core] Add Chordal Hold, an "opposite hands rule" tap-hold option similar to ↵Pascal Getreuer2025-01-272-20/+319
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Achordion, Bilateral Combinations. (#24560) * Chordal Hold: restrict what chords settle as hold * Chordal Hold: docs and further improvements * Fix formatting. * Doc rewording and minor edit. * Support Chordal Hold of multiple tap-hold keys. * Fix formatting. * Simplification and additional test. * Fix formatting. * Tighten tests. * Add test two_mod_taps_same_hand_hold_til_timeout. * Revise handing of pairs of tap-hold keys. * Generate a default chordal_hold_layout. * Document chordal_hold_handedness(). * Add license notice to new and branched files in PR. * Add `tapping.chordal_hold` property for info.json. * Update docs/reference_info_json.md * Revise "hand" jsonschema. * Chordal Hold: Improved layout handedness heuristic. This commit improves the heuristic used in generate-keyboard-c for inferring key handedness from keyboard.json geometry data. Heuristic summary: 1. If the layout is symmetric (e.g. most split keyboards), guess the handedness based on the sign of (x - layout_x_midpoint). 2. Otherwise, if the layout has a key of >=6u width, it is probably the spacebar. Form a dividing line through the spacebar, nearly vertical but with a slight angle to follow typical row stagger. 3. Otherwise, assume handedness based on the widest horizontal separation. I have tested this strategy on a couple dozen keyboards and found it to work reliably. * Use Optional instead of `| None`. * Refactor to avoid lambdas. * Remove trailing comma in chordal_hold_layout. * Minor docs edits. * Revise to allow combining multiple same-hand mods. This commit revises Chordal Hold as described in discussion in https://github.com/qmk/qmk_firmware/pull/24560#discussion_r1894655238 1. In "RCTL_T(KC_A)↓, RSFT_T(KC_C)↓, RCTL_T(KC_A)↑" before the tapping term, RCTL_T(KC_A) is settled as tapped. 2. In "RCTL_T(KC_A)↓, RSFT_T(KC_C)↓, RSFT_T(KC_C)↑", both RCTL_T(KC_A) and RSFT_T(KC_C) are settled as tapped. 3. In "RCTL_T(KC_A)↓, RSFT_T(KC_C)↓, KC_U↓" (all keys on the same side), both RCTL_T(KC_A) and RSFT_T(KC_C) are settled as tapped. 4. In "RCTL_T(KC_A)↓, RSFT_T(KC_C)↓, LSFT_T(KC_T)↓", with the third key on the other side, we allow Permissive Hold or Hold On Other Keypress to decide how/when to settle the keys. 5. In "RCTL_T(KC_A)↓, RSFT_T(KC_C)↓" held until the tapping term, the keys are settled as held. 1–3 provide same-hand roll protection. 4–5 are for combining multiple same-hand modifiers. I've updated the unit tests and have been running it on my keyboard, for a few hours so far, and all seems good. I really like this scheme. It allows combining same-side mods, yet it also has roll protection on streaks. For me, this feels like Achordion, but clearly better streak handling and improved responsiveness. * Fix formatting. * Add a couple tests with LT keys. * Remove stale use of CHORDAL_HOLD_LAYOUT. * Fix misspelling lastest -> latest * Handling tweak for LTs and tests. * Fix formatting. * More tests with LT keys. * Fix formatting.
* | Merge remote-tracking branch 'origin/master' into developQMK Bot2025-01-251-0/+1
|\|
| * Fix missing wait.h include in Dip Switch Map (#24863)Drashna Jaelre2025-01-251-0/+1
| |
* | Consolidate send_string implementations. (#24817)Nick Brassel2025-01-203-102/+60
| |
* | Consolidate timer_elapsed implementations (#24830)Joel Challis2025-01-193-0/+3
| |
* | Merge remote-tracking branch 'origin/master' into developQMK Bot2025-01-081-1/+4
|\|
| * [Bug] Fix Underglow keycode processing (#24798)Drashna Jaelre2025-01-081-1/+4
| | | | | | | | Co-authored-by: Ryan <fauxpark@gmail.com>
* | Refactor Hue Breathing matrix effect with runner (#24525)フィルターペーパー2025-01-021-13/+9
| |
* | Add leader_add_user callback (#24266)Will Spooner2025-01-022-0/+16
| |
* | Update Raindrops effect to respect LED range limits (#24531)フィルターペーパー2025-01-021-11/+18
| |
* | Update Starlight matrix effects (#24521)フィルターペーパー2025-01-023-35/+56
| |
* | always return audio pin to 0 on ARM (#24503)David Hoelscher2025-01-021-3/+2
| |
* | [CI] Regenerate Files (#24772)QMK Bot2025-01-011-1/+1
| | | | | | Regenerate Files
* | Merge remote-tracking branch 'origin/master' into developQMK Bot2025-01-0173-73/+73
|\|
| * [CI] Regenerate Files (#24770)QMK Bot2025-01-0173-73/+73
| | | | | | Regenerate Files
* | Add keymap-extras for EurKEY layout (#24241)j-hap2024-12-241-0/+166
| | | | | | | | | | Co-authored-by: Ryan <fauxpark@gmail.com> Co-authored-by: Stefan Kerkmann <karlk90@pm.me>
* | Subscript alef correction (#24707)フィルターペーパー2024-12-121-1/+1
| | | | | | Output for U+0656 is AltGr + V
* | Fix Quantum Painter compiliation issues with heavy optimization (#24667)Drashna Jaelre2024-12-022-7/+7
|/
* Provide method to save a single default layer in the full range of 0-31 (#24639)Joel Challis2024-11-242-7/+23
|
* [Feature] Add keycode PDF(layer) to set the default layer in EEPROM (#24630)Joel Challis2024-11-237-0/+76
| | | | | | | | | | | | * [Feature] Add keycode PDF(layer) to set the default layer in EEPROM (#21881) * Apply suggestions from code review Co-authored-by: Nick Brassel <nick@tzarc.org> --------- Co-authored-by: Nebuleon <2391500+Nebuleon@users.noreply.github.com> Co-authored-by: Nick Brassel <nick@tzarc.org>
* Review fixes for layer lock feature (#24627)Joel Challis2024-11-217-114/+35
|
* [Core] Add Layer Lock feature (#23430)Drashna Jaelre2024-11-218-2/+402
| | | | | | Co-authored-by: Daniel <1767914+iamdanielv@users.noreply.github.com> Co-authored-by: Pascal Getreuer <getreuer@google.com> Co-authored-by: Pascal Getreuer <50221757+getreuer@users.noreply.github.com>
* Backward compatibility for new RGB keycode handling (#24490)Ryan2024-11-192-5/+118
| | | | Co-authored-by: Dasky <32983009+daskygit@users.noreply.github.com>
* Revert removal of `QK_OUTPUT_AUTO`, fixup docs to reflect. (#24593)Nick Brassel2024-11-141-9/+10
|
* Joystick: add support for 8-way hat switch (#24515)Ryan2024-11-092-1/+31
|
* Expose rgb_matrix_update_pwm_buffers to be available in keymaps (#24573)Eric N. Vander Weele2024-11-081-0/+1
| | | | | | | | | | | | * Expose rgb_matrix_update_pwm_buffers to be available in keymaps Exposing this API enables the examples in the keyboard shutdown/reboot documentation to compile instead of calling `rgb_matrix_driver.flush` directly. * Remove extraneous rgb_matrix_update_pwm_buffers prototype declarations Now that `rgb_matrix_update_pwm_buffers` is public, there isn't the need for local prototype declarations.
* Refactor LED Breathing effect with runner (#24540)フィルターペーパー2024-10-281-10/+5
|
* Refactor Breathing effect with runner (#24535)フィルターペーパー2024-10-281-11/+6
|
* Update Jellybean Raindrops to respect LED range limits (#24534)フィルターペーパー2024-10-281-8/+16
|
* Update Pixel Rain to respect LED range limits (#24532)フィルターペーパー2024-10-281-14/+9
|
* Refactor Riverflow matrix effect with runner (#24520)フィルターペーパー2024-10-281-11/+7
| | | | Co-authored-by: Ryan <fauxpark@gmail.com>
* Move pointing device driver code (#24445)Dasky2024-10-254-537/+46
| | | | Co-authored-by: Drashna Jaelre <drashna@live.com>
* RGBLight: Improve RGB Test animation (#24477)Ryan2024-10-241-22/+6
|
* [Bug] Fix compiliation issues with OS Detection (#24502)Drashna Jaelre2024-10-191-1/+1
|
* [Core] `usb_device_state`: consolidate usb state handling across ↵Stefan Kerkmann2024-10-187-25/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | implementations (#24258) * usb_device_state: add idle_rate, led and protocol Previously all usb drivers and platform implementations (expect for our oddball atsam) tracked the same two global variables: - keyboard_protocol: to indicate if we are in report or boot protocol - keyboard_idle: for the idle_rate of the keyboard endpoint And a local variable that was exposed trough some indirection: - keyboard_led_state: for the currently set indicator leds (caps lock etc.) These have all been moved into the usb_device_state struct wich is accessible by getters and setters. This reduces code duplication and centralizes the state management across platforms and drivers. Signed-off-by: Stefan Kerkmann <karlk90@pm.me> * usb_device_state: reset protocol on reset The usb hid specification section 7.2.6 states: When initialized, all devices default to report protocol. However the host should not make any assumptions about the device’s state and should set the desired protocol whenever initializing a device. Thus on reset we should always do exactly that. Signed-off-by: Stefan Kerkmann <karlk90@pm.me> * keyboards: fix oversize warnings Signed-off-by: Stefan Kerkmann <karlk90@pm.me> --------- Signed-off-by: Stefan Kerkmann <karlk90@pm.me>
* [Core] quantum: util: add bit and bitmask helpers (#24229)Stefan Kerkmann2024-10-122-0/+34
| | | | | | | | | | | quantum: util: add bit and bitmask helpers These helpers are handy and can prevent off-by-one errors when working with registers and general low level bit manipulation tasks. The macros themself are inspired by the bits.h macros from the linux kernel source code. Signed-off-by: Stefan Kerkmann <karlk90@pm.me> Co-authored-by: Pascal Getreuer <50221757+getreuer@users.noreply.github.com>