* 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>
* Initial Ducky One 2 Mini keyboard and keymap
* Keymap macro issue, together with general polish suggestions
* Separate default keymap into proper default, iso and ansi versions
* info.json updates (Configurator support). DEBOUNCE define adjust.
* Unused keymap defines removed.
* update requested ducky one mini2 board changes
* ducky: don't trigger app key with left shift
* ducky: make default mouse key behavior more linear
* ducky: add GRAVE_ESC_GUI_OVERRIDE to allow for win+esc to work
* ducky: playpause on fn space
* ducky: disable RGB_MATRIX until driver is merged
* ducky: clang-format matrix and one2mini.c
* ducky: update requested changes
Remove WFI_IDLE since it's already in the rules.mk CORTEX_ENABLE_WFI_IDLE=TRUE
* ducky: update requested changes
* ducky: move winkey grave esc to default keymap
* ducky: remove dipswitch from keymap and use DIP_SWITCH_MATRIX_GRID instead
* ducky: info.json lint
* ducky: enable DIP_SWITCH_ENABLE rule
* ducky: update readme
* ducky: fix backslash on default keymap
* ducky: remove unused USB_LED_CAPSLOCK_INDEX 28
* ducky: move mbi5042 led driver to ducky keyboard
* ducky: cosmetics
* ducky: requested changes
* ducky: refactor matrix.c again so we can better compare it to other boards
* ducky: remove bootmagic_lite as the boards bootloader trigger is actually handled in its own bootloader
* ducky: remove custom matrix
* ducky: update for chibios-contrib changes
* ducky: debug new USB driver
* ducky: debug usb issues
* ducky: update chibios version
* ducky: remove halconf.h
* ducky: update rules.mk
* ducky: update chconf.h
* Matching submodules.
* Restructure to explicitly define which board is in use, remove RGB driver pending followup PR.
* Revert "Matching submodules."
This reverts commit 2fbb34e0c63ea67ee09d2e2d525723c01431d1cd.
Co-authored-by: GitWellBack <48095880+GitWellBack@users.noreply.github.com>
Co-authored-by: Nick Brassel <nick@tzarc.org>
* Remove the #10088 hotfix for K20x MCU:s.
It seems to _cause_ the issue it intended to solve there.
* Cleaner way of removing #10088 hotfix.
Now only affects Ergodox Infinity, Whitefox and K-type, though.
Switches over Ergodox Infinity to the `IC_TEENSY_3_1` board, since that
was a nice place to implement the `restart_usb_driver` override.
However, I would guess this issue is present for other K20x/Teensy 3.1
boards as well...
* Fix comment regarding `IC_TEENSY_3_1` for all keyboards using it.
* momoka_ergo.h: use modified QMK 3-character notation
Renames the matrix position arguments to use QMK's K<row><column> notation, but using L or R for the left and right halves, respectively.
* physically arrange layout macro
Arrange the layout macro and keycodes to resemble the assembled keyboard.
* info.json: rebuild LAYOUT data
Fixes mispositioned keys in QMK Configurator.
* remove K214 from LAYOUT_1065_ansi macro
Position K214 is only used by the ISO layout (as KC_NUHS); it doesn't get used here. Removing it so the layout macro matches the info.json layout data.
Also updates info.json to use human-friendly formatting.
* add layout macros
Adds:
- LAYOUT_1065_ansi_split_bs macro
- LAYOUT_1065_iso macro
- LAYOUT_1065_iso_split_bs macro
- `default_iso` keymap
* add LAYOUT_all macro
Adds LAYOUT_all macro and a `default_all` keymap.
This PCB is unusual in that the ANSI Backslash and ANSI Enter do not share their matrix positions with the Non-US Backslash or ISO Enter keys at all. This layout macro supports both the ANSI and ISO positions in one macro/keymap.
* info.json: human-friendly formatting
- one key per line
- line breaks between physical rows
- four-space indent
* info.json: add data for LAYOUT_grid
* fix keymap paths
This commit corrects the paths for three keymaps that were in the wrong directory.
* refactor and bugfix abienz keymap
- remove extra commas
- use QMK-native aliases for KC_TRNS and KC_NO
- add include for Colemak keycode support
- use four-space indent
* refactor and bugfix michelle keymap
- remove inline comments for keymap layout
- remove extra commas
- use QMK-native aliases for KC_TRNS and KC_NO
- use four-space indent
* refactor and bugfix twolayer keymap
- remove extra commas
- refactor action_get_macro() keycode to QMK-native keycode
- use QMK-native aliases for KC_TRNS
- use four-space indent
- adjust grid alignment
* rename LAYOUT_grid to LAYOUT_ortho_5x15
* refactor config.h file
- use #pragma once include guard
- update MANUFACTURER and PRODUCT strings to be consistent with other OLKB boards
- remove Magic config (all settings are default)
* refactor atomic.c
- add license header
- use GPIO control functions
* refactor atomic.h
- add license header
- use #pragma once include guard
- remove redundant file includes
* refactor rules.mk
- remove Bootloader selection comments
- unify Build Option header comment to QMK template
- unify Build Option rules and inline comments
* alias LAYOUT_grid to LAYOUT_ortho_5x15
* info.json: human-friendly formatting
* use QMK 3-character notation for layout macro/data
* alu84.h: use #pragma once include guard
* clean up alu84.c
Remove unnecessary includes and functions.
* refactor config.h
- use #pragma once include guard
- enable Backlight Breathing
- align comments to QMK AVR template
* refactor default keymap
- add license header
- use layer_names enum
- refactor keymap to be more generic
- remove unnecessary and empty functions
* refactor turbomech keymap.c
- edit license header
- refactor keymap for readability (use QMK-native keycode aliases)
- remove unnecessary and empty functions
* refactor turbomech config.h
- use #pragma once include guard
- align to QMK template
* refactor turbomech rules.mk
Edit the file to make it conform to QMK template.
* align rules.mk to QMK template
* touch-up default keymap
* touch-up alu84.h
* rename LAYOUT to LAYOUT_75_ansi
Also enables Community Layout Support
* modernize readme.md
- update description
- convert keyboard data to list
- add flashing and bootloader instructions
- update Docs links
* alias LAYOUT to LAYOUT_75_ansi
* change readme image URL per fauxpark
* touch up turbomech keymap rules.mk per fauxpark
* rules.mk: convert tab to spaces
* info.json: human-friendly formatting
- one key object per line; line breaks between physical rows
- four-space indent
- remove trailing whitespace
* info.json: correct key object order for LAYOUT_numpad_6x4
* Add bootloader size
Bootloader size needs to be 6144 to allow QMK to jump to the correct location with bootmagic
* Include dz60rgb v2.1
Add boot loader size to this pcb also
* change to L422
* Add bootloader
Co-authored-by: Ryan <fauxpark@gmail.com>
* add bootloader
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>