summaryrefslogtreecommitdiffstats
path: root/quantum
Commit message (Collapse)AuthorAgeFilesLines
* Use a macro to compute the size of arrays at compile time (#18044)Jeff Epler2022-08-309-28/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Add ARRAY_SIZE and CEILING utility macros * Apply a coccinelle patch to use ARRAY_SIZE * fix up some straggling items * Fix 'make test:secure' * Enhance ARRAY_SIZE macro to reject acting on pointers The previous definition would not produce a diagnostic for ``` int *p; size_t num_elem = ARRAY_SIZE(p) ``` but the new one will. * explicitly get definition of ARRAY_SIZE * Convert to ARRAY_SIZE when const is involved The following spatch finds additional instances where the array is const and the division is by the size of the type, not the size of the first element: ``` @ rule5a using "empty.iso" @ type T; const T[] E; @@ - (sizeof(E)/sizeof(T)) + ARRAY_SIZE(E) @ rule6a using "empty.iso" @ type T; const T[] E; @@ - sizeof(E)/sizeof(T) + ARRAY_SIZE(E) ``` * New instances of ARRAY_SIZE added since initial spatch run * Use `ARRAY_SIZE` in docs (found by grep) * Manually use ARRAY_SIZE hs_set is expected to be the same size as uint16_t, though it's made of two 8-bit integers * Just like char, sizeof(uint8_t) is guaranteed to be 1 This is at least true on any plausible system where qmk is actually used. Per my understanding it's universally true, assuming that uint8_t exists: https://stackoverflow.com/questions/48655310/can-i-assume-that-sizeofuint8-t-1 * Run qmk-format on core C files touched in this branch Co-authored-by: Stefan Kerkmann <karlk90@pm.me>
* [Core] Introduce pointing device specific debug messages (#17663)Stefan Kerkmann2022-08-292-15/+21
|
* Use `TAP_CODE_DELAY` for encoder mapping by default (#18098)Nick Brassel2022-08-281-1/+7
|
* Fix mouse report comparison failing on shared EP (#18060)Drzony2022-08-281-5/+3
| | | Co-authored-by: Dasky <32983009+daskygit@users.noreply.github.com>
* Switch over MANUFACTURER and PRODUCT to string literals (#18183)Ryan2022-08-281-3/+0
|
* Clean-up of `#define _ADJUST 16` instances (#18182)James Young2022-08-271-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * enum layer_names: 40percentclub/nori default keymap * enum layer_names: ergotravel default keymap * enum layer_names: handwired/atreus50 default keymap * enum layer_names: handwired/ortho5x13 default keymap * enum layer_names: keebio/levinson default keymap * enum layer_names: keebio/nyquist default keymap * enum layer_names: keebio/rorschach default keymap * enum layer_names: keebio/viterbi default keymap * enum layer_names: keebio/wavelet default keymap * enum layer_names: lets_split default keymap * enum layer_names: maple_computing/launchpad reference keymaps Update `default` and `default_rgb` keymaps. * enum layer_names: maple_computing/minidox default keymap * enum layer_names: miniaxe reference keymaps Update `default` and `underglow` keymaps. * enum layer_names: omkbd/ergodash/mini default keymap * enum layer_names: omkbd/ergodash/rev1 default keymap * enum layer_names: orthodox default keymap * enum layer_names: unikeyboard/divergetm2 default keymap * enum layer_names: woodkeys/scarletbandana default keymap * add _Static_assert to keymap_introspection.c
* Add missing SS_LOPT and SS_ROPT defines (#18175)Joel Challis2022-08-271-0/+2
|
* Fix DV_SCLN and DV_COLN in keymap_spanish_dvorak.h (#18043)precondition2022-08-151-2/+2
|
* [Bug] Add key event check to `is_tap_record` and remove `is_tap_key` (#18063)Stefan Kerkmann2022-08-152-10/+4
|
* Remove duplicate COMBINING HORN in keymap_us_extended.h (#18045)precondition2022-08-141-1/+1
|
* Fix Caps Word to treat mod-taps more consistently. (#17463)Pascal Getreuer2022-08-141-6/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Fix Caps Word to treat mod-taps more consistently. Previously, holding any mod-tap key while Caps Word is active stops Caps Word, and this happens regardless of `caps_word_press_user()`. Yet for regular mod keys, AltGr (KC_RALT) is ignored, Shift keys are passed to `caps_word_press_user()` to determine whether to continue, and similarly, a key `RSFT(KC_RALT)` representing Right Shift + Alt is passed to `caps_word_press_user()` to determine whether to continue. This commit makes held mod-tap keys consistent with regular mod keys: * Holding a `RALT_T` mod-tap is ignored. * When holding a shift mod-tap key, `KC_LSFT` or `KC_RSFT` is passed to `caps_word_press_user()` to determine whether to continue. * When holding a Right Shift + Alt (`RSA_T`) mod-tap, `RSFT(KC_RALT)` is passed to `caps_word_press_user()`. Particularly, with this fix a user may choose to continue Caps Word when a shift mod-tap key is held by adding `KC_LSFT` and `KC_RSFT` cases in `caps_word_press_user()`. For instance as ``` bool caps_word_press_user(uint16_t keycode) { switch (keycode) { // Keycodes that continue Caps Word, with shift applied. case KC_A ... KC_Z: case KC_MINS: add_weak_mods(MOD_BIT(KC_LSFT)); // Apply shift to the next key. return true; // Keycodes that continue Caps Word, without shifting. case KC_1 ... KC_0: case KC_BSPC: case KC_DEL: case KC_UNDS: case KC_LSFT: // <<< Added here. case KC_RSFT: return true; default: return false; // Deactivate Caps Word. } } ``` * Fix Caps Word to treat mod-taps more consistently. Previously, holding any mod-tap key while Caps Word is active stops Caps Word, and this happens regardless of `caps_word_press_user()`. Yet for regular mod keys, AltGr (KC_RALT) is ignored, Shift keys are passed to `caps_word_press_user()` to determine whether to continue, and similarly, a key `RSFT(KC_RALT)` representing Right Shift + Alt is passed to `caps_word_press_user()` to determine whether to continue. This commit makes held mod-tap keys consistent with regular mod keys: * Holding a `RALT_T` mod-tap is ignored. * When holding a shift mod-tap key, `KC_LSFT` or `KC_RSFT` is passed to `caps_word_press_user()` to determine whether to continue. * When holding a Right Shift + Alt (`RSA_T`) mod-tap, `RSFT(KC_RALT)` is passed to `caps_word_press_user()`. Particularly, with this fix a user may choose to continue Caps Word when a shift mod-tap key is held by adding `KC_LSFT` and `KC_RSFT` cases in `caps_word_press_user()`. For instance as ``` bool caps_word_press_user(uint16_t keycode) { switch (keycode) { // Keycodes that continue Caps Word, with shift applied. case KC_A ... KC_Z: case KC_MINS: add_weak_mods(MOD_BIT(KC_LSFT)); // Apply shift to the next key. return true; // Keycodes that continue Caps Word, without shifting. case KC_1 ... KC_0: case KC_BSPC: case KC_DEL: case KC_UNDS: case KC_LSFT: // <<< Added here. case KC_RSFT: return true; default: return false; // Deactivate Caps Word. } } ``` * Update quantum/process_keycode/process_caps_word.c Co-authored-by: Joel Challis <git@zvecr.com>
* Added emacs as an "operating system" for input mode. (#16949)Chewxy2022-08-143-6/+38
|
* Replace ; by : in the shifted symbols ASCII art of keymap_norman (#18029)precondition2022-08-141-1/+1
| | | Thanks!
* Align TO() max layers with other keycodes (#17989)Joel Challis2022-08-143-14/+6
|
* Use ANSI ASCII art and fix comments for LT_COLN and LT_UNDS in ↵precondition2022-08-131-17/+17
| | | | keymap_lithuanian_qwerty.h (#18028)
* Fix LV_CCAR and LV_NCED (#18025)precondition2022-08-131-2/+2
|
* Fix Caps Word capitalization when used with Combos + Auto Shift. (#17549)Pascal Getreuer2022-08-133-1/+19
|
* Add led matrix support for CKLED2001 (#17643)lokher2022-08-132-1/+53
|
* KR_DQUO S(KR_COLN) → KR_DQUO S(KR_QUOT) (#18011)precondition2022-08-121-1/+1
|
* define CZ_PERC S(CZ_PLUS) → define CZ_PERC S(CZ_EQL) (#18008)precondition2022-08-121-1/+1
|
* Remove invisible variation selector-15 from keymap_japanese.h (#18007)precondition2022-08-121-2/+2
|
* Use LT_ZCAR in place of LT_PLUS for modded kc definitions (#18000)precondition2022-08-121-2/+2
|
* Fix Bépo's BP_NNBS (narrow non-breaking space) (#17999)precondition2022-08-121-1/+1
| | | Co-authored-by: Ryan <fauxpark@gmail.com>
* Merge remote-tracking branch 'origin/master' into developQMK Bot2022-08-121-1/+1
|\
| * Remove legacy keycode use from command (#18002)Joel Challis2022-08-121-1/+1
| |
* | Refactor Pixel Fractal effect (#17602)Albert Y2022-08-111-50/+28
| | | | | | | | | | | | | | | | | | | | | | * Refactor effect with smaller array * Add RGB_MATRIX_USE_LIMITS call * Remove spaces Co-authored-by: Drashna Jaelre <drashna@live.com> Co-authored-by: Drashna Jaelre <drashna@live.com>
* | Merge remote-tracking branch 'origin/master' into developQMK Bot2022-08-071-1/+1
|\|
| * fix comment space code in quantum/matrix_common.c (#17942)Takeshi ISHII2022-08-071-1/+1
| |
* | Always run pointing device init (#17936)Drashna Jaelre2022-08-071-5/+6
| |
* | [Core] Process all changed keys in one scan loop, deprecate ↵Stefan Kerkmann2022-08-062-65/+81
| | | | | | | | `QMK_KEYS_PER_SCAN` (#15292)
* | [Core] guard RPC invocation by checking RPC info against crc checksum (#17840)Stefan Kerkmann2022-08-062-9/+18
| |
* | Add ST7735 driver to Quantum Painter (#17848)David Hoelscher2022-07-312-1/+16
| |
* | Implement relative mode for Cirque trackpad (#17760)Drzony2022-07-291-14/+37
| |
* | Merge remote-tracking branch 'origin/master' into developQMK Bot2022-07-301-1/+1
|\|
| * Fix check when compiling HID Joystick with digital driver (#17844)Drashna Jaelre2022-07-301-1/+1
| |
* | Rename postprocess_steno_user → post_process_steno_user (#17823)precondition2022-07-281-3/+3
| |
* | Constrain Cirque Pinnacle coordinates (#17803)Daniel Kao2022-07-261-6/+6
| | | | | | | | | | | | Static x & y should be the same type as touchData.xValue & touchData.yValue: uint16_t. Their delta could be larger than int8_t and should be constrained to mouse_xy_report_t.
* | Avoid OOB in dynamic_keymap_reset (#17695)Joel Challis2022-07-261-5/+12
| |
* | Cirque circular scroll: Support POINTING_DEVICE_COMBINED (#17654)Daniel Kao2022-07-251-1/+1
| |
* | Fix QK_MAKE's reboot check (#17795)Drashna Jaelre2022-07-251-1/+1
| |
* | implement `tap_code16_delay` (#17748)JayceFayne2022-07-232-5/+17
| |
* | Add ability to enter bootloader mode from `QK_MAKE` (#17745)jack2022-07-231-0/+3
| |
* | Move Pointing Device Initialization (#17740)Drashna Jaelre2022-07-211-3/+4
| | | | | | | | | | Move Pointing Device Initialization to after Split Post Initialization If both pointing device and split is enabled, the pointing device init needs to be called after the split post init, otherwise the connection (serial/etc) isn't initialized yet, and any commands that need to send data over (such as calling the set cpi command) never get sent over.
* | VIA Encoder Map Support (#17734)Wilba2022-07-212-1/+15
| |
* | fix syntax error (#17732)mknj2022-07-201-1/+1
| |
* | Move Pointing Device code to a subdirectory (#17684)Drashna Jaelre2022-07-205-0/+0
| |
* | Add support for PAW3204 Optical Sensor (#17669)Drashna Jaelre2022-07-192-0/+23
| | | | | | | | Co-authored-by: gompa <gompa@h-bomb.nl> Co-authored-by: Stefan Kerkmann <karlk90@pm.me>
* | Allow dynamic keymap to compile without via.h (#17703)Joel Challis2022-07-182-7/+10
| |
* | Add LED limit call (#17679)Albert Y2022-07-141-7/+7
| |
* | Fix the use of LED limits (#17678)Albert Y2022-07-141-8/+7
| |