Commit Graph

34 Commits

Author SHA1 Message Date
Ryan
c6f1b594a2
Remove legacy keycodes, part 2 (#18660)
* `KC_SYSREQ` -> `KC_SYRQ`

And one `KC_ALT_ERASE` -> `KC_ERAS`

* `KC_NONUS_BSLASH` -> `KC_NUBS`

* `KC_NUMLOCK` -> `KC_NUM`

* `KC_CLCK` -> `KC_CAPS`

* `KC_SCROLLLOCK` -> `KC_SCRL`

* `KC_LBRACKET` -> `KC_LBRC`

* `KC_RBRACKET` -> `KC_RBRC`

* `KC_CAPSLOCK` -> `KC_CAPS`
2022-10-10 20:06:26 +01:00
Jeff Epler
9632360caa
Use a macro to compute the size of arrays at compile time (#18044)
* 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>
2022-08-30 10:20:04 +02:00
Nick Brassel
154d35ac14
Remove UNUSED_PINS (#17931) 2022-08-06 23:23:35 +10:00
QMK Bot
ed5351d75e Merge remote-tracking branch 'origin/master' into develop 2022-07-27 19:19:51 +00:00
Ryan
4a0eb733ac
Move keyboard USB IDs and strings to data driven: G (#17818) 2022-07-27 20:19:09 +01:00
QMK Bot
d556c4233e Merge remote-tracking branch 'origin/master' into develop 2022-07-26 04:01:41 +00:00
Ryan
5ed98df374
gboards/georgi: cleanup & fix (#17753) 2022-07-26 14:01:05 +10:00
QMK Bot
a949d32072 Merge remote-tracking branch 'origin/master' into develop 2022-07-02 11:26:57 +00:00
Manna Harbour
3842b15cf1
[Keymap] Update Miryoku (#16482) 2022-07-02 21:26:23 +10:00
Drashna Jaelre
0da6562c4d
Make default layer size 16-bit (#15286)
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2022-06-19 07:37:51 +10:00
Jouke Witteveen
1706da9054
tap-dance: Restructure code and document in more detail (#16394) 2022-06-13 22:12:55 +02:00
Drashna Jaelre
cda343acbe
[Keymap] Drashna update for post Q2 merge (#17241) 2022-05-30 22:02:55 -07:00
Ryan
ceb9b0f7b8
gboards/gergoplex: move COMBO_ENABLE to keymap level (#16667) 2022-05-07 09:58:38 +10:00
Ryan
e1f6fa579a
gergoplex: small cleanup (#16928) 2022-04-24 14:01:29 +01:00
Ryan
d5d2a01db2
gboards/butterstick: move steno rules config to keymap level (#16666) 2022-03-16 04:08:52 +00:00
Ryan
764dc18a81
Remove NO_ACTION_MACRO and NO_ACTION_FUNCTION from keyboard config.h (#16655) 2022-03-15 13:56:58 +00:00
Ryan
bd70f5261c
Remove matrix_key_count() (#16603)
* Remove `matrix_key_count()`

* Remove `matrix_bitpop()`
2022-03-10 12:18:07 +00:00
Tony Grosinger
db16271a72
Add Gergoplex keymap for tgrosinger (#15148)
* Add Gergoplex keymap for tgrosinger

* Add improved shortcuts for PopOS

* Add license
2022-03-09 13:47:57 -08:00
peepeetee
17c0ca6fa4
[Keyboard] move g heavy industry boards into /gboards (#16040)
Co-authored-by: zvecr <git@zvecr.com>
2022-02-11 19:54:48 -08:00
QMK Bot
4297f0669b Merge remote-tracking branch 'origin/master' into develop 2022-01-30 23:10:15 +00:00
James Young
c6a613ef7c
gergoplex: add QMK Configurator data (#16138) 2022-01-30 23:09:46 +00:00
fauxpark
c394bf1c98 Merge remote-tracking branch 'upstream/master' into develop 2021-12-09 17:24:05 +11:00
Ryan
a8d440e4e0
Tidy up NKRO_ENABLE rules (#15382) 2021-12-09 16:05:44 +11:00
Stefan Kerkmann
c1297ceb97
[Core] Remove matrix_is_modified() and debounce_is_active() (#15349) 2021-11-29 08:22:10 -08:00
QMK Bot
bfa72721bb Merge remote-tracking branch 'origin/master' into develop 2021-11-11 17:39:08 +00:00
George Petri
d13286fd29
Update Gergoplex keymap (#15111)
* fix wrong config

* start work on gaming layer

* mod tap per key

* tap dance to game layer

* impl game layer

* add double quotes and underline
2021-11-11 17:38:25 +00:00
James Young
84ea77ead6
Remove BOOTMAGIC_ENABLE = lite option (#15002)
* remove BOOTMAGIC_ENABLE=lite setting

* change keyboard BOOTMAGIC_ENABLE rules

Edits keyboard-level instances of `BOOTMAGIC_ENABLE = lite` to `BOOTMAGIC_ENABLE = yes`.

* change keyboard BOOTMAGIC_ENABLE inline comments

Edits keyboard-level BOOTMAGIC_ENABLE inline comments to "Enable Bootmagic Lite".

* change keymap BOOTMAGIC_ENABLE rules

Edits keymap-level instances of `BOOTMAGIC_ENABLE = lite` to `BOOTMAGIC_ENABLE = yes`.

* change keymap BOOTMAGIC_ENABLE inline comments

Edits/adds keymap-level BOOTMAGIC_ENABLE inline comments to read "Enable Bootmagic Lite".

* change layout/user BOOTMAGIC_ENABLE rules/comments

Edits instances of `BOOTMAGIC_ENABLE = lite` to `BOOTMAGIC_ENABLE = yes`.

Edits/adds keymap-level BOOTMAGIC_ENABLE inline comments to read "Enable Bootmagic Lite".

* update non-rules.mk BOOTMAGIC_ENABLE references in keyboards/

* remove docs references to Full Bootmagic

* convert data-driven Bootmagic Lite instances

* remove Bootmagic Lite bodge from data-driven generation

* Merge remote-tracking branch 'upstream/develop' into rm/bootmagic-full_q4a

* update docs/ja/config_options.md per mtei

* update docs/faq_misc.md per mtei

Remove remaining Full Bootmagic reference.
2021-11-05 08:18:09 +11:00
George Petri
974e9e0a6b
[Keymap] Add Gergoplex keymap (#14768) 2021-10-22 23:34:05 -07:00
Phil Pirozhkov
8d32ddd8e9
[Keyboard] gBoards GergoPlex (#13027)
* Moved gergoplex to seperate PR

* vendor + cformat

* Update keyboards/gboards/k/gergoplex/matrix.c

Co-Authored-By: Drashna Jaelre <drashna@live.com>

* lifiting keyboards up

* Update readme.md

* Update keyboards/gboards/gergoplex/config.h

Co-authored-by: Drashna Jaelre <drashna@live.com>

* remove English dicts

* cformatted

* Prettify keymap

* Remove via keymaps

Via doesn't support chords/combos, and this makes the keymap on such a
small keyboard quite uncomfortable and incomplete.

* Address QMK pull code review notes

* Cleanup (tabs, excessive comments)

* Fix keymap typos

* Use enum to define layers

* Multiple changes

 - got rid of LAYOUT_kc in favour of LAYOUT_split_3x5_3
 - fixed matrix custom C code to build with updated external dependencies (gcc)
 - fixed used combo docs

    keyboards/gboards/gergoplex/matrix.c:189:9: error: implicit declaration of function 'phex' [-Werror=implicit-function-declaration]
             phex(row);
             ^~~~
    keyboards/gboards/gergoplex/matrix.c:191:9: error: implicit declaration of function 'pbin_reverse16'; did you mean 'print_bin_reverse16'? [-Werror=implicit-function-declaration]
             pbin_reverse16(matrix_get_row(row));

* Remove apparently redundant macros

* Replace direct pin control with IO functions

* config mouse enable and combo delay fix

The default delay is 200:

    #define COMBO_TERM 200
        how long for the Combo keys to be detected. Defaults to TAPPING_TERM if not defined.

    tmk_core/common/action_tapping.h|22| 13:#    define TAPPING_TERM 200

* Remove redundant defines

* Unambiguously refer to the Special layer

* Fix formatting

* gboards/gergoplex set IGNORE_MOD_TAP_INTERRUPT

This solves my issue was with KC_CTL_A working correctly and it was set in @germ's repo
39c86e080d/keyboards/gboards/k/gergoplex/config.h (L49)

 https://beta.docs.qmk.fm/using-qmk/software-features/tap_hold#ignore-mod-tap-interrupt

* Name change

See commit 581368596e

* Wording change

* Update keyboards/gboards/gergoplex/keymaps/default/keymap.c

Co-authored-by: Drashna Jaelre <drashna@live.com>

* Add copyright headers

* Fix debounce type

 | avr-gcc: error: .build/obj_gboards_gergoplex_default/quantum/debounce/eager_pr.o: No such file or directory

* Implement colemak-dhm keymap

Co-authored-by: Germ <jeremythegeek@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Brian Tannous <Brian@BrianTannous.com>
2021-09-21 14:07:55 -07:00
Pete Sevander
7e983796e1
Process combos earlier & overlapping combos (#8591)
* Combo processing improvements.

Now it is possible to use ModTap and LayerTap keys as part of combos.
Overlapping combos also don't trigger all the combos, just exactly the
one that you press.

New settings:
- COMBO_MUST_HOLD_MODS
- COMBO_MOD_TERM
- COMBO_TERM_PER_COMBO
- COMBO_MUST_HOLD_PER_COMBO
- COMBO_STRICT_TIMER
- COMBO_NO_TIMER

* Remove the size flags from combo_t struct boolean members.

This in the end actually saves space as the members are accessed so many
times. The amount of operations needed to access the bits uses more
memory than setting the size saves.

* Fix `process_combo_key_release` not called correctly with tap-only combos

* Fix not passing a pointer when NO_ACTION_TAPPING is defined.

* Docs for `COMBO_ONLY_FROM_LAYER`

* Update docs/feature_combo.md

Co-authored-by: precondition <57645186+precondition@users.noreply.github.com>

* Update quantum/process_keycode/process_combo.c

Co-authored-by: precondition <57645186+precondition@users.noreply.github.com>

* Add `EXTRA_SHORT_COMBOS` option.

Stuff combo's `disabled` and `active` flags into `state`. Possibly can
save some space.

* Add more examples and clarify things with dict management system.

- Simple examples now has a combo that has modifiers included.
- The slightly more advanced examples now are actually more advanced
  instead of just `tap_code16(<modded-keycode>)`.
- Added a note that `COMBO_ACTION`s are not needed anymore as you can
  just use custom keycodes.
- Added a note that the `g/keymap_combo.h` macros use the
  `process_combo_event` function and that it is not usable in one's
  keymap afterwards.

* Update docs/feature_combo.md

Co-authored-by: precondition <57645186+precondition@users.noreply.github.com>

* Update docs/feature_combo.md

Co-authored-by: precondition <57645186+precondition@users.noreply.github.com>

* Update docs/feature_combo.md

Co-authored-by: precondition <57645186+precondition@users.noreply.github.com>

* Update docs/feature_combo.md

Co-authored-by: precondition <57645186+precondition@users.noreply.github.com>

* Update docs/feature_combo.md

Co-authored-by: precondition <57645186+precondition@users.noreply.github.com>

* Change "the" combo action example to "email" example.

* Update docs/feature_combo.md

Co-authored-by: precondition <57645186+precondition@users.noreply.github.com>

* Fix sneaky infinite loop with `combo_disable()`

No need to call `dump_key_buffer` when disabling combos because the
buffer is either being dumped if a combo-key was pressed, or the buffer is empty
if a non-combo-key is pressed.

* Update docs/feature_combo.md

Co-authored-by: precondition <57645186+precondition@users.noreply.github.com>

* Update docs/feature_combo.md

Co-authored-by: precondition <57645186+precondition@users.noreply.github.com>

Co-authored-by: precondition <57645186+precondition@users.noreply.github.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-08-06 09:44:57 +10:00
Pete Sevander
b0335b2731 Bigger combo index (#9318)
* Add change log

* Change combo index from uint8_t to uint16_t
2020-08-29 14:30:02 -07:00
Ryan
5a5ecd7dd9
Remove rules.mk for gboards/engine and gboards/g (#9444) 2020-06-19 15:51:50 +10:00
Jeremy Bernhardt
7a75af8342
[Keyboard] Gboards common - TOGG()/inject.h (#9236) 2020-06-05 02:06:58 -07:00
Jeremy Bernhardt
15e84f79f1
gBoards Common (#8921)
Co-Authored-By: Drashna Jaelre <drashna@live.com>
2020-05-04 12:49:47 -04:00