Compare commits

...

1554 Commits

Author SHA1 Message Date
jpe230
c586cfda48 (develop) Update bootmagic for Adafruit Macropad (#17755) 2022-07-22 23:28:51 +01:00
QMK Bot
c39a902867 Merge remote-tracking branch 'origin/master' into develop 2022-07-22 20:20:43 +00:00
Yuannan
2202efaf0c Added autoclicker, better mouse, Vim like editing layer and more. (#15702)
* Added autoclicker, better mouse, vim like FN layer and more.

* Updated docs to comply with guidelines

* Fixed Imgur links

* increased step sizes

* updated readme to reflect step size

* Added second delay array for autoclicker to compensate for RGB animation CPU loads

* better RGB effects and updated docs

* better README.md formatting

* added DEBONCE libinput workaround for Linux

* fixed formatting

* fixed typos and clarified

* fixed layer picture order

* Update keyboards/dztech/dz65rgb/keymaps/yuannan/keymap.c

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

* Update keyboards/dztech/dz65rgb/keymaps/yuannan/README.md

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

* Updated Docs and rules

* Updated with the new deferred exec API to ensure more consistant CPS

* renamed README.md to be lower case to comply with fauxpark's request

* Remapped alt to be left instead of right for compatibility reasons

* Update keyboards/dztech/dz65rgb/keymaps/yuannan/config.h

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

Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-07-22 21:20:02 +01:00
QMK Bot
536511a32a Merge remote-tracking branch 'origin/master' into develop 2022-07-22 14:58:18 +00:00
mechlovin
8de0427fec [Kay60] Change LED pin state and correct keycode. (#17746) 2022-07-22 15:57:03 +01:00
QMK Bot
0e81d63b64 Merge remote-tracking branch 'origin/master' into develop 2022-07-22 13:23:36 +00:00
Aidan Gauland
de10784799 Fix compilation error in Ploopy Nano maddie keymap (#17733) 2022-07-22 14:22:56 +01:00
QMK Bot
f1671ec720 Merge remote-tracking branch 'origin/master' into develop 2022-07-22 03:43:08 +00:00
Sắn
b9c7d4c48d [Keyboard] Add Krush65 Hotswap (#16692)
* Add Krush65 Hotswap

* Led fix

* small fix

* a

* B

* move ec action to VIA keymaps

* Update keyboards/sawnsprojects/krush/krush65/hotswap/readme.md

* Update keyboards/sawnsprojects/krush/krush65/hotswap/rules.mk

* Update readme.md

* Update readme.md

* Update readme.md

* Update keyboards/sawnsprojects/krush/krush65/hotswap/readme.md

* Update keyboards/sawnsprojects/krush/krush65/hotswap/rules.mk

* Update keyboards/sawnsprojects/krush/krush65/hotswap/info.json

* Update keyboards/sawnsprojects/krush/krush65/hotswap/readme.md

* Update keyboards/sawnsprojects/krush/krush65/hotswap/readme.md

* Update keyboards/sawnsprojects/krush/krush65/hotswap/info.json

* Update keyboards/sawnsprojects/krush/krush65/hotswap/hotswap.h
2022-07-21 20:42:29 -07:00
QMK Bot
d681eac0ad Merge remote-tracking branch 'origin/master' into develop 2022-07-21 20:24:51 +00:00
Joel Challis
5a0e47db5e Add reviewer/labels to dependabot PRs (#17743) 2022-07-21 21:24:07 +01:00
QMK Bot
bfed88dba2 Merge remote-tracking branch 'origin/master' into develop 2022-07-21 19:55:00 +00:00
dependabot[bot]
4ca99af8f5 Bump JamesIves/github-pages-deploy-action from 4.3.4 to 4.4.0 (#17742) 2022-07-21 20:54:27 +01:00
Drashna Jaelre
5f32690cba Move Pointing Device Initialization (#17740)
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.
2022-07-21 10:16:44 -07:00
jpe230
5c90732622 Adafruit Macropad: Add VIA keymap, fix default km (#17735) 2022-07-21 14:44:12 +01:00
QMK Bot
6081a8091d Merge remote-tracking branch 'origin/master' into develop 2022-07-21 12:45:28 +00:00
jonavin
7f0581cd35 Jonavin mercutio - reduce mem footprint (#17498)
* Reduce mem footprint - remove sprintf

* remove stdio reference and use get_u8_str

Co-authored-by: Jonavin <=>
2022-07-21 13:44:51 +01:00
Albert Y
d510e80b89 Add Blok 2040 conversion (#17603) 2022-07-21 00:54:05 +01:00
Wilba
4efe6330c4 VIA Encoder Map Support (#17734) 2022-07-21 09:53:42 +10:00
QMK Bot
493d422406 Merge remote-tracking branch 'origin/master' into develop 2022-07-20 23:20:34 +00:00
mechlovin
a6d70de96a [Keyboardo] Update PID for mechlovin zed60 (#17728) 2022-07-20 16:19:51 -07:00
mknj
9a31bbb3fa fix syntax error (#17732) 2022-07-20 22:59:18 +01:00
Albert Y
05f30f0787 Use Pro Micro pinout for SDA/SCL (#17595) 2022-07-20 18:24:34 +01:00
QMK Bot
ab45e3b993 Merge remote-tracking branch 'origin/master' into develop 2022-07-20 17:00:18 +00:00
takashicompany
62e3f8b885 Add miniZone Keymap (#17552) 2022-07-20 17:59:40 +01:00
Ben Fiedler
1db5272154 docs: fix default value of USB_SUSPEND_WAKEUP_DELAY (#17501)
Documents the change made in #12081
2022-07-20 17:43:41 +01:00
Drashna Jaelre
ee17ffadea Move Pointing Device code to a subdirectory (#17684) 2022-07-20 17:32:00 +01:00
QMK Bot
adfa36fee4 Merge remote-tracking branch 'origin/master' into develop 2022-07-20 15:02:35 +00:00
Felix Jen
55f16167e4 Added Windz Sinanju to QMK (#17566) 2022-07-20 16:01:35 +01:00
QMK Bot
fa44f2b21e Merge remote-tracking branch 'origin/master' into develop 2022-07-20 00:56:25 +00:00
Michal
00c8e24c6a [Keymap] Michal Keymap for Sofle rev1 (#17610) 2022-07-19 17:55:48 -07:00
Drashna Jaelre
12eb6444c6 Add support for PAW3204 Optical Sensor (#17669)
Co-authored-by: gompa <gompa@h-bomb.nl>
Co-authored-by: Stefan Kerkmann <karlk90@pm.me>
2022-07-19 17:46:22 -07:00
QMK Bot
6992efb229 Merge remote-tracking branch 'origin/master' into develop 2022-07-19 23:24:53 +00:00
Duccio
a7893f207d Add rgb underglow support and change vendor_id (#17719) 2022-07-20 00:24:10 +01:00
QMK Bot
d0c095eec2 Merge remote-tracking branch 'origin/master' into develop 2022-07-19 15:43:59 +00:00
JW2586
32512bbf10 [Keyboard] Waterfowl keyboard support (#16760)
* Added waterfowl files

* Completing PR Checklist

* Added encoders to info.json

* Added license to default keymap

* Update keyboards/waterfowl/keymaps/cyanduck/keymap.c

* Update keyboards/waterfowl/keymaps/default/keymap.c

* Update keyboards/waterfowl/waterfowl.c

* Update keyboards/waterfowl/keymaps/default/keymap.c

* Update keyboards/waterfowl/waterfowl.c

* Update keyboards/waterfowl/waterfowl.c

* Update keyboards/waterfowl/keymaps/cyanduck/keymap.c

* Update keyboards/waterfowl/rules.mk

* Update readme.md

* Update keyboards/waterfowl/waterfowl.c

* Update keyboards/waterfowl/info.json

* Update keyboards/waterfowl/info.json
2022-07-19 08:43:19 -07:00
QMK Bot
d458df7698 Merge remote-tracking branch 'origin/master' into develop 2022-07-19 10:29:44 +00:00
takashicompany
819231afe1 Add keymap for Radialex (#17662)
* fix keymap

* fix keymaps
2022-07-19 11:28:45 +01:00
QMK Bot
7a10c3370f Merge remote-tracking branch 'origin/master' into develop 2022-07-19 10:14:23 +00:00
David Hoelscher
1bf95d60e4 [Keyboard] customMK EVO70 (#14907)
* added files for EVO70

* updated info.json and readme

* ran qmk lint and fixed typo in info.json

* removed defines from config.h in favor of info.json

* removed an unnecssary include

* removed unnecessary code

* updated rules.mk to remove mention of Bluetooth

* corrected edit to rules.mk

* added code for OLED menu display

* removed extraneous comments and spaces

* added bongo cat animation

* Update keyboards/custommk/evo70/rules.mk

* Update keyboards/custommk/evo70/config.h

* Modified Bongocat graphics to match original proportions

* updated info.json device version

* updated OLED splash screen display timing

* improved bongo cat tap detection and added backlight breathing to OLED menu

* various improvements to OLED, saving settings, and VIA keymap fix

* removed extraneous define

* custom encoder assignment retained upon powerup, backlight sleep upon suspend

* corrected bongo cat tap detection

* Changed splash screen and bongo cat encoder rotation to use the custom assignments

* removed _default from LAYOUT naming and changed keyboard image to be hosted from imgur

* Force smaller version of image to be used in readme
2022-07-19 03:13:16 -07:00
Nick Brassel
1cdde7ba6a Fix AVR compilation of FNV by using standard integer typenames. (#17716) 2022-07-19 05:30:01 +01:00
jack
59c7b15b4d [Keyboard] boardsource/microdox data driven (#17675) 2022-07-18 19:20:24 -07:00
QMK Bot
e8b14a52de Merge remote-tracking branch 'origin/master' into develop 2022-07-19 02:09:38 +00:00
James Young
7aea67980b Update noroadsleft userspace and keymaps (2022-07-18) (#17714)
* kbdfans/kbd75/rev1:noroadsleft - remove LAYOUT_75_ansi_wkl definition

* coseyfannitutti/discipline:noroadsleft - change KC_GESC to KC_ESC

* update Quantum keycode instances in noroadsleft keymaps

- `RESET` -> `QK_BOOT`
- `EEP_RST` -> `EE_CLR`
- `DEBUG` -> `DB_TOGG`

* create and add G_PWD macro
2022-07-18 19:09:05 -07:00
Joel Challis
c3f1ba7dd1 Remove full bootmagic config (#17702) 2022-07-19 02:28:23 +01:00
QMK Bot
eabbc04213 Merge remote-tracking branch 'origin/master' into develop 2022-07-18 19:53:40 +00:00
Sergey Vlasov
627e35b7ac Remove Nixpkgs-provided poetry from the environment (#17673)
The `poetry` package from the used Nixpkgs snapshot triggers the regex
compatibility issue in Nix >= 2.10.0 binaries for `x86_64-darwin`:

    https://www.github.com/NixOS/nix/issues/4758

Remove the `poetry` package from the Nix shell environment for now
(it is not really required to compile QMK, only to develop the Nix shell
environment itself).

In addition, all `poetry` version earlier than 1.1.14 became effectively
non-functional after a breaking change of the PyPI JSON API:

    https://www.github.com/python-poetry/poetry/pull/5973

Updating the `poetry` package is not trivial (just adding it it to
`pyproject.toml` does not work due to dependency version conflicts with
other modules), therefore removing it seems to be the easiest solution
to restore compatibility with new Nix versions while not creating any
major inconvenience for QMK users.
2022-07-18 22:52:55 +03:00
QMK Bot
0e4f953976 Merge remote-tracking branch 'origin/master' into develop 2022-07-18 12:20:54 +00:00
Jason Wihardja
c10d0fc785 Add Support for Massdrop's Stack Overflow The Key V2 (#17696)
* Default Factory Settings

* Change Keyboard Name in Readme

* Fix LED Orders

* Change Brightness Step

* Enable Lighting Layers

* Add RGB Control Mode

* Unblink Layer to Clear Stack

* Add MacOS RGB Control

* Comment Fixes
2022-07-18 13:20:19 +01:00
QMK Bot
11cfc8a0b6 Merge remote-tracking branch 'origin/master' into develop 2022-07-18 12:18:48 +00:00
Runheme
4be736c192 [Keyboard]modify ginkgo65hot (#17705)
modify ginkgo65hot
2022-07-18 13:18:08 +01:00
Joel Challis
42eff8c372 Allow dynamic keymap to compile without via.h (#17703) 2022-07-18 11:55:27 +01:00
QMK Bot
32cc8a7f43 Merge remote-tracking branch 'origin/master' into develop 2022-07-17 23:56:05 +00:00
Kyle McCreery
a444ccd27c Re-refactor Mokulua (#17125)
* allowing the kt60 file to be modified so I can do things while waiting for it to be fixed upstream

* initial commit for mokulua keyboard

* Split the board into mirrored and standard layouts.

* Prepping for PR. Silly keymap added.

* prepped for PR

* Apply suggestions from code review

* Fixing firmware from the refactor that removed the mirrored layout.

* Small tweaks using changes from refactor

* Changed the name of the layouts back to match the original to resolve conflict in info.json

* these files needed to be removed as well, they were added as a part of the refactor

* info.json moveds to be different for each build

* Another file had to be removed and the mirrored.c file changed to call mirrored.h instead of standard.h

* fixing chibios ver

* force deleting to revert

* fixing chibios shit

* Update keyboards/mechwild/mokulua/mirrored/mirrored.c

* Update keyboards/mechwild/mokulua/standard/standard.c

* Removing tabs and replacing with 4 spaces. Small style and formatting changes.
2022-07-17 16:55:32 -07:00
Stefan Kerkmann
a304a9b51e Use correct angle tune range of +/-127 on PMW33XX (#17708)
...partially reverts 580bcff4f6 as the
datasheet doesn't claim that the angle tuning as limited to +/- 30
degrees.
2022-07-17 21:08:55 +02:00
QMK Bot
4779539543 Merge remote-tracking branch 'origin/master' into develop 2022-07-17 16:50:28 +00:00
David Kühling
931c7539d2 [Keyboard] Handwired Maltron DQz11N1G contoured keyboard (#17237)
* Basic support for Maltron DQz11N1G controller replacement.

* Update keyboards/handwired/dqz11n1g/rules.mk

* Rehost images to cubeupload.com.

(They were previously hosted via github wiki)

* Apply suggestions from noroadsleft code review

* Update keyboards/handwired/dqz11n1g/dqz11n1g.h
2022-07-17 09:49:36 -07:00
QMK Bot
4f7be48758 Merge remote-tracking branch 'origin/master' into develop 2022-07-17 16:36:02 +00:00
Richard
747b33cb81 [Keyboard] Adding chocV keyboard (#15921)
* Adding chocV keyboard

* Fix checklist issues / community layout support

* Remove template cruft from readme

* Fix image url in readme

* Fix image url in readme to raw github content

* Change readme example to use default Keymap

* Remove vestigal config

* More informative keymap readme

* Config.h swapsies

* Remove deprecated features

* Conform / Modernize Rules

* Conform / Modernize Rules

* Clean up spacing

* Update keyboards/chocv/readme.md

Move build docs links to end 👍
2022-07-17 09:35:09 -07:00
QMK Bot
96c92d208f Merge remote-tracking branch 'origin/master' into develop 2022-07-17 16:25:12 +00:00
mechlovin
6025df79b3 [Keyboard] Add Zed60 PCB (#17304)
* add zed60

* update readme.md

* Delete chconf.h

* update readme.md

* Update keyboards/mechlovin/zed60/rules.mk

* Update keyboards/mechlovin/zed60/keymaps/via/keymap.c

* Update keyboards/mechlovin/zed60/keymaps/default/keymap.c

* Update keyboards/mechlovin/zed60/keymaps/default/keymap.c

* Update keyboards/mechlovin/zed60/keymaps/via/keymap.c

* Update keyboards/mechlovin/zed60/keymaps/via/keymap.c

* Update keyboards/mechlovin/zed60/keymaps/via/keymap.c

* Update keyboards/mechlovin/zed60/config.h

* Update keyboards/mechlovin/zed60/config.h

* Update keyboards/mechlovin/zed60/info.json

* Update keyboards/mechlovin/zed60/readme.md

* Update keyboards/mechlovin/zed60/info.json

* Update keyboards/mechlovin/zed60/zed60.h
2022-07-17 09:24:28 -07:00
QMK Bot
a1fb1405e4 Merge remote-tracking branch 'origin/master' into develop 2022-07-17 12:03:31 +00:00
Joel Challis
37cd5ad810 Remove full bootmagic config (#17701) 2022-07-17 13:02:56 +01:00
QMK Bot
859c1a6fc9 Merge remote-tracking branch 'origin/master' into develop 2022-07-17 07:18:04 +00:00
Jens-Petter Sandvik
4e5cc3c2ba Planck swap hand matrix for rev6, fixing issue #17388 (#17389)
* Add correct hand_swap_config matrix for planck_rev6 and planck_rev6_drop

* Make sure indentations are consistent

* Make the rev6 hand_swap_config matrix the default, also correct for ez.

* Move hand_swap_config matrix from planck.c to revision subdirectories
2022-07-17 00:17:22 -07:00
QMK Bot
54be228882 Merge remote-tracking branch 'origin/master' into develop 2022-07-17 00:32:15 +00:00
Teimor Epstein
28f9def219 [Keymap] teimor keymap for Keychron Q1 (#16396)
* teimor keymap

* quickfix and cleanup

* update readme

* quickfix and cleanup before pr

* clang

* clean layout

* add reset

* pr fix

* fix pr

* Rename README.md to readme.md
2022-07-16 17:31:21 -07:00
QMK Bot
06e93a8f5c Merge remote-tracking branch 'origin/master' into develop 2022-07-16 19:48:33 +00:00
Brian
05f6838f37 [Keymap] Added Layout Keymaps for BriianPowell (#17310)
* Keymaps for Gentleman65 and Discipline

* Apply suggestions from code review

* Update keyboards/coseyfannitutti/discipline/keymaps/briianpowell/keymap.c

* More custom configuration for Gentleman65

* Completed Gentleman65 Layout (for now)
2022-07-16 12:47:28 -07:00
QMK Bot
e50b1d33f3 Merge remote-tracking branch 'origin/master' into develop 2022-07-16 19:39:00 +00:00
HorrorTroll
92c3e6305b [Keyboard] Gopolar GG86 (#15425)
* Added keyboard GG86

* Rebased, resolved issue and updated code

* Delete 1000Hz on config

* Resolved fix

* Another resolved fix

* Last resolved fix

* Fixed LED position
2022-07-16 12:38:22 -07:00
QMK Bot
de545b8e21 Merge remote-tracking branch 'origin/master' into develop 2022-07-16 19:04:10 +00:00
ymlmkb
4d443d921b [Keyboard] KeebMonkey KBMG68 (#15909)
* added KeebMonkey KBMG68.

* Update keyboards/keebmonkey/kbmg68/config.h

* changes requested by fauxpark .

* Apply suggestions from code review

changes suggested by fauxpark

* Update readme.md

changes requested by fauxpark

* Apply suggestions from code review

changes requested by noroadsleft.

* Apply suggestions from code review per fauxpark
2022-07-16 12:03:39 -07:00
QMK Bot
9fa14655df Merge remote-tracking branch 'origin/master' into develop 2022-07-16 18:39:27 +00:00
bri
847cca541c Add .orig to .gitignore (#17626) 2022-07-17 04:38:56 +10:00
Stefan Kerkmann
580bcff4f6 Use correct angle tune range of +/-30 on PMW33XX (#17693)
Co-authored-by: Daniel Kao <daniel.m.kao@gmail.com>

Co-authored-by: Daniel Kao <daniel.m.kao@gmail.com>
2022-07-16 11:33:18 +02:00
QMK Bot
f5e16f94d5 Merge remote-tracking branch 'origin/master' into develop 2022-07-16 07:29:50 +00:00
Allen Choi
9cdccb12d1 [Keymap] Crkbd/thunderbird2086 (#16973)
* crkbd:thunderbird2086

* readme

* after code review

* coding format

* minor change

* changed file name

* correct image

* updated readme

* using query to get rgb status

* minor update
2022-07-16 00:29:09 -07:00
QMK Bot
c8ce87e044 Merge remote-tracking branch 'origin/master' into develop 2022-07-16 06:49:24 +00:00
James Young
66983f090c Suavity Ehan Refactor (#17694)
* info.json: apply friendly formatting, phase 1

* info.json: fix macro reference and layout

* info.json: apply friendly formatting, phase 2

Add key labels.

* refactor keymaps and layout macro

- apply four-space indent
- apply grid alignment to keycodes, matrix position identifiers, and matrix

* add LAYOUT_all

* ehan.h: add matrix diagram

* rename LAYOUT_ansi_default to LAYOUT_ansi_split_bs_rshift_lspace

* ehan.h: correct K3E position in LAYOUT_ansi_split_bs_rshift_lspace

Move location K3E to actually be on Column 14 (E); was previously on Column 13 (D) in source..

* add LAYOUT_iso_split_bs_rshift_lspace

Includes reference keymap.
2022-07-15 23:48:35 -07:00
QMK Bot
abdca8847d Merge remote-tracking branch 'origin/master' into develop 2022-07-16 05:21:50 +00:00
Wilfrid Li
1f93485aef feat(keebwerk): added VIA support keymap for keebwerk nano slider (#16761)
* feat(keebwerk): added VIA support keymap for keebwerk nano slider

Added VIA support for keebwerk nano slider, VIA json is keebwerk_nano_via.json
Fixed midi2vol keymap where comma symbol is missing from enum "custom_layers"

* feat(keebwerk): removed VIA json as requested

* Update keyboards/keebwerk/nano_slider/keymaps/via/keymap.c

* Update keyboards/keebwerk/nano_slider/keymaps/via/keymap.c

* Fix(PR): removed file as requested
2022-07-15 22:21:15 -07:00
QMK Bot
c84f68d4c8 Merge remote-tracking branch 'origin/master' into develop 2022-07-16 05:16:47 +00:00
James Young
303992da70 FJLabs Solanis Refactor (#17686)
* solanis.h: add matrix diagram

* refactor keymaps: apply grid alignment

* refactor LAYOUT_all macro

Moves the matrix position identifier for the right half of Split Backspace to the number row.
2022-07-15 22:16:14 -07:00
QMK Bot
82f806b1ab Merge remote-tracking branch 'origin/master' into develop 2022-07-16 01:02:25 +00:00
projectcain
f5333e9136 [Keyboard] add ProjectCain Relic (#15577)
* Adding relic keyboard

* Update keyboards/projectcain/relic/relic.c

* Update keyboards/projectcain/relic/relic.c

* Update keyboards/projectcain/relic/rules.mk

* Update keyboards/projectcain/relic/rules.mk

* Update keyboards/projectcain/relic/rules.mk

* Update config.h

* Update config.h

* Update keyboards/projectcain/relic/rules.mk

* Update keyboards/projectcain/relic/readme.md

* Update keyboards/projectcain/relic/info.json

* Update keyboards/projectcain/relic/config.h

* Update keyboards/projectcain/relic/config.h
2022-07-15 18:01:52 -07:00
QMK Bot
38cd3684e1 Merge remote-tracking branch 'origin/master' into develop 2022-07-15 21:07:17 +00:00
Henry Lum
ba4ba66b2f [Keyboard] eHan Keyboard (#15861)
* Compiled Suavity QMK Directory

* updated info.json's name from 'LAYOUT_default' to 'LAYOUT_default_split'

* updated rules.mk to reflect new layout name of each keymap

* Updated hanjie.h to reflect physical matrix of PCB

* switched info.json key matrix from split backspace to 2U backspace to better reflect electrical matrix

* updated keymap.c key matrix to reflect PCB electrical matrix

* updated keymap.c key matrix t oreflect PCB electrical matrix

* removed split left shift from physical matrix for default_split layout

* removed split left shift physical & electrical default_split layout

* removed split left shift from physical matrix for default_split layout

* removed split left shift from physical matrix for default_split layout

* updated qmk and via keymap.c and hanjie.h files to reflect pcb electrical matrix

* changed diode direction from row2col to col2row

* fixed false keycode triggers

* updated via keymaps

* added 's'

* added ehan branch for development

* updated readme.md

* updated ehan.h

* updated readme.md

* updated ehan.h layout

* added keymap.c and updated ehan.h

* progress

* compiled qmk

* updated matrix column and row pin out

* updated QMK default ansi keymap

* added VIA ansi_default keymaps

* corrected col 15's pin out to be pin B9, not C13

* Update keyboards/suavity/ehan/config.h

* Update keyboards/suavity/ehan/info.json

* Update keyboards/suavity/ehan/rules.mk

* Update keyboards/suavity/hanjie/rules.mk

* Update keyboards/suavity/hanjie/rules.mk

* Update keyboards/suavity/hanjie/keymaps/via/rules.mk

* Update keyboards/suavity/ehan/rules.mk

* changed readme.md's picturefrom html to markdown

* updated traces & diode placement

* Apply suggestions from code review

Remove trailing backslashes from keymaps (per fauxpark)

* Apply suggestions from code review

Remove `BOOTMAGIC_ENABLE = lite` from `keyboards/suavity/ehan/keymaps/via/rules.mk`

(per fauxpark)

* Apply suggestions from code review

Update formatting of `keyboards/suavity/ehan/rules.mk`

(per fauxpark)

* Update keyboards/suavity/ehan/readme.md

Fix image URL

* Update keyboards/suavity/ehan/config.h

Remove trailing comma in MATRIX_COL_PINS definition
2022-07-15 14:06:19 -07:00
QMK Bot
ce2dbe17b5 Merge remote-tracking branch 'origin/master' into develop 2022-07-15 08:57:19 +00:00
Evelien Dekkers
09b0d3e0ed Move ins, home and pgup keys to the left (#17690) 2022-07-15 09:56:06 +01:00
QMK Bot
c79818e703 Merge remote-tracking branch 'origin/master' into develop 2022-07-15 06:12:57 +00:00
Elliot Patros
0ececbcdb7 [Keymap] emp keymap for keebio/iris (#16858)
* added new layout for keebio/iris

* Update keyboards/keebio/iris/keymaps/emp/config.h

* Update keyboards/keebio/iris/keymaps/emp/keymap.c

Replace #defines with enum

* Update keyboards/keebio/iris/keymaps/emp/keymap.c

Made requested changes about formatting and the license.

* Update config.h

Cleaned up formatting

* Update keyboards/keebio/iris/keymaps/emp/keymap.c

Small changes to improve readability:
* changed whitespace in license
* added more whitespace around if/else blocks
* fixed bracket style in places
2022-07-14 23:11:44 -07:00
QMK Bot
64d2097a27 Merge remote-tracking branch 'origin/master' into develop 2022-07-15 02:58:03 +00:00
Joel Challis
3c6765b21c Ignore kbfirmware exports (#17687) 2022-07-15 03:57:34 +01:00
QMK Bot
f54a55dcfe Merge remote-tracking branch 'origin/master' into develop 2022-07-15 02:53:09 +00:00
Sam
16c91e0cf2 [Keyboard] Added TutelPad keyboard (#16975)
* TutelPad firmware v1.0

* Added VIA compatibility

* Update keyboards/0xcb/tutelpad/config.h

* Update keyboards/0xcb/tutelpad/keymaps/via/keymap.c

* Update keyboards/0xcb/tutelpad/keymaps/via/keymap.c

* Update keyboards/0xcb/tutelpad/keymaps/via/keymap.c

* Add new OLED image, implement suggested fixes

* Update keyboards/0xcb/tutelpad/rules.mk

* Update keyboards/0xcb/tutelpad/rules.mk
2022-07-14 19:52:39 -07:00
QMK Bot
15c09335e9 Merge remote-tracking branch 'origin/master' into develop 2022-07-15 02:45:47 +00:00
Will Winder
807620fa3c [Keyboard] Add Chocofly v1 (#17289)
* [Keyboard] Add Chocofly v1

* PR Feedback

* Small change to keymap.

* Replace KC__VOLUP and KC__VOLDOWN with single underscore version.

* Apply suggestions from code review

* Required for my PC

* Required for my PC
2022-07-14 19:45:08 -07:00
QMK Bot
7501523e1f Merge remote-tracking branch 'origin/master' into develop 2022-07-14 21:52:10 +00:00
James Young
be56817743 KB16-01: correct QMK Configurator key sequence (#17670) 2022-07-14 14:51:25 -07:00
QMK Bot
d547c0bea7 Merge remote-tracking branch 'origin/master' into develop 2022-07-14 21:32:20 +00:00
James Young
2d7de91888 Nayeon Community Layout support (#17665)
* Nayeon Community Layout support

- macro `LAYOUT_ansi` renamed to  `LAYOUT_tkl_f13_ansi_tsangan`
- macro `LAYOUT_iso` renamed to  `LAYOUT_tkl_f13_iso_tsangan`
- Community Layout support enabled in `rules.mk`

* add LAYOUT_tkl_f13_ansi_tsangan_split_bs_rshift

* add LAYOUT_tkl_f13_iso_tsangan_split_bs_rshift

* info.json: update maintainer field

Field is meant to reference the GitHub username of the maintainer.
2022-07-14 14:31:37 -07:00
QMK Bot
8ee42cd6c4 Merge remote-tracking branch 'origin/master' into develop 2022-07-14 13:09:37 +00:00
Drashna Jaelre
67f9777b8f [Keyboard] Fix Tractyl Manuform 4x6 json (#17681) 2022-07-14 06:08:54 -07:00
Albert Y
2f73e65837 Add LED limit call (#17679) 2022-07-14 12:37:47 +01:00
Albert Y
1862ac5454 Fix the use of LED limits (#17678) 2022-07-14 12:36:51 +01:00
QMK Bot
da4689d6b5 Merge remote-tracking branch 'origin/master' into develop 2022-07-14 11:23:09 +00:00
Albert Y
300dab7962 [Code] Add solid reactive gradient mode (#17228) 2022-07-14 12:22:53 +01:00
Albert Y
2efad277ee [Keyboard] Readme file correction (#17674) 2022-07-14 12:22:31 +01:00
Stefan Kerkmann
3c58f98929 [Core] PMW33XX drivers overhaul (#17613)
* PMW33XX drivers overhaul

This combines the PMW3389 and PM3360 drivers as they only differ in the
firmware blobs and CPI get and set functions. The following changes have
been made:

* PMW3389 now gets the same multi-sensor feature that is already available on the
  PMW3360.

* Introduced a shared pmw33xx_report_t struct is now directly readable via SPI
  transactions instead of individual byte-sized reads, saving multiple
  copies and bitshift operations.

* pmw33(89/60)_get_report functions had unreachable branches in their motion
  detection logic these have been simplied as much as possible.

* The fast firmware upload option has been removed as this becomes obsolete by
  the newly introduced polled waiting functions for ChibiOS polled waiting

* PMW33(60/89)_SPI_LSBFIRST and PMW33(60/89)_SPI_MODE config options
  have been removed as they don't need to be configurable.

* All PMW3389 and PMW3360 defines have been unified to a PMW33XX prefix
  to reduce code duplication and make the defines interchangeable

* Adjust keyboards to PMW33XX naming scheme
2022-07-14 11:50:00 +02:00
QMK Bot
82685fc2ac Merge remote-tracking branch 'origin/master' into develop 2022-07-14 06:35:34 +00:00
James Young
928be32c83 KPrepublic BM80v2 ISO Refactor (#17660)
* bm80v2_iso.h: convert tabs to spaces

* bm80v2_iso.h: use ___ for KC_NO

* bm80v2_iso.h: use QMK 3-character notation

* refactor macro for tkl_iso Community Layout compatibility

- move the matrix position identifier for Enter to the home row

* info.json: correct layout data

* rules.mk: tidy-up formatting

* readme.md: tidy-up formatting

* update maintainer; re-assign copyright

* assign ISO-appropriate keycodes in keymaps
2022-07-13 23:34:51 -07:00
QMK Bot
9b04e9be04 Merge remote-tracking branch 'origin/master' into develop 2022-07-14 06:27:11 +00:00
Kyle McCreery
acc11f4941 [Keyboard] MechWild BB Steno (#17163)
* allowing the kt60 file to be modified so I can do things while waiting for it to be fixed upstream

* Initial commit

* testing modes

* working on puckbuddy firmware. This is all working for now but need to clean it up and personalize it.

* needs to be updated from vial build

* prepping for PR

* added rgb mode cycling to fn1 since it isn't on the encoder for these maps

* shipping firmware built. Need to clean up readme and info.json layout

* removing puckbuddy files from this branch

* readme done, prepping for PR

* info.json updated prepping for PR

* Restore cirque driver that was modified from puckbuddy testing on this branch

* applying changes from review

* Update keyboards/mechwild/bbs/bbs.c

* Fixed info.json

* Apply suggestions from code review
2022-07-13 23:26:13 -07:00
QMK Bot
633df1f365 Merge remote-tracking branch 'origin/master' into develop 2022-07-13 22:25:18 +00:00
wangfuco
99e9e1b8e7 [Keyboard] Modelm101 teensy2 (#16805)
* Add modelm101_teensy2 files from modelm101

* Change info.json

* Update README.md

* Update pin def

* Fix file name

* Update readme.md

* Delete config.h

* Apply suggestions from code review

* Update keyboards/converter/modelm101_teensy2/config.h

* Delete keyboards/converter/modelm101_teensy2/keymaps/iw0rm3r directory

* Delete .noci
2022-07-13 15:24:42 -07:00
QMK Bot
ce2ac433d9 Merge remote-tracking branch 'origin/master' into develop 2022-07-13 20:58:40 +00:00
James Young
4ef0c8230c Ducky One 2 SF touch-up (#17672)
* info.json: correct JSON syntax error

* info.json: correct key sizes

* update readme files

Moves nearly all of the information about this keyboard to the 1967st version's readme, because this readme is exposed in QMK Configurator.

Also updates the readme to align more closely with QMK's keyboard readme template.

* info.json: update metadata

Updates the keyboard name and maintainer fields.
2022-07-13 21:57:55 +01:00
QMK Bot
2cdaa639ee Merge remote-tracking branch 'origin/master' into develop 2022-07-13 19:40:36 +00:00
James Young
f7510ca202 Gentoo & Gentoo Hotswap: correct Configurator key sequence errors (#17668)
* Gentoo info.json: apply friendly formatting

* Gentoo info.json: correct key sequence error

* Gentoo Hotswap info.json: apply friendly formatting

* Gentoo Hotswap info.json: correct key sequence error
2022-07-13 12:40:03 -07:00
James Young
6eac98286a Swift65 Hotswap: correct key sizes (#17666)
Corrects the key sizes on the bottom row (1.5-1-1.5-7 instead of 1.25-1.25-1.25-7.25).
2022-07-13 12:39:39 -07:00
Nick Brassel
dc70ba612a Post-bootloader EFL/SPI fixes. (#17661)
* Fixup read address for EFL driver.

* Fixup sequencing of SPI.

* Lock during init of EFL backing store.
2022-07-14 00:41:08 +10:00
QMK Bot
2a0d490eb3 Merge remote-tracking branch 'origin/master' into develop 2022-07-13 08:12:12 +00:00
Drashna Jaelre
d98f309429 [Keyboard] Fix compilation issue for runes/skoldjr (#17659) 2022-07-13 01:11:24 -07:00
Drashna Jaelre
09e4001bba [Bug] Fix compile issue with LED Matrix (#17658) 2022-07-13 01:10:51 -07:00
QMK Bot
4b108f7689 Merge remote-tracking branch 'origin/master' into develop 2022-07-13 08:05:22 +00:00
Yizhen Liu
acf114315e [Keyboard] Kprepublic bm80v2 iso issue resolved (#17657)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-07-13 01:04:42 -07:00
Drashna Jaelre
b21a52c824 Fix compilation issue with Cirque Guestures file (#17656) 2022-07-13 09:01:30 +02:00
QMK Bot
2468be889b Merge remote-tracking branch 'origin/master' into develop 2022-07-13 05:35:44 +00:00
jack
2a3cd98fc6 boardsource/technik_o data driven (#17635) 2022-07-13 06:35:06 +01:00
QMK Bot
bc385435a7 Merge remote-tracking branch 'origin/master' into develop 2022-07-13 05:33:00 +00:00
jack
320219d5d8 boardsource/5x12 data driven (#17630) 2022-07-13 06:32:22 +01:00
QMK Bot
38c8fc9baf Merge remote-tracking branch 'origin/master' into develop 2022-07-13 05:32:19 +00:00
jack
63154631ab boardsource/4x12 data driven (#17629) 2022-07-13 06:31:43 +01:00
QMK Bot
0052b03ee0 Merge remote-tracking branch 'origin/master' into develop 2022-07-13 05:25:36 +00:00
James Young
4f4e72e44c ID75 v2: update info.json (#17653) 2022-07-12 22:25:04 -07:00
jack
98312417b5 [Keyboard] boardsource/lulu data driven (#17638) 2022-07-12 22:20:38 -07:00
QMK Bot
068d5688d8 Merge remote-tracking branch 'origin/master' into develop 2022-07-13 05:19:48 +00:00
jack
2271b28386 [Keyboard] boardsource/the_mark data driven (#17637) 2022-07-12 22:19:36 -07:00
QMK Bot
590c2342fc Merge remote-tracking branch 'origin/master' into develop 2022-07-13 05:19:25 +00:00
jack
f80bb4a517 [Keyboard] boardsource/technik_s data driven (#17636) 2022-07-12 22:19:17 -07:00
jack
b99ccd4f06 [Keyboard] boardsource/beiwagon data driven (#17631) 2022-07-12 22:18:53 -07:00
Drashna Jaelre
1dfe2bb49a Update LED/RGB Matrix flag function behavior (#17651) 2022-07-12 22:18:02 -07:00
QMK Bot
34fec2c07d Merge remote-tracking branch 'origin/master' into develop 2022-07-13 04:58:34 +00:00
Vicktor Hutama
5a126e1a74 [Keyboard] Add Runes Skjoldr (#17305)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-07-12 21:58:31 -07:00
jack
a991d65e87 [Keyboard] boardsource/3x4 data driven (#17628)
* initial

* change to development board

* replaced KC_TRNS & use rules.mk template
2022-07-12 21:58:04 -07:00
QMK Bot
018fad6b95 Merge remote-tracking branch 'origin/master' into develop 2022-07-13 04:53:38 +00:00
Zach Rice
019bfc4159 [Keymap] Add RAOEUS keymap for the XD75 (#17456)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-07-12 21:52:52 -07:00
jack
8a1ca7f6b8 [Keyboard] boardsource/holiday/spooky data driven (#17632) 2022-07-12 21:47:32 -07:00
Nick Brassel
dfff040433 Allow MCU-specific overrides for SPI flags. (#17650) 2022-07-13 14:42:24 +10:00
QMK Bot
f9724dfa67 Merge remote-tracking branch 'origin/master' into develop 2022-07-13 04:37:54 +00:00
James Young
e68de95214 KBDfans KBD67 rev2 Layout Patch (#17649) 2022-07-12 21:37:23 -07:00
QMK Bot
27dd4dc91e Merge remote-tracking branch 'origin/master' into develop 2022-07-13 04:31:57 +00:00
Cipulot
5bc81d3a63 [Keyboard] Add Kallos keyboard (#17461)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-07-12 21:31:17 -07:00
Daniel Kao
5db705d054 Cirque trackpad features: circular scroll, inertial cursor (#17482) 2022-07-12 21:17:40 -07:00
QMK Bot
904ec0ce78 Merge remote-tracking branch 'origin/master' into develop 2022-07-13 04:11:08 +00:00
Yizhen Liu
7a090bb3df [Keyboard] Kprepublic bm80v2 iso revised (#17571)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-07-12 21:10:31 -07:00
QMK Bot
9d6a94cfb5 Merge remote-tracking branch 'origin/master' into develop 2022-07-13 04:10:07 +00:00
AnthonyNguyen168
257fc042df [Keyboard] Update layout for MechBrewery series (#17570) 2022-07-12 21:09:37 -07:00
James Young
36c2575658 Grammar fixes for docs/feature_converters.md (#17652) 2022-07-13 04:58:16 +01:00
QMK Bot
6bb2ed68a8 Merge remote-tracking branch 'origin/master' into develop 2022-07-13 03:51:07 +00:00
Drashna Jaelre
26954bbc28 [Docs] Add Encoder requirements to PR Checklist doc (#17634)
Co-authored-by: Nick Brassel <nick@tzarc.org>
2022-07-12 20:50:26 -07:00
zvecr
82f0263e41 Merge remote-tracking branch 'origin/master' into develop 2022-07-13 01:19:58 +01:00
Joel Challis
2a3dd95229 Add basic secure docs (#17577) 2022-07-13 00:06:19 +01:00
jack
ffb34fc082 Include stdint.h in avr/i2c_master.h (#17639) 2022-07-12 21:55:19 +02:00
Stefan Kerkmann
45ffe42f1a [Fix] Make ChibiOS _wait.h independent of quantum.h (#17645) 2022-07-12 21:54:33 +02:00
GloriousThrall
bbd6ea977c GMMK 2 WBG7 MCU compatibility (#16436)
* GMMK V2 QMK Compatibility

* fix problems

* Update keyboards/gmmk/gmmk2/config.h

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

* Update keyboards/gmmk/gmmk2/config.h

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

* Fix a minor problem

* Optimize the code

* Update config.h

* Update

* Update config.h

* Update keyboards/gmmk/gmmk2/p96/ansi/keymaps/via/config.h

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

* Update config.h

* Update keyboards/gmmk/gmmk2/p96/iso/keymaps/via/config.h

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

* Update config.h

* Update keyboards/gmmk/gmmk2/p65/ansi/rules.mk

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

* Update keyboards/gmmk/gmmk2/p96/ansi/keymaps/default/keymap.c

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

* Update keyboards/gmmk/gmmk2/p96/ansi/keymaps/via/keymap.c

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

* Update keyboards/gmmk/gmmk2/p96/ansi/rules.mk

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

* Update keyboards/gmmk/gmmk2/p96/iso/rules.mk

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

* Update keyboards/gmmk/gmmk2/p65/iso/rules.mk

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

* Update config.h

* Update config.h

* Update config.h

* Modify device pid

* Add gmmk2_p96 keyboard.

* Add gmmk2_p96 keyboard.

* Update led matrix.

* Update led matrix.

* Delete eeprom_flash.c

* Update keyboards/gmmk/gmmk2/p96/ansi/rules.mk

Co-authored-by: Nick Brassel <nick@tzarc.org>

* Update from qmk develop branch

* Increased compatibility with wear_leveling.

* Update config.h

Co-authored-by: Joy <chang.li@westberrytech.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Nick Brassel <nick@tzarc.org>
2022-07-12 17:30:54 +10:00
QMK Bot
a768ec265d Merge remote-tracking branch 'origin/master' into develop 2022-07-11 21:46:29 +00:00
Joel Challis
2714c70bd7 Fix layout macro for nightly_boards/paraluman (#17633) 2022-07-11 22:45:56 +01:00
QMK Bot
b78a7e42b1 Merge remote-tracking branch 'origin/master' into develop 2022-07-11 21:15:45 +00:00
Danny
9a41a303cc [Keyboard] Add Quefrency Rev. 5 (#17503) 2022-07-11 14:14:55 -07:00
QMK Bot
85cdde1541 Merge remote-tracking branch 'origin/master' into develop 2022-07-11 20:59:02 +00:00
Felix Jen
7c3b6c4bc4 [Keyboard] Add Swordfish keyboard (#17567) 2022-07-11 13:57:20 -07:00
FREEWING.JP
61df87ae2c Added Delay time dynamic keymap's macro feature (#16810)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-07-11 12:59:16 -07:00
QMK Bot
52e9ed75e8 Merge remote-tracking branch 'origin/master' into develop 2022-07-11 19:47:42 +00:00
Alex Băluț
2bb0550707 [Keyboard] add kinesis/kintlc (#17301) 2022-07-11 12:46:51 -07:00
QMK Bot
51b7828540 Merge remote-tracking branch 'origin/master' into develop 2022-07-11 18:54:26 +00:00
balloondogcaps
61a5059fc5 [Keyboard] TR90PM (#17060)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-07-11 11:53:51 -07:00
balloondogcaps
6663dd7288 [Keyboard] Add TR90 (#16838)
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-07-11 11:53:25 -07:00
Stefan Kerkmann
3f5dc47296 [Core] Use polled waiting on ChibiOS platforms that support it (#17607)
* Use polled waiting on platforms that support it

Due to context switching overhead waiting a very short amount of time on
a sleeping thread is often not accurate and in fact not usable for timing
critical usage i.e. in a driver. Thus we use polled waiting for ranges
in the us range on platforms that support it instead. The fallback is
the thread sleeping mechanism.

This includes:

* ARM platforms with CYCCNT register (ARMv7, ARMv8) this is
  incremented at CPU clock frequency
* GD32VF103 RISC-V port with CSR_MCYCLE register this is incremented at
  CPU clock frequency
* RP2040 ARMv6 port which uses the integrated timer peripheral which is
  incremented with a fixed 1MHz frequency

* Use wait_us() instead of chSysPolledDelayX

...as it is powered by busy waiting now.

* Add chibios waiting methods test bench
2022-07-11 15:17:05 +02:00
QMK Bot
57021d6358 Merge remote-tracking branch 'origin/master' into develop 2022-07-11 12:58:12 +00:00
Evelien Dekkers
61ce15f202 [Keyboard] Fin pad (#17523)
Co-authored-by: Joel Challis <git@zvecr.com>
2022-07-11 05:57:39 -07:00
QMK Bot
5925ea3478 Merge remote-tracking branch 'origin/master' into develop 2022-07-11 12:55:42 +00:00
Naphtaline
c8f969a3ce [Keyboard] kbdfans kbd67 rev 2 : add new LAYOUT_65_iso_split_bs (#16922)
* [Layout/Keymap] kbdfans kbd67 rev2 : add new LAYOUT_65_iso_split_bs and naphaline keymap as a working example

* Update keyboards/kbdfans/kbd67/rev2/keymaps/naphtaline/keymap.c

I do trust the reviewer, here goes the change :)

Co-authored-by: Ryan <fauxpark@gmail.com>

* Remove QMK custom keycodes 1/2

Co-authored-by: Nick Brassel <nick@tzarc.org>

* Remove QMK custom keycodes 2/2

Co-authored-by: Nick Brassel <nick@tzarc.org>

Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Nick Brassel <nick@tzarc.org>
2022-07-11 05:55:01 -07:00
QMK Bot
5e750cf039 Merge remote-tracking branch 'origin/master' into develop 2022-07-11 12:52:03 +00:00
James Young
2dab029bcf Peej Rosaline Refactor (#17564) 2022-07-11 05:51:29 -07:00
Aidan Smith
7a73f9a6b3 [Keyboard] Add Fine!40 PCB Support (#17426)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-07-11 05:10:47 -07:00
QMK Bot
5e347f42a6 Merge remote-tracking branch 'origin/master' into develop 2022-07-11 11:31:19 +00:00
Joel Challis
5389f088b1 splitkb/kyria - Resolve CONVERT_TO_PROTON_C warnings (#17617) 2022-07-11 04:30:45 -07:00
QMK Bot
2e567150ea Merge remote-tracking branch 'origin/master' into develop 2022-07-11 11:23:48 +00:00
GG
16b837b35b [Keyboard] Add Promise87 (#17525) 2022-07-11 04:23:13 -07:00
Stefan Kerkmann
0348071810 Stabilize Half-duplex PIO split comms (#17612) 2022-07-11 04:05:04 -07:00
Joel Challis
35d78aa8a4 More DD encoder fixes (#17615) 2022-07-11 10:51:39 +01:00
QMK Bot
0bee7cbebe Merge remote-tracking branch 'origin/master' into develop 2022-07-10 22:45:26 +00:00
Joel Challis
a5eeee4ded Fix infinite recursion in checkerboards/quark_plus (#17616) 2022-07-10 23:44:56 +01:00
QMK Bot
a15e44cfb3 Merge remote-tracking branch 'origin/master' into develop 2022-07-09 17:27:37 +00:00
Joel Challis
2106acc24a merge/um80 - Fix WPM issues in configurator builds (#17608) 2022-07-09 18:26:48 +01:00
QMK Bot
39e1e27ea9 Merge remote-tracking branch 'origin/master' into develop 2022-07-09 12:33:33 +00:00
Nick Brassel
561c5e1d7a Add line to multibuild output log showing the actual build target. (#17606) 2022-07-09 22:32:43 +10:00
jpe230
13b2b93fb0 Add Adafruit Macropad (#17512) 2022-07-08 23:33:03 +01:00
QMK Bot
30f2556ae9 Merge remote-tracking branch 'origin/master' into develop 2022-07-08 21:50:28 +00:00
Dasky
06310e81e9 Allow only col or row pins for *_right extraction. (#17590) 2022-07-08 22:49:55 +01:00
Joel Challis
345e19f691 Add converter docs (#17593) 2022-07-08 22:49:16 +01:00
Joel Challis
81d317aa87 Fix rgbkb/sol/rev2 build issues (#17601) 2022-07-08 22:48:48 +01:00
QMK Bot
b0c3d61c17 Merge remote-tracking branch 'origin/master' into develop 2022-07-07 12:43:20 +00:00
Bartosz Nowak
e724801d33 [Keyboard] Clean up dactyl manuform unused files (#15890) 2022-07-07 05:42:28 -07:00
Stefan Kerkmann
643f6367a1 [Fix] Patches after printf library update (#17584)
* Add missing '(' to print_bin_reverse32 declaration
* Fix insufficient character buffers on satisfaction75
* Remove \0 character in format string and use corrected offset math
  instead on rocketboard 16
* Replace snprintf_ with snprintf for djinn
* Explicitly ignore format checks for tracktyl manuform that uses %b
  specifier
* Print properly escaped version string in command.c, as PRODUCT or
  other defines can contain constructs like 'Vendor keyboard 66%' which
  will be interpreted as a format specifier
2022-07-07 14:14:09 +02:00
Stefan Kerkmann
8224f62806 Make debounce() signal changes in the cooked matrix as return value (#17554) 2022-07-07 10:00:40 +02:00
Albert Y
cca5d35321 Update PM2040 I2C pins (#17578) 2022-07-07 09:33:11 +02:00
Stefan Kerkmann
d9bb189e25 [Core] Update mpaland/printf to eyalroz/printf fork (#16163)
mpaland printf implementation was abandoned in ~2019 and the fork by
eyalroz is now regarded to be the goto replacement of it. So this commit
incoporates the changes needed to use this fork in QMK.

Note that pointer ptrdiff_t is always supported since commit
51c90f93a97fdaef895783ecbe24569be0db7cb8
2022-07-07 09:27:50 +02:00
QMK Bot
8f086faf8a Merge remote-tracking branch 'origin/master' into develop 2022-07-07 05:44:58 +00:00
Zykrah
0d30565bb7 Fix/waka60 audio (#17561) 2022-07-06 22:44:21 -07:00
Joel Challis
744af003be Add kb2040 and sparkfun rp2040 converters (#17514) 2022-07-06 19:27:15 +01:00
Nick Brassel
29a2bac469 Fixup SPI. (#17534) 2022-07-05 22:41:35 +02:00
Nick Brassel
0e5d67145a Allow for keymaps array to be implemented in a file other than $(KEYMAP_C) (#17559) 2022-07-05 08:58:35 +10:00
QMK Bot
5cad58dfa9 Merge remote-tracking branch 'origin/master' into develop 2022-07-04 20:49:23 +00:00
James Young
75bc9e6496 TKL Community Layout Additions (#17563) 2022-07-04 13:48:44 -07:00
QMK Bot
d37db0c50c Merge remote-tracking branch 'origin/master' into develop 2022-07-03 23:41:36 +00:00
Joel Challis
8fa7b62011 Attempt to discourage manual MSYS install for new users (#17556) 2022-07-04 00:41:00 +01:00
QMK Bot
e68205db1b Merge remote-tracking branch 'origin/master' into develop 2022-07-03 21:25:42 +00:00
James Young
9a157a3a99 KP Republic BM60HSRGB_EC QMK Configurator and readme touch-up (#17541) 2022-07-03 14:25:29 -07:00
stanrc85
b7fee11e34 [Userspace] Add support for additional Mechlovin Adelais PCB version to my userspace (#17547) 2022-07-03 14:25:09 -07:00
QMK Bot
63474e2c17 Merge remote-tracking branch 'origin/master' into develop 2022-07-03 18:08:32 +00:00
李董睿煊
168a631720 Add support for MacroCat Keyboard (#17480) 2022-07-03 19:07:31 +01:00
QMK Bot
7d89dfe2dc Merge remote-tracking branch 'origin/master' into develop 2022-07-03 04:12:32 +00:00
James Young
d87d537b50 Remove dead space from Pierce QMK Configurator layout data (#17551) 2022-07-03 14:12:01 +10:00
QMK Bot
6154c184a8 Merge remote-tracking branch 'origin/master' into develop 2022-07-03 04:11:21 +00:00
jack
665feccca1 Fixup bounce/75 (#17548) 2022-07-03 14:10:51 +10:00
QMK Bot
e8c46fab96 Merge remote-tracking branch 'origin/master' into develop 2022-07-03 02:56:16 +00:00
Drashna Jaelre
1c43410e26 [Keymap] Updates to drashna Keymaps and Userspace (#17543) 2022-07-02 19:55:46 -07:00
QMK Bot
03909b8a3f Merge remote-tracking branch 'origin/master' into develop 2022-07-02 23:54:45 +00:00
duoshock
a3119385a4 Add keyboard 'UM-80' (#17035) 2022-07-03 00:54:15 +01:00
QMK Bot
2d5047a79c Merge remote-tracking branch 'origin/master' into develop 2022-07-02 23:43:38 +00:00
jack
c5215d4a06 initial (#17545) 2022-07-03 00:43:29 +01:00
moyi4681
4ba5102a50 add bounce keyboard (#17030) 2022-07-03 00:43:07 +01:00
QMK Bot
c8a78b1f04 Merge remote-tracking branch 'origin/master' into develop 2022-07-02 23:38:39 +00:00
TW59420
f2d4424bb7 Add alicekk support (#17027) 2022-07-03 00:38:02 +01:00
nirim000
fb40abe2f2 Pca9505/6 driver (#17333) 2022-07-03 00:37:02 +01:00
QMK Bot
ce29cb0f10 Merge remote-tracking branch 'origin/master' into develop 2022-07-02 23:15:32 +00:00
br
fbf3cbcd5c Added PLOOPY_DRAGSCROLL_H_INVERT (#17453) 2022-07-03 00:13:45 +01:00
QMK Bot
4d243e94fa Merge remote-tracking branch 'origin/master' into develop 2022-07-02 23:12:20 +00:00
James Young
71f9a07b0f 65% Community Layout Updates (#17476)
* update 65_ansi community layout keymap

- add license header
- add function layer

* update 65_ansi_blocker community layout keymap

- add license header
- add function layer

* update 65_ansi_blocker_split_bs community layout keymap

- add license header
- add function layer

* update 65_ansi_blocker_tsangan community layout keymap

- add license header
- add function layer
- remove trailing spaces in keymap readme

* add 65_ansi_blocker_tsangan_split_bs community layout keymap

* update 65_ansi_split_bs community layout keymap

- add license header
- add function layer

* update 65_iso community layout keymap

- add license header
- add function layer
- fix layout box drawing on Community Layout readme

* update 65_iso_blocker community layout keymap

- add license header
- add function layer
- fix layout box drawing on Community Layout readme

* update 65_iso_blocker_split_bs community layout keymap

- add license header
- add function layer
- fix layout box drawing on Community Layout readme

* add 65_iso_blocker_tsangan community layout keymap

* add 65_iso_blocker_tsangan_split_bs community layout keymap

* update 65_iso_split_bs community layout keymap

- add license header
- add function layer
- fix layout box drawing on Community Layout readme
2022-07-03 00:12:02 +01:00
yiancar
6a0814bb04 Update NK1 RGB animation defines (#17486) 2022-07-03 00:11:48 +01:00
QMK Bot
4b7c01c84b Merge remote-tracking branch 'origin/master' into develop 2022-07-02 23:11:36 +00:00
Ralph Bacolod
3ed4a7086e Update readme.md (#17489)
Fixed link to http://mkweb.bcgsc.ca/carpalx/?popular_alternatives
2022-07-03 00:10:30 +01:00
QMK Bot
8744d57578 Merge remote-tracking branch 'origin/master' into develop 2022-07-02 22:19:13 +00:00
Andrew Kannan
43e33ba232 Add Gentoo Hotswap PCB to QMK (#17528) 2022-07-02 23:18:43 +01:00
QMK Bot
5f11d7b554 Merge remote-tracking branch 'origin/master' into develop 2022-07-02 22:18:33 +00:00
Andrew Kannan
2011aec06f Add Gentoo Solderable PCB to QMK (#17527) 2022-07-02 23:17:53 +01:00
QMK Bot
ba1f184267 Merge remote-tracking branch 'origin/master' into develop 2022-07-02 19:10:40 +00:00
stanrc85
bb1edf6676 [Userspace] Add Nasu to userspace code (#17524)
* Define Nasu indicator pins in userspace

* Add userspace indicator code to Nasu
2022-07-02 20:10:07 +01:00
QMK Bot
a41c5d8023 Merge remote-tracking branch 'origin/master' into develop 2022-07-02 19:09:55 +00:00
Ciutadellla
4804b73540 Update info.json (#17530)
Change to correct keyboard name from reviung31 to reviung41
2022-07-02 20:09:21 +01:00
QMK Bot
6c7d549e31 Merge remote-tracking branch 'origin/master' into develop 2022-07-02 18:10:05 +00:00
Evelien Dekkers
40d295abf6 [Keyboard] Add nt-650 (#17471)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-07-02 11:09:26 -07:00
QMK Bot
efd41fe9df Merge remote-tracking branch 'origin/master' into develop 2022-07-02 17:51:26 +00:00
James Young
18a1cbce75 Mikeneko 65 QMK Configurator touch-up and Community Layout Support (#17542)
* info.json: apply friendly formatting

* info.json: remove dead space from Configurator rendering

* rename LAYOUT_all to LAYOUT_65_ansi_blocker

* rules.mk: enable Community Layout support
2022-07-02 18:50:54 +01:00
Nick Brassel
f346c8400c Update ChibiOS-Contrib (#17540) 2022-07-03 00:47:28 +10:00
QMK Bot
36de989e6f Merge remote-tracking branch 'origin/master' into develop 2022-07-02 14:32:39 +00:00
James Young
9b8ae05796 Correct QMK Configurator layout data for Kin80 (#17526) 2022-07-03 00:32:09 +10:00
QMK Bot
b56edb5f11 Merge remote-tracking branch 'origin/master' into develop 2022-07-02 14:23:42 +00:00
Nick Brassel
b9a6126518 Revert "[Keyboard]KPrepublic bm80v2 Keyboard ISO support " (#17537) 2022-07-03 00:23:21 +10:00
Nick Brassel
1b9491f8f3 Fixup builds for TzCI (#17538) 2022-07-03 00:23:08 +10:00
Nick Brassel
ea14a93718 Merge remote-tracking branch 'upstream/master' into develop 2022-07-03 00:16:33 +10:00
Ryan
ac5e6b6a3b Tentative Teensy 3.5 support (#14420)
* Tentative Teensy 3.5 support

* Set firmware format to .hex for ARM Teensys

* Got to "device descriptor failed" by comparing with Teensy 3.6 code

* Drop down to 96MHz...

* Bump back up to 120MHz
2022-07-03 00:12:45 +10:00
bruun-baer
5108d53169 Add a workman-miryoku hybrid keymap for the ferris sweep keyboard (#17511) 2022-07-03 00:11:53 +10:00
gourdo1
97dfdcb2bd [keymap] Update gourdo1 keymap for Q2 changes (#17398) 2022-07-03 00:11:26 +10:00
QMK Bot
11299b337b Merge remote-tracking branch 'origin/master' into develop 2022-07-02 14:10:26 +00:00
HorrorTroll
d694488e2e Added new keyboard KB16-01 (#17418) 2022-07-03 00:08:38 +10:00
Ryan
25033d5d9e MSYS2 install: use MinGW python-qmk package (#17302)
* MSYS2 install: use MinGW python-qmk package

* Add missing flashers

* Note VC Redist for manual install

* VC Redist no longer needed
2022-07-02 15:08:05 +01:00
QMK Bot
f083eb1a37 Merge remote-tracking branch 'origin/master' into develop 2022-07-02 14:07:53 +00:00
IFo Hancroft
1cffe5b6ce My ErgoDox Keymap (finally perfected, I think) (#17208)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-07-03 00:06:23 +10:00
QMK Bot
61eca0c972 Merge remote-tracking branch 'origin/master' into develop 2022-07-02 14:06:19 +00:00
TJ
7c64a2bcaa Add BigBoy macro pad (#16962)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-07-03 00:05:44 +10:00
QMK Bot
7de801ed9a Merge remote-tracking branch 'origin/master' into develop 2022-07-02 14:05:18 +00:00
Khairullah
81b7d6f67f [Keyboard] Add Support to Ducky One2 SF (#17260) 2022-07-03 00:04:46 +10:00
QMK Bot
3871c717da Merge remote-tracking branch 'origin/master' into develop 2022-07-02 14:01:44 +00:00
npspears
60ab61386e add rotary encoder support for Quark^2 (#17470) 2022-07-03 00:01:08 +10:00
Drashna Jaelre
0c74892e90 [Keyboard] Update Charybdis code for Extended Mouse reports (#17435) 2022-07-02 23:58:40 +10:00
QMK Bot
326d3ffad8 Merge remote-tracking branch 'origin/master' into develop 2022-07-02 13:14:58 +00:00
Yizhen Liu
5ac71ef27a [Keyboard]KPrepublic bm80v2 Keyboard ANSI support (#17192)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-07-02 23:14:27 +10:00
QMK Bot
1bf67b808d Merge remote-tracking branch 'origin/master' into develop 2022-07-02 13:13:58 +00:00
Guilherme Bermêo
2aa4f7cf61 add crkbd/keymaps/bermeo (#17320)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-07-02 23:13:28 +10:00
QMK Bot
d9e311ad30 Merge remote-tracking branch 'origin/master' into develop 2022-07-02 13:09:54 +00:00
zv0n
783d1cd458 [keyboard] annepro2 Add support for sticky keys (#17359) 2022-07-02 23:09:21 +10:00
QMK Bot
c1d9f9911c Merge remote-tracking branch 'origin/master' into develop 2022-07-02 13:08:54 +00:00
Nick Brassel
7e926f5c93 Cleanup post-#17314. (#17536) 2022-07-02 23:08:39 +10:00
Vega Deftwing
e25879e836 [keymap] Add tiny text, full width characters to Ergodone->Vega (#17427) 2022-07-02 23:08:18 +10:00
QMK Bot
414a387f22 Merge remote-tracking branch 'origin/master' into develop 2022-07-02 12:53:52 +00:00
DeskDaily
d66b5db1d6 Added 3 new keyboards (#17314)
Co-authored-by: Neil Brian Ramirez <nightlyboards@gmail.com>
2022-07-02 22:53:01 +10:00
QMK Bot
84d9996b6d Merge remote-tracking branch 'origin/master' into develop 2022-07-02 12:51:09 +00:00
Radliński Ignacy
5a727dbc6d feat(keymap): add keebio/iris/rev6/radlinskii keymap (#17216)
Co-authored-by: ignacy-radlinski <ignacy.radlinski@schibsted.com>
2022-07-02 22:50:31 +10:00
QMK Bot
a6faf3bc9e Merge remote-tracking branch 'origin/master' into develop 2022-07-02 12:49:52 +00:00
CoffeeIsLife
0365f640af Allow for RGB actions to take place on Keydown instead of Keyup (#16886)
* Allow for switch on keydown

* add docs
2022-07-02 22:49:49 +10:00
QMK Bot
fcc14b8838 Merge remote-tracking branch 'origin/master' into develop 2022-07-02 12:49:19 +00:00
ripdog
4e35697e1a Add note about qmk doctor in newbs_flashing.md (#15688)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-07-02 22:48:44 +10:00
Vino Rodrigues
ec6875af56 [Keyboard] New IDOBAO ID63 (a.k.a. Denwir D60) (#17144)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-07-02 22:46:42 +10:00
QMK Bot
bf44fc81bd Merge remote-tracking branch 'origin/master' into develop 2022-07-02 12:44:27 +00:00
InonL
feea704da7 Added VIA support for Drop CTRL (#17336)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-07-02 22:42:45 +10:00
QMK Bot
5f16a4ec62 Merge remote-tracking branch 'origin/master' into develop 2022-07-02 12:42:41 +00:00
Murali S
0c84dd6bdc Add keymaps for muralis and kuru (#17337)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Sree Vidya Sobha Dharmarajan <ssd@Srees-MacBook-Pro.local>
2022-07-02 22:42:13 +10:00
QMK Bot
fd883890af Merge remote-tracking branch 'origin/master' into develop 2022-07-02 12:41:39 +00:00
spooknik
3059d7883c Swift65 Hotswap Support (#16987)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Steven Phillips <steven.phillips.17@me.com>
2022-07-02 22:41:32 +10:00
QMK Bot
90ad47b1f2 Merge remote-tracking branch 'origin/master' into develop 2022-07-02 12:41:05 +00:00
jpe230
07f6fba6de Add Jpe230 Preonic Keymap (#17331) 2022-07-02 22:40:24 +10:00
Minke Zhang
4a3e0ef9ab Add personal YMDK Split64 keymap (#16980)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-07-02 22:39:31 +10:00
QMK Bot
f996a4c5b7 Merge remote-tracking branch 'origin/master' into develop 2022-07-02 12:38:02 +00:00
Jairo Ramírez Ávila
56ecc86482 Added oriaj3 keymap with Matrix RGB support for Kimiko keyboard. (#17103)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-07-02 22:37:29 +10:00
QMK Bot
6285a1c0d3 Merge remote-tracking branch 'origin/master' into develop 2022-07-02 12:37:05 +00:00
Wolf Van Herreweghe
627f9321a8 Add base Ryujin firmware (#17187)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Wolf Van Herreweghe <wolfvh@getupgamesofficial.com>
2022-07-02 22:36:32 +10:00
Vino Rodrigues
882eadd94d [Keyboard] IDOBAO ID67 code touch-ups and include factory keymap (#17231) 2022-07-02 22:35:37 +10:00
Vino Rodrigues
7a5f76d40a [Keyboard] IDOBAO ID87v2 code rewrite and include factory keymap (#17232) 2022-07-02 22:32:32 +10:00
Vino Rodrigues
4aca94d247 [Keyboard] IDOBAO ID80v3 code rewrite and include factory keymap (#17234) 2022-07-02 22:31:38 +10:00
QMK Bot
7a8a4b1938 Merge remote-tracking branch 'origin/master' into develop 2022-07-02 12:21:26 +00:00
Nick Brassel
3b14383f48 Fix line endings. 2022-07-02 22:20:30 +10:00
-k
5699763d4c Update massdrop/alt:charlesrocket (#17297)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-07-02 22:19:35 +10:00
QMK Bot
5c5610074a Merge remote-tracking branch 'origin/master' into develop 2022-07-02 12:19:26 +00:00
jels
ac333016eb Add ATmega32u2 Support to HHKB (#17298) 2022-07-02 22:18:56 +10:00
QMK Bot
fa0aea2a5a Merge remote-tracking branch 'origin/master' into develop 2022-07-02 12:18:55 +00:00
David Kristoffersen
a80943579c [Keymap] Add prog_qgmlwb keymap (#16890) 2022-07-02 22:18:21 +10:00
QMK Bot
65832c0fc3 Merge remote-tracking branch 'origin/master' into develop 2022-07-02 12:17:12 +00:00
Jean Bernard
ef633cf461 Added MS Sculpt ISO-layout conversion with STM32F401 (#17049) 2022-07-02 22:16:38 +10:00
Marek Wyborski
b8e8a20ca6 Improve ENCODER_DEFAULT_POS to recognize lost ticks (#16932) 2022-07-02 22:12:41 +10:00
Ryan
3ecb0a80af Feature-ify Send String (#17275) 2022-07-02 22:10:08 +10:00
QMK Bot
7e41eb0277 Merge remote-tracking branch 'origin/master' into develop 2022-07-02 12:09:58 +00:00
Osamu Aoki
871eeae4ea PoC: Swap Escape and Caps (#16336) 2022-07-02 22:08:48 +10:00
foureight84
9c2505676c foureight84 keymap for sofle (#17246)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-07-02 22:08:13 +10:00
QMK Bot
c7d8adfeaa Merge remote-tracking branch 'origin/master' into develop 2022-07-02 12:08:11 +00:00
Will Winder
f03aec28fb [Keyboard] Add Avalanche v4 (#17288)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-07-02 22:07:35 +10:00
QMK Bot
5d711c89c3 Merge remote-tracking branch 'origin/master' into develop 2022-07-02 12:07:22 +00:00
Yizhen Liu
c3ef70b9a6 [Keyboard]KPrepublic bm80v2 Keyboard ISO support (#17193)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-07-02 22:06:38 +10:00
QMK Bot
ca0a9d243c Merge remote-tracking branch 'origin/master' into develop 2022-07-02 12:03:45 +00:00
torkel104
8b78fac451 Fix keys being discarded after using the leader key (#17287) 2022-07-02 22:03:40 +10:00
Aidan Gauland
8c4a5f9ba2 Add lkbm keymap (#17218) 2022-07-02 22:03:11 +10:00
QMK Bot
08721b4125 Merge remote-tracking branch 'origin/master' into develop 2022-07-02 12:00:37 +00:00
jack
ee26d3e77f Add Zsh note for tab complete (#17226) 2022-07-02 21:59:59 +10:00
QMK Bot
5d1bc92c64 Merge remote-tracking branch 'origin/master' into develop 2022-07-02 11:58:55 +00:00
PixelSpaceStudio
a80461e264 Add pixelspace user space and capsule65i keyboard (#17235) 2022-07-02 21:58:00 +10:00
Jouke Witteveen
0112938140 Expose the time of the last change to the LED state (#17222) 2022-07-02 21:57:05 +10:00
mmccoyd
2af2c5e109 [Keyboard] Move/Rename to Hillside48, simplify default keymap (#17210)
Co-authored-by: mmccoyd <mmccoyd@cs.berkley.edu>
2022-07-02 21:56:23 +10:00
QMK Bot
a7179b188d Merge remote-tracking branch 'origin/master' into develop 2022-07-02 11:55:42 +00:00
Watson
48721b20fc Updated revisions and added a keyboard (#16731)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: WestM <93159069+WestMProducts@users.noreply.github.com>
2022-07-02 21:55:10 +10:00
Joel Challis
59e28b8958 Add cli command to import keyboard|keymap|kbfirmware (#16668) 2022-07-02 21:50:09 +10:00
FREEWING.JP
9dc7b9d40c Added Wait time to sending each Keys for Dynamic Macros function (#16800)
Co-authored-by: Joel Challis <git@zvecr.com>
2022-07-02 21:48:26 +10:00
QMK Bot
0856b36139 Merge remote-tracking branch 'origin/master' into develop 2022-07-02 11:47:16 +00:00
anubhav dhiman
c725f6f768 Add new keyboard AT3 (#17431)
Co-authored-by: zvecr <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-07-02 21:46:29 +10:00
QMK Bot
c679decb2b Merge remote-tracking branch 'origin/master' into develop 2022-07-02 11:45:40 +00:00
spx01
2f11509465 spx01 keymap for the kbd67mkiirgb (#17012) 2022-07-02 21:44:58 +10:00
QMK Bot
6b21f8369e Merge remote-tracking branch 'origin/master' into develop 2022-07-02 11:44:07 +00:00
Nick Krichevsky
69f0fc5868 Add workaround to allow Sesame to work without atomic interactions (#17034) 2022-07-02 21:43:36 +10:00
QMK Bot
6f1eca9c7b Merge remote-tracking branch 'origin/master' into develop 2022-07-02 11:43:17 +00:00
Xelus22
f8a56cd638 [Keyboard] RS108 Addition (#16989) 2022-07-02 21:42:48 +10:00
QMK Bot
05074cbdf0 Merge remote-tracking branch 'origin/master' into develop 2022-07-02 11:27:40 +00:00
Josh Hinnebusch
096db8c8ca Add LED backlight/indicator info to reference_info_json.md (#17010)
Co-authored-by: Joel Challis <git@zvecr.com>
2022-07-02 21:27:34 +10:00
Gardego5
6fce400ef5 Ut47.2 gardego5 layout (#16955) 2022-07-02 21:27:08 +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
QMK Bot
5d8b6847c7 Merge remote-tracking branch 'origin/master' into develop 2022-07-02 11:23:33 +00:00
Daniil Iastremskii
f2f88bcfcc Add elephant42 keyboard (#14336) 2022-07-02 21:22:51 +10:00
Nick Brassel
a9af4c928e Merge remote-tracking branch 'upstream/master' into develop 2022-07-02 21:13:06 +10:00
Batuhan Baserdem
fd44341cbf Userspace and keymap update for user bbaserdem. (#14484) 2022-07-02 21:09:04 +10:00
QMK Bot
92c0b29be9 Merge remote-tracking branch 'origin/master' into develop 2022-07-02 11:01:36 +00:00
Kan-Ru Chen
f439fe6055 HHKB YDKB Yang BT Controller (#15759)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-07-02 21:01:03 +10:00
QMK Bot
e3cad4045a Merge remote-tracking branch 'origin/master' into develop 2022-07-02 10:57:59 +00:00
Taeyoon Kim
0eab24be26 Adding 34keys layout for kprepublic bm40 keyboard. (#15974) 2022-07-02 20:57:12 +10:00
QMK Bot
93e657fa99 Merge remote-tracking branch 'origin/master' into develop 2022-07-02 10:55:05 +00:00
moyi4681
578a3e3505 add baguette66 keyboard (#16429)
* add baguette66 keyboard

* Update keyboards/kbdfans/baguette66/soldered/config.h

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/kbdfans/baguette66/rgb/config.h

Co-authored-by: Ryan <fauxpark@gmail.com>

Co-authored-by: Ryan <fauxpark@gmail.com>
2022-07-02 20:54:22 +10:00
Nick Brassel
5846b40f74 RP2040 emulated EEPROM. (#17519) 2022-07-02 15:18:50 +10:00
Nick Brassel
9f1c4f304d Fixup #17438 (#17533) 2022-07-02 14:29:45 +10:00
QMK Bot
3def7b98d4 Merge remote-tracking branch 'origin/master' into develop 2022-07-02 03:23:21 +00:00
Nick Brassel
c8fbfca1b6 [QP] Explicit buffer alignment. (#17532) 2022-07-02 13:22:46 +10:00
Nick Brassel
b67ae67687 [QP] Add ILI9488 support. (#17438) 2022-07-02 13:20:45 +10:00
QMK Bot
d6c39490df Merge remote-tracking branch 'origin/master' into develop 2022-07-01 21:21:11 +00:00
Joel Challis
9d70162d53 Allow locate_keymap to handle DEFAULT_FOLDER (#17529) 2022-07-01 22:20:32 +01:00
QMK Bot
a61e549a31 Merge remote-tracking branch 'origin/master' into develop 2022-07-01 14:39:35 +00:00
Joel Challis
2757251218 Specify blackpill board files where relevant (#17521) 2022-07-01 15:38:57 +01:00
QMK Bot
dfb23456b1 Merge remote-tracking branch 'origin/master' into develop 2022-07-01 14:36:43 +00:00
Joel Challis
d978432812 Swap over F4x1 8MHz HSE boards over from blackpill board files (#17520) 2022-07-01 15:36:08 +01:00
QMK Bot
03630db506 Merge remote-tracking branch 'origin/master' into develop 2022-07-01 06:11:45 +00:00
yiancar
1e643ba1d1 [Keyboard] Nebula12b (#17308)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: yiancar <yiancar@gmail.com>
2022-06-30 23:11:13 -07:00
QMK Bot
5936e05a33 Merge remote-tracking branch 'origin/master' into develop 2022-07-01 03:02:42 +00:00
Jan Lindblom
38ca5e95e1 Adding Rev41lp keyboard (#15895)
* [keyboard] Add rev41lp

* [keymap] rev41lp: More layer, less clutter

* [keymap] rev41lp:whitespace cleanup

* [keymap] rev41lp: Remove outer shift & edit homerow timings

left-ctrl < left-shift
kc-enter < kc-sftent
lower + tab = grave
raise + tab = tilde

* Initial namnlos keymap for rev41lp.

* Updated according to PR checklist.

* Update keyboards/b_sides/rev41lp/config.h

Co-authored-by: Albert Y <76888457+filterpaper@users.noreply.github.com>

* Update keyboards/b_sides/rev41lp/rules.mk

Co-authored-by: Albert Y <76888457+filterpaper@users.noreply.github.com>

* Update keyboards/b_sides/rev41lp/keymaps/default/keymap.c

Co-authored-by: Albert Y <76888457+filterpaper@users.noreply.github.com>

* Update keyboards/b_sides/rev41lp/keymaps/default/keymap.c

Co-authored-by: Albert Y <76888457+filterpaper@users.noreply.github.com>

* Update keyboards/b_sides/rev41lp/keymaps/default/keymap.c

Co-authored-by: Albert Y <76888457+filterpaper@users.noreply.github.com>

* Update keyboards/b_sides/rev41lp/keymaps/default/keymap.c

Co-authored-by: Albert Y <76888457+filterpaper@users.noreply.github.com>

* Update keyboards/b_sides/rev41lp/keymaps/default/keymap.c

Co-authored-by: Albert Y <76888457+filterpaper@users.noreply.github.com>

* Update keyboards/b_sides/rev41lp/keymaps/default/keymap.c

Co-authored-by: Albert Y <76888457+filterpaper@users.noreply.github.com>

* Update keyboards/b_sides/rev41lp/keymaps/default/keymap.c

Co-authored-by: Albert Y <76888457+filterpaper@users.noreply.github.com>

* Update keyboards/b_sides/rev41lp/keymaps/default/keymap.c

Co-authored-by: Albert Y <76888457+filterpaper@users.noreply.github.com>

* Update keyboards/b_sides/rev41lp/keymaps/default/keymap.c

Co-authored-by: Albert Y <76888457+filterpaper@users.noreply.github.com>

* Updated to fulfill PR checklist.

* Update keyboards/b_sides/rev41lp/info.json

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

* Update keyboards/b_sides/rev41lp/config.h

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

* Update keyboards/b_sides/rev41lp/keymaps/cyril/config.h

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

* Update keyboards/b_sides/rev41lp/keymaps/cyril/keymap.c

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

* Update keyboards/b_sides/rev41lp/keymaps/namnlos/keymap.c

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

* Update keyboards/b_sides/rev41lp/keymaps/namnlos/rules.mk

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

* Update keyboards/b_sides/rev41lp/rules.mk

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

* Update keyboards/b_sides/rev41lp/rules.mk

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

* Update keyboards/b_sides/rev41lp/rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/b_sides/rev41lp/readme.md

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/b_sides/rev41lp/readme.md

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/b_sides/rev41lp/keymaps/namnlos/keymap.c

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/b_sides/rev41lp/rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

* Adding picture.

* Rename README.md to readme.md

* Cleaning up in rules.mk.

* Moving en- and em-dash from dedicated keys.

* Readme fixup.

There was a typo in the title, also changed the description a little.

* Update keyboards/b_sides/rev41lp/readme.md

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/b_sides/rev41lp/keymaps/namnlos/rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

Co-authored-by: cyril279 <cyril.x9@gmail.com>
Co-authored-by: Albert Y <76888457+filterpaper@users.noreply.github.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-07-01 13:02:07 +10:00
QMK Bot
2f2d3e9c7b Merge remote-tracking branch 'origin/master' into develop 2022-06-30 22:40:36 +00:00
James Young
f2f2a7ace9 Add missing QMK Configurator layout data for chlx str.merro60 (#17518)
* add LAYOUT_60_ansi_split_bs_rshift layout data

* add LAYOUT_60_iso layout data
2022-06-30 23:39:49 +01:00
Joel Challis
a98f69850f Also check /run/media/ for uf2 drives (#17517) 2022-06-30 23:29:56 +01:00
QMK Bot
e5a15f404d Merge remote-tracking branch 'origin/master' into develop 2022-06-30 19:10:51 +00:00
James Young
c1d4950938 Add QMK Configurator layout data for ADM42 rev4 (#17515) 2022-06-30 20:10:15 +01:00
Stefan Kerkmann
77d960cce3 Disable clang-format for stage2_bootloaders (#17516) 2022-06-30 20:07:54 +01:00
Stefan Kerkmann
d717396708 [Core] Add Raspberry Pi RP2040 support (#14877)
* Disable RESET keycode because of naming conflicts

* Add Pico SDK as submodule

* Add RP2040 build support to QMK

* Adjust USB endpoint structs for RP2040

* Add RP2040 bootloader and double-tap reset routine

* Add generic and pro micro RP2040 boards

* Add RP2040 onekey keyboard

* Add WS2812 PIO DMA enabled driver and documentation

Supports regular and open-drain output configuration. RP2040 GPIOs are
sadly not 5V tolerant, so this is a bit use-less or needs extra hardware
or you take the risk to fry your hardware.

* Adjust SIO Driver for RP2040

* Adjust I2C Driver for RP2040

* Adjust SPI Driver for RP2040

* Add PIO serial driver and documentation

* Add general RP2040 documentation

* Apply suggestions from code review

Co-authored-by: Nick Brassel <nick@tzarc.org>

Co-authored-by: Nick Brassel <nick@tzarc.org>
2022-06-30 13:19:27 +02:00
jpe230
d206c1791e (develop)Keychron Q2: Enable support for WL EEPROM Driver (#17507) 2022-06-30 12:25:33 +10:00
jpe230
4f124574f1 (develop)AP2: Enable support for WL EEPROM Driver (#17506) 2022-06-30 11:07:43 +10:00
QMK Bot
fb05b491e7 Merge remote-tracking branch 'origin/master' into develop 2022-06-29 23:34:39 +00:00
Joel Challis
7326a0051b Allow module check to error out when piped to /dev/null (#17505) 2022-06-30 00:33:59 +01:00
Nick Brassel
34e244cecf Wear-leveling EEPROM drivers: embedded_flash, spi_flash, legacy (#17376) 2022-06-30 07:42:23 +10:00
ihatechoosingusernames
1204cbb7ea Update feature_split_keyboard.md to add extra detail about left and right matrices. (#17492) 2022-06-29 18:39:37 +10:00
Dasky
dcdc7290e5 RGB Matrix Heatmap - Skip positions with NO_LED (#17488) 2022-06-29 01:25:03 -07:00
QMK Bot
f7eb7926e8 Merge remote-tracking branch 'origin/master' into develop 2022-06-29 08:17:56 +00:00
Drashna Jaelre
74bec84740 [Bug] Fix 3 speed mousekey mode (#17500) 2022-06-29 01:16:31 -07:00
QMK Bot
0151f4c307 Merge remote-tracking branch 'origin/master' into develop 2022-06-29 06:45:13 +00:00
dependabot[bot]
88086a80b0 Bump JamesIves/github-pages-deploy-action from 3.7.1 to 4.3.4 (#17497)
Bumps [JamesIves/github-pages-deploy-action](https://github.com/JamesIves/github-pages-deploy-action) from 3.7.1 to 4.3.4.
- [Release notes](https://github.com/JamesIves/github-pages-deploy-action/releases)
- [Commits](https://github.com/JamesIves/github-pages-deploy-action/compare/3.7.1...v4.3.4)

---
updated-dependencies:
- dependency-name: JamesIves/github-pages-deploy-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-06-29 16:45:09 +10:00
dependabot[bot]
58f4e19503 Bump actions/checkout from 2 to 3 (#17496)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-06-29 16:44:54 +10:00
dependabot[bot]
b37a59a967 Bump peter-evans/create-pull-request from 3 to 4 (#17495)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-06-29 16:44:19 +10:00
QMK Bot
1f61fb33b4 Merge remote-tracking branch 'origin/master' into develop 2022-06-28 22:47:17 +00:00
Nick Brassel
2b094d4112 Enable dependabot for actions. 2022-06-29 08:46:47 +10:00
QMK Bot
2daad28ab1 Merge remote-tracking branch 'origin/master' into develop 2022-06-28 22:29:19 +00:00
Drashna Jaelre
43f8d365ba [Bug] Fix issue with mousekey movement getting stuck (#17493)
* [Bug] Fix issue with mousekey movement getting stuck

* Lint
2022-06-28 15:28:44 -07:00
QMK Bot
54383674db Merge remote-tracking branch 'origin/master' into develop 2022-06-28 22:14:09 +00:00
Nick Brassel
1e402060a6 Bump revision for auto-tagging.
Seems there was an error, but it wasn't failing the actions run.

https://github.com/anothrNick/github-tag-action/releases/tag/1.39.0
2022-06-29 08:13:38 +10:00
QMK Bot
33b62b6867 Merge remote-tracking branch 'origin/master' into develop 2022-06-26 22:59:06 +00:00
Joel Challis
fa3dd373b4 Fix error message in generated code (#17484) 2022-06-27 08:58:31 +10:00
Nick Brassel
01ecf332ff Generic wear-leveling algorithm (#16996)
* Initial import of wear-leveling algorithm.

* Alignment.

* Docs tweaks.

* Lock/unlock.

* Update quantum/wear_leveling/wear_leveling_internal.h

Co-authored-by: Stefan Kerkmann <karlk90@pm.me>

* More tests, fix issue with consolidation when unlocked.

* More tests.

* Review comments.

* Add plumbing for FNV1a.

* Another test checking that checksum mismatch clears the cache.

* Check that the write log still gets played back.

Co-authored-by: Stefan Kerkmann <karlk90@pm.me>
2022-06-27 07:18:21 +10:00
Thomas Kriechbaumer
0d013a21e1 [Split] Verify Split Pointing Device config (#17481) 2022-06-26 09:15:25 -07:00
Thomas Kriechbaumer
01bc974365 improvements for Cirque Pinnacle trackpads (#17091) 2022-06-25 22:22:28 +02:00
QMK Bot
60cbb25148 Merge remote-tracking branch 'origin/master' into develop 2022-06-25 19:46:15 +00:00
rooski15
410686dc03 [Keyboard] Add blockboy/ac980mini keyboard (#16839)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-06-25 12:45:45 -07:00
QMK Bot
99614bd89a Merge remote-tracking branch 'origin/master' into develop 2022-06-25 19:41:30 +00:00
precondition
e13bb58c40 Only omit paths containing "/keymaps/" (#17468)
This allows keyboard names to contain the word "keymaps"
2022-06-25 20:40:49 +01:00
QMK Bot
e30cd0fa16 Merge remote-tracking branch 'origin/master' into develop 2022-06-25 19:35:17 +00:00
Drashna Jaelre
7fd3d76faa [Split] Ensure SOFT_SERIAL_PIN is defined if USE_I2C isn't defined (#17466) 2022-06-25 12:34:40 -07:00
QMK Bot
c43e89bb4a Merge remote-tracking branch 'origin/master' into develop 2022-06-25 19:15:48 +00:00
jack
cbbdcec290 [Keyboard] Fixup skergo - missing keycode in keymaps (#17458) 2022-06-25 12:15:00 -07:00
QMK Bot
3c9f27e1c9 Merge remote-tracking branch 'origin/master' into develop 2022-06-24 22:03:10 +00:00
Evelien Dekkers
31dfdaa1ba [Keyboard] Fix firmware size for via keymap on Atom47 (#17472) 2022-06-24 15:02:33 -07:00
precondition
3b9e186019 Do not enable PERMISSIVE_HOLD when TAPPING_TERM exceeds 500ms (#15674) 2022-06-24 12:40:09 +02:00
QMK Bot
0e60b3a620 Merge remote-tracking branch 'origin/master' into develop 2022-06-24 04:11:58 +00:00
Nick Brassel
a8677ed296 Fix up Djinn fuse handling. (#17465) 2022-06-24 14:11:06 +10:00
precondition
7060cb7b26 Refactor steno and add STENO_PROTOCOL = [all|txbolt|geminipr] (#17065)
* Refactor steno into STENO_ENABLE_[ALL|GEMINI|BOLT]

* Update stenography documentation

* STENO_ENABLE_TXBOLT → STENO_ENABLE_BOLT

TXBOLT is a better name but BOLT is more consistent with the
pre-existing TX Bolt related constants, which all drop the "TX " prefix

* Comments

* STENO_ENABLE_[GEMINI|BOLT|ALL] → STENO_PROTOCOL = [geminipr|txbolt|all]

* Add note on lacking V-USB support

* Clear chord at the end of the switch(mode){send_steno_chord} block

* Return true if NOEVENT

* update_chord_xxx → add_xxx_key_to_chord

* Enable the defines for all the protocols if STENO_PROTOCOL = all

* Mention how to use `steno_set_mode`

* Set the default steno protocol to "all"

This is done so that existing keymaps invoking `steno_set_mode` don't
all suddenly break

* Add data driver equivalents for stenography feature

* Document format of serial steno packets

(Thanks dnaq)

* Add missing comma
2022-06-23 20:43:24 +02:00
SmugSam
2239527871 In honor of king terry (#17387) 2022-06-23 02:47:15 +01:00
QMK Bot
32792826a8 Merge remote-tracking branch 'origin/master' into develop 2022-06-23 01:26:43 +00:00
David Kosorin
71472a1692 Update ref_functions.md (replaced deprecated RESET) (#17436) 2022-06-23 02:26:08 +01:00
QMK Bot
25b5c2c538 Merge remote-tracking branch 'origin/master' into develop 2022-06-23 01:23:52 +00:00
Dasky
aaaf3ff66a Fix 0 delta results in size_regression.sh (#17457) 2022-06-23 11:23:13 +10:00
Jamal Bouajjaj
d3858585ac Added global current to all other issi drivers who don't have it (#17448) 2022-06-23 02:16:39 +01:00
QMK Bot
a0f857b7a2 Merge remote-tracking branch 'origin/master' into develop 2022-06-23 01:16:12 +00:00
James Young
666cba5c2e Cf/evyd13 wasdat (#17452)
* evyd13/wasdat: add LAYOUT_all Configurator data

* info.json: fix JSON syntax errors
2022-06-23 02:15:38 +01:00
QMK Bot
2f9145c6ea Merge remote-tracking branch 'origin/master' into develop 2022-06-23 00:52:50 +00:00
Salicylic-acid3
47fcb40a81 [Keyboard] Fix RGB_matrix coordinates for gl516/j73gl (#17450) 2022-06-22 17:52:16 -07:00
QMK Bot
b02f178c06 Merge remote-tracking branch 'origin/master' into develop 2022-06-23 00:39:54 +00:00
Kevin Zhao
8ea836f2b2 [Keyboard] Update SKErgo for hardware changes (#17449)
Co-authored-by: kevinzhao-tech <kevin@keyz.io>
2022-06-22 17:39:19 -07:00
Stefan Kerkmann
9aa9155e88 [Core] Mark GD32VF103 as ChibiOS-Contrib (#17444) 2022-06-23 08:37:40 +10:00
Kyle McCreery
eac0f6d4c9 Cirque Attenuation Setting (#17342) 2022-06-22 21:59:37 +02:00
QMK Bot
2e27eb318e Merge remote-tracking branch 'origin/master' into develop 2022-06-22 16:41:19 +00:00
James Young
0a04064362 Chaos 65 Community Layout Support (#17447)
* move ISO Enter position to home row

This commit makes the ISO layout macros compatible with QMK's `65_iso_blocker` and `65_iso_blocker_tsangan` community layouts.

* info.json: apply friendly formatting

- add key labels
- add line breaks between physical rows

* enable Community Layout support

* chaos65.h: add matrix diagram
2022-06-22 09:40:48 -07:00
QMK Bot
8ea9f13c67 Merge remote-tracking branch 'origin/master' into develop 2022-06-22 14:30:56 +00:00
James Young
27f9e4775e Checkerboards SNOP60 Refactor (#17446) 2022-06-22 07:29:47 -07:00
QMK Bot
b450ffc5c6 Merge remote-tracking branch 'origin/master' into develop 2022-06-22 05:10:58 +00:00
Greg Dietsche
701db278e4 [Keymap] farmergreg's kint41 Kinesis Advantage 2 Layout (#16784) 2022-06-21 22:10:17 -07:00
QMK Bot
267864e42c Merge remote-tracking branch 'origin/master' into develop 2022-06-22 02:15:13 +00:00
Muhammad Rivaldi
46644b0a64 [Keyboard] Add n60a pcb (#17273)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-06-21 19:14:36 -07:00
QMK Bot
86bfd8195c Merge remote-tracking branch 'origin/master' into develop 2022-06-22 01:53:38 +00:00
paulgali
3e9f000a97 [Keyboard] Zeno 60% Ergo PCB (#17403)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-06-21 18:53:04 -07:00
Daniel Kao
608404f874 Fix AVR I2C master 1ms timeout (#17174)
* avr i2c_master: Fix 1ms timeout

i2c_start() produces a minimum time_slice of 1ms for use as timeout
value.
The timer granularity is 1ms, it is entirely possible for timer_count
to tick up immediately after the last timer read and falsely trigger
timeout with a '>= 1' comparison.

* avr/drivers/i2c_master: Use timer_elapsed()
2022-06-22 00:00:04 +02:00
Dasky
be42c5fb98 Fix RGB heatmap to use XY positions and use correct led limits (#17184)
* Fix RGB heatmap to use XY positions

* lower effect area limit and make configurable

* tidy up macro

* Fix triggering in both directions.

* add docs

* fix bug when decreasing value

* performance tweak
2022-06-21 10:53:34 -07:00
QMK Bot
2d7a2dfad0 Merge remote-tracking branch 'origin/master' into develop 2022-06-21 15:50:58 +00:00
Joel Challis
de4262f9aa Add missing snop60 default keymap (#17443) 2022-06-21 16:49:58 +01:00
QMK Bot
65fcf951d3 Merge remote-tracking branch 'origin/master' into develop 2022-06-21 12:23:46 +00:00
James Young
03d0182541 alt34 rev1: Configurator Compilation Fix (#17442)
* move USE_I2C and EE_HANDS definitions to keyboard level

Allow this keyboard to be compiled by QMK Configurator.

* remove redundant DEFAULT_FOLDER rule
2022-06-21 13:22:53 +01:00
QMK Bot
d116cf5e9a Merge remote-tracking branch 'origin/master' into develop 2022-06-21 03:42:15 +00:00
bbrfkr
c2e5953bc1 [Keyboard] add dynamis keyboard (#15994)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-06-20 20:41:46 -07:00
QMK Bot
2b23ca876d Merge remote-tracking branch 'origin/master' into develop 2022-06-21 03:34:03 +00:00
alabbe9545
84718c0ab7 [Keyboard] Add labbeminiv1 (#16401)
* [Keyboard] Add labbeminiv1

* Adjust vendor id

The used vendor id was in use

* Remove comment in the rgb keymap

* Update keyboards/labbe/labbeminiv1/rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

* Rename rgb matrix keymap folder

Co-authored-by: Ryan <fauxpark@gmail.com>
2022-06-20 20:33:29 -07:00
QMK Bot
503b40e748 Merge remote-tracking branch 'origin/master' into develop 2022-06-21 03:25:43 +00:00
Ryan Baker
712f6cf450 [Keyboard] Add rb18 keyboard (#17306) 2022-06-20 20:24:58 -07:00
QMK Bot
52c1517766 Merge remote-tracking branch 'origin/master' into develop 2022-06-21 03:16:43 +00:00
Ramon Imbao
7b7fb63f4b [Keyboard] Add Nayeon by Abats Keyboard Club (#16659)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Joel Challis <git@zvecr.com>
2022-06-20 20:16:13 -07:00
Joel Challis
1a400d8644 Allow encoder config from info.json (#17295) 2022-06-20 20:15:06 -07:00
QMK Bot
4c39bad2e6 Merge remote-tracking branch 'origin/master' into develop 2022-06-21 03:12:14 +00:00
Albert Y
c114996034 [Keyboard] Add more bootloader options for id75 (#17441) 2022-06-20 20:11:37 -07:00
QMK Bot
a6eeb930ae Merge remote-tracking branch 'origin/master' into develop 2022-06-21 02:24:10 +00:00
Wolf Van Herreweghe
3077123bf0 [Keyboard] Add base FAve65H firmware (#17147)
Co-authored-by: Wolf Van Herreweghe <wolfvh@getupgamesofficial.com>
2022-06-20 19:23:50 -07:00
Wolf Van Herreweghe
1c26c0bc9b [Keyboard] Update firmware for the FAve 87H (#16920)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Wolf Van Herreweghe <wolfvh@getupgamesofficial.com>
2022-06-20 19:23:34 -07:00
QMK Bot
3370e2b74d Merge remote-tracking branch 'origin/master' into develop 2022-06-21 02:23:27 +00:00
Wolf Van Herreweghe
e8e45bca98 [Keyboard] Update FAve 84H RGB firmware (#16919)
* Add base FAve 84H firmware

* Update keyboards/linworks/fave84h/readme.md

Thank you, apologies for the oversight

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/linworks/fave84h/keymaps/via/keymap.c

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/linworks/fave84h/keymaps/default/keymap.c

Co-authored-by: Joel Challis <git@zvecr.com>

* Move LED config in ifdef

* update read me

* Update Product Name

* Update keyboards/linworks/fave84h/rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

* Add Via RGB Matrix Control

* Add base FAve 84H firmware

* Add Via RGB Matrix Control

* fix merge conflict

* reduce max brightness

* remove action macro and action function

Co-authored-by: Joel Challis <git@zvecr.com>

* Remove / update code to work with the build in QMK via hack

* Update Read me

* Add newline at end of rules

Co-authored-by: Wolf Van Herreweghe <wolfvh@getupgamesofficial.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-06-20 19:22:53 -07:00
Nick Brassel
589e756e98 Fixup SPI mode 3 => 0 on tzarc/djinn. (#17440) 2022-06-21 10:56:47 +10:00
QMK Bot
2fb24c0298 Merge remote-tracking branch 'origin/master' into develop 2022-06-21 00:53:03 +00:00
evils
0a45a19801 [Docs] clarify inner array of direct pin matrix (#17437) 2022-06-21 01:52:11 +01:00
QMK Bot
93ee789387 Merge remote-tracking branch 'origin/master' into develop 2022-06-21 00:26:40 +00:00
bomb
5ab90cc72a [Keyboard] Add tegic for melgeek! (#17400)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-06-20 17:26:08 -07:00
Stefan Kerkmann
6a81cb44f2 [Fix] Fix compilation warning for non-split keebs after #17423 (#17439) 2022-06-21 09:31:20 +10:00
Stefan Kerkmann
2703ecc9e9 [BUG] Fix deadlocks on disconnected secondary half (#17423) 2022-06-21 08:24:53 +10:00
Dasky
62eaec52e0 Init eeconfig before reading handedness (#17256) 2022-06-20 15:31:27 +01:00
QMK Bot
36d60769f8 Merge remote-tracking branch 'origin/master' into develop 2022-06-20 04:21:32 +00:00
Nick Brassel
aa06893b58 Add Djinn. (#17382)
* Add Djinn.

* Review comments.

* Further cleanup.
2022-06-20 14:20:56 +10:00
Jamal Bouajjaj
2bddffeaec IS31FL3737 Global Current Setting (#17420) 2022-06-19 14:32:37 -07:00
QMK Bot
4e3db51e92 Merge remote-tracking branch 'origin/master' into develop 2022-06-19 18:17:00 +00:00
anubhav dhiman
ad2e853611 [Keyboard] add at6 keyboard (#17346)
Co-authored-by: zvecr <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-06-19 11:16:24 -07:00
Albert Y
c725b6bf89 [Core] Mouse key kinetic mode fix (#17176)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-06-19 11:15:55 -07:00
QMK Bot
d6eff188e9 Merge remote-tracking branch 'origin/master' into develop 2022-06-19 17:59:31 +00:00
Markus Weimar
7982957f75 [Keymap] Update XD75 keymap by markus (#17417) 2022-06-19 10:59:00 -07:00
QMK Bot
7f8886a1b7 Merge remote-tracking branch 'origin/master' into develop 2022-06-18 22:32:54 +00:00
coliss86
fd01feae4b Add a note about using differents MCU family (#17416) 2022-06-19 08:32:22 +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
QMK Bot
cfcd647b2e Merge remote-tracking branch 'origin/master' into develop 2022-06-18 07:34:32 +00:00
Nick Brassel
b5104c3a93 Fixup stale labels lists. (#17415) 2022-06-18 17:33:55 +10:00
Joel Challis
17ec1650fd Additional schema fixes (#17414) 2022-06-18 15:30:46 +10:00
Yan-Fa Li
7b3ee1db8c Minor schema fixes (#14200)
Validating using AJV
2022-06-18 02:42:32 +01:00
Stefan Kerkmann
fe680a8568 [Core] Split ChibiOS usart split driver in protocol and hardware driver part (#16669) 2022-06-18 08:04:17 +10:00
Stefan Kerkmann
6d67e9df4b [Core] Allow usage of ChibiOS's SIO driver for split keyboards (#15907) 2022-06-17 22:06:44 +02:00
QMK Bot
e44604c256 Merge remote-tracking branch 'origin/master' into develop 2022-06-17 03:50:47 +00:00
jack
545923b0a0 Fixup handwired/macroboard (#17405) 2022-06-17 04:50:14 +01:00
QMK Bot
00872ea7e7 Merge remote-tracking branch 'origin/master' into develop 2022-06-16 22:36:12 +00:00
Dmitry Nosachev
6d2f9c9c1e [Keyboard] Atreus: add STM32F103C8T6 based variant (#16846)
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-06-16 15:36:11 -07:00
QMK Bot
c251d88934 Merge remote-tracking branch 'origin/master' into develop 2022-06-16 22:35:55 +00:00
Michał Szczepaniak
82a7f4adda [handwired/macroboard] Add separate f401 and f411 configs… (#16338)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-06-16 15:35:40 -07:00
Gordon
89921e917a [Keyboard] Fix 1U space in Keebio/sinc/rev2 layout macros (#16901) 2022-06-16 15:35:13 -07:00
QMK Bot
4610a6bf49 Merge remote-tracking branch 'origin/master' into develop 2022-06-16 22:34:39 +00:00
minibois
6d7026e561 [Keyboard] mini_ten_key_plus edited info.json (#15574)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-06-16 15:34:05 -07:00
Nick Brassel
999b91fbd9 SPI Bugfix for ChibiOS 21.11.1 -- also rollback AW20216 mode change issue. (#17371) 2022-06-17 08:03:38 +10:00
QMK Bot
9e35a1f617 Merge remote-tracking branch 'origin/master' into develop 2022-06-16 21:46:41 +00:00
Yoshihiro Saito
811dbda20a [Keymap] Update yoshimaru46 keymap (#17402) 2022-06-16 14:46:04 -07:00
QMK Bot
4e8b864258 Merge remote-tracking branch 'origin/master' into develop 2022-06-16 21:16:35 +00:00
Nick Brassel
5ccb2fd003 Swap to actions/stale. (#17404) 2022-06-17 07:16:01 +10:00
QMK Bot
e312fa44e2 Merge remote-tracking branch 'origin/master' into develop 2022-06-16 18:21:12 +00:00
Lorenzo Leonini
8be0496347 [Keyboard] Add ADM42 Keyboard (#17366)
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-06-16 11:20:31 -07:00
precondition
0b1bed1d41 Use --exclude-from=.gitignore in place of --exclude-standard (#17399) 2022-06-16 11:20:12 -07:00
Ryan
ef80a1dd67 Update V-USB submodule (#17385) 2022-06-16 21:02:40 +10:00
Jouke Witteveen
050fa9062f tap-dance: Rename tests so that tap_dance is used consistently (#17396) 2022-06-16 08:05:27 +02:00
QMK Bot
fa9ecc431d Merge remote-tracking branch 'origin/master' into develop 2022-06-16 02:08:34 +00:00
peepeetee
8e128452db [Keyboard] Idobao Montex V2(RGB) (#15865)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Christian Hofstede <4440939+chofstede@users.noreply.github.com>
Co-authored-by: Vino Rodrigues <github@m.vinorodrigues.com>
Co-authored-by: Vino Rodrigues <366673+vinorodrigues@users.noreply.github.com>
2022-06-16 12:08:01 +10:00
QMK Bot
cac5f96275 Merge remote-tracking branch 'origin/master' into develop 2022-06-16 02:05:06 +00:00
IBNobody
8e5f8a5ff9 [Keyboard] Add Idobao Montex RGB (V2) (#16897)
* Add Montex V2 (#10)

* Update readme.md

* Update rules.mk

* Update config.h

* Update keyboards/idobao/montex/v2/config.h

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

* Update keyboards/idobao/montex/v2/rules.mk

Add Layouts

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

* Merged code fron work done with @vinorodrigues

* Update keyboards/idobao/montex/v2/rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/idobao/montex/v2/v2.h

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/idobao/montex/v2/config.h

Co-authored-by: Ryan <fauxpark@gmail.com>

* Removing via_nug keymap

* update to montex code (#11)

* remove VIA_QMK_RGBLIGHT_ENABLE

* more data driven config, simple copyright headers, some code cleanup

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Vino Rodrigues <366673+vinorodrigues@users.noreply.github.com>
2022-06-15 19:04:30 -07:00
Nick Brassel
fa8fb60279 Dump out the largest symbols in flash and in RAM. (#17397) 2022-06-16 09:55:15 +10:00
QMK Bot
589bdedc47 Merge remote-tracking branch 'origin/master' into develop 2022-06-15 21:44:32 +00:00
Joel Challis
d3dfa83b40 Fix clean arg handling (#17392) 2022-06-15 22:43:54 +01:00
QMK Bot
6e10a80174 Merge remote-tracking branch 'origin/master' into develop 2022-06-15 20:31:47 +00:00
Felicia Kuan
7224d84167 edit typo in comment (#17394) 2022-06-15 21:31:13 +01:00
QMK Bot
c40af06871 Merge remote-tracking branch 'origin/master' into develop 2022-06-15 20:31:09 +00:00
ALTAiN
afbba27f42 BLASTER75 info.json position fixes (#17395) 2022-06-15 21:30:35 +01:00
QMK Bot
81d2218cee Merge remote-tracking branch 'origin/master' into develop 2022-06-15 00:14:34 +00:00
Arturo Avila
de207b97fa [Keymap+] SnailMap port for the Kintsugi keyboard. (#17341) 2022-06-14 17:13:37 -07:00
QMK Bot
85d84938cf Merge remote-tracking branch 'origin/master' into develop 2022-06-14 23:42:47 +00:00
Forrest Cahoon
b7ce3b1967 [Keymap] New keymap for Keebio FoldKB (#17364) 2022-06-14 16:42:41 -07:00
kb-elmo
dc2ce36d63 [Keyboard] Add Chaos65 keyboard (#17369)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-06-14 16:42:15 -07:00
QMK Bot
adf4c27db2 Merge remote-tracking branch 'origin/master' into develop 2022-06-14 23:32:38 +00:00
Yutong Zhou
1c45845178 [Keyboard] Flip encoder pads on basketweave (#17375) 2022-06-14 16:32:07 -07:00
QMK Bot
4cde5c243b Merge remote-tracking branch 'origin/master' into develop 2022-06-14 13:55:32 +00:00
Joel Challis
f37de9a212 Perform stricter lint checks (#17348) 2022-06-14 14:54:46 +01:00
Joel Challis
87e1ff218d backlight|led 'on state' for DD configuration (#17383) 2022-06-14 12:30:31 +01:00
QMK Bot
2f4c7697a9 Merge remote-tracking branch 'origin/master' into develop 2022-06-14 10:16:16 +00:00
Nick Brassel
15dab01e6a Inform people that things may not work. (#17391) 2022-06-14 20:15:01 +10:00
QMK Bot
84d3575fdb Merge remote-tracking branch 'origin/master' into develop 2022-06-14 10:13:29 +00:00
Tom Barnes
026d0e8bf1 Update feature_midi.md (#17390)
Add caveat about usb endpoints.
2022-06-14 11:12:52 +01:00
Jouke Witteveen
1706da9054 tap-dance: Restructure code and document in more detail (#16394) 2022-06-13 22:12:55 +02:00
QMK Bot
b17324498e Merge remote-tracking branch 'origin/master' into develop 2022-06-13 18:31:17 +00:00
npspears
e49fa43a7f [Keyboard] add SNOP60 (#17131)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-06-13 11:30:35 -07:00
QMK Bot
0c82aafb8a Merge remote-tracking branch 'origin/master' into develop 2022-06-13 05:15:12 +00:00
ALTAiN
5149728b23 [Keyboard] Add BLASTER75 keyboard (#16887)
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-06-12 22:14:33 -07:00
QMK Bot
577e9d89fa Merge remote-tracking branch 'origin/master' into develop 2022-06-13 01:16:03 +00:00
Nick Brassel
f18afffc8d actions/stale: 150 operations, oldest-first. 2022-06-13 11:15:24 +10:00
QMK Bot
d21ee22cc5 Merge remote-tracking branch 'origin/master' into develop 2022-06-13 01:06:36 +00:00
Nick Brassel
856029f7c5 Swap to 1000 stale actions while debugging. 2022-06-13 11:05:25 +10:00
QMK Bot
5ba04d1204 Merge remote-tracking branch 'origin/master' into develop 2022-06-13 00:55:54 +00:00
Nick Brassel
9d07ab88af Fixup stale action. (#17373) 2022-06-13 10:55:16 +10:00
QMK Bot
10345adaa5 Merge remote-tracking branch 'origin/master' into develop 2022-06-13 00:44:22 +00:00
Nick Brassel
f7ab10a3c1 Add stale action. (#17372)
* Add stale action.

* Allow for manual trigger.
2022-06-13 10:43:52 +10:00
Ryan
0d64038b73 Update LUFA submodule (#17368) 2022-06-13 09:17:24 +10:00
QMK Bot
d288121f21 Merge remote-tracking branch 'origin/master' into develop 2022-06-12 18:30:50 +00:00
HorrorTroll
c2045558d9 [Keyboard] Add Lemon40 keyboard (#17357) 2022-06-12 11:30:08 -07:00
QMK Bot
191c180644 Merge remote-tracking branch 'origin/master' into develop 2022-06-12 14:35:07 +00:00
Albert Y
b5a53a9946 Add encoder map (#17361) 2022-06-12 15:34:29 +01:00
QMK Bot
90765aaefd Merge remote-tracking branch 'origin/master' into develop 2022-06-12 10:47:53 +00:00
Drashna Jaelre
3f841a24f0 [Keyboard] Remove terminal commands from m48 (#17363) 2022-06-12 20:47:24 +10:00
QMK Bot
0d991b8873 Merge remote-tracking branch 'origin/master' into develop 2022-06-11 18:25:28 +00:00
durken1
a50b09cba5 [Keyboard] add pierce (#17000)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Dan Abrahamsson <dan.abrahamsson@imsystech.com>
2022-06-11 11:24:58 -07:00
QMK Bot
1a7a6f313e Merge remote-tracking branch 'origin/master' into develop 2022-06-11 18:19:21 +00:00
Alin Marin Elena
51cfb1b457 [Keyboard] mlego fix product id and sync oled code (#16237)
* sync oled code over the keymaps

* put different product ids

* put different product ids for the rest

* put different product ids for the rest

* try to reduce code duplication

* make ifdefs nice and correct

* move the leds code out of keymap

* try to reduce code duplication

* move the rgb code outside the keymaps for reuse

* Update keyboards/mlego/m65/m65.c

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

* Update keyboards/mlego/m65/m65.c

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

* move more code outside keymaps for reuse

* add few more xps

* add mic mute

* update to new name of macros for reset

* style for matrix

* clean split

* use tinyuf2 as bootloader

* Update keyboards/mlego/m65/rev4/rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

* radionalise product id and device version

* add tinyuf2 as default bootloader for stm32f4

* update tinyuf2

* update tinyuf2 and via. f411 remove tinyuf2 since is not really working. make the config more conditional

* sync the keymap with default

* revert via non building with gcc 11

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-06-11 11:18:45 -07:00
Ryan
af6435d44d qmk doctor: show arch for macOS (#17356) 2022-06-11 19:10:09 +01:00
QMK Bot
5887bf7158 Merge remote-tracking branch 'origin/master' into develop 2022-06-11 17:53:14 +00:00
jack
dbd4ac5a3f [Keyboard] Fix checkboards/quark_lp (another) (#17296) 2022-06-11 10:52:45 -07:00
Drashna Jaelre
80034a847f Ensure that rgb+via compiles in all cases (#17355) 2022-06-10 22:01:46 -07:00
Dasky
568924c76c Add missing bracket for VIA brightness scaling (#17354) 2022-06-10 19:07:58 -07:00
yiancar
0fd08da806 Scale brigthness for VIA (#17352)
Co-authored-by: yiancar <yiancar@gmail.com>
2022-06-10 17:20:01 -07:00
QMK Bot
d05a1deb7c Merge remote-tracking branch 'origin/master' into develop 2022-06-10 22:24:58 +00:00
Ryan
b4b34cd2cd Wasdat: move some stuff to info.json (#17327) 2022-06-11 08:24:29 +10:00
QMK Bot
6b838785b7 Merge remote-tracking branch 'origin/master' into develop 2022-06-10 10:45:24 +00:00
Joel Challis
92665aef33 Promote 'layouts require matrix data' to api error (#17349) 2022-06-10 11:44:48 +01:00
Joel Challis
7baf9b3f35 Promote label with newlines to lint error (#17347) 2022-06-10 11:44:23 +01:00
QMK Bot
97fc4f1b6a Merge remote-tracking branch 'origin/master' into develop 2022-06-10 07:46:24 +00:00
jack
d8ace624c8 initial (#17345) 2022-06-10 08:45:31 +01:00
QMK Bot
738cec9bd5 Merge remote-tracking branch 'origin/master' into develop 2022-06-10 03:43:25 +00:00
Derek
7c097ee6b4 [Keyboard] Add Sodium keyboards (#17078)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: nacly <nacly@pop-os.localdomain>
2022-06-09 20:42:53 -07:00
QMK Bot
ef8a30250b Merge remote-tracking branch 'origin/master' into develop 2022-06-10 03:41:14 +00:00
Zac Scott
93c3a959a7 [Keymap] Add planck/scottzach1 keymap (#17083) 2022-06-09 20:40:43 -07:00
QMK Bot
ed15a579a7 Merge remote-tracking branch 'origin/master' into develop 2022-06-10 03:26:21 +00:00
zv0n
9da1b86d71 [keyboard] annepro2 Add and use functions to directly control led colors (#17196) 2022-06-10 13:25:48 +10:00
QMK Bot
c84d058c8b Merge remote-tracking branch 'origin/master' into develop 2022-06-10 01:16:19 +00:00
Gabriel Oliveira
9316023290 [Keyboard] Improve the durgot k3x0 readme.md (#17214) 2022-06-09 18:15:44 -07:00
QMK Bot
e5e2cd94be Merge remote-tracking branch 'origin/master' into develop 2022-06-10 01:13:18 +00:00
ILWrites
2f8704143e [Keyboard] Adding Sunsetter R2 keyboard to Charue family (#17269)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-06-09 18:12:31 -07:00
QMK Bot
474b4083ae Merge remote-tracking branch 'origin/master' into develop 2022-06-09 20:02:58 +00:00
Joel Challis
a599550adb Add support for linting deprecated and removed functionality (#17063)
* Add support for more lint warnings/errors

* Develop currently needs extra deps installed

* Lint a few more scenarios

* fix tests
2022-06-09 21:02:16 +01:00
QMK Bot
c5f26b0e9a Merge remote-tracking branch 'origin/master' into develop 2022-06-09 18:54:04 +00:00
jack
de43b09d25 [Keyboard] Fix kprepublic/bm60hsrgb_ec/rev2 (#17334) 2022-06-09 11:53:28 -07:00
jack
d2abfaeacd Fixup Pimoroni trackball code (#17335) 2022-06-09 10:09:00 -07:00
Drashna Jaelre
0ab51ee29d Add support for large Mouse Reports (#16371)
Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-06-08 18:39:16 -07:00
QMK Bot
84944df6a6 Merge remote-tracking branch 'origin/master' into develop 2022-06-08 21:52:12 +00:00
Tomasz Janeczko
6567b21688 Move more UART-based keyboards to use timeout correctly. (#17329)
Co-authored-by: Tomasz Janeczko <tomasz.j@hey.com>
2022-06-08 14:51:41 -07:00
QMK Bot
728f7308af Merge remote-tracking branch 'origin/master' into develop 2022-06-08 19:21:10 +00:00
peepeetee
f6a7bf2a83 [Keyboard] Add KPrepublic BM60hsrgb_ec V1 and V2 (#15104)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-06-08 12:20:26 -07:00
QMK Bot
0e2009c669 Merge remote-tracking branch 'origin/master' into develop 2022-06-08 06:24:16 +00:00
Jason Dunsmore
c9b71f953f [Keymap] Update keymap for user jasondunsmore (#17312) 2022-06-07 23:23:41 -07:00
QMK Bot
8a6fd0dc7e Merge remote-tracking branch 'origin/master' into develop 2022-06-08 01:48:42 +00:00
JunZuloo
5f72d54299 Update other_vscode.md (#17317)
Bracket pair colorizer has been deprecated since it is now a native feature, and VIM Keymap no longer exists, so I removed those 2 links.
2022-06-08 02:47:57 +01:00
QMK Bot
1e1f387be7 Merge remote-tracking branch 'origin/master' into develop 2022-06-08 00:48:36 +00:00
Nick Brassel
1d75e20cd8 Add WB32 evaluation board onekey targets. (#17330) 2022-06-08 10:47:56 +10:00
Nick Brassel
1085500e89 Rework paths for eeprom locations. (#17326)
* Rework paths for eeprom locations.

* File relocation.

* Wrong file move.

* Fixup test paths.
2022-06-08 09:42:35 +10:00
QMK Bot
6df5fce073 Merge remote-tracking branch 'origin/master' into develop 2022-06-07 18:33:49 +00:00
jpe230
5c7972760c [Keymap] CRKBD: Update jpe230 Keymap (#17280) 2022-06-07 11:31:28 -07:00
QMK Bot
5141d6eeb1 Merge remote-tracking branch 'origin/master' into develop 2022-06-07 18:31:22 +00:00
Andrew Kannan
1c97a0375e [Keyboard] Add BrutalV2 65 Keyboard (#17252)
* Add Brutal65 V2 to QMK

* Update info.json and copyright notices

* Update info.json]

* Update readme and delete chconf

* Update matrix and keymaps to match info json

* Update keyboards/cannonkeys/brutalv2_65/config.h

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

* Update keyboards/cannonkeys/brutalv2_65/readme.md

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/cannonkeys/brutalv2_65/rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-06-07 11:30:35 -07:00
QMK Bot
fe08bbc4a0 Merge remote-tracking branch 'origin/master' into develop 2022-06-07 18:30:09 +00:00
Andrew Kannan
fbe236fa77 [Keyboard] Add Cloudline PCB support (#17253)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-06-07 11:29:31 -07:00
QMK Bot
da1c562ddf Merge remote-tracking branch 'origin/master' into develop 2022-06-07 18:28:46 +00:00
Uy Bui
b8bbd0cb9a [Keyboard] Add Stello65 keyboard (#17168)
* [Keyboard] add Stello65 keyboard

* Apply suggestions from code review

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

* Apply suggestions from code review

Co-authored-by: Ryan <fauxpark@gmail.com>

* [Keyboard] update config pinout for stello65_sl_rev1

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-06-07 11:28:13 -07:00
QMK Bot
36109a887a Merge remote-tracking branch 'origin/master' into develop 2022-06-07 18:23:09 +00:00
Tomasz Janeczko
c681b6dbf3 [Keyboard] Handle timeout on UART for Redox Wireless (#17203)
* Handle timeout on UART for Redox Wireless receiver-to-keyboard communication.

- This fixes the issue of a keyboard deadlocking on the first matrix
  scan with Redox Wireless keyboards

* Remove an explicit cast.

Co-authored-by: Tomasz Janeczko <tomasz.j@hey.com>
2022-06-07 11:22:13 -07:00
QMK Bot
b74509d4ae Merge remote-tracking branch 'origin/master' into develop 2022-06-07 18:15:24 +00:00
Tommy Alatalo
5d767f8361 [Keyboard] Add alt34 keyboard (#17223)
* Add files for alt34 keyboard

* Add link to hardware bill of materials for alt34

* Change keyboard image link to imgur

* Remove platform specific defines from rev1.h

* Remove bluetooth and sleep led rules etc

* Add GPL license header to all source code files

* Shorten comment for NKRO_ENABLE

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

* Simplify option usage comment in rules.mk

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

* Set imgur link to largest size option

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

* Move rules.mk into rev1 folder entirely

* Remove .noci file

* Update keyboards/alt34/rev1/rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-06-07 11:14:44 -07:00
QMK Bot
9d226b92a8 Merge remote-tracking branch 'origin/master' into develop 2022-06-07 18:01:59 +00:00
trwnh
cf1e66b352 [Keymap] add trwnh keymap for gmmk pro (#17267) 2022-06-07 11:01:23 -07:00
QMK Bot
11836128fc Merge remote-tracking branch 'origin/master' into develop 2022-06-07 13:32:48 +00:00
anubhav dhiman
f0b1c8ced9 add new keyboard atset (#17195)
Co-authored-by: zvecr <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-06-07 23:31:56 +10:00
QMK Bot
6f82647e8d Merge remote-tracking branch 'origin/master' into develop 2022-06-06 22:30:38 +00:00
Travis Rigg
b85c224b7c docs: reflect systemd's change in language (#17322)
Like much of our field, systemd has renamed their `master` branch to `main`
2022-06-06 23:29:59 +01:00
Dasky
85b3b98570 Move SPLIT_HAND_PIN setup to split_pre_init (#17271)
* Move SPLIT_HAND_PIN setup to split_pre_init

* doppelganger should use old behaviour

* Add comment for future

Co-authored-by: Joel Challis <git@zvecr.com>

Co-authored-by: Joel Challis <git@zvecr.com>
2022-06-06 01:33:32 +01:00
Stefan Kerkmann
e89478eb0f [Core] Update C standard to GNU11, C++ to GNU++14 (#17114) 2022-06-06 08:47:22 +10:00
QMK Bot
6221c86186 Merge remote-tracking branch 'origin/master' into develop 2022-06-05 19:06:37 +00:00
Stefan Kerkmann
4c48760558 Apply EXPECT_REPORT and EXPECT_EMPTY_REPORT (#17311)
...convenience macros to test cases that where missed during #17284
2022-06-05 20:06:05 +01:00
QMK Bot
d6402fe9fb Merge remote-tracking branch 'origin/master' into develop 2022-06-05 11:15:11 +02:00
Pascal Getreuer
95d20e6d8b Fix and add unit tests for Caps Word to work with Unicode Map, Auto Shift, Retro Shift. (#17284)
* Fix Caps Word and Unicode Map

* Tests for Caps Word + Auto Shift and Unicode Map.

* Fix formatting

* Add additional keyboard report expectation macros

This commit defines five test utilities, EXPECT_REPORT, EXPECT_UNICODE,
EXPECT_EMPTY_REPORT, EXPECT_ANY_REPORT and EXPECT_NO_REPORT for use with
TestDriver.

EXPECT_REPORT sets a gmock expectation that a given keyboard report will
be sent. For instance,

  EXPECT_REPORT(driver, (KC_LSFT, KC_A));

is shorthand for

  EXPECT_CALL(driver,
      send_keyboard_mock(KeyboardReport(KC_LSFT, KC_A)));

EXPECT_UNICODE sets a gmock expectation that a given Unicode code point
will be sent using UC_LNX input mode. For instance for U+2013,

  EXPECT_UNICODE(driver, 0x2013);

expects the sequence of keys:

  "Ctrl+Shift+U, 2, 0, 1, 3, space".

EXPECT_EMPTY_REPORT sets a gmock expectation that a given keyboard
report will be sent. For instance

  EXPECT_EMPTY_REPORT(driver);

expects a single report without keypresses or modifiers.

EXPECT_ANY_REPORT sets a gmock expectation that a arbitrary keyboard
report will be sent, without matching its contents. For instance

  EXPECT_ANY_REPORT(driver).Times(1);

expects a single arbitrary keyboard report will be sent.

EXPECT_NO_REPORT sets a gmock expectation that no keyboard report will
be sent at all.

* Add tap_key() and tap_keys() to TestFixture.

This commit adds a `tap_key(key)` method to TestFixture that taps a
given KeymapKey, optionally with a specified delay between press and
release.

Similarly, the method `tap_keys(key_a, key_b, key_c)` taps a sequence of
KeymapKeys.

* Use EXPECT_REPORT, tap_keys, etc. in most tests.

This commit uses EXPECT_REPORT, EXPECT_UNICODE, EXPECT_EMPTY_REPORT,
EXPECT_NO_REPORT, tap_key() and tap_keys() test utilities from the
previous two commits in most tests. Particularly the EXPECT_REPORT
macro is frequently useful and makes a nice reduction in boilerplate
needed to express many tests.

Co-authored-by: David Kosorin <david@kosorin.net>
2022-06-05 09:14:02 +02:00
Nick Brassel
08c556b78b Add keymap wrappers for introspection into the keymap. (#17229)
* Introspection handlers for keymaps.

* Renaming.
2022-06-05 10:26:02 +10:00
Xelus22
af84772a5f initial 24lc32a (#16990) 2022-06-04 01:53:24 +01:00
QMK Bot
b1a3f806f5 Merge remote-tracking branch 'origin/master' into develop 2022-06-04 00:45:35 +00:00
eason
787165718d Disable features known to cause BIOS/suspend issues (#17270) 2022-06-04 01:44:53 +01:00
QMK Bot
bb324e5b3e Merge remote-tracking branch 'origin/master' into develop 2022-06-03 11:13:22 +00:00
Drashna Jaelre
706194b336 Add Encoder Map Swap Hands config for boards that support both features (#17294) 2022-06-03 12:12:15 +01:00
QMK Bot
267f392237 Merge remote-tracking branch 'origin/master' into develop 2022-06-02 18:30:44 +00:00
Joel Challis
5bcfc273ce Fix lint errors (#17293) 2022-06-02 19:30:07 +01:00
QMK Bot
b94baa8bc3 Merge remote-tracking branch 'origin/master' into develop 2022-06-02 17:20:59 +00:00
takishim
71b928fbec [Keyboard] Organized versions of mikeneko65 (#16985)
Co-authored-by: takishim <tadashi@kishimo.to>
2022-06-02 10:20:02 -07:00
QMK Bot
86e93d7654 Merge remote-tracking branch 'origin/master' into develop 2022-06-02 16:51:28 +00:00
Ryan Skidmore
9a587275cf keyboards: fix malformed info.json files (#17292) 2022-06-02 17:50:08 +01:00
QMK Bot
344b8410f7 Merge remote-tracking branch 'origin/master' into develop 2022-06-02 16:38:09 +00:00
Aidan Gauland
7c3cb99164 [Keymap] Fix maddie layout for ploopy/trackball_nano (#17213) 2022-06-02 09:37:28 -07:00
QMK Bot
8bb2c66c88 Merge remote-tracking branch 'origin/master' into develop 2022-06-02 16:18:53 +00:00
Václav Kučera
7ff666340c [Keyboard] Acheron Shark alpha Encoder support (#17266) 2022-06-02 09:17:47 -07:00
QMK Bot
73bd3dff8c Merge remote-tracking branch 'origin/master' into develop 2022-06-02 13:03:13 +00:00
wavtype
f330ef12b6 Add wavtype/p01_ultra (#16513)
* new fork (manta and foundation)

added foundation and manta firmware

* removed manta

* VIA compliant changes

added readme, info.json edits

* Update keyboards/wavtype/foundation/config.h

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/wavtype/foundation/readme.md

Co-authored-by: Joel Challis <git@zvecr.com>

* removed via.json and updated readme

* Update keyboards/wavtype/foundation/rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/wavtype/foundation/config.h

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/wavtype/foundation/config.h

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

* Update keymap.c

* added p01 ultra

* updated diode direction

proto used opposite diode direction

* removed foundation

* Update keyboards/wavtype/p01_ultra/rules.mk

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

* Update keyboards/wavtype/p01_ultra/config.h

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

* Update keyboards/wavtype/p01_ultra/config.h

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

* Update keyboards/wavtype/p01_ultra/config.h

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

* Update keyboards/wavtype/p01_ultra/config.h

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

* Update keyboards/wavtype/p01_ultra/readme.md

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

* Update keyboards/wavtype/p01_ultra/info.json

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/wavtype/p01_ultra/keymaps/via/keymap.c

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/wavtype/p01_ultra/keymaps/default/keymap.c

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/wavtype/p01_ultra/keymaps/default/keymap.c

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/wavtype/p01_ultra/keymaps/via/keymap.c

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/wavtype/p01_ultra/keymaps/via/keymap.c

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/wavtype/p01_ultra/keymaps/default/keymap.c

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/wavtype/p01_ultra/keymaps/default/keymap.c

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/wavtype/p01_ultra/rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/wavtype/p01_ultra/readme.md

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/wavtype/p01_ultra/config.h

Co-authored-by: Ryan <fauxpark@gmail.com>

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-06-02 14:02:36 +01:00
Dasky
af02baae78 Allow larger SPLIT_USB_TIMEOUT with default SPLIT_USB_TIMEOUT_POLL (#17272)
* Switch SPLIT_USB_DETECT loop to uint16_t

* Add assertion
2022-06-01 00:10:05 +01:00
QMK Bot
f9e97fd3c3 Merge remote-tracking branch 'origin/master' into develop 2022-05-31 21:38:36 +00:00
Carlo Sala
5b16671d7a move RESET to QK_BOOT (#17278)
* move RESET to QK_BOOT

* fix tapping_term
2022-05-31 22:37:28 +01:00
QMK Bot
38839a9105 Merge remote-tracking branch 'origin/master' into develop 2022-05-31 11:32:26 +00:00
Forrest Cahoon
8153b55e07 Add trailing parens to get_oneshot_mods in feature_advanced_keycodes.md (#17211) 2022-05-31 21:31:47 +10:00
QMK Bot
6fdce80822 Merge remote-tracking branch 'origin/master' into develop 2022-05-31 08:22:54 +00:00
moyi4681
d5ed3ae967 [Keyboard] fix dz64rgb rgb sleep (#17209) 2022-05-31 01:22:07 -07:00
Thomas Preisner
bbab8eb993 Make bootloader_jump for dualbank STM32 respect STM32_BOOTLOADER_DUAL_BANK_DELAY (#17178) 2022-05-30 23:20:10 -07:00
Andrew Dunai
ecce9900c9 Improve PS/2 mouse performance (#17111) 2022-05-30 23:15:17 -07:00
precondition
d44a950c10 Use TAP_HOLD_CAPS_DELAY for KC_LOCKING_CAPS_LOCK (#17099) 2022-05-30 22:55:33 -07:00
Nick Brassel
8545473307 Removes terminal from QMK. (#17258) 2022-05-30 22:38:08 -07:00
trwnh
9e2fe4eff6 Make SPI Mode configurable and change default mode to 3 (#17263) 2022-05-31 15:28:55 +10:00
QMK Bot
e869d089b7 Merge remote-tracking branch 'origin/master' into develop 2022-05-31 05:03:28 +00:00
Drashna Jaelre
cda343acbe [Keymap] Drashna update for post Q2 merge (#17241) 2022-05-30 22:02:55 -07:00
QMK Bot
f663f84413 Merge remote-tracking branch 'origin/master' into develop 2022-05-31 04:47:02 +00:00
trwnh
b554e4b612 Change AW20216 SPI Mode from 0 to 3, to fix RGB LEDs on GMMK Pro (#17262) 2022-05-31 14:46:21 +10:00
QMK Bot
044486500c Merge remote-tracking branch 'origin/master' into develop 2022-05-31 04:09:14 +00:00
Sergey Vlasov
650be92cf9 Nix shell updates (#17243) 2022-05-31 14:08:23 +10:00
QMK Bot
a099579aa0 Merge remote-tracking branch 'origin/master' into develop 2022-05-31 02:09:37 +00:00
Joel Challis
0e11b511e4 Convert ergodone to use core mcp23018 driver (#17005) 2022-05-31 03:08:56 +01:00
QMK Bot
67e80780bb Merge remote-tracking branch 'origin/master' into develop 2022-05-30 22:44:05 +00:00
Joel Challis
2879573688 Fix various lint errors (#17255)
* Fix various lint errors

* reduce complexity
2022-05-30 23:43:36 +01:00
QMK Bot
6e4e50d5aa Merge remote-tracking branch 'origin/master' into develop 2022-05-30 22:06:28 +00:00
Dasky
25ec68c408 Fix docs typo (#17254) 2022-05-30 23:05:57 +01:00
Dasky
2de70e6f2d Add uf2-split-* make targets. (#17257) 2022-05-31 08:04:50 +10:00
QMK Bot
31fb141528 Merge remote-tracking branch 'origin/master' into develop 2022-05-30 21:46:00 +00:00
chalex
3826fca637 [Keyboard] Add str.merro60 pcb (#17097)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Alexander Lee <aclee3@CGHan-Macbook-2015.local>
Co-authored-by: chalex <chlxbsmt@gmail.com>
2022-05-30 14:45:27 -07:00
QMK Bot
6b640db4bb Merge remote-tracking branch 'origin/master' into develop 2022-05-30 18:29:09 +00:00
Juno Nguyen
15a86d5c53 [Keymap] Updates to layouts/community/ortho_4x12/junonum (#17249) 2022-05-30 11:28:35 -07:00
QMK Bot
e4be4d282c Merge remote-tracking branch 'origin/master' into develop 2022-05-30 18:07:56 +00:00
Seth Barberee
cc7a3f8dc7 [Keymap] Update sethbarberee code to QK_BOOT and try out DVVORAK (#17230) 2022-05-30 11:07:16 -07:00
QMK Bot
9a2943d221 Merge remote-tracking branch 'origin/master' into develop 2022-05-30 14:34:54 +00:00
Joel Challis
a06b5cae41 Fix API errors (#17239) 2022-05-30 15:34:20 +01:00
QMK Bot
f03fe5b917 Merge remote-tracking branch 'origin/master' into develop 2022-05-29 19:16:27 +00:00
Joel Challis
e22a183329 Use correct container for unit test workflow (#17242) 2022-05-29 20:15:54 +01:00
QMK Bot
6123698270 Merge remote-tracking branch 'origin/master' into develop 2022-05-29 05:18:24 +00:00
Joel Challis
6a0ed63eb1 Fix quark_lp via firmware size (#17233) 2022-05-29 06:17:49 +01:00
QMK Bot
a765f730b1 Merge remote-tracking branch 'origin/master' into develop 2022-05-29 05:10:23 +00:00
jack
07f5147621 Fixup iron165r2 (#17119)
* initial

* revert some defines

* formatting

* apply changes

* update readme

* suggestion
2022-05-29 06:09:42 +01:00
QMK Bot
3ce029c7fd Merge remote-tracking branch 'origin/master' into develop 2022-05-28 23:07:45 +00:00
Nick Brassel
89a5d5aea0 Fixup command sequencing for master/develop. (#17227) 2022-05-29 09:07:11 +10:00
Nick Brassel
87c3a53716 Branch point after 2022-05-28 Breaking Change. 2022-05-29 08:16:00 +10:00
Nick Brassel
103c08cc75 Merge branch 'master' into develop 2022-05-29 08:13:56 +10:00
Nick Brassel
b835171008 Merge branch 'develop' -- breaking changes 2022-05-28. 2022-05-29 07:57:11 +10:00
Nick Brassel
0c8f78020d Merge point for 2022-05-28 Breaking Change 2022-05-29 07:53:50 +10:00
Nick Brassel
d0af56da33 Breaking changes for 2022q2. (#17221) 2022-05-29 07:50:21 +10:00
Joel Challis
ebd4027883 Refactor legacy quantum keycodes in default-ish keymaps (#17150) 2022-05-27 06:07:42 +10:00
QMK Bot
d83fda01cf Merge remote-tracking branch 'origin/master' into develop 2022-05-25 12:11:52 +00:00
Takeshi ISHII
f5d091a9d5 Small update to Symmetric70 keyboard readme (#17188)
Added a little description to reademe.md under `handwired/symmetric70_proto/{matrix_debug|matrix_fast}`.
2022-05-25 21:11:13 +09:00
QMK Bot
23732068a4 Merge remote-tracking branch 'origin/master' into develop 2022-05-24 17:09:41 +00:00
James Young
c3ff06c534 SkeletonNumPad Configurator Key Sequence Fix (#17204)
* info.json: apply friendly formatting

* info.json: fix key sequence
2022-05-24 18:08:37 +01:00
zvecr
6342354cf6 Disable python formatting for some files 2022-05-24 02:35:59 +01:00
zvecr
cbc68dfd21 Update keyboard aliases 2022-05-24 02:20:12 +01:00
zvecr
de6360feca stub changelog 2022-05-24 01:55:34 +01:00
QMK Bot
f5e1d2f76a Merge remote-tracking branch 'origin/master' into develop 2022-05-23 06:22:01 +00:00
Xelus22
00fcfd9181 [Keyboard][Fix] Change default keymap tilde to grv (#17185) 2022-05-22 23:21:23 -07:00
QMK Bot
64e2dbedc3 Merge remote-tracking branch 'origin/master' into develop 2022-05-23 06:11:55 +00:00
Ramon Imbao
5aef750379 [Keyboard] Add plywrks Ahgase (#17191) 2022-05-22 23:11:17 -07:00
QMK Bot
0bef2bfeb6 Merge remote-tracking branch 'origin/master' into develop 2022-05-23 06:04:11 +00:00
Albert Y
c9abb03662 [Keyboard] mj64 Increase LED count (#17194) 2022-05-22 23:03:38 -07:00
Joy Lee
1c7e8b9a9d Added support for Wb32fq95 (#16871) 2022-05-23 15:57:24 +10:00
QMK Bot
1182f5b4be Merge remote-tracking branch 'origin/master' into develop 2022-05-23 05:06:35 +00:00
Xyverz
416c59fc52 [Keyboard] Atreus62update (#17179)
Co-authored-by: Ian Sterling <503326@MC02YT9K9LVCF.tld>
Co-authored-by: Ian Sterling <80361942+iansterlingaaa@users.noreply.github.com>
Co-authored-by: Ian Sterling <xyverz@paeroa-arch.localdomain>
2022-05-22 22:05:55 -07:00
QMK Bot
ac1c5f8dfe Merge remote-tracking branch 'origin/master' into develop 2022-05-21 22:54:42 +00:00
-k
a1fb86b17a Add massdrop/alt:charlesrocket keymap (#17173) 2022-05-21 15:54:09 -07:00
QMK Bot
f5b3f12544 Merge remote-tracking branch 'origin/master' into develop 2022-05-21 16:37:24 +00:00
Diego Palacios
e6071b891a Added Cantor keyboard (#16552) 2022-05-21 17:36:54 +01:00
QMK Bot
afdf1c23dc Merge remote-tracking branch 'origin/master' into develop 2022-05-20 17:23:16 +00:00
James Young
0103f7877a PJB Eros Community Layout Support (#17158) 2022-05-20 10:23:03 -07:00
James Young
a9c8a88e43 Ryan Skidmore rskeys100 Community Layout Support (#17159) 2022-05-20 10:22:42 -07:00
QMK Bot
bb7572b42f Merge remote-tracking branch 'origin/master' into develop 2022-05-20 17:13:33 +00:00
James Young
caa5dcc672 Dailycraft Sandbox Configurator Data (#17169) 2022-05-20 10:12:58 -07:00
QMK Bot
b5725c05bd Merge remote-tracking branch 'origin/master' into develop 2022-05-20 17:10:54 +00:00
James Young
2a544710d7 Small Markdown Patch for docs/feature_rgb_matrix.md (#17171) 2022-05-20 10:10:17 -07:00
QMK Bot
9fa106f76e Merge remote-tracking branch 'origin/master' into develop 2022-05-20 16:15:13 +00:00
jpe230
f296e1d1e2 [Docs] Align LED Matrix docs with RGB matrix docs (#17140) 2022-05-20 09:13:40 -07:00
QMK Bot
5ac861efa5 Merge remote-tracking branch 'origin/master' into develop 2022-05-20 16:12:15 +00:00
Albert Y
799a7f98ce [Keyboard] yeti LED index correction (#17138) 2022-05-20 09:10:31 -07:00
Kyle McCreery
c60c19e8d5 [Keyboard] Add eeprom IC-less rev for MechWild OBE and Waka60 (#17126) 2022-05-20 09:10:05 -07:00
QMK Bot
90f3e139e6 Merge remote-tracking branch 'origin/master' into develop 2022-05-20 16:09:40 +00:00
Albert Y
713ce7b276 [Keyboard] rskeys100 LED index correction (#17139) 2022-05-20 09:09:19 -07:00
QMK Bot
f155db37d4 Merge remote-tracking branch 'origin/master' into develop 2022-05-20 16:09:04 +00:00
Kyle McCreery
d5aab127d2 [Docs] Update Steno Keycode Table (#17155) 2022-05-20 09:09:00 -07:00
AnthonyNguyen168
e1759cd638 [Keyboard] Update Layouts for MB-65S and MB-65H (#17160) 2022-05-20 09:08:33 -07:00
QMK Bot
c421ecdc37 Merge remote-tracking branch 'origin/master' into develop 2022-05-20 05:51:48 +00:00
QMK Bot
92548bb3e7 [CI] Format code according to conventions (#17164) 2022-05-20 15:51:11 +10:00
QMK Bot
becf0307d7 [CI] Format code according to conventions (#17165) 2022-05-20 15:50:48 +10:00
QMK Bot
1557455f7f Merge remote-tracking branch 'origin/master' into develop 2022-05-20 05:44:45 +00:00
Albert Y
90612fce92 [Keyboard] 0xc_pad LED index correction (#17120) 2022-05-19 22:44:28 -07:00
Albert Y
5591489747 [Keyboard] launch_1 LED index correction (#17118) 2022-05-19 22:44:08 -07:00
QMK Bot
0dbaa7e057 Merge remote-tracking branch 'origin/master' into develop 2022-05-20 05:38:49 +00:00
aadriance
94d89dfe82 [Keyboard] Add Eu isolation Keyboard (#17102)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: TuckTuckFloof <stnashmore@gmail.com>
2022-05-19 22:38:15 -07:00
QMK Bot
8b33ca9fe2 Merge remote-tracking branch 'origin/master' into develop 2022-05-20 05:29:11 +00:00
anubhav dhiman
c7e114e0bb [Keyboard] add rad keyboard (#17088)
Co-authored-by: zvecr <git@zvecr.com>
2022-05-19 22:28:41 -07:00
QMK Bot
a97ed8a1fd Merge remote-tracking branch 'origin/master' into develop 2022-05-20 04:38:48 +00:00
takashicompany
38073c3d44 [Keyboard] Add miniZone keyboard (#16644)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-05-19 21:38:00 -07:00
GloriousThrall
83fa6fe916 Move GMMK Pro to allow for multiple revisions (#16423)
* Added GMMK PRO Rev2 WBG7 MCU compatibility. Added GMMK 2 WBG7 MCU compatibility.

* GMMK PRO MCU Updates only (removed other kbs)

* fix problems

* Optimize the code.

* Update form develop branch

* Update

* Updater from qmk/develop

* Update

* Update config.h

* Update config.h

* Remove gmmk pro rev2

* move moults31/keymap.c

* Update

* tidy up

Co-authored-by: Joy <chang.li@westberrytech.com>
Co-authored-by: zvecr <git@zvecr.com>
2022-05-20 01:47:22 +01:00
Pascal Getreuer
b5608cbb6d Continue Caps Word when AltGr (right Alt) is held. (#17156)
This is a minor bug fix for Caps Word. Currently, Caps Word turns off
whenever a non-shift mod becomes active. This is done to avoid
interfering with hotkeys.

This commit makes an exception to continue Caps Word when AltGr (right
Alt) is held. Outside the US, the AltGr key is used to type additional
symbols (https://en.wikipedia.org/wiki/AltGr_key). Depending on the
language, these may include symbols used within words like accented
letters where it would be desirable to continue Caps Word.
2022-05-20 01:39:00 +01:00
QMK Bot
36c8462f0a Merge remote-tracking branch 'origin/master' into develop 2022-05-19 20:26:30 +00:00
James Young
c4c67f2eb2 KBDfans Tiger80 Community Layout Support and Keymap Touch-Up (#17149)
* info.json: apply friendly formatting

* rename LAYOUT_all to LAYOUT_tkl_f13_ansi_tsangan

* enable Community Layout support

* refactor keymaps to use grid alignment
2022-05-19 13:25:56 -07:00
QMK Bot
b4d65aac7f Merge remote-tracking branch 'origin/master' into develop 2022-05-19 17:55:45 +00:00
James Young
394f147897 KBDfans Phase One Layout Macro Additions and Configurator Data (#17148)
* phaseone.h: add matrix diagram

* add QMK Configurator data

* add LAYOUT_65_ansi_blocker_split_bs macro

* add LAYOUT_65_ansi_wkl_split_bs macro

* add LAYOUT_65_iso_blocker macro

* add LAYOUT_65_iso_blocker_split_bs macro

* add LAYOUT_65_iso_wkl macro

* add LAYOUT_65_iso_wkl_split_bs macro

* rename LAYOUT_65_ansi_wkl to LAYOUT_65_ansi_blocker_tsangan_wkl

Differentiates the layout supported here from QMK's `65_ansi_blocker_tsangan` Community Layout, which is equivalent to this but with a 1u GUI key between Left Ctrl and Left Alt.

* rename new layout macros for codebase consistency

- `LAYOUT_65_ansi_wkl_split_bs` -> `LAYOUT_65_ansi_blocker_tsangan_wkl_split_bs`
- `LAYOUT_65_iso_wkl` -> `LAYOUT_65_iso_blocker_tsangan_wkl`
- `LAYOUT_65_iso_wkl_split_bs` -> `LAYOUT_65_iso_blocker_tsangan_wkl_split_bs`

* add reference keymaps

Add keymaps which demonstrate the layout macro implementations.
2022-05-19 10:54:57 -07:00
QMK Bot
19e6e6d1de Merge remote-tracking branch 'origin/master' into develop 2022-05-19 07:48:36 +00:00
James Young
89e0fba75d Hineybush Ibis Layout Additions and Configurator Rendering Update (#17132)
* info.json: apply friendly formatting

* info.json: remove dead space from rendering

* info.json: insert line breaks between physical rows in layout data

* info.json: fix overlap in key rendering

Fixes an issue where the ANSI Enter key renders on top of the ISO Hash/Tilde key, visually hiding the latter.

* add LAYOUT_ansi_all macro with associated keymap

Duplicates `LAYOUT_all`, but with the ISO Hash/Tilde and ISO Backslash keys removed.

    - ANSI Enter and 2.25u Left Shift
    - Backspace, Right Shift, Numpad Plus and Numpad Enter all split
    - 1.5 / 1 / 1.5 / 6.25 / 1.25 / 1.25 / 1.25 Bottom Row

* add LAYOUT_iso_all macro with associated keymap

Duplicates `LAYOUT_all`, but with the ANSI Backslash key removed.

    - ISO Enter and 1.25u Left Shift
    - Backspace, Right Shift, Numpad Plus and Numpad Enter all split
    - 1.5 / 1 / 1.5 / 6.25 / 1.25 / 1.25 / 1.25 Bottom Row
2022-05-19 00:48:01 -07:00
QMK Bot
ce9a5aaef3 Merge remote-tracking branch 'origin/master' into develop 2022-05-18 19:58:37 +00:00
Takeshi ISHII
80405c6d96 Fix platforms/avr/drivers/ws2812.c (#17043)
* Fix platforms/avr/drivers/ws2812.c

`platforms/avr/drivers/ws2812.c` has been changed to use `DDRx_ADDRESS()` and `PORTx_ADDRESS()` instead of `_SFR_IO8()` in #8646.  To use them, `#include <pin_defs.h>` is required.

 ## Error Log
* create new keyboard
```shell
bash-3.2$ qmk new-keyboard
Ψ Generating a new QMK keyboard directory

Name Your Keyboard Project
For more infomation, see:
https://docs.qmk.fm/#/hardware_keyboard_guidelines?id=naming-your-keyboardproject

Keyboard Name? ws2812_test
..................................
     36. WB32F3G71
Please enter your choice:  [12]
Ψ Created a new keyboard called ws2812_test.
Ψ To start working on things, `cd` into keyboards/ws2812_test,
Ψ or open the directory in your preferred text editor.
Ψ And build with qmk compile -kb ws2812_test -km default.
```
* Enable RGBLIGHT.
```shell
bash-3.2$ echo RGBLIGHT_ENABLE=yes >> ./keyboards/ws2812_test/rules.mk
bash-3.2$ echo '#define RGB_DI_PIN B1' >> ./keyboards/ws2812_test/config.h
bash-3.2$ echo '#define RGBLED_NUM 6' >> ./keyboards/ws2812_test/config.h
```
* Compile
```shell
bash-3.2$ make ws2812_test:default

QMK Firmware 0.16.9
Making ws2812_test with keymap default

avr-gcc (Homebrew AVR GCC 8.4.0_2) 8.4.0
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

.....................
Compiling: quantum/process_keycode/process_rgb.c                                                    [OK]
Compiling: platforms/avr/drivers/ws2812.c                                                          platforms/avr/drivers/ws2812.c: In function 'ws2812_setleds':
platforms/avr/drivers/ws2812.c:40:5: error: implicit declaration of function 'DDRx_ADDRESS' [-Werror=implicit-function-declaration]
     DDRx_ADDRESS(RGB_DI_PIN) |= pinmask(RGB_DI_PIN);
     ^~~~~~~~~~~~
In file included from <command-line>:
./keyboards/ws2812_test/config.h:21:20: error: 'B1' undeclared (first use in this function); did you mean 'PB1'?
 #define RGB_DI_PIN B1
                    ^~
platforms/avr/drivers/ws2812.c:40:18: note: in expansion of macro 'RGB_DI_PIN'
     DDRx_ADDRESS(RGB_DI_PIN) |= pinmask(RGB_DI_PIN);
                  ^~~~~~~~~~
./keyboards/ws2812_test/config.h:21:20: note: each undeclared identifier is reported only once for each function it appears in
 #define RGB_DI_PIN B1
                    ^~
platforms/avr/drivers/ws2812.c:40:18: note: in expansion of macro 'RGB_DI_PIN'
     DDRx_ADDRESS(RGB_DI_PIN) |= pinmask(RGB_DI_PIN);
                  ^~~~~~~~~~
platforms/avr/drivers/ws2812.c:42:47: error: implicit declaration of function 'PORTx_ADDRESS' [-Werror=implicit-function-declaration]
     uint8_t masklo = ~(pinmask(RGB_DI_PIN)) & PORTx_ADDRESS(RGB_DI_PIN);
                                               ^~~~~~~~~~~~~
In file included from /usr/local/Cellar/avr-gcc@8/8.4.0_2/avr/include/avr/io.h:99,
                 from /usr/local/Cellar/avr-gcc@8/8.4.0_2/avr/include/avr/interrupt.h:38,
                 from platforms/avr/drivers/ws2812.c:24:
platforms/avr/drivers/ws2812.c: In function 'ws2812_sendarray_mask':
./keyboards/ws2812_test/config.h:21:20: error: 'B1' undeclared (first use in this function); did you mean 'PB1'?
 #define RGB_DI_PIN B1
                    ^~
platforms/avr/drivers/ws2812.c:167:69: note: in expansion of macro 'RGB_DI_PIN'
                      : "r"(curbyte), "I"(_SFR_IO_ADDR(PORTx_ADDRESS(RGB_DI_PIN))), "r"(maskhi), "r"(masklo));
                                                                     ^~~~~~~~~~
cc1: all warnings being treated as errors
 [ERRORS]
 |
 |
 |
make[1]: *** [.build/obj_ws2812_test_default/ws2812.o] Error 1
make: *** [ws2812_test:default] Error 1
Make finished with errors
```

* change include order
2022-05-18 20:58:03 +01:00
QMK Bot
3904a6afbe Merge remote-tracking branch 'origin/master' into develop 2022-05-18 17:33:52 +00:00
Takeshi ISHII
33d568e29b Update mtei's keymap (helix/rev2:five_rows, helix/pico:mtei, helix/rev3_5rows:five_rows) (#16966)
* add users/mtei/key_blocks.h

This change does not alter the binary of the build result.

Moved common macro definitions in the following files to users/mtei/key_blocks.h.
 * keyboards/helix/rev2/keymaps/five_rows/keymap.c
 * keyboards/helix/rev3_5rows/keymaps/five_rows/keymap.c

* remove INIT_HELIX_OLED() in helix:five_rows

This change does not alter the binary of the build result.

* update helix/pico/keymaps/mtei/keymap.c

Changed helix/pico/keymaps/mtei/keymap.c to use users/mtei/key_blocks.h.

This change does not alter the binary of the build result.

* Remove old SSD1306OLED code from users/mtei/oled_display.c

This change does not alter the binary of the build result.

* add options ENABLE_COLEMAK, ENABLE_DVORAK and ENABLE_EUCALYN into five_rows/keymap.c

* add users/mtei/{config.h,rules.mk,user_featues.mk,user_options.mk}

* move layer_names[] from users/mtei/oled_display.c to keymaps/five_rows/keymap.c

* Update keyboards/helix/pico/keymaps/mtei/config.h

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/helix/pico/keymaps/mtei/config.h

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/helix/pico/keymaps/mtei/keymap.c

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/helix/rev2/keymaps/five_rows/config.h

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/helix/rev2/keymaps/five_rows/config.h

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/helix/rev2/keymaps/five_rows/keymap.c

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/helix/rev3_5rows/keymaps/five_rows/config.h

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/helix/rev3_5rows/keymaps/five_rows/config.h

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/helix/rev3_5rows/keymaps/five_rows/keymap.c

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update users/mtei/config.h

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update users/mtei/config.h

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update users/mtei/cpp_map.h

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update users/mtei/cpp_map.h

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update users/mtei/debug_config.h

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update users/mtei/debug_config.h

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update users/mtei/layer_number_util.h

Co-authored-by: Ryan <fauxpark@gmail.com>

Co-authored-by: Ryan <fauxpark@gmail.com>
2022-05-19 02:33:17 +09:00
Joel Challis
6503987c84 Workaround for recent -Werror=array-bounds AVR issues (#17136) 2022-05-18 11:06:55 +01:00
Joel Challis
40e33d03a8 Recommend pillow as part of manual MSYS install (#17133) 2022-05-17 21:50:48 +01:00
QMK Bot
37eee020ed Merge remote-tracking branch 'origin/master' into develop 2022-05-17 18:49:34 +00:00
Ryan
d241e80533 Keymap FAQ updates (#17130) 2022-05-18 04:48:59 +10:00
QMK Bot
6a11331a41 Merge remote-tracking branch 'origin/master' into develop 2022-05-17 16:13:31 +00:00
James Young
f736828fa8 Frooastside Walnut Community Layout Support (#17112)
* LAYOUT_iso: move Enter to home row

This commit makes the layout macro compatible with QMK's `tkl_nofrow_iso` Community Layout.

* rename LAYOUT_ansi to LAYOUT_tkl_nofrow_ansi

* rename LAYOUT_iso to LAYOUT_tkl_nofrow_iso

* enable Community Layout support
2022-05-17 09:12:52 -07:00
QMK Bot
8b79f30cd5 Merge remote-tracking branch 'origin/master' into develop 2022-05-17 13:20:51 +00:00
durken1
dba5b730a3 Update pr_checklist.md (#17122) 2022-05-17 14:20:13 +01:00
QMK Bot
cc8c539d00 Merge remote-tracking branch 'origin/master' into develop 2022-05-17 12:01:31 +00:00
John-Schreiber
6560903350 Adding VIA support for bfo-9000 (#17116) 2022-05-17 13:01:26 +01:00
Xelus22
654baebb2c fix non-working builds (#17123) 2022-05-17 13:00:26 +01:00
QMK Bot
7541e75c3e Merge remote-tracking branch 'origin/master' into develop 2022-05-17 05:05:36 +00:00
HorrorTroll
e9e83b4da7 [Keyboard] Fixed Gas75 info.json and keymap for M64 RGB (#17081) 2022-05-16 22:05:05 -07:00
QMK Bot
978e2fcd14 Merge remote-tracking branch 'origin/master' into develop 2022-05-17 05:03:38 +00:00
Albert Y
b6ee006060 [Keyboard] lulu LED index correction (#17108) 2022-05-16 22:03:08 -07:00
QMK Bot
1a61f1f578 Merge remote-tracking branch 'origin/master' into develop 2022-05-17 05:02:48 +00:00
Albert Y
8b9cb030a7 [Keyboard] Latinpad LED index correction (#17109) 2022-05-16 22:02:35 -07:00
Albert Y
aa970e8560 [Keyboard] mach3 LED index correction (#17110) 2022-05-16 22:02:14 -07:00
QMK Bot
68f466db87 Merge remote-tracking branch 'origin/master' into develop 2022-05-17 04:46:07 +00:00
Álvaro A. Volpato
467f3ae872 [Keyboard] Add Iron165R2 PCB support (#16948) 2022-05-16 21:45:56 -07:00
Drashna Jaelre
f22e8585a1 [Keyboard] Fix too many elements in g_led_config for quark_lp (#17117) 2022-05-16 21:45:11 -07:00
QMK Bot
ac1173c3d4 Merge remote-tracking branch 'origin/master' into develop 2022-05-17 03:28:01 +00:00
Drashna Jaelre
4b7555117a [Keyboard] Fix compilation issues for Quark LP (#17009)
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-05-16 20:27:22 -07:00
QMK Bot
6f499cfa12 Merge remote-tracking branch 'origin/master' into develop 2022-05-17 01:45:33 +00:00
James Young
bc2a6cf6ae DigiCarpice Configurator Rendering Fix (#17113)
* info.json: apply friendly formatting

* info.json: rebuild layout data
2022-05-17 02:44:34 +01:00
QMK Bot
d47c4ed4d0 Merge remote-tracking branch 'origin/master' into develop 2022-05-16 11:47:33 +00:00
moyi4681
6a94a9547d fix tiger80 matrix error (#17107) 2022-05-16 12:46:37 +01:00
Nick Brassel
5816288926 Warn about LTO with arm_atsam, not ChibiOS. (#17106) 2022-05-16 15:29:55 +10:00
Joel Challis
85289e34ae Various fixes for g_led_config lint warnings (#17104) 2022-05-16 09:40:56 +10:00
Joel Challis
608fa5154c Data driven g_led_config (#16728) 2022-05-16 07:39:29 +10:00
Joel Challis
b7771ec25b RESET -> QK_BOOT default keymaps (#17037) 2022-05-15 20:26:27 +01:00
Ryan
4a8bd7b9a5 Rename keymap_extras headers for consistency (#16939) 2022-05-15 21:27:01 +10:00
Drashna Jaelre
f090881aeb [Feature] Add support for multiple switchs/solenoids to Haptic Feedback engine (#15657) 2022-05-15 21:24:35 +10:00
Stefan Kerkmann
4d107feca9 Check for ongoing transfers on the OUT endpoint (#16974)
...when attempting to start a receiving USB transfer. Previously, we would
check on the IN endpoint which is the transmitting part of the USB endpoint.
This is wrong and lead to two USB transfers being started immediately
after each other in case of e.g. RAW HID endpoints:

1. When finishing an OUT transfer the low level USB driver calls the out_cb
callback, which in turn initiates another OUT transfer by calling
qmkusbDataReceived.

2. When the raw hid receive channel runs empty inside the raw_hid task,
another OUT transfer is started to potentially fill the channel again. This
happens by calling ibnotify.

Both events occur directly after each other, thus triggering the bug.
2022-05-14 23:17:14 +01:00
QMK Bot
da63289505 Format code according to conventions (#17096) 2022-05-14 23:14:49 +01:00
QMK Bot
a899c097ce Merge remote-tracking branch 'origin/master' into develop 2022-05-14 22:09:12 +00:00
Mateusz Ż
94755308e0 Fix anchors with <code> in table of content (#15169) 2022-05-14 23:08:32 +01:00
Drashna Jaelre
db887e63d7 Enhancement and fixes of "Secure" feature (#16958) 2022-05-14 23:07:08 +01:00
QMK Bot
baa8d07fdb Merge remote-tracking branch 'origin/master' into develop 2022-05-14 21:29:01 +00:00
James Young
3a543d8990 Eason Capsule65 Community Layout Support (#17090)
* capsule65.h: modify matrix diagram

Taken from the VIA layout data.

* rename LAYOUT to LAYOUT_all

* add LAYOUT_65_ansi macro

* add LAYOUT_65_ansi_blocker macro

* add LAYOUT_65_ansi_blocker_tsangan macro

* add LAYOUT_65_ansi_split_bs macro

* add LAYOUT_65_ansi_blocker_split_bs macro

* add LAYOUT_65_ansi_blocker_tsangan_split_bs macro

* add LAYOUT_65_iso macro

* add LAYOUT_65_iso_split_bs macro

* add LAYOUT_65_iso_blocker macro

* add LAYOUT_65_iso_blocker_split_bs macro

* add LAYOUT_65_iso_blocker_tsangan macro

* add LAYOUT_65_iso_blocker_tsangan_split_bs macro

* enable Community Layout support

* info.json: update maintainer value

This field is meant to reference the maintainer's GitHub username.
2022-05-14 22:28:29 +01:00
QMK Bot
710e8c0ccc Merge remote-tracking branch 'origin/master' into develop 2022-05-14 21:25:09 +00:00
James Young
90a43f9884 Axolstudio Foundation Gamma: Community Layout Support (#17080)
* LAYOUT_tkl_f13_ansi_tsangan support

Renames `LAYOUT_ansi_tsangan` to `LAYOUT_tkl_f13_ansi_tsangan`. Also enables Community Layout support.

* LAYOUT_tkl_f13_ansi_tsangan_split_bs_rshift support
2022-05-14 22:23:58 +01:00
QMK Bot
c0f0f594d4 Merge remote-tracking branch 'origin/master' into develop 2022-05-14 21:23:13 +00:00
James Young
8c58af39af Avalanche: add QMK Configurator data (#17092)
* avalanche/v1: add info.json

* avalanche/v2: add info.json

* avalanche/v3: add info.json
2022-05-14 22:22:39 +01:00
QMK Bot
78a9e1708a Merge remote-tracking branch 'origin/master' into develop 2022-05-14 21:22:05 +00:00
James Young
24f378e6c3 Clickety Split Leeloo: QMK Configurator Fixes (#17093)
* info.json: fix key sequence error

* info.json: fix visual rendering

Clarify the physical locations of the keys.

* info.json: update maintainer field

This field is meant to reference the maintainer's GitHub username.
2022-05-14 22:21:31 +01:00
Drashna Jaelre
cd8d2b7f7f Revert "Fix kinetic mouse mode (#16951)" (#17095) 2022-05-14 13:03:07 -07:00
QMK Bot
3eb6558602 Merge remote-tracking branch 'origin/master' into develop 2022-05-14 16:15:06 +00:00
James Young
2f9197cfcd F13 TKL with Split Backspace and Split Right Shift Community Layouts (#17082)
* add tkl_f13_ansi_split_bs_rshift Community Layout

* add tkl_f13_ansi_tsangan_split_bs_rshift Community Layout

* add tkl_f13_iso_split_bs_rshift Community Layout

* add tkl_f13_iso_tsangan_split_bs_rshift Community Layout
2022-05-14 09:14:19 -07:00
Pascal Getreuer
68b16bba68 [Core] Add Caps Word feature to core (#16588)
Co-authored-by: precondition <57645186+precondition@users.noreply.github.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-05-14 16:00:32 +10:00
Yorick Peterse
90eef4cd15 Fix kinetic mouse mode (#16951)
Co-authored-by: Jan Christoph Ebersbach <jceb@e-jc.de>
2022-05-14 15:26:12 +10:00
Drashna Jaelre
787a68948f [Core] Add Reboot keycode to core (#15990) 2022-05-14 13:35:49 +10:00
QMK Bot
425c54cf8c Merge remote-tracking branch 'origin/master' into develop 2022-05-14 03:17:20 +00:00
HorrorTroll
8e2b8413b4 [Keyboard] Add M64 RGB (#17069) 2022-05-13 20:16:46 -07:00
QMK Bot
e0cdeab951 Merge remote-tracking branch 'origin/master' into develop 2022-05-13 16:54:39 +00:00
takashicompany
82828c3205 [Keyboard] Add keyboard "Spreadwriter" (#17031)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-05-13 09:53:43 -07:00
QMK Bot
158dc6829a Merge remote-tracking branch 'origin/master' into develop 2022-05-13 16:35:28 +00:00
HorrorTroll
3a80275fa1 [Keyboard] Fixed info.json issue, some key got wrong pos for Gas75 (#17070) 2022-05-13 09:34:47 -07:00
QMK Bot
75a32de441 Merge remote-tracking branch 'origin/master' into develop 2022-05-13 06:36:47 +00:00
Stephon Parker
e5e7039368 [Keymap] Contra - QWERTY US basic layout; MechWild Marcuio - EN update layout (#16787)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Stephon Parker <stephonparker@Stephons-MacBook-Pro.local>
2022-05-12 23:36:12 -07:00
QMK Bot
c4b2e9101d Merge remote-tracking branch 'origin/master' into develop 2022-05-13 06:34:42 +00:00
Josh Hinnebusch
ffe16386f0 [Keyboard] H60 updates (#16999)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-05-12 23:33:53 -07:00
QMK Bot
ff8c962d2e Merge remote-tracking branch 'origin/master' into develop 2022-05-13 06:22:36 +00:00
Andrew Kannan
fc3d3ef076 [Keyboard] Add caps and num indicators to Balance keyboard (#17075) 2022-05-12 23:22:03 -07:00
QMK Bot
478f83f711 Merge remote-tracking branch 'origin/master' into develop 2022-05-13 06:21:56 +00:00
Kyle McCreery
c199514372 [Bug] Updated Cirque Pinnacle SPI driver to read data correctly (#17074) 2022-05-12 23:21:25 -07:00
QMK Bot
e53e75f4ce Merge remote-tracking branch 'origin/master' into develop 2022-05-12 20:11:40 +00:00
James Young
58c37c0814 65_iso_split_bs Community Layout keymap bugfix (#17072)
Fix the layout macro reference in the `keymap.c` file, which caused this keymap to not be able to be compiled.
2022-05-12 21:11:02 +01:00
QMK Bot
6b39a38212 Merge remote-tracking branch 'origin/master' into develop 2022-05-12 18:24:53 +00:00
James Young
b26ba52bdd [Keyboard] KBIC65 Refactor (#17066) 2022-05-12 11:24:40 -07:00
jack
59fa34a6fa [Keyboard] Refactor mechwild/mokulua (#17068) 2022-05-12 11:24:03 -07:00
QMK Bot
a8183340d0 Merge remote-tracking branch 'origin/master' into develop 2022-05-12 06:49:59 +00:00
Astrid Yu
c0ab4ed539 Allow overriding Niv inputs in shell.nix (#16602) 2022-05-12 09:49:15 +03:00
QMK Bot
ec7801e2cb Merge remote-tracking branch 'origin/master' into develop 2022-05-12 05:52:09 +00:00
HorrorTroll
8a4ef2b3c4 [Keyboard] Move M63 RGB into maker folder (#17061) 2022-05-11 22:51:37 -07:00
QMK Bot
ff9aca781a Merge remote-tracking branch 'origin/master' into develop 2022-05-12 05:28:32 +00:00
jack
77aba32bc6 initial (#17067) 2022-05-12 06:27:58 +01:00
QMK Bot
56ca807f85 Merge remote-tracking branch 'origin/master' into develop 2022-05-12 04:49:18 +00:00
Kyle McCreery
d6e1de8c83 [Keyboard] Add Mokulua keyboard (#17055)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-05-11 21:49:11 -07:00
JX
4d1332b62c [Keyboard] Cleanup zhou65 and add nz64 keyboard (#17032)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-05-11 21:48:47 -07:00
QMK Bot
a284b99876 Merge remote-tracking branch 'origin/master' into develop 2022-05-12 04:48:35 +00:00
HorrorTroll
ffa1b37634 [Keyboard] Add Black E6.5 keyboard (#16807) 2022-05-11 21:47:41 -07:00
QMK Bot
b03daac76b Merge remote-tracking branch 'origin/master' into develop 2022-05-12 00:09:49 +00:00
Vino Rodrigues
7fd05afb10 [Keyboard] Revert "Fix id67 RGB Matrix (#16916)" - on IDOBAO ID67 kb (#16917)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-05-11 17:09:10 -07:00
QMK Bot
12fe4c49de Merge remote-tracking branch 'origin/master' into develop 2022-05-11 23:55:09 +00:00
Vino Rodrigues
37417d531d [Keyboard] remove handwired/reddot as per #14211 (#17033) 2022-05-11 16:54:27 -07:00
QMK Bot
d3443a4e8b Merge remote-tracking branch 'origin/master' into develop 2022-05-11 23:40:13 +00:00
sauvehoo
fa6fe11c33 [Keyboard] Add ano keyboard (#16885)
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-05-11 16:39:59 -07:00
TJ
767e7db0ed [Keyboard] Littlefoot lx dev (#16771)
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-05-11 16:39:35 -07:00
QMK Bot
da02de5413 Merge remote-tracking branch 'origin/master' into develop 2022-05-11 23:38:15 +00:00
4pplet
ddba52325c [Keyboard] Yakiimo PCB (#16984)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: 4pplet <4pplet@protonmail.com>
Co-authored-by: 4pplet <stefan.ess@gmail.com>
2022-05-11 16:37:43 -07:00
QMK Bot
bc6956909a Merge remote-tracking branch 'origin/master' into develop 2022-05-11 23:09:53 +00:00
Minke Zhang
df9c266f45 [Keyboard] Update YMDK Split 64 config (#16979)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-05-11 16:09:14 -07:00
QMK Bot
be08c86451 Merge remote-tracking branch 'origin/master' into develop 2022-05-11 22:39:48 +00:00
Daniel Osipishin
ba59927018 [Keyboard] Add subrezon/la_nc keyboard (#16833)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Daniel Osipishin <daniel.osipishin@retarus.de>
2022-05-11 15:39:08 -07:00
QMK Bot
6024ade4fa Merge remote-tracking branch 'origin/master' into develop 2022-05-11 19:52:13 +00:00
James Young
8e9a81a860 KBDfans KBD75 Refactor - 2022 Edition (#17052)
* add license headers

* tidy-up revision rules.mk files

- convert tabs to spaces
- align inline comments
- update rule ordering

* touch-up readme.md

* touch-up rev1/rev1.h

- convert tabs to spaces
- convert to QMK 3-character notation for matrix positions

* rev1/rev1.h: add matrix diagram

* touch-up rev2/rev2.h

- convert tabs to spaces
- convert to QMK 3-character notation for matrix positions

* rev2/rev2.h: add matrix diagrams

* rev1/info.json: apply friendly formatting

* rev2/info.json: apply friendly formatting

* refactor layout macros

- switch `LAYOUT_ansi_1u` with `LAYOUT_75_ansi`
  - makes `LAYOUT_75_ansi` the canonical macro name, with `LAYOUT_ansi_1u` as an alias for backwards compatibility
  - move `LAYOUT_ansi_1u` alias to `info.json` files from revision headers
- remove `LAYOUT_iso_1u` (was unused)
- rename `LAYOUT_ansi` to `LAYOUT_75_ansi_rwkl`
- rename `LAYOUT_iso` to `LAYOUT_75_iso_rwkl`

* refactor default keymap

- use four-space indent
- update grid alignment

* refactor iso keymap

- refactor to use `LAYOUT_75_iso` macro
  - change from Split to 2u Backspace
  - change from Split to Standard Spacebar
  - change `KC_BSLS` keycode to `KC_NUHS`, and place on home row
- use four-space indent
- update grid alignment

* refactor via keymap

- use four-space indent
- update grid alignment

* touch-up readme.md again

Fix a broken link.

* update section comments in revision header files

* add Full Winkeyless layouts

- add `LAYOUT_75_ansi_wkl` and `LAYOUT_75_iso_wkl` layout macros
2022-05-11 12:51:39 -07:00
QMK Bot
48eafd98ef Merge remote-tracking branch 'origin/master' into develop 2022-05-11 11:30:44 +00:00
Willy Breitenbach
c9e336fde6 [Keyboard] fix tf65rgbv2 keyboard layout (#17029) 2022-05-11 04:30:05 -07:00
QMK Bot
8c16efabaf Merge remote-tracking branch 'origin/master' into develop 2022-05-11 11:13:23 +00:00
Albert Y
214d2a31ed [Keyboard] Add usable tap-hold defaults for ferris via (#16696) 2022-05-11 04:12:47 -07:00
QMK Bot
7a7a413730 Merge remote-tracking branch 'origin/master' into develop 2022-05-11 10:58:18 +00:00
peepeetee
371499c3a7 [Keyboard] Momokai Tap Trio (#16463)
* add winry3m3w

* change name to Momokai Tap Trio

* Delete settings.json

* add rgb effects

* amend default keymap

* add limited RGB controls to default keymap

* fix VAD

* Update keyboards/momokai/tap_trio/tap_trio.h

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/momokai/tap_trio/tap_trio.h

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/momokai/tap_trio/config.h

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

* Update keyboards/momokai/tap_trio/rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

* implement RGB matrix, change default keymap

* change keymaps

* change rgb effects

* comment out the RGB matrix and switch back to RGB light due to VIA not playing ball

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-05-11 03:57:46 -07:00
QMK Bot
869b3a030e Merge remote-tracking branch 'origin/master' into develop 2022-05-11 10:15:08 +00:00
kb-elmo
f3fdd6ae5d [Keyboard] Add Axostudio Yeti hotswap version (#16820)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-05-11 03:13:50 -07:00
QMK Bot
6641c4cecb Merge remote-tracking branch 'origin/master' into develop 2022-05-10 18:07:59 +00:00
takashicompany
615dbd62e9 [Keyboard] Fix led num for center_enter/qoolee (#17050) 2022-05-10 11:07:01 -07:00
QMK Bot
bda47ad467 Merge remote-tracking branch 'origin/master' into develop 2022-05-10 16:01:25 +00:00
Eugene-Yuan Kou
a3e057e779 Adding akira (#16982)
* keyboard:akira initial commit

* Update keyboards/ekow/akira/akira.h

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/ekow/akira/keymaps/via/rules.mk

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/ekow/akira/readme.md

Co-authored-by: Joel Challis <git@zvecr.com>

* Update .gitignore

Co-authored-by: Joel Challis <git@zvecr.com>

* Update readme.md

* Update keyboards/ekow/akira/rules.mk

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

* Update rules.mk

remove redundant content.

* added keyboard/ekow/keymaps/via/keymap.c

* remove .ccls-cache

* add instructions of enter the bootloader

* add instructions of enter the bootloader

* modify ekow/akira:via

* Update keyboards/ekow/akira/readme.md

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/ekow/akira/keymaps/via/rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-05-10 17:00:30 +01:00
QMK Bot
4957a633e9 Merge remote-tracking branch 'origin/master' into develop 2022-05-10 12:26:23 +00:00
8bits4ever
796ededd59 converter/a1200/mistress1200: further firmware shrinking to fit on Atmega16U4 (16kb) (#17040)
* Create dummy.txt

* Add files via upload

* Add files via upload

* Delete dummy.txt

* Update config.h

* Update rules.mk

* Update keymap.c

* Update keyboards/converter/a1200/mistress1200/rules.mk

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/converter/a1200/mistress1200/rules.mk

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/converter/a1200/mistress1200/rules.mk

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/converter/a1200/mistress1200/config.h

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

* Update keyboards/converter/a1200/mistress1200/config.h

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

* Update keyboards/converter/a1200/mistress1200/config.h

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

* Update keyboards/converter/a1200/mistress1200/rules.mk

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

* Update config.h

* Update rules.mk

* Update readme.md

* Update config.h

* Update rules.mk

* Update config.h

* Update keyboards/converter/a1200/mistress1200/config.h

Co-authored-by: Joel Challis <git@zvecr.com>

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-05-10 13:25:42 +01:00
QMK Bot
bfa04efada Merge remote-tracking branch 'origin/master' into develop 2022-05-10 01:29:03 +00:00
Jay Greco
120d5d5520 Update RMKB to support SNAP (#17042) 2022-05-10 02:28:16 +01:00
QMK Bot
f1c69e5d2c Merge remote-tracking branch 'origin/master' into develop 2022-05-09 01:05:49 +00:00
Guillaume Gérard
76eff706f6 feat: add support for JJ50 VIA (#16420) 2022-05-09 02:05:05 +01:00
Ryan
7177434a02 MSYS2 install: add some Python dependencies through Pacman (#17025) 2022-05-07 13:01:46 +01:00
QMK Bot
785444199e Merge remote-tracking branch 'origin/master' into develop 2022-05-07 00:01:50 +00:00
Doomsdayrs
5acdb4c921 Sol3 fix rgb map (#17019)
* Fix for key -> LED mapping

* Revert whitespace changes

* Revert whitespace changes 2

Co-authored-by: theVDude <rb.cubed@gmail.com>
2022-05-07 01:01:16 +01:00
Ryan
4e9a811e58 converter/usb_usb: remove surplus commas (#17024) 2022-05-07 01:00:55 +01:00
Ryan
ceb9b0f7b8 gboards/gergoplex: move COMBO_ENABLE to keymap level (#16667) 2022-05-07 09:58:38 +10:00
Ryan
a8a03b108c usb-usb converter: community layout support (#16773) 2022-05-07 09:48:26 +10:00
QMK Bot
84ffd4f72d Merge remote-tracking branch 'origin/master' into develop 2022-05-06 12:18:51 +00:00
Ryan
8c23f87c51 Ensure .hex file output for ARM Teensys (#17014) 2022-05-06 13:18:03 +01:00
QMK Bot
7598f1f3af Merge remote-tracking branch 'origin/master' into develop 2022-05-06 06:16:19 +00:00
Xelus22
49267b135b [Bug] Fix RS60 Rev2 I2C (#17015) 2022-05-06 16:15:49 +10:00
QMK Bot
5de74ce494 Merge remote-tracking branch 'origin/master' into develop 2022-05-05 10:32:25 +00:00
Josh Hinnebusch
890dfebe8d Add ibis PCB (#17001)
* initial ibis commit

* updates etc

* layout updates to fix mismatched keys

* Apply suggestions from code review

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/hineybush/ibis/info.json

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/hineybush/ibis/readme.md

Co-authored-by: Ryan <fauxpark@gmail.com>

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-05-05 11:31:52 +01:00
QMK Bot
034854ae39 Merge remote-tracking branch 'origin/master' into develop 2022-05-05 08:09:13 +00:00
Xelus22
3fbf9dc290 [Keyboard] RS60 Rev2 Addition (#16988) 2022-05-05 01:08:35 -07:00
QMK Bot
5a6c2711fa Merge remote-tracking branch 'origin/master' into develop 2022-05-05 02:56:19 +00:00
Mateusz Mojsiejuk
11e20fa0c9 Add missing dependency for qmk setup on Fedora (#17003) 2022-05-04 19:55:47 -07:00
QMK Bot
4b337b228a Merge remote-tracking branch 'origin/master' into develop 2022-05-04 15:11:15 +00:00
npspears
7608902794 [Keyboard] Add per-key RGB for Quark LP RGB variants (#16671)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-05-04 08:10:35 -07:00
QMK Bot
f64d30f38e Merge remote-tracking branch 'origin/master' into develop 2022-05-04 15:09:27 +00:00
E.Iosifidis
5e6f9dfc4d [Keymap] Introduced New layer & Improvements (#16921)
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-05-04 08:08:47 -07:00
Nick Brassel
be9fa68785 Also format *.hpp files. (#16997) 2022-05-04 05:48:41 +10:00
QMK Bot
34e6be748a Merge remote-tracking branch 'origin/master' into develop 2022-05-03 10:22:46 +00:00
jonavin
c03e18f728 Jonavin-kb67-Reduce mem usage (#16991)
Co-authored-by: Jonavin <=>
2022-05-03 11:22:10 +01:00
QMK Bot
766c2eeb16 Merge remote-tracking branch 'origin/master' into develop 2022-05-02 19:35:44 +00:00
Ryan Skidmore
66fc18c756 keyboards/ryanskidmore: add rskeys100 keyboard (#15506)
* keyboards/ryanskidmore/rskeys100: add rskeys100 draft firmware

* keyboards/ryanskidmore/rskeys100: fix firmware

* ryanskidmore/rskeys100: fix remaining bugs

* keyboards/ryanskidmore/rskeys100: finishing touches on firmware

* keyboards/ryanskidmore/rskeys100: migrate from full replacement matrix scanning to lite, move rgb matrix enable call to keymap

* keyboards/ryanskidmore/rskeys100: remove undefines, clarify comments

* ryanskidmore/rskeys100: remove unused imports

* keyboards/ryanskidmore/rskeys100: pr feedback
2022-05-02 12:34:44 -07:00
QMK Bot
bca6367ba9 Merge remote-tracking branch 'origin/master' into develop 2022-05-01 18:00:33 +00:00
ROYMEETSWORLD
8b668a24d6 [Keyboard] Add gameroyadvance (#16882)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-05-01 10:59:51 -07:00
QMK Bot
2b6df95894 Merge remote-tracking branch 'origin/master' into develop 2022-04-29 22:56:43 +00:00
Hunter Haugen
b2d0dd2f32 [Keymap] Improve Pain27 default keymap readability (#16956) 2022-04-30 08:56:04 +10:00
QMK Bot
48580cd08a Merge remote-tracking branch 'origin/master' into develop 2022-04-29 10:46:32 +00:00
jack
28e1cfc278 Fix fjlabs/solanis (#16965) 2022-04-29 20:45:56 +10:00
QMK Bot
a99494c400 Merge remote-tracking branch 'origin/master' into develop 2022-04-29 08:14:35 +00:00
Rucker Machine
d84a1fb9a4 [Keyboard] RM_Numpad: Fix layout bug (#16857)
Co-authored-by: jason <jrucker2004@gmail.com>
2022-04-29 01:13:26 -07:00
QMK Bot
e6ea4ce3af Merge remote-tracking branch 'origin/master' into develop 2022-04-29 07:07:34 +00:00
Felix Jen
3e9fec5dcc [Keyboard] Solanis H87C/H88C Compatible Replacement PCBs (#16942)
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-04-29 00:06:49 -07:00
QMK Bot
676bbc6f63 Merge remote-tracking branch 'origin/master' into develop 2022-04-29 06:59:07 +00:00
Joel Challis
ef8db9f104 Remove ARM pgm_read_word workaround in rgblight (#16961) 2022-04-28 23:58:55 -07:00
Nicholas Granado
ff4a6a2fd7 [Keymap] Add keymap for kinesis advantage (#16862)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-04-28 23:58:22 -07:00
Joel Challis
6e819945ed Remove some layout exceptions (#16957)
* LAYOUT_JP -> LAYOUT_jp

* LAYOUT_ANSI_DEFAULT -> LAYOUT

* LAYOUT_reviung34_2uL -> LAYOUT_reviung34_2u
2022-04-29 01:31:55 +01:00
Joel Challis
d458d4a596 Move disable_jtag to platforms (#16960) 2022-04-29 01:23:50 +01:00
Ryan
0de08b09e7 Sendstring keycode overhaul (#16941) 2022-04-29 09:36:48 +10:00
QMK Bot
e2802ca2cb Merge remote-tracking branch 'origin/master' into develop 2022-04-28 18:17:09 +00:00
skeletonkbd
2275b35e92 [Keyboard] Add SkeletonNumPad (#16753)
* add SkeletonNumPad keyboard

* fix

* fix

* fixed info.json

* Update keyboards/skeletonkbd/skeletonnumpad/rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

* Change RGBLIGHT_LIMIT_VAL

Co-authored-by: Ryan <fauxpark@gmail.com>
2022-04-28 11:16:21 -07:00
QMK Bot
35062b00d3 Merge remote-tracking branch 'origin/master' into develop 2022-04-28 17:38:44 +00:00
Felix Jen
a2a9611f18 [Keyboard] Add Maker Keyboards Alexa Solder PCB (#16943) 2022-04-28 10:37:57 -07:00
QMK Bot
c0af83cdde Merge remote-tracking branch 'origin/master' into develop 2022-04-28 17:36:09 +00:00
XScorpion2
0edc0c05e1 [Keyboard] Small fix for Sol3 with only a slave touch bar (#16952) 2022-04-28 10:35:27 -07:00
QMK Bot
fc52a30780 Merge remote-tracking branch 'origin/master' into develop 2022-04-27 23:12:15 +00:00
Ryan
e99d6d582c Add Ukrainian keymap header (#16947)
* Add Ukrainian keymap header

* Docs
2022-04-28 00:11:41 +01:00
QMK Bot
a8459aa242 Merge remote-tracking branch 'origin/master' into develop 2022-04-26 14:10:21 +00:00
Ryan
14d6c0b441 dactyl_manuform/3x5_3: fix layout (#16944) 2022-04-26 15:09:47 +01:00
Ryan
645359e5d0 Joystick: Simplify report descriptor and clean up error messages (#16926) 2022-04-26 08:54:34 +10:00
QMK Bot
178b70f355 Merge remote-tracking branch 'origin/master' into develop 2022-04-25 09:30:59 +00:00
Ryan
73688057f4 Add missing dead key LUTs for sendstring headers (#16929) 2022-04-25 19:30:20 +10:00
QMK Bot
f1804c18b4 Merge remote-tracking branch 'origin/master' into develop 2022-04-25 05:08:44 +00:00
tuvietnamm
0369fb0047 Fix backslash bug (#16935) 2022-04-25 15:08:11 +10:00
QMK Bot
0395840eb9 Merge remote-tracking branch 'origin/master' into develop 2022-04-24 13:01:58 +00:00
Ryan
e1f6fa579a gergoplex: small cleanup (#16928) 2022-04-24 14:01:29 +01:00
QMK Bot
056f7b3676 Merge remote-tracking branch 'origin/master' into develop 2022-04-24 02:01:33 +00:00
Albert Y
c2bf039893 [Keyboard] Add missing KC_QUOT (#16925) 2022-04-23 19:00:54 -07:00
QMK Bot
54427509d5 Merge remote-tracking branch 'origin/master' into develop 2022-04-23 20:57:30 +00:00
Felix Jen
857178e779 [Keyboard] Add Rooboard 65 (#15294)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2022-04-23 13:56:58 -07:00
QMK Bot
16c41c20cf Merge remote-tracking branch 'origin/master' into develop 2022-04-22 11:50:45 +00:00
jack
d973734976 Fix id67 RGB Matrix (#16916) 2022-04-22 21:50:11 +10:00
QMK Bot
62ff93f62a Merge remote-tracking branch 'origin/master' into develop 2022-04-22 08:19:39 +00:00
Daniel Weeks
8020950976 Added massdrop/ctrl:xanimos keymap (#16187)
Co-authored-by: xanimos <dan@xanimos.com>
2022-04-22 18:19:06 +10:00
QMK Bot
7808ddac0a Merge remote-tracking branch 'origin/master' into develop 2022-04-22 08:17:09 +00:00
DL Ford
56b125ad77 Add Dactyl_Manuform/3x5_3 (#16238) 2022-04-22 18:16:33 +10:00
Nick Brassel
a727bd6463 Update ChibiOS-Contrib (#16915) 2022-04-22 09:14:00 +01:00
Stefan Kerkmann
b1681fb6a1 [Core] Allow usage of AVRs minimal printf library (#16266)
Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
2022-04-22 18:13:31 +10:00
QMK Bot
68a3fe8347 Merge remote-tracking branch 'origin/master' into develop 2022-04-22 07:56:03 +00:00
E.Iosifidis
d64ec7cb19 [Keymap] Addition of new keymap for the anavi macropad8 keyboard (#16910)
* Creation of Visual Studio Code keymap

* Add files via upload
2022-04-22 00:55:25 -07:00
QMK Bot
97f4a75fd7 [CI] Format code according to conventions (#16914) 2022-04-22 17:48:06 +10:00
QMK Bot
fdd31468ca Merge remote-tracking branch 'origin/master' into develop 2022-04-22 07:42:25 +00:00
toinux
d8b9796a32 [Keymap] Toinux's crkbd keymap and userspace (#16437) 2022-04-22 17:41:54 +10:00
QMK Bot
f1cf119c65 Merge remote-tracking branch 'origin/master' into develop 2022-04-22 07:39:47 +00:00
Víctor Pont
97b861d104 [Keyboard] Fix Pegasus Hoof (2013) layout, matrix and pin assignment (#16042) 2022-04-22 17:38:16 +10:00
QMK Bot
05ab7453ec Merge remote-tracking branch 'origin/master' into develop 2022-04-22 07:38:00 +00:00
IskandarMa
83ce70c821 [Docs] zh-cn document translate: git parts (#15576)
Co-authored-by: peepeetee <43021794+peepeetee@users.noreply.github.com>
Co-authored-by: Dasky <32983009+daskygit@users.noreply.github.com>
2022-04-22 17:37:29 +10:00
QMK Bot
c797dbfb1b Merge remote-tracking branch 'origin/master' into develop 2022-04-22 07:36:44 +00:00
dexter93
e4942df397 Chibios USB protocol: allow overriding RAW Capacity (#16339) 2022-04-22 17:36:32 +10:00
peepeetee
ba8b236727 [Keyboard]Remove RGB light implementation of ID67, revert the file structure changes by #15558 (#15854) 2022-04-22 17:36:08 +10:00
customMK
0100629fa2 Fix AVR backlight breathing: low brightness limit & exceeding breathing table max index (#16770)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: David Hoelscher <infinityis@users.noreply.github.com>
2022-04-22 17:33:59 +10:00
QMK Bot
a372ddcfed Merge remote-tracking branch 'origin/master' into develop 2022-04-22 07:32:34 +00:00
yiancar
912e24ba9a Loki65 (#16844)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: yiancar <yiancar@gmail.com>
2022-04-22 17:32:01 +10:00
QMK Bot
76f3f0858d Merge remote-tracking branch 'origin/master' into develop 2022-04-22 07:21:51 +00:00
Ladduro
336791b915 Keychron Q2 add Caps Lock indicator and layer RGB (#16641) 2022-04-22 17:21:15 +10:00
QMK Bot
5024769b78 Merge remote-tracking branch 'origin/master' into develop 2022-04-22 07:17:59 +00:00
HorrorTroll
61b3f125bf Added new keyboard Gas75 (#16768) 2022-04-22 17:17:28 +10:00
QMK Bot
f44d569144 Merge remote-tracking branch 'origin/master' into develop 2022-04-21 21:49:28 +00:00
Takeshi ISHII
c2939bf038 [Keymap] Fix build error helix:five_rows (#16847) 2022-04-21 14:48:50 -07:00
Takeshi ISHII
8f692e22e3 Helix/rev2 move to split common (#16723) 2022-04-21 14:33:08 -07:00
Joel Challis
969c68a9ad Provide better config defaults for bluepill boards (#16909) 2022-04-22 07:03:28 +10:00
QMK Bot
bcb7e471d5 Merge remote-tracking branch 'origin/master' into develop 2022-04-21 16:34:10 +00:00
Simon Arlott
1e389c7904 rgblight: Fix rgblight_blink_layer when multiple layers are active (#16824) 2022-04-21 09:33:29 -07:00
QMK Bot
f3ce93fe00 Merge remote-tracking branch 'origin/master' into develop 2022-04-21 16:09:36 +00:00
Dasky
fb4f25c0b5 [Keyboard] Fix kin80 default keymap (#16893) 2022-04-21 09:08:47 -07:00
QMK Bot
12d1eb0415 Merge remote-tracking branch 'origin/master' into develop 2022-04-20 17:11:12 +00:00
jpe230
81be7bb7b5 Fix i2c driver doc: Incorrect name (#16898) 2022-04-20 18:10:20 +01:00
QMK Bot
332d7f00c5 Merge remote-tracking branch 'origin/master' into develop 2022-04-20 07:47:19 +00:00
jels
580a5d25cb Fixed error in config (#16895) 2022-04-20 08:46:30 +01:00
peepeetee
bd8220e9fc move amj keyboards into amjkeyboard vendor folder (#15733)
Co-authored-by: Nick Brassel <nick@tzarc.org>
2022-04-20 05:19:34 +10:00
peepeetee
314865f833 move melody96 to ymdk vendor folder (#15680)
Co-authored-by: Nick Brassel <nick@tzarc.org>
2022-04-20 05:19:16 +10:00
Dasky
40a7714ce5 rename define checks (#16892) 2022-04-19 20:15:34 +01:00
Nick Brassel
c76a23c37a Fix build. (#16891) 2022-04-19 20:00:37 +01:00
QMK Bot
7976779e6c Merge remote-tracking branch 'origin/master' into develop 2022-04-19 17:58:36 +00:00
Danny
b310bf6ca3 [Keyboard] Add notes on Iris rev6a firmware (#16878) 2022-04-19 10:57:58 -07:00
QMK Bot
682dbb21a7 Merge remote-tracking branch 'origin/master' into develop 2022-04-19 11:30:46 +00:00
Dmitry Nosachev
83709e7dbe kin80 (#16754)
Co-authored-by: Nick Brassel <nick@tzarc.org>
2022-04-19 21:30:15 +10:00
QMK Bot
c3a03b6423 [CI] Format code according to conventions (#16888) 2022-04-19 21:28:14 +10:00
Joy Lee
25f849b397 Update wb32-dfu (#16438) 2022-04-19 21:21:12 +10:00
QMK Bot
b88d04eb62 Merge remote-tracking branch 'origin/master' into develop 2022-04-19 11:20:43 +00:00
LegoWolf
499060a9a5 Dactyl manuform 5x6 5 via (#16741) 2022-04-19 21:20:11 +10:00
Drashna Jaelre
9056775e20 Add hacky via support for RGB Matrix (#16086) 2022-04-19 21:18:28 +10:00
QMK Bot
d938ccb2fd Merge remote-tracking branch 'origin/master' into develop 2022-04-19 11:05:51 +00:00
gourdo1
be7198ca49 New custom keymap for Glorious GMMK Pro ANSI layout (#16199)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-04-19 21:05:13 +10:00
QMK Bot
2b23237da1 Merge remote-tracking branch 'origin/master' into develop 2022-04-19 11:04:21 +00:00
jack
ad31ea3f51 boardsource/microdox V2 (#16569) 2022-04-19 21:03:51 +10:00
KoenGoe
671b62efab Fixes #16705 : digital rain follows val (#16716)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-04-19 21:02:21 +10:00
QMK Bot
2a4db15f62 Merge remote-tracking branch 'origin/master' into develop 2022-04-19 11:00:36 +00:00
Allen Choi
9ead40db0c Fix broken build for users/curry (#16492) 2022-04-19 21:00:01 +10:00
Stefan Kerkmann
7712a286dc [Core] Use a mutex guard for split shared memory (#16647) 2022-04-19 20:56:16 +10:00
QMK Bot
176ab14649 Merge remote-tracking branch 'origin/master' into develop 2022-04-19 10:53:44 +00:00
jpe230
1acb37db7f Add initial support for the Makey Makey Classic (#16658) 2022-04-19 20:53:09 +10:00
QMK Bot
eab3be1e75 Merge remote-tracking branch 'origin/master' into develop 2022-04-19 10:40:23 +00:00
MakotoKurauchi
bdd1f318c3 [Keyboard] New kbd 1k (#15509)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: mtei <2170248+mtei@users.noreply.github.com>
Co-authored-by: Nick Brassel <nick@tzarc.org>
2022-04-19 20:39:43 +10:00
QMK Bot
5719353240 Merge remote-tracking branch 'origin/master' into develop 2022-04-19 10:34:10 +00:00
Abhinav
67329cffb5 Add my planck layout (#13143)
* Add my planck layout

* Add copyright

* Address requested changes

* Fix dipswitch return type
2022-04-19 20:33:18 +10:00
QMK Bot
1dee7bc7f3 Merge remote-tracking branch 'origin/master' into develop 2022-04-19 10:32:51 +00:00
Álvaro Cortés
50ec365806 [Keymap] A Colemak keymap for the crkbd keyboard (#16550) 2022-04-19 20:32:11 +10:00
QMK Bot
2744c1b2cf Merge remote-tracking branch 'origin/master' into develop 2022-04-19 10:31:47 +00:00
Takeshi ISHII
bde724e124 Change helix:yshrsmz keymap to use split_common (#16537) 2022-04-19 20:31:10 +10:00
uqs
690dc4bdaf Add support for multiple sensors to pmw3360 (#15996) 2022-04-19 20:29:17 +10:00
peepeetee
9f63bce70b move keyhive exclusive boards into /keyhive (#16084)
Co-authored-by: Nick Brassel <nick@tzarc.org>
2022-04-19 20:17:21 +10:00
peepeetee
cff489bfdb move 麦田 boards into /mt (#16095)
Co-authored-by: Nick Brassel <nick@tzarc.org>
2022-04-19 20:06:35 +10:00
peepeetee
e13aefe41d move z150_bh at101_bh omnikey_bh to viktus/ (#16004) 2022-04-19 18:57:53 +10:00
QMK Bot
860f53dac4 Merge remote-tracking branch 'origin/master' into develop 2022-04-19 02:33:59 +00:00
Sắn
958600d518 [Keyboard] Add Amber80 Solder & VCL65 Solder (#15945)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-04-18 19:33:32 -07:00
Andrew Charnley
90dd16ccd2 [Keymap] Add andrewcharnley keymap for GMMK Pro (#15320) 2022-04-18 17:23:38 -07:00
QMK Bot
02104270ed Merge remote-tracking branch 'origin/master' into develop 2022-04-19 00:18:54 +00:00
8bits4ever
773124e9c0 [Keyboard] Add converter/a1200/mistress1200 variant (#16634)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-04-18 17:18:10 -07:00
QMK Bot
c397720c87 Merge remote-tracking branch 'origin/master' into develop 2022-04-18 17:02:06 +00:00
jack
1ab1ce1b46 [Keyboard] Fix resume1800 - Dynamic layer count undefined (#16877) 2022-04-18 10:01:33 -07:00
Nick Brassel
6819420b0e Preinstall python dependencies before executing qmk. (#16874) 2022-04-18 15:46:52 +01:00
Nick Brassel
f50a623909 Fixup AVR builds. (#16875)
* Fixup AVR builds.

* Update platforms/avr/hardware_id.c

Co-authored-by: Ryan <fauxpark@gmail.com>

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-04-18 15:39:45 +01:00
Joel Challis
b8245a5507 Expose API for hardware unique ID (#16869) 2022-04-18 20:51:40 +10:00
QMK Bot
7aa9a353ac Merge remote-tracking branch 'origin/master' into develop 2022-04-18 09:30:24 +00:00
DeeDesired
ad9a137942 [Keyboard] Add CrimsonKeyboards' Resume1800 (#16842) 2022-04-18 02:29:53 -07:00
QMK Bot
886b257c3f Merge remote-tracking branch 'origin/master' into develop 2022-04-18 09:29:04 +00:00
jack
8c91e90381 [Keyboard] sandbox - fix keymaps (#16873) 2022-04-18 02:28:28 -07:00
QMK Bot
dce3dc3fe5 Merge remote-tracking branch 'origin/master' into develop 2022-04-18 09:15:38 +00:00
Md. Mashur Shalehin Sakib
f52f3f1077 [Keyboard] Add deskpad (#15602)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-04-18 02:13:44 -07:00
Denis Savran
b1ceb4bb6a Fix one-shot locked modifiers (#16114)
* Fix state updates of one-shot locked modifiers

Activating additional one-shot locked modifiers removed previously enabled locked modifiers from the state.
`get_oneshot_locked_mods` returned zero when two or more one-shot locked modifiers were enabled and then one was disabled.

* Do not delete one-shot locked modifiers on a one-shot layer toggle

Non-locked one-shot modifiers are not removed so this behavior adds inconsistency.
Also the one-shot locked modifiers state was reset without unregistering any modifiers.
2022-04-18 02:12:25 -07:00
QMK Bot
5fc8f8488f Merge remote-tracking branch 'origin/master' into develop 2022-04-18 09:12:03 +00:00
alaviss
0d67eec5e2 Ploopy Trackball Mini: only define DPI options as needed (#16160) 2022-04-18 02:11:56 -07:00
QMK Bot
9bd8d08834 Merge remote-tracking branch 'origin/master' into develop 2022-04-18 09:11:43 +00:00
Ramon Imbao
8826a1dea5 [Keyboard] Add the Ciel (#16816)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-04-18 02:11:32 -07:00
Brandon Claveria
c6de26fc6f [Keyboard] Add digicarpice (#16791)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: swiftrax <swiftrax@github.com>
2022-04-18 02:11:11 -07:00
QMK Bot
f6fd6942ef Merge remote-tracking branch 'origin/master' into develop 2022-04-18 09:08:22 +00:00
Álvaro A. Volpato
5fe3b9ffa5 [Keyboard] SharkPCB release Beta compatibility (#16713)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-04-18 02:07:49 -07:00
Michał Szczepaniak
5b6faa173b Add customizable snake and knight animation increments (#16337) 2022-04-18 02:07:36 -07:00
QMK Bot
4d67fe66a3 Merge remote-tracking branch 'origin/master' into develop 2022-04-18 07:38:07 +00:00
yfuku
fdd4af9973 [Keyboard] Add sandbox keyboard (#16021)
Co-authored-by: precondition <57645186+precondition@users.noreply.github.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-04-18 00:37:25 -07:00
QMK Bot
58c2bb4d64 Merge remote-tracking branch 'origin/master' into develop 2022-04-17 19:54:33 +00:00
James Young
7d60a141a2 Anne Pro 2 Refactor (#16864)
* move RGB Matrix rules to keyboard level

* move PERMISSIVE_HOLD config to keyboard level

* annepro2.c: convert tabs to spaces

* refactor rules.mk files

Reformats each version's `rules.mk` file to be arranged more similarly to those of the rest of the keyboards in QMK.

No logic change.

* annepro2.c: allow compilation without RGB Matrix

Wraps the `led_enabled` definition and the `KC_AP_RGB_*` keycodes in `#ifdef RGB_MATRIX_ENABLE`, allowing successful compilation if the user sets `RGB_MATRIX_ENABLE = no`.

* rework readme files

Reworks the main `readme.md` file to be more friendly to GitHub viewing, and removes the single-line version-specific readme files (exposes the main readme to QMK Configurator users).

* info.json: update maintainer value

* info.json: apply friendly formatting
2022-04-17 12:53:59 -07:00
QMK Bot
d958329258 Merge remote-tracking branch 'origin/master' into develop 2022-04-17 00:37:07 +00:00
Albert Y
a5a4597311 Refine LED indicator documentation (#16304) 2022-04-16 17:36:07 -07:00
Nick Brassel
df95495d5b Fix #16859. (#16865) 2022-04-17 00:09:37 +01:00
Stefan Kerkmann
147e57fd59 [QP] Check BPP capabilities before loading the palette (#16863) 2022-04-17 08:30:51 +10:00
Simon Arlott
5841c755ae rgblight: Add functions to stop blinking one or all but one layer (#16859) 2022-04-17 00:02:32 +02:00
Albert Y
e5918cf968 Heatmap incorrect matrix effect workaround (#16315) 2022-04-16 11:34:07 -07:00
QMK Bot
030a96a3f5 Merge remote-tracking branch 'origin/master' into develop 2022-04-16 18:28:19 +00:00
moyi4681
3b6e48b012 [Keyboard] Add Phase One keyboard (#16430)
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-04-16 11:28:16 -07:00
Amber Cronin
6d13199ed0 Fix Xorg segfault with KeebCats PCBs (#16434) 2022-04-16 11:27:51 -07:00
Jouke Witteveen
8f585153c4 Add GET_TAPPING_TERM macro to reduce duplicate code (#16681)
* Add GET_TAPPING_TERM macro to reduce duplicate code

The macro gives the right tapping term depending on whether per-key
tapping terms and/or dynamic tapping terms are enabled. Unnecessary
function calls and variable resolution are avoided.

Fixes #16472.

* Use GET_TAPPING_TERM for Cirque trackpads

Co-authored-by: Stefan Kerkmann <karlk90@pm.me>
2022-04-16 11:24:09 -07:00
QMK Bot
cad0af09a8 Merge remote-tracking branch 'origin/master' into develop 2022-04-16 18:19:59 +00:00
X-Bows Tech
7d75f88ac9 [Keyboard] Update X-Bows Keyboard (#16765)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Shulin <mumu@x-bows.com>
2022-04-16 11:19:24 -07:00
Joel Challis
92a61aa0cd Implement XAP 'secure' core requirements (#16843)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Stefan Kerkmann <karlk90@pm.me>
2022-04-16 11:13:05 -07:00
QMK Bot
ae4d518352 Merge remote-tracking branch 'origin/master' into develop 2022-04-16 17:41:18 +00:00
Simon Arlott
1cfe49714f rgblight: Limit max repeat times in rgblight_blink_layer_repeat (#16860) 2022-04-16 10:40:48 -07:00
QMK Bot
14d084ae13 Merge remote-tracking branch 'origin/master' into develop 2022-04-16 01:23:46 +00:00
Joel Challis
b331c98ca4 Resolve layout macro inconsistencies for rmkeebs/rm_numpad (#16856) 2022-04-16 02:23:19 +01:00
QMK Bot
59885d07af Merge remote-tracking branch 'origin/master' into develop 2022-04-14 18:24:36 +00:00
Will Winder
8de4065b09 [Keyboard] Add avalanche (#16407)
* [Keyboard] Add avalanche

* PR feedback

* Update keyboards/avalanche/v1/config.h

* Update keyboards/avalanche/v1/v1.h

* Update keyboards/avalanche/v2/config.h

* Update keyboards/avalanche/v2/v2.h

* Update keyboards/avalanche/v3/config.h

* Update keyboards/avalanche/v3/v3.h

* Apply suggestions from code review

* Remove rules.mk comment and fix other comments.

* Shared encoder code, follow conventions in rules.mk files.

* Remove config files which do not change defaul behavior.
2022-04-14 11:23:32 -07:00
QMK Bot
399de0be12 Merge remote-tracking branch 'origin/master' into develop 2022-04-14 17:02:01 +00:00
Tim Liu
b9e11253c4 [Keyboard] Add via support for creatkeebs/glacier (#16747)
Co-authored-by: Joel Challis <git@zvecr.com>
2022-04-14 10:01:26 -07:00
QMK Bot
cbc59e383f Merge remote-tracking branch 'origin/master' into develop 2022-04-14 16:27:09 +00:00
holtenc
812f97e241 [Keyboard] move/rename obro to Meridian RGB (#16828)
Co-authored-by: Joel Challis <git@zvecr.com>
2022-04-14 09:26:24 -07:00
QMK Bot
a6884e6933 Merge remote-tracking branch 'origin/master' into develop 2022-04-14 05:43:00 +00:00
Drashna Jaelre
a4a67d515e Ignore VIA(L) json files (#16845) 2022-04-14 15:42:24 +10:00
QMK Bot
88028dd982 Merge remote-tracking branch 'origin/master' into develop 2022-04-14 03:28:03 +00:00
leah-splitkb
18e56902c9 Fix external flash on AVR (#16851) 2022-04-14 13:27:26 +10:00
QMK Bot
2858415789 Merge remote-tracking branch 'origin/master' into develop 2022-04-13 16:45:55 +00:00
jack
46c0db458e [Keyboard] Fix kay65 - Missing keycode (#16849) 2022-04-13 09:45:16 -07:00
QMK Bot
4a8743cdb1 Merge remote-tracking branch 'origin/master' into develop 2022-04-13 16:27:55 +00:00
jack
f3004d960f [Keyboard] Fix waffling80 - Missing comma (#16848) 2022-04-13 09:27:20 -07:00
QMK Bot
6814e32757 Merge remote-tracking branch 'origin/master' into develop 2022-04-13 14:31:55 +00:00
ClicketySplit
8580380eec [Keyboard] The inaugural commit for Leeloo's firmware. (#16599)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-04-13 07:31:11 -07:00
QMK Bot
294ef95bc9 Merge remote-tracking branch 'origin/master' into develop 2022-04-13 14:29:44 +00:00
N L
0272621133 [Keymap] bépo layout on Lily58L (#16243)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-04-13 07:29:06 -07:00
QMK Bot
1e6ef5d42e Merge remote-tracking branch 'origin/master' into develop 2022-04-13 14:29:05 +00:00
Rucker Machine
57466c47ba [Keyboard] Add RM_Numpad (#15983)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: jason <jrucker2004@gmail.com>
2022-04-13 07:28:12 -07:00
QMK Bot
46292f5098 Merge remote-tracking branch 'origin/master' into develop 2022-04-13 14:27:27 +00:00
Tyler Tolley
973bc88b0f [Keymap] Add thattolleyguy keymaps (#15351)
* Adding personal keymaps

* Update licenses

* Fix RGB settings

* Define used animations

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

Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-04-13 07:27:07 -07:00
QMK Bot
c4a6636873 Merge remote-tracking branch 'origin/master' into develop 2022-04-13 14:25:32 +00:00
Simon
937ffcecc8 [Keyboard] Add Frooastboard Walnut (69% Keyboard) (#16743)
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-04-13 07:25:16 -07:00
moyi4681
8430774430 [Keyboard] add tiger80 keyboard (#16742)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-04-13 07:24:56 -07:00
bwisn
ad981dea72 [Keyboard] annepro2: match default keymap to stock keycaps (#16724) 2022-04-13 07:24:38 -07:00
QMK Bot
fff2606665 Merge remote-tracking branch 'origin/master' into develop 2022-04-13 14:24:12 +00:00
Christian Lo
3f8343e552 [Keyboard] Add banime40 keyboard (#16694)
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-04-13 07:23:01 -07:00
mechlovin
a8e01df50f [Keyboard] correct matrix for Kay65 (#16751) 2022-04-13 07:20:00 -07:00
Tyler Thrailkill
87777d1cdd [Keymap] Fix snowe keymap after updates to QMK (#16777) 2022-04-13 07:19:24 -07:00
mudhead
e9ad400b83 [Keyboard] KBD67 rev1 Caps Lock LED Fix (#16790) 2022-04-13 07:18:21 -07:00
IFo Hancroft
7216243a7a [Keyboard] Ported ErgoDox to VIA (#16804) 2022-04-13 07:17:11 -07:00
QMK Bot
930cf6457a Merge remote-tracking branch 'origin/master' into develop 2022-04-13 14:11:59 +00:00
4pplet
cf152dd16b [Keyboard] Waffling60 - minor tweak, improve default behavior of caps lock indicator. (#16836)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: 4pplet <4pplet@protonmail.com>
Co-authored-by: 4pplet <stefan.ess@gmail.com>
2022-04-13 07:11:19 -07:00
Nick Brassel
1f2b1dedcc Quantum Painter (#10174)
* Install dependencies before executing unit tests.

* Split out UTF-8 decoder.

* Fixup python formatting rules.

* Add documentation for QGF/QFF and the RLE format used.

* Add CLI commands for converting images and fonts.

* Add stub rules.mk for QP.

* Add stream type.

* Add base driver and comms interfaces.

* Add support for SPI, SPI+D/C comms drivers.

* Include <qp.h> when enabled.

* Add base support for SPI+D/C+RST panels, as well as concrete implementation of ST7789.

* Add support for GC9A01.

* Add support for ILI9341.

* Add support for ILI9163.

* Add support for SSD1351.

* Implement qp_setpixel, including pixdata buffer management.

* Implement qp_line.

* Implement qp_rect.

* Implement qp_circle.

* Implement qp_ellipse.

* Implement palette interpolation.

* Allow for streams to work with either flash or RAM.

* Image loading.

* Font loading.

* QGF palette loading.

* Progressive decoder of pixel data supporting Raw+RLE, 1-,2-,4-,8-bpp monochrome and palette-based images.

* Image drawing.

* Animations.

* Font rendering.

* Check against 256 colours, dump out the loaded palette if debugging enabled.

* Fix build.

* AVR is not the intended audience.

* `qmk format-c`

* Generation fix.

* First batch of docs.

* More docs and examples.

* Review comments.

* Public API documentation.
2022-04-13 18:00:18 +10:00
QMK Bot
1dbbd2b6b0 Merge remote-tracking branch 'origin/master' into develop 2022-04-13 07:46:28 +00:00
Adam Lickel
b8cb147573 [Keymap] sinc/lickel: Use backlight keys in Fn Row (#16789) 2022-04-13 00:45:42 -07:00
QMK Bot
40b76faba8 Merge remote-tracking branch 'origin/master' into develop 2022-04-13 07:04:52 +00:00
PJB Keyboard Design
dfe0515a4b [Keyboard] Add Eros by PJB (#16756)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
2022-04-13 00:04:14 -07:00
QMK Bot
57d8bae083 Merge remote-tracking branch 'origin/master' into develop 2022-04-13 07:03:46 +00:00
Allen Choi
935af9e999 [Keymap] fixed oled turn-off issue for crkbd:gotham (#16748) 2022-04-13 00:03:01 -07:00
QMK Bot
64aa180775 Merge remote-tracking branch 'origin/master' into develop 2022-04-13 06:40:47 +00:00
4pplet
6d816d94f7 [Keyboard] Add ratio65 by rationalist (#16727)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-04-12 23:40:20 -07:00
4pplet
3c3662c20f [Keyboard] Adding waffling80, TKL PCB (#16726)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-04-12 23:39:44 -07:00
QMK Bot
ebf4380a83 Merge remote-tracking branch 'origin/master' into develop 2022-04-13 06:37:41 +00:00
Takeshi ISHII
16c848ca00 [Keymap] Change helix:froggy_106 keymap to use split_common (#16704) 2022-04-12 23:37:05 -07:00
QMK Bot
06ff5fca42 Merge remote-tracking branch 'origin/master' into develop 2022-04-13 06:37:02 +00:00
melonbred
f3a49876d5 [Keyboard] add pegasus (#16701)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-04-12 23:36:33 -07:00
QMK Bot
929f098269 Merge remote-tracking branch 'origin/master' into develop 2022-04-13 06:20:42 +00:00
Moritz
9a38ebc656 [Keyboard] add E80-1800 PCB (#16645)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-04-12 23:20:07 -07:00
QMK Bot
baa566d809 Merge remote-tracking branch 'origin/master' into develop 2022-04-13 06:05:08 +00:00
ziptyze
2d05c7fc25 [Keyboard] super16 update (#16494) 2022-04-12 23:04:38 -07:00
QMK Bot
c4ce95e55b Merge remote-tracking branch 'origin/master' into develop 2022-04-13 06:04:22 +00:00
Nabos
3f66e25b41 [Keyboard] add 10k (#16531)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Nicolas Ballet <balletn@igbmc.fr>
2022-04-12 23:03:49 -07:00
QMK Bot
f1edbe5a89 Merge remote-tracking branch 'origin/master' into develop 2022-04-13 05:51:08 +00:00
Nostril
e1c777a1c9 [Keyboard] Add Synth Labs Solo keyboard (#16103)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-04-12 22:50:38 -07:00
QMK Bot
bcc056774f Merge remote-tracking branch 'origin/master' into develop 2022-04-13 05:46:44 +00:00
sol
8cc86490aa [Keyboard] Add s-ol/0xC.pad (#16057)
* [Keyboard] Add s_ol/0xc_pad

* [Keyboard] add factory testing RGB_MATRIX pattern

Co-authored-by: s-ol <s-ol@users.noreply.github.com>
2022-04-12 22:46:12 -07:00
QMK Bot
781022e910 Merge remote-tracking branch 'origin/master' into develop 2022-04-13 05:25:52 +00:00
Daniel Perrett
a5e41615f7 [Keyboard] Add userspace pdl and a handwired board (#14199)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2022-04-12 22:25:19 -07:00
QMK Bot
6a22c2e665 Merge remote-tracking branch 'origin/master' into develop 2022-04-11 13:11:57 +00:00
Kamil Zielinski
0524a82a88 Fix numbering to match the correct columns (#16831) 2022-04-11 14:11:14 +01:00
QMK Bot
c5423400c3 Merge remote-tracking branch 'origin/master' into develop 2022-04-11 10:19:24 +00:00
Dasky
e13ad14cb7 GMMK Pro return false in encoder user. (#16830) 2022-04-11 20:18:44 +10:00
QMK Bot
d291ad90b4 Merge remote-tracking branch 'origin/master' into develop 2022-04-11 09:10:56 +00:00
Takeshi ISHII
3bde05c568 Change helix:froggy keymap to use split_common (#16703)
* create LAYOUT_half() macro into helix/rev2/keymaps/froggy/keymap.c

* Makes QMK standerd OLED driver used by the helix:froggy keymap switchable.

* Change helix:froggy keymap to use split_common
2022-04-11 18:09:37 +09:00
Sascha
bf67abb046 Fixed usb read loops not reading until timeout (#16827)
* the size variable was redeclared (hiding the variable of the outside scope) and therefore the while check was always false, so the compiler just removed the do while loop, but it would be better to read all data and only exit the task, after this is done
2022-04-10 00:27:02 +02:00
QMK Bot
4ce0203208 Merge remote-tracking branch 'origin/master' into develop 2022-04-09 18:49:52 +00:00
Simon Arlott
84c9d6ff39 [Bug] Fix matrix scan reporting interval (#16825) 2022-04-09 11:49:20 -07:00
QMK Bot
f4f2efd117 Merge remote-tracking branch 'origin/master' into develop 2022-04-09 18:06:48 +00:00
Takeshi ISHII
98d411232f Reduce the size of the keymap helix:fraanrosi (#16717) 2022-04-10 03:06:12 +09:00
Joel Challis
2cfbc1445c Allow new-keyboard to use development_board presets (#16785) 2022-04-08 20:12:32 +01:00
QMK Bot
675ce76972 Merge remote-tracking branch 'origin/master' into develop 2022-04-07 22:11:06 +00:00
joedinkle
e2ace195b0 Header file fixes for all keymaps (#16180) 2022-04-07 18:10:29 -04:00
QMK Bot
0738c9b7f3 Merge remote-tracking branch 'origin/master' into develop 2022-04-07 12:52:17 +00:00
James Young
f4c6e76cf6 io_mini1800 Configurator Fixes (#16813)
* info.json: apply friendly formatting

* info.json: fix key sequence errors

Fixes out-of-sequence issue for the Numpad Plus key on both layouts.
2022-04-07 13:51:17 +01:00
QMK Bot
e96d9abe3c Merge remote-tracking branch 'origin/master' into develop 2022-04-07 05:19:59 +00:00
Laneware
d198d7924d Update LW-67 info.json (#16788)
* Update info.json

Fixed:
-ISO Enter Position
-Up Arrow Position
-PgDn Position

Cause of Error:
-Keyboard Layout Editor Places Iso Enter on R1 Rather Than R2 like the ANSI Enter

* Update info.json

Fixed Compile Error to Previous Change

* Update keyboards/lw67/info.json
2022-04-06 22:19:24 -07:00
QMK Bot
14a867436c Merge remote-tracking branch 'origin/master' into develop 2022-04-06 21:01:35 +00:00
James Young
fa978542e9 Sandwich Keeb68 Layout Macro Rework and Configurator Data (#16803)
* keeb68.h: use QMK 3-character notation

* physically arrange layout macro

Moves the keycodes for Equals and Right Bracket to their proper places on the Number and Tab rows, respectively.

Also refactors the keymaps to use QMK-native keycode aliases, grid alignment, and four-space indent.

* move `keymaps/grv_esc/readme.md` to `keymaps/default/`

The file contents say "default keymap".

* enable Community Layouts support

* add QMK Configurator data

* touch-up `rules.mk`
2022-04-06 22:00:59 +01:00
Erovia
85de020573 CLI: Bump the 'jsonschema' version (#16635)
* CLI: Bump the 'jsonschema' version

Update the used meta-schema from Draft 7 from 2018 to the latest one,
Draft 2020-12.
Currently, the validator falls back to Draft 7 if the newer validator is
not available. Draft 2020-12 support was introduced to 'jsonschema' in
version 4.0.0.

* Fix formatting
2022-04-06 19:46:16 +01:00
Joel Challis
d870716457 Add bluepill/blackpill development board presets (#16806) 2022-04-06 15:46:13 +01:00
QMK Bot
0ef2246496 Merge remote-tracking branch 'origin/master' into develop 2022-04-06 10:13:39 +00:00
James Young
4a729a7be5 QK65 Solder Community Layout Support (#16796)
* refactor solder.h

- use QMK 3-character notation
- convert tabs to spaces

* solder.h: add matrix diagram

* rename LAYOUT_solder to LAYOUT_all

* rename LAYOUT_iso to LAYOUT_65_iso_blocker

Also adds Community Layouts rule to `rules.mk`.

* info.json: improve formatting

- convert tabs to spaces
- format file to four-space indent

* refactor keymaps

- convert tabs to spaces
- update grid alignment of keycodes
- remove trailing whitespace

* add LAYOUT_65_ansi_blocker

* add LAYOUT_65_ansi_blocker_split_bs

* add LAYOUT_65_iso_blocker_split_bs

* add LAYOUT_65_ansi_blocker_tsangan

* add LAYOUT_65_iso_blocker_tsangan

* add LAYOUT_65_ansi_blocker_tsangan_split_bs

* add LAYOUT_65_iso_blocker_tsangan_split_bs

* remove 65_ansi_blocker_tsangan_split_bs from `LAYOUTS` rule
2022-04-06 03:13:05 -07:00
QMK Bot
fc2c93e57a Merge remote-tracking branch 'origin/master' into develop 2022-04-06 10:07:15 +00:00
James Young
d508988916 QK65 Hotswap Community Layout Support (#16793)
* qk65 hotswap: Community Layout support

- renames `LAYOUT_hotswap` to `LAYOUT_65_ansi_blocker`
- adds Community Layouts rule to `rules.mk`

* refactor keymaps

Edits the keymaps to align the keycodes in a grid. Whitespace-only change.
2022-04-06 03:06:27 -07:00
Joel Challis
a5e810b86c Add non blackpill F4x1 config files (#16600)
* Add non blackpill F4x1 config files

* Move ld files

* Remove f401 i2c bodges

* more bodge?

* Update to recommended defaults
2022-04-06 01:23:04 +01:00
Joel Challis
45504bb094 Add mechanism to limit available converters (#16783) 2022-04-06 01:08:38 +01:00
QMK Bot
a2f155bbdd Merge remote-tracking branch 'origin/master' into develop 2022-04-05 21:15:00 +00:00
Danny
563c4dbb09 Add Iris Rev 6.1 (#16722) 2022-04-05 17:14:07 -04:00
QMK Bot
f64404cc73 Merge remote-tracking branch 'origin/master' into develop 2022-04-05 19:14:18 +00:00
James Young
67bb6e1945 RGBKB Sol 3 rev1: Configurator Data and Readme (#16798)
* add QMK Configurator data

* add readme file
2022-04-05 12:13:45 -07:00
QMK Bot
99f7a8fcd3 Merge remote-tracking branch 'origin/master' into develop 2022-04-05 18:46:13 +00:00
James Young
2f917dd768 Cutie Club Novus Layout Macro Updates (#16792)
* info.json: apply friendly formatting

* rename LAYOUT_all to LAYOUT_60_ansi_split_bs_rshift

Maintains `LAYOUT_all` as an alias to `LAYOUT_60_ansi_split_bs_rshift`.

* novus.h: use QMK 3-character notation

* novus.h: add matrix diagram

* add LAYOUT_60_ansi

* add LAYOUT_60_ansi_tsangan

* refactor keymaps

- update grid alignment
- use QMK-native keycode aliases

* add LAYOUT_60_ansi_tsangan_split_bs_rshift

* rules.mk: update Community Layouts list
2022-04-05 11:45:18 -07:00
zvecr
b7c9ff4ebe Merge remote-tracking branch 'origin/master' into develop 2022-04-05 19:29:21 +01:00
QMK Bot
c0216e92fa Format code according to conventions (#16802) 2022-04-05 19:21:05 +01:00
Erovia
69be0dc97c Fix lineendings for eason/capsule65 (#16801) 2022-04-05 20:13:00 +02:00
QMK Bot
3c1a3c1719 Merge remote-tracking branch 'origin/master' into develop 2022-04-05 18:06:57 +00:00
eason
aec9942f37 add folders and capsule65 (#16687) 2022-04-05 20:06:05 +02:00
QMK Bot
5407cf5256 Merge remote-tracking branch 'origin/master' into develop 2022-04-04 19:27:36 +00:00
James Young
8b438a9165 Wavtype Foundation Layout Macro Refactor and Configurator Update (#16781)
* info.json: apply friendly formatting

* info.json: update layout data

- update labels to make them QMK CLI friendly
- update key sizes and dimensions (removes key overlaps and mis-locations)

* foundation.h: edit white space

- convert tabs to spaces
- edit alignment of arrays

* foundation.h: add matrix diagram

* rename LAYOUT to LAYOUT_ansi_split_bs

* rename LAYOUT_tkl_ansi_7u to LAYOUT_ansi_tsangan_split_bs

* rename LAYOUT_tkl_iso to LAYOUT_iso_split_bs_rshift

* rename LAYOUT_tkl_iso_7u to LAYOUT_iso_tsangan_split_bs_rshift

* refactor keymaps

- use definitions from `layer_names` enum
- use grid alignment
- use QMK-native keycode aliases

* add reference keymaps

Add `default_ansi_tsangan_split_bs`, `default_iso_split_bs_rshift`, and `default_iso_tsangan_split_bs_rshift` keymaps.

* refactor ISO layouts

Edits the ISO layout macros so that the keycode for Enter is to the end of the home row.

* info.json: fix LAYOUT_iso_tsangan_split_bs_rshift reference

Thanks to zvecr.
2022-04-04 12:27:01 -07:00
QMK Bot
af3c7bae23 Merge remote-tracking branch 'origin/master' into develop 2022-04-04 19:20:40 +00:00
James Young
6a156cb5cc Hineybush H65 Hotswap Layout Additions and Configurator Update (#16780)
* info.json: apply friendly formatting

* h65_hotswap.h: use QMK 3-character notation

* h65_hotswap.h: add matrix diagram

* rename LAYOUT to LAYOUT_all

* add LAYOUT_65_ansi_blocker

* add LAYOUT_65_ansi_blocker_split_bs

* add LAYOUT_65_iso_blocker

* add LAYOUT_65_iso_blocker_split_bs

* grid align keycodes in keymaps

* rules.mk: align inline comments
2022-04-04 12:20:10 -07:00
QMK Bot
8e34665e6e Merge remote-tracking branch 'origin/master' into develop 2022-04-04 18:56:54 +00:00
James Young
d59d60ff69 Hineybush H65 Layout Additions and Configurator Update (#16779)
* info.json: apply friendly formatting

* h65.h: use QMK 3-character notation

* h65.h: add matrix diagram

* add LAYOUT_65_ansi_blocker

* add LAYOUT_65_ansi_blocker_split_bs

* add LAYOUT_65_ansi_blocker_tsangan

* add LAYOUT_65_ansi_blocker_tsangan_split_bs

* add LAYOUT_65_iso_blocker

* add LAYOUT_65_iso_blocker_split_bs

* add LAYOUT_65_iso_blocker_tsangan

* add LAYOUT_65_iso_blocker_tsangan_split_bs

* grid align keycodes in keymaps

* rules.mk: align inline comments
2022-04-04 11:56:20 -07:00
QMK Bot
168449f86b Merge remote-tracking branch 'origin/master' into develop 2022-04-03 21:01:50 +00:00
Joel Challis
6822101f9c Run auto approve only on qmk/qmk_firmware (#16786) 2022-04-04 07:01:16 +10:00
Nick Brassel
ec4f655333 Add warning for CTCP/CONVERT_TO_PROTON_C. (#16782) 2022-04-03 19:17:38 +01:00
QMK Bot
ca161fbbd9 Merge remote-tracking branch 'origin/master' into develop 2022-04-03 18:02:55 +00:00
Gompa
0c8109a1ac fix typo in ps2 set_defaults (#16767) 2022-04-04 04:02:28 +10:00
Joel Challis
c0ac3f7372 Add frameworking for development board presets (#16637)
* Add frameworking for development board presets

* Update lib/python/qmk/info.py

Co-authored-by: Nick Brassel <nick@tzarc.org>

Co-authored-by: Nick Brassel <nick@tzarc.org>
2022-04-03 18:45:10 +01:00
Joel Challis
1660b2d2e2 Refactor CTPC logic to allow future converters (#16621)
* Refactor CTPC logic to allow future converters

* Update builddefs/converters.mk

Co-authored-by: Stefan Kerkmann <karlk90@pm.me>

Co-authored-by: Stefan Kerkmann <karlk90@pm.me>
2022-04-03 18:22:52 +01:00
QMK Bot
e6a7e7ac8e Merge remote-tracking branch 'origin/master' into develop 2022-04-03 12:18:57 +00:00
Joel Challis
27ae37d626 Align action workflow filenames (#16776) 2022-04-03 13:18:28 +01:00
QMK Bot
cffe7f9cae Merge remote-tracking branch 'origin/master' into develop 2022-04-02 21:28:49 +00:00
Joel Challis
61bd61347a Automatically approve workflow runs from first time contributors (#16775)
* Automatically approve workflow runs from first time contributors

* Automatically approve workflow runs from first time contributors
2022-04-02 22:28:10 +01:00
QMK Bot
3c57143bae Merge remote-tracking branch 'origin/master' into develop 2022-04-02 21:09:49 +00:00
Joel Challis
4f30b7a2c9 Automatically approve workflow runs from first time contributors (#16774) 2022-04-02 22:09:16 +01:00
QMK Bot
df9ddf8b61 Merge remote-tracking branch 'origin/master' into develop 2022-04-02 14:54:22 +00:00
Ryan
1caccca1f6 usb-usb converter: fix layout macros (#16769) 2022-04-03 01:53:21 +11:00
QMK Bot
d0b33593b2 Merge remote-tracking branch 'origin/master' into develop 2022-04-01 09:26:34 +00:00
Joel Challis
11db29bedb Lint keyboard/project name (#16766) 2022-04-01 10:25:43 +01:00
QMK Bot
d75ae52fe6 Merge remote-tracking branch 'origin/master' into develop 2022-03-30 20:55:16 +00:00
Ryan
64974a7f8f yapf: disable arithmetic predecence indication (#16749) 2022-03-30 21:54:13 +01:00
dn9uyen
38209c5c86 Add emulated eeprom support for STM32F303xE (#16737)
Added FEE_PAGE_SIZE and FEE_MCU_FLASH_SIZE defines for the STM32F303xE
2022-03-30 20:00:17 +01:00
QMK Bot
d76a68fb0f Merge remote-tracking branch 'origin/master' into develop 2022-03-29 19:19:19 +00:00
m40-dev
6cdf230a20 [Keyboard] handwired/m40/5x5_macropad (#16288)
* Adding the custom handwired 5x5 macropad.

* Update keyboards/handwired/m40/5x5_macropad/readme.md

* Update keyboards/handwired/m40/5x5_macropad/rules.mk

* Update keyboards/handwired/m40/5x5_macropad/readme.md

* Update readme.md

fixed the github link to my profile

* Update keyboards/handwired/m40/5x5_macropad/5x5_macropad.c

* Update keyboards/handwired/m40/5x5_macropad/5x5_macropad.h

* Update keyboards/handwired/m40/5x5_macropad/5x5_macropad.h

* Update keyboards/handwired/m40/5x5_macropad/config.h

* Update keyboards/handwired/m40/5x5_macropad/readme.md

* Update keyboards/handwired/m40/5x5_macropad/config.h

* Update keyboards/handwired/m40/5x5_macropad/readme.md

* Update keyboards/handwired/m40/5x5_macropad/keymaps/default/keymap.c

* Apply suggestions from code review

* added discord Id for maintainer contact

* Update keyboards/handwired/m40/5x5_macropad/readme.md

* Update keyboards/handwired/m40/5x5_macropad/info.json
2022-03-29 12:18:39 -07:00
QMK Bot
aadf0a1038 Merge remote-tracking branch 'origin/master' into develop 2022-03-28 16:47:16 +00:00
Moritz
9b24abf251 [Keyboard] Change linworks Dolice product ID to non-duplicate value (#16745) 2022-03-28 09:46:38 -07:00
Stefan Kerkmann
119abc4375 Refactor writePin to work with statements (#16738) 2022-03-27 15:07:25 -07:00
QMK Bot
03f9b8db15 Merge remote-tracking branch 'origin/master' into develop 2022-03-27 20:29:09 +00:00
Erovia
8c0198334c CLI: Lint non-data driven macros in info.json (#16739)
* CLI: Lint non-data driven macros in info.json

Macros in info.json should either have the "matrix" key with the matrix
data or should should be also present in <keyboard>.h

* Add verification of matrix data

* Use generic '<keyboard>.h' in output

* Add keyboard name to output

* Make C layout macro finding more robust

The old code missed C macros if they had whitespace between '#' and
'define' or had whitespace before '#'.
2022-03-27 21:28:36 +01:00
QMK Bot
5f6c5cb54b Merge remote-tracking branch 'origin/master' into develop 2022-03-27 02:03:30 +00:00
Shandon Anderson
5fae1ec9c3 [Keyboard] Add Mino Hotswap PCB (#16664)
Co-authored-by: Shandon Anderson <shandon@shandon.codes>
2022-03-26 19:02:59 -07:00
QMK Bot
50c1b9afdb Merge remote-tracking branch 'origin/master' into develop 2022-03-26 19:35:51 +00:00
Lê Nguyễn Hoàng Nhân
f874984b96 Fix typos in matrix/noah readme (#16735)
Change "keybaord" to keyboard
2022-03-26 19:35:19 +00:00
QMK Bot
05ac5727f2 Merge remote-tracking branch 'origin/master' into develop 2022-03-26 19:15:58 +00:00
Erovia
55e5daa868 Fix bug when 'info.json' lookup escapes keyboard dir (#16734) 2022-03-26 19:15:25 +00:00
Ryan
c05e8afe45 Joystick feature updates (#16732)
* Joystick feature updates

* Move new functions to joystick.h

* Docs
2022-03-26 18:38:09 +00:00
QMK Bot
71ffb41c9b Merge remote-tracking branch 'origin/master' into develop 2022-03-26 01:06:29 +00:00
Evelien Dekkers
084df6a288 [Keyboard] Add nt210 (#16461)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-03-25 18:06:03 -07:00
QMK Bot
1fabad1cec Merge remote-tracking branch 'origin/master' into develop 2022-03-26 00:46:16 +00:00
somepin
7e0dde1f00 [Keyboard] Add YDKB Grape PCB (#16661)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-03-25 17:45:35 -07:00
QMK Bot
7cec7b6780 Merge remote-tracking branch 'origin/master' into develop 2022-03-26 00:37:32 +00:00
Anton
53a88af036 [Keymap] corne and planck keyboards keymaps (#15570)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-03-25 17:37:05 -07:00
QMK Bot
2957f60dc1 Merge remote-tracking branch 'origin/master' into develop 2022-03-24 20:14:36 +00:00
Erovia
efc9c525b1 CLI: Add 'via2json' subcommand (#16468) 2022-03-24 21:13:40 +01:00
Simon
dc9eb21332 add the ability to change the pwm frequency for the IS31FL3737B (#16718) 2022-03-24 18:08:22 +00:00
QMK Bot
706bceeff8 Merge remote-tracking branch 'origin/master' into develop 2022-03-24 17:02:32 +00:00
Carlo Sala
f7a5ec2483 update kprepublic/bm60hsrgb_poker/rev1/keymaps/carlosala keymap (#16725) 2022-03-24 16:42:48 +00:00
QMK Bot
1ac1f92000 Merge remote-tracking branch 'origin/master' into develop 2022-03-24 05:24:12 +00:00
Nathan Johnson
980a1b0562 [Keymap] ergodox: updating osx_whiskey_tango_foxtrot_capslock to use process_record_user (#16715) 2022-03-23 22:24:02 -07:00
jack
e335d62eda [Keyboard] Add keyboard level encoder function for GMMK Pro (#16721) 2022-03-23 22:23:40 -07:00
QMK Bot
7e69348335 Merge remote-tracking branch 'origin/master' into develop 2022-03-23 18:43:36 +00:00
kopibeng
55b3b2b848 [Keyboard] Add support for XT60 (#16708)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-03-23 11:42:54 -07:00
QMK Bot
5342caf172 Merge remote-tracking branch 'origin/master' into develop 2022-03-23 16:40:54 +00:00
Drashna Jaelre
4a3b4104fe [Bug] Fix unused variable error when using ChibiOS Bitbang serial driver (#16709) 2022-03-23 09:38:51 -07:00
Minna Pallari
08aa54b66f [Keymap] Xiudi XD75 Finnish/Swedish keymap (#16311) 2022-03-23 09:35:14 -07:00
Dan Hertz
92d38c37ec [Keymap] Add dhertz keychron map v0 (#16571) 2022-03-23 09:34:42 -07:00
4pplet
74f4682309 [Keyboard] Waffling60 - readme update (#16707)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: 4pplet <4pplet@protonmail.com>
Co-authored-by: 4pplet <stefan.ess@gmail.com>
2022-03-23 09:34:07 -07:00
Dan Beste
a772a7f3a7 [Keymap] Input Club's Whitefox "True Fox" (#16711) 2022-03-23 09:33:30 -07:00
QMK Bot
eca8782b54 Merge remote-tracking branch 'origin/master' into develop 2022-03-23 06:02:29 +00:00
ChrisBeswick
28bd777f58 [Keyboard] Graystudio Apollo80 (#16469)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-03-22 23:01:55 -07:00
QMK Bot
5ee6f9c9c1 Merge remote-tracking branch 'origin/master' into develop 2022-03-23 05:07:00 +00:00
kb-elmo
c803c50dc0 [Keyboard] Add Axolstudio Foundation Gamma (#15948)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-03-22 22:06:26 -07:00
QMK Bot
dae932fc31 Merge remote-tracking branch 'origin/master' into develop 2022-03-22 16:39:32 +00:00
Luc
f610011aa3 [Keymap] personal keymap, ergodox_ez and atreus / dvorak_42_key (#16695) 2022-03-22 09:38:50 -07:00
Joel Challis
23f365f8bc Ignore transport defaults if SPLIT_KEYBOARD is unset (#16706)
* Ignore transport defaults if SPLIT_KEYBOARD is unset

* keep exists check
2022-03-22 10:48:13 +00:00
Joel Challis
4f8cc32cf5 Extend 'qmk info' to handle keymap level overrides (#16702) 2022-03-21 11:57:41 +01:00
QMK Bot
aea9005236 Merge remote-tracking branch 'origin/master' into develop 2022-03-21 08:06:10 +00:00
Takeshi ISHII
7eb6f86bc0 [Keyboard] add oled_task_kb() into keyboards/helix/rev2/rev2.c (#16697) 2022-03-21 01:05:38 -07:00
QMK Bot
b19d7399ca Merge remote-tracking branch 'origin/master' into develop 2022-03-20 17:24:36 +00:00
Droxx
669ad3c805 Droxx keymap (#16607)
* add droxx kaymap

* add droxx keymap

* fixed config.h

* fixed rules.mk

* fixed rules.mk

* updated readme.md

* Update config.h

* Update keymap.c

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Update config.h

* Update readme.md

* Update keymap.c
2022-03-20 17:24:09 +00:00
QMK Bot
9216dd3917 Merge remote-tracking branch 'origin/master' into develop 2022-03-20 17:06:27 +00:00
Alabahuy
1bc8793f83 Add Rart75 hotswap and support via (#16619)
* Add Keyboard Rart75 Hotswap version

* Update readme

* Update config and readme

* Update info.json

* update readme and keymaps
2022-03-20 17:05:56 +00:00
QMK Bot
4dae5ff37d Merge remote-tracking branch 'origin/master' into develop 2022-03-20 17:03:16 +00:00
Joshua Barber
6125f7bf4d Add MutePad keyboard (Handwired) (#16590)
* Add MutePad keyboard

* Update info.json and readme

* Move mutepad to handwired folder

* Address PR comments
2022-03-20 17:02:46 +00:00
Ryan
cfe28937d5 MS Sculpt Mobile refactor (#16038) 2022-03-20 15:19:46 +11:00
QMK Bot
729d7c2b2e Merge remote-tracking branch 'origin/master' into develop 2022-03-19 20:59:03 +00:00
Ryan
2f095b8925 qmk.path.FileType: fix argument handling (#16693)
* qmk.path.FileType: pass in mode as first argument

* Better solution

* Grammar...
2022-03-19 20:58:30 +00:00
QMK Bot
223bc47658 Merge remote-tracking branch 'origin/master' into develop 2022-03-19 17:41:15 +00:00
Joel Challis
047ef3cd12 VUSB - Use correct endpoint poll for VIA (#16691) 2022-03-19 17:40:47 +00:00
QMK Bot
5dcee0199e Merge remote-tracking branch 'origin/master' into develop 2022-03-19 16:38:09 +00:00
leviport
3502bbbd16 Fix typo in docs/ref_functions.md (#16690) 2022-03-19 16:37:35 +00:00
QMK Bot
32d6c122e9 Merge remote-tracking branch 'origin/master' into develop 2022-03-19 11:53:10 +00:00
Ryan
e354cbe782 device_ver -> device_version for some more boards (#16685) 2022-03-19 11:52:40 +00:00
QMK Bot
98e783cc3c Format code according to conventions (#16686) 2022-03-19 11:52:03 +00:00
Ryan
9ee2effe8e HD44780 driver rework (#16370) 2022-03-19 17:57:22 +11:00
QMK Bot
86b5c6b5c3 Merge remote-tracking branch 'origin/master' into develop 2022-03-19 06:53:09 +00:00
stanrc85
06b6729b16 [Keymap] Update some code and keyboard rules (#16680) 2022-03-18 23:52:33 -07:00
QMK Bot
c39eeaa1c8 Merge remote-tracking branch 'origin/master' into develop 2022-03-18 18:49:56 +00:00
Drashna Jaelre
61c644f6d0 [Keyboard] Update Tractyl Manuform config files (#16684) 2022-03-18 11:49:22 -07:00
QMK Bot
a900f9251a Merge remote-tracking branch 'origin/master' into develop 2022-03-18 17:25:20 +00:00
Florian
773242503c annepro2: Add more LED functionalities to default-layer-indicators (#16676) 2022-03-18 17:24:43 +00:00
QMK Bot
3a08deb7fe Merge remote-tracking branch 'origin/master' into develop 2022-03-18 16:02:57 +00:00
Joel Challis
ed773ab73c Relocate CLI git interactions (#16682) 2022-03-18 16:02:24 +00:00
zvecr
bffb209eee Merge remote-tracking branch 'origin/master' into develop 2022-03-18 01:15:23 +00:00
Joel Challis
e5823b5650 [CLI] Add common util for dumping generated content (#16674) 2022-03-18 01:09:29 +00:00
Drashna Jaelre
02655690f4 [Core] Add compile/make macro to core (#15959)
* [Core] Add KC_MAKE keycode to core

fix linting

fix testing error

work around test idiocyncracies

fix more lint

something something stupid tests

add doc

* updates based on feedback

* Add bad names

* Fixup docs

* semantics but cleaner

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

* Hide oneshot checks behind preprocessors

* Move no-compile option around

* Fix formatting

* make shift optional

* Make opt in

* fix formatting

* update send string function name

Co-authored-by: Joel Challis <git@zvecr.com>

Co-authored-by: precondition <57645186+precondition@users.noreply.github.com>
Co-authored-by: Joel Challis <git@zvecr.com>
2022-03-17 21:19:34 +00:00
QMK Bot
2749346a53 Merge remote-tracking branch 'origin/master' into develop 2022-03-16 23:45:35 +00:00
Joel Challis
417f089115 Print out generated files during build (#16672) 2022-03-17 10:45:06 +11:00
QMK Bot
4e863dbdef Merge remote-tracking branch 'origin/master' into develop 2022-03-16 15:34:51 +00:00
Jay Greco
193dd01f4e [Keyboard] Add nullbits TIDBIT (#15182) 2022-03-16 08:34:16 -07:00
QMK Bot
024bda1dd3 Merge remote-tracking branch 'origin/master' into develop 2022-03-16 04:09:30 +00:00
Ryan
d5d2a01db2 gboards/butterstick: move steno rules config to keymap level (#16666) 2022-03-16 04:08:52 +00:00
QMK Bot
78f7c7bb0d Merge remote-tracking branch 'origin/master' into develop 2022-03-16 03:58:24 +00:00
Ryan
8c5779f768 Fix m3n3van and minim keyboard names in keymap JSON (#16665) 2022-03-16 03:57:47 +00:00
QMK Bot
d802e1c805 Merge remote-tracking branch 'origin/master' into develop 2022-03-16 03:15:02 +00:00
Yakbats
a867cfc26d Update the AL1 Vender ID (#16660)
* Add via to AL1

* Updated number of rows and columns, and applied suggestions from code review

* Update Vender ID

Change the Vender ID for Triangle Lab to comply with the via PR checklist.
2022-03-16 03:14:31 +00:00
QMK Bot
db6d432d6a Merge remote-tracking branch 'origin/master' into develop 2022-03-16 03:13:51 +00:00
AnthonyNguyen168
fded67f1a9 [MB-65S] Change layout to follow change request from OEM (#16663) 2022-03-16 03:13:14 +00:00
QMK Bot
b2e870e4a2 Merge remote-tracking branch 'origin/master' into develop 2022-03-16 00:07:19 +00:00
an_achronism
f6f4d85aa5 yugo_m enhancement: include all available key positions (#16216)
* yugo_m enhancement to include all available key positions in matrix
2022-03-15 17:06:27 -07:00
QMK Bot
919df5934b Merge remote-tracking branch 'origin/master' into develop 2022-03-15 23:28:31 +00:00
Joel Challis
8bffc61959 Ensure dependent CI workflows run (#16662) 2022-03-15 23:27:55 +00:00
QMK Bot
d37ed07c47 Merge remote-tracking branch 'origin/master' into develop 2022-03-15 22:58:50 +00:00
Moritz
77aafd8056 [Keyboard] Add Dolice keyboard (#16186) 2022-03-15 15:58:16 -07:00
QMK Bot
8e1f505ab2 Merge remote-tracking branch 'origin/master' into develop 2022-03-15 22:49:10 +00:00
Tom Konidas
a808c29726 [Keymap] Planck Keymap: tomkonidas (#15869) 2022-03-15 15:48:13 -07:00
QMK Bot
5f817a1d7f Merge remote-tracking branch 'origin/master' into develop 2022-03-15 13:57:46 +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
QMK Bot
872b521e4f Merge remote-tracking branch 'origin/master' into develop 2022-03-15 12:50:04 +00:00
Joel Challis
46e85ded47 Add merge workflow for XAP branch (#16652)
* Add merge workflow for XAP branch

* uncomment
2022-03-15 12:49:23 +00:00
QMK Bot
3315894269 Merge remote-tracking branch 'origin/master' into develop 2022-03-15 09:35:53 +00:00
jack
e9bf95e0f2 [Keyboard] Fix westm/westm68 compliation errors (#16657) 2022-03-15 02:35:17 -07:00
QMK Bot
1335d205f4 Merge remote-tracking branch 'origin/master' into develop 2022-03-15 08:35:53 +00:00
jpuerto96
e94c2df3f3 [Keyboard] Io mini1800 (#16115)
* First commit

* first commit

* 2x3u layout functional

* 625u layout

* rotary encoder

* Modifications to keymaps

* Remove ingrained from io_mini branch

* Update readme

* Update info.json

* change hardware availability

* Change rules.mk wording to match other PR

* Update keyboards/io_mini1800/rules.mk

* Update keyboards/io_mini1800/keymaps/default/keymap.c

* Update keyboards/io_mini1800/keymaps/2x3u/keymap.c

* Update keyboards/io_mini1800/io_mini1800.c

* Update keyboards/io_mini1800/keymaps/2x3u/readme.md

* Update keyboards/io_mini1800/readme.md
2022-03-15 01:35:11 -07:00
QMK Bot
037c5b5496 Merge remote-tracking branch 'origin/master' into develop 2022-03-15 08:31:53 +00:00
Albert Y
9aaf4a5a9b Add split keyboard example for Bootmagic Lite (#16349)
* Add split keyboard example for bootmagic lite

* Add handedness link

* Edit sentence structure

* Apply suggested language correction
2022-03-15 01:31:17 -07:00
QMK Bot
af5fe7fb75 Merge remote-tracking branch 'origin/master' into develop 2022-03-15 08:30:10 +00:00
PaperCraneKeyboards
92a9e7c50b [Keyboard] Adding Gerald65 (#15872)
* Gerald65 new keyboard files

* removing initial population of pck

* Initial Gerald65 Keyboard files

* Changed diode direction

* added fn layer, added picture to readme

* directed mo keycode to fn layer

* Changes to vendor id and bootloader instructions

* Changed to direct image reference

* Update keyboards/papercranekeyboards/gerald65/readme.md

* Remove no longer used features
2022-03-15 01:29:35 -07:00
QMK Bot
38a257e666 Merge remote-tracking branch 'origin/master' into develop 2022-03-15 07:28:59 +00:00
thompson-ele
87bb1a3890 [Keyboard] Add Bacca70 keyboard (#16626)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-03-15 00:28:21 -07:00
QMK Bot
e784dc79a6 Merge remote-tracking branch 'origin/master' into develop 2022-03-15 04:03:24 +00:00
jack
1ef4e305e3 Fix evancookaudio/sleepingdinosaur (#16654) 2022-03-15 15:02:49 +11:00
QMK Bot
34ce1353f1 Merge remote-tracking branch 'origin/master' into develop 2022-03-15 04:01:31 +00:00
jack
36ddb567cc [Keyboard] Fix mechlovin/kay65 (#16653) 2022-03-14 21:00:57 -07:00
QMK Bot
e9783df2c5 Merge remote-tracking branch 'origin/master' into develop 2022-03-15 03:56:19 +00:00
Pear
5e5047f071 [Keyboard westm68 rev1 and fine tune westm boards (#16528)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-03-14 20:55:33 -07:00
QMK Bot
4be80cadac Merge remote-tracking branch 'origin/master' into develop 2022-03-15 01:57:00 +00:00
evanmcook
04826d1aa1 [Keyboard] evancookaudio sleepingdinosaur v2 (#16625) 2022-03-14 18:56:27 -07:00
Ryan
2d9c3f9a89 Add SN74x154 driver and convert AL1 custom matrix (#16331) 2022-03-15 11:38:53 +11:00
QMK Bot
588abd24b5 Merge remote-tracking branch 'origin/master' into develop 2022-03-15 00:24:37 +00:00
mechlovin
7fde309799 [Keyboard] Add Kay65 PCB by Team Mechlovin' (#15565)
* add kay65 PCB

* update

* update

* Update readme.md

* Update keyboards/mechlovin/kay65/rev1/rules.mk

* Update keyboards/mechlovin/olly/jf/rules.mk

* Update keyboards/mechlovin/kay65/rev1/rules.mk

* Update keyboards/mechlovin/kay65/rev1/info.json

* Update keymap.c

* update

* Update keyboards/mechlovin/kay65/rev1/rev1.h

* Update keyboards/mechlovin/kay65/rev1/info.json

* Update keyboards/mechlovin/kay65/rev1/info.json

* Update keyboards/mechlovin/kay65/rev1/rules.mk

* Update keymap.c

* Update readme.md

* Update keyboards/mechlovin/olly/jf/readme.md

* Update keyboards/mechlovin/kay65/rev1/config.h
2022-03-14 17:23:57 -07:00
QMK Bot
9e39b99a0e Merge remote-tracking branch 'origin/master' into develop 2022-03-14 22:21:34 +00:00
ethsol
a939adb55c Sentence correction (#16650) 2022-03-14 22:20:50 +00:00
QMK Bot
6f98a67eda Merge remote-tracking branch 'origin/master' into develop 2022-03-14 22:06:16 +00:00
Yakbats
6c11579876 [Keyboard] Add via keymap to AL1 (#16499) 2022-03-14 15:05:39 -07:00
Stefan Kerkmann
7e669421f8 Rename TICK to TICK_EVENT to prevent naming conflicts (#16649) 2022-03-14 20:06:21 +00:00
QMK Bot
2648a7a125 Merge remote-tracking branch 'origin/master' into develop 2022-03-14 18:08:44 +00:00
Danny
a12d58c6c9 [Keyboard] Add BAMFK-1 (#16409)
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-03-14 11:08:10 -07:00
QMK Bot
1d1d7c388d Merge remote-tracking branch 'origin/master' into develop 2022-03-14 13:58:40 +00:00
Ryan
6a6a333c75 Disable RGB matrix pixel animations for some boards (#16643)
* idobao/id87/v2: disable RGB matrix pixel animations

* Same for two more boards
2022-03-14 13:58:05 +00:00
Ryan
5fb269b2b4 keebio/iris: Add ifdefs to encoder callbacks (#16642) 2022-03-14 13:57:44 +00:00
QMK Bot
cd2fca667b Merge remote-tracking branch 'origin/master' into develop 2022-03-14 01:57:26 +00:00
Joel Challis
c17323b0f5 bolsa/damapad - Fix missing layout macro (#16639) 2022-03-13 18:56:52 -07:00
jack
86a35483a1 Mousekeys fix (#16640) 2022-03-13 18:53:53 -07:00
Drashna Jaelre
b8574efcd6 Fix oneshot toggle logic (#16630)
* Fix oneshot toggle logic

* Enable oneshots by default

* Decrement eeconfig magic number due to eeconfig changes
2022-03-14 01:11:42 +00:00
QMK Bot
42d084d1c0 Merge remote-tracking branch 'origin/master' into develop 2022-03-14 01:04:40 +00:00
jack
8d90cf36f1 Fix 40percentclub USB descriptors (#16638) 2022-03-14 12:04:11 +11:00
Drashna Jaelre
921b9dad6c [Core] Move has_mouse_report_changed function to report.c (#16543)
* Move 'has_mouse_report_changed' checkto report.c

* change mousekeys to use memcpy

* fix linting issues
2022-03-14 00:01:47 +00:00
QMK Bot
cc9a2aef0f Merge remote-tracking branch 'origin/master' into develop 2022-03-13 23:56:16 +00:00
Ryan
dde4120a1e ISP flashing guide: add instructions for flashing STM32duino bootloader (#16568) 2022-03-13 23:55:47 +00:00
QMK Bot
5eb3fc255b Merge remote-tracking branch 'origin/master' into develop 2022-03-13 23:55:18 +00:00
Ryan
c0f4179117 Move keyboard USB IDs and strings to data driven: 0-9 (#16481) 2022-03-13 23:54:49 +00:00
QMK Bot
338cf71ee9 Merge remote-tracking branch 'origin/master' into develop 2022-03-13 23:46:46 +00:00
Ryan
df3770551a USB-USB converter cleanup (#16618) 2022-03-13 23:46:13 +00:00
QMK Bot
3f83a21383 Merge remote-tracking branch 'origin/master' into develop 2022-03-13 21:50:20 +00:00
Spencer Peterson
8fe3864fe7 [Keyboard] Add "Uno" rev2 (#14071)
* [Keyboard] Add "Uno" rev2

Adds support for the second revision of Uno, courtesy of @Snipeye.

* Update keyboards/uno/rev2/rules.mk

* Update keyboards/uno/rev1/rules.mk

* Update keyboards/uno/uno.h

* Update keyboards/uno/rev2/rules.mk

* Update keyboards/uno/rev1/rules.mk

* Update keyboards/uno/keymaps/demo/keymap.c

* Update keyboards/uno/keymaps/demo/keymap.c

* Update keyboards/uno/keymaps/demo/keymap.c

* Update keyboards/uno/rev2/rules.mk

* Update keyboards/uno/rev1/rules.mk

* Align rules.mk comments

* Update keyboards/uno/info.json

* Update keyboards/uno/rev1/config.h

* Update keyboards/uno/rev2/config.h

* Update keyboards/uno/rev2/config.h

* Update keyboards/uno/rev2/config.h

* Update keyboards/uno/rev1/config.h
2022-03-13 14:49:47 -07:00
QMK Bot
2df28c1850 Merge remote-tracking branch 'origin/master' into develop 2022-03-13 17:31:22 +00:00
jels
109c60feeb [Keyboard] Add support for Jels60 (#16605)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-03-13 10:30:55 -07:00
QMK Bot
e226a70adc Merge remote-tracking branch 'origin/master' into develop 2022-03-13 13:57:24 +00:00
Takeshi ISHII
b906af0073 helix:edvorakjp keymap change to use split_common (#16532) 2022-03-13 13:56:56 +00:00
QMK Bot
16fab460fd Merge remote-tracking branch 'origin/master' into develop 2022-03-13 10:10:03 +00:00
jpe230
1f63dbfb8e [Keymap] Update personal crkbd keymap (#16624) 2022-03-13 03:09:36 -07:00
QMK Bot
8ff2497384 Merge remote-tracking branch 'origin/master' into develop 2022-03-13 10:09:12 +00:00
jack
08794fef4e [Keyboard] add missing endif in glitch keyboard (#16629) 2022-03-13 03:08:33 -07:00
QMK Bot
55b53006a5 Merge remote-tracking branch 'origin/master' into develop 2022-03-13 07:37:55 +00:00
Matthew Dias
dccb5711c7 [Keyboard] Add damapad (#16443)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-03-12 23:37:22 -08:00
QMK Bot
ebe87aa67e Merge remote-tracking branch 'origin/master' into develop 2022-03-13 07:36:50 +00:00
Matthew Dias
20424fd37f [Keyboard] Add Glitch (#16444)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-03-12 23:36:12 -08:00
QMK Bot
4281beb1de Merge remote-tracking branch 'origin/master' into develop 2022-03-12 12:42:55 +00:00
Thomas Kriechbaumer
86b123141b docs: fix code sample (#16623) 2022-03-12 12:42:25 +00:00
Joel Challis
dd32cdf527 Redo workaround for pin_def errors on KINETIS (#16620)
* Redo workaround for pin_def errors on KINETIS

* Redo workaround for pin_def errors on KINETIS
2022-03-11 18:50:59 +00:00
Pascal Getreuer
0eb42e042c Fix flipped One Shot logic (#16617) 2022-03-11 13:28:52 +00:00
Joel Challis
1833e65370 Workaround for pin_def errors on KINETIS (#16614) 2022-03-11 13:27:29 +00:00
QMK Bot
0015ebad47 Merge remote-tracking branch 'origin/master' into develop 2022-03-11 13:26:21 +00:00
James Young
3f79708095 Acheron Elongate Delta: add info.json (#16615) 2022-03-11 13:26:15 +00:00
James Young
74b24e410b DZ64RGB: add info.json (#16616) 2022-03-11 13:25:31 +00:00
QMK Bot
e3404d21fe Merge remote-tracking branch 'origin/master' into develop 2022-03-11 05:03:12 +00:00
mechlovin
003231aaf2 [Keyboard] Add Mechlovin Infinity87.5 PCB (#15163)
* add infinity87.5

* Update readme.md

* Update keyboards/mechlovin/infinity875/config.h

* Update keyboards/mechlovin/infinity875/info.json

* Update keyboards/mechlovin/infinity875/rules.mk

* Update keyboards/mechlovin/infinity875/rules.mk

* Update keyboards/mechlovin/infinity875/config.h

* Enable RGB matrix effect

* update keymap default

* undef RGB matrix effect

* Update keyboards/mechlovin/infinity875/rules.mk

* Update keyboards/mechlovin/infinity875/rules.mk

* Update keyboards/mechlovin/infinity875/rules.mk

* Update keyboards/mechlovin/infinity875/readme.md

* Update keyboards/mechlovin/infinity875/infinity875.h

* Update keyboards/mechlovin/infinity875/infinity875.h

* Update keyboards/mechlovin/infinity875/info.json

* Update keyboards/mechlovin/infinity875/infinity875.h

* Update keyboards/mechlovin/infinity875/infinity875.h

* Update keyboards/mechlovin/infinity875/info.json

* Update keyboards/mechlovin/infinity875/info.json

* Update keyboards/mechlovin/infinity875/info.json
2022-03-10 21:02:40 -08:00
Joel Challis
7e6f1c9e08 Force platform pin defs to be included (#16611)
* Force platform pin defs to be included

* Always grab first header
2022-03-10 23:53:16 +00:00
QMK Bot
e9458fd694 Merge remote-tracking branch 'origin/master' into develop 2022-03-10 23:28:26 +00:00
Rocco Meli
ee71362f99 Personal user space and CRKBD R2G keymap (#15888)
* r2g folder groundwork

* Default mb keymap featuring mb logos

* Migrate Oled to keyboard folder

* Move rules configs to support config better

* update readmes

* Liscnece update

* Update config and fix issues caused by redef errs

* funciton name adjusts, define specific rgb modes

* move default oled font to postconfig

* update oled in line with develop merge

* fix return value

* Add some default rgb matrix defines

* del ugfx

* remove #include <stdio.h>

* create personal keymap for r2g

* reduce firmware size

* change keymap to follow physical layout

* remove RGBlight config lines to make both sides work (@Dasky on MechboardsUK Discord)

* strip down configuration, similar to crkbd/r2g:mb_via

* remove wrong oled code overwriting the r2g one

* broken code with RGB matrix (briks right side)

* remove high max brightness limit

* caps lock tap dance and RGB indicator for active caps lock

* fix caps lock led on right side

* add test macro

* remove latex macro which is too slow

* move caps lock tap dance to RALT and add space cadet shift

* switch CTL with ALT in first layer

* add tap dance for ESC/DEL

* space cadet tap dance with caps lock; shift works by needs a short pause

* add space cadet tap dance with caps lock on the right; shift works by needs a short pause and does not hold

* make more keys transparent

* enable auto shift and use logo on both oleds

* add user oled logo, slows down linking considerably

* oled name

* add arrow keys in usual configuration and add linear configuration to symbol layer

* add unicoede support

* add accents

* update to latest version

* add colemak dh layer

* report auto shift timeout

* define layer name shorcuts correctly

* disable VIA to enable more layers

* enable NKRO

* move some rules and unicode to user space

* move oled and tap dances to user space

* move tap dances fully out of keymap

* expand unicode map

* fix unicode code

* revert changes to r2g, make it equal to merged code

* revert changes to r2g, make it equal to merged code

* clang-format userspace

* clang-format config file

* Update keyboards/crkbd/keymaps/rmeli/keymap.c

* replace define with enum

* add licenses
2022-03-10 15:27:37 -08:00
QMK Bot
31eb82c911 Merge remote-tracking branch 'origin/master' into develop 2022-03-10 21:34:11 +00:00
Erovia
b75f6691a1 CLI: Fix 'cd' subcommand on Windows (#16610)
The 'cd' subcommand was failing as the current shell's Windows path was
mangled while milc processed it.
Using 'subprocess' directly avoids this issue and an extra layer of
subshell.
2022-03-10 21:33:41 +00:00
QMK Bot
54658a3687 Merge remote-tracking branch 'origin/master' into develop 2022-03-10 20:49:07 +00:00
WJH
6c40b6856b [Docs] Include ASCII diagram to explain tap-hold modes (#15873)
* [Docs] Include ASCII diagram to explain tap-hold modes

* [Docs]: add examples for Default mode for Tap Hold

* [Docs] fix some wrong explanation in tap_hold.md
2022-03-10 12:48:33 -08:00
QMK Bot
27cde5f4c2 Merge remote-tracking branch 'origin/master' into develop 2022-03-10 20:42:00 +00:00
Christian Hofstede
b33fdc299c add chofstede keymap for gmmk/pro/iso (#16045)
Add new keymap for GMMK with some additional mappings and led indicator for caps lock

* add chofstede keymap

* fix formatting

* fix formatting

* add readme

* Update keyboards/gmmk/pro/iso/keymaps/chofstede/keymap.c
2022-03-10 12:41:30 -08:00
QMK Bot
83f757f8f0 Merge remote-tracking branch 'origin/master' into develop 2022-03-10 20:22:41 +00:00
Liashenko Volodymyr
fc7a41fdce [Keyboard] lily58/glow_enc (#16101)
Add rgb-light and encoder for lily58 mod

* add support for lily58 encoders (one per size) and rgb-light.

The pcb and details here https://github.com/orvisevans/Lily58-Glow-Enc

* add support for lily58 encoders (one per size) and rgb-light.

The pcb and details here https://github.com/orvisevans/Lily58-Glow-Enc

* Update keyboards/lily58/glowEnc/config.h

* add GPL License to growEnc.h

* rename folder according to requirement to lower case
2022-03-10 12:21:55 -08:00
QMK Bot
ee6a0e8744 Merge remote-tracking branch 'origin/master' into develop 2022-03-10 20:08:54 +00:00
Era James
98da119293 era1112 keymap for preonic (#16064)
Added the keymap I have been using as a daily driver for the last month.

* good firmware 26 jan, best clicky mode stability so far

* modified to reflect master branch coding style

* further modified to reflect master branch coding style

* improving clicky stability, tuned down clicky delay duration

* changed name of keymap folder to use lowercase letters
2022-03-10 12:07:37 -08:00
QMK Bot
35fa0f23a5 Merge remote-tracking branch 'origin/master' into develop 2022-03-10 19:10:42 +00:00
kopibeng
61a8a60dfb [Keyboard] Add MNK65 (#16400)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
2022-03-10 11:10:34 -08:00
makenova
265b96a12c [Keyboard] Add omega4 (#16464) 2022-03-10 11:10:05 -08:00
QMK Bot
cf44bde909 Merge remote-tracking branch 'origin/master' into develop 2022-03-10 12:18:47 +00:00
Ryan
bd70f5261c Remove matrix_key_count() (#16603)
* Remove `matrix_key_count()`

* Remove `matrix_bitpop()`
2022-03-10 12:18:07 +00:00
QMK Bot
cb65c7755e Merge remote-tracking branch 'origin/master' into develop 2022-03-10 07:36:31 +00:00
Hao Xiang Liew
dc8db6551d [KEYBOARD] keyboardio/atreus: VIA support (#16604) 2022-03-09 23:35:54 -08:00
QMK Bot
a8b01dc5de Merge remote-tracking branch 'origin/master' into develop 2022-03-10 04:15:19 +00:00
Takeshi Nishio
9d0153dc70 [keyboard]Add v1 to jones keyboard (#14405)
* Change for latest information.

* Update from v03_1 to v1.

* Add v1 files.

* Remove finished todo comment.

* Fix COLUMN number, from "a" to "9".

* Formatting

* Update keyboards/jones/v1/rules.mk

* Add license header.

https://github.com/qmk/qmk_firmware/pull/14405#discussion_r710752035

* Implement better way to handle keycode for encoder.

Use "action_exec" instead of "tap_code16"
https://github.com/qmk/qmk_firmware/pull/14405#discussion_r710752924

* Move External EEPROM config  to keyboard level

* Move the lest of DYNAMIC_KEYMAP config  to keyboard level

https://github.com/qmk/qmk_firmware/pull/14405#discussion_r711668094

* Move the rest of DYNAMIC_KEYMAP config  to keyboard level

https://github.com/qmk/qmk_firmware/pull/14405#discussion_r711668094

* Update keyboards/jones/v1/rules.mk

* Update keyboards/jones/v1/rules.mk

* Update keyboards/jones/v1/rules.mk
2022-03-09 20:14:53 -08:00
QMK Bot
876c5201b9 Merge remote-tracking branch 'origin/master' into develop 2022-03-10 03:57:12 +00:00
maherma-adg
8bcb77cb9a Personalizacion del teclado de AdG (#15738)
* Personalizacion del teclado de AdG

Update layout description

fix symbol layer

* fix doc Colemak

* explicitly define enabled animations

* Change keymap folder name
2022-03-09 19:56:42 -08:00
QMK Bot
62696e82cd Merge remote-tracking branch 'origin/master' into develop 2022-03-10 03:47:09 +00:00
jack
708b3f9192 [Keyboard] Size reduction for kbdfans/kbd67/mkiirgb_iso (#16601) 2022-03-09 19:46:30 -08:00
QMK Bot
0f22bccb3f Merge remote-tracking branch 'origin/master' into develop 2022-03-09 22:05:21 +00:00
Hansol Kim
caeb213400 Add macOS-friendly keymap for GMMK Pro (ANSI) (#14333)
* Add macOS keymap for GMMK Pro (ANSI)

* Change macOS keymap directory name to lowercase

* Add toggleable layer with alternative keymap for function row

* Update readme
2022-03-09 14:04:41 -08:00
QMK Bot
6f1793d486 Merge remote-tracking branch 'origin/master' into develop 2022-03-09 21:48:28 +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
Nick Brassel
edd1f33013 Missed some erroneous prints. (#16597) 2022-03-10 05:43:12 +11:00
Nick Brassel
77180a6649 Fixup builds. (#16596) 2022-03-09 17:09:38 +00:00
Nick Brassel
5d67c4d908 Fix missing definition for non-encoder case. (#16593) 2022-03-09 21:06:33 +11:00
Nick Brassel
8d5eacb7dd Add support for encoder mapping. (#13286) 2022-03-09 19:29:00 +11:00
QMK Bot
7121a228eb Merge remote-tracking branch 'origin/master' into develop 2022-03-09 05:49:59 +00:00
jpe230
dc67fd9b87 Various improvements for the AnnePro2 (#16579) 2022-03-09 16:49:29 +11:00
QMK Bot
4d5e532068 Merge remote-tracking branch 'origin/master' into develop 2022-03-09 01:36:07 +00:00
jpe230
6ab5a7d048 [Keymap] Personal keymap for crkbd (#16546) 2022-03-08 17:35:33 -08:00
QMK Bot
eedbb9ae64 Merge remote-tracking branch 'origin/master' into develop 2022-03-09 01:35:15 +00:00
Salicylic-acid3
c5c5d37e08 [Keymap] Added RGB_Matrix effect mode for naked48/j73gl (#16578) 2022-03-08 17:34:37 -08:00
QMK Bot
c5b11978c7 Merge remote-tracking branch 'origin/master' into develop 2022-03-09 01:25:30 +00:00
Joel Challis
ed169a6b30 Correct order of takashicompany/dogtag info.json (#16591) 2022-03-09 01:24:59 +00:00
QMK Bot
c349e85956 Merge remote-tracking branch 'origin/master' into develop 2022-03-09 00:38:10 +00:00
jack
5244b13173 Fix yandrstudio/zhou65 (#16589)
* initial cleanup and hotfix for rgb....

* remove /f401
2022-03-09 00:37:40 +00:00
QMK Bot
41225620c2 Merge remote-tracking branch 'origin/master' into develop 2022-03-08 22:08:38 +00:00
Danny
022e1fdac8 Add Big Switch Seat (#16524)
* Add Big Switch Seat

* Update keyboards/keebio/bigswitchseat/rules.mk

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

* Update keyboards/keebio/bigswitchseat/rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-03-08 22:08:02 +00:00
QMK Bot
7f8f66512c Merge remote-tracking branch 'origin/master' into develop 2022-03-08 22:07:48 +00:00
Ryan
3347b63d83 handwired/misterdeck refactor (#16572)
* handwired/misterdeck refactor

* Forgot to remove this
2022-03-08 22:07:02 +00:00
QMK Bot
d4bf9b1cc1 Merge remote-tracking branch 'origin/master' into develop 2022-03-08 21:24:38 +00:00
Jason Barnachea
d38696a493 [Keyboard] Add Rama Works M4-A (#16570)
* Initial commit

Add Rama Works M4-A keyboard.

* Update default keymap.c

* Update keyboards/machine_industries/m4_a/config.h

Co-authored-by: Ryan <fauxpark@gmail.com>

Co-authored-by: Ryan <fauxpark@gmail.com>
2022-03-08 21:24:06 +00:00
QMK Bot
49bc3b530b Merge remote-tracking branch 'origin/master' into develop 2022-03-08 20:46:24 +00:00
Ryan
b593cfccbd qmk info: Nicer rendering of big-ass enter (#16541)
* `qmk info`: Nicer rendering of big-ass enter

* Formatting...
2022-03-08 20:45:47 +00:00
QMK Bot
fba3820405 Merge remote-tracking branch 'origin/master' into develop 2022-03-08 18:57:21 +00:00
drewpyun
65eb0f939f [keymap] Add via support for Iskar (#16575)
* iskar initial commit

* testing

* added info.json to iskar

* Updated read.me

* updated info.json removed unnessary keymap folders, fixed rules.mk, added second layer to default layout, added vendor/product id, tested and compiled

* Update readme.md

* Update readme.md

* updated info.json, formatted files according to PR checklist

* Update keyboards/drewkeys/iskar/rules.mk

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

* Update keyboards/drewkeys/iskar/readme.md

Co-authored-by: Ryan <fauxpark@gmail.com>

* added keymaps onto iskar.h that was referenced in info.json

* changed filename to lowercase to match guidelines

* initial commit of VIA files

* edited via keymap

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-03-08 18:56:48 +00:00
QMK Bot
0d428b9b39 Merge remote-tracking branch 'origin/master' into develop 2022-03-08 17:03:41 +00:00
JX
40d6766576 [Keyboard] Add Y&R Studio zhou65 keyboard (#14192)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Nick Brassel <nick@tzarc.org>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-03-08 09:03:05 -08:00
QMK Bot
68a62b99a2 Merge remote-tracking branch 'origin/master' into develop 2022-03-08 16:48:29 +00:00
Callum Hart
d92994be71 [Keyboard] Add Novus 60% keyboard (#16473)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-03-08 08:47:57 -08:00
Nick Brassel
2f6751e48a Asymmetric encoders, encoder tests. (#16068) 2022-03-08 16:58:05 +11:00
QMK Bot
2218690d0b Merge remote-tracking branch 'origin/master' into develop 2022-03-08 05:50:04 +00:00
jack
fe8b7619d3 [Keyboard] Fix late9/rev1 (#16576) 2022-03-07 21:48:56 -08:00
QMK Bot
212e820ff1 Merge remote-tracking branch 'origin/master' into develop 2022-03-08 05:31:24 +00:00
Ryan
89a515913f Oddball: set default pointing device driver (#16574) 2022-03-08 16:30:37 +11:00
QMK Bot
18bfbc93ab Merge remote-tracking branch 'origin/master' into develop 2022-03-08 04:24:07 +00:00
drewpyun
403536986d [Keyboard] Add Iskar (#16562)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-03-07 20:23:53 -08:00
Matthew Dias
4d2ae22690 [Keyboard] Add mini winni (#15341)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-03-07 20:23:06 -08:00
QMK Bot
e0fbb07129 Merge remote-tracking branch 'origin/master' into develop 2022-03-08 04:20:15 +00:00
Ryan Baker
996880a1da [Keyboard] Add rb69 (#16526) 2022-03-07 20:19:45 -08:00
QMK Bot
1d5b462da2 Merge remote-tracking branch 'origin/master' into develop 2022-03-08 04:19:07 +00:00
yiancar
4493f31f80 Add HS version of Nebula65b due to different number of per-key-RGB (#16514)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: yiancar <yiancar@gmail.com>
2022-03-07 20:18:41 -08:00
QMK Bot
e71f8f89d2 Merge remote-tracking branch 'origin/master' into develop 2022-03-08 04:17:05 +00:00
ZiTe
0880850b15 [Bug] Rename has_mouse_report_changed parameters (#16417)
Fixes compilation issues when bluetooth is enabled, due to issues 
with cpp used by bluetooth code. 

Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-03-07 20:16:35 -08:00
QMK Bot
b5996bf793 Merge remote-tracking branch 'origin/master' into develop 2022-03-08 04:10:36 +00:00
Albert Y
8f70adc0b6 [Keyboard] Update encoder code for macro3 (#16005) 2022-03-07 20:09:54 -08:00
QMK Bot
b6000e0fe5 Merge remote-tracking branch 'origin/master' into develop 2022-03-08 04:00:30 +00:00
rookiebwoy
87c2f97def [Keyboard] Add LATE-9 keyboard (#13966) 2022-03-07 19:59:50 -08:00
QMK Bot
0cf1186f8d Merge remote-tracking branch 'origin/master' into develop 2022-03-08 03:46:20 +00:00
peepeetee
eb35f58a6e [Keyboard] Idobao ID87 v2 (#15875)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-03-07 19:45:54 -08:00
Sergey Vlasov
249bc3a5c5 [Keyboard] Add Winry315 keyboard (#15894) 2022-03-07 19:45:30 -08:00
QMK Bot
b069002e61 Merge remote-tracking branch 'origin/master' into develop 2022-03-08 03:41:21 +00:00
Beanaccle
86966fce69 [Keyboard] Add KB58 (#15896)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-03-07 19:40:46 -08:00
QMK Bot
280bea87a6 Merge remote-tracking branch 'origin/master' into develop 2022-03-08 03:40:42 +00:00
TerryMathews
ec3df85f08 [Keyboard] TKC Portico68 v2 (#15916)
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-03-07 19:39:33 -08:00
QMK Bot
9237326664 Merge remote-tracking branch 'origin/master' into develop 2022-03-08 03:02:26 +00:00
Uthol
b2fdb072e5 [Keyboard] Uthol (#16393)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-03-07 19:01:47 -08:00
QMK Bot
2d985687a9 Merge remote-tracking branch 'origin/master' into develop 2022-03-08 03:01:10 +00:00
Matthew Dias
869ede8e4a [Keyboard] Add parallel 65 (#16445)
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-03-07 19:00:35 -08:00
QMK Bot
7bc8046f9a Merge remote-tracking branch 'origin/master' into develop 2022-03-08 02:50:36 +00:00
peepeetee
8014fb14b6 Fix in-page links in reference_info_json.md (#16487) 2022-03-07 18:50:03 -08:00
QMK Bot
26372c81ad Merge remote-tracking branch 'origin/master' into develop 2022-03-08 02:47:28 +00:00
Nabos
8e888794fa [Keymap] Add nabos keymap to dactyl_manuform (5x6) (#16547)
Co-authored-by: Nicolas Ballet <balletn@igbmc.fr>
2022-03-07 18:46:54 -08:00
QMK Bot
c0a7ecb0e1 Merge remote-tracking branch 'origin/master' into develop 2022-03-08 02:45:59 +00:00
Salicylic-acid3
c84d361e95 [Keyboard] Change maximum LED brightness for naked48 (#16564) 2022-03-07 18:45:28 -08:00
QMK Bot
4666dfb0b0 Merge remote-tracking branch 'origin/master' into develop 2022-03-08 02:45:19 +00:00
Umberto Baldi
f0d27e22aa [Keyboard] Change vendor ID for sick68 keyboard (#16563) 2022-03-07 18:44:49 -08:00
QMK Bot
dfb0f9f6a5 Merge remote-tracking branch 'origin/master' into develop 2022-03-08 02:41:16 +00:00
Steven Karrmann
8bcac1c8f7 [Keyboard] Add Morizon (#16549)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-03-07 18:39:58 -08:00
QMK Bot
05cc707d96 Merge remote-tracking branch 'origin/master' into develop 2022-03-08 02:29:47 +00:00
yiancar
6928bce461 [Keyboard] Add Cassini keyboard (#16522)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: yiancar <yiancar@gmail.com>
2022-03-07 18:28:26 -08:00
QMK Bot
347bab7c35 Merge remote-tracking branch 'origin/master' into develop 2022-03-08 02:18:07 +00:00
FearlessSpiff
5995432202 [Keymap] add mouse controls to Mechwilds Mercutio FearlessSpiff (#16566) 2022-03-07 18:17:30 -08:00
QMK Bot
184a0942ff Merge remote-tracking branch 'origin/master' into develop 2022-03-08 01:13:33 +00:00
bwisn
893d86cb89 Add Anne Pro 2 keyboard (#14385)
* [keyboard] Initial support for Anne Pro 2

* [keyboard][AnnePro2] Keymap:update to a reasonable keymap with caps+hjkl => arrow

* :(

* changed to use HSI

* support for annepro2 c18

* keyboard/annepro2: Very stupid matrix scan bug fix.

* typo

* swap COL14/13

* keyboard/annepro2: startup secondary LED MCU

* keyboard/annepro2: typo fix

* Add IO Values

* Disable Combo feature

* Update default keymap to Anne Pro 2 Official Keymap

* keyboard/annepro2: keymap layer name changes

* keyboard/annepro2 BLE Support

* Fix keymap comment

FN1 ESC was listed as ~ instead of `

* keyboard/annepro2: Bluetooth path

* Keyboard annepro2 bidir led comms (#5)

* Added bidirectional shine comms and moved led functionality to new file

* Added bidirectional shine comms and moved led functionality to new file

* Restore original functionality to existing keymaps using new shine commands

* Fix dangling bracketless if statements

* PR cleanup

* add custom keycodes to switch led profiles

* Optimize code

* switch to prev profile before turning leds off

* Add persistent led support with eeprom (#9)

* adding HT32 support to chibios SPI master driver

* add support for W25X20CL SPI eeprom

* add makefile flag for eeprom feature

* add spi support to keyboard startup and config

* example keymap using eeprom profile loading

* Cleanup to fix C15 eeprom/spi build errors (#11)

* Cleanup to fix C15 eeprom/spi build errors

* add newline at eof

* LED Masking support for Shine

Introduce companion update to ledSetMask and ledClearMask.
In keymap `codetector` there is example of how to map caps_lock
to the caps_lock key light on the keyboard.

* [AnnePro2]: update bluetooth connection

* Merge the custom keys enums on annepro2.h (#13)

* Keyboard annepro2 ble caps lock (#12)

* Move matrix_scan_kb out of board.c to annepro2.c

* add buffer clear after init and caplock polling

* Add support for LED intensity (#15)

* Improve logic for switching off and on of LEDs (#16)

* Implement animation speed (#17)

* Include logic to send solid colors as foreground to shine and add sample profiles (#14)

Include the logic to send a solid color from qmk to shine. That solid color will act as a foreground (will override the current profile) until reset (witch will reactivate the current profile).
This functionality depends on changes made for shine as well.

Include 3 new profiles:

    default-full-caps -> same as default, but with the logic of using the red foreground color on caps lock.
    default-layer-indicators -> same as default, but with the logic of red foreground on caps lock, green foreground on FN1 and blue foreground on FN2.
    thomazmoura -> my own profile as a sample of an over-engineered advanced case scenario.

* Implement reactive lighting effects (#18)

* Added multiarrow keymap (#19)

* Add LED documentation (#26)

* add LED documentation

* add LED documentation to other default profiles

* Implement QMK's IAP default keybind (#29)

* Add keymap for going into IAP

* switch to default QMK keybind for IAP mode

* implement bluetooth IAP mode

* Make default config more like Obins stock default (#30)

* Add new message type for resetting foreground color (#31)

* annepro2(bluetooth): add media keys support (#41)

* Asynchronous, robust serial protocol. (#39)

* bla personal ap2-c18 keymap.

* Bidirectional, asynchronous message-based communication with Shine.

- Requires a matching Shine version.
- Protocol is resiliant to loosing bytes during communication, chips won't lock
  waiting for bytes that aren't coming.
- Chips resynchronize in event of loosing a byte using a AA0D header.

Regressions:
- Key masking/locking doesn't work right now. (did it work before?)
- Not all user keymaps build against it.

* Clang-format + code to ease reducing speed of LED UART.

- Did clang-format --style=file -i on multiple files according to
  coding_conventions_c.md

- Added separate serial speed for IAP boot and Led communication, it's possible
  that reducing this to 9600 helped someone with faulty HW. With this code they
  can do it with simple replacing of a value.

* Main chip can set/clear foreground using a mask mechanism.

- Some preparations for selective colouring.

* Selective mask works - tested on capslock.

- Migrated personal keymaps to new status API.

* Clear the foreground colors to show profile when it's modified.

- Show example of achieving selective caps-lock painting + foreground painting
  for layers.
- annepro2LedMaskSetRow is implemented, but still requires testing.

* Implement the QMK side of led blinking to indicate the command was received.

- This stupidly blinks the key when user presses one of the bluetooth commands
to let the user know that the command was received and forwarded to the BT chip.

- TODO: Row/col key positions are hardcoded and not taken from the keymap.

* Reduce memory footprint.

Applying code review suggestions. Moved msgId to globals - preparing for
transmission without copying payload when no retries are necessary.

Added empty readme.md files - required by QMK lint.

Co-authored-by: Tomasz bla Fortuna <bla@thera.be>

* Let the LED chip settle a bit before waking it from the bootloader. (#42)

At least for one person that helps to reliably get the LEDs working without
disconnecting/reconnecting the power to the board multiple times.

Co-authored-by: Tomasz bla Fortuna <bla@thera.be>

* annepro2: rename KEYMAP to LAYOUT, as required by new version of QMK

* annepro2: update ChibiOS configuration files

* annepro2: fix undefined reference to dprint and timer_read32

* annepro2: update ChibiOS MCU name

* update spi driver, fix bad merging with master

* annepro2: add readme and info.json

* annepro2: make code compatible with QMK coding conventions

* tmk_core: temporary fix to allow HT32 based keyboards to work without patched ChibiOS-contrib (AnnePro2)

* AnnePro2: removed core changes

* AnnePro2: Leave only default keymaps

Missing keymaps will be restored in another PR

* annepro2: add licence information

* annepro2: satisfy qmk lint

* annepro2: fix drashna's suggestions

* annepro2: fix matrix

* annepro2: apply code review suggestions

* annepro2: apply remaining code review suggestions

* annepro2: update info.json

* annepro2: remove include

* annepro2: rename keymap to layout

* annepro2: fix typing

* annepro2: apply suggestions from tzarc's code review

Co-authored-by: Nick Brassel <nick@tzarc.org>

* annepro2: more fixes

* annepro2: apply suggestions from code review

Co-authored-by: Joel Challis <git@zvecr.com>

* annepro2: rename file

* more fixes

* Apply suggestions from @tzarc code review

Co-authored-by: Nick Brassel <nick@tzarc.org>

* Update keyboards/annepro2/protocol.h

Co-authored-by: Nick Brassel <nick@tzarc.org>

* Update keyboards/annepro2/chconf.h

Co-authored-by: Nick Brassel <nick@tzarc.org>

* apply CR suggestions

* upgrade readme

* IAP

* update IAP comments, defines

* led fix

* init fix

* annepro2: GPIO cleanup

* annepro2: ioline

* change waiting time

* Start develop for 2022q2

* [Core] Squeeze AVR some more with `-mrelax` and `-mcall-prologues` (#16269)

* Rework generate-api CLI command to use .build directory (#16441)

* Remove `send_unicode_hex_string()` (#16518)

* Change data driven "str" type to represent a quoted string literal (#16516)

* Change data driven "str" type to represent a quoted string literal

* Update docs

* Map data driven `DESCRIPTION` as string literal (#16523)

* update bootloader

* Revert "Merge pull request #2 from qmk/develop"

This reverts commit 9c76065188c3adda98bdaa1f28dad85600e73ee9, reversing
changes made to 240745dc05783c612e92bab153da5c46e037d675.

* Revert "update bootloader"

This reverts commit 240745dc05783c612e92bab153da5c46e037d675.

* fix rules.mk

* change PROGRAM_CMD

Co-authored-by: codetector <codetector@codetector.cn>
Co-authored-by: Fagl4 <18francisco18@gmail.com>
Co-authored-by: Jakob Gillich <jakob@gillich.me>
Co-authored-by: tech2077 <tech2077@gmail.com>
Co-authored-by: jcdeA <31413538+JcdeA@users.noreply.github.com>
Co-authored-by: Thomaz Moura <5599621+thomazmoura@users.noreply.github.com>
Co-authored-by: Darkhan <darkhanu@gmail.com>
Co-authored-by: Paco <70448173+packorf@users.noreply.github.com>
Co-authored-by: jmarmstrong1207 <32995055+jmarmstrong1207@users.noreply.github.com>
Co-authored-by: 1Conan <7620342+1Conan@users.noreply.github.com>
Co-authored-by: Tomasz bla Fortuna <blagh@thera.be>
Co-authored-by: Tomasz bla Fortuna <bla@thera.be>
Co-authored-by: Nick Brassel <nick@tzarc.org>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: QMK Bot <hello@qmk.fm>
Co-authored-by: Stefan Kerkmann <karlk90@pm.me>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-03-08 12:12:53 +11:00
Ryan
07ca35decf Convert Wasdat Code custom matrix to SN74x138 driver (#16257) 2022-03-08 10:02:28 +11:00
QMK Bot
e41d67b428 Merge remote-tracking branch 'origin/master' into develop 2022-03-07 17:06:14 +00:00
Matthew Bautista
2ff646c642 [Keyboard] LFK78 VIA support and Update (#16502) 2022-03-07 09:05:41 -08:00
Stefan Kerkmann
2bface8f89 Add flash target for UF2 bootloaders (#16525) 2022-03-07 08:59:06 -08:00
jack
05b7193651 [Keyboard] remove unecessary layers (#16559) 2022-03-07 08:43:17 -08:00
QMK Bot
51c9988341 Merge remote-tracking branch 'origin/master' into develop 2022-03-07 11:23:50 +00:00
jack
d953aa730e new lines at eof's (#16558) 2022-03-07 11:23:15 +00:00
Ryan
75544d9127 Move Doxygen docs to subdirectory (#16561) 2022-03-07 11:22:22 +00:00
Nick Brassel
44f1bd9b3a ChibiOS 21.11.1 update. (#16251)
* ChibiOS 21.11.1 update.

* `uf2-tinyuf2` => `tinyuf2`

* Updated chibios-contrib, fixup preprocessor for tinyuf2 bootloader.

* Fixup keychron L433 boards.

* Makefile cleanup.

* RISC-V build fixes.

* Fixup RISC-V build.
2022-03-07 21:04:22 +11:00
QMK Bot
5de515526d Merge remote-tracking branch 'origin/master' into develop 2022-03-07 07:17:24 +00:00
Will McGloughlin
4b4f1c6edb [Keymap] Add encoder showcase keymap (#16544) 2022-03-06 23:16:50 -08:00
QMK Bot
e4d51c91b9 Merge remote-tracking branch 'origin/master' into develop 2022-03-07 07:03:07 +00:00
takashicompany
41fb9120d0 [Keyboard] Update DogTag Macro Pad (#16446)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-03-06 23:02:52 -08:00
peepeetee
6e61126e08 [Keyboard] BM68HSRGB/rev2 (#16454)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-03-06 23:02:31 -08:00
QMK Bot
a6126c5853 Merge remote-tracking branch 'origin/master' into develop 2022-03-07 07:00:03 +00:00
jels
9dea8a7d86 [Keyboard] Update Jels88 (#16486) 2022-03-06 22:59:30 -08:00
QMK Bot
827f32b3ad Merge remote-tracking branch 'origin/master' into develop 2022-03-07 06:59:06 +00:00
Koobaczech
b26217414c [Keyboard] Delete duplicate pandora directory (#16496) 2022-03-06 22:58:38 -08:00
QMK Bot
c09e8bbf42 Merge remote-tracking branch 'origin/master' into develop 2022-03-07 06:58:38 +00:00
Koobaczech
2d8266bd7b [Keyboard] Tidy Up pearlboards (#16497) 2022-03-06 22:58:06 -08:00
QMK Bot
b28d8fcb07 Merge remote-tracking branch 'origin/master' into develop 2022-03-07 06:56:26 +00:00
fOmey
bbd47fcaa2 [Keyboard] Atlantis ak81_ve encoder behaviour enhancement & fixes (#16503) 2022-03-06 22:55:56 -08:00
xiao
c810d8cc1b [Keyboard] Update Wakizashi 40 config and readme (#16505) 2022-03-06 22:53:41 -08:00
QMK Bot
575e3e18f5 Merge remote-tracking branch 'origin/master' into develop 2022-03-07 06:53:17 +00:00
xiao
1a1b22ef07 [Keyboard] Sick68 VIA keymap (#16508)
Co-authored-by: xia0 <xiao@morgan.net.au>
2022-03-06 22:52:49 -08:00
QMK Bot
91a6e6245b Merge remote-tracking branch 'origin/master' into develop 2022-03-07 06:41:46 +00:00
owlab-git
0978dca728 [Keyboard] add qk65 files by qwertykeys studio (#16491) 2022-03-06 22:41:16 -08:00
QMK Bot
99edf15a69 Merge remote-tracking branch 'origin/master' into develop 2022-03-07 06:12:48 +00:00
Drashna Jaelre
ff6c70415c [Keymap] Drashna Mouse keys and oled updates (#16556) 2022-03-06 22:12:17 -08:00
QMK Bot
f9df57b722 Merge remote-tracking branch 'origin/master' into develop 2022-03-07 04:55:54 +00:00
QMK Bot
d8971d707e Format code according to conventions (#16554) 2022-03-06 20:55:08 -08:00
QMK Bot
0fd600d6df Merge remote-tracking branch 'origin/master' into develop 2022-03-07 03:37:00 +00:00
kopibeng
0e08fad5c5 [Keyboard] Add support for Typ65+ (#16399)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
2022-03-06 19:36:22 -08:00
QMK Bot
8e7cb28c4f Merge remote-tracking branch 'origin/master' into develop 2022-03-07 03:30:45 +00:00
Felix Jen
dcfa4712fb [Keyboard] Add Kyuu Hotswap (#16360)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-03-06 19:30:13 -08:00
QMK Bot
45929ca657 Merge remote-tracking branch 'origin/master' into develop 2022-03-07 03:28:12 +00:00
Takuya Urakawa
5de86a05c3 [Keyboard] Add Lain keyboard (#16345)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-03-06 19:27:41 -08:00
QMK Bot
bca565cfaa Merge remote-tracking branch 'origin/master' into develop 2022-03-07 03:27:36 +00:00
Andrew Garver
de10757f05 [Keyboard] fourier via keymap (#16335) 2022-03-06 19:27:08 -08:00
QMK Bot
f8fb772f53 Merge remote-tracking branch 'origin/master' into develop 2022-03-07 03:26:51 +00:00
npspears
b77d51f41a [Keyboard] add support for Quark_Plus (#16324)
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-03-06 19:26:23 -08:00
QMK Bot
9bf9adb578 Merge remote-tracking branch 'origin/master' into develop 2022-03-07 03:03:14 +00:00
Takeshi ISHII
9d6cea070e [Keymap] Change helix:five_rows_jis keymap to use split_common (#16538) 2022-03-06 19:02:40 -08:00
QMK Bot
6425dd1710 Merge remote-tracking branch 'origin/master' into develop 2022-03-07 03:02:37 +00:00
Takeshi ISHII
4cae7becb1 [Keymap] Change helix:fraanrosi keymap to use split_common (#16533) 2022-03-06 19:02:00 -08:00
QMK Bot
0f9849ca68 Merge remote-tracking branch 'origin/master' into develop 2022-03-06 21:58:55 +00:00
Joel Challis
30209de9fd merge/uma - Resolve configurator issues (#16551) 2022-03-06 21:58:08 +00:00
QMK Bot
621b4b73a1 Merge remote-tracking branch 'origin/master' into develop 2022-03-06 01:19:14 +00:00
Takeshi ISHII
16cd1d9bf7 Change helix:five_rows keymap to use QMK standerd oled driver (#16539) 2022-03-06 10:18:41 +09:00
QMK Bot
f7512d61bd Merge remote-tracking branch 'origin/master' into develop 2022-03-05 22:55:11 +00:00
Ryan
8e9d45d270 qmk info: nicer rendering of ISO enter (#16466) 2022-03-05 22:54:32 +00:00
QMK Bot
e2ab5056f1 Merge remote-tracking branch 'origin/master' into develop 2022-03-05 21:00:29 +00:00
Joel Challis
b202e59322 Update info.json (#16540) 2022-03-06 07:59:54 +11:00
QMK Bot
ab76e6ab59 Merge remote-tracking branch 'origin/master' into develop 2022-03-05 04:59:18 +00:00
kiilerix
da6d6ce2e1 Some docs improvements (#15845)
* docs: clarify in "Keymap Overview" what LAYOUT is and isn't

It is not strictly necessary to use LAYOUT macros in keyboard.c, but it
is a convenient abstraction of hardware internals, allowing focus on the
physical keyboard layout.

From the C source point of view LAYOUT is macro with a parameter list,
which expands to a array of rows that each is an array with a keyboard
scancode for each column. A macro parameter list is not an array, and
even less a single array.

Perhaps no big deal, but also no reason to give incorrect hints.

* docs: update "Understanding QMK's Code" to current code structure introduced in 96e2b13d1d

This part of the documentation was no longer correct. I tried updating
it, mainly copy editing and using github links to latest release.

This is not trying to fix all problems, but just trying to fix some
problems while reusing much of the old phrases and structure.

* Update docs to use "qmk format-python"
2022-03-05 15:58:50 +11:00
QMK Bot
967b9e3140 Merge remote-tracking branch 'origin/master' into develop 2022-03-05 04:57:51 +00:00
yulei
82dd84e257 support more leds (#15840) 2022-03-05 15:57:19 +11:00
Ryan
7d41639d54 Map data driven DESCRIPTION as string literal (#16523) 2022-03-05 00:20:34 +00:00
QMK Bot
618aaa8ca7 Merge remote-tracking branch 'origin/master' into develop 2022-03-04 18:11:08 +00:00
Kyle McCreery
0be7345640 [Keyboard] BDE Rev2 (#15877)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-03-04 10:10:32 -08:00
QMK Bot
386d19b55f Merge remote-tracking branch 'origin/master' into develop 2022-03-04 17:06:52 +00:00
Joel Challis
c0185116d7 More validation of declared LAYOUT macro names (#16520) 2022-03-04 18:06:15 +01:00
Ryan
ace0603f4f Change data driven "str" type to represent a quoted string literal (#16516)
* Change data driven "str" type to represent a quoted string literal

* Update docs
2022-03-04 13:25:24 +00:00
Ryan
f634fddd34 Remove send_unicode_hex_string() (#16518) 2022-03-04 11:04:45 +00:00
QMK Bot
24f2effbdd Merge remote-tracking branch 'origin/master' into develop 2022-03-04 04:44:30 +00:00
Ryan
34ba7f1c18 Bug report template: require qmk doctor output (#16517) 2022-03-03 20:43:55 -08:00
QMK Bot
bcd4f34b26 Merge remote-tracking branch 'origin/master' into develop 2022-03-04 03:57:31 +00:00
Ryan
d412854e37 analog.[ch]: remove unnecessary includes (#16471) 2022-03-04 14:56:59 +11:00
QMK Bot
9958f9e147 Merge remote-tracking branch 'origin/master' into develop 2022-03-04 03:52:47 +00:00
Ryan
aab2ac22c5 Melody96 refactor (#16455) 2022-03-04 14:52:15 +11:00
QMK Bot
c45ed8930e Merge remote-tracking branch 'origin/master' into develop 2022-03-04 01:49:48 +00:00
jels
61ba8efa3e Update pr_checklist.md (#16484)
Update readme.md template link from https://github.com/qmk/qmk_firmware/blob/master/data/templates/avr/readme.md to https://github.com/qmk/qmk_firmware/blob/master/data/templates/keyboard/readme.md
2022-03-04 12:49:14 +11:00
QMK Bot
c6111aa2a2 Merge remote-tracking branch 'origin/master' into develop 2022-03-03 23:38:54 +00:00
jels
e01307f265 Typo in squeezing_avr.md (#16506)
Fixed typo in squeezing_avr docs.
2022-03-03 15:38:24 -08:00
QMK Bot
d1bd5a0100 Merge remote-tracking branch 'origin/master' into develop 2022-03-03 22:36:19 +00:00
Joel Challis
7fb312ccd7 Fix use of ISSI driver config before init (#16493) 2022-03-03 22:35:51 +00:00
QMK Bot
77ea1bdac4 Merge remote-tracking branch 'origin/master' into develop 2022-03-03 20:24:53 +00:00
Takeshi ISHII
4a66bdf294 Fix helix/rev2 not working properly when using split_common. (#16512)
When helix/rev2 was using split_common, it didn't work properly and I couldn't type on the right hand side.

The cause is that the following code, added in 0.16.0 to `quantum/keyboard.c`, does not include `quantum/split_common/split_util.h` but instead includes `keyboards/helix/rev2/split_util.h`. Therefore, `split_pre_init()/split_post_init()` in `quantum/split_common/split_util.c` was not called.

```c
  #ifdef SPLIT_KEYBOARD
  #    include "split_util.h"
  #endif
```
2022-03-03 20:23:49 +00:00
QMK Bot
b16af15750 Merge remote-tracking branch 'origin/master' into develop 2022-03-03 17:24:52 +00:00
QMK Bot
8a5ad2a113 Merge remote-tracking branch 'origin/master' into develop 2022-03-03 14:28:03 +00:00
QMK Bot
9f95844cad Merge remote-tracking branch 'origin/master' into develop 2022-03-03 09:54:22 +00:00
QMK Bot
d75ce4862b Merge remote-tracking branch 'origin/master' into develop 2022-03-02 11:15:57 +00:00
QMK Bot
9d7f6d1089 Merge remote-tracking branch 'origin/master' into develop 2022-03-01 23:49:18 +00:00
QMK Bot
7f515ee64f Merge remote-tracking branch 'origin/master' into develop 2022-03-01 22:53:03 +00:00
QMK Bot
7d842c676a Merge remote-tracking branch 'origin/master' into develop 2022-03-01 02:12:47 +00:00
QMK Bot
5467bdf39e Merge remote-tracking branch 'origin/master' into develop 2022-03-01 01:54:24 +00:00
QMK Bot
d77b5ad0e8 Merge remote-tracking branch 'origin/master' into develop 2022-03-01 01:52:37 +00:00
QMK Bot
c70bb75323 Merge remote-tracking branch 'origin/master' into develop 2022-02-28 23:34:29 +00:00
QMK Bot
5e57d18c5b Merge remote-tracking branch 'origin/master' into develop 2022-02-28 23:33:51 +00:00
QMK Bot
73135e74b8 Merge remote-tracking branch 'origin/master' into develop 2022-02-28 23:33:10 +00:00
QMK Bot
36e47cb3aa Merge remote-tracking branch 'origin/master' into develop 2022-02-28 20:03:22 +00:00
QMK Bot
3c7c9bdd86 Merge remote-tracking branch 'origin/master' into develop 2022-02-27 12:40:01 +00:00
QMK Bot
48f06ae646 Merge remote-tracking branch 'origin/master' into develop 2022-02-27 11:30:33 +00:00
Joel Challis
e4a6afa369 Rework generate-api CLI command to use .build directory (#16441) 2022-02-27 12:28:51 +01:00
QMK Bot
8f457ada3a Merge remote-tracking branch 'origin/master' into develop 2022-02-27 10:34:57 +00:00
QMK Bot
4fd2739a8c Merge remote-tracking branch 'origin/master' into develop 2022-02-27 10:09:02 +00:00
QMK Bot
f6bc058525 Merge remote-tracking branch 'origin/master' into develop 2022-02-27 08:39:31 +00:00
Stefan Kerkmann
156f0561f2 [Core] Squeeze AVR some more with -mrelax and -mcall-prologues (#16269) 2022-02-26 19:05:03 -08:00
QMK Bot
cb8528c33c Merge remote-tracking branch 'origin/master' into develop 2022-02-27 02:39:15 +00:00
QMK Bot
d9a69324c1 Merge remote-tracking branch 'origin/master' into develop 2022-02-27 02:30:28 +00:00
QMK Bot
4fae7cde7f Merge remote-tracking branch 'origin/master' into develop 2022-02-27 01:51:13 +00:00
QMK Bot
0815d89eb8 Merge remote-tracking branch 'origin/master' into develop 2022-02-27 01:36:55 +00:00
QMK Bot
0d953a2dcf Merge remote-tracking branch 'origin/master' into develop 2022-02-27 01:35:45 +00:00
QMK Bot
d995cf3ae5 Merge remote-tracking branch 'origin/master' into develop 2022-02-27 01:19:23 +00:00
QMK Bot
5360cb1fd7 Merge remote-tracking branch 'origin/master' into develop 2022-02-27 01:07:19 +00:00
QMK Bot
8a23742af2 Merge remote-tracking branch 'origin/master' into develop 2022-02-26 03:21:27 +00:00
zvecr
3da34f297a Start develop for 2022q2 2022-02-26 00:57:08 +00:00
8406 changed files with 228099 additions and 46637 deletions

View File

@@ -18,19 +18,18 @@ assignees: ''
## System Information
- Keyboard:
- Revision (if applicable):
- Operating system:
- AVR GCC version:
<!-- Run `avr-gcc --version` to find this out. -->
- ARM GCC version:
<!-- Run `arm-none-eabi-gcc --version` to find this out. -->
- QMK Firmware version:
<!-- Run `git describe --abbrev=0 --tags` to find this out. -->
- Any keyboard related software installed?
- [ ] AutoHotKey
- [ ] Karabiner
- [ ] Other:
**Keyboard:**
**Revision (if applicable):**
**Operating system:**
**`qmk doctor` output:**
```
(Paste output here)
```
**Any keyboard related software installed?**
- [ ] AutoHotKey (Windows)
- [ ] Karabiner (macOS)
- [ ] Other:
## Additional Context

9
.github/dependabot.yml vendored Normal file
View File

@@ -0,0 +1,9 @@
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
labels: CI
reviewers:
- "qmk/collaborators"
schedule:
interval: "daily"

58
.github/stale.yml vendored
View File

@@ -1,58 +0,0 @@
# Configuration for probot-stale - https://github.com/probot/stale
# General configuration
# Pull request specific configuration
pulls:
staleLabel: awaiting changes
# Number of days of inactivity before an Issue or Pull Request becomes stale
daysUntilStale: 45
# Number of days of inactivity before a stale Issue or Pull Request is closed.
# Set to false to disable. If disabled, issues still need to be closed manually, but will remain marked as stale.
daysUntilClose: 30
# Comment to post when marking as stale. Set to `false` to disable
markComment: >
Thank you for your contribution!
This pull request has been automatically marked as stale because it has not had
activity in the last 45 days. It will be closed in 30 days if no further activity occurs.
Please feel free to give a status update now, or re-open when it's ready.
For maintainers: Please label with `awaiting review`, `breaking_change`, `in progress`, or `on hold` to prevent
the issue from being re-flagged.
# Comment to post when closing a stale Issue or Pull Request.
closeComment: >
Thank you for your contribution!
This pull request has been automatically closed because it has not had activity in the last 30 days.
Please feel free to give a status update now, ping for review, or re-open when it's ready.
# Limit the number of actions per hour, from 1-30. Default is 30
limitPerRun: 30
exemptLabels:
- awaiting review
- breaking_change
- in progress
- on hold
# Issue specific configuration
issues:
staleLabel: stale
limitPerRun: 10
daysUntilStale: 90
daysUntilClose: 30
markComment: >
This issue has been automatically marked as stale because it has not had activity in the
last 90 days. It will be closed in the next 30 days unless it is tagged properly or other activity
occurs.
For maintainers: Please label with `bug`, `in progress`, `on hold`, `discussion` or `to do` to prevent
the issue from being re-flagged.
closeComment: >
This issue has been automatically closed because it has not had activity in the last 30 days.
If this issue is still valid, re-open the issue and let us know.
exemptLabels:
- bug
- in progress
- on hold
- discussion
- to do

View File

@@ -18,7 +18,7 @@ jobs:
if: github.repository == 'qmk/qmk_firmware'
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
with:
fetch-depth: 1
persist-credentials: false
@@ -35,4 +35,4 @@ jobs:
AWS_ACCESS_KEY_ID: ${{ secrets.SPACES_ACCESS_KEY }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.SPACES_SECRET_KEY }}
AWS_S3_ENDPOINT: https://nyc3.digitaloceanspaces.com
SOURCE_DIR: 'api_data'
SOURCE_DIR: '.build/api_data'

18
.github/workflows/auto_approve.yml vendored Normal file
View File

@@ -0,0 +1,18 @@
name: Automatic Approve
on:
schedule:
- cron: "*/5 * * * *"
jobs:
automatic_approve:
runs-on: ubuntu-latest
if: github.repository == 'qmk/qmk_firmware'
steps:
- uses: mheap/automatic-approve-action@v1
with:
token: ${{ secrets.QMK_BOT_TOKEN }}
workflows: "format.yml,lint.yml,unit_test.yml"
dangerous_files: "lib/python/,Makefile,paths.mk,builddefs/"

View File

@@ -1,33 +0,0 @@
name: Essential files modified
on:
push:
branches:
- master
paths:
- quantum/**/*
- tmk_core/**/*
- drivers/**/*
- tests/**/*
- util/**/*
- platforms/**/*
- Makefile
- '*.mk'
jobs:
tag:
runs-on: ubuntu-latest
# protect against those who develop with their fork on master
if: github.repository == 'qmk/qmk_firmware'
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Bump version and push tag
uses: anothrNick/github-tag-action@1.26.0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
DEFAULT_BUMP: 'patch'

33
.github/workflows/auto_tag.yml vendored Normal file
View File

@@ -0,0 +1,33 @@
name: Essential files modified
on:
push:
branches:
- master
paths:
- quantum/**/*
- tmk_core/**/*
- drivers/**/*
- tests/**/*
- util/**/*
- platforms/**/*
- Makefile
- '*.mk'
jobs:
tag:
runs-on: ubuntu-latest
# protect against those who develop with their fork on master
if: github.repository == 'qmk/qmk_firmware'
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Bump version and push tag
uses: anothrNick/github-tag-action@1.39.0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
DEFAULT_BUMP: 'patch'

View File

@@ -18,7 +18,7 @@ jobs:
container: qmkfm/qmk_cli
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
with:
submodules: recursive
- name: Install dependencies

View File

@@ -18,13 +18,15 @@ jobs:
if: github.repository == 'qmk/qmk_firmware'
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
with:
fetch-depth: 1
persist-credentials: false
- name: Generate API Data
run: qmk generate-api
run: |
python3 -m pip install -r requirements-dev.txt
qmk generate-api
- name: Upload API Data
uses: jakejarvis/s3-sync-action@master
@@ -35,4 +37,4 @@ jobs:
AWS_ACCESS_KEY_ID: ${{ secrets.SPACES_ACCESS_KEY }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.SPACES_SECRET_KEY }}
AWS_S3_ENDPOINT: https://nyc3.digitaloceanspaces.com
SOURCE_DIR: 'api_data'
SOURCE_DIR: '.build/api_data'

View File

@@ -5,7 +5,6 @@ on:
branches:
- master
jobs:
develop_update:
runs-on: ubuntu-latest
@@ -13,8 +12,9 @@ jobs:
if: github.repository == 'qmk/qmk_firmware'
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
with:
token: ${{ secrets.QMK_BOT_TOKEN }}
fetch-depth: 0
- name: Checkout develop
@@ -22,14 +22,7 @@ jobs:
git fetch origin master develop
git checkout develop
- name: Check if branch locked
id: check_locked
uses: andstor/file-existence-action@v1
with:
files: ".locked"
- name: Update develop from master
if: steps.check_locked.outputs.files_exists == 'false'
run: |
git config --global user.name "QMK Bot"
git config --global user.email "hello@qmk.fm"

View File

@@ -20,7 +20,7 @@ jobs:
if: github.repository == 'qmk/qmk_firmware'
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
with:
fetch-depth: 1
@@ -34,7 +34,7 @@ jobs:
qmk --verbose generate-docs
- name: Deploy
uses: JamesIves/github-pages-deploy-action@3.7.1
uses: JamesIves/github-pages-deploy-action@v4.4.0
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
BASE_BRANCH: master

View File

@@ -0,0 +1,35 @@
name: Update feature branches after develop merge
on:
push:
branches:
- develop
jobs:
feature_branch_update:
runs-on: ubuntu-latest
if: github.repository == 'qmk/qmk_firmware'
strategy:
matrix:
branch:
- xap
steps:
- uses: actions/checkout@v3
with:
token: ${{ secrets.QMK_BOT_TOKEN }}
fetch-depth: 0
- name: Checkout branch
run: |
git fetch origin develop ${{ matrix.branch }}
git checkout ${{ matrix.branch }}
- name: Update branch from develop
run: |
git config --global user.name "QMK Bot"
git config --global user.email "hello@qmk.fm"
git merge origin/develop
git push origin ${{ matrix.branch }}

View File

@@ -1,51 +0,0 @@
name: PR Lint Format
on:
pull_request:
paths:
- 'drivers/**'
- 'lib/arm_atsam/**'
- 'lib/lib8tion/**'
- 'lib/python/**'
- 'platforms/**'
- 'quantum/**'
- 'tests/**'
- 'tmk_core/**'
jobs:
lint:
runs-on: ubuntu-latest
container: qmkfm/qmk_cli
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Install dependencies
run: |
pip3 install -r requirements-dev.txt
- uses: trilom/file-changes-action@v1.2.4
id: file_changes
with:
output: ' '
fileOutput: ' '
- name: Run qmk formatters
shell: 'bash {0}'
run: |
cat ~/files_added.txt ~/files_modified.txt > ~/files_changed.txt
qmk format-c --core-only $(< ~/files_changed.txt) || true
qmk format-python $(< ~/files_changed.txt) || true
qmk format-text $(< ~/files_changed.txt) || true
- name: Fail when formatting required
run: |
git diff
for file in $(git diff --name-only); do
echo "File '${file}' Requires Formatting"
echo "::error file=${file}::Requires Formatting"
done
test -z "$(git diff --name-only)"

51
.github/workflows/format.yml vendored Normal file
View File

@@ -0,0 +1,51 @@
name: PR Lint Format
on:
pull_request:
paths:
- 'drivers/**'
- 'lib/arm_atsam/**'
- 'lib/lib8tion/**'
- 'lib/python/**'
- 'platforms/**'
- 'quantum/**'
- 'tests/**'
- 'tmk_core/**'
jobs:
lint:
runs-on: ubuntu-latest
container: qmkfm/qmk_cli
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Install dependencies
run: |
pip3 install -r requirements-dev.txt
- uses: trilom/file-changes-action@v1.2.4
id: file_changes
with:
output: ' '
fileOutput: ' '
- name: Run qmk formatters
shell: 'bash {0}'
run: |
cat ~/files_added.txt ~/files_modified.txt > ~/files_changed.txt
qmk format-c --core-only $(< ~/files_changed.txt) || true
qmk format-python $(< ~/files_changed.txt) || true
qmk format-text $(< ~/files_changed.txt) || true
- name: Fail when formatting required
run: |
git diff
for file in $(git diff --name-only); do
echo "File '${file}' Requires Formatting"
echo "::error file=${file}::Requires Formatting"
done
test -z "$(git diff --name-only)"

View File

@@ -1,49 +0,0 @@
name: Lint Format
on:
push:
branches:
- master
- develop
jobs:
lint:
runs-on: ubuntu-latest
container: qmkfm/qmk_cli
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Install dependencies
run: |
pip3 install -r requirements-dev.txt
- name: Run qmk formatters
shell: 'bash {0}'
run: |
qmk format-c -a
qmk format-python -a
qmk format-text -a
git diff
- uses: rlespinasse/github-slug-action@v3.x
- name: Become QMK Bot
run: |
git config user.name 'QMK Bot'
git config user.email 'hello@qmk.fm'
- name: Create Pull Request
uses: peter-evans/create-pull-request@v3
if: ${{ github.repository == 'qmk/qmk_firmware'}}
with:
token: ${{ secrets.QMK_BOT_TOKEN }}
delete-branch: true
branch: bugfix/format_${{ env.GITHUB_REF_SLUG }}
author: QMK Bot <hello@qmk.fm>
committer: QMK Bot <hello@qmk.fm>
commit-message: Format code according to conventions
title: '[CI] Format code according to conventions'

49
.github/workflows/format_push.yml vendored Normal file
View File

@@ -0,0 +1,49 @@
name: Lint Format
on:
push:
branches:
- master
- develop
jobs:
lint:
runs-on: ubuntu-latest
container: qmkfm/qmk_cli
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Install dependencies
run: |
pip3 install -r requirements-dev.txt
- name: Run qmk formatters
shell: 'bash {0}'
run: |
qmk format-c -a
qmk format-python -a
qmk format-text -a
git diff
- uses: rlespinasse/github-slug-action@v3.x
- name: Become QMK Bot
run: |
git config user.name 'QMK Bot'
git config user.email 'hello@qmk.fm'
- name: Create Pull Request
uses: peter-evans/create-pull-request@v4
if: ${{ github.repository == 'qmk/qmk_firmware'}}
with:
token: ${{ secrets.QMK_BOT_TOKEN }}
delete-branch: true
branch: bugfix/format_${{ env.GITHUB_REF_SLUG }}
author: QMK Bot <hello@qmk.fm>
committer: QMK Bot <hello@qmk.fm>
commit-message: Format code according to conventions
title: '[CI] Format code according to conventions'

View File

@@ -12,10 +12,13 @@ jobs:
container: qmkfm/qmk_cli
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Install dependencies
run: pip3 install -r requirements-dev.txt
- uses: trilom/file-changes-action@v1.2.4
id: file_changes
with:

64
.github/workflows/stale.yml vendored Normal file
View File

@@ -0,0 +1,64 @@
name: 'Close stale issues and PRs'
on:
schedule:
- cron: '30 1 * * *'
workflow_dispatch:
permissions:
issues: write
pull-requests: write
jobs:
stale:
runs-on: ubuntu-latest
steps:
- uses: actions/stale@v5
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
remove-stale-when-updated: true
exempt-draft-pr: true
ascending: true
operations-per-run: 150
stale-issue-label: stale
days-before-issue-stale: 90
days-before-issue-close: 30
exempt-issue-labels: bug,in progress,on hold,discussion,to do
stale-issue-message: >
This issue has been automatically marked as stale because it has not had activity in the
last 90 days. It will be closed in the next 30 days unless it is tagged properly or other activity
occurs.
For maintainers: Please label with `bug`, `in progress`, `on hold`, `discussion` or `to do` to prevent
the issue from being re-flagged.
close-issue-message: >
This issue has been automatically closed because it has not had activity in the last 30 days.
If this issue is still valid, re-open the issue and let us know.
// [stale-action-closed]
stale-pr-label: stale
days-before-pr-stale: 45
days-before-pr-close: 30
exempt-pr-labels: bug,awaiting review,breaking_change,in progress,on hold
stale-pr-message: >
Thank you for your contribution!
This pull request has been automatically marked as stale because it has not had
activity in the last 45 days. It will be closed in 30 days if no further activity occurs.
Please feel free to give a status update now, or re-open when it's ready.
For maintainers: Please label with `bug`, `awaiting review`, `breaking_change`, `in progress`, or `on hold`
to prevent the issue from being re-flagged.
close-pr-message: >
Thank you for your contribution!
This pull request has been automatically closed because it has not had activity in the last 30 days.
Please feel free to give a status update now, ping for review, or re-open when it's ready.
// [stale-action-closed]

View File

@@ -20,11 +20,13 @@ jobs:
test:
runs-on: ubuntu-latest
container: qmkfm/base_container
container: qmkfm/qmk_cli
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
with:
submodules: recursive
- name: Install dependencies
run: pip3 install -r requirements-dev.txt
- name: Run tests
run: make test:all

26
.gitignore vendored
View File

@@ -5,6 +5,10 @@
.DS_Store
._*
# Merge files
*.orig
*.rej
# Build artifacts
.clang_complete
.build/
@@ -27,16 +31,11 @@ quantum/version.h
*.uf2
# Old-style QMK Makefiles
/keyboards/*/Makefile
/keyboards/*/*/Makefile
/keyboards/*/*/*/Makefile
/keyboards/*/*/*/*/Makefile
/keyboards/*/*/*/*/*/Makefile
/keyboards/*/keymaps/Makefile
/keyboards/*/*/keymaps/Makefile
/keyboards/*/*/*/keymaps/Makefile
/keyboards/*/*/*/*/keymaps/Makefile
/keyboards/*/*/*/*/*/keymaps/Makefile
/keyboards/**/Makefile
# kbfirmware....
/keyboards/**/kb.h
/keyboards/**/kb.c
# Eclipse/PyCharm/Other IDE Settings
*.iml
@@ -67,10 +66,12 @@ CMakeLists.txt
.vscode/temp.sql
tags
# Ignore image files
# Ignore image/font files
*.gif
*.jpg
*.png
*.ttf
*.otf
# Things Travis sees
/.vs
@@ -91,3 +92,6 @@ user_song_list.h
compile_commands.json
.clangd/
.cache/
# VIA(L) json files that don't belong in QMK repo
via*.json

3
.gitmodules vendored
View File

@@ -18,3 +18,6 @@
[submodule "lib/printf"]
path = lib/printf
url = https://github.com/qmk/printf
[submodule "lib/pico-sdk"]
path = lib/pico-sdk
url = https://github.com/qmk/pico-sdk.git

View File

@@ -401,6 +401,7 @@ ifndef SKIP_GIT
if [ ! -e lib/lufa ]; then git submodule sync lib/lufa && git submodule update --depth 50 --init lib/lufa; fi
if [ ! -e lib/vusb ]; then git submodule sync lib/vusb && git submodule update --depth 50 --init lib/vusb; fi
if [ ! -e lib/printf ]; then git submodule sync lib/printf && git submodule update --depth 50 --init lib/printf; fi
if [ ! -e lib/pico-sdk ]; then git submodule sync lib/pico-sdk && git submodule update --depth 50 --init lib/pico-sdk; fi
git submodule status --recursive 2>/dev/null | \
while IFS= read -r x; do \
case "$$x" in \

View File

@@ -1 +0,0 @@
theme: jekyll-theme-cayman

View File

@@ -97,12 +97,18 @@ ifeq ($(strip $(BOOTLOADER)), halfkay)
OPT_DEFS += -DBOOTLOADER_HALFKAY
BOOTLOADER_TYPE = halfkay
# Teensy 2.0
ifeq ($(strip $(MCU)), atmega32u4)
BOOTLOADER_SIZE = 512
endif
# Teensy 2.0++
ifeq ($(strip $(MCU)), at90usb1286)
BOOTLOADER_SIZE = 1024
endif
# Teensy LC, 3.0, 3.1/2, 3.5, 3.6
ifneq (,$(filter $(MCU_ORIG), MKL26Z64 MK20DX128 MK20DX256 MK64FX512 MK66FX1M0))
FIRMWARE_FORMAT = hex
endif
endif
ifeq ($(strip $(BOOTLOADER)), caterina)
OPT_DEFS += -DBOOTLOADER_CATERINA
@@ -194,6 +200,10 @@ ifeq ($(strip $(BOOTLOADER)), tinyuf2)
OPT_DEFS += -DBOOTLOADER_TINYUF2
BOOTLOADER_TYPE = tinyuf2
endif
ifeq ($(strip $(BOOTLOADER)), rp2040)
OPT_DEFS += -DBOOTLOADER_RP2040
BOOTLOADER_TYPE = rp2040
endif
ifeq ($(strip $(BOOTLOADER)), halfkay)
OPT_DEFS += -DBOOTLOADER_HALFKAY
BOOTLOADER_TYPE = halfkay
@@ -202,6 +212,10 @@ ifeq ($(strip $(BOOTLOADER)), md-boot)
OPT_DEFS += -DBOOTLOADER_MD_BOOT
BOOTLOADER_TYPE = md_boot
endif
ifeq ($(strip $(BOOTLOADER)), wb32-dfu)
OPT_DEFS += -DBOOTLOADER_WB32_DFU
BOOTLOADER_TYPE = wb32_dfu
endif
ifeq ($(strip $(BOOTLOADER_TYPE)),)
$(call CATASTROPHIC_ERROR,Invalid BOOTLOADER,No bootloader specified. Please set an appropriate 'BOOTLOADER' in your keyboard's 'rules.mk' file.)

View File

@@ -13,6 +13,14 @@ endif
include paths.mk
include $(BUILDDEFS_PATH)/message.mk
# Helper to add defines with a 'QMK_' prefix
define add_qmk_prefix_defs
ifdef $1
# Need to cater for 'STM32L4xx+'
OPT_DEFS += -DQMK_$(2)="$($1)" -DQMK_$(2)_$(shell echo $($1) | sed -e 's@+@Plus@g' -e 's@[^a-zA-Z0-9]@_@g' | tr '[:lower:]' '[:upper:]')
endif
endef
# Set the qmk cli to use
QMK_BIN ?= qmk
@@ -159,22 +167,20 @@ ifneq ("$(wildcard $(KEYMAP_JSON))", "")
# Add rules to generate the keymap files - indentation here is important
$(KEYMAP_OUTPUT)/src/keymap.c: $(KEYMAP_JSON)
$(QMK_BIN) json2c --quiet --output $(KEYMAP_C) $(KEYMAP_JSON)
@$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD)
$(eval CMD=$(QMK_BIN) json2c --quiet --output $(KEYMAP_C) $(KEYMAP_JSON))
@$(BUILD_CMD)
$(KEYMAP_OUTPUT)/src/config.h: $(KEYMAP_JSON)
$(QMK_BIN) generate-config-h --quiet --keyboard $(KEYBOARD) --keymap $(KEYMAP) --output $(KEYMAP_H)
@$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD)
$(eval CMD=$(QMK_BIN) generate-config-h --quiet --keyboard $(KEYBOARD) --keymap $(KEYMAP) --output $(KEYMAP_H))
@$(BUILD_CMD)
generated-files: $(KEYMAP_OUTPUT)/src/config.h $(KEYMAP_OUTPUT)/src/keymap.c
endif
ifeq ($(strip $(CTPC)), yes)
CONVERT_TO_PROTON_C=yes
endif
ifeq ($(strip $(CONVERT_TO_PROTON_C)), yes)
include platforms/chibios/boards/QMK_PROTON_C/convert_to_proton_c.mk
endif
include $(BUILDDEFS_PATH)/converters.mk
include $(BUILDDEFS_PATH)/mcu_selection.mk
@@ -324,17 +330,29 @@ ifneq ("$(wildcard $(KEYBOARD_PATH_5)/info.json)","")
endif
CONFIG_H += $(KEYBOARD_OUTPUT)/src/info_config.h $(KEYBOARD_OUTPUT)/src/layouts.h
KEYBOARD_SRC += $(KEYBOARD_OUTPUT)/src/default_keyboard.c
$(KEYBOARD_OUTPUT)/src/info_config.h: $(INFO_JSON_FILES)
$(QMK_BIN) generate-config-h --quiet --keyboard $(KEYBOARD) --output $(KEYBOARD_OUTPUT)/src/info_config.h
@$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD)
$(eval CMD=$(QMK_BIN) generate-config-h --quiet --keyboard $(KEYBOARD) --output $(KEYBOARD_OUTPUT)/src/info_config.h)
@$(BUILD_CMD)
$(KEYBOARD_OUTPUT)/src/default_keyboard.c: $(INFO_JSON_FILES)
@$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD)
$(eval CMD=$(QMK_BIN) generate-keyboard-c --quiet --keyboard $(KEYBOARD) --output $(KEYBOARD_OUTPUT)/src/default_keyboard.c)
@$(BUILD_CMD)
$(KEYBOARD_OUTPUT)/src/default_keyboard.h: $(INFO_JSON_FILES)
$(QMK_BIN) generate-keyboard-h --quiet --keyboard $(KEYBOARD) --output $(KEYBOARD_OUTPUT)/src/default_keyboard.h
@$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD)
$(eval CMD=$(QMK_BIN) generate-keyboard-h --quiet --keyboard $(KEYBOARD) --output $(KEYBOARD_OUTPUT)/src/default_keyboard.h)
@$(BUILD_CMD)
$(KEYBOARD_OUTPUT)/src/layouts.h: $(INFO_JSON_FILES)
$(QMK_BIN) generate-layouts --quiet --keyboard $(KEYBOARD) --output $(KEYBOARD_OUTPUT)/src/layouts.h
@$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD)
$(eval CMD=$(QMK_BIN) generate-layouts --quiet --keyboard $(KEYBOARD) --output $(KEYBOARD_OUTPUT)/src/layouts.h)
@$(BUILD_CMD)
generated-files: $(KEYBOARD_OUTPUT)/src/info_config.h $(KEYBOARD_OUTPUT)/src/default_keyboard.h $(KEYBOARD_OUTPUT)/src/layouts.h
generated-files: $(KEYBOARD_OUTPUT)/src/info_config.h $(KEYBOARD_OUTPUT)/src/default_keyboard.c $(KEYBOARD_OUTPUT)/src/default_keyboard.h $(KEYBOARD_OUTPUT)/src/layouts.h
.INTERMEDIATE : generated-files
@@ -380,10 +398,18 @@ ifneq ("$(KEYMAP_H)","")
CONFIG_H += $(KEYMAP_H)
endif
OPT_DEFS += -DKEYMAP_C=\"$(KEYMAP_C)\"
# If a keymap or userspace places their keymap array in another file instead, allow for it to be included
# !!NOTE!! -- For this to work, the source file cannot be part of $(SRC), so users should not add it via `SRC += <file>`
ifneq ($(strip $(INTROSPECTION_KEYMAP_C)),)
OPT_DEFS += -DINTROSPECTION_KEYMAP_C=\"$(strip $(INTROSPECTION_KEYMAP_C))\"
endif
# project specific files
SRC += \
$(KEYBOARD_SRC) \
$(KEYMAP_C) \
$(QUANTUM_DIR)/keymap_introspection.c \
$(QUANTUM_SRC) \
$(QUANTUM_DIR)/main.c \
@@ -426,6 +452,14 @@ else
include $(TMK_PATH)/protocol/$(PLATFORM_KEY).mk
endif
# Setup definitions based on the selected MCU
$(eval $(call add_qmk_prefix_defs,MCU_ORIG,MCU))
$(eval $(call add_qmk_prefix_defs,MCU_ARCH,MCU_ARCH))
$(eval $(call add_qmk_prefix_defs,MCU_PORT_NAME,MCU_PORT_NAME))
$(eval $(call add_qmk_prefix_defs,MCU_FAMILY,MCU_FAMILY))
$(eval $(call add_qmk_prefix_defs,MCU_SERIES,MCU_SERIES))
$(eval $(call add_qmk_prefix_defs,BOARD,BOARD))
# TODO: remove this bodge?
PROJECT_DEFS := $(OPT_DEFS)
PROJECT_INC := $(VPATH) $(EXTRAINCDIRS) $(KEYBOARD_PATHS)
@@ -459,6 +493,19 @@ check-size: build
check-md5: build
objs-size: build
ifeq ($(strip $(TOP_SYMBOLS)),yes)
all: top-symbols
check-size: top-symbols
top-symbols: build
echo "###########################################"
echo "# Highest flash usage:"
$(NM) -Crtd --size-sort $(BUILD_DIR)/$(TARGET).elf | grep -i ' [t] ' | head -n10 | sed -e 's#^0000000# #g' -e 's#^000000# #g' -e 's#^00000# #g' -e 's#^0000# #g' -e 's#^000# #g' -e 's#^00# #g' -e 's#^0# #g'
echo "###########################################"
echo "# Highest RAM usage:"
$(NM) -Crtd --size-sort $(BUILD_DIR)/$(TARGET).elf | grep -i ' [dbv] ' | head -n10 | sed -e 's#^0000000# #g' -e 's#^000000# #g' -e 's#^00000# #g' -e 's#^0000# #g' -e 's#^000# #g' -e 's#^00# #g' -e 's#^0# #g'
echo "###########################################"
endif
include $(BUILDDEFS_PATH)/show_options.mk
include $(BUILDDEFS_PATH)/common_rules.mk

View File

@@ -4,6 +4,8 @@ endif
.DEFAULT_GOAL := all
OPT = g
include paths.mk
include $(BUILDDEFS_PATH)/message.mk
@@ -36,11 +38,11 @@ CREATE_MAP := no
VPATH += \
$(LIB_PATH)/googletest \
$(LIB_PATH)/googlemock \
$(LIB_PATH)/printf
$(COMMON_VPATH) \
$(TEST_PATH)
all: elf
VPATH += $(COMMON_VPATH)
PLATFORM:=TEST
PLATFORM_KEY:=test
BOOTLOADER_TYPE:=none
@@ -61,6 +63,8 @@ include $(TMK_PATH)/protocol.mk
include $(QUANTUM_PATH)/debounce/tests/rules.mk
include $(QUANTUM_PATH)/encoder/tests/rules.mk
include $(QUANTUM_PATH)/sequencer/tests/rules.mk
include $(QUANTUM_PATH)/wear_leveling/tests/rules.mk
include $(QUANTUM_PATH)/logging/print.mk
include $(PLATFORM_PATH)/test/rules.mk
ifneq ($(filter $(FULL_TESTS),$(TEST)),)
include $(BUILDDEFS_PATH)/build_full_test.mk
@@ -68,7 +72,6 @@ endif
$(TEST)_SRC += \
tests/test_common/main.c \
$(LIB_PATH)/printf/printf.c \
$(QUANTUM_PATH)/logging/print.c
$(TEST_OBJ)/$(TEST)_SRC := $($(TEST)_SRC)

View File

@@ -15,7 +15,6 @@
QUANTUM_SRC += \
$(QUANTUM_DIR)/quantum.c \
$(QUANTUM_DIR)/send_string.c \
$(QUANTUM_DIR)/bitwise.c \
$(QUANTUM_DIR)/led.c \
$(QUANTUM_DIR)/action.c \
@@ -92,10 +91,29 @@ ifeq ($(MUSIC_ENABLE), yes)
SRC += $(QUANTUM_DIR)/process_keycode/process_music.c
endif
VALID_STENO_PROTOCOL_TYPES := geminipr txbolt all
STENO_PROTOCOL ?= all
ifeq ($(strip $(STENO_ENABLE)), yes)
OPT_DEFS += -DSTENO_ENABLE
VIRTSER_ENABLE ?= yes
SRC += $(QUANTUM_DIR)/process_keycode/process_steno.c
ifeq ($(filter $(STENO_PROTOCOL),$(VALID_STENO_PROTOCOL_TYPES)),)
$(call CATASTROPHIC_ERROR,Invalid STENO_PROTOCOL,STENO_PROTOCOL="$(STENO_PROTOCOL)" is not a valid stenography protocol)
else
OPT_DEFS += -DSTENO_ENABLE
VIRTSER_ENABLE ?= yes
ifeq ($(strip $(STENO_PROTOCOL)), geminipr)
OPT_DEFS += -DSTENO_ENABLE_GEMINI
endif
ifeq ($(strip $(STENO_PROTOCOL)), txbolt)
OPT_DEFS += -DSTENO_ENABLE_BOLT
endif
ifeq ($(strip $(STENO_PROTOCOL)), all)
OPT_DEFS += -DSTENO_ENABLE_ALL
OPT_DEFS += -DSTENO_ENABLE_GEMINI
OPT_DEFS += -DSTENO_ENABLE_BOLT
endif
SRC += $(QUANTUM_DIR)/process_keycode/process_steno.c
endif
endif
ifeq ($(strip $(VIRTSER_ENABLE)), yes)
@@ -108,15 +126,16 @@ ifeq ($(strip $(MOUSEKEY_ENABLE)), yes)
SRC += $(QUANTUM_DIR)/mousekey.c
endif
VALID_POINTING_DEVICE_DRIVER_TYPES := adns5050 adns9800 analog_joystick cirque_pinnacle_i2c cirque_pinnacle_spi pmw3360 pmw3389 pimoroni_trackball custom
VALID_POINTING_DEVICE_DRIVER_TYPES := adns5050 adns9800 analog_joystick cirque_pinnacle_i2c cirque_pinnacle_spi paw3204 pmw3360 pmw3389 pimoroni_trackball custom
ifeq ($(strip $(POINTING_DEVICE_ENABLE)), yes)
ifeq ($(filter $(POINTING_DEVICE_DRIVER),$(VALID_POINTING_DEVICE_DRIVER_TYPES)),)
$(call CATASTROPHIC_ERROR,Invalid POINTING_DEVICE_DRIVER,POINTING_DEVICE_DRIVER="$(POINTING_DEVICE_DRIVER)" is not a valid pointing device type)
else
OPT_DEFS += -DPOINTING_DEVICE_ENABLE
MOUSE_ENABLE := yes
SRC += $(QUANTUM_DIR)/pointing_device.c
SRC += $(QUANTUM_DIR)/pointing_device_drivers.c
VPATH += $(QUANTUM_DIR)/pointing_device
SRC += $(QUANTUM_DIR)/pointing_device/pointing_device.c
SRC += $(QUANTUM_DIR)/pointing_device/pointing_device_drivers.c
ifneq ($(strip $(POINTING_DEVICE_DRIVER)), custom)
SRC += drivers/sensors/$(strip $(POINTING_DEVICE_DRIVER)).c
OPT_DEFS += -DPOINTING_DEVICE_DRIVER_$(strip $(shell echo $(POINTING_DEVICE_DRIVER) | tr '[:lower:]' '[:upper:]'))
@@ -131,51 +150,61 @@ ifeq ($(strip $(POINTING_DEVICE_ENABLE)), yes)
else ifeq ($(strip $(POINTING_DEVICE_DRIVER)), cirque_pinnacle_i2c)
OPT_DEFS += -DSTM32_I2C -DHAL_USE_I2C=TRUE
SRC += drivers/sensors/cirque_pinnacle.c
SRC += drivers/sensors/cirque_pinnacle_gestures.c
SRC += $(QUANTUM_DIR)/pointing_device/pointing_device_gestures.c
QUANTUM_LIB_SRC += i2c_master.c
else ifeq ($(strip $(POINTING_DEVICE_DRIVER)), cirque_pinnacle_spi)
OPT_DEFS += -DSTM32_SPI -DHAL_USE_SPI=TRUE
SRC += drivers/sensors/cirque_pinnacle.c
SRC += drivers/sensors/cirque_pinnacle_gestures.c
SRC += $(QUANTUM_DIR)/pointing_device/pointing_device_gestures.c
QUANTUM_LIB_SRC += spi_master.c
else ifeq ($(strip $(POINTING_DEVICE_DRIVER)), pimoroni_trackball)
OPT_DEFS += -DSTM32_SPI -DHAL_USE_I2C=TRUE
QUANTUM_LIB_SRC += i2c_master.c
else ifeq ($(strip $(POINTING_DEVICE_DRIVER)), pmw3360)
OPT_DEFS += -DSTM32_SPI -DHAL_USE_SPI=TRUE
QUANTUM_LIB_SRC += spi_master.c
else ifeq ($(strip $(POINTING_DEVICE_DRIVER)), pmw3389)
else ifneq ($(filter $(strip $(POINTING_DEVICE_DRIVER)),pmw3360 pmw3389),)
OPT_DEFS += -DSTM32_SPI -DHAL_USE_SPI=TRUE
SRC += drivers/sensors/pmw33xx_common.c
QUANTUM_LIB_SRC += spi_master.c
endif
endif
endif
VALID_EEPROM_DRIVER_TYPES := vendor custom transient i2c spi
QUANTUM_PAINTER_ENABLE ?= no
ifeq ($(strip $(QUANTUM_PAINTER_ENABLE)), yes)
include $(QUANTUM_DIR)/painter/rules.mk
endif
VALID_EEPROM_DRIVER_TYPES := vendor custom transient i2c spi wear_leveling
EEPROM_DRIVER ?= vendor
ifeq ($(filter $(EEPROM_DRIVER),$(VALID_EEPROM_DRIVER_TYPES)),)
$(call CATASTROPHIC_ERROR,Invalid EEPROM_DRIVER,EEPROM_DRIVER="$(EEPROM_DRIVER)" is not a valid EEPROM driver)
else
OPT_DEFS += -DEEPROM_ENABLE
COMMON_VPATH += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/eeprom
COMMON_VPATH += $(DRIVER_PATH)/eeprom
COMMON_VPATH += $(PLATFORM_COMMON_DIR)
ifeq ($(strip $(EEPROM_DRIVER)), custom)
# Custom EEPROM implementation -- only needs to implement init/erase/read_block/write_block
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_CUSTOM
COMMON_VPATH += $(DRIVER_PATH)/eeprom
SRC += eeprom_driver.c
else ifeq ($(strip $(EEPROM_DRIVER)), wear_leveling)
# Wear-leveling EEPROM implementation
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_WEAR_LEVELING
SRC += eeprom_driver.c eeprom_wear_leveling.c
else ifeq ($(strip $(EEPROM_DRIVER)), i2c)
# External I2C EEPROM implementation
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_I2C
COMMON_VPATH += $(DRIVER_PATH)/eeprom
QUANTUM_LIB_SRC += i2c_master.c
SRC += eeprom_driver.c eeprom_i2c.c
else ifeq ($(strip $(EEPROM_DRIVER)), spi)
# External SPI EEPROM implementation
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_SPI
COMMON_VPATH += $(DRIVER_PATH)/eeprom
QUANTUM_LIB_SRC += spi_master.c
SRC += eeprom_driver.c eeprom_spi.c
else ifeq ($(strip $(EEPROM_DRIVER)), transient)
# Transient EEPROM implementation -- no data storage but provides runtime area for it
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_TRANSIENT
COMMON_VPATH += $(DRIVER_PATH)/eeprom
SRC += eeprom_driver.c eeprom_transient.c
else ifeq ($(strip $(EEPROM_DRIVER)), vendor)
# Vendor-implemented EEPROM
@@ -186,17 +215,18 @@ else
ifneq ($(filter STM32F3xx_% STM32F1xx_% %_STM32F401xC %_STM32F401xE %_STM32F405xG %_STM32F411xE %_STM32F072xB %_STM32F042x6 %_GD32VF103xB %_GD32VF103x8, $(MCU_SERIES)_$(MCU_LDSCRIPT)),)
# Emulated EEPROM
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_STM32_FLASH_EMULATED
COMMON_VPATH += $(DRIVER_PATH)/eeprom
SRC += eeprom_driver.c
SRC += $(PLATFORM_COMMON_DIR)/eeprom_stm32.c
SRC += $(PLATFORM_COMMON_DIR)/flash_stm32.c
COMMON_VPATH += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/flash
COMMON_VPATH += $(DRIVER_PATH)/flash
SRC += eeprom_driver.c eeprom_stm32.c flash_stm32.c
else ifneq ($(filter $(MCU_SERIES),STM32L0xx STM32L1xx),)
# True EEPROM on STM32L0xx, L1xx
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_STM32_L0_L1
COMMON_VPATH += $(DRIVER_PATH)/eeprom
COMMON_VPATH += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/eeprom
SRC += eeprom_driver.c
SRC += eeprom_stm32_L0_L1.c
SRC += eeprom_driver.c eeprom_stm32_L0_L1.c
else ifneq ($(filter $(MCU_SERIES),RP2040),)
# Wear-leveling EEPROM implementation, backed by RP2040 flash
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_WEAR_LEVELING
SRC += eeprom_driver.c eeprom_wear_leveling.c
WEAR_LEVELING_DRIVER = rp2040_flash
else ifneq ($(filter $(MCU_SERIES),KL2x K20x),)
# Teensy EEPROM implementations
OPT_DEFS += -DEEPROM_TEENSY
@@ -204,32 +234,64 @@ else
else
# Fall back to transient, i.e. non-persistent
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_TRANSIENT
COMMON_VPATH += $(DRIVER_PATH)/eeprom
SRC += eeprom_driver.c eeprom_transient.c
endif
else ifeq ($(PLATFORM),ARM_ATSAM)
# arm_atsam EEPROM
OPT_DEFS += -DEEPROM_SAMD
SRC += $(PLATFORM_COMMON_DIR)/eeprom_samd.c
SRC += eeprom_samd.c
else ifeq ($(PLATFORM),TEST)
# Test harness "EEPROM"
OPT_DEFS += -DEEPROM_TEST_HARNESS
SRC += $(PLATFORM_COMMON_DIR)/eeprom.c
SRC += eeprom.c
endif
endif
endif
VALID_WEAR_LEVELING_DRIVER_TYPES := custom embedded_flash spi_flash rp2040_flash legacy
WEAR_LEVELING_DRIVER ?= none
ifneq ($(strip $(WEAR_LEVELING_DRIVER)),none)
ifeq ($(filter $(WEAR_LEVELING_DRIVER),$(VALID_WEAR_LEVELING_DRIVER_TYPES)),)
$(call CATASTROPHIC_ERROR,Invalid WEAR_LEVELING_DRIVER,WEAR_LEVELING_DRIVER="$(WEAR_LEVELING_DRIVER)" is not a valid wear leveling driver)
else
FNV_ENABLE := yes
OPT_DEFS += -DWEAR_LEVELING_ENABLE
OPT_DEFS += -DWEAR_LEVELING_$(strip $(shell echo $(WEAR_LEVELING_DRIVER) | tr '[:lower:]' '[:upper:]'))
COMMON_VPATH += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/wear_leveling
COMMON_VPATH += $(DRIVER_PATH)/wear_leveling
COMMON_VPATH += $(QUANTUM_DIR)/wear_leveling
SRC += wear_leveling.c
ifeq ($(strip $(WEAR_LEVELING_DRIVER)), embedded_flash)
OPT_DEFS += -DHAL_USE_EFL
SRC += wear_leveling_efl.c
POST_CONFIG_H += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/wear_leveling/wear_leveling_efl_config.h
else ifeq ($(strip $(WEAR_LEVELING_DRIVER)), spi_flash)
FLASH_DRIVER := spi
SRC += wear_leveling_flash_spi.c
POST_CONFIG_H += $(DRIVER_PATH)/wear_leveling/wear_leveling_flash_spi_config.h
else ifeq ($(strip $(WEAR_LEVELING_DRIVER)), rp2040_flash)
SRC += wear_leveling_rp2040_flash.c
POST_CONFIG_H += $(DRIVER_PATH)/wear_leveling/wear_leveling_rp2040_flash_config.h
else ifeq ($(strip $(WEAR_LEVELING_DRIVER)), legacy)
COMMON_VPATH += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/flash
SRC += flash_stm32.c wear_leveling_legacy.c
POST_CONFIG_H += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/wear_leveling/wear_leveling_legacy_config.h
endif
endif
endif
VALID_FLASH_DRIVER_TYPES := spi
FLASH_DRIVER ?= no
ifneq ($(strip $(FLASH_DRIVER)), no)
FLASH_DRIVER ?= none
ifneq ($(strip $(FLASH_DRIVER)), none)
ifeq ($(filter $(FLASH_DRIVER),$(VALID_FLASH_DRIVER_TYPES)),)
$(error FLASH_DRIVER="$(FLASH_DRIVER)" is not a valid FLASH driver)
$(call CATASTROPHIC_ERROR,Invalid FLASH_DRIVER,FLASH_DRIVER="$(FLASH_DRIVER)" is not a valid flash driver)
else
OPT_DEFS += -DFLASH_ENABLE
ifeq ($(strip $(FLASH_DRIVER)), spi)
ifeq ($(strip $(FLASH_DRIVER)),spi)
OPT_DEFS += -DFLASH_DRIVER -DFLASH_SPI
COMMON_VPATH += $(DRIVER_PATH)/flash
SRC += flash_spi.c
QUANTUM_LIB_SRC += spi_master.c
endif
endif
endif
@@ -495,7 +557,7 @@ ifeq ($(strip $(BACKLIGHT_ENABLE)), yes)
endif
endif
VALID_WS2812_DRIVER_TYPES := bitbang pwm spi i2c
VALID_WS2812_DRIVER_TYPES := bitbang pwm spi i2c vendor
WS2812_DRIVER ?= bitbang
ifeq ($(strip $(WS2812_DRIVER_REQUIRED)), yes)
@@ -537,12 +599,6 @@ ifeq ($(strip $(LED_TABLES)), yes)
SRC += $(QUANTUM_DIR)/led_tables.c
endif
ifeq ($(strip $(TERMINAL_ENABLE)), yes)
SRC += $(QUANTUM_DIR)/process_keycode/process_terminal.c
OPT_DEFS += -DTERMINAL_ENABLE
OPT_DEFS += -DUSER_PRINT
endif
ifeq ($(strip $(VIA_ENABLE)), yes)
DYNAMIC_KEYMAP_ENABLE := yes
RAW_ENABLE := yes
@@ -590,6 +646,14 @@ ifneq ($(strip $(DEBOUNCE_TYPE)), custom)
QUANTUM_SRC += $(QUANTUM_DIR)/debounce/$(strip $(DEBOUNCE_TYPE)).c
endif
VALID_SERIAL_DRIVER_TYPES := bitbang usart vendor
SERIAL_DRIVER ?= bitbang
ifeq ($(filter $(SERIAL_DRIVER),$(VALID_SERIAL_DRIVER_TYPES)),)
$(call CATASTROPHIC_ERROR,Invalid SERIAL_DRIVER,SERIAL_DRIVER="$(SERIAL_DRIVER)" is not a valid SERIAL driver)
endif
ifeq ($(strip $(SPLIT_KEYBOARD)), yes)
POST_CONFIG_H += $(QUANTUM_DIR)/split_common/post_config.h
OPT_DEFS += -DSPLIT_KEYBOARD
@@ -614,11 +678,11 @@ ifeq ($(strip $(SPLIT_KEYBOARD)), yes)
endif
endif
SERIAL_DRIVER ?= bitbang
OPT_DEFS += -DSERIAL_DRIVER_$(strip $(shell echo $(SERIAL_DRIVER) | tr '[:lower:]' '[:upper:]'))
ifeq ($(strip $(SERIAL_DRIVER)), bitbang)
QUANTUM_LIB_SRC += serial.c
else
QUANTUM_LIB_SRC += serial_protocol.c
QUANTUM_LIB_SRC += serial_$(strip $(SERIAL_DRIVER)).c
endif
endif
@@ -630,6 +694,12 @@ ifeq ($(strip $(CRC_ENABLE)), yes)
SRC += crc.c
endif
ifeq ($(strip $(FNV_ENABLE)), yes)
OPT_DEFS += -DFNV_ENABLE
VPATH += $(LIB_PATH)/fnv
SRC += qmk_fnv_type_validation.c hash_32a.c hash_64a.c
endif
ifeq ($(strip $(HAPTIC_ENABLE)),yes)
COMMON_VPATH += $(DRIVER_PATH)/haptic
@@ -646,8 +716,9 @@ ifeq ($(strip $(HAPTIC_ENABLE)),yes)
endif
ifeq ($(strip $(HD44780_ENABLE)), yes)
SRC += platforms/avr/drivers/hd44780.c
OPT_DEFS += -DHD44780_ENABLE
COMMON_VPATH += $(DRIVER_PATH)/lcd
SRC += hd44780.c
endif
VALID_OLED_DRIVER_TYPES := SSD1306 custom
@@ -695,7 +766,8 @@ endif
ifeq ($(strip $(UNICODE_COMMON)), yes)
OPT_DEFS += -DUNICODE_COMMON_ENABLE
SRC += $(QUANTUM_DIR)/process_keycode/process_unicode_common.c
SRC += $(QUANTUM_DIR)/process_keycode/process_unicode_common.c \
$(QUANTUM_DIR)/utf8.c
endif
MAGIC_ENABLE ?= yes
@@ -704,6 +776,13 @@ ifeq ($(strip $(MAGIC_ENABLE)), yes)
OPT_DEFS += -DMAGIC_KEYCODE_ENABLE
endif
SEND_STRING_ENABLE ?= yes
ifeq ($(strip $(SEND_STRING_ENABLE)), yes)
OPT_DEFS += -DSEND_STRING_ENABLE
COMMON_VPATH += $(QUANTUM_DIR)/send_string
SRC += $(QUANTUM_DIR)/send_string/send_string.c
endif
ifeq ($(strip $(AUTO_SHIFT_ENABLE)), yes)
SRC += $(QUANTUM_DIR)/process_keycode/process_auto_shift.c
OPT_DEFS += -DAUTO_SHIFT_ENABLE

View File

@@ -1,19 +1,5 @@
# Hey Emacs, this is a -*- makefile -*-
#----------------------------------------------------------------------------
# WinAVR Makefile Template written by Eric B. Weddington, Jg Wunsch, et al.
#
# Released to the Public Domain
#
# Additional material for this makefile was written by:
# Peter Fleury
# Tim Henigan
# Colin O'Flynn
# Reiner Patommel
# Markus Pfaff
# Sander Pool
# Frederik Rouleau
# Carlos Lamas
#
# Enable vpath seraching for source files only
# Without this, output files, could be read from the wrong .build directories
@@ -38,36 +24,15 @@ NO_LTO_OBJ := $(filter %.a,$(OBJ))
MASTER_OUTPUT := $(firstword $(OUTPUTS))
# Output format. (can be srec, ihex, binary)
FORMAT = ihex
# Optimization level, can be [0, 1, 2, 3, s].
# 0 = turn off optimization. s = optimize for size.
# (Note: 3 is not always the best optimization level. See avr-libc FAQ.)
OPT ?= s
# Compiler flag to set the C Standard level.
# c89 = "ANSI" C
# gnu89 = c89 plus GCC extensions
# c99 = ISO C99 standard (not yet fully implemented)
# gnu99 = c99 plus GCC extensions
CSTANDARD = -std=gnu99
# Place -D or -U options here for C sources
#CDEFS +=
# Place -D or -U options here for ASM sources
#ADEFS +=
# Place -D or -U options here for C++ sources
#CXXDEFS += -D__STDC_LIMIT_MACROS
#CXXDEFS += -D__STDC_CONSTANT_MACROS
#CXXDEFS +=
# Compiler flag to set the C and C++ language standard level
CSTANDARD = -std=gnu11
CXXSTANDARD = -std=gnu++14
# Speed up recompilations by opt-in usage of ccache
USE_CCACHE ?= no
@@ -75,15 +40,11 @@ ifneq ($(USE_CCACHE),no)
CC_PREFIX ?= ccache
endif
#---------------- Compiler Options C ----------------
# -g*: generate debugging information
# -O*: optimization level
# -f...: tuning, see GCC manual and avr-libc documentation
# -Wall...: warning level
# -Wa,...: tell GCC to pass this to the assembler.
#---------------- C Compiler Options ----------------
ifeq ($(strip $(LTO_ENABLE)), yes)
ifeq ($(PLATFORM),CHIBIOS)
$(info Enabling LTO on ChibiOS-targeting boards is known to have a high likelihood of failure.)
ifeq ($(PLATFORM),ARM_ATSAM)
$(info Enabling LTO on arm_atsam-targeting boards is known to have a high likelihood of failure.)
$(info If unsure, set LTO_ENABLE = no.)
endif
CDEFS += -flto
@@ -111,23 +72,14 @@ CFLAGS += -Wstrict-prototypes
ifneq ($(strip $(ALLOW_WARNINGS)), yes)
CFLAGS += -Werror
endif
#CFLAGS += -mshort-calls
#CFLAGS += -fno-unit-at-a-time
#CFLAGS += -Wundef
#CFLAGS += -Wunreachable-code
#CFLAGS += -Wsign-compare
CFLAGS += $(CSTANDARD)
# This fixes lots of keyboards linking errors but SHOULDN'T BE A FINAL SOLUTION
# Fixing of multiple variable definitions must be made.
CFLAGS += -fcommon
#---------------- Compiler Options C++ ----------------
# -g*: generate debugging information
# -O*: optimization level
# -f...: tuning, see GCC manual and avr-libc documentation
# -Wall...: warning level
# -Wa,...: tell GCC to pass this to the assembler.
#---------------- C++ Compiler Options ----------------
ifeq ($(strip $(DEBUG_ENABLE)),yes)
CXXFLAGS += -g$(DEBUG)
endif
@@ -141,57 +93,17 @@ CXXFLAGS += -Wundef
ifneq ($(strip $(ALLOW_WARNINGS)), yes)
CXXFLAGS += -Werror
endif
#CXXFLAGS += -mshort-calls
#CXXFLAGS += -fno-unit-at-a-time
#CXXFLAGS += -Wstrict-prototypes
#CXXFLAGS += -Wunreachable-code
#CXXFLAGS += -Wsign-compare
#CXXFLAGS += $(CSTANDARD)
#---------------- Assembler Options ----------------
ASFLAGS += $(ADEFS)
ifeq ($(VERBOSE_AS_CMD),yes)
ASFLAGS += -v
endif
#---------------- Library Options ----------------
# Minimalistic printf version
PRINTF_LIB_MIN = -Wl,-u,vfprintf -lprintf_min
# Floating point printf version (requires MATH_LIB = -lm below)
PRINTF_LIB_FLOAT = -Wl,-u,vfprintf -lprintf_flt
# If this is left blank, then it will use the Standard printf version.
PRINTF_LIB =
#PRINTF_LIB = $(PRINTF_LIB_MIN)
#PRINTF_LIB = $(PRINTF_LIB_FLOAT)
# Minimalistic scanf version
SCANF_LIB_MIN = -Wl,-u,vfscanf -lscanf_min
# Floating point + %[ scanf version (requires MATH_LIB = -lm below)
SCANF_LIB_FLOAT = -Wl,-u,vfscanf -lscanf_flt
# If this is left blank, then it will use the Standard scanf version.
SCANF_LIB =
#SCANF_LIB = $(SCANF_LIB_MIN)
#SCANF_LIB = $(SCANF_LIB_FLOAT)
MATH_LIB = -lm
CREATE_MAP ?= yes
#---------------- Linker Options ----------------
# -Wl,...: tell GCC to pass this to linker.
# -Map: create map file
# --cref: add cross reference to map file
#
# Comennt out "--relax" option to avoid a error such:
# (.vectors+0x30): relocation truncated to fit: R_AVR_13_PCREL against symbol `__vector_12'
#
CREATE_MAP ?= yes
ifeq ($(CREATE_MAP),yes)
LDFLAGS += -Wl,-Map=$(BUILD_DIR)/$(TARGET).map,--cref
endif
@@ -201,20 +113,11 @@ endif
#LDFLAGS += -Wl,--relax
LDFLAGS += $(EXTMEMOPTS)
LDFLAGS += $(patsubst %,-L%,$(EXTRALIBDIRS))
LDFLAGS += $(PRINTF_LIB) $(SCANF_LIB) $(MATH_LIB)
#LDFLAGS += -T linker_script.x
LDFLAGS += -lm
# You can give EXTRALDFLAGS at 'make' command line.
LDFLAGS += $(EXTRALDFLAGS)
#---------------- Assembler Listings ----------------
# -Wa,...: tell GCC to pass this to the assembler.
# -adhlns: create listing
# -gstabs: have the assembler create line number information; note that
# for use in COFF files, additional information about filenames
# and function names needs to be present in the assembler source
# files -- see avr-libc docs [FIXME: not yet described there]
# -listing-cont-lines: Sets the maximum number of continuation lines of hex
# dump that will be displayed for a given single line of source input.
ADHLNS_ENABLE ?= no
ifeq ($(ADHLNS_ENABLE),yes)
@@ -316,7 +219,7 @@ gccversion :
@$(BUILD_CMD)
%.uf2: %.hex
$(eval CMD=$(UF2CONV) $(BUILD_DIR)/$(TARGET).hex -o $(BUILD_DIR)/$(TARGET).uf2 -c -f $(UF2_FAMILY) >/dev/null 2>&1)
$(eval CMD=$(UF2CONV) $(BUILD_DIR)/$(TARGET).hex --output $(BUILD_DIR)/$(TARGET).uf2 --convert --family $(UF2_FAMILY) >/dev/null 2>&1)
#@$(SILENT) || printf "$(MSG_EXECUTING) '$(CMD)':\n"
@$(SILENT) || printf "$(MSG_UF2) $@" | $(AWK_CMD)
@$(BUILD_CMD)

37
builddefs/converters.mk Normal file
View File

@@ -0,0 +1,37 @@
# Note for new boards -- CTPC and CONVERT_TO_PROTON_C are deprecated terms
# and should not be replicated for new boards. These will be removed from
# documentation as well as existing keymaps in due course.
ifeq ($(strip $(CTPC)), yes)
CONVERT_TO_PROTON_C=yes
endif
ifeq ($(strip $(CONVERT_TO_PROTON_C)), yes)
CONVERT_TO=proton_c
cpfirmware: ctpc_warning
.INTERMEDIATE: ctpc_warning
ctpc_warning: elf
$(info @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@)
$(info The `CONVERT_TO_PROTON_C` and `CTPC` options are soon to be deprecated.)
$(info Boards should be changed to use `CONVERT_TO=proton_c` instead.)
$(info @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@)
endif
# TODO: opt in rather than assume everything uses a pro micro
PIN_COMPATIBLE ?= promicro
ifneq ($(CONVERT_TO),)
# glob to search each platfrorm and/or check for valid converter
CONVERTER := $(wildcard $(PLATFORM_PATH)/*/converters/$(PIN_COMPATIBLE)_to_$(CONVERT_TO)/)
ifeq ($(CONVERTER),)
$(call CATASTROPHIC_ERROR,Converting from '$(PIN_COMPATIBLE)' to '$(CONVERT_TO)' not possible!)
endif
TARGET := $(TARGET)_$(CONVERT_TO)
# Configure any defaults
OPT_DEFS += -DCONVERT_TO_$(strip $(shell echo $(CONVERT_TO) | tr '[:lower:]' '[:upper:]'))
OPT_DEFS += -DCONVERTER_ENABLED
VPATH += $(CONVERTER)
# Finally run any converter specific logic
include $(CONVERTER)/converter.mk
endif

View File

@@ -17,6 +17,7 @@ SPACE_CADET_ENABLE ?= yes
GRAVE_ESC_ENABLE ?= yes
GENERIC_FEATURES = \
CAPS_WORD \
COMBO \
COMMAND \
DEFERRED_EXEC \
@@ -25,12 +26,14 @@ GENERIC_FEATURES = \
DYNAMIC_KEYMAP \
DYNAMIC_MACRO \
ENCODER \
ENCODER_MAP \
GRAVE_ESC \
HAPTIC \
KEY_LOCK \
KEY_OVERRIDE \
LEADER \
PROGRAMMABLE_BUTTON \
SECURE \
SPACE_CADET \
SWAP_HANDS \
TAP_DANCE \

View File

@@ -9,7 +9,9 @@ ifneq ($(findstring MKL26Z64, $(MCU)),)
## chip/board settings
# - the next two should match the directories in
# <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
# <chibios[-contrib]>/os/hal/ports/$(MCU_PORT_NAME)/$(MCU_SERIES)
# OR
# <chibios[-contrib]>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
MCU_FAMILY = KINETIS
MCU_SERIES = KL2x
@@ -36,7 +38,9 @@ ifneq ($(findstring MK20DX128, $(MCU)),)
## chip/board settings
# - the next two should match the directories in
# <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
# <chibios[-contrib]>/os/hal/ports/$(MCU_PORT_NAME)/$(MCU_SERIES)
# OR
# <chibios[-contrib]>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
MCU_FAMILY = KINETIS
MCU_SERIES = K20x
@@ -63,7 +67,9 @@ ifneq ($(findstring MK20DX256, $(MCU)),)
## chip/board settings
# - the next two should match the directories in
# <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
# <chibios[-contrib]>/os/hal/ports/$(MCU_PORT_NAME)/$(MCU_SERIES)
# OR
# <chibios[-contrib]>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
MCU_FAMILY = KINETIS
MCU_SERIES = K20x
@@ -81,7 +87,7 @@ ifneq ($(findstring MK20DX256, $(MCU)),)
BOARD ?= PJRC_TEENSY_3_1
endif
ifneq ($(findstring MK66FX1M0, $(MCU)),)
ifneq ($(findstring MK64FX512, $(MCU)),)
# Cortex version
MCU = cortex-m4
@@ -92,6 +98,35 @@ ifneq ($(findstring MK66FX1M0, $(MCU)),)
# - the next two should match the directories in
# <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
MCU_FAMILY = KINETIS
MCU_SERIES = K60x
# Linker script to use
# - it should exist either in <chibios>/os/common/ports/ARMCMx/compilers/GCC/ld/
# or <keyboard_dir>/ld/
MCU_LDSCRIPT ?= MK64FX512
# Startup code to use
# - it should exist in <chibios>/os/common/startup/ARMCMx/compilers/GCC/mk/
MCU_STARTUP ?= k60x
# Board: it should exist either in <chibios>/os/hal/boards/,
# <keyboard_dir>/boards/, or drivers/boards/
BOARD ?= PJRC_TEENSY_3_5
endif
ifneq ($(findstring MK66FX1M0, $(MCU)),)
# Cortex version
MCU = cortex-m4
# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
ARMV = 7
## chip/board settings
# - the next two should match the directories in
# <chibios[-contrib]>/os/hal/ports/$(MCU_PORT_NAME)/$(MCU_SERIES)
# OR
# <chibios[-contrib]>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
MCU_FAMILY = KINETIS
MCU_SERIES = MK66F18
# Linker script to use
@@ -108,6 +143,41 @@ ifneq ($(findstring MK66FX1M0, $(MCU)),)
BOARD ?= PJRC_TEENSY_3_6
endif
ifneq ($(findstring RP2040, $(MCU)),)
# Cortex version
MCU = cortex-m0plus
# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
CHIBIOS_PORT = ARMv6-M-RP2
## chip/board settings
# - the next two should match the directories in
# <chibios[-contrib]>/os/hal/ports/$(MCU_PORT_NAME)/$(MCU_SERIES)
# OR
# <chibios[-contrib]>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
MCU_FAMILY = RP
MCU_SERIES = RP2040
# Linker script to use
# - it should exist either in <chibios>/os/common/ports/ARMCMx/compilers/GCC/ld/
# or <keyboard_dir>/ld/
STARTUPLD_CONTRIB = $(CHIBIOS_CONTRIB)/os/common/startup/ARMCMx/compilers/GCC/ld
MCU_LDSCRIPT ?= RP2040_FLASH_TIMECRIT
LDFLAGS += -L $(STARTUPLD_CONTRIB)
# Startup code to use
# - it should exist in <chibios>/os/common/startup/ARMCMx/compilers/GCC/mk/
MCU_STARTUP ?= rp2040
# Board: it should exist either in <chibios>/os/hal/boards/,
# <keyboard_dir>/boards/, or drivers/boards/
BOARD ?= GENERIC_PROMICRO_RP2040
# Default UF2 Bootloader settings
UF2_FAMILY ?= RP2040
FIRMWARE_FORMAT ?= uf2
endif
ifneq ($(findstring STM32F042, $(MCU)),)
# Cortex version
MCU = cortex-m0
@@ -117,7 +187,9 @@ ifneq ($(findstring STM32F042, $(MCU)),)
## chip/board settings
# - the next two should match the directories in
# <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
# <chibios[-contrib]>/os/hal/ports/$(MCU_PORT_NAME)/$(MCU_SERIES)
# OR
# <chibios[-contrib]>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
MCU_FAMILY = STM32
MCU_SERIES = STM32F0xx
@@ -157,7 +229,9 @@ ifneq ($(findstring STM32F072, $(MCU)),)
## chip/board settings
# - the next two should match the directories in
# <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
# <chibios[-contrib]>/os/hal/ports/$(MCU_PORT_NAME)/$(MCU_SERIES)
# OR
# <chibios[-contrib]>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
MCU_FAMILY = STM32
MCU_SERIES = STM32F0xx
@@ -192,7 +266,9 @@ ifneq ($(findstring STM32F103, $(MCU)),)
## chip/board settings
# - the next two should match the directories in
# <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
# <chibios[-contrib]>/os/hal/ports/$(MCU_PORT_NAME)/$(MCU_SERIES)
# OR
# <chibios[-contrib]>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
MCU_FAMILY = STM32
MCU_SERIES = STM32F1xx
@@ -224,7 +300,9 @@ ifneq ($(findstring STM32F303, $(MCU)),)
## chip/board settings
# - the next two should match the directories in
# <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
# <chibios[-contrib]>/os/hal/ports/$(MCU_PORT_NAME)/$(MCU_SERIES)
# OR
# <chibios[-contrib]>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
MCU_FAMILY = STM32
MCU_SERIES = STM32F3xx
@@ -259,7 +337,9 @@ ifneq ($(findstring STM32F401, $(MCU)),)
## chip/board settings
# - the next two should match the directories in
# <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
# <chibios[-contrib]>/os/hal/ports/$(MCU_PORT_NAME)/$(MCU_SERIES)
# OR
# <chibios[-contrib]>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
MCU_FAMILY = STM32
MCU_SERIES = STM32F4xx
@@ -299,7 +379,9 @@ ifneq ($(findstring STM32F405, $(MCU)),)
## chip/board settings
# - the next two should match the directories in
# <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
# <chibios[-contrib]>/os/hal/ports/$(MCU_PORT_NAME)/$(MCU_SERIES)
# OR
# <chibios[-contrib]>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
MCU_FAMILY = STM32
MCU_SERIES = STM32F4xx
@@ -334,7 +416,9 @@ ifneq ($(findstring STM32F407, $(MCU)),)
## chip/board settings
# - the next two should match the directories in
# <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
# <chibios[-contrib]>/os/hal/ports/$(MCU_PORT_NAME)/$(MCU_SERIES)
# OR
# <chibios[-contrib]>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
MCU_FAMILY = STM32
MCU_SERIES = STM32F4xx
@@ -369,7 +453,9 @@ ifneq ($(findstring STM32F411, $(MCU)),)
## chip/board settings
# - the next two should match the directories in
# <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
# <chibios[-contrib]>/os/hal/ports/$(MCU_PORT_NAME)/$(MCU_SERIES)
# OR
# <chibios[-contrib]>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
MCU_FAMILY = STM32
MCU_SERIES = STM32F4xx
@@ -409,7 +495,9 @@ ifneq ($(findstring STM32F446, $(MCU)),)
## chip/board settings
# - the next two should match the directories in
# <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
# <chibios[-contrib]>/os/hal/ports/$(MCU_PORT_NAME)/$(MCU_SERIES)
# OR
# <chibios[-contrib]>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
MCU_FAMILY = STM32
MCU_SERIES = STM32F4xx
@@ -441,7 +529,9 @@ ifneq ($(findstring STM32G431, $(MCU)),)
## chip/board settings
# - the next two should match the directories in
# <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
# <chibios[-contrib]>/os/hal/ports/$(MCU_PORT_NAME)/$(MCU_SERIES)
# OR
# <chibios[-contrib]>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
MCU_FAMILY = STM32
MCU_SERIES = STM32G4xx
@@ -476,7 +566,9 @@ ifneq ($(findstring STM32G474, $(MCU)),)
## chip/board settings
# - the next two should match the directories in
# <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
# <chibios[-contrib]>/os/hal/ports/$(MCU_PORT_NAME)/$(MCU_SERIES)
# OR
# <chibios[-contrib]>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
MCU_FAMILY = STM32
MCU_SERIES = STM32G4xx
@@ -511,7 +603,9 @@ ifneq (,$(filter $(MCU),STM32L432 STM32L442))
## chip/board settings
# - the next two should match the directories in
# <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
# <chibios[-contrib]>/os/hal/ports/$(MCU_PORT_NAME)/$(MCU_SERIES)
# OR
# <chibios[-contrib]>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
MCU_FAMILY = STM32
MCU_SERIES = STM32L4xx
@@ -548,7 +642,9 @@ ifneq (,$(filter $(MCU),STM32L433 STM32L443))
## chip/board settings
# - the next two should match the directories in
# <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
# <chibios[-contrib]>/os/hal/ports/$(MCU_PORT_NAME)/$(MCU_SERIES)
# OR
# <chibios[-contrib]>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
MCU_FAMILY = STM32
MCU_SERIES = STM32L4xx
@@ -585,7 +681,9 @@ ifneq (,$(filter $(MCU),STM32L412 STM32L422))
## chip/board settings
# - the next two should match the directories in
# <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
# <chibios[-contrib]>/os/hal/ports/$(MCU_PORT_NAME)/$(MCU_SERIES)
# OR
# <chibios[-contrib]>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
MCU_FAMILY = STM32
MCU_SERIES = STM32L4xx
@@ -602,7 +700,7 @@ ifneq (,$(filter $(MCU),STM32L412 STM32L422))
# <keyboard_dir>/boards/, or drivers/boards/
BOARD ?= GENERIC_STM32_L412XB
PLATFORM_NAME ?= platform_l432
PLATFORM_NAME ?= platform_l412_l422
USE_FPU ?= yes
@@ -622,7 +720,9 @@ ifneq ($(findstring WB32F3G71, $(MCU)),)
## chip/board settings
# - the next two should match the directories in
# <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
# <chibios[-contrib]>/os/hal/ports/$(MCU_PORT_NAME)/$(MCU_SERIES)
# OR
# <chibios[-contrib]>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
MCU_FAMILY = WB32
MCU_SERIES = WB32F3G71xx
@@ -642,7 +742,40 @@ ifneq ($(findstring WB32F3G71, $(MCU)),)
USE_FPU ?= no
# Bootloader address for WB32 DFU
STM32_BOOTLOADER_ADDRESS ?= 0x1FFFE000
WB32_BOOTLOADER_ADDRESS ?= 0x1FFFE000
endif
ifneq ($(findstring WB32FQ95, $(MCU)),)
# Cortex version
MCU = cortex-m3
# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
ARMV = 7
## chip/board settings
# - the next two should match the directories in
# <chibios[-contrib]>/os/hal/ports/$(MCU_PORT_NAME)/$(MCU_SERIES)
# OR
# <chibios[-contrib]>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
MCU_FAMILY = WB32
MCU_SERIES = WB32FQ95xx
# Linker script to use
# - it should exist either in <chibios>/os/common/ports/ARMCMx/compilers/GCC/ld/
# or <keyboard_dir>/ld/
MCU_LDSCRIPT ?= WB32FQ95xB
# Startup code to use
# - it should exist in <chibios>/os/common/startup/ARMCMx/compilers/GCC/mk/
MCU_STARTUP ?= wb32fq95xx
# Board: it should exist either in <chibios>/os/hal/boards/,
# <keyboard_dir>/boards/, or drivers/boards/
BOARD ?= GENERIC_WB32_FQ95XX
USE_FPU ?= no
# Bootloader address for WB32 DFU
WB32_BOOTLOADER_ADDRESS ?= 0x1FFFE000
endif
@@ -657,7 +790,10 @@ ifneq ($(findstring GD32VF103, $(MCU)),)
## chip/board settings
# - the next two should match the directories in
# <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
# <chibios[-contrib]>/os/hal/ports/$(MCU_PORT_NAME)/$(MCU_SERIES)
# OR
# <chibios[-contrib]>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
MCU_PORT_NAME = GD
MCU_FAMILY = GD32V
MCU_SERIES = GD32VF103

View File

@@ -63,6 +63,7 @@ MSG_COMPILING_CXX = Compiling:
MSG_ASSEMBLING = Assembling:
MSG_CLEANING = Cleaning project:
MSG_CREATING_LIBRARY = Creating library:
MSG_GENERATING = Generating:
MSG_SUBMODULE_DIRTY = $(WARN_COLOR)WARNING:$(NO_COLOR) Some git submodules are out of date or modified.\n\
Please consider running $(BOLD)make git-submodule$(NO_COLOR).\n\n
MSG_NO_CMP = $(ERROR_COLOR)Error:$(NO_COLOR)$(BOLD) cmp command not found, please install diffutils\n$(NO_COLOR)

View File

@@ -5,7 +5,6 @@ BUILD_OPTION_NAMES = \
CONSOLE_ENABLE \
COMMAND_ENABLE \
NKRO_ENABLE \
TERMINAL_ENABLE \
CUSTOM_MATRIX \
DEBOUNCE_TYPE \
SPLIT_KEYBOARD \
@@ -46,6 +45,7 @@ OTHER_OPTION_NAMES = \
LEADER_ENABLE \
PRINTING_ENABLE \
STENO_ENABLE \
STENO_PROTOCOL \
TAP_DANCE_ENABLE \
VIRTSER_ENABLE \
OLED_ENABLE \
@@ -57,6 +57,7 @@ OTHER_OPTION_NAMES = \
HELIX ZINC \
AUTOLOG_ENABLE \
DEBUG_ENABLE \
ENCODER_MAP_ENABLE \
ENCODER_ENABLE_CUSTOM \
GERMAN_ENABLE \
HAPTIC_ENABLE \
@@ -79,7 +80,9 @@ OTHER_OPTION_NAMES = \
LED_MIRRORED \
RGBLIGHT_FULL_POWER \
LTO_ENABLE \
PROGRAMMABLE_BUTTON_ENABLE
PROGRAMMABLE_BUTTON_ENABLE \
SECURE_ENABLE \
CAPS_WORD_ENABLE
define NAME_ECHO
@printf " %-30s = %-16s # %s\\n" "$1" "$($1)" "$(origin $1)"

View File

@@ -2,7 +2,9 @@ TEST_LIST = $(sort $(patsubst %/test.mk,%, $(shell find $(ROOT_DIR)tests -type f
FULL_TESTS := $(notdir $(TEST_LIST))
include $(QUANTUM_PATH)/debounce/tests/testlist.mk
include $(QUANTUM_PATH)/encoder/tests/testlist.mk
include $(QUANTUM_PATH)/sequencer/tests/testlist.mk
include $(QUANTUM_PATH)/wear_leveling/tests/testlist.mk
include $(PLATFORM_PATH)/test/testlist.mk
define VALIDATE_TEST_LIST

View File

@@ -0,0 +1,53 @@
{
"development_board": {
"promicro": {
"processor": "atmega32u4",
"bootloader": "caterina",
"pin_compatible": "promicro"
},
"elite_c": {
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
"pin_compatible": "promicro"
},
"proton_c": {
"processor": "STM32F303",
"bootloader": "stm32-dfu",
"board": "QMK_PROTON_C",
"pin_compatible": "promicro"
},
"kb2040": {
"processor": "RP2040",
"bootloader": "rp2040",
"board": "QMK_PM2040",
"pin_compatible": "promicro"
},
"promicro_rp2040": {
"processor": "RP2040",
"bootloader": "rp2040",
"board": "QMK_PM2040",
"pin_compatible": "promicro"
},
"blok": {
"processor": "RP2040",
"bootloader": "rp2040",
"board": "QMK_PM2040",
"pin_compatible": "promicro"
},
"bluepill": {
"processor": "STM32F103",
"bootloader": "stm32duino",
"board": "STM32_F103_STM32DUINO"
},
"blackpill_f401": {
"processor": "STM32F401",
"bootloader": "stm32-dfu",
"board": "BLACKPILL_STM32_F401"
},
"blackpill_f411": {
"processor": "STM32F411",
"bootloader": "stm32-dfu",
"board": "BLACKPILL_STM32_F411"
}
}
}

View File

@@ -3,22 +3,27 @@
{
# Format:
# <config.h key>: {"info_key": <info.json key>, ["value_type": <value_type>], ["to_json": <true/false>], ["to_c": <true/false>]}
# value_type: one of "array", "array.int", "bool", "int", "hex", "list", "mapping"
# value_type: one of "array", "array.int", "bool", "int", "hex", "list", "mapping", "str", "raw"
# to_json: Default `true`. Set to `false` to exclude this mapping from info.json
# to_c: Default `true`. Set to `false` to exclude this mapping from config.h
# warn_duplicate: Default `true`. Set to `false` to turn off warning when a value exists in both places
# deprecated: Default `false`. Set to `true` to turn on warning when a value exists
# invalid: Default `false`. Set to `true` to generate errors when a value exists
"AUDIO_VOICES": {"info_key": "audio.voices", "value_type": "bool"},
"BACKLIGHT_BREATHING": {"info_key": "backlight.breathing", "value_type": "bool"},
"BREATHING_PERIOD": {"info_key": "backlight.breathing_period", "value_type": "int"},
"BACKLIGHT_ON_STATE": {"info_key": "backlight.on_state", "value_type": "int"},
"BACKLIGHT_PIN": {"info_key": "backlight.pin"},
"BOTH_SHIFTS_TURNS_ON_CAPS_WORD": {"info_key": "caps_word.both_shifts_turns_on", "value_type": "bool"},
"CAPS_WORD_IDLE_TIMEOUT": {"info_key": "caps_word.idle_timeout", "value_type": "int"},
"COMBO_COUNT": {"info_key": "combo.count", "value_type": "int"},
"COMBO_TERM": {"info_key": "combo.term", "value_type": "int"},
"DEBOUNCE": {"info_key": "debounce", "value_type": "int"},
"DEVICE_VER": {"info_key": "usb.device_ver", "value_type": "hex"},
# TODO: Replace ^^^ with vvv
#"DEVICE_VER": {"info_key": "usb.device_version", "value_type": "bcd_version"},
"DESCRIPTION": {"info_key": "keyboard_folder", "to_json": false},
"DIODE_DIRECTION": {"info_key": "diode_direction"},
"DOUBLE_TAP_SHIFT_TURNS_ON_CAPS_WORD": {"info_key": "caps_word.double_tap_shift_turns_on", "value_type": "bool"},
"FORCE_NKRO": {"info_key": "usb.force_nkro", "value_type": "bool"},
"DYNAMIC_KEYMAP_EEPROM_MAX_ADDR": {"info_key": "dynamic_keymap.eeprom_max_addr", "value_type": "int"},
"DYNAMIC_KEYMAP_LAYER_COUNT": {"info_key": "dynamic_keymap.layer_count", "value_type": "int"},
@@ -31,6 +36,9 @@
"LED_CAPS_LOCK_PIN": {"info_key": "indicators.caps_lock"},
"LED_NUM_LOCK_PIN": {"info_key": "indicators.num_lock"},
"LED_SCROLL_LOCK_PIN": {"info_key": "indicators.scroll_lock"},
"LED_COMPOSE_PIN": {"info_key": "indicators.compose"},
"LED_KANA_PIN": {"info_key": "indicators.kana"},
"LED_PIN_ON_STATE": {"info_key": "indicators.on_state", "value_type": "int"},
"MANUFACTURER": {"info_key": "manufacturer"},
"MATRIX_HAS_GHOST": {"info_key": "matrix_pins.ghost", "value_type": "bool"},
"MATRIX_IO_DELAY": {"info_key": "matrix_pins.io_delay", "value_type": "int"},
@@ -78,6 +86,9 @@
"QMK_KEYS_PER_SCAN": {"info_key": "qmk.keys_per_scan", "value_type": "int"},
"QMK_LED": {"info_key": "qmk_lufa_bootloader.led"},
"QMK_SPEAKER": {"info_key": "qmk_lufa_bootloader.speaker"},
"SECURE_UNLOCK_SEQUENCE": {"info_key": "secure.unlock_sequence", "value_type": "array.array.int", "to_json": false},
"SECURE_UNLOCK_TIMEOUT": {"info_key": "secure.unlock_timeout", "value_type": "int"},
"SECURE_IDLE_TIMEOUT": {"info_key": "secure.idle_timeout", "value_type": "int"},
"SENDSTRING_BELL": {"info_key": "audio.macro_beep", "value_type": "bool"},
"SPLIT_MODS_ENABLE": {"info_key": "split.transport.sync_modifiers", "value_type": "bool"},
"SPLIT_TRANSPORT_MIRROR": {"info_key": "split.transport.sync_matrix_state", "value_type": "bool"},
@@ -96,4 +107,11 @@
"USB_MAX_POWER_CONSUMPTION": {"info_key": "usb.max_power", "value_type": "int"},
"USB_POLLING_INTERVAL_MS": {"info_key": "usb.polling_interval", "value_type": "int"},
"USB_SUSPEND_WAKEUP_DELAY": {"info_key": "usb.suspend_wakeup_delay", "value_type": "int"},
# Items we want flagged in lint
"NO_ACTION_MACRO": {"info_key": "_invalid.no_action_macro", "invalid": true},
"NO_ACTION_FUNCTION": {"info_key": "_invalid.no_action_function", "invalid": true},
"DESCRIPTION": {"info_key": "_invalid.usb_description", "invalid": true},
"DEBOUNCING_DELAY": {"info_key": "_invalid.debouncing_delay", "invalid": true},
"PREVENT_STUCK_MODIFIERS": {"info_key": "_invalid.prevent_stuck_mods", "invalid": true},
}

View File

@@ -3,13 +3,17 @@
{
# Format:
# <rules.mk key>: {"info_key": <info.json key>, ["value_type": <value_type>], ["to_json": <true/false>], ["to_c": <true/false>]}
# value_type: one of "array", "array.int", "bool", "int", "list", "hex", "mapping"
# value_type: one of "array", "array.int", "bool", "int", "list", "hex", "mapping", "str", "raw"
# to_json: Default `true`. Set to `false` to exclude this mapping from info.json
# to_c: Default `true`. Set to `false` to exclude this mapping from rules.mk
# warn_duplicate: Default `true`. Set to `false` to turn off warning when a value exists in both places
# deprecated: Default `false`. Set to `true` to turn on warning when a value exists
# invalid: Default `false`. Set to `true` to generate errors when a value exists
"BOARD": {"info_key": "board"},
"BOOTLOADER": {"info_key": "bootloader", "warn_duplicate": false},
"BLUETOOTH": {"info_key": "bluetooth.driver"},
"CAPS_WORD_ENABLE": {"info_key": "caps_word.enabled", "value_type": "bool"},
"ENCODER_ENABLE": {"info_key": "encoder.enabled", "value_type": "bool"},
"FIRMWARE_FORMAT": {"info_key": "build.firmware_format"},
"KEYBOARD_SHARED_EP": {"info_key": "usb.shared_endpoint.keyboard", "value_type": "bool"},
"MOUSE_SHARED_EP": {"info_key": "usb.shared_endpoint.mouse", "value_type": "bool"},
@@ -19,7 +23,16 @@
"MCU": {"info_key": "processor", "warn_duplicate": false},
"MOUSEKEY_ENABLE": {"info_key": "mouse_key.enabled", "value_type": "bool"},
"NO_USB_STARTUP_CHECK": {"info_key": "usb.no_startup_check", "value_type": "bool"},
"PIN_COMPATIBLE": {"info_key": "pin_compatible"},
"SECURE_ENABLE": {"info_key": "secure.enabled", "value_type": "bool"},
"SPLIT_KEYBOARD": {"info_key": "split.enabled", "value_type": "bool"},
"SPLIT_TRANSPORT": {"info_key": "split.transport.protocol", "value_type": "str", "to_c": false},
"WAIT_FOR_USB": {"info_key": "usb.wait_for", "value_type": "bool"}
"SPLIT_TRANSPORT": {"info_key": "split.transport.protocol", "to_c": false},
"WAIT_FOR_USB": {"info_key": "usb.wait_for", "value_type": "bool"},
"STENO_ENABLE": {"info_key": "stenography.enabled", "value_type": "bool"},
"STENO_PROTOCOL": {"info_key": "stenography.protocol"},
# Items we want flagged in lint
"CTPC": {"info_key": "_deprecated.ctpc", "deprecated": true},
"CONVERT_TO_PROTON_C": {"info_key": "_deprecated.ctpc", "deprecated": true},
"VIAL_ENABLE": {"info_key": "_invalid.vial", "invalid": true},
}

View File

@@ -11,6 +11,9 @@
'2_milk': {
target: 'spaceman/2_milk'
},
'absinthe': {
target: 'keyhive/absinthe'
},
'aeboards/constellation': {
target: 'aeboards/constellation/rev1'
},
@@ -26,6 +29,18 @@
alice: {
target: 'tgr/alice'
},
amj40: {
target: 'amjkeyboard/amj40'
},
amj60: {
target: 'amjkeyboard/amj60'
},
amj96: {
target: 'amjkeyboard/amj96'
},
amjpad: {
target: 'amjkeyboard/amjpad'
},
angel17: {
target: 'angel17/alpha'
},
@@ -33,7 +48,10 @@
target: 'angel64/alpha'
},
at101_blackheart: {
target: 'at101_bh'
target: 'viktus/at101_bh'
},
at101_bh: {
target: 'viktus/at101_bh'
},
'atom47/rev2': {
target: 'maartenwut/atom47/rev2'
@@ -158,6 +176,9 @@
ergoinu: {
target: 'dm9records/ergoinu'
},
ergosaurus: {
target: 'keyhive/ergosaurus'
},
'exclusive/e85': {
target: 'exclusive/e85/hotswap'
},
@@ -165,7 +186,13 @@
target: 'gh60/revc'
},
'gmmk/pro': {
target: 'gmmk/pro/ansi'
target: 'gmmk/pro/rev1/ansi'
},
'gmmk/pro/ansi': {
target: 'gmmk/pro/rev1/ansi'
},
'gmmk/pro/iso': {
target: 'gmmk/pro/rev1/iso'
},
'handwired/ferris': {
target: 'ferris/0_1'
@@ -212,6 +239,9 @@
'helix/rev2/under/oled': {
target: 'helix/rev2/under'
},
honeycomb: {
target: 'keyhive/honeycomb'
},
id80: {
target: 'id80/ansi'
},
@@ -260,6 +290,9 @@
'kyria': {
target: 'splitkb/kyria'
},
lattice60: {
target: 'keyhive/lattice60'
},
'lazydesigners/the60': {
target: 'lazydesigners/the60/rev1'
},
@@ -392,7 +425,13 @@
target: 'oddball/v1'
},
omnikey_blackheart: {
target: 'omnikey_bh'
target: 'viktus/omnikey_bh'
},
omnikey_bh: {
target: 'viktus/omnikey_bh'
},
opus: {
target: 'keyhive/opus'
},
'pabile/p20': {
target: 'pabile/p20/ver1'
@@ -489,6 +528,12 @@
skog: {
target: 'percent/skog'
},
smallice: {
target: 'keyhive/smallice'
},
southpole: {
target: 'keyhive/southpole'
},
speedo: {
target: 'cozykeys/speedo/v2'
},
@@ -577,7 +622,10 @@
target: 'ymd75/rev1'
},
z150_blackheart: {
target: 'z150_bh'
target: 'viktus/z150_bh'
},
z150_bh:{
target: 'viktus/z150_bh'
},
zeal60: {
target: 'wilba_tech/zeal60'
@@ -904,6 +952,9 @@
meishi2: {
target: 'biacco42/meishi2'
},
melody96: {
target: 'ymdk/melody96'
},
minidox/rev1: {
target: 'maple_computing/minidox/rev1'
},
@@ -919,6 +970,18 @@
montex: {
target: 'idobao/montex/v1'
},
mt40: {
target: 'mt/mt40'
},
mt64rgb: {
target: 'mt/mt64rgb'
},
mt84: {
target: 'mt/mt84'
},
mt980: {
target: 'mt/mt980'
},
nafuda: {
target: 'salicylic_acid3/nafuda'
},
@@ -943,6 +1006,9 @@
namecard2x4: {
target: 'takashiski/namecard2x4'
},
navi10: {
target: 'keyhive/navi10'
},
nebula12: {
target: 'spaceholdings/nebula12'
},
@@ -1144,6 +1210,12 @@
underscore33/rev2: {
target: 'tominabox1/underscore33/rev2'
},
uno: {
target: 'keyhive/uno'
},
ut472: {
target: 'keyhive/ut472'
},
vn66: {
target: 'hnahkb/vn66'
},
@@ -1153,6 +1225,12 @@
wanten: {
target: 'qpockets/wanten'
},
'wheatfield/blocked65': {
target: 'mt/blocked65'
},
'wheatfield/split75': {
target: 'mt/split75'
},
whitefox: {
target: 'input_club/whitefox'
},

View File

@@ -1,5 +1,5 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$schema": "https://json-schema.org/draft/2020-12/schema#",
"$id": "qmk.definitions.v1",
"title": "Common definitions used across QMK's jsonschemas.",
"type": "object",
@@ -33,7 +33,30 @@
"oneOf": [
{
"type": "string",
"enum": ["LAYOUT", "LAYOUT_planck_1x2uC"]
"enum": [
"LAYOUT",
"LAYOUT_1x2uC",
"LAYOUT_1x2uL",
"LAYOUT_1x2uR",
"LAYOUT_2x2uC",
"LAYOUT_2x3uC",
"LAYOUT_625uC",
"LAYOUT_ortho_3x12_1x2uC",
"LAYOUT_ortho_4x12_1x2uC",
"LAYOUT_ortho_4x12_1x2uL",
"LAYOUT_ortho_4x12_1x2uR",
"LAYOUT_ortho_5x12_1x2uC",
"LAYOUT_ortho_5x12_2x2uC",
"LAYOUT_ortho_5x14_1x2uC",
"LAYOUT_ortho_5x14_1x2uL",
"LAYOUT_ortho_5x14_1x2uR",
"LAYOUT_planck_1x2uC",
"LAYOUT_planck_1x2uL",
"LAYOUT_planck_1x2uR",
"LAYOUT_preonic_1x2uC",
"LAYOUT_preonic_1x2uL",
"LAYOUT_preonic_1x2uR"
]
},
{
"type": "string",
@@ -42,8 +65,23 @@
]
},
"key_unit": {
"type": "number",
"min": 0.25
"type": "number"
},
"keyboard": {
"oneOf": [
{
"type": "string",
"enum": [
"converter/numeric_keypad_IIe",
"emptystring/NQG",
"maple_computing/christmas_tree/V2017"
]
},
{
"type": "string",
"pattern": "^[0-9a-z][0-9a-z_/]*$"
}
]
},
"mcu_pin_array": {
"type": "array",
@@ -64,8 +102,11 @@
"pattern": "^LINE_PIN\\d{1,2}$"
},
{
"type": "number",
"multipleOf": 1
"type": "string",
"pattern": "^GP\\d{1,2}$"
},
{
"type": "integer"
},
{
"type": "null"
@@ -76,14 +117,12 @@
"type": "number"
},
"signed_int": {
"type": "number",
"multipleOf": 1
"type": "integer"
},
"signed_int_8": {
"type": "number",
"min": -127,
"max": 127,
"multipleOf": 1
"type": "integer",
"minimum": -127,
"maximum": 127
},
"string_array": {
"type": "array",
@@ -99,17 +138,20 @@
},
"unsigned_decimal": {
"type": "number",
"min": 0
"minimum": 0
},
"unsigned_int": {
"type": "number",
"min": 0,
"multipleOf": 1
"type": "integer",
"minimum": 0
},
"unsigned_int_8": {
"type": "number",
"min": 0,
"max": 255,
"multipleOf": 1
"type": "integer",
"minimum": 0,
"maximum": 255
},
"bit": {
"type": "integer",
"minimum": 0,
"maximum": 1
}
}

View File

@@ -1,19 +1,48 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$schema": "https://json-schema.org/draft/2020-12/schema#",
"$id": "qmk.keyboard.v1",
"title": "Keyboard Information",
"definitions": {
"encoder_config": {
"type": "object",
"properties": {
"rotary": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": ["pin_a", "pin_b"],
"properties": {
"pin_a": {"$ref": "qmk.definitions.v1#/mcu_pin"},
"pin_b": {"$ref": "qmk.definitions.v1#/mcu_pin"},
"resolution": {"$ref": "qmk.definitions.v1#/unsigned_int"}
}
}
}
}
}
},
"type": "object",
"properties": {
"keyboard_name": {"$ref": "qmk.definitions.v1#/text_identifier"},
"keyboard_folder": {"$ref": "qmk.definitions.v1#/keyboard"},
"maintainer": {"$ref": "qmk.definitions.v1#/text_identifier"},
"manufacturer": {"$ref": "qmk.definitions.v1#/text_identifier"},
"url": {
"type": "string",
"format": "uri"
},
"development_board": {
"type": "string",
"enum": ["promicro", "elite_c", "proton_c", "kb2040", "promicro_rp2040", "blok", "bluepill", "blackpill_f401", "blackpill_f411"]
},
"pin_compatible": {
"type": "string",
"enum": ["promicro"]
},
"processor": {
"type": "string",
"enum": ["cortex-m0", "cortex-m0plus", "cortex-m3", "cortex-m4", "MKL26Z64", "MK20DX128", "MK20DX256", "MK66FX1M0", "STM32F042", "STM32F072", "STM32F103", "STM32F303", "STM32F401", "STM32F405", "STM32F407", "STM32F411", "STM32F446", "STM32G431", "STM32G474", "STM32L412", "STM32L422", "STM32L432", "STM32L433", "STM32L442", "STM32L443", "GD32VF103", "WB32F3G71", "atmega16u2", "atmega32u2", "atmega16u4", "atmega32u4", "at90usb162", "at90usb646", "at90usb647", "at90usb1286", "at90usb1287", "atmega32a", "atmega328p", "atmega328", "attiny85", "unknown"]
"enum": ["cortex-m0", "cortex-m0plus", "cortex-m3", "cortex-m4", "MKL26Z64", "MK20DX128", "MK20DX256", "MK64FX512", "MK66FX1M0", "RP2040", "STM32F042", "STM32F072", "STM32F103", "STM32F303", "STM32F401", "STM32F405", "STM32F407", "STM32F411", "STM32F446", "STM32G431", "STM32G474", "STM32L412", "STM32L422", "STM32L432", "STM32L433", "STM32L442", "STM32L443", "GD32VF103", "WB32F3G71", "WB32FQ95", "atmega16u2", "atmega32u2", "atmega16u4", "atmega32u4", "at90usb162", "at90usb646", "at90usb647", "at90usb1286", "at90usb1287", "atmega32a", "atmega328p", "atmega328", "attiny85", "unknown"]
},
"audio": {
"type": "object",
@@ -31,12 +60,12 @@
"breathing": {"type": "boolean"},
"breathing_period": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
"levels": {
"type": "number",
"min": 1,
"max": 31,
"multipleOf": 1
"type": "integer",
"minimum": 1,
"maximum": 31
},
"pin": {"$ref": "qmk.definitions.v1#/mcu_pin"}
"pin": {"$ref": "qmk.definitions.v1#/mcu_pin"},
"on_state": {"$ref": "qmk.definitions.v1#/bit"}
}
},
"bluetooth": {
@@ -57,7 +86,7 @@
},
"bootloader": {
"type": "string",
"enum": ["atmel-dfu", "bootloadhid", "bootloadHID", "custom", "caterina", "halfkay", "kiibohd", "lufa-dfu", "lufa-ms", "md-boot", "qmk-dfu", "qmk-hid", "stm32-dfu", "stm32duino", "gd32v-dfu", "wb32-dfu", "unknown", "usbasploader", "USBasp", "tinyuf2"],
"enum": ["atmel-dfu", "bootloadhid", "bootloadHID", "custom", "caterina", "halfkay", "kiibohd", "lufa-dfu", "lufa-ms", "md-boot", "qmk-dfu", "qmk-hid", "stm32-dfu", "stm32duino", "gd32v-dfu", "wb32-dfu", "unknown", "usbasploader", "USBasp", "tinyuf2", "rp2040"],
},
"bootloader_instructions": {
"type": "string",
@@ -83,6 +112,16 @@
"enum": ["COL2ROW", "ROW2COL"]
},
"debounce": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"caps_word": {
"type": "object",
"additionalProperties": false,
"properties": {
"enabled": {"type": "boolean"},
"both_shifts_turns_on": {"type": "boolean"},
"double_tap_shift_turns_on": {"type": "boolean"},
"idle_timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"},
},
},
"combo": {
"type": "object",
"properties": {
@@ -94,13 +133,22 @@
"type": "array",
"items": {"$ref": "qmk.definitions.v1#/filename"}
},
"encoder": {
"$ref": "#/definitions/encoder_config",
"properties": {
"enabled": {"type": "boolean"}
}
},
"features": {"$ref": "qmk.definitions.v1#/boolean_array"},
"indicators": {
"type": "object",
"properties": {
"caps_lock": {"$ref": "qmk.definitions.v1#/mcu_pin"},
"num_lock": {"$ref": "qmk.definitions.v1#/mcu_pin"},
"scroll_lock": {"$ref": "qmk.definitions.v1#/mcu_pin"}
"scroll_lock": {"$ref": "qmk.definitions.v1#/mcu_pin"},
"compose": {"$ref": "qmk.definitions.v1#/mcu_pin"},
"kana": {"$ref": "qmk.definitions.v1#/mcu_pin"},
"on_state": {"$ref": "qmk.definitions.v1#/bit"}
}
},
"layout_aliases": {
@@ -109,6 +157,7 @@
},
"layouts": {
"type": "object",
"propertyNames": {"$ref": "qmk.definitions.v1#/layout_macro"},
"additionalProperties": {
"type": "object",
"additionalProperties": false,
@@ -125,18 +174,20 @@
"type": "object",
"additionalProperties": false,
"properties": {
"label": {"type": "string"},
"label": {
"type": "string",
"pattern": "^[^\\n]*$"
},
"matrix": {
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {
"type": "number",
"min": 0,
"multipleOf": 1
"type": "integer",
"minimum": 0
}
},
"r": {"$ref": "qmk.definitions.v1#/unsigned_decimal"},
"r": {"$ref": "qmk.definitions.v1#/signed_decimal"},
"rx": {"$ref": "qmk.definitions.v1#/unsigned_decimal"},
"ry": {"$ref": "qmk.definitions.v1#/unsigned_decimal"},
"h": {"$ref": "qmk.definitions.v1#/key_unit"},
@@ -192,6 +243,60 @@
"timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"}
}
},
"led_matrix": {
"type": "object",
"properties": {
"driver": {"type": "string"},
"layout": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"matrix": {
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {
"type": "integer",
"minimum": 0
}
},
"x": {"$ref": "qmk.definitions.v1#/key_unit"},
"y": {"$ref": "qmk.definitions.v1#/key_unit"},
"flags": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}
}
}
}
}
},
"rgb_matrix": {
"type": "object",
"properties": {
"driver": {"type": "string"},
"layout": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"matrix": {
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {
"type": "integer",
"minimum": 0
}
},
"x": {"$ref": "qmk.definitions.v1#/key_unit"},
"y": {"$ref": "qmk.definitions.v1#/key_unit"},
"flags": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}
}
}
}
}
},
"rgblight": {
"type": "object",
"additionalProperties": false,
@@ -211,10 +316,9 @@
"blink": {"type": "boolean"},
"enabled": {"type": "boolean"},
"max": {
"type": "number",
"min": 1,
"max": 32,
"multipleOf": 1
"type": "integer",
"minimum": 1,
"maximum": 32
},
"override_rgb": {"type": "boolean"}
}
@@ -228,12 +332,46 @@
"split": {"type": "boolean"},
"split_count": {
"type": "array",
"minLength": 2,
"maxLength": 2,
"minItems": 2,
"maxItems": 2,
"items": {"$ref": "qmk.definitions.v1#/unsigned_int"}
}
}
},
"secure": {
"type": "object",
"additionalProperties": false,
"properties": {
"enabled": {"type": "boolean"},
"unlock_timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"idle_timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"unlock_sequence": {
"type": "array",
"minItems": 1,
"maxItems": 5,
"items": {
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {
"type": "integer",
"minimum": 0
}
}
}
}
},
"stenography": {
"type": "object",
"additionalProperties": false,
"properties": {
"enabled": {"type": "boolean"},
"protocol": {
"type": "string",
"enum": ["all", "geminipr", "txbolt"]
}
}
},
"split": {
"type": "object",
"additionalProperties": false,
@@ -262,16 +400,24 @@
}
}
},
"encoder": {
"type": "object",
"additionalProperties": false,
"properties": {
"right": {
"$ref": "#/definitions/encoder_config"
}
}
},
"main": {
"type": "string",
"enum": ["eeprom", "left", "matrix_grid", "pin", "right"]
},
"soft_serial_pin": {"$ref": "qmk.definitions.v1#/mcu_pin"},
"soft_serial_speed": {
"type": "number",
"min": 0,
"max": 5,
"multipleOf": 1
"type": "integer",
"minimum": 0,
"maximum": 5
},
"transport": {
"type": "object",
@@ -325,7 +471,7 @@
"force_nkro": {"type": "boolean"},
"pid": {"$ref": "qmk.definitions.v1#/hex_number_4d"},
"vid": {"$ref": "qmk.definitions.v1#/hex_number_4d"},
"max_power": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
"max_power": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"no_startup_check": {"type": "boolean"},
"polling_interval": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
"shared_endpoint": {
@@ -336,7 +482,7 @@
"mouse": {"type": "boolean"}
}
},
"suspend_wakeup_delay": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
"suspend_wakeup_delay": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"wait_for": {"type": "boolean"},
}
},
@@ -345,8 +491,8 @@
"additionalProperties": false,
"properties": {
"keys_per_scan": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
"tap_keycode_delay": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
"tap_capslock_delay": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
"tap_keycode_delay": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"tap_capslock_delay": {"$ref": "qmk.definitions.v1#/unsigned_int"},
}
},
"qmk_lufa_bootloader": {

View File

@@ -1,5 +1,5 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$schema": "https://json-schema.org/draft/2020-12/schema#",
"$id": "qmk.keymap.v1",
"title": "Keymap Information",
"type": "object",
@@ -50,8 +50,7 @@
},
"config": {"$ref": "qmk.keyboard.v1"},
"notes": {
"type": "string",
"description": "asdf"
"type": "string"
}
},
"required": [

View File

@@ -15,11 +15,11 @@
"device_version": "1.0.0"
},
"features": {
"bootmagic_lite": true,
"bootmagic": true,
"command": false,
"console": false,
"extrakey": true,
"mousekey": true,
"nkro": true
}
}
}

216
docs/ChangeLog/20220528.md Normal file
View File

@@ -0,0 +1,216 @@
# QMK Breaking Changes - 2022 May 28 Changelog
## Notable Features :id=notable-features
### Caps Word ([#16588](https://github.com/qmk/qmk_firmware/pull/16588)) :id=caps-word
This is a new feature that allows for capslock-like functionality that turns itself off at the end of the word.
For instance, if you wish to type "QMK" without holding shift the entire time, you can either tap both left and right shift, or double-tap shift, to turn on _Caps Word_ -- then type `qmk` (lowercase) without holding shift. Once you hit any key other than `a`--`z`, `0`--`9`, `-`, `_`, delete, or backspace, this will go back to normal typing!
There are other activation mechanisms as well as configurable options like timeout and the like -- see the [Caps Word documentation](feature_caps_word.md) for more information.
### Quantum Painter ([#10174](https://github.com/qmk/qmk_firmware/pull/10174)) :id=quantum-painter
QMK has had support for small OLED displays for some time now, but hasn't really gained too much ability to draw to panels other than the SSD1306 or SH1106 panels.
Quantum Painter is a new drawing subsystem available to suitable ARM and RISC-V boards that is capable of drawing to large panel RGB LCDs and RGB OLEDs. It also allows for a lot more flexibility with a larger set of drawing APIs -- lines, rectangles, circles, ellipses, text, images, and even animations.
The QMK CLI has new commands added to be able to generate images and fonts for Quantum Painter to digest -- it's even capable of converting animated gifs for display on screen.
See the [Quantum Painter documentation](quantum_painter.md) for more information on how to set up the displays as well as how to convert images and fonts.
!> Quantum Painter is not supported on AVR due to complexity and size constraints. Boards based on AVR such as ProMicro or Elite-C builds will not be able to leverage Quantum Painter.
### Encoder Mapping ([#13286](https://github.com/qmk/qmk_firmware/pull/13286)) :id=encoder-mapping
One of the long-standing complaints with Encoders is that there has been no easy way to configure them in user keymaps. [#13286](https://github.com/qmk/qmk_firmware/pull/13286) added support for [Encoder Mapping](feature_encoders.md#encoder-map), which allows users to define encoder functionality in a similar way to their normal keymap.
!> This is not yet supported by QMK Configurator. It is also unlikely to ever be supported by VIA.
## Changes Requiring User Action :id=changes-requiring-user-action
### `RESET` => `QK_BOOT` ([#17037](https://github.com/qmk/qmk_firmware/pull/17037)) :id=reset-2-qk_boot
QMK is always in the process of picking up support for new hardware platforms. One of the side-effects for future integrations has shown that QMK's usage of `RESET` as a keycode is causing naming collisions. As a result, [#17037](https://github.com/qmk/qmk_firmware/pull/17037) changed usages of `RESET` to the new keycode `QK_BOOT` in the majority of default-like keymaps. At this stage the old keycode is still usable but will likely be removed in the next breaking changes cycle. Users with keymaps containing `RESET` should also move to `QK_BOOT`.
### Sendstring keycode overhaul ([#16941](https://github.com/qmk/qmk_firmware/pull/16941)) :id=sendstring-keycodes
Some keycodes used with `SEND_STRING` and its relatives have been deprecated and may have their old keycode usages removed at a later date. The list of [deprecated keycodes](https://github.com/qmk/qmk_firmware/blob/ebd402788346aa6e88bde1486b2a835684d40d39/quantum/send_string_keycodes.h#L456-L505) should be consulted to determine if you're using one of the older names (the first identifier after `#define`) -- you should swap to the newer variant (the second identifier on the same line).
### Pillow Installation ([#17133](https://github.com/qmk/qmk_firmware/pull/17133)) :id=pillow-install
The merge of Quantum Painter added some new dependencies in the QMK CLI, most notably _Pillow_, which requires some installation in order for the CLI to function. If you've got an existing installation, you'll need to run some commands in order to get things working:
On Windows, if using _QMK MSYS_ or _msys2_, you'll need to run the following command:
```sh
pacman --needed --noconfirm --disable-download-timeout -S mingw-w64-x86_64-python-pillow
python3 -m pip install --upgrade qmk
```
On macOS:
```sh
brew update
brew upgrade qmk/qmk/qmk
```
On Linux or WSL:
```sh
python3 -m pip install --user --upgrade qmk
```
### Updated Keyboard Codebases :id=updated-keyboard-codebases
The following keyboards have had their source moved within QMK:
| Old Keyboard Name | New Keyboard Name |
|----------------------|--------------------|
| absinthe | keyhive/absinthe |
| amj40 | amjkeyboard/amj40 |
| amj60 | amjkeyboard/amj60 |
| amj96 | amjkeyboard/amj96 |
| amjpad | amjkeyboard/amjpad |
| at101_bh | viktus/at101_bh |
| ergosaurus | keyhive/ergosaurus |
| gmmk/pro/ansi | gmmk/pro/rev1/ansi |
| gmmk/pro/iso | gmmk/pro/rev1/iso |
| honeycomb | keyhive/honeycomb |
| lattice60 | keyhive/lattice60 |
| melody96 | ymdk/melody96 |
| mt40 | mt/mt40 |
| mt64rgb | mt/mt64rgb |
| mt84 | mt/mt84 |
| mt980 | mt/mt980 |
| navi10 | keyhive/navi10 |
| omnikey_bh | viktus/omnikey_bh |
| opus | keyhive/opus |
| smallice | keyhive/smallice |
| southpole | keyhive/southpole |
| uno | keyhive/uno |
| ut472 | keyhive/ut472 |
| wheatfield/blocked65 | mt/blocked65 |
| wheatfield/split75 | mt/split75 |
| z150_bh | viktus/z150_bh |
---
## Full changelist :id=full-changelist
Core:
* Quantum Painter ([#10174](https://github.com/qmk/qmk_firmware/pull/10174))
* Add support for encoder mapping. ([#13286](https://github.com/qmk/qmk_firmware/pull/13286))
* Add support for multiple switchs/solenoids to Haptic Feedback engine ([#15657](https://github.com/qmk/qmk_firmware/pull/15657))
* Add compile/make macro to core ([#15959](https://github.com/qmk/qmk_firmware/pull/15959))
* Add Reboot keycode to core ([#15990](https://github.com/qmk/qmk_firmware/pull/15990))
* Add support for multiple sensors to pmw3360 ([#15996](https://github.com/qmk/qmk_firmware/pull/15996))
* Asymmetric encoders, encoder tests. ([#16068](https://github.com/qmk/qmk_firmware/pull/16068))
* Add hacky via support for RGB Matrix ([#16086](https://github.com/qmk/qmk_firmware/pull/16086))
* Allow usage of AVRs minimal printf library ([#16266](https://github.com/qmk/qmk_firmware/pull/16266))
* Squeeze AVR some more with `-mrelax` and `-mcall-prologues` ([#16269](https://github.com/qmk/qmk_firmware/pull/16269))
* Heatmap incorrect matrix effect workaround ([#16315](https://github.com/qmk/qmk_firmware/pull/16315))
* Add SN74x154 driver and convert AL1 custom matrix ([#16331](https://github.com/qmk/qmk_firmware/pull/16331))
* Add customizable snake and knight animation increments ([#16337](https://github.com/qmk/qmk_firmware/pull/16337))
* Chibios USB protocol: allow overriding RAW Capacity ([#16339](https://github.com/qmk/qmk_firmware/pull/16339))
* HD44780 driver rework ([#16370](https://github.com/qmk/qmk_firmware/pull/16370))
* Update wb32-dfu ([#16438](https://github.com/qmk/qmk_firmware/pull/16438))
* Remove `send_unicode_hex_string()` ([#16518](https://github.com/qmk/qmk_firmware/pull/16518))
* Add :flash target for UF2 bootloaders ([#16525](https://github.com/qmk/qmk_firmware/pull/16525))
* Move `has_mouse_report_changed` function to `report.c` ([#16543](https://github.com/qmk/qmk_firmware/pull/16543))
* Move Doxygen docs to subdirectory ([#16561](https://github.com/qmk/qmk_firmware/pull/16561))
* Add Caps Word feature to core ([#16588](https://github.com/qmk/qmk_firmware/pull/16588))
* Add non blackpill F4x1 config files ([#16600](https://github.com/qmk/qmk_firmware/pull/16600))
* Force platform pin defs to be included ([#16611](https://github.com/qmk/qmk_firmware/pull/16611))
* Refactor CTPC logic to allow future converters ([#16621](https://github.com/qmk/qmk_firmware/pull/16621))
* Use a mutex guard for split shared memory ([#16647](https://github.com/qmk/qmk_firmware/pull/16647))
* Rename TICK to TICK_EVENT ([#16649](https://github.com/qmk/qmk_firmware/pull/16649))
* Add GET_TAPPING_TERM macro to reduce duplicate code ([#16681](https://github.com/qmk/qmk_firmware/pull/16681))
* add the ability to change the pwm frequency for the IS31FL3737B ([#16718](https://github.com/qmk/qmk_firmware/pull/16718))
* Joystick feature updates ([#16732](https://github.com/qmk/qmk_firmware/pull/16732))
* Add emulated eeprom support for STM32F303xE ([#16737](https://github.com/qmk/qmk_firmware/pull/16737))
* Refactor writePin to work with statements ([#16738](https://github.com/qmk/qmk_firmware/pull/16738))
* Add mechanism to limit available converters ([#16783](https://github.com/qmk/qmk_firmware/pull/16783))
* Implement XAP 'secure' core requirements ([#16843](https://github.com/qmk/qmk_firmware/pull/16843))
* rgblight: Add functions to stop blinking one or all but one layer ([#16859](https://github.com/qmk/qmk_firmware/pull/16859))
* Expose API for hardware unique ID ([#16869](https://github.com/qmk/qmk_firmware/pull/16869))
* Added support for Wb32fq95 ([#16871](https://github.com/qmk/qmk_firmware/pull/16871))
* Provide better config defaults for bluepill boards ([#16909](https://github.com/qmk/qmk_firmware/pull/16909))
* Joystick: Simplify report descriptor and clean up error messages ([#16926](https://github.com/qmk/qmk_firmware/pull/16926))
* Rename keymap_extras headers for consistency ([#16939](https://github.com/qmk/qmk_firmware/pull/16939))
* Sendstring keycode overhaul ([#16941](https://github.com/qmk/qmk_firmware/pull/16941))
* Move disable_jtag to platforms ([#16960](https://github.com/qmk/qmk_firmware/pull/16960))
* Remove ARM pgm_read_word workaround in rgblight ([#16961](https://github.com/qmk/qmk_firmware/pull/16961))
* Warn about LTO with arm_atsam, not ChibiOS. ([#17106](https://github.com/qmk/qmk_firmware/pull/17106))
CLI:
* Rework generate-api CLI command to use .build directory ([#16441](https://github.com/qmk/qmk_firmware/pull/16441))
* Change data driven "str" type to represent a quoted string literal ([#16516](https://github.com/qmk/qmk_firmware/pull/16516))
* Bump the 'jsonschema' version ([#16635](https://github.com/qmk/qmk_firmware/pull/16635))
* Add frameworking for development board presets ([#16637](https://github.com/qmk/qmk_firmware/pull/16637))
* Extend 'qmk info' to handle keymap level overrides ([#16702](https://github.com/qmk/qmk_firmware/pull/16702))
* Data driven `g_led_config` ([#16728](https://github.com/qmk/qmk_firmware/pull/16728))
* Allow new-keyboard to use development_board presets ([#16785](https://github.com/qmk/qmk_firmware/pull/16785))
* Also format *.hpp files. ([#16997](https://github.com/qmk/qmk_firmware/pull/16997))
Submodule updates:
* ChibiOS 21.11.1 update. ([#16251](https://github.com/qmk/qmk_firmware/pull/16251))
* Update ChibiOS-Contrib ([#16915](https://github.com/qmk/qmk_firmware/pull/16915))
Keyboards:
* chore: Add personal GMMK Pro keymap ([#15320](https://github.com/qmk/qmk_firmware/pull/15320))
* move melody96 to ymdk vendor folder ([#15680](https://github.com/qmk/qmk_firmware/pull/15680))
* move amj keyboards into amjkeyboard vendor folder ([#15733](https://github.com/qmk/qmk_firmware/pull/15733))
* move z150_bh at101_bh omnikey_bh to viktus/ ([#16004](https://github.com/qmk/qmk_firmware/pull/16004))
* MS Sculpt Mobile refactor ([#16038](https://github.com/qmk/qmk_firmware/pull/16038))
* move keyhive exclusive boards into /keyhive ([#16084](https://github.com/qmk/qmk_firmware/pull/16084))
* move 麦田 boards into /mt ([#16095](https://github.com/qmk/qmk_firmware/pull/16095))
* Convert Wasdat Code custom matrix to SN74x138 driver ([#16257](https://github.com/qmk/qmk_firmware/pull/16257))
* Move GMMK Pro to allow for multiple revisions ([#16423](https://github.com/qmk/qmk_firmware/pull/16423))
* Updated pin mapping and readme. ([#16505](https://github.com/qmk/qmk_firmware/pull/16505))
* Map data driven `DESCRIPTION` as string literal ([#16523](https://github.com/qmk/qmk_firmware/pull/16523))
* remove unecessary layers ([#16559](https://github.com/qmk/qmk_firmware/pull/16559))
* Helix/rev2 move to split common ([#16723](https://github.com/qmk/qmk_firmware/pull/16723))
* Remove some layout exceptions ([#16957](https://github.com/qmk/qmk_firmware/pull/16957))
* Refactor legacy quantum keycodes in default-ish keymaps ([#17037](https://github.com/qmk/qmk_firmware/pull/17037))
* Refactor legacy quantum keycodes in default-ish keymaps ([#17150](https://github.com/qmk/qmk_firmware/pull/17150))
Keyboard fixes:
* gboards/gergoplex: move `COMBO_ENABLE` to keymap level ([#16667](https://github.com/qmk/qmk_firmware/pull/16667))
* usb-usb converter: community layout support ([#16773](https://github.com/qmk/qmk_firmware/pull/16773))
* Fix build of `keyhive/uno`. ([#16891](https://github.com/qmk/qmk_firmware/pull/16891))
* Fix uno ([#16892](https://github.com/qmk/qmk_firmware/pull/16892))
* converter/usb_usb: remove surplus commas ([#17024](https://github.com/qmk/qmk_firmware/pull/17024))
* Various fixes for g_led_config lint warnings ([#17104](https://github.com/qmk/qmk_firmware/pull/17104))
Others:
* Add warning for CTPC/CONVERT_TO_PROTON_C. ([#16782](https://github.com/qmk/qmk_firmware/pull/16782))
* Add bluepill/blackpill development board presets ([#16806](https://github.com/qmk/qmk_firmware/pull/16806))
* Recommend pillow as part of manual MSYS install ([#17133](https://github.com/qmk/qmk_firmware/pull/17133))
Bugs:
* Fix one-shot locked modifiers ([#16114](https://github.com/qmk/qmk_firmware/pull/16114))
* Fix missing definition for non-encoder case. ([#16593](https://github.com/qmk/qmk_firmware/pull/16593))
* Fixup builds. ([#16596](https://github.com/qmk/qmk_firmware/pull/16596))
* Missed some erroneous prints. ([#16597](https://github.com/qmk/qmk_firmware/pull/16597))
* Workaround for pin_def errors on KINETIS based builds ([#16614](https://github.com/qmk/qmk_firmware/pull/16614))
* Fix flipped logic bug with One Shot `OS_ON` / `OS_OFF` keys ([#16617](https://github.com/qmk/qmk_firmware/pull/16617))
* Redo workaround for pin_def errors on KINETIS ([#16620](https://github.com/qmk/qmk_firmware/pull/16620))
* Fix oneshot toggle logic ([#16630](https://github.com/qmk/qmk_firmware/pull/16630))
* Mousekeys fix ([#16640](https://github.com/qmk/qmk_firmware/pull/16640))
* Ignore transport defaults if SPLIT_KEYBOARD is unset ([#16706](https://github.com/qmk/qmk_firmware/pull/16706))
* Fixes #16705 : digital rain follows val ([#16716](https://github.com/qmk/qmk_firmware/pull/16716))
* Fix AVR backlight breathing: low brightness limit & exceeding breathing table max index ([#16770](https://github.com/qmk/qmk_firmware/pull/16770))
* Fixed usb read loops not reading until timeout ([#16827](https://github.com/qmk/qmk_firmware/pull/16827))
* [QP] Check BPP capabilities before loading the palette ([#16863](https://github.com/qmk/qmk_firmware/pull/16863))
* Fix #16859. ([#16865](https://github.com/qmk/qmk_firmware/pull/16865))
* Preinstall python dependencies before executing `qmk`. ([#16874](https://github.com/qmk/qmk_firmware/pull/16874))
* Fixup AVR builds. ([#16875](https://github.com/qmk/qmk_firmware/pull/16875))
* Fix kinetic mouse mode ([#16951](https://github.com/qmk/qmk_firmware/pull/16951))
* Enhancement and fixes of "Secure" feature ([#16958](https://github.com/qmk/qmk_firmware/pull/16958))
* Check for ongoing transfers on the OUT endpoint ([#16974](https://github.com/qmk/qmk_firmware/pull/16974))
* MSYS2 install: add some Python dependencies through Pacman ([#17025](https://github.com/qmk/qmk_firmware/pull/17025))
* Revert "Fix kinetic mouse mode (#16951)" ([#17095](https://github.com/qmk/qmk_firmware/pull/17095))
* Workaround for recent -Werror=array-bounds AVR issues ([#17136](https://github.com/qmk/qmk_firmware/pull/17136))
* Bug fix: Continue Caps Word when AltGr (right Alt) is held. ([#17156](https://github.com/qmk/qmk_firmware/pull/17156))

View File

@@ -75,6 +75,7 @@
* Software Features
* [Auto Shift](feature_auto_shift.md)
* [Caps Word](feature_caps_word.md)
* [Combos](feature_combo.md)
* [Debounce API](feature_debounce_type.md)
* [Key Lock](feature_key_lock.md)
@@ -83,18 +84,20 @@
* [One Shot Keys](one_shot_keys.md)
* [Pointing Device](feature_pointing_device.md)
* [Raw HID](feature_rawhid.md)
* [Secure](feature_secure.md)
* [Send String](feature_send_string.md)
* [Sequencer](feature_sequencer.md)
* [Swap Hands](feature_swap_hands.md)
* [Tap Dance](feature_tap_dance.md)
* [Tap-Hold Configuration](tap_hold.md)
* [Terminal](feature_terminal.md)
* [Unicode](feature_unicode.md)
* [Userspace](feature_userspace.md)
* [WPM Calculation](feature_wpm.md)
* Hardware Features
* Displays
* [HD44780 LCD Controller](feature_hd44780.md)
* [Quantum Painter](quantum_painter.md)
* [HD44780 LCD Driver](feature_hd44780.md)
* [ST7565 LCD Driver](feature_st7565.md)
* [OLED Driver](feature_oled_driver.md)
* Lighting
@@ -105,6 +108,7 @@
* [Audio](feature_audio.md)
* [Bluetooth](feature_bluetooth.md)
* [Bootmagic Lite](feature_bootmagic.md)
* [Converters](feature_converters.md)
* [Custom Matrix](custom_matrix.md)
* [Digitizer](feature_digitizer.md)
* [DIP Switch](feature_dip_switch.md)
@@ -113,7 +117,6 @@
* [Joystick](feature_joystick.md)
* [LED Indicators](feature_led_indicators.md)
* [MIDI](feature_midi.md)
* [Proton C Conversion](proton_c_conversion.md)
* [PS/2 Mouse](feature_ps2_mouse.md)
* [Split Keyboard](feature_split_keyboard.md)
* [Stenography](feature_stenography.md)
@@ -131,7 +134,7 @@
* Breaking Changes
* [Overview](breaking_changes.md)
* [My Pull Request Was Flagged](breaking_changes_instructions.md)
* [Most Recent ChangeLog](ChangeLog/20220226.md "QMK v0.16.0 - 2022 Feb 26")
* [Most Recent ChangeLog](ChangeLog/20220528.md "QMK v0.17.0 - 2022 May 28")
* [Past Breaking Changes](breaking_changes_history.md)
* C Development
@@ -145,9 +148,10 @@
* [SPI Driver](spi_driver.md)
* [WS2812 Driver](ws2812_driver.md)
* [EEPROM Driver](eeprom_driver.md)
* [Flash Driver](flash_driver.md)
* ['serial' Driver](serial_driver.md)
* [UART Driver](uart_driver.md)
* [GPIO Controls](internals_gpio_control.md)
* [GPIO Controls](gpio_control.md)
* [Keyboard Guidelines](hardware_keyboard_guidelines.md)
* Python Development
@@ -163,6 +167,8 @@
* Arm/ChibiOS
* [Selecting an MCU](platformdev_selecting_arm_mcu.md)
* [Early initialization](platformdev_chibios_earlyinit.md)
* [Raspberry Pi RP2040](platformdev_rp2040.md)
* [Proton C](platformdev_proton_c.md)
* QMK Reference
* [Contributing to QMK](contributing.md)
@@ -183,10 +189,10 @@
* [Understanding QMK](understanding_qmk.md)
* QMK Internals (In Progress)
* [Defines](internals_defines.md)
* [Input Callback Reg](internals_input_callback_reg.md)
* [Midi Device](internals_midi_device.md)
* [Midi Device Setup Process](internals_midi_device_setup_process.md)
* [Midi Util](internals_midi_util.md)
* [Send Functions](internals_send_functions.md)
* [Sysex Tools](internals_sysex_tools.md)
* [Defines](internals/defines.md)
* [Input Callback Reg](internals/input_callback_reg.md)
* [Midi Device](internals/midi_device.md)
* [Midi Device Setup Process](internals/midi_device_setup_process.md)
* [Midi Util](internals/midi_util.md)
* [Send Functions](internals/send_functions.md)
* [Sysex Tools](internals/sysex_tools.md)

View File

@@ -8,6 +8,7 @@ The breaking change period is when we will merge PR's that change QMK in dangero
## What has been included in past Breaking Changes?
* [2022 May 28](ChangeLog/20220528.md)
* [2022 Feb 26](ChangeLog/20220226.md)
* [2021 Nov 27](ChangeLog/20211127.md)
* [2021 Aug 28](ChangeLog/20210828.md)
@@ -21,17 +22,17 @@ The breaking change period is when we will merge PR's that change QMK in dangero
## When is the next Breaking Change?
The next Breaking Change is scheduled for May 28, 2022.
The next Breaking Change is scheduled for August 27, 2022.
### Important Dates
* [x] 2022 Feb 26 - `develop` is tagged with a new release version. Each push to `master` is subsequently merged to `develop` by GitHub actions.
* [ ] 2022 Apr 31 - `develop` closed to new PR's.
* [ ] 2022 Apr 31 - Call for testers.
* [ ] 2022 May 14 - Last day for merges -- after this point `develop` is locked for testing and accepts only bugfixes
* [ ] 2022 May 26 - `master` is locked, no PR's merged.
* [ ] 2022 May 28 - Merge `develop` to `master`.
* [ ] 2022 May 28 - `master` is unlocked. PR's can be merged again.
* [x] 2022 May 28 - `develop` is tagged with a new release version. Each push to `master` is subsequently merged to `develop` by GitHub actions.
* [ ] 2022 Jul 31 - `develop` closed to new PR's.
* [ ] 2022 Jul 31 - Call for testers.
* [ ] 2022 Aug 13 - Last day for merges -- after this point `develop` is locked for testing and accepts only bugfixes
* [ ] 2022 Aug 25 - `master` is locked, no PR's merged.
* [ ] 2022 Aug 27 - Merge `develop` to `master`.
* [ ] 2022 Aug 27 - `master` is unlocked. PR's can be merged again.
## What changes will be included?
@@ -42,32 +43,15 @@ If you want your breaking change to be included in this round you need to create
Criteria for acceptance:
* The PR is complete and ready to merge
* The PR has a ChangeLog file describing the changes under `<qmk_firmware>/docs/Changelog/20220226`.
* The PR has a ChangeLog file describing the changes under `<qmk_firmware>/docs/Changelog/20220827`.
* This should be in Markdown format, with a name in the format `PR12345.md`, substituting the digits for your PR's ID.
* One strong recommendation that the ChangeLog document matches the PR description on GitHub, so as to ensure traceability.
# Checklists
## Checklists
This section documents various processes we use when running the Breaking Changes process.
## Creating the `develop` branch
This happens immediately after the previous `develop` branch is merged.
* `qmk_firmware` git commands
* [ ] `git checkout master`
* [ ] `git pull --ff-only`
* [ ] `git checkout -b develop`
* [ ] Edit `readme.md`
* [ ] Add a big notice at the top that this is a testing branch.
* [ ] Include a link to this document
* [ ] `git commit -m 'Branch point for <DATE> Breaking Change'`
* [ ] `git tag breakpoint_<YYYY>_<MM>_<DD>`
* [ ] `git tag <next_version>` # Prevent the breakpoint tag from confusing version incrementing
* [ ] `git push upstream develop`
* [ ] `git push --tags`
## 4 Weeks Before Merge
### 4 Weeks Before Merge
* `develop` is now closed to new PR's, only fixes for current PR's may be merged
* Post call for testers
@@ -75,7 +59,7 @@ This happens immediately after the previous `develop` branch is merged.
* [ ] GitHub PR
* [ ] https://reddit.com/r/olkb
## 2 Weeks Before Merge
### 2 Weeks Before Merge
* `develop` is now closed to existing PR merges, only bugfixes for previous merges may be included
* Post call for testers
@@ -83,21 +67,21 @@ This happens immediately after the previous `develop` branch is merged.
* [ ] GitHub PR
* [ ] https://reddit.com/r/olkb
## 1 Week Before Merge
### 1 Week Before Merge
* Announce that master will be closed from <2 Days Before> to <Day of Merge>
* [ ] Discord
* [ ] GitHub PR
* [ ] https://reddit.com/r/olkb
## 2 Days Before Merge
### 2 Days Before Merge
* Announce that master is closed for 2 days
* [ ] Discord
* [ ] GitHub PR
* [ ] https://reddit.com/r/olkb
## Day Of Merge
### Day Of Merge
* `qmk_firmware` git commands
* [ ] `git checkout develop`
@@ -114,8 +98,39 @@ This happens immediately after the previous `develop` branch is merged.
* [ ] `git checkout master`
* [ ] `git pull --ff-only`
* [ ] `git merge --no-ff develop`
* [ ] `git tag <next_version>` # Prevent the breakpoint tag from confusing version incrementing
* [ ] `git push upstream <next_version>`
* [ ] `git push upstream master`
## Post-merge operations
### Updating the `develop` branch
This happens immediately after the previous `develop` branch is merged to `master`.
* `qmk_firmware` git commands
* [ ] `git checkout master`
* [ ] `git pull --ff-only`
* [ ] `git checkout develop`
* [ ] `git pull --ff-only`
* [ ] `git merge --no-ff master`
* [ ] Edit `readme.md`
* [ ] Add a big notice at the top that this is a testing branch.
* [ ] Include a link to this document
* [ ] `git commit -m 'Branch point for <DATE> Breaking Change'`
* [ ] `git tag breakpoint_<YYYY>_<MM>_<DD>`
* [ ] `git push upstream breakpoint_<YYYY>_<MM>_<DD>`
* All submodules under `lib` now need to be checked against their QMK-based forks:
* [ ] `git submodule foreach git log -n1`
* [ ] Validate each submodule SHA1 matches the qmk fork, e.g. for ChibiOS:
* Go to [qmk/ChibiOS](https://github.com/qmk/ChibiOS)
* Compare the commit hash in the above output to the commit hash in the repository
* If there's a mismatch:
* [ ] `cd lib/chibios`
* [ ] `git fetch --all`
* [ ] `git checkout master`
* [ ] `git reset --hard <commit hash>`
* [ ] `git push origin master --force-with-lease`
* (Optional) [update ChibiOS + ChibiOS-Contrib on `develop`](chibios_upgrade_instructions.md)

View File

@@ -2,6 +2,7 @@
This page links to all previous changelogs from the QMK Breaking Changes process.
* [2022 May 28](ChangeLog/20220528.md) - version 0.17.0
* [2022 Feb 26](ChangeLog/20220226.md) - version 0.16.0
* [2021 Nov 27](ChangeLog/20211127.md) - version 0.15.0
* [2021 Aug 28](ChangeLog/20210828.md) - version 0.14.0

View File

@@ -335,6 +335,90 @@ This command cleans up the `.build` folder. If `--all` is passed, any .hex or .b
qmk clean [-a]
```
## `qmk via2json`
This command an generate a keymap.json from a VIA keymap backup. Both the layers and the macros are converted, enabling users to easily move away from a VIA-enabled firmware without writing any code or reimplementing their keymaps in QMK Configurator.
**Usage**:
```
qmk via2json -kb KEYBOARD [-l LAYOUT] [-km KEYMAP] [-o OUTPUT] filename
```
**Example:**
```
$ qmk via2json -kb ai03/polaris -o polaris_keymap.json polaris_via_backup.json
Ψ Wrote keymap to /home/you/qmk_firmware/polaris_keymap.json
```
## `qmk import-keyboard`
This command imports a data-driven `info.json` keyboard into the repo.
**Usage**:
```
usage: qmk import-keyboard [-h] filename
```
**Example:**
```
$ qmk import-keyboard ~/Downloads/forever60.json
Ψ Importing forever60.json.
Ψ Imported a new keyboard named forever60.
Ψ To start working on things, `cd` into keyboards/forever60,
Ψ or open the directory in your preferred text editor.
Ψ And build with qmk compile -kb forever60 -km default.
```
## `qmk import-keymap`
This command imports a data-driven `keymap.json` keymap into the repo.
**Usage**:
```
usage: qmk import-keymap [-h] filename
```
**Example:**
```
qmk import-keymap ~/Downloads/asdf2.json
Ψ Importing asdf2.json.
Ψ Imported a new keymap named asdf2.
Ψ To start working on things, `cd` into keyboards/takashicompany/dogtag/keymaps/asdf2,
Ψ or open the directory in your preferred text editor.
Ψ And build with qmk compile -kb takashicompany/dogtag -km asdf2.
```
## `qmk import-kbfirmware`
This command creates a new keyboard based on a [Keyboard Firmware Builder](https://kbfirmware.com/) export.
**Usage**:
```
usage: qmk import-kbfirmware [-h] filename
```
**Example:**
```
$ qmk import-kbfirmware ~/Downloads/gh62.json
Ψ Importing gh62.json.
⚠ Support here is basic - Consider using 'qmk new-keyboard' instead
Ψ Imported a new keyboard named gh62.
Ψ To start working on things, `cd` into keyboards/gh62,
Ψ or open the directory in your preferred text editor.
Ψ And build with qmk compile -kb gh62 -km default.
```
---
# Developer Commands
@@ -498,3 +582,16 @@ Run single test:
qmk pytest -t qmk.tests.test_cli_commands.test_c2json
qmk pytest -t qmk.tests.test_qmk_path
## `qmk painter-convert-graphics`
This command converts images to a format usable by QMK, i.e. the QGF File Format. See the [Quantum Painter](quantum_painter.md?id=quantum-painter-cli) documentation for more information on this command.
## `qmk painter-make-font-image`
This command converts a TTF font to an intermediate format for editing, before converting to the QFF File Format. See the [Quantum Painter](quantum_painter.md?id=quantum-painter-cli) documentation for more information on this command.
## `qmk painter-convert-font-image`
This command converts an intermediate font image to the QFF File Format. See the [Quantum Painter](quantum_painter.md?id=quantum-painter-cli) documentation for more information on this command.

View File

@@ -188,7 +188,7 @@ cli.log.info('Reading from %s and writing to %s', cli.args.filename, cli.args.ou
# Testing, and Linting, and Formatting (oh my!)
We use nose2, flake8, and yapf to test, lint, and format code. You can use the `pytest` and `format-py` subcommands to run these tests:
We use nose2, flake8, and yapf to test, lint, and format code. You can use the `pytest` and `format-python` subcommands to run these tests:
### Testing and Linting
@@ -196,7 +196,7 @@ We use nose2, flake8, and yapf to test, lint, and format code. You can use the `
### Formatting
qmk format-py
qmk format-python
## Formatting Details

View File

@@ -14,6 +14,10 @@ Add this to the end of your `.profile` or `.bashrc`:
If you put `qmk_firmware` into another location you will need to adjust this path.
Zsh users will need to load `bashcompinit`. The following can be added to `~/.zshrc` file:
autoload -Uz bashcompinit && bashcompinit
### System Wide Symlink
If you want the tab completion available to all users of the system you can add a symlink to the `qmk_tab_complete.sh` script:

View File

@@ -2,6 +2,8 @@
QMK runs on any USB-capable AVR or ARM microcontroller with enough flash space - generally 32kB+ for AVR, and 64kB+ for ARM. With significant disabling of features, QMK may *just* squeeze into 16kB AVR MCUs.
Features within QMK may or may not be compatible with every microcontroller.
## Atmel AVR
The following use [LUFA](https://www.fourwalledcubicle.com/LUFA.php) as the USB stack:
@@ -51,6 +53,7 @@ You can also use any ARM chip with USB that [ChibiOS](https://www.chibios.org) s
### WestBerryTech (WB32)
* [WB32F3G71xx](http://www.westberrytech.com)
* [WB32FQ95xx](http://www.westberrytech.com)
### NXP (Kinetis)
@@ -59,9 +62,17 @@ You can also use any ARM chip with USB that [ChibiOS](https://www.chibios.org) s
* [MK20DX128](https://www.nxp.com/products/processors-and-microcontrollers/arm-microcontrollers/general-purpose-mcus/k-series-cortex-m4/k2x-usb/kinetis-k20-50-mhz-full-speed-usb-mixed-signal-integration-microcontrollers-based-on-arm-cortex-m4-core:K20_50)
* [MK20DX256](https://www.nxp.com/products/processors-and-microcontrollers/arm-microcontrollers/general-purpose-mcus/k-series-cortex-m4/k2x-usb/kinetis-k20-72-mhz-full-speed-usb-mixed-signal-integration-microcontrollers-mcus-based-on-arm-cortex-m4-core:K20_72)
* PJRC Teensy 3.2
* [MK64FX512](https://www.nxp.com/products/processors-and-microcontrollers/arm-microcontrollers/general-purpose-mcus/k-series-cortex-m4/k6x-ethernet/kinetis-k64-120-mhz-256-kb-sram-microcontrollers-mcus-based-on-arm-cortex-m4-core:K64_120)
* PJRC Teensy 3.5
* [MK66FX1M0](https://www.nxp.com/products/processors-and-microcontrollers/arm-microcontrollers/general-purpose-mcus/k-series-cortex-m4/k6x-ethernet/kinetis-k66-180-mhz-dual-high-speed-full-speed-usbs-2mb-flash-microcontrollers-mcus-based-on-arm-cortex-m4-core:K66_180)
* PJRC Teensy 3.6
### Raspberry Pi
* [RP2040](https://www.raspberrypi.com/documentation/microcontrollers/rp2040.html)
For a detailed overview about the RP2040 support by QMK see the [dedicated RP2040 page](platformdev_rp2040.md).
## Atmel ATSAM
There is limited support for one of Atmel's ATSAM microcontrollers, that being the [ATSAMD51J18A](https://www.microchip.com/wwwproducts/en/ATSAMD51J18A) used by the [Massdrop keyboards](https://github.com/qmk/qmk_firmware/tree/master/keyboards/massdrop). However, it is not recommended to design a board with this microcontroller as the support is quite specialized to Massdrop hardware.

View File

@@ -107,8 +107,10 @@ This is a C header file that is one of the first things included, and will persi
* sets the maximum power (in mA) over USB for the device (default: 500)
* `#define USB_POLLING_INTERVAL_MS 10`
* sets the USB polling rate in milliseconds for the keyboard, mouse, and shared (NKRO/media keys) interfaces
* `#define USB_SUSPEND_WAKEUP_DELAY 200`
* set the number of milliseconde to pause after sending a wakeup packet
* `#define USB_SUSPEND_WAKEUP_DELAY 0`
* sets the number of milliseconds to pause after sending a wakeup packet.
Disabled by default, you might want to set this to 200 (or higher) if the
keyboard does not wake up properly after suspending.
* `#define F_SCL 100000L`
* sets the I2C clock rate speed for keyboards using I2C. The default is `400000L`, except for keyboards using `split_common`, where the default is `100000L`.
@@ -131,6 +133,8 @@ If you define these options you will disable the associated feature, which can s
If you define these options you will enable the associated feature, which may increase your code size.
* `#define ENABLE_COMPILE_KEYCODE`
* Enables the `QK_MAKE` keycode
* `#define FORCE_NKRO`
* NKRO by default requires to be turned on, this forces it on during keyboard startup regardless of EEPROM setting. NKRO can still be turned off but will be turned on again if the keyboard reboots.
* `#define STRICT_LAYER_RELEASE`
@@ -139,7 +143,7 @@ If you define these options you will enable the associated feature, which may in
## Behaviors That Can Be Configured
* `#define TAPPING_TERM 200`
* how long before a tap becomes a hold, if set above 500, a key tapped during the tapping term will turn it into a hold too
* how long before a key press becomes a hold
* `#define TAPPING_TERM_PER_KEY`
* enables handling for per key `TAPPING_TERM` settings
* `#define RETRO_TAPPING`
@@ -172,6 +176,8 @@ If you define these options you will enable the associated feature, which may in
* sets the timer for leader key chords to run on each key press rather than overall
* `#define LEADER_KEY_STRICT_KEY_PROCESSING`
* Disables keycode filtering for Mod-Tap and Layer-Tap keycodes. Eg, if you enable this, you would need to specify `MT(MOD_CTL, KC_A)` if you want to use `KC_A`.
* `#define MOUSE_EXTENDED_REPORT`
* Enables support for extended reports (-32767 to 32767, instead of -127 to 127), which may allow for smoother reporting, and prevent maxing out of the reports. Applies to both Pointing Device and Mousekeys.
* `#define ONESHOT_TIMEOUT 300`
* how long before oneshot times out
* `#define ONESHOT_TAP_TOGGLE 2`

View File

@@ -81,17 +81,17 @@ void matrix_init(void) {
}
uint8_t matrix_scan(void) {
bool matrix_has_changed = false;
bool changed = false;
// TODO: add matrix scanning routine here
// Unless hardware debouncing - use the configured debounce routine
debounce(raw_matrix, matrix, MATRIX_ROWS, changed);
changed = debounce(raw_matrix, matrix, MATRIX_ROWS, changed);
// This *must* be called for correct keyboard behavior
matrix_scan_quantum();
return matrix_has_changed;
return changed;
}
```

View File

@@ -44,7 +44,7 @@ In other cases you should group like options together in an `object`. This is pa
In most cases you can add a simple mapping. These are maintained as JSON files in `data/mappings/info_config.json` and `data/mappings/info_rules.json`, and control mapping for `config.h` and `rules.mk`, respectively. Each mapping is keyed by the `config.h` or `rules.mk` variable, and the value is a hash with the following keys:
* `info_key`: (required) The location within `info.json` for this value. See below.
* `value_type`: (optional) Default `str`. The format for this variable's value. See below.
* `value_type`: (optional) Default `raw`. The format for this variable's value. See below.
* `to_json`: (optional) Default `true`. Set to `false` to exclude this mapping from info.json
* `to_c`: (optional) Default `true`. Set to `false` to exclude this mapping from config.h
* `warn_duplicate`: (optional) Default `true`. Set to `false` to turn off warning when a value exists in both places
@@ -57,7 +57,7 @@ Under the hood we use [Dotty Dict](https://dotty-dict.readthedocs.io/en/latest/)
#### Value Types
By default we treat all values as simple strings. If your value is more complex you can use one of these types to intelligently parse the data:
By default we treat all values as unquoted "raw" data. If your value is more complex you can use one of these types to intelligently parse the data:
* `array`: A comma separated array of strings
* `array.int`: A comma separated array of integers
@@ -65,6 +65,7 @@ By default we treat all values as simple strings. If your value is more complex
* `hex`: A number formatted as hex
* `list`: A space separate array of strings
* `mapping`: A hash of key/value pairs
* `str`: A quoted string literal
### Add code to extract it

View File

@@ -2,12 +2,15 @@
The EEPROM driver can be swapped out depending on the needs of the keyboard, or whether extra hardware is present.
Selecting the EEPROM driver is done in your keyboard's `rules.mk`:
Driver | Description
-----------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
`EEPROM_DRIVER = vendor` (default) | Uses the on-chip driver provided by the chip manufacturer. For AVR, this is provided by avr-libc. This is supported on ARM for a subset of chips -- STM32F3xx, STM32F1xx, and STM32F072xB will be emulated by writing to flash. STM32L0xx and STM32L1xx will use the onboard dedicated true EEPROM. Other chips will generally act as "transient" below.
`EEPROM_DRIVER = i2c` | Supports writing to I2C-based 24xx EEPROM chips. See the driver section below.
`EEPROM_DRIVER = spi` | Supports writing to SPI-based 25xx EEPROM chips. See the driver section below.
`EEPROM_DRIVER = transient` | Fake EEPROM driver -- supports reading/writing to RAM, and will be discarded when power is lost.
`EEPROM_DRIVER = wear_leveling` | Frontend driver for the wear_leveling system, allowing for EEPROM emulation on top of flash -- both in-MCU and external SPI NOR flash.
## Vendor Driver Configuration :id=vendor-eeprom-driver-configuration
@@ -43,8 +46,9 @@ Module | Equivalent `#define` | Source
-----------------|---------------------------------|------------------------------------------
CAT24C512 EEPROM | `#define EEPROM_I2C_CAT24C512` | <https://www.sparkfun.com/products/14764>
RM24C512C EEPROM | `#define EEPROM_I2C_RM24C512C` | <https://www.sparkfun.com/products/14764>
24LC64 EEPROM | `#define EEPROM_I2C_24LC64` | <https://www.microchip.com/wwwproducts/en/24LC64>
24LC128 EEPROM | `#define EEPROM_I2C_24LC128` | <https://www.microchip.com/wwwproducts/en/24LC128>
24LC32A EEPROM | `#define EEPROM_I2C_24LC32A` | <https://www.microchip.com/en-us/product/24LC32A>
24LC64 EEPROM | `#define EEPROM_I2C_24LC64` | <https://www.microchip.com/en-us/product/24LC64>
24LC128 EEPROM | `#define EEPROM_I2C_24LC128` | <https://www.microchip.com/en-us/product/24LC128>
24LC256 EEPROM | `#define EEPROM_I2C_24LC256` | <https://www.sparkfun.com/products/525>
MB85RC256V FRAM | `#define EEPROM_I2C_MB85RC256V` | <https://www.adafruit.com/product/1895>
@@ -54,13 +58,13 @@ MB85RC256V FRAM | `#define EEPROM_I2C_MB85RC256V` | <https://www.adafruit.com/p
Currently QMK supports 25xx-series chips over SPI. As such, requires a working spi_master driver configuration. You can override the driver configuration via your config.h:
`config.h` override | Description | Default Value
-----------------------------------------------|--------------------------------------------------------------------------------------|--------------
`#define EXTERNAL_EEPROM_SPI_SLAVE_SELECT_PIN` | SPI Slave select pin in order to inform that the EEPROM is currently being addressed | _none_
`#define EXTERNAL_EEPROM_SPI_CLOCK_DIVISOR` | Clock divisor used to divide the peripheral clock to derive the SPI frequency | `64`
`#define EXTERNAL_EEPROM_BYTE_COUNT` | Total size of the EEPROM in bytes | 8192
`#define EXTERNAL_EEPROM_PAGE_SIZE` | Page size of the EEPROM in bytes, as specified in the datasheet | 32
`#define EXTERNAL_EEPROM_ADDRESS_SIZE` | The number of bytes to transmit for the memory location within the EEPROM | 2
`config.h` override | Default Value | Description
-----------------------------------------------|---------------|-------------------------------------------------------------------------------------
`#define EXTERNAL_EEPROM_SPI_SLAVE_SELECT_PIN` | _none_ | SPI Slave select pin in order to inform that the EEPROM is currently being addressed
`#define EXTERNAL_EEPROM_SPI_CLOCK_DIVISOR` | `64` | Clock divisor used to divide the peripheral clock to derive the SPI frequency
`#define EXTERNAL_EEPROM_BYTE_COUNT` | `8192` | Total size of the EEPROM in bytes
`#define EXTERNAL_EEPROM_PAGE_SIZE` | `32` | Page size of the EEPROM in bytes, as specified in the datasheet
`#define EXTERNAL_EEPROM_ADDRESS_SIZE` | `2` | The number of bytes to transmit for the memory location within the EEPROM
!> There's no way to determine if there is an SPI EEPROM actually responding. Generally, this will result in reads of nothing but zero.
@@ -73,3 +77,84 @@ The only configurable item for the transient EEPROM driver is its size:
`#define TRANSIENT_EEPROM_SIZE` | Total size of the EEPROM storage in bytes | 64
Default values and extended descriptions can be found in `drivers/eeprom/eeprom_transient.h`.
## Wear-leveling Driver Configuration :id=wear_leveling-eeprom-driver-configuration
The wear-leveling driver uses an algorithm to minimise the number of erase cycles on the underlying MCU flash memory.
There is no specific configuration for this driver, but the wear-leveling system used by this driver may need configuration. See the [wear-leveling configuration](#wear_leveling-configuration) section for more information.
# Wear-leveling Configuration :id=wear_leveling-configuration
The wear-leveling driver has a few possible _backing stores_ that may be used by adding to your keyboard's `rules.mk` file:
Driver | Description
----------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
`WEAR_LEVELING_DRIVER = embedded_flash` | This driver is used for emulating EEPROM by writing to embedded flash on the MCU.
`WEAR_LEVELING_DRIVER = spi_flash` | This driver is used to address external SPI NOR Flash peripherals.
`WEAR_LEVELING_DRIVER = rp2040_flash` | This driver is used to write to the same storage the RP2040 executes code from.
`WEAR_LEVELING_DRIVER = legacy` | This driver is the "legacy" emulated EEPROM provided in historical revisions of QMK. Currently used for STM32F0xx and STM32F4x1, but slated for deprecation and removal once `embedded_flash` support for those MCU families is complete.
!> All wear-leveling drivers require an amount of RAM equivalent to the selected logical EEPROM size. Increasing the size to 32kB of EEPROM requires 32kB of RAM, which a significant number of MCUs simply do not have.
## Wear-leveling Embedded Flash Driver Configuration :id=wear_leveling-efl-driver-configuration
This driver performs writes to the embedded flash storage embedded in the MCU. In most circumstances, the last few of sectors of flash are used in order to minimise the likelihood of collision with program code.
Configurable options in your keyboard's `config.h`:
`config.h` override | Default | Description
-----------------------------------------|-------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
`#define WEAR_LEVELING_EFL_FIRST_SECTOR` | _unset_ | The first sector on the MCU to use. By default this is not defined and calculated at runtime based on the MCU. However, different flash sizes on MCUs may require custom configuration.
`#define WEAR_LEVELING_EFL_FLASH_SIZE` | _unset_ | Allows overriding the flash size available for use for wear-leveling. Under normal circumstances this is automatically calculated and should not need to be overridden. Specifying a size larger than the amount actually available in flash will usually prevent the MCU from booting.
`#define WEAR_LEVELING_LOGICAL_SIZE` | `1024` | Number of bytes "exposed" to the rest of QMK and denotes the size of the usable EEPROM.
`#define WEAR_LEVELING_BACKING_SIZE` | `2048` | Number of bytes used by the wear-leveling algorithm for its underlying storage, and needs to be a multiple of the logical size.
`#define BACKING_STORE_WRITE_SIZE` | _automatic_ | The byte width of the underlying write used on the MCU, and is usually automatically determined from the selected MCU family. If an error occurs in the auto-detection, you'll need to consult the MCU's datasheet and determine this value, specifying it directly.
!> If your MCU does not boot after swapping to the EFL wear-leveling driver, it's likely that the flash size is incorrectly detected, usually as an MCU with larger flash and may require overriding.
## Wear-leveling SPI Flash Driver Configuration :id=wear_leveling-flash_spi-driver-configuration
This driver performs writes to an external SPI NOR Flash peripheral. It also requires a working configuration for the SPI NOR Flash peripheral -- see the [flash driver](flash_driver.md) documentation for more information.
Configurable options in your keyboard's `config.h`:
`config.h` override | Default | Description
----------------------------------------------------|--------------------------------|--------------------------------------------------------------------------------------------------------------------------------
`#define WEAR_LEVELING_EXTERNAL_FLASH_BLOCK_COUNT` | `1` | Number of blocks in the external flash used by the wear-leveling algorithm.
`#define WEAR_LEVELING_EXTERNAL_FLASH_BLOCK_OFFSET` | `0` | The index first block in the external flash used by the wear-leveling algorithm.
`#define WEAR_LEVELING_LOGICAL_SIZE` | `((block_count*block_size)/2)` | Number of bytes "exposed" to the rest of QMK and denotes the size of the usable EEPROM. Result must be <= 64kB.
`#define WEAR_LEVELING_BACKING_SIZE` | `(block_count*block_size)` | Number of bytes used by the wear-leveling algorithm for its underlying storage, and needs to be a multiple of the logical size.
`#define BACKING_STORE_WRITE_SIZE` | `8` | The write width used whenever a write is performed on the external flash peripheral.
!> There is currently a limit of 64kB for the EEPROM subsystem within QMK, so using a larger flash is not going to be beneficial as the logical size cannot be increased beyond 65536. The backing size may be increased to a larger value, but erase timing may suffer as a result.
## Wear-leveling RP2040 Driver Configuration :id=wear_leveling-rp2040-driver-configuration
This driver performs writes to the same underlying storage that the RP2040 executes its code.
Configurable options in your keyboard's `config.h`:
`config.h` override | Default | Description
------------------------------------------|----------------------------|--------------------------------------------------------------------------------------------------------------------------------
`#define WEAR_LEVELING_RP2040_FLASH_SIZE` | `PICO_FLASH_SIZE_BYTES` | Number of bytes of flash on the board.
`#define WEAR_LEVELING_RP2040_FLASH_BASE` | `(flash_size-sector_size)` | The byte-wise location that the backing storage should be located.
`#define WEAR_LEVELING_LOGICAL_SIZE` | `4096` | Number of bytes "exposed" to the rest of QMK and denotes the size of the usable EEPROM.
`#define WEAR_LEVELING_BACKING_SIZE` | `8192` | Number of bytes used by the wear-leveling algorithm for its underlying storage, and needs to be a multiple of the logical size as well as the sector size.
`#define BACKING_STORE_WRITE_SIZE` | `2` | The write width used whenever a write is performed on the external flash peripheral.
## Wear-leveling Legacy EEPROM Emulation Driver Configuration :id=wear_leveling-legacy-driver-configuration
This driver performs writes to the embedded flash storage embedded in the MCU much like the normal Embedded Flash Driver, and is only for use with STM32F0xx and STM32F4x1 devices. This flash implementation is still currently provided as the EFL driver is currently non-functional for the previously mentioned families.
By default, `1024` bytes of emulated EEPROM is provided:
MCU | EEPROM Provided | Flash Used
----------|-----------------|--------------
STM32F042 | `1024` bytes | `2048` bytes
STM32F070 | `1024` bytes | `2048` bytes
STM32F072 | `1024` bytes | `2048` bytes
STM32F401 | `1024` bytes | `16384` bytes
STM32F411 | `1024` bytes | `16384` bytes
Under normal circumstances configuration of this driver requires intimate knowledge of the MCU's flash structure -- reconfiguration is at your own risk and will require referring to the code.

View File

@@ -3,6 +3,7 @@
This page covers questions people often have about keymaps. If you haven't you should read [Keymap Overview](keymap.md) first.
## What Keycodes Can I Use?
See [Keycodes](keycodes.md) for an index of keycodes available to you. These link to more extensive documentation when available.
Keycodes are actually defined in [quantum/keycode.h](https://github.com/qmk/qmk_firmware/blob/master/quantum/keycode.h).
@@ -25,25 +26,30 @@ Sometimes, for readability's sake, it's useful to define custom names for some k
This will allow you to use `FN_CAPS` and `ALT_TAB` in your keymap, keeping it more readable.
## My Keymap Doesn't Update When I Flash It
This is usually due to VIA, and has to do with how it deals with keymaps.
On first run, the VIA code in the firmware will copy the keymap from flash memory into EEPROM so that it can be rewritten at runtime by the VIA app. From this point QMK will use the keymap stored in EEPROM instead of flash, and so updates to your `keymap.c` will not be reflected.
The simple fix for this is to clear the EEPROM. You can do this in several ways:
* Hold the Bootmagic Lite key (usually top left/Escape) while plugging the board in, which will also place the board into bootloader mode; then unplug and replug the board.
* Press the `QK_CLEAR_EEPROM`/`EE_CLR` keycode if it is accessible on your keymap.
* Place the board into bootloader mode and hit the "Clear EEPROM" button. This may not be available for all bootloaders, and you may need to reflash the board afterwards.
## Some Of My Keys Are Swapped Or Not Working
QMK has two features, Bootmagic and Command, which allow you to change the behavior of your keyboard on the fly. This includes, but is not limited to, swapping Ctrl/Caps, disabling Gui, swapping Alt/Gui, swapping Backspace/Backslash, disabling all keys, and other behavioral modifications.
QMK has a couple of features which allow you to change the behavior of your keyboard on the fly. This includes, but is not limited to, swapping Ctrl/Caps, disabling GUI, swapping Alt/GUI, swapping Backspace/Backslash, disabling all keys, and other behavioral modifications.
As a quick fix try holding down `Space`+`Backspace` while you plug in your keyboard. This will reset the stored settings on your keyboard, returning those keys to normal operation. If that doesn't work look here:
Refer to the EEPROM clearing methods above, which should return those keys to normal operation. If that doesn't work, look here:
* [Bootmagic Lite](feature_bootmagic.md)
* [Command](feature_command.md)
* [Magic Keycodes](keycodes_magic.md)
* [Command](feature_command.md)
## The Menu Key Isn't Working
The key found on most modern keyboards that is located between `KC_RGUI` and `KC_RCTL` is actually called `KC_APP`. This is because when that key was invented there was already a key named `MENU` in the relevant standards, so MS chose to call that the `APP` key.
## `KC_SYSTEM_REQUEST` Isn't Working
Use keycode for Print Screen (`KC_PRINT_SCREEN`/`KC_PSCR`) instead of `KC_SYSTEM_REQUEST`. Key combination of 'Alt + Print Screen' is recognized as 'System request'.
See [issue #168](https://github.com/tmk/tmk_keyboard/issues/168) and
* https://en.wikipedia.org/wiki/Magic_SysRq_key
* https://en.wikipedia.org/wiki/System_request
The key found on most modern keyboards that is located between `KC_RGUI` and `KC_RCTL` is actually called `KC_APP`. This is because when the key was invented, there was already a key named "Menu" in the HID specification, so for whatever reason, Microsoft chose to create a new key and call it "Application".
## Power Keys Aren't Working
@@ -52,10 +58,12 @@ Somewhat confusingly, there are two "Power" keycodes in QMK: `KC_KB_POWER` in th
The former is only recognized on macOS, while the latter, `KC_SLEP` and `KC_WAKE` are supported by all three major operating systems, so it is recommended to use those instead. Under Windows, these keys take effect immediately, however on macOS they must be held down until a dialog appears.
## One Shot Modifier
Solves my personal 'the' problem. I often got 'the' or 'THe' wrongly instead of 'The'. One Shot Shift mitigates this for me.
https://github.com/tmk/tmk_keyboard/issues/67
## Modifier/Layer Stuck
Modifier keys or layers can be stuck unless layer switching is configured properly.
For Modifier keys and layer actions you have to place `KC_TRNS` on same position of destination layer to unregister the modifier key or return to previous layer on release event.
@@ -63,12 +71,11 @@ For Modifier keys and layer actions you have to place `KC_TRNS` on same position
* https://geekhack.org/index.php?topic=57008.msg1492604#msg1492604
* https://github.com/tmk/tmk_keyboard/issues/248
## Mechanical Lock Switch Support
This feature is for *mechanical lock switch* like [this Alps one](https://deskthority.net/wiki/Alps_SKCL_Lock). You can enable it by adding this to your `config.h`:
```
```c
#define LOCKING_SUPPORT_ENABLE
#define LOCKING_RESYNC_ENABLE
```
@@ -91,6 +98,7 @@ Even worse, it is not recognized unless the keyboard's VID and PID match that of
See [this issue](https://github.com/qmk/qmk_firmware/issues/2179) for detailed information.
## Keys Supported in Mac OSX?
You can know which keycodes are supported in OSX from this source code.
`usb_2_adb_keymap` array maps Keyboard/Keypad Page usages to ADB scancodes(OSX internal keycodes).
@@ -101,8 +109,8 @@ And `IOHIDConsumer::dispatchConsumerEvent` handles Consumer page usages.
https://opensource.apple.com/source/IOHIDFamily/IOHIDFamily-606.1.7/IOHIDFamily/IOHIDConsumer.cpp
## JIS Keys in Mac OSX
Japanese JIS keyboard specific keys like `無変換(Muhenkan)`, `変換(Henkan)`, `ひらがな(hiragana)` are not recognized on OSX. You can use **Seil** to enable those keys, try following options.
* Enable NFER Key on PC keyboard
@@ -111,8 +119,8 @@ Japanese JIS keyboard specific keys like `無変換(Muhenkan)`, `変換(Henkan)`
https://pqrs.org/osx/karabiner/seil.html
## RN-42 Bluetooth Doesn't Work with Karabiner
Karabiner - Keymapping tool on Mac OSX - ignores inputs from RN-42 module by default. You have to enable this option to make Karabiner working with your keyboard.
https://github.com/tekezo/Karabiner/issues/403#issuecomment-102559237
@@ -120,37 +128,24 @@ See these for the detail of this problem.
https://github.com/tmk/tmk_keyboard/issues/213
https://github.com/tekezo/Karabiner/issues/403
## Esc and <code>&#96;</code> on a Single Key
See the [Grave Escape](feature_grave_esc.md) feature.
## Eject on Mac OSX
`KC_EJCT` keycode works on OSX. https://github.com/tmk/tmk_keyboard/issues/250
It seems Windows 10 ignores the code and Linux/Xorg recognizes but has no mapping by default.
Not sure what keycode Eject is on genuine Apple keyboard actually. HHKB uses `F20` for Eject key(`Fn+f`) on Mac mode but this is not same as Apple Eject keycode probably.
Not sure what keycode Eject is on genuine Apple keyboard actually. HHKB uses `F20` for Eject key(`Fn+F`) on Mac mode but this is not same as Apple Eject keycode probably.
## What are "Real" and "Weak" modifiers?
## What's `weak_mods` and `real_mods` in `action_util.c`
___TO BE IMPROVED___
Real modifiers refer to the state of the real/physical modifier keys, while weak modifiers are the state of "virtual" or temporary modifiers which should not interfere with the internal state of the real modifier keys.
real_mods is intended to retains state of real/physical modifier key state, while
weak_mods retains state of virtual or temporary modifiers which should not affect state real modifier key.
The real and weak modifier states are ORed together when the keyboard report is sent, so if you release a weak modifier while the same real modifier is still held, the report does not change:
Let's say you hold down physical left shift key and type ACTION_MODS_KEY(LSHIFT, KC_A),
with weak_mods,
* (1) hold down left shift: real_mods |= MOD_BIT(LSHIFT)
* (2) press ACTION_MODS_KEY(LSHIFT, KC_A): weak_mods |= MOD_BIT(LSHIFT)
* (3) release ACTION_MODS_KEY(LSHIFT, KC_A): weak_mods &= ~MOD_BIT(LSHIFT)
real_mods still keeps modifier state.
without weak mods,
* (1) hold down left shift: real_mods |= MOD_BIT(LSHIFT)
* (2) press ACTION_MODS_KEY(LSHIFT, KC_A): real_mods |= MOD_BIT(LSHIFT)
* (3) release ACTION_MODS_KEY(LSHIFT, KC_A): real_mods &= ~MOD_BIT(LSHIFT)
here real_mods lost state for 'physical left shift'.
weak_mods is ORed with real_mods when keyboard report is sent.
https://github.com/tmk/tmk_core/blob/master/common/action_util.c#L57
1. **Hold down physical Left Shift:** Real mods now contains Left Shift, final state is Left Shift
2. **Add weak Left Shift:** Weak mods now contains Left Shift, final state is Left Shift
3. **Remove weak Left Shift:** Weak mods now contains nothing, final state is Left Shift
4. **Release physical Left Shift:** Real mods now contains nothing, final state is nothing

View File

@@ -39,7 +39,7 @@ In practice, this means that you can check whether a given modifier is active wi
To check that *only* a specific set of mods is active at a time, AND the modifier state and your desired mod mask as explained above and compare the result to the mod mask itself: `get_mods() & <mod mask> == <mod mask>`.
For example, let's say you want to trigger a piece of custom code if one-shot left control and one-shot left shift are on but every other one-shot mods are off. To do so, you can compose the desired mod mask by combining the mod bits for left control and shift with `(MOD_BIT(KC_LCTL) | MOD_BIT(KC_LSFT))` and then plug it in: `get_oneshot_mods & (MOD_BIT(KC_LCTL) | MOD_BIT(KC_LSFT)) == (MOD_BIT(KC_LCTL) | MOD_BIT(KC_LSFT))`. Using `MOD_MASK_CS` instead for the mod bitmask would have forced you to press four modifier keys (both versions of control and shift) to fulfill the condition.
For example, let's say you want to trigger a piece of custom code if one-shot left control and one-shot left shift are on but every other one-shot mods are off. To do so, you can compose the desired mod mask by combining the mod bits for left control and shift with `(MOD_BIT(KC_LCTL) | MOD_BIT(KC_LSFT))` and then plug it in: `get_oneshot_mods() & (MOD_BIT(KC_LCTL) | MOD_BIT(KC_LSFT)) == (MOD_BIT(KC_LCTL) | MOD_BIT(KC_LSFT))`. Using `MOD_MASK_CS` instead for the mod bitmask would have forced you to press four modifier keys (both versions of control and shift) to fulfill the condition.
The full list of mod masks is as follows:

View File

@@ -23,14 +23,35 @@ And to trigger the bootloader, you hold this key down when plugging the keyboard
## Split Keyboards
When handedness is predetermined via an option like `SPLIT_HAND_PIN`, you might need to configure a different key between halves. To do so, add these entries to your `config.h` file:
When [handedness](feature_split_keyboard.md#setting-handedness) is predetermined via options like `SPLIT_HAND_PIN` or `EE_HANDS`, you might need to configure a different key between halves. To identify the correct key for the right half, examine the split key matrix defined in the `<keyboard>.h` file, e.g.:
```c
#define LAYOUT_split_3x5_2( \
L01, L02, L03, L04, L05, R01, R02, R03, R04, R05, \
L06, L07, L08, L09, L10, R06, R07, R08, R09, R10, \
L11, L12, L13, L14, L15, R11, R12, R13, R14, R15, \
L16, L17, R16, R17 \
) \
{ \
{ L01, L02, L03, L04, L05 }, \
{ L06, L07, L08, L09, L10 }, \
{ L11, L12, L13, L14, L15 }, \
{ L16, L17, KC_NO, KC_NO, KC_NO }, \
{ R01, R02, R03, R04, R05 }, \
{ R06, R07, R08, R09, R10 }, \
{ R11, R12, R13, R14, R15 }, \
{ R16, R17, KC_NO, KC_NO, KC_NO } \
}
```
If you pick the top right key for the right half, it is `R05` on the top layout. Within the key matrix below, `R05` is located on row 4 columnn 4. To use that key as the right half's Bootmagic Lite trigger, add these entries to your `config.h` file:
```c
#define BOOTMAGIC_LITE_ROW_RIGHT 4
#define BOOTMAGIC_LITE_COLUMN_RIGHT 1
#define BOOTMAGIC_LITE_COLUMN_RIGHT 4
```
By default, these values are not set.
?> These values are not set by default.
## Advanced Bootmagic Lite
@@ -51,7 +72,7 @@ void bootmagic_lite(void) {
}
```
You can additional feature here. For instance, resetting the EEPROM or requiring additional keys to be pressed to trigger Bootmagic Lite. Keep in mind that `bootmagic_lite` is called before a majority of features are initialized in the firmware.
You can define additional logic here. For instance, resetting the EEPROM or requiring additional keys to be pressed to trigger Bootmagic Lite. Keep in mind that `bootmagic_lite` is called before a majority of features are initialized in the firmware.
## Addenda

156
docs/feature_caps_word.md Normal file
View File

@@ -0,0 +1,156 @@
# Caps Word
It is often useful to type a single word in all capitals, for instance
abbreviations like "QMK", or in code, identifiers like `KC_SPC`. "Caps Word" is
a modern alternative to Caps Lock:
* Letters are capitalized while active, and Caps Word automatically disables
itself at the end of the word. That is, it stops by default once a space or
any key other than `a`--`z`, `0`--`9`, `-`, `_`, delete, or backspace is
pressed. Caps Word also disables itself if the keyboard is idle for 5 seconds.
This is configurable, see below.
* To avoid requiring a dedicated key for Caps Word, there is an option
(`BOTH_SHIFTS_TURNS_ON_CAPS_WORD`) to activate Caps Word by simultaneously
pressing both shift keys. See below for other options.
* The implementation does not use the Caps Lock (`KC_CAPS`) keycode. Caps Word
works even if you're remapping Caps Lock at the OS level to Ctrl or something
else, as Emacs and Vim users often do.
## How do I enable Caps Word :id=how-do-i-enable-caps-word
In your `rules.mk`, add:
```make
CAPS_WORD_ENABLE = yes
```
Next, use one the following methods to activate Caps Word:
* **Activate by pressing a key**: Use the `CAPS_WORD` keycode (short
alias `CAPSWRD`) in your keymap.
* **Activate by pressing Left Shift + Right Shift**: Add `#define
BOTH_SHIFTS_TURNS_ON_CAPS_WORD` to config.h. You may also need to disable or
reconfigure Command, details below. Then, simultaneously pressing both left
and right shifts turns on Caps Word. This method works with the plain
`KC_LSFT` and `KC_RSFT` keycodes as well as one-shot shifts and Space Cadet
shifts. If your shift keys are mod-taps, hold both shift mod-tap keys until
the tapping term, then release them.
* **Activate by double tapping Left Shift**: Add `#define
DOUBLE_TAP_SHIFT_TURNS_ON_CAPS_WORD` config.h. Then, double tapping Left Shift
turns on Caps Word. This method works with `KC_LSFT` or one-shot Left Shift
`OSM(MOD_LSFT)`. To count as a double tap, the maximum time in milliseconds
between taps is `TAPPING_TERM`, or if using `TAPPING_TERM_PER_KEY`, the time
returned by `get_tapping_term()` for the shift keycode being tapped.
* **Custom activation**: You can activate Caps Word from code by calling
`caps_word_on()`. This may be used to activate Caps Word through [a
combo](feature_combo.md) or [tap dance](feature_tap_dance.md) or any means
you like.
### Troubleshooting: Command :id=troubleshooting-command
When using `BOTH_SHIFTS_TURNS_ON_CAPS_WORD`, you might see a compile message
**"BOTH_SHIFTS_TURNS_ON_CAPS_WORD and Command should not be enabled at the same
time, since both use the Left Shift + Right Shift key combination."**
Many keyboards enable the [Command feature](feature_command.md), which by
default is also activated using the Left Shift + Right Shift key combination. To
fix this conflict, please disable Command by adding in rules.mk:
```make
COMMAND_ENABLE = no
```
Or configure Command to use another key combination like Left Ctrl + Right Ctrl
by defining `IS_COMMAND()` in config.h:
```c
// Activate Command with Left Ctrl + Right Ctrl.
#define IS_COMMAND() (get_mods() == MOD_MASK_CTRL)
```
## Customizing Caps Word :id=customizing-caps-word
### Idle timeout :id=idle-timeout
Caps Word turns off automatically if no keys are pressed for
`CAPS_WORD_IDLE_TIMEOUT` milliseconds. The default is 5000 (5 seconds).
Configure the timeout duration in config.h, for instance
```c
#define CAPS_WORD_IDLE_TIMEOUT 3000 // 3 seconds.
```
Setting `CAPS_WORD_IDLE_TIMEOUT` to 0 configures Caps Word to never time out.
Caps Word then remains active indefinitely until a word breaking key is pressed.
### Functions :id=functions
Functions to manipulate Caps Word:
| Function | Description |
|-------------------------|------------------------------------------------|
| `caps_word_on()` | Turns Caps Word on. |
| `caps_word_off()` | Turns Caps Word off. |
| `caps_word_toggle()` | Toggles Caps Word. |
| `is_caps_word_on()` | Returns true if Caps Word is currently on. |
### Configure which keys are "word breaking" :id=configure-which-keys-are-word-breaking
You can define the `caps_word_press_user(uint16_t keycode)` callback to
configure which keys should be shifted and which keys are considered "word
breaking" and stop Caps Word.
The callback is called on every key press while Caps Word is active. When the
key should be shifted (that is, a letter key), the callback should call
`add_weak_mods(MOD_BIT(KC_LSFT))` to shift the key. Returning true continues the
current "word," while returning false is "word breaking" and deactivates Caps
Word. The default callback is
```c
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 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:
return true;
default:
return false; // Deactivate Caps Word.
}
}
```
### Representing Caps Word state :id=representing-caps-word-state
Define `caps_word_set_user(bool active)` to get callbacks when Caps Word turns
on or off. This is useful to represent the current Caps Word state, e.g. by
setting an LED or playing a sound. In your keymap, define
```c
void caps_word_set_user(bool active) {
if (active) {
// Do something when Caps Word activates.
} else {
// Do something when Caps Word deactivates.
}
}
```

View File

@@ -0,0 +1,98 @@
# Converters
Since many drop-in replacement controllers now exist, we've done our best to make them easy to use in existing designs.
This page documents the handy automated process for converting keyboards.
### Supported Converters
Currently the following converters are available:
| From | To |
|------------|-------------------|
| `promicro` | `proton_c` |
| `promicro` | `kb2040` |
| `promicro` | `promicro_rp2040` |
| `promicro` | `blok` |
See below for more in depth information on each converter.
## Overview
Each converter category is broken down by its declared `pin compatibility`.
This ensures that only valid combinations are attempted.
You can generate the firmware by appending `-e CONVERT_TO=<target>` to your compile/flash command. For example:
```sh
qmk flash -c -kb keebio/bdn9/rev1 -km default -e CONVERT_TO=proton_c
```
You can also add the same `CONVERT_TO=<target>` to your keymap's `rules.mk`, which will accomplish the same thing.
?> If you get errors about `PORTB/DDRB`, etc not being defined, you'll need to convert the keyboard's code to use the [GPIO Controls](gpio_control.md) that will work for both ARM and AVR. This shouldn't affect the AVR builds at all.
### Conditional Configuration
Once a converter is enabled, it exposes the `CONVERT_TO_<target_uppercase>` flag that you can use in your code with `#ifdef`s, For example:
```c
#ifdef CONVERT_TO_PROTON_C
// Proton C code
#else
// Pro Micro code
#endif
```
## Pro Micro
If a board currently supported in QMK uses a [Pro Micro](https://www.sparkfun.com/products/12640) (or compatible board), the supported alternative controllers are:
| Device | Target |
|------------------------------------------------------------------------|-------------------|
| [Proton C](https://qmk.fm/proton-c/) | `proton_c` |
| [Adafruit KB2040](https://learn.adafruit.com/adafruit-kb2040) | `kb2040` |
| [SparkFun Pro Micro - RP2040](https://www.sparkfun.com/products/18288) | `promicro_rp2040` |
| [Blok](https://boardsource.xyz/store/628b95b494dfa308a6581622) | `blok` |
Converter summary:
| Target | Argument | `rules.mk` | Condition |
|-------------------|---------------------------------|------------------------------|-------------------------------------|
| `proton_c` | `-e CONVERT_TO=proton_c` | `CONVERT_TO=proton_c` | `#ifdef CONVERT_TO_PROTON_C` |
| `kb2040` | `-e CONVERT_TO=kb2040` | `CONVERT_TO=kb2040` | `#ifdef CONVERT_TO_KB2040` |
| `promicro_rp2040` | `-e CONVERT_TO=promicro_rp2040` | `CONVERT_TO=promicro_rp2040` | `#ifdef CONVERT_TO_PROMICRO_RP2040` |
| `blok` | `-e CONVERT_TO=blok` | `CONVERT_TO=blok` | `#ifdef CONVERT_TO_BLOK` |
### Proton C :id=proton_c
The Proton C only has one on-board LED (C13), and by default, the TXLED (D5) is mapped to it. If you want the RXLED (B0) mapped to it instead, add this line to your `config.h`:
```c
#define CONVERT_TO_PROTON_C_RXLED
```
The following defaults are based on what has been implemented for STM32 boards.
| Feature | Notes |
|----------------------------------------------|------------------------------------------------------------------------------------------------------------------|
| [Audio](feature_audio.md) | Enabled |
| [RGB Lighting](feature_rgblight.md) | Disabled |
| [Backlight](feature_backlight.md) | Forces [task driven PWM](feature_backlight.md#software-pwm-driver) until ARM can provide automatic configuration |
| USB Host (e.g. USB-USB converter) | Not supported (USB host code is AVR specific and is not currently supported on ARM) |
| [Split keyboards](feature_split_keyboard.md) | Partial - heavily dependent on enabled features |
### Adafruit KB2040 :id=kb2040
The following defaults are based on what has been implemented for [RP2040](platformdev_rp2040.md) boards.
| Feature | Notes |
|----------------------------------------------|------------------------------------------------------------------------------------------------------------------|
| [RGB Lighting](feature_rgblight.md) | Enabled via `PIO` vendor driver |
| [Backlight](feature_backlight.md) | Forces [task driven PWM](feature_backlight.md#software-pwm-driver) until ARM can provide automatic configuration |
| USB Host (e.g. USB-USB converter) | Not supported (USB host code is AVR specific and is not currently supported on ARM) |
| [Split keyboards](feature_split_keyboard.md) | Partial via `PIO` vendor driver - heavily dependent on enabled features |
### SparkFun Pro Micro - RP2040 and Blok :id=promicro_rp2040
Currently identical to [Adafruit KB2040](#kb2040).

View File

@@ -35,6 +35,7 @@ There are a number of options added that should allow some additional degree of
|`DYNAMIC_MACRO_SIZE` |128 |Sets the amount of memory that Dynamic Macros can use. This is a limited resource, dependent on the controller. |
|`DYNAMIC_MACRO_USER_CALL` |*Not defined* |Defining this falls back to using the user `keymap.c` file to trigger the macro behavior. |
|`DYNAMIC_MACRO_NO_NESTING` |*Not Defined* |Defining this disables the ability to call a macro from another macro (nested macros). |
|`DYNAMIC_MACRO_DELAY` |*Not Defined* |Sets the waiting time (ms unit) when sending each key. |
If the LEDs start blinking during the recording with each keypress, it means there is no more space for the macro in the macro buffer. To fit the macro in, either make the other macro shorter (they share the same buffer) or increase the buffer size by adding the `DYNAMIC_MACRO_SIZE` define in your `config.h` (default value: 128; please read the comments for it in the header).

View File

@@ -54,9 +54,43 @@ If you are using different pinouts for the encoders on each half of a split keyb
#define ENCODER_RESOLUTIONS_RIGHT { 2, 4 }
```
If the `_RIGHT` definitions aren't specified in your `config.h`, then the non-`_RIGHT` versions will be applied to both sides of the split.
Additionally, if one side does not have an encoder, you can specify `{}` for the pins/resolution -- for example, a split keyboard with only a right-side encoder:
```c
#define ENCODERS_PAD_A { }
#define ENCODERS_PAD_B { }
#define ENCODER_RESOLUTIONS { }
#define ENCODERS_PAD_A_RIGHT { B12 }
#define ENCODERS_PAD_B_RIGHT { B13 }
#define ENCODER_RESOLUTIONS_RIGHT { 4 }
```
## Encoder map :id=encoder-map
Encoder mapping may be added to your `keymap.c`, which replicates the normal keyswitch layer handling functionality, but with encoders. Add this to your `rules.mk`:
```make
ENCODER_MAP_ENABLE = yes
```
Your `keymap.c` will then need an encoder mapping defined (for four layers and two encoders):
```c
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
[_BASE] = { ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
[_LOWER] = { ENCODER_CCW_CW(RGB_HUD, RGB_HUI), ENCODER_CCW_CW(RGB_SAD, RGB_SAI) },
[_RAISE] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI), ENCODER_CCW_CW(RGB_SPD, RGB_SPI) },
[_ADJUST] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD), ENCODER_CCW_CW(KC_RIGHT, KC_LEFT) },
};
#endif
```
## Callbacks
The callback functions can be inserted into your `<keyboard>.c`:
When not using `ENCODER_MAP_ENABLE = yes`, the callback functions can be inserted into your `<keyboard>.c`:
```c
bool encoder_update_kb(uint8_t index, bool clockwise) {

View File

@@ -50,22 +50,28 @@ Not all keycodes below will work depending on which haptic mechanism you have ch
### Solenoids
First you will need a build a circuit to drive the solenoid through a mosfet as most MCU will not be able to provide the current needed to drive the coil in the solenoid.
The solenoid code supports relay switches, and similar hardware, as well as solenoids.
For a regular solenoid, you will need a build a circuit to drive the solenoid through a mosfet as most MCU will not be able to provide the current needed to drive the coil in the solenoid.
[Wiring diagram provided by Adafruit](https://cdn-shop.adafruit.com/product-files/412/solenoid_driver.pdf)
For relay switches, the hardware may already contain all of that ciruitry, and just require VCC, GND and a data pin.
| Settings | Default | Description |
|----------------------------|----------------------|-------------------------------------------------------|
|`SOLENOID_PIN` | *Not defined* |Configures the pin that the Solenoid is connected to. |
|`SOLENOID_PIN_ACTIVE_LOW` | *Not defined* |If defined then the solenoid trigger pin is active low.|
|`SOLENOID_DEFAULT_DWELL` | `12` ms |Configures the default dwell time for the solenoid. |
|`SOLENOID_MIN_DWELL` | `4` ms |Sets the lower limit for the dwell. |
|`SOLENOID_MAX_DWELL` | `100` ms |Sets the upper limit for the dwell. |
|`SOLENOID_DWELL_STEP_SIZE` | `1` ms |The step size to use when `HPT_DWL*` keycodes are sent |
|`SOLENOID_DEFAULT_BUZZ` | `0` (disabled) |On HPT_RST buzz is set "on" if this is "1" |
|`SOLENOID_BUZZ_ACTUATED` | `SOLENOID_MIN_DWELL` |Actuated-time when the solenoid is in buzz mode |
|`SOLENOID_BUZZ_NONACTUATED` | `SOLENOID_MIN_DWELL` |Non-Actuated-time when the solenoid is in buzz mode |
| Settings | Default | Description |
|----------------------------|----------------------|--------------------------------------------------------------|
|`SOLENOID_PIN` | *Not defined* |Configures the pin that the switch is connected to. |
|`SOLENOID_PIN_ACTIVE_LOW` | *Not defined* |If defined then the switch trigger pin is active low. |
|`SOLENOID_PINS` | *Not defined* |Configures an array of pins to be used for switch activation. |
|`SOLENOID_PINS_ACTIVE_LOW` | *Not defined* |Allows you to specify how each pin is pulled for activation. |
|`SOLENOID_RANDOM_FIRE` | *Not defined* |When there are multiple solenoids, will select a random one to fire.|
|`SOLENOID_DEFAULT_DWELL` | `12` ms |Configures the default dwell time for the switch. |
|`SOLENOID_MIN_DWELL` | `4` ms |Sets the lower limit for the dwell. |
|`SOLENOID_MAX_DWELL` | `100` ms |Sets the upper limit for the dwell. |
|`SOLENOID_DWELL_STEP_SIZE` | `1` ms |The step size to use when `HPT_DWL*` keycodes are sent. |
|`SOLENOID_DEFAULT_BUZZ` | `0` (disabled) |On HPT_RST buzz is set "on" if this is "1" |
|`SOLENOID_BUZZ_ACTUATED` | `SOLENOID_MIN_DWELL` |Actuated-time when the switch is in buzz mode. |
|`SOLENOID_BUZZ_NONACTUATED` | `SOLENOID_MIN_DWELL` |Non-Actuated-time when the switch is in buzz mode. |
* If solenoid buzz is off, then dwell time is how long the "plunger" stays activated. The dwell time changes how the solenoid sounds.
* If solenoid buzz is on, then dwell time sets the length of the buzz, while `SOLENOID_BUZZ_ACTUATED` and `SOLENOID_BUZZ_NONACTUATED` set the (non-)actuation times withing the buzz period.

View File

@@ -1,57 +1,298 @@
# HD44780 LCD Displays
# HD44780 LCD Driver
This is an integration of Peter Fleury's LCD library. This page will explain the basics. [For in depth documentation visit his page.](http://www.peterfleury.epizy.com/doxygen/avr-gcc-libraries/group__pfleury__lcd.html)
## Supported Hardware
You can enable support for HD44780 Displays by setting the `HD44780_ENABLE` flag in your keyboards `rules.mk` to yes.
LCD modules using [HD44780U](https://www.sparkfun.com/datasheets/LCD/HD44780.pdf) IC or equivalent, communicating in 4-bit mode.
## Configuration
|Module|Size |Notes |
|------|--------------|---------------------------------|
|1602A |16x2, 5x8 dots| |
|2004A |20x4, 5x8 dots|Untested, not currently supported|
You will need to configure the pins used by your display, and its number of lines and columns in your keyboard's `config.h`.
Uncomment the section labled HD44780 and change the parameters as needed.
````
/*
* HD44780 LCD Display Configuration
*/
#define LCD_LINES 2 //< number of visible lines of the display
#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
#if LCD_IO_MODE
#define LCD_PORT PORTB //< port for the LCD lines
#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
#define LCD_RS_PORT LCD_PORT //< port for RS line
#define LCD_RS_PIN 3 //< pin for RS line
#define LCD_RW_PORT LCD_PORT //< port for RW line
#define LCD_RW_PIN 2 //< pin for RW line
#define LCD_E_PORT LCD_PORT //< port for Enable line
#define LCD_E_PIN 1 //< pin for Enable line
#endif
````
Should you need to configure other properties you can copy them from `quantum/hd44780.h` and set them in your `config.h`
To run these modules at 3.3V, an additional MAX660 voltage converter IC must be soldered on, along with two 10µF capacitors. See [this page](https://www.codrey.com/electronic-circuits/hack-your-16x2-lcd/) for more details.
## Usage
To initialize your display, call `lcd_init()` with one of these parameters:
````
LCD_DISP_OFF : display off
LCD_DISP_ON : display on, cursor off
LCD_DISP_ON_CURSOR : display on, cursor on
LCD_DISP_ON_CURSOR_BLINK : display on, cursor on flashing
````
This is best done in your keyboards `matrix_init_kb` or your keymaps `matrix_init_user`.
It is advised to clear the display before use.
To do so call `lcd_clrscr()`.
Add the following to your `rules.mk`:
To now print something to your Display you first call `lcd_gotoxy(column, line)`. To go to the start of the first line you would call `lcd_gotoxy(0, 0)` and then print a string with `lcd_puts("example string")`.
```make
HD44780_ENABLE = yes
```
There are more methods available to control the display. [For in depth documentation please visit the linked page.](http://www.peterfleury.epizy.com/doxygen/avr-gcc-libraries/group__pfleury__lcd.html)
## Basic Configuration
Add the following to your `config.h`:
|Define |Default |Description |
|-----------------------|--------------|-----------------------------------------------------------------------------------------------------|
|`HD44780_DATA_PINS` |*Not defined* |(Required) An array of four GPIO pins connected to the display's D4-D7 pins, eg. `{ B1, B3, B2, B6 }`|
|`HD44780_RS_PIN` |*Not defined* |(Required) The GPIO connected to the display's RS pin |
|`HD44780_RW_PIN` |*Not defined* |(Required) The GPIO connected to the display's RW pin |
|`HD44780_E_PIN` |*Not defined* |(Required) The GPIO connected to the display's E pin |
|`HD44780_DISPLAY_COLS` |`16` |The number of visible characters on a single line of the display |
|`HD44780_DISPLAY_LINES`|`2` |The number of visible lines on the display |
|`HD44780_WRAP_LINES` |*Not defined* |If defined, input characters will wrap to the next line |
## Examples
### Hello World
Add the following to your `keymap.c`:
```c
void keyboard_post_init_user(void) {
hd44780_init(true, true); // Show blinking cursor
hd44780_puts_P(PSTR("Hello, world!\n"));
}
```
### Custom Character Definition
Up to eight custom characters can be defined. This data is stored in the Character Generator RAM (CGRAM), and is not persistent across power cycles.
This example defines the QMK Psi as the first custom character. The first 16 positions in the character set are reserved for the eight custom characters duplicated.
```
Byte | 16 8 4 2 1
1 | x x x ■ □ ■ □ ■
2 | x x x ■ □ ■ □ ■
3 | x x x ■ □ ■ □ ■
4 | x x x □ ■ ■ ■ □
5 | x x x □ □ ■ □ □
6 | x x x □ □ ■ □ □
7 | x x x □ □ ■ □ □
8 | x x x □ □ □ □ □
```
```c
const uint8_t PROGMEM psi[8] = { 0x15, 0x15, 0x15, 0x0E, 0x04, 0x04, 0x04, 0x00 };
void keyboard_post_init_user(void) {
hd44780_init(false, false);
hd44780_define_char_P(0, psi);
// Cursor is incremented while defining characters so must be reset
hd44780_home();
// 0x08 to avoid null terminator
hd44780_puts_P(PSTR("\x08 QMK Firmware"));
}
```
## API
### `void hd44780_init(bool cursor, bool blink)`
Initialize the display.
This function should be called only once, before any of the other functions can be called.
#### Arguments
- `bool cursor`
Whether to show the cursor.
- `bool blink`
Whether to blink the cursor, if shown.
---
### `void hd44780_clear(void)`
Clear the display.
This function is called on init.
---
### `void hd44780_home(void)`
Move the cursor to the home position.
This function is called on init.
---
### `void hd44780_on(bool cursor, bool blink)`
Turn the display on, and/or set the cursor properties.
This function is called on init.
#### Arguments
- `bool cursor`
Whether to show the cursor.
- `bool blink`
Whether to blink the cursor, if shown.
---
### `void hd44780_off(void)`
Turn the display off.
---
### `void hd44780_set_cursor(uint8_t col, uint8_t line)`
Move the cursor to the specified position on the display.
#### Arguments
- `uint8_t col`
The column number to move to, from 0 to 15 on 16x2 displays.
- `bool line`
The line number to move to, either 0 or 1 on 16x2 displays.
---
### `void hd44780_putc(char c)`
Print a character to the display. The newline character `\n` will move the cursor to the start of the next line.
The exact character shown may depend on the ROM code of your particular display - refer to the datasheet for the full character set.
#### Arguments
- `char c`
The character to print.
---
### `void hd44780_puts(const char *s)`
Print a string of characters to the display.
#### Arguments
- `const char *s`
The string to print.
---
### `void hd44780_puts_P(const char *s)`
Print a string of characters from PROGMEM to the display.
On ARM devices, this function is simply an alias of `hd44780_puts()`.
#### Arguments
- `const char *s`
The PROGMEM string to print (ie. `PSTR("Hello")`).
---
### `void hd44780_define_char(uint8_t index, uint8_t *data)`
Define a custom character.
#### Arguments
- `uint8_t index`
The index of the custom character to define, from 0 to 7.
- `uint8_t *data`
An array of 8 bytes containing the 5-bit row data of the character, where the first byte is the topmost row, and the least significant bit of each byte is the rightmost column.
---
### `void hd44780_define_char_P(uint8_t index, const uint8_t *data)`
Define a custom character from PROGMEM.
On ARM devices, this function is simply an alias of `hd44780_define_char()`.
#### Arguments
- `uint8_t index`
The index of the custom character to define, from 0 to 7.
- `const uint8_t *data`
A PROGMEM array of 8 bytes containing the 5-bit row data of the character, where the first byte is the topmost row, and the least significant bit of each byte is the rightmost column.
---
### `bool hd44780_busy(void)`
Indicates whether the display is currently processing, and cannot accept instructions.
#### Return Value
`true` if the display is busy.
---
### `void hd44780_write(uint8_t data, bool isData)`
Write a byte to the display.
#### Arguments
- `uint8_t data`
The byte to send to the display.
- `bool isData`
Whether the byte is an instruction or character data.
---
### `uint8_t hd44780_read(bool isData)`
Read a byte from the display.
#### Arguments
- `bool isData`
Whether to read the current cursor position, or the character at the cursor.
#### Return Value
If `isData` is `true`, the returned byte will be the character at the current DDRAM address. Otherwise, it will be the current DDRAM address and the busy flag.
---
### `void hd44780_command(uint8_t command)`
Send a command to the display. Refer to the datasheet and `hd44780.h` for the valid commands and defines.
This function waits for the display to clear the busy flag before sending the command.
#### Arguments
- `uint8_t command`
The command to send.
---
### `void hd44780_data(uint8_t data)`
Send a byte of data to the display.
This function waits for the display to clear the busy flag before sending the data.
#### Arguments
- `uint8_t data`
The byte of data to send.
---
### `void hd44780_set_cgram_address(uint8_t address)`
Set the CGRAM address.
This function is used when defining custom characters.
#### Arguments
- `uint8_t address`
The CGRAM address to move to, from `0x00` to `0x3F`.
---
### `void hd44780_set_ddram_address(uint8_t address)`
Set the DDRAM address.
This function is used when printing characters to the display, and setting the cursor.
#### Arguments
- `uint8_t address`
The DDRAM address to move to, from `0x00` to `0x7F`.

View File

@@ -150,3 +150,5 @@ Note that the supported AVR MCUs have a 10-bit ADC, and 12-bit for most STM32 MC
Joystick buttons are normal Quantum keycodes, defined as `JS_BUTTON0` to `JS_BUTTON31`, depending on the number of buttons you have configured.
To trigger a joystick button, just add the corresponding keycode to your keymap.
You can also trigger joystick buttons in code with `register_joystick_button(button)` and `unregister_joystick_button(button)`, where `button` is the 0-based button index (0 = button 1).

View File

@@ -11,13 +11,13 @@ QMK provides methods to read 5 of the LEDs defined in the HID spec:
* Kana
There are three ways to get the lock LED state:
* by specifying configuration options within `config.h`
* by implementing `bool led_update_kb(led_t led_state)` or `_user(led_t led_state)`; or
* by calling `led_t host_keyboard_led_state()`
* Configuration options in `config.h`
* Implement `led_update_*` function
* Call `led_t host_keyboard_led_state()`
!> `host_keyboard_led_state()` may already reflect a new value before `led_update_user()` is called.
!> The `host_keyboard_led_state()` may reflect an updated state before `led_update_user()` is called.
Two more deprecated functions exist that provide the LED state as a `uint8_t`:
Two deprecated functions that provide the LED state as `uint8_t`:
* `uint8_t led_set_kb(uint8_t usb_led)` and `_user(uint8_t usb_led)`
* `uint8_t host_keyboard_leds()`
@@ -37,23 +37,20 @@ To configure the indicators, `#define` these in your `config.h`:
Unless you are designing your own keyboard, you generally should not need to change the above config options.
## `led_update_*()`
## LED update function
When the configuration options do not provide enough flexibility, the API hooks provided allow custom control of the LED behavior. These functions will be called when the state of one of those 5 LEDs changes. It receives the LED state as a struct parameter.
When the configuration options do not provide enough flexibility, the following callbacks allow custom control of the LED behavior. These functions will be called when one of those 5 LEDs changes state:
By convention, return `true` from `led_update_user()` to get the `led_update_kb()` hook to run its code, and
return `false` when you would prefer not to run the code in `led_update_kb()`.
* Keyboard/revision: `bool led_update_kb(led_t led_state)`
* Keymap: `bool led_update_user(led_t led_state)`
Some examples include:
Both receives LED state as a struct parameter. Returning `true` in `led_update_user()` will allow the keyboard level code in `led_update_kb()` to run as well. Returning `false` will override the keyboard level code, depending on how the keyboard level function is set up.
- overriding the LEDs to use them for something else like layer indication
- return `false` because you do not want the `_kb()` function to run, as it would override your layer behavior.
- play a sound when an LED turns on or off.
- return `true` because you want the `_kb` function to run, and this is in addition to the default LED behavior.
?> This boolean return type of `led_update_user` allows for overriding keyboard LED controls, and is thus recommended over the void `led_set_user` function.
?> Because the `led_set_*` functions return `void` instead of `bool`, they do not allow for overriding the keyboard LED control, and thus it's recommended to use `led_update_*` instead.
### Example of keyboard LED update implementation
### Example `led_update_kb()` Implementation
This is a template indicator function that can be implemented on keyboard level code:
```c
bool led_update_kb(led_t led_state) {
@@ -74,9 +71,9 @@ bool led_update_kb(led_t led_state) {
}
```
### Example `led_update_user()` Implementation
### Example of user LED update implementation
This incomplete example would play a sound if Caps Lock is turned on or off. It returns `true`, because you also want the LEDs to maintain their state.
This is an incomplete example will play a sound if Caps Lock is turned on or off. It returns `true` to allow keyboard LED function to maintain their state.
```c
#ifdef AUDIO_ENABLE
@@ -96,18 +93,17 @@ bool led_update_user(led_t led_state) {
}
```
### `led_update_*` Function Documentation
## Host keyboard LED state
* Keyboard/Revision: `bool led_update_kb(led_t led_state)`
* Keymap: `bool led_update_user(led_t led_state)`
The `host_keyboard_led_state()` function will report the LED state returned from the host computer as `led_t`. This is useful for reading the LED state outside `led_update_*`. For example, you can get the boolean state of Caps Lock from the host with:
## `host_keyboard_led_state()`
Call this function to get the last received LED state as a `led_t`. This is useful for reading the LED state outside `led_update_*`, e.g. in [`matrix_scan_user()`](#matrix-scanning-code).
```c
bool caps = host_keyboard_led_state().caps_lock;
```
## Setting Physical LED State
Some keyboard implementations provide convenience methods for setting the state of the physical LEDs.
Some keyboard implementations provide convenient methods for setting the state of the physical LEDs.
### Ergodox Boards

View File

@@ -264,11 +264,11 @@ enum led_matrix_effects {
};
```
You can disable a single effect by defining `DISABLE_[EFFECT_NAME]` in your `config.h`:
You can enable a single effect by defining `ENABLE_[EFFECT_NAME]` in your `config.h`:
|Define |Description |
|-------------------------------------------------------|-----------------------------------------------|
|Define |Description |
|-------------------------------------------------------|----------------------------------------------|
|`#define ENABLE_LED_MATRIX_ALPHAS_MODS` |Enables `LED_MATRIX_ALPHAS_MODS` |
|`#define ENABLE_LED_MATRIX_BREATHING` |Enables `LED_MATRIX_BREATHING` |
|`#define ENABLE_LED_MATRIX_BAND` |Enables `LED_MATRIX_BAND` |
@@ -278,6 +278,13 @@ You can disable a single effect by defining `DISABLE_[EFFECT_NAME]` in your `con
|`#define ENABLE_LED_MATRIX_CYCLE_UP_DOWN` |Enables `LED_MATRIX_CYCLE_UP_DOWN` |
|`#define ENABLE_LED_MATRIX_CYCLE_OUT_IN` |Enables `LED_MATRIX_CYCLE_OUT_IN` |
|`#define ENABLE_LED_MATRIX_DUAL_BEACON` |Enables `LED_MATRIX_DUAL_BEACON` |
|`#define ENABLE_LED_MATRIX_WAVE_LEFT_RIGHT` |Enables `LED_MATRIX_WAVE_LEFT_RIGHT` |
|`#define ENABLE_LED_MATRIX_WAVE_UP_DOWN` |Enables `LED_MATRIX_WAVE_UP_DOWN` |
?> These modes don't require any additional defines.
|Reactive Defines |Description |
|-------------------------------------------------------|----------------------------------------------|
|`#define ENABLE_LED_MATRIX_SOLID_REACTIVE_SIMPLE` |Enables `LED_MATRIX_SOLID_REACTIVE_SIMPLE` |
|`#define ENABLE_LED_MATRIX_SOLID_REACTIVE_WIDE` |Enables `LED_MATRIX_SOLID_REACTIVE_WIDE` |
|`#define ENABLE_LED_MATRIX_SOLID_REACTIVE_MULTIWIDE` |Enables `LED_MATRIX_SOLID_REACTIVE_MULTIWIDE` |
@@ -287,8 +294,8 @@ You can disable a single effect by defining `DISABLE_[EFFECT_NAME]` in your `con
|`#define ENABLE_LED_MATRIX_SOLID_REACTIVE_MULTINEXUS` |Enables `LED_MATRIX_SOLID_REACTIVE_MULTINEXUS`|
|`#define ENABLE_LED_MATRIX_SOLID_SPLASH` |Enables `LED_MATRIX_SOLID_SPLASH` |
|`#define ENABLE_LED_MATRIX_SOLID_MULTISPLASH` |Enables `LED_MATRIX_SOLID_MULTISPLASH` |
|`#define ENABLE_LED_MATRIX_WAVE_LEFT_RIGHT` |Enables `LED_MATRIX_WAVE_LEFT_RIGHT` |
|`#define ENABLE_LED_MATRIX_WAVE_UP_DOWN` |Enables `LED_MATRIX_WAVE_UP_DOWN` |
?> These modes also require the `LED_MATRIX_KEYPRESSES` or `LED_MATRIX_KEYRELEASES` define to be available.
## Custom LED Matrix Effects :id=custom-led-matrix-effects

View File

@@ -106,6 +106,8 @@ Only basic keycodes (prefixed by `KC_`) are supported. Do not include the `KC_`
### `SEND_STRING()` & `process_record_user`
See also: [Send String](feature_send_string.md)
Sometimes you want a key to type out words or phrases. For the most common situations, we've provided `SEND_STRING()`, which will type out a string (i.e. a sequence of characters) for you. All ASCII characters that are easily translatable to a keycode are supported (e.g. `qmk 123\n\t`).
Here is an example `keymap.c` for a two-key keyboard:

View File

@@ -10,6 +10,10 @@ MIDI_ENABLE = yes
There are two MIDI systems in QMK: basic and advanced. With basic MIDI you will only be able to send Note On and Note Off messages using the note keycodes, meaning that keycodes like `MI_OCTU` and `MI_OCTD` will not work. Advanced MIDI allows you to do things like octave shifts, channel changes, velocity changes, modulation, and more.
### Caveats
MIDI requires 2 USB endpoints and as such may not work on some hardware such as V-USB controllers.
### Basic MIDI
To enable basic MIDI, add the following to your `config.h`:
@@ -254,7 +258,7 @@ For the above, the `MI_C` keycode will produce a C3 (note number 48), and so on.
<!--
#### QMK Internals (Autogenerated)
* [Internals/MIDI Device Setup Process](internals_midi_device_setup_process.md)
* [Internals/MIDI Device](internals_midi_device.md)
* [Internals/MIDI Util](internals_midi_util.md)
* [Internals/MIDI Device Setup Process](internals/midi_device_setup_process.md)
* [Internals/MIDI Device](internals/midi_device.md)
* [Internals/MIDI Util](internals/midi_util.md)
-->

View File

@@ -87,9 +87,9 @@ This is an extension of the accelerated mode. The kinetic mode uses a quadratic
|`MK_KINETIC_SPEED` |undefined|Enable kinetic mode |
|`MOUSEKEY_DELAY` |5 |Delay between pressing a movement key and cursor movement |
|`MOUSEKEY_INTERVAL` |10 |Time between cursor movements in milliseconds |
|`MOUSEKEY_MOVE_DELTA` |5 |Step size for accelerating from initial to base speed |
|`MOUSEKEY_MOVE_DELTA` |16 |Step size for accelerating from initial to base speed |
|`MOUSEKEY_INITIAL_SPEED` |100 |Initial speed of the cursor in pixel per second |
|`MOUSEKEY_BASE_SPEED` |1000 |Maximum cursor speed at which acceleration stops |
|`MOUSEKEY_BASE_SPEED` |5000 |Maximum cursor speed at which acceleration stops |
|`MOUSEKEY_DECELERATED_SPEED` |400 |Decelerated cursor speed |
|`MOUSEKEY_ACCELERATED_SPEED` |3000 |Accelerated cursor speed |
|`MOUSEKEY_WHEEL_INITIAL_MOVEMENTS` |16 |Initial number of movements of the mouse wheel |
@@ -100,7 +100,7 @@ This is an extension of the accelerated mode. The kinetic mode uses a quadratic
Tips:
* The smoothness of the cursor movement depends on the `MOUSEKEY_INTERVAL` setting. The shorter the interval is set the smoother the movement will be. Setting the value too low makes the cursor unresponsive. Lower settings are possible if the micro processor is fast enough. For example: At an interval of `8` milliseconds, `125` movements per second will be initiated. With a base speed of `1000` each movement will move the cursor by `8` pixels.
* Mouse wheel movements are implemented differently from cursor movements. While it's okay for the cursor to move multiple pixels at once for the mouse wheel this would lead to jerky movements. Instead, the mouse wheel operates at step size `1`. Setting mouse wheel speed is done by adjusting the number of wheel movements per second.
* Mouse wheel movements are implemented differently from cursor movements. While it's okay for the cursor to move multiple pixels at once for the mouse wheel this would lead to jerky movements. Instead, the mouse wheel operates at step size `2`. Setting mouse wheel speed is done by adjusting the number of wheel movements per second.
### Constant mode

View File

@@ -22,11 +22,11 @@ POINTING_DEVICE_DRIVER = adns5050
The ADNS 5050 sensor uses a serial type protocol for communication, and requires an additional light source.
| Setting | Description |
|--------------------|---------------------------------------------------------------------|
|`ADNS5050_SCLK_PIN` | (Required) The pin connected to the clock pin of the sensor. |
|`ADNS5050_SDIO_PIN` | (Required) The pin connected to the data pin of the sensor. |
|`ADNS5050_CS_PIN` | (Required) The pin connected to the cable select pin of the sensor. |
| Setting | Description |
| ------------------- | ------------------------------------------------------------------- |
| `ADNS5050_SCLK_PIN` | (Required) The pin connected to the clock pin of the sensor. |
| `ADNS5050_SDIO_PIN` | (Required) The pin connected to the data pin of the sensor. |
| `ADNS5050_CS_PIN` | (Required) The pin connected to the cable select pin of the sensor. |
The CPI range is 125-1375, in increments of 125. Defaults to 500 CPI.
@@ -40,13 +40,13 @@ POINTING_DEVICE_DRIVER = adns9800
The ADNS 9800 is an SPI driven optical sensor, that uses laser output for surface tracking.
| Setting | Description | Default |
|--------------------------------|------------------------------------------------------------------------|---------------|
|`ADNS9800_CLOCK_SPEED` | (Optional) Sets the clock speed that the sensor runs at. | `2000000` |
|`ADNS9800_SPI_LSBFIRST` | (Optional) Sets the Least/Most Significant Byte First setting for SPI. | `false` |
|`ADNS9800_SPI_MODE` | (Optional) Sets the SPI Mode for the sensor. | `3` |
|`ADNS9800_SPI_DIVISOR` | (Optional) Sets the SPI Divisor used for SPI communication. | _varies_ |
|`ADNS9800_CS_PIN` | (Required) Sets the Cable Select pin connected to the sensor. | _not defined_ |
| Setting | Description | Default |
| ----------------------- | ---------------------------------------------------------------------- | ------------- |
| `ADNS9800_CLOCK_SPEED` | (Optional) Sets the clock speed that the sensor runs at. | `2000000` |
| `ADNS9800_SPI_LSBFIRST` | (Optional) Sets the Least/Most Significant Byte First setting for SPI. | `false` |
| `ADNS9800_SPI_MODE` | (Optional) Sets the SPI Mode for the sensor. | `3` |
| `ADNS9800_SPI_DIVISOR` | (Optional) Sets the SPI Divisor used for SPI communication. | _varies_ |
| `ADNS9800_CS_PIN` | (Required) Sets the Cable Select pin connected to the sensor. | _not defined_ |
The CPI range is 800-8200, in increments of 200. Defaults to 1800 CPI.
@@ -61,17 +61,16 @@ POINTING_DEVICE_DRIVER = analog_joystick
The Analog Joystick is an analog (ADC) driven sensor. There are a variety of joysticks that you can use for this.
| Setting | Description | Default |
|----------------------------------|----------------------------------------------------------------------------|---------------|
|`ANALOG_JOYSTICK_X_AXIS_PIN` | (Required) The pin used for the vertical/X axis. | _not defined_ |
|`ANALOG_JOYSTICK_Y_AXIS_PIN` | (Required) The pin used for the horizontal/Y axis. | _not defined_ |
|`ANALOG_JOYSTICK_AXIS_MIN` | (Optional) Sets the lower range to be considered movement. | `0` |
|`ANALOG_JOYSTICK_AXIS_MAX` | (Optional) Sets the upper range to be considered movement. | `1023` |
|`ANALOG_JOYSTICK_SPEED_REGULATOR` | (Optional) The divisor used to slow down movement. (lower makes it faster) | `20` |
|`ANALOG_JOYSTICK_READ_INTERVAL` | (Optional) The interval in milliseconds between reads. | `10` |
|`ANALOG_JOYSTICK_SPEED_MAX` | (Optional) The maximum value used for motion. | `2` |
|`ANALOG_JOYSTICK_CLICK_PIN` | (Optional) The pin wired up to the press switch of the analog stick. | _not defined_ |
| Setting | Description | Default |
| --------------------------------- | -------------------------------------------------------------------------- | ------------- |
| `ANALOG_JOYSTICK_X_AXIS_PIN` | (Required) The pin used for the vertical/X axis. | _not defined_ |
| `ANALOG_JOYSTICK_Y_AXIS_PIN` | (Required) The pin used for the horizontal/Y axis. | _not defined_ |
| `ANALOG_JOYSTICK_AXIS_MIN` | (Optional) Sets the lower range to be considered movement. | `0` |
| `ANALOG_JOYSTICK_AXIS_MAX` | (Optional) Sets the upper range to be considered movement. | `1023` |
| `ANALOG_JOYSTICK_SPEED_REGULATOR` | (Optional) The divisor used to slow down movement. (lower makes it faster) | `20` |
| `ANALOG_JOYSTICK_READ_INTERVAL` | (Optional) The interval in milliseconds between reads. | `10` |
| `ANALOG_JOYSTICK_SPEED_MAX` | (Optional) The maximum value used for motion. | `2` |
| `ANALOG_JOYSTICK_CLICK_PIN` | (Optional) The pin wired up to the press switch of the analog stick. | _not defined_ |
### Cirque Trackpad
@@ -90,29 +89,70 @@ POINTING_DEVICE_DRIVER = cirque_pinnacle_spi
This supports the Cirque Pinnacle 1CA027 Touch Controller, which is used in the TM040040, TM035035 and the TM023023 trackpads. These are I2C or SPI compatible, and both configurations are supported.
| Setting | Description | Default |
|---------------------------------|---------------------------------------------------------------------------------|-----------------------|
|`CIRQUE_PINNACLE_X_LOWER` | (Optional) The minimum reachable X value on the sensor. | `127` |
|`CIRQUE_PINNACLE_X_UPPER` | (Optional) The maximum reachable X value on the sensor. | `1919` |
|`CIRQUE_PINNACLE_Y_LOWER` | (Optional) The minimum reachable Y value on the sensor. | `63` |
|`CIRQUE_PINNACLE_Y_UPPER` | (Optional) The maximum reachable Y value on the sensor. | `1471` |
|`CIRQUE_PINNACLE_TAPPING_TERM` | (Optional) Length of time that a touch can be to be considered a tap. | `TAPPING_TERM`/`200` |
|`CIRQUE_PINNACLE_TOUCH_DEBOUNCE` | (Optional) Length of time that a touch can be to be considered a tap. | `TAPPING_TERM`/`200` |
| Setting | Description | Default |
| -------------------------------- | ---------------------------------------------------------- | ------------------ |
| `CIRQUE_PINNACLE_X_LOWER` | (Optional) The minimum reachable X value on the sensor. | `127` |
| `CIRQUE_PINNACLE_X_UPPER` | (Optional) The maximum reachable X value on the sensor. | `1919` |
| `CIRQUE_PINNACLE_Y_LOWER` | (Optional) The minimum reachable Y value on the sensor. | `63` |
| `CIRQUE_PINNACLE_Y_UPPER` | (Optional) The maximum reachable Y value on the sensor. | `1471` |
| `CIRQUE_PINNACLE_DIAMETER_MM` | (Optional) Diameter of the trackpad sensor in millimeters. | `40` |
| `CIRQUE_PINNACLE_ATTENUATION` | (Optional) Sets the attenuation of the sensor data. | `ADC_ATTENUATE_4X` |
| `CIRQUE_PINNACLE_CURVED_OVERLAY` | (Optional) Applies settings tuned for curved overlay. | _not defined_ |
| I2C Setting | Description | Default |
|--------------------------|---------------------------------------------------------------------------------|---------|
|`CIRQUE_PINNACLE_ADDR` | (Required) Sets the I2C Address for the Cirque Trackpad | `0x2A` |
|`CIRQUE_PINNACLE_TIMEOUT` | (Optional) The timeout for i2c communication with the trackpad in milliseconds. | `20` |
**`CIRQUE_PINNACLE_ATTENUATION`** is a measure of how much data is suppressed in regards to sensitivity. The higher the attenuation, the less sensitive the touchpad will be.
| SPI Setting | Description | Default |
|-------------------------------|------------------------------------------------------------------------|---------------|
|`CIRQUE_PINNACLE_CLOCK_SPEED` | (Optional) Sets the clock speed that the sensor runs at. | `1000000` |
|`CIRQUE_PINNACLE_SPI_LSBFIRST` | (Optional) Sets the Least/Most Significant Byte First setting for SPI. | `false` |
|`CIRQUE_PINNACLE_SPI_MODE` | (Optional) Sets the SPI Mode for the sensor. | `1` |
|`CIRQUE_PINNACLE_SPI_DIVISOR` | (Optional) Sets the SPI Divisor used for SPI communication. | _varies_ |
|`CIRQUE_PINNACLE_SPI_CS_PIN` | (Required) Sets the Cable Select pin connected to the sensor. | _not defined_ |
Default attenuation is set to 4X, although if you are using a thicker overlay (such as the curved overlay) you will want a lower attenuation such as 2X. The possible values are:
* `ADC_ATTENUATE_4X`: Least sensitive
* `ADC_ATTENUATE_3X`
* `ADC_ATTENUATE_2X`
* `ADC_ATTENUATE_1X`: Most sensitive
| I2C Setting | Description | Default |
| ------------------------- | ------------------------------------------------------------------------------- | ------- |
| `CIRQUE_PINNACLE_ADDR` | (Required) Sets the I2C Address for the Cirque Trackpad | `0x2A` |
| `CIRQUE_PINNACLE_TIMEOUT` | (Optional) The timeout for i2c communication with the trackpad in milliseconds. | `20` |
| SPI Setting | Description | Default |
| ------------------------------ | ---------------------------------------------------------------------- | ------------- |
| `CIRQUE_PINNACLE_CLOCK_SPEED` | (Optional) Sets the clock speed that the sensor runs at. | `1000000` |
| `CIRQUE_PINNACLE_SPI_LSBFIRST` | (Optional) Sets the Least/Most Significant Byte First setting for SPI. | `false` |
| `CIRQUE_PINNACLE_SPI_MODE` | (Optional) Sets the SPI Mode for the sensor. | `1` |
| `CIRQUE_PINNACLE_SPI_DIVISOR` | (Optional) Sets the SPI Divisor used for SPI communication. | _varies_ |
| `CIRQUE_PINNACLE_SPI_CS_PIN` | (Required) Sets the Cable Select pin connected to the sensor. | _not defined_ |
Default Scaling is 1024. Actual CPI depends on trackpad diameter.
Also see the `POINTING_DEVICE_TASK_THROTTLE_MS`, which defaults to 10ms when using Cirque Pinnacle, which matches the internal update rate of the position registers (in standard configuration). Advanced configuration for pen/stylus usage might require lower values.
#### Cirque Trackpad gestures
| Gesture Setting | Description | Default |
| ---------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------- |
| `POINTING_DEVICE_GESTURES_CURSOR_GLIDE_ENABLE` | (Optional) Enable inertial cursor. Cursor continues moving after a flick gesture and slows down by kinetic friction | _not defined_ |
| `CIRQUE_PINNACLE_CIRCULAR_SCROLL_ENABLE` | (Optional) Enable circular scroll. Touch originating in outer ring can trigger scroll by moving along the perimeter. Near side triggers vertical scroll and far side triggers horizontal scroll. | _not defined_ |
| `CIRQUE_PINNACLE_TAP_ENABLE` | (Optional) Enable tap to click. This currently only works on the master side. | _not defined_ |
| `CIRQUE_PINNACLE_TAPPING_TERM` | (Optional) Length of time that a touch can be to be considered a tap. | `TAPPING_TERM`/`200` |
| `CIRQUE_PINNACLE_TOUCH_DEBOUNCE` | (Optional) Length of time that a touch can be to be considered a tap. | `TAPPING_TERM`/`200` |
**`POINTING_DEVICE_GESTURES_CURSOR_GLIDE_ENABLE`** is not specific to Cirque trackpad; any pointing device with a lift/contact status can integrate this gesture into its driver. e.g. PMW3360 can use Lift_Stat from Motion register. Note that `POINTING_DEVICE_MOTION_PIN` cannot be used with this feature; continuous polling of `pointing_device_get_report()` is needed to generate glide reports.
### PAW 3204 Sensor
To use the paw 3204 sensor, add this to your `rules.mk`
```make
POINTING_DEVICE_DRIVER = paw3204
```
The paw 3204 sensor uses a serial type protocol for communication, and requires an additional light source.
| Setting | Description |
|--------------------|---------------------------------------------------------------------|
|`PAW3204_SCLK_PIN` | (Required) The pin connected to the clock pin of the sensor. |
|`PAW3204_SDIO_PIN` | (Required) The pin connected to the data pin of the sensor. |
The CPI range is 400-1600, with supported values of (400, 500, 600, 800, 1000, 1200 and 1600). Defaults to 1000 CPI.
Default Scaling/CPI is 1024.
### Pimoroni Trackball
@@ -124,60 +164,75 @@ POINTING_DEVICE_DRIVER = pimoroni_trackball
The Pimoroni Trackball module is a I2C based breakout board with an RGB enable trackball.
| Setting | Description | Default |
|-------------------------------------|------------------------------------------------------------------------------------|---------|
|`PIMORONI_TRACKBALL_ADDRESS` | (Required) Sets the I2C Address for the Pimoroni Trackball. | `0x0A` |
|`PIMORONI_TRACKBALL_TIMEOUT` | (Optional) The timeout for i2c communication with the trackball in milliseconds. | `100` |
|`PIMORONI_TRACKBALL_SCALE` | (Optional) The multiplier used to generate reports from the sensor. | `5` |
|`PIMORONI_TRACKBALL_DEBOUNCE_CYCLES` | (Optional) The number of scan cycles used for debouncing on the ball press. | `20` |
|`PIMORONI_TRACKBALL_ERROR_COUNT` | (Optional) Specifies the number of read/write errors until the sensor is disabled. | `10` |
| Setting | Description | Default |
| ------------------------------------ | ---------------------------------------------------------------------------------- | ------- |
| `PIMORONI_TRACKBALL_ADDRESS` | (Required) Sets the I2C Address for the Pimoroni Trackball. | `0x0A` |
| `PIMORONI_TRACKBALL_TIMEOUT` | (Optional) The timeout for i2c communication with the trackball in milliseconds. | `100` |
| `PIMORONI_TRACKBALL_SCALE` | (Optional) The multiplier used to generate reports from the sensor. | `5` |
| `PIMORONI_TRACKBALL_DEBOUNCE_CYCLES` | (Optional) The number of scan cycles used for debouncing on the ball press. | `20` |
| `PIMORONI_TRACKBALL_ERROR_COUNT` | (Optional) Specifies the number of read/write errors until the sensor is disabled. | `10` |
### PMW 3360 Sensor
### PMW 3360 and PMW 3389 Sensor
To use the PMW 3360 sensor, add this to your `rules.mk`
This drivers supports both the PMW 3360 and PMW 3389 sensor as well as multiple sensors of the same type _per_ controller, so 2 can be attached at the same side for split keyboards (or unsplit keyboards).
To use the **PMW 3360** sensor, add this to your `rules.mk`
```make
POINTING_DEVICE_DRIVER = pmw3360
```
The PMW 3360 is an SPI driven optical sensor, that uses a built in IR LED for surface tracking.
| Setting | Description | Default |
|-----------------------------|--------------------------------------------------------------------------------------------|---------------|
|`PMW3360_CS_PIN` | (Required) Sets the Cable Select pin connected to the sensor. | _not defined_ |
|`PMW3360_CLOCK_SPEED` | (Optional) Sets the clock speed that the sensor runs at. | `2000000` |
|`PMW3360_SPI_LSBFIRST` | (Optional) Sets the Least/Most Significant Byte First setting for SPI. | `false` |
|`PMW3360_SPI_MODE` | (Optional) Sets the SPI Mode for the sensor. | `3` |
|`PMW3360_SPI_DIVISOR` | (Optional) Sets the SPI Divisor used for SPI communication. | _varies_ |
|`PMW3360_LIFTOFF_DISTANCE` | (Optional) Sets the lift off distance at run time | `0x02` |
|`ROTATIONAL_TRANSFORM_ANGLE` | (Optional) Allows for the sensor data to be rotated +/- 127 degrees directly in the sensor.| `0` |
|`PMW3360_FIRMWARE_UPLOAD_FAST` | (Optional) Skips the 15us wait between firmware blocks. | _not defined_ |
The CPI range is 100-12000, in increments of 100. Defaults to 1600 CPI.
### PMW 3389 Sensor
To use the PMW 3389 sensor, add this to your `rules.mk`
To use the **PMW 3389** sensor, add this to your `rules.mk`
```make
POINTING_DEVICE_DRIVER = pmw3389
```
The PMW 3389 is an SPI driven optical sensor, that uses a built in IR LED for surface tracking.
| Setting | Description | Default |
|---------------------------------|--------------------------------------------------------------------------------------------|---------------|
|`PMW3389_CS_PIN` | (Required) Sets the Cable Select pin connected to the sensor. | _not defined_ |
|`PMW3389_CLOCK_SPEED` | (Optional) Sets the clock speed that the sensor runs at. | `2000000` |
|`PMW3389_SPI_LSBFIRST` | (Optional) Sets the Least/Most Significant Byte First setting for SPI. | `false` |
|`PMW3389_SPI_MODE` | (Optional) Sets the SPI Mode for the sensor. | `3` |
|`PMW3389_SPI_DIVISOR` | (Optional) Sets the SPI Divisor used for SPI communication. | _varies_ |
|`PMW3389_LIFTOFF_DISTANCE` | (Optional) Sets the lift off distance at run time | `0x02` |
|`ROTATIONAL_TRANSFORM_ANGLE` | (Optional) Allows for the sensor data to be rotated +/- 30 degrees directly in the sensor. | `0` |
|`PMW3389_FIRMWARE_UPLOAD_FAST` | (Optional) Skips the 15us wait between firmware blocks. | _not defined_ |
The CPI range is 50-16000, in increments of 50. Defaults to 2000 CPI.
Both PMW 3360 and PMW 3389 are SPI driven optical sensors, that use a built in IR LED for surface tracking.
| Setting | Description | Default |
| ---------------------------- | ------------------------------------------------------------------------------------------- | ------------- |
| `PMW33XX_CS_PIN` | (Required) Sets the Cable Select pin connected to the sensor. | _not defined_ |
| `PMW33XX_CS_PINS` | (Alternative) Sets the Cable Select pins connected to multiple sensors. | _not defined_ |
| `PMW33XX_CPI` | (Optional) Sets counts per inch sensitivity of the sensor. | _varies_ |
| `PMW33XX_CLOCK_SPEED` | (Optional) Sets the clock speed that the sensor runs at. | `2000000` |
| `PMW33XX_SPI_DIVISOR` | (Optional) Sets the SPI Divisor used for SPI communication. | _varies_ |
| `PMW33XX_LIFTOFF_DISTANCE` | (Optional) Sets the lift off distance at run time | `0x02` |
| `ROTATIONAL_TRANSFORM_ANGLE` | (Optional) Allows for the sensor data to be rotated +/- 127 degrees directly in the sensor. | `0` |
To use multiple sensors, instead of setting `PMW33XX_CS_PIN` you need to set `PMW33XX_CS_PINS` and also handle and merge the read from this sensor in user code.
Note that different (per sensor) values of CPI, speed liftoff, rotational angle or flipping of X/Y is not currently supported.
```c
// in config.h:
#define PMW33XX_CS_PINS { B5, B6 }
// in keyboard.c:
#ifdef POINTING_DEVICE_ENABLE
void pointing_device_init_kb(void) {
pmw33xx_init(1); // index 1 is the second device.
pmw33xx_set_cpi(0, 800); // applies to first sensor
pmw33xx_set_cpi(1, 800); // applies to second sensor
pointing_device_init_user();
}
// Contains report from sensor #0 already, need to merge in from sensor #1
report_mouse_t pointing_device_task_kb(report_mouse_t mouse_report) {
pmw33xx_report_t report = pmw33xx_read_burst(1);
if (!report.motion.b.is_lifted && report.motion.b.is_motion) {
// From quantum/pointing_device_drivers.c
#define constrain_hid(amt) ((amt) < -127 ? -127 : ((amt) > 127 ? 127 : (amt)))
mouse_report.x = constrain_hid(mouse_report.x + report.delta_x);
mouse_report.y = constrain_hid(mouse_report.y + report.delta_y);
}
return pointing_device_task_user(mouse_report);
}
#endif
```
### Custom Driver
@@ -200,15 +255,15 @@ void pointing_device_driver_set_cpi(uint16_t cpi) {}
## Common Configuration
| Setting | Description | Default |
|----------------------------------|-----------------------------------------------------------------------|-------------------|
|`POINTING_DEVICE_ROTATION_90` | (Optional) Rotates the X and Y data by 90 degrees. | _not defined_ |
|`POINTING_DEVICE_ROTATION_180` | (Optional) Rotates the X and Y data by 180 degrees. | _not defined_ |
|`POINTING_DEVICE_ROTATION_270` | (Optional) Rotates the X and Y data by 270 degrees. | _not defined_ |
|`POINTING_DEVICE_INVERT_X` | (Optional) Inverts the X axis report. | _not defined_ |
|`POINTING_DEVICE_INVERT_Y` | (Optional) Inverts the Y axis report. | _not defined_ |
|`POINTING_DEVICE_MOTION_PIN` | (Optional) If supported, will only read from sensor if pin is active. | _not defined_ |
|`POINTING_DEVICE_TASK_THROTTLE_MS` | (Optional) Limits the frequency that the sensor is polled for motion. | _not defined_ |
| Setting | Description | Default |
| ---------------------------------- | --------------------------------------------------------------------- | ------------- |
| `POINTING_DEVICE_ROTATION_90` | (Optional) Rotates the X and Y data by 90 degrees. | _not defined_ |
| `POINTING_DEVICE_ROTATION_180` | (Optional) Rotates the X and Y data by 180 degrees. | _not defined_ |
| `POINTING_DEVICE_ROTATION_270` | (Optional) Rotates the X and Y data by 270 degrees. | _not defined_ |
| `POINTING_DEVICE_INVERT_X` | (Optional) Inverts the X axis report. | _not defined_ |
| `POINTING_DEVICE_INVERT_Y` | (Optional) Inverts the Y axis report. | _not defined_ |
| `POINTING_DEVICE_MOTION_PIN` | (Optional) If supported, will only read from sensor if pin is active. | _not defined_ |
| `POINTING_DEVICE_TASK_THROTTLE_MS` | (Optional) Limits the frequency that the sensor is polled for motion. | _not defined_ |
!> When using `SPLIT_POINTING_ENABLE` the `POINTING_DEVICE_MOTION_PIN` functionality is not supported and `POINTING_DEVICE_TASK_THROTTLE_MS` will default to `1`. Increasing this value will increase transport performance at the cost of possible mouse responsiveness.
@@ -217,24 +272,25 @@ void pointing_device_driver_set_cpi(uint16_t cpi) {}
The following configuration options are only available when using `SPLIT_POINTING_ENABLE` see [data sync options](feature_split_keyboard.md?id=data-sync-options). The rotation and invert `*_RIGHT` options are only used with `POINTING_DEVICE_COMBINED`. If using `POINTING_DEVICE_LEFT` or `POINTING_DEVICE_RIGHT` use the common configuration above to configure your pointing device.
| Setting | Description | Default |
|----------------------------------------|-----------------------------------------------------------------------|---------------|
|`POINTING_DEVICE_LEFT` | Pointing device on the left side (Required - pick one only) | _not defined_ |
|`POINTING_DEVICE_RIGHT` | Pointing device on the right side (Required - pick one only) | _not defined_ |
|`POINTING_DEVICE_COMBINED` | Pointing device on both sides (Required - pick one only) | _not defined_ |
|`POINTING_DEVICE_ROTATION_90_RIGHT` | (Optional) Rotates the X and Y data by 90 degrees. | _not defined_ |
|`POINTING_DEVICE_ROTATION_180_RIGHT` | (Optional) Rotates the X and Y data by 180 degrees. | _not defined_ |
|`POINTING_DEVICE_ROTATION_270_RIGHT` | (Optional) Rotates the X and Y data by 270 degrees. | _not defined_ |
|`POINTING_DEVICE_INVERT_X_RIGHT` | (Optional) Inverts the X axis report. | _not defined_ |
|`POINTING_DEVICE_INVERT_Y_RIGHT` | (Optional) Inverts the Y axis report. | _not defined_ |
| Setting | Description | Default |
| ------------------------------------ | ----------------------------------------------------------------------------------------------------- | ------------- |
| `POINTING_DEVICE_LEFT` | Pointing device on the left side (Required - pick one only) | _not defined_ |
| `POINTING_DEVICE_RIGHT` | Pointing device on the right side (Required - pick one only) | _not defined_ |
| `POINTING_DEVICE_COMBINED` | Pointing device on both sides (Required - pick one only) | _not defined_ |
| `POINTING_DEVICE_ROTATION_90_RIGHT` | (Optional) Rotates the X and Y data by 90 degrees. | _not defined_ |
| `POINTING_DEVICE_ROTATION_180_RIGHT` | (Optional) Rotates the X and Y data by 180 degrees. | _not defined_ |
| `POINTING_DEVICE_ROTATION_270_RIGHT` | (Optional) Rotates the X and Y data by 270 degrees. | _not defined_ |
| `POINTING_DEVICE_INVERT_X_RIGHT` | (Optional) Inverts the X axis report. | _not defined_ |
| `POINTING_DEVICE_INVERT_Y_RIGHT` | (Optional) Inverts the Y axis report. | _not defined_ |
| `MOUSE_EXTENDED_REPORT` | (Optional) Enables support for extended mouse reports. (-32767 to 32767, instead of just -127 to 127) |
!> If there is a `_RIGHT` configuration option or callback, the [common configuration](feature_pointing_device.md?id=common-configuration) option will work for the left. For correct left/right detection you should setup a [handedness option](feature_split_keyboard?id=setting-handedness), `EE_HANDS` is usually a good option for an existing board that doesn't do handedness by hardware.
## Callbacks and Functions
| Function | Description |
|-----------------------------------|----------------------------------------------------------------------------------------------------------------------------------------|
| Function | Description |
| ---------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- |
| `pointing_device_init_kb(void)` | Callback to allow for keyboard level initialization. Useful for additional hardware sensors. |
| `pointing_device_init_user(void)` | Callback to allow for user level initialization. Useful for additional hardware sensors. |
| `pointing_device_task_kb(mouse_report)` | Callback that sends sensor data, so keyboard code can intercept and modify the data. Returns a mouse report. |
@@ -242,11 +298,11 @@ The following configuration options are only available when using `SPLIT_POINTIN
| `pointing_device_handle_buttons(buttons, pressed, button)` | Callback to handle hardware button presses. Returns a `uint8_t`. |
| `pointing_device_get_cpi(void)` | Gets the current CPI/DPI setting from the sensor, if supported. |
| `pointing_device_set_cpi(uint16_t)` | Sets the CPI/DPI, if supported. |
| `pointing_device_get_report(void)` | Returns the current mouse report (as a `mouse_report_t` data structure). |
| `pointing_device_set_report(mouse_report)` | Sets the mouse report to the assigned `mouse_report_t` data structured passed to the function. |
| `pointing_device_send(void)` | Sends the current mouse report to the host system. Function can be replaced. |
| `has_mouse_report_changed(old, new)` | Compares the old and new `mouse_report_t` data and returns true only if it has changed. |
| `pointing_device_adjust_by_defines(mouse_report)` | Applies rotations and invert configurations to a raw mouse report. |
| `pointing_device_get_report(void)` | Returns the current mouse report (as a `mouse_report_t` data structure). |
| `pointing_device_set_report(mouse_report)` | Sets the mouse report to the assigned `mouse_report_t` data structured passed to the function. |
| `pointing_device_send(void)` | Sends the current mouse report to the host system. Function can be replaced. |
| `has_mouse_report_changed(new_report, old_report)` | Compares the old and new `mouse_report_t` data and returns true only if it has changed. |
| `pointing_device_adjust_by_defines(mouse_report)` | Applies rotations and invert configurations to a raw mouse report. |
## Split Keyboard Callbacks and Functions
@@ -254,7 +310,7 @@ The following configuration options are only available when using `SPLIT_POINTIN
The combined functions below are only available when using `SPLIT_POINTING_ENABLE` and `POINTING_DEVICE_COMBINED`. The 2 callbacks `pointing_device_task_combined_*` replace the single sided equivalents above. See the [combined pointing devices example](feature_pointing_device.md?id=combined-pointing-devices)
| Function | Description |
|-----------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------|
| --------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ |
| `pointing_device_set_shared_report(mouse_report)` | Sets the shared mouse report to the assigned `mouse_report_t` data structured passed to the function. |
| `pointing_device_set_cpi_on_side(bool, uint16_t)` | Sets the CPI/DPI of one side, if supported. Passing `true` will set the left and `false` the right` |
| `pointing_device_combine_reports(left_report, right_report)` | Returns a combined mouse_report of left_report and right_report (as a `mouse_report_t` data structure) |
@@ -276,14 +332,14 @@ The report_mouse_t (here "mouseReport") has the following properties:
To manually manipulate the mouse reports outside of the `pointing_device_task_*` functions, you can use:
* `pointing_device_get_report()` - Returns the current report_mouse_t that represents the information sent to the host computer
* `pointing_device_set_report(report_mouse_t newMouseReport)` - Overrides and saves the report_mouse_t to be sent to the host computer
* `pointing_device_set_report(report_mouse_t mouse_report)` - Overrides and saves the report_mouse_t to be sent to the host computer
* `pointing_device_send()` - Sends the mouse report to the host and zeroes out the report.
When the mouse report is sent, the x, y, v, and h values are set to 0 (this is done in `pointing_device_send()`, which can be overridden to avoid this behavior). This way, button states persist, but movement will only occur once. For further customization, both `pointing_device_init` and `pointing_device_task` can be overridden.
Additionally, by default, `pointing_device_send()` will only send a report when the report has actually changed. This prevents it from continuously sending mouse reports, which will keep the host system awake. This behavior can be changed by creating your own `pointing_device_send()` function.
Also, you use the `has_mouse_report_changed(new, old)` function to check to see if the report has changed.
Also, you use the `has_mouse_report_changed(new_report, old_report)` function to check to see if the report has changed.
## Examples
@@ -325,7 +381,8 @@ report_mouse_t pointing_device_task_user(report_mouse_t mouse_report) {
if (set_scrolling) {
mouse_report.h = mouse_report.x;
mouse_report.v = mouse_report.y;
mouse_report.x = mouse_report.y = 0
mouse_report.x = 0;
mouse_report.y = 0;
}
return mouse_report;
}

View File

@@ -86,6 +86,7 @@ You can use between 1 and 4 IS31FL3733 IC's. Do not specify `DRIVER_ADDR_<N>` de
| `ISSI_TIMEOUT` | (Optional) How long to wait for i2c messages, in milliseconds | 100 |
| `ISSI_PERSISTENCE` | (Optional) Retry failed messages this many times | 0 |
| `ISSI_PWM_FREQUENCY` | (Optional) PWM Frequency Setting - IS31FL3733B only | 0 |
| `ISSI_GLOBALCURRENT` | (Optional) Configuration for the Global Current Register | 0xFF |
| `ISSI_SWPULLUP` | (Optional) Set the value of the SWx lines on-chip de-ghosting resistors | PUR_0R (Disabled) |
| `ISSI_CSPULLUP` | (Optional) Set the value of the CSx lines on-chip de-ghosting resistors | PUR_0R (Disabled) |
| `DRIVER_COUNT` | (Required) How many RGB driver IC's are present | |
@@ -171,6 +172,8 @@ Configure the hardware via your `config.h`:
|----------|-------------|---------|
| `ISSI_TIMEOUT` | (Optional) How long to wait for i2c messages, in milliseconds | 100 |
| `ISSI_PERSISTENCE` | (Optional) Retry failed messages this many times | 0 |
| `ISSI_PWM_FREQUENCY` | (Optional) PWM Frequency Setting - IS31FL3737B only | 0 |
| `ISSI_GLOBALCURRENT` | (Optional) Configuration for the Global Current Register | 0xFF |
| `ISSI_SWPULLUP` | (Optional) Set the value of the SWx lines on-chip de-ghosting resistors | PUR_0R (Disabled) |
| `ISSI_CSPULLUP` | (Optional) Set the value of the CSx lines on-chip de-ghosting resistors | PUR_0R (Disabled) |
| `DRIVER_COUNT` | (Required) How many RGB driver IC's are present | |
@@ -408,6 +411,7 @@ You can use up to 2 AW20216 IC's. Do not specify `DRIVER_<N>_xxx` defines for IC
| `DRIVER_LED_TOTAL` | (Required) How many RGB lights are present across all drivers | |
| `AW_SCALING_MAX` | (Optional) LED current scaling value (0-255, higher values mean LED is brighter at full PWM) | 150 |
| `AW_GLOBAL_CURRENT_MAX` | (Optional) Driver global current limit (0-255, higher values means the driver may consume more power) | 150 |
| `AW_SPI_MODE` | (Optional) Mode for SPI communication (0-3, defines polarity and phase of the clock) | 3 |
| `AW_SPI_DIVISOR` | (Optional) Clock divisor for SPI communication (powers of 2, smaller numbers means faster communication, should not be less than 4) | 4 |
Here is an example using 2 drivers.
@@ -519,7 +523,7 @@ All RGB keycodes are currently shared with the RGBLIGHT system:
|`RGB_VAD` | |Decrease value (brightness), increase value when Shift is held |
|`RGB_SPI` | |Increase effect speed (does not support eeprom yet), decrease speed when Shift is held|
|`RGB_SPD` | |Decrease effect speed (does not support eeprom yet), increase speed when Shift is held|
|`RGB_MODE_PLAIN` |`RGB_M_P `|Static (no animation) mode |
|`RGB_MODE_PLAIN` |`RGB_M_P` |Static (no animation) mode |
|`RGB_MODE_BREATHE` |`RGB_M_B` |Breathing animation mode |
|`RGB_MODE_RAINBOW` |`RGB_M_R` |Full gradient scrolling left to right (uses the `RGB_MATRIX_CYCLE_LEFT_RIGHT` mode) |
|`RGB_MODE_SWIRL` |`RGB_M_SW`|Full gradient spinning pinwheel around center of keyboard (uses `RGB_MATRIX_CYCLE_PINWHEEL` mode) |
@@ -656,18 +660,44 @@ You can enable a single effect by defining `ENABLE_[EFFECT_NAME]` in your `confi
### RGB Matrix Effect Typing Heatmap :id=rgb-matrix-effect-typing-heatmap
This effect will color the RGB matrix according to a heatmap of recently pressed
keys. Whenever a key is pressed its "temperature" increases as well as that of
its neighboring keys. The temperature of each key is then decreased
automatically every 25 milliseconds by default.
This effect will color the RGB matrix according to a heatmap of recently pressed keys. Whenever a key is pressed its "temperature" increases as well as that of its neighboring keys. The temperature of each key is then decreased automatically every 25 milliseconds by default.
In order to change the delay of temperature decrease define
`RGB_MATRIX_TYPING_HEATMAP_DECREASE_DELAY_MS`:
In order to change the delay of temperature decrease define `RGB_MATRIX_TYPING_HEATMAP_DECREASE_DELAY_MS`:
```c
#define RGB_MATRIX_TYPING_HEATMAP_DECREASE_DELAY_MS 50
```
As heatmap uses the physical position of the leds set in the g_led_config, you may need to tweak the following options to get the best effect for your keyboard. Note the size of this grid is `224x64`.
Limit the distance the effect spreads to surrounding keys.
```c
#define RGB_MATRIX_TYPING_HEATMAP_SPREAD 40
```
Limit how hot surrounding keys get from each press.
```c
#define RGB_MATRIX_TYPING_HEATMAP_AREA_LIMIT 16
```
Remove the spread effect entirely.
```c
#define RGB_MATRIX_TYPING_HEATMAP_SLIM
```
### RGB Matrix Effect Solid Reactive :id=rgb-matrix-effect-solid-reactive
Solid reactive effects will pulse RGB light on key presses with user configurable hues. To enable gradient mode that will automatically change reactive color, add the following define:
```c
#define RGB_MATRIX_SOLID_REACTIVE_GRADIENT_MODE
```
Gradient mode will loop through the color wheel hues over time and its duration can be controlled with the effect speed keycodes (`RGB_SPI`/`RGB_SPD`).
## Custom RGB Matrix Effects :id=custom-rgb-matrix-effects
By setting `RGB_MATRIX_CUSTOM_USER = yes` in `rules.mk`, new effects can be defined directly from your keymap or userspace, without having to edit any QMK core files. To declare new effects, create a `rgb_matrix_user.inc` file in the user keymap directory or userspace folder.
@@ -775,6 +805,7 @@ These are defined in [`color.h`](https://github.com/qmk/qmk_firmware/blob/master
#define RGB_MATRIX_DISABLE_KEYCODES // disables control of rgb matrix by keycodes (must use code functions to control the feature)
#define RGB_MATRIX_SPLIT { X, Y } // (Optional) For split keyboards, the number of LEDs connected on each half. X = left, Y = Right.
// If RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is enabled, you also will want to enable SPLIT_TRANSPORT_MIRROR
#define RGB_TRIGGER_ON_KEYDOWN // Triggers RGB keypress events on key down. This makes RGB control feel more responsive. This may cause RGB to not function properly on some boards
```
## EEPROM storage :id=eeprom-storage

View File

@@ -326,6 +326,19 @@ void post_process_record_user(uint16_t keycode, keyrecord_t *record) {
```
would turn the layer 0 (or 1) on and off again three times when `DEBUG` is pressed.
Blinking accumulates layers so if multiple layers are set blinking at the same time they will all blink for the duration and repeat times of the last layer to be blinked.
To stop these other layers from blinking use `rgblight_unblink_layer` or `rgblight_unblink_all_but_layer`:
```c
rgblight_blink_layer(1, 500);
rgblight_unblink_all_but_layer(1);
```
```c
rgblight_unblink_layer(3);
rgblight_blink_layer(2, 500);
```
!> Lighting layers on split keyboards will require layer state synced to the slave half (e.g. `#define SPLIT_LAYER_STATE_ENABLE`). See [data sync options](feature_split_keyboard.md#data-sync-options) for more details.
### Overriding RGB Lighting on/off status

54
docs/feature_secure.md Normal file
View File

@@ -0,0 +1,54 @@
# Secure
The secure feature aims to prevent unwanted interaction without user intervention.
?> Secure does **not** currently implement encryption/decryption/etc and should not be a replacement where a strong hardware/software based solution is required.
### Unlock sequence
To unlock, the user must perform a set of actions. This can optionally be configured to be multiple keys.
* While unlocking all keyboard input is ignored
* Incorrect attempts will revert back to the previously locked state
### Automatic Locking
Once unlocked, the keyboard will revert back to a locked state after the configured timeout.
The timeout can be refreshed by using the `secure_activity_event` function, for example from one of the various [hooks](custom_quantum_functions.md).
## Usage
Add the following to your `rules.mk`:
```make
SECURE_ENABLE = yes
```
## Keycodes
| Key | Description |
|------------------|--------------------------------------------------------------------------------|
| `SECURE_LOCK` | Revert back to a locked state |
| `SECURE_UNLOCK` | Forces unlock without performing a unlock sequence |
| `SECURE_TOGGLE` | Toggle directly between locked and unlock without performing a unlock sequence |
| `SECURE_REQUEST` | Request that user perform the unlock sequence |
## Configuration
| Define | Default | Description |
|-------------------------|----------------|---------------------------------------------------------------------------------|
|`SECURE_UNLOCK_TIMEOUT` | `5000` | Timeout for the user to perform the configured unlock sequence - `0` to disable |
|`SECURE_IDLE_TIMEOUT` | `60000` | Timeout while unlocked before returning to locked - `0` to disable |
|`SECURE_UNLOCK_SEQUENCE` | `{ { 0, 0 } }` | Array of matrix locations describing a sequential sequence of keypresses |
## Functions
| Function | Description |
|---------------------------|----------------------------------------------------------------------------|
| `secure_is_locked()` | Check if the device is currently locked |
| `secure_is_unlocking()` | Check if an unlock sequence is currently in progress |
| `secure_is_unlocked()` | Check if the device is currently unlocked |
| `secure_lock()` | Lock down the device |
| `secure_unlock()` | Force unlock the device - bypasses user unlock sequence |
| `secure_request_unlock()` | Begin listening for an unlock sequence |
| `secure_activity_event()` | Flag that user activity has happened and the device should remain unlocked |

224
docs/feature_send_string.md Normal file
View File

@@ -0,0 +1,224 @@
# Send String
The Send String API is part of QMK's macro system. It allows for sequences of keystrokes to be sent automatically.
The full ASCII character set is supported, along with all of the keycodes in the Basic Keycode range (as these are the only ones that will actually be sent to the host).
?> Unicode characters are **not** supported with this API -- see the [Unicode](feature_unicode.md) feature instead.
## Usage
Send String is enabled by default, so there is usually no need for any special setup. However, if it is disabled, add the following to your `rules.mk`:
```make
SEND_STRING_ENABLE = yes
```
## Basic Configuration
Add the following to your `config.h`:
|Define |Default |Description |
|-----------------|----------------|------------------------------------------------------------------------------------------------------------|
|`SENDSTRING_BELL`|*Not defined* |If the [Audio](feature_audio.md) feature is enabled, the `\a` character (ASCII `BEL`) will beep the speaker.|
|`BELL_SOUND` |`TERMINAL_SOUND`|The song to play when the `\a` character is encountered. By default, this is an eighth note of C5. |
## Keycodes
The Send String functions accept C string literals, but specific keycodes can be injected with the below macros. All of the keycodes in the [Basic Keycode range](keycodes_basic.md) are supported (as these are the only ones that will actually be sent to the host), but with an `X_` prefix instead of `KC_`.
|Macro |Description |
|--------------|-------------------------------------------------------------------|
|`SS_TAP(x)` |Send a keydown, then keyup, event for the given Send String keycode|
|`SS_DOWN(x)` |Send a keydown event for the given Send String keycode |
|`SS_UP(x)` |Send a keyup event for the given Send String keycode |
|`SS_DELAY(ms)`|Wait for `ms` milliseconds |
The following characters are also mapped to their respective keycodes for convenience:
|Character|Hex |ASCII|Keycode |
|---------|------|-----|--------------|
|`\b` |`\x08`|`BS` |`KC_BACKSPACE`|
|`\e` |`\x09`|`ESC`|`KC_ESCAPE` |
|`\n` |`\x0A`|`LF` |`KC_ENTER` |
|`\t` |`\x1B`|`TAB`|`KC_TAB` |
| |`\x7F`|`DEL`|`KC_DELETE` |
### Language Support
By default, Send String assumes your OS keyboard layout is set to US ANSI. If you are using a different keyboard layout, you can [override the lookup tables used to convert ASCII characters to keystrokes](reference_keymap_extras.md#sendstring-support).
## Examples
### Hello World
A simple custom keycode which types out "Hello, world!" and the Enter key when pressed.
Add the following to your `keymap.c`:
```c
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case SS_HELLO:
if (record->event.pressed) {
SEND_STRING("Hello, world!\n");
}
return false;
}
return true;
}
```
### Keycode Injection
This example types out opening and closing curly braces, then taps the left arrow key to move the cursor between the two.
```c
SEND_STRING("{}" SS_TAP(X_LEFT));
```
This example types Ctrl+A, then Ctrl+C, without releasing Ctrl.
```c
SEND_STRING(SS_LCTL("ac"));
```
## API
### `void send_string(const char *string)`
Type out a string of ASCII characters.
This function simply calls `send_string_with_delay(string, 0)`.
#### Arguments
- `const char *string`
The string to type out.
---
### `void send_string_with_delay(const char *string, uint8_t interval)`
Type out a string of ASCII characters, with a delay between each character.
#### Arguments
- `const char *string`
The string to type out.
- `uint8_t interval`
The amount of time, in milliseconds, to wait before typing the next character.
---
### `void send_string_P(const char *string)`
Type out a PROGMEM string of ASCII characters.
On ARM devices, this function is simply an alias for `send_string_with_delay(string, 0)`.
#### Arguments
- `const char *string`
The string to type out.
---
### `void send_string_with_delay_P(const char *string, uint8_t interval)`
Type out a PROGMEM string of ASCII characters, with a delay between each character.
On ARM devices, this function is simply an alias for `send_string_with_delay(string, interval)`.
#### Arguments
- `const char *string`
The string to type out.
- `uint8_t interval`
The amount of time, in milliseconds, to wait before typing the next character.
---
### `void send_char(char ascii_code)`
Type out an ASCII character.
#### Arguments
- `char ascii_code`
The character to type.
---
### `void send_dword(uint32_t number)`
Type out an eight digit (unsigned 32-bit) hexadecimal value.
The format is `[0-9a-f]{8}`, eg. `00000000` through `ffffffff`.
#### Arguments
- `uint32_t number`
The value to type, from 0 to 4,294,967,295.
---
### `void send_word(uint16_t number)`
Type out a four digit (unsigned 16-bit) hexadecimal value.
The format is `[0-9a-f]{4}`, eg. `0000` through `ffff`.
#### Arguments
- `uint16_t number`
The value to type, from 0 to 65,535.
---
### `void send_byte(uint8_t number)`
Type out a two digit (8-bit) hexadecimal value.
The format is `[0-9a-f]{2}`, eg. `00` through `ff`.
#### Arguments
- `uint8_t number`
The value to type, from 0 to 255.
---
### `void send_nibble(uint8_t number)`
Type out a single hexadecimal digit.
The format is `[0-9a-f]{1}`, eg. `0` through `f`.
#### Arguments
- `uint8_t number`
The value to type, from 0 to 15.
---
### `void tap_random_base64(void)`
Type a pseudorandom character from the set `A-Z`, `a-z`, `0-9`, `+` and `/`.
---
### `SEND_STRING(string)`
Shortcut macro for `send_string_with_delay_P(PSTR(string), 0)`.
On ARM devices, this define evaluates to `send_string_with_delay(string, 0)`.
---
### `SEND_STRING_DELAY(string, interval)`
Shortcut macro for `send_string_with_delay_P(PSTR(string), interval)`.
On ARM devices, this define evaluates to `send_string_with_delay(string, interval)`.

View File

@@ -10,6 +10,8 @@ For this, we will mostly be talking about the generic implementation used by the
!> ARM split supports most QMK subsystems when using the 'serial' and 'serial_usart' drivers. I2C slave is currently unsupported.
!> Both sides must use the same MCU family, for eg two Pro Micro-compatible controllers or two Blackpills. Currently, mixing AVR and ARM is not possible as ARM vs AVR uses different method for serial communication, and are not compatible. Moreover Blackpill's uses 3.3v logic, and atmega32u4 uses 5v logic.
## Compatibility Overview
| Transport | AVR | ARM |
@@ -141,6 +143,9 @@ Next, you will have to flash the EEPROM files once for the correct hand to the c
* ARM controllers with a DFU compatible bootloader (e.g. Proton-C):
* `:dfu-util-split-left`
* `:dfu-util-split-right`
* ARM controllers with a UF2 compatible bootloader:
* `:uf2-split-left`
* `:uf2-split-right`
Example:
@@ -365,7 +370,7 @@ There are some settings that you may need to configure, based on how the hardwar
#define MATRIX_COL_PINS_RIGHT { <col pins> }
```
This allows you to specify a different set of pins for the matrix on the right side. This is useful if you have a board with differently-shaped halves that requires a different configuration (such as Keebio's Quefrency).
This allows you to specify a different set of pins for the matrix on the right side. This is useful if you have a board with differently-shaped halves that requires a different configuration (such as Keebio's Quefrency). The number of pins in the right and left matrices must be the same, if you have a board with a different number of rows or columns on one side, pad out the extra spaces with `NO_PIN` and make sure you add the unused rows or columns to your matrix.
```c
#define DIRECT_PINS_RIGHT { { F1, F0, B0, C7 }, { F4, F5, F6, F7 } }

View File

@@ -8,46 +8,107 @@ The [Open Steno Project](https://www.openstenoproject.org/) has built an open-so
Plover can work with any standard QWERTY keyboard, although it is more efficient if the keyboard supports NKRO (n-key rollover) to allow Plover to see all the pressed keys at once. An example keymap for Plover can be found in `planck/keymaps/default`. Switching to the `PLOVER` layer adjusts the position of the keyboard to support the number bar.
To use Plover with QMK just enable NKRO and optionally adjust your layout if you have anything other than a standard layout. You may also want to purchase some steno-friendly keycaps to make it easier to hit multiple keys.
To enable NKRO, add `NKRO_ENABLE = yes` in your `rules.mk` and make sure to press `NK_ON` to turn it on because `NKRO_ENABLE = yes` merely adds the possibility of switching to NKRO mode but it doesn't automatically switch to it. If you want to automatically switch, add `#define FORCE_NKRO` in your `config.h`.
You may also need to adjust your layout, either in QMK or in Plover, if you have anything other than a standard layout. You may also want to purchase some steno-friendly keycaps to make it easier to hit multiple keys.
## Plover with Steno Protocol :id=plover-with-steno-protocol
Plover also understands the language of several steno machines. QMK can speak a couple of these languages, TX Bolt and GeminiPR. An example layout can be found in `planck/keymaps/steno`.
Plover also understands the language of several steno machines. QMK can speak a couple of these languages: TX Bolt and GeminiPR. An example layout can be found in `planck/keymaps/steno`.
When QMK speaks to Plover over a steno protocol Plover will not use the keyboard as input. This means that you can switch back and forth between a standard keyboard and your steno keyboard, or even switch layers from Plover to standard and back without needing to activate/deactivate Plover.
When QMK speaks to Plover over a steno protocol, Plover will not use the keyboard as input. This means that you can switch back and forth between a standard keyboard and your steno keyboard, or even switch layers from Plover to standard and back without needing to activate/deactivate Plover.
In this mode Plover expects to speak with a steno machine over a serial port so QMK will present itself to the operating system as a virtual serial port in addition to a keyboard. By default QMK will speak the TX Bolt protocol but can be switched to GeminiPR; the last protocol used is stored in non-volatile memory so QMK will use the same protocol on restart.
In this mode, Plover expects to speak with a steno machine over a serial port so QMK will present itself to the operating system as a virtual serial port in addition to a keyboard.
> Note: Due to hardware limitations you may not be able to run both a virtual serial port and mouse emulation at the same time.
> Note: Due to hardware limitations, you might not be able to run both a virtual serial port and mouse emulation at the same time.
!> Serial stenography protocols are not supported on [V-USB keyboards](compatible_microcontrollers#atmel-avr).
To enable stenography protocols, add the following lines to your `rules.mk`:
```mk
STENO_ENABLE = yes
```
### TX Bolt :id=tx-bolt
TX Bolt communicates the status of 24 keys over a very simple protocol in variable-sized (1-5 byte) packets.
TX Bolt communicates the status of 24 keys over a simple protocol in variable-sized (1&ndash;4 bytes) packets.
To select TX Bolt, add the following lines to your `rules.mk`:
```mk
STENO_ENABLE = yes
STENO_PROTOCOL = txbolt
```
Each byte of the packet represents a different group of steno keys. Determining the group of a certain byte of the packet is done by checking the first two bits, the remaining bits are set if the corresponding steno key was pressed for the stroke. The last set of keys (as indicated by leading `11`) needs to keep track of less keys than there are bits so one of the bits is constantly 0.
The start of a new packet can be detected by comparing the group “ID” (the two MSBs) of the current byte to that of the previously received byte. If the group “ID” of the current byte is smaller or equal to that of the previous byte, it means that the current byte is the beginning of a new packet.
The format of TX Bolt packets is shown below.
```
00HWPKTS 01UE*OAR 10GLBPRF 110#ZDST
```
Examples of steno strokes and the associated packet:
- `EUBG` = `01110000 10101000`
- `WAZ` = `00010000 01000010 11001000`
- `PHAPBGS` = `00101000 01000010 10101100 11000010`
### GeminiPR :id=geminipr
GeminiPR encodes 42 keys into a 6-byte packet. While TX Bolt contains everything that is necessary for standard stenography, GeminiPR opens up many more options, including supporting non-English theories.
GeminiPR encodes 42 keys into a 6-byte packet. While TX Bolt contains everything that is necessary for standard stenography, GeminiPR opens up many more options, including differentiating between top and bottom `S-`, and supporting non-English theories.
To select GeminiPR, add the following lines to your `rules.mk`:
```mk
STENO_ENABLE = yes
STENO_PROTOCOL = geminipr
```
All packets in the GeminiPR protocol consist of exactly six bytes, used as bit-arrays for different groups of keys. The beginning of a packet is indicated by setting the most significant bit (MSB) to 1 while setting the MSB of the remaining five bytes to 0.
The format of GeminiPR packets is shown below.
```
1 Fn #1 #2 #3 #4 #5 #6
0 S1- S2- T- K- P- W- H-
0 R- A- O- *1 *2 res1 res2
0 pwr *3 *4 -E -U -F -R
0 -P -B -L -G -T -S -D
0 #7 #8 #9 #A #B #C -Z
```
Examples of steno strokes and the associated packet:
- `EUBG` = `10000000 00000000 00000000 00001100 00101000 00000000`
- `WAZ` = `10000000 00000010 00100000 00000000 00000000 00000001`
- `PHAPBGS` = `10000000 00000101 00100000 00000000 01101010 00000000`
### Switching protocols on the fly :id=switching-protocols-on-the-fly
If you wish to switch the serial protocol used to transfer the steno chords without having to recompile your keyboard firmware every time, you can press the `QK_STENO_BOLT` and `QK_STENO_GEMINI` keycodes in order to switch protocols on the fly.
To enable these special keycodes, add the following lines to your `rules.mk`:
```mk
STENO_ENABLE = yes
STENO_PROTOCOL = all
```
If you want to switch protocols programatically, as part of a custom macro for example, don't use `tap_code(QK_STENO_*)`, as `tap_code` only supports [basic keycodes](keycodes_basic). Instead, you should use `steno_set_mode(STENO_MODE_*)`, whose valid arguments are `STENO_MODE_BOLT` and `STENO_MODE_GEMINI`.
The default protocol is Gemini PR but the last protocol used is stored in non-volatile memory so QMK will remember your choice between reboots of your keyboard &mdash; assuming that your keyboard features (emulated) EEPROM.
Naturally, this option takes the most amount of firmware space as it needs to compile the code for all the available stenography protocols. In most cases, compiling a single stenography protocol is sufficient.
The default value for `STENO_PROTOCOL` is `all`.
## Configuring QMK for Steno :id=configuring-qmk-for-steno
Firstly, enable steno in your keymap's Makefile. You may also need disable mousekeys, extra keys, or another USB endpoint to prevent conflicts. The builtin USB stack for some processors only supports a certain number of USB endpoints and the virtual serial port needed for steno fills 3 of them.
After enabling stenography and optionally selecting a protocol, you may also need disable mouse keys, extra keys, or another USB endpoint to prevent conflicts. The builtin USB stack for some processors only supports a certain number of USB endpoints and the virtual serial port needed for steno fills 3 of them.
```make
STENO_ENABLE = yes
MOUSEKEY_ENABLE = no
```
!> If you had *explicitly* set `VIRSTER_ENABLE = no`, none of the serial stenography protocols (GeminiPR, TX Bolt) will work properly. You are expected to either set it to `yes`, remove the line from your `rules.mk` or send the steno chords yourself in an alternative way using the [provided interceptable hooks](#interfacing-with-the-code).
In your keymap create a new layer for Plover. You will need to include `keymap_steno.h`. See `planck/keymaps/steno/keymap.c` for an example. Remember to create a key to switch to the layer as well as a key for exiting the layer. If you would like to switch modes on the fly you can use the keycodes `QK_STENO_BOLT` and `QK_STENO_GEMINI`. If you only want to use one of the protocols you may set it up in your initialization function:
In your keymap, create a new layer for Plover, that you can fill in with the [steno keycodes](#keycode-reference) (you will need to include `keymap_steno.h`, see `planck/keymaps/steno/keymap.c` for an example). Remember to create a key to switch to the layer as well as a key for exiting the layer.
```c
void eeconfig_init_user() {
steno_set_mode(STENO_MODE_GEMINI); // or STENO_MODE_BOLT
}
```
Once you have your keyboard flashed, launch Plover. Click the 'Configure...' button. In the 'Machine' tab, select the Stenotype Machine that corresponds to your desired protocol. Click the 'Configure...' button on this tab and enter the serial port or click 'Scan'. Baud rate is fine at 9600 (although you should be able to set as high as 115200 with no issues). Use the default settings for everything else (Data Bits: 8, Stop Bits: 1, Parity: N, no flow control).
Once you have your keyboard flashed launch Plover. Click the 'Configure...' button. In the 'Machine' tab select the Stenotype Machine that corresponds to your desired protocol. Click the 'Configure...' button on this tab and enter the serial port or click 'Scan'. Baud rate is fine at 9600 (although you should be able to set as high as 115200 with no issues). Use the default settings for everything else (Data Bits: 8, Stop Bits: 1, Parity: N, no flow control).
On the display tab click 'Open stroke display'. With Plover disabled you should be able to hit keys on your keyboard and see them show up in the stroke display window. Use this to make sure you have set up your keymap correctly. You are now ready to steno!
To test your keymap, you can chord keys on your keyboard and either look at the output of the 'paper tape' (Tools > Paper Tape) or that of the 'layout display' (Tools > Layout Display). If your strokes correctly show up, you are now ready to steno!
## Learning Stenography :id=learning-stenography
@@ -60,7 +121,7 @@ On the display tab click 'Open stroke display'. With Plover disabled you should
The steno code has three interceptable hooks. If you define these functions, they will be called at certain points in processing; if they return true, processing continues, otherwise it's assumed you handled things.
```c
bool send_steno_chord_user(steno_mode_t mode, uint8_t chord[6]);
bool send_steno_chord_user(steno_mode_t mode, uint8_t chord[MAX_STROKE_SIZE]);
```
This function is called when a chord is about to be sent. Mode will be one of `STENO_MODE_BOLT` or `STENO_MODE_GEMINI`. This represents the actual chord that would be sent via whichever protocol. You can modify the chord provided to alter what gets sent. Remember to return true if you want the regular sending process to happen.
@@ -72,15 +133,23 @@ bool process_steno_user(uint16_t keycode, keyrecord_t *record) { return true; }
This function is called when a keypress has come in, before it is processed. The keycode should be one of `QK_STENO_BOLT`, `QK_STENO_GEMINI`, or one of the `STN_*` key values.
```c
bool postprocess_steno_user(uint16_t keycode, keyrecord_t *record, steno_mode_t mode, uint8_t chord[6], int8_t pressed);
bool postprocess_steno_user(uint16_t keycode, keyrecord_t *record, steno_mode_t mode, uint8_t chord[MAX_STROKE_SIZE], int8_t n_pressed_keys);
```
This function is called after a key has been processed, but before any decision about whether or not to send a chord. If `IS_PRESSED(record->event)` is false, and `pressed` is 0 or 1, the chord will be sent shortly, but has not yet been sent. This is where to put hooks for things like, say, live displays of steno chords or keys.
This function is called after a key has been processed, but before any decision about whether or not to send a chord. This is where to put hooks for things like, say, live displays of steno chords or keys.
If `IS_PRESSED(record->event)` is false, and `n_pressed_keys` is 0 or 1, the chord will be sent shortly, but has not yet been sent. This relieves you of the need of keeping track of where a packet ends and another begins.
The `chord` argument contains the packet of the current chord as specified by the protocol in use. This is *NOT* simply a list of chorded steno keys of the form `[STN_E, STN_U, STN_BR, STN_GR]`. Refer to the appropriate protocol section of this document to learn more about the format of the packets in your steno protocol/mode of choice.
The `n_pressed_keys` argument is the number of physical keys actually being held down.
This is not always equal to the number of bits set to 1 (aka the [Hamming weight](https://en.wikipedia.org/wiki/Hamming_weight)) in `chord` because it is possible to simultaneously press down four keys, then release three of those four keys and then press yet another key while the fourth finger is still holding down its key.
At the end of this scenario given as an example, `chord` would have five bits set to 1 but
`n_pressed_keys` would be set to 2 because there are only two keys currently being pressed down.
## Keycode Reference :id=keycode-reference
As defined in `keymap_steno.h`.
You must include `keymap_steno.h` to your `keymap.c` with `#include "keymap_steno.h"` before you can use these keycodes
> Note: TX Bolt does not support the full set of keys. The TX Bolt implementation in QMK will map the GeminiPR keys to the nearest TX Bolt key so that one key map will work for both.
@@ -115,8 +184,8 @@ As defined in `keymap_steno.h`.
|`STN_E`|`STN_E`| `E` vowel|
|`STN_U`|`STN_U`| `U` vowel|
|`STN_FR`|`STN_FR`| `-F`|
|`STN_PR`|`STN_PR`| `-P`|
|`STN_RR`|`STN_RR`| `-R`|
|`STN_PR`|`STN_PR`| `-P`|
|`STN_BR`|`STN_BR`| `-B`|
|`STN_LR`|`STN_LR`| `-L`|
|`STN_GR`|`STN_GR`| `-G`|
@@ -124,10 +193,10 @@ As defined in `keymap_steno.h`.
|`STN_SR`|`STN_SR`| `-S`|
|`STN_DR`|`STN_DR`| `-D`|
|`STN_ZR`|`STN_ZR`| `-Z`|
|`STN_FN`|| (GeminiPR only)|
|`STN_RES1`||(GeminiPR only)|
|`STN_RES2`||(GeminiPR only)|
|`STN_PWR`||(GeminiPR only)|
|`STN_FN`|| (Function)|
|`STN_RES1`||(Reset 1)|
|`STN_RES2`||(Reset 2)|
|`STN_PWR`||(Power)|
If you do not want to hit two keys with one finger combined keycodes can be used. These are also defined in `keymap_steno.h`, and causes both keys to be reported as pressed or released. To use these keycodes define `STENO_COMBINEDMAP` in your `config.h` file.

View File

@@ -31,3 +31,16 @@ Note that the array indices are reversed same as the matrix and the values are o
|`SH_OS` |One shot swap hands: toggles while pressed or until next key press. |
`SH_TT` swap-hands tap-toggle key is similar to [layer tap-toggle](feature_layers.md?id=switching-and-toggling-layers). Tapping repeatedly (5 taps by default) will toggle swap-hands on or off, like `SH_TG`. Tap-toggle count can be changed by defining a value for `TAPPING_TOGGLE`.
## Encoder Mapping
When using an encoder mapping, it's also able to handle swapping encoders between sides, too.
Encoder indexes are defined as left-to-right, and the extent of the array needs to match the number of encoders on the keyboard.
As an example, if a split keyboard has a single encoder per side, you can swap the order by using the following code in your keymap:
```c
#if defined(SWAP_HANDS_ENABLE) && defined(ENCODER_MAP_ENABLE)
const uint8_t PROGMEM encoder_hand_swap_config[NUM_ENCODERS] = { 1, 0 };
#endif
```

View File

@@ -14,55 +14,48 @@ Optionally, you might want to set a custom `TAPPING_TERM` time by adding somethi
```c
#define TAPPING_TERM 175
#define TAPPING_TERM_PER_KEY
```
The `TAPPING_TERM` time is the maximum time allowed between taps of your Tap Dance key, and is measured in milliseconds. For example, if you used the above `#define` statement and set up a Tap Dance key that sends `Space` on single-tap and `Enter` on double-tap, then this key will send `ENT` only if you tap this key twice in less than 175ms. If you tap the key, wait more than 175ms, and tap the key again you'll end up sending `SPC SPC` instead.
The `TAPPING_TERM` time is the maximum time allowed between taps of your Tap Dance key, and is measured in milliseconds. For example, if you used the above `#define` statement and set up a Tap Dance key that sends `Space` on single-tap and `Enter` on double-tap, then this key will send `ENT` only if you tap this key twice in less than 175ms. If you tap the key, wait more than 175ms, and tap the key again you'll end up sending `SPC SPC` instead. The `TAPPING_TERM_PER_KEY` definition is only needed if you control the tapping term through a [custom `get_tapping_term` function](tap_hold.md#tapping_term), which may be needed because `TAPPING_TERM` affects not just tap-dance keys.
Next, you will want to define some tap-dance keys, which is easiest to do with the `TD()` macro, that takes a number which will later be used as an index into the `tap_dance_actions` array.
Next, you will want to define some tap-dance keys, which is easiest to do with the `TD()` macro. That macro takes a number which will later be used as an index into the `tap_dance_actions` array and turns it into a tap-dance keycode.
After this, you'll want to use the `tap_dance_actions` array to specify what actions shall be taken when a tap-dance key is in action. Currently, there are five possible options:
* `ACTION_TAP_DANCE_DOUBLE(kc1, kc2)`: Sends the `kc1` keycode when tapped once, `kc2` otherwise. When the key is held, the appropriate keycode is registered: `kc1` when pressed and held, `kc2` when tapped once, then pressed and held.
* `ACTION_TAP_DANCE_LAYER_MOVE(kc, layer)`: Sends the `kc` keycode when tapped once, or moves to `layer`. (this functions like the `TO` layer keycode).
* This is the same as `ACTION_TAP_DANCE_DUAL_ROLE`, but renamed to something that is clearer about its functionality. Both names will work.
* `ACTION_TAP_DANCE_LAYER_TOGGLE(kc, layer)`: Sends the `kc` keycode when tapped once, or toggles the state of `layer`. (this functions like the `TG` layer keycode).
* `ACTION_TAP_DANCE_FN(fn)`: Calls the specified function - defined in the user keymap - with the final tap count of the tap dance action.
* `ACTION_TAP_DANCE_FN_ADVANCED(on_each_tap_fn, on_dance_finished_fn, on_dance_reset_fn)`: Calls the first specified function - defined in the user keymap - on every tap, the second function when the dance action finishes (like the previous option), and the last function when the tap dance action resets.
* ~~`ACTION_TAP_DANCE_FN_ADVANCED_TIME(on_each_tap_fn, on_dance_finished_fn, on_dance_reset_fn, tap_specific_tapping_term)`~~: This functions identically to the `ACTION_TAP_DANCE_FN_ADVANCED` function, but uses a custom tapping term for it, instead of the predefined `TAPPING_TERM`.
* This is deprecated in favor of the Per Key Tapping Term functionality, as outlined [here](tap_hold.md#tapping-term). You'd want to check for the specific `TD()` macro that you want to use (such as `TD(TD_ESC_CAPS)`) instead of using this specific Tap Dance function.
The first option is enough for a lot of cases, that just want dual roles. For example, `ACTION_TAP_DANCE_DOUBLE(KC_SPC, KC_ENT)` will result in `Space` being sent on single-tap, `Enter` otherwise.
!> Keep in mind that only [basic keycodes](keycodes_basic.md) are supported here. Custom keycodes are not supported.
Similar to the first option, the second option is good for simple layer-switching cases.
Similar to the first option, the second and third option are good for simple layer-switching cases.
For more complicated cases, use the third or fourth options (examples of each are listed below).
Finally, the fifth option is particularly useful if your non-Tap-Dance keys start behaving weirdly after adding the code for your Tap Dance keys. The likely problem is that you changed the `TAPPING_TERM` time to make your Tap Dance keys easier for you to use, and that this has changed the way your other keys handle interrupts.
For more complicated cases, like blink the LEDs, fiddle with the backlighting, and so on, use the fourth or fifth option. Examples of each are listed below.
## Implementation Details :id=implementation
Well, that's the bulk of it! You should now be able to work through the examples below, and to develop your own Tap Dance functionality. But if you want a deeper understanding of what's going on behind the scenes, then read on for the explanation of how it all works!
The main entry point is `process_tap_dance()`, called from `process_record_quantum()`, which is run for every keypress, and our handler gets to run early. This function checks whether the key pressed is a tap-dance key. If it is not, and a tap-dance was in action, we handle that first, and enqueue the newly pressed key. If it is a tap-dance key, then we check if it is the same as the already active one (if there's one active, that is). If it is not, we fire off the old one first, then register the new one. If it was the same, we increment the counter and reset the timer.
Let's go over the three functions mentioned in `ACTION_TAP_DANCE_FN_ADVANCED` in a little more detail. They all receive the same too arguments: a pointer to a structure that holds all dance related state information, and a pointer to a use case specific state variable. The three functions differ in when they are called. The first, `on_each_tap_fn()`, is called every time the tap dance key is *pressed*. Before it is called, the counter is incremented and the timer is reset. The second function, `on_dance_finished_fn()`, is called when the tap dance is interrupted or ends because `TAPPING_TERM` milliseconds have passed since the last tap. When the `finished` field of the dance state structure is set to `true`, the `on_dance_finished_fn()` is skipped. After `on_dance_finished_fn()` was called or would have been called, but no sooner than when the tap dance key is *released*, `on_dance_reset_fn()` is called. It is possible to end a tap dance immediately, skipping `on_dance_finished_fn()`, but not `on_dance_reset_fn`, by calling `reset_tap_dance(state)`.
To accomplish this logic, the tap dance mechanics use three entry points. The main entry point is `process_tap_dance()`, called from `process_record_quantum()` *after* `process_record_kb()` and `process_record_user()`. This function is responsible for calling `on_each_tap_fn()` and `on_dance_reset_fn()`. In order to handle interruptions of a tap dance, another entry point, `preprocess_tap_dance()` is run right at the beginning of `process_record_quantum()`. This function checks whether the key pressed is a tap-dance key. If it is not, and a tap-dance was in action, we handle that first, and enqueue the newly pressed key. If it is a tap-dance key, then we check if it is the same as the already active one (if there's one active, that is). If it is not, we fire off the old one first, then register the new one. Finally, `tap_dance_task()` periodically checks whether `TAPPING_TERM` has passed since the last key press and finishes a tap dance if that is the case.
This means that you have `TAPPING_TERM` time to tap the key again; you do not have to input all the taps within a single `TAPPING_TERM` timeframe. This allows for longer tap counts, with minimal impact on responsiveness.
Our next stop is `tap_dance_task()`. This handles the timeout of tap-dance keys.
For the sake of flexibility, tap-dance actions can be either a pair of keycodes, or a user function. The latter allows one to handle higher tap counts, or do extra things, like blink the LEDs, fiddle with the backlighting, and so on. This is accomplished by using an union, and some clever macros.
## Examples :id=examples
### Simple Example :id=simple-example
### Simple Example: Send `ESC` on Single Tap, `CAPS_LOCK` on Double Tap :id=simple-example
Here's a simple example for a single definition:
1. In your `rules.mk`, add `TAP_DANCE_ENABLE = yes`
2. In your `config.h` (which you can copy from `qmk_firmware/keyboards/planck/config.h` to your keymap directory), add `#define TAPPING_TERM 200`
3. In your `keymap.c` file, define the variables and definitions, then add to your keymap:
2. In your `keymap.c` file, define the variables and definitions, then add to your keymap:
```c
// Tap Dance declarations
@@ -92,40 +85,15 @@ All the enums used in the examples are declared like this:
```c
// Enums defined for all examples:
enum {
CT_SE,
CT_CLN,
TD_ESC_CAPS,
CT_EGG,
CT_FLSH,
X_TAP_DANCE
CT_CLN,
X_CTL,
};
```
#### Example 1: Send `:` on Single Tap, `;` on Double Tap :id=example-1
```c
void dance_cln_finished(qk_tap_dance_state_t *state, void *user_data) {
if (state->count == 1) {
register_code16(KC_COLN);
} else {
register_code(KC_SCLN);
}
}
void dance_cln_reset(qk_tap_dance_state_t *state, void *user_data) {
if (state->count == 1) {
unregister_code16(KC_COLN);
} else {
unregister_code(KC_SCLN);
}
}
// All tap dance functions would go here. Only showing this one.
qk_tap_dance_action_t tap_dance_actions[] = {
[CT_CLN] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_cln_finished, dance_cln_reset),
};
```
#### Example 2: Send "Safety Dance!" After 100 Taps :id=example-2
#### Example 1: Send "Safety Dance!" After 100 Taps :id=example-1
```c
void dance_egg(qk_tap_dance_state_t *state, void *user_data) {
@@ -140,7 +108,7 @@ qk_tap_dance_action_t tap_dance_actions[] = {
};
```
#### Example 3: Turn LED Lights On Then Off, One at a Time :id=example-3
#### Example 2: Turn LED Lights On Then Off, One at a Time :id=example-2
```c
// On each tap, light up one LED, from right to left
@@ -181,15 +149,74 @@ void dance_flsh_reset(qk_tap_dance_state_t *state, void *user_data) {
ergodox_right_led_3_off();
}
// All tap dances now put together. Example 3 is "CT_FLASH"
// All tap dances now put together. Example 2 is "CT_FLSH"
qk_tap_dance_action_t tap_dance_actions[] = {
[CT_SE] = ACTION_TAP_DANCE_DOUBLE(KC_SPC, KC_ENT),
[CT_CLN] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_cln_finished, dance_cln_reset),
[TD_ESC_CAPS] = ACTION_TAP_DANCE_DOUBLE(KC_ESC, KC_CAPS),
[CT_EGG] = ACTION_TAP_DANCE_FN(dance_egg),
[CT_FLSH] = ACTION_TAP_DANCE_FN_ADVANCED(dance_flsh_each, dance_flsh_finished, dance_flsh_reset)
};
```
#### Example 3: Send `:` on Tap, `;` on Hold :id=example-3
With a little effort, powerful tap-hold configurations can be implemented as tap dances. To emit taps as early as possible, we need to act on releases of the tap dance key. There is no callback for this in the tap dance framework, so we use `process_record_user()`.
```c
typedef struct {
uint16_t tap;
uint16_t hold;
uint16_t held;
} tap_dance_tap_hold_t;
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
qk_tap_dance_action_t *action;
switch (keycode) {
case TD(CT_CLN): // list all tap dance keycodes with tap-hold configurations
action = &tap_dance_actions[TD_INDEX(keycode)];
if (!record->event.pressed && action->state.count && !action->state.finished) {
tap_dance_tap_hold_t *tap_hold = (tap_dance_tap_hold_t *)action->user_data;
tap_code16(tap_hold->tap);
}
}
return true;
}
void tap_dance_tap_hold_finished(qk_tap_dance_state_t *state, void *user_data) {
tap_dance_tap_hold_t *tap_hold = (tap_dance_tap_hold_t *)user_data;
if (state->pressed) {
if (state->count == 1
#ifndef PERMISSIVE_HOLD
&& !state->interrupted
#endif
) {
register_code16(tap_hold->hold);
tap_hold->held = tap_hold->hold;
} else {
register_code16(tap_hold->tap);
tap_hold->held = tap_hold->tap;
}
}
}
void tap_dance_tap_hold_reset(qk_tap_dance_state_t *state, void *user_data) {
tap_dance_tap_hold_t *tap_hold = (tap_dance_tap_hold_t *)user_data;
if (tap_hold->held) {
unregister_code16(tap_hold->held);
tap_hold->held = 0;
}
}
#define ACTION_TAP_DANCE_TAP_HOLD(tap, hold) \
{ .fn = {NULL, tap_dance_tap_hold_finished, tap_dance_tap_hold_reset}, .user_data = (void *)&((tap_dance_tap_hold_t){tap, hold, 0}), }
qk_tap_dance_action_t tap_dance_actions[] = {
[CT_CLN] = ACTION_TAP_DANCE_TAP_HOLD(KC_COLN, KC_SCLN),
};
```
#### Example 4: 'Quad Function Tap-Dance' :id=example-4
By [DanielGGordon](https://github.com/danielggordon)
@@ -329,7 +356,7 @@ And then simply use `TD(X_CTL)` anywhere in your keymap.
If you want to implement this in your userspace, then you may want to check out how [DanielGGordon](https://github.com/qmk/qmk_firmware/tree/master/users/gordon) has implemented this in their userspace.
> In this configuration "hold" takes place **after** tap dance timeout (see `ACTION_TAP_DANCE_FN_ADVANCED_TIME`). To achieve instant hold, remove `state->interrupted` checks in conditions. As a result you may use comfortable longer tapping periods to have more time for taps and not to wait too long for holds (try starting with doubled `TAPPING_TERM`).
> In this configuration "hold" takes place **after** tap dance timeout. To achieve instant hold, remove `state->interrupted` checks in conditions. As a result you may use comfortable longer tapping periods to have more time for taps and not to wait too long for holds (try starting with doubled `TAPPING_TERM`).
#### Example 5: Using tap dance for advanced mod-tap and layer-tap keys :id=example-5
@@ -511,8 +538,18 @@ void ql_reset(qk_tap_dance_state_t *state, void *user_data) {
// Associate our tap dance key with its functionality
qk_tap_dance_action_t tap_dance_actions[] = {
[QUOT_LAYR] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, ql_finished, ql_reset, 275)
[QUOT_LAYR] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, ql_finished, ql_reset)
};
// Set a long-ish tapping term for tap-dance keys
uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case QK_TAP_DANCE ... QK_TAP_DANCE_MAX:
return 275;
default:
return TAPPING_TERM;
}
}
```
The above code is similar to that used in previous examples. The one point to note is that we need to be able to check which layers are active at any time so we can toggle them if needed. To do this we use the `layer_state_is(layer)` function which returns `true` if the given `layer` is active.
@@ -521,6 +558,6 @@ The use of `cur_dance()` and `ql_tap_state` mirrors the above examples.
The `case: TD_SINGLE_TAP` in `ql_finished` is similar to the above examples. The `TD_SINGLE_HOLD` case works in conjunction with `ql_reset()` to switch to `_MY_LAYER` while the tap dance key is held, and to switch away from `_MY_LAYER` when the key is released. This mirrors the use of `MO(_MY_LAYER)`. The `TD_DOUBLE_TAP` case works by checking whether `_MY_LAYER` is the active layer, and toggling it on or off accordingly. This mirrors the use of `TG(_MY_LAYER)`.
`tap_dance_actions[]` works similar to the above examples. Note that I used `ACTION_TAP_DANCE_FN_ADVANCED_TIME()` instead of `ACTION_TAP_DANCE_FN_ADVANCED()`. This is because I like my `TAPPING_TERM` to be short (\~175ms) for my non-tap-dance keys but find that this is too quick for me to reliably complete tap dance actions - thus the increased time of 275ms here.
`tap_dance_actions[]` works similar to the above examples. Note that, additionally, I set a longer tapping term for the tap dance keys. This is because I like my `TAPPING_TERM` to be short (\~175ms) for my non-tap-dance keys but find that this is too quick for me to reliably complete tap dance actions - thus the increased time of 275ms here. In order for the per-key tapping terms to take effect, `TAPPING_TERM_PER_KEY` must be defined in your `config.h`.
Finally, to get this tap dance key working, be sure to include `TD(QUOT_LAYR)` in your `keymaps[]`.

View File

@@ -1,107 +0,0 @@
# Terminal
> This feature is currently *huge*, and should probably only be put on boards with a lot of memory, or for fun.
The terminal feature is a command-line-like interface designed to communicate through a text editor with keystrokes. It's beneficial to turn off auto-indent features in your editor.
To enable, stick this in your `rules.mk` or `Makefile`:
TERMINAL_ENABLE = yes
And use the `TERM_ON` and `TERM_OFF` keycodes to turn it on or off.
When enabled, a `> ` prompt will appear, where you'll be able to type, backspace (a bell will ding if you reach the beginning and audio is enabled), and hit enter to send the command. Arrow keys are currently disabled so it doesn't get confused. Moving your cursor around with the mouse is discouraged.
`#define TERMINAL_HELP` enables some other output helpers that aren't really needed with this page.
Pressing "up" and "down" will allow you to cycle through the past 5 commands entered.
## Future Ideas
* Keyboard/user-extensible commands
* Smaller footprint
* Arrow key support
* Command history - Done
* SD card support
* LCD support for buffer display
* Keycode -> name string LUT
* Layer status
* *Analog/digital port read/write*
* RGB mode stuff
* Macro definitions
* EEPROM read/write
* Audio control
## Current Commands
### `about`
Prints out the current version of QMK with a build date:
```
> about
QMK Firmware
v0.5.115-7-g80ed73-dirty
Built: 2017-08-29-20:24:44
```
### `print-buffer`
Outputs the last 5 commands entered
```
> print-buffer
0. print-buffer
1. help
2. about
3. keymap 0
4. help
5. flush-buffer
```
### `flush-buffer`
Clears command buffer
```
> flush-buffer
Buffer cleared!
```
### `help`
Prints out the available commands:
```
> help
commands available:
about help keycode keymap exit print-buffer flush-buffer
```
### `keycode <layer> <row> <col>`
Prints out the keycode value of a certain layer, row, and column:
```
> keycode 0 1 0
0x29 (41)
```
### `keymap <layer>`
Prints out the entire keymap for a certain layer
```
> keymap 0
0x002b, 0x0014, 0x001a, 0x0008, 0x0015, 0x0017, 0x001c, 0x0018, 0x000c, 0x0012, 0x0013, 0x002a,
0x0029, 0x0004, 0x0016, 0x0007, 0x0009, 0x000a, 0x000b, 0x000d, 0x000e, 0x000f, 0x0033, 0x0034,
0x00e1, 0x001d, 0x001b, 0x0006, 0x0019, 0x0005, 0x0011, 0x0010, 0x0036, 0x0037, 0x0038, 0x0028,
0x5cd6, 0x00e0, 0x00e2, 0x00e3, 0x5cd4, 0x002c, 0x002c, 0x5cd5, 0x0050, 0x0051, 0x0052, 0x004f,
>
```
### `exit`
Exits the terminal - same as `TERM_OFF`.

View File

@@ -230,17 +230,6 @@ send_unicode_string("(ノಠ痊ಠ)ノ彡┻━┻");
Example uses include sending Unicode strings when a key is pressed, as described in [Macros](feature_macros.md).
### `send_unicode_hex_string()` (Deprecated)
Similar to `send_unicode_string()`, but the characters are represented by their Unicode code points, written in hexadecimal and separated by spaces. For example, the table flip above would be achieved with:
```c
send_unicode_hex_string("0028 30CE 0CA0 75CA 0CA0 0029 30CE 5F61 253B 2501 253B");
```
An easy way to convert your Unicode string to this format is to use [this site](https://r12a.github.io/app-conversion/) and take the result in the "Hex/UTF-32" section.
## Additional Language Support
In `quantum/keymap_extras`, you'll see various language files — these work the same way as the ones for alternative layouts such as Colemak or BÉPO. When you include one of these language headers, you gain access to keycodes specific to that language / national layout. Such keycodes are defined by a 2-letter country/language code, followed by an underscore and a 4-letter abbreviation of the character to which the key corresponds. For example, including `keymap_french.h` and using `FR_UGRV` in your keymap will output `ù` when typed on a system with a native French AZERTY layout.

View File

@@ -266,7 +266,7 @@ Flashing sequence:
### `make` Targets
* `:dfu-util`: Waits until an STM32 bootloader device is available, and then flashes the firmware.
* `:dfu-util-split-left` and `:dfu-util-split-right`: Flashes the firmware as with `:avrdude`, but also sets the handedness setting in EEPROM. This is ideal for Proton-C-based split keyboards.
* `:dfu-util-split-left` and `:dfu-util-split-right`: Flashes the firmware as with `:dfu-util`, but also sets the handedness setting in EEPROM. This is ideal for Proton-C-based split keyboards.
* `:st-link-cli`: Allows you to flash the firmware via the ST-Link CLI utility, rather than dfu-util. Requires an ST-Link dongle.
* `:st-flash`: Allows you to flash the firmware via the `st-flash` utility from [STLink Tools](https://github.com/stlink-org/stlink), rather than dfu-util. Requires an ST-Link dongle.
@@ -347,3 +347,57 @@ Flashing sequence:
2. Wait for the OS to detect the device
3. Copy the .uf2 file to the new USB disk
4. Wait for the keyboard to become available
or
CLI Flashing sequence:
1. Enter the bootloader using any of the following methods:
* Tap the `RESET` keycode
* Double-tap the `nRST` button on the PCB.
2. Wait for the OS to detect the device
3. Flash via QMK CLI eg. `qmk flash --keyboard handwired/onekey/blackpill_f411_tinyuf2 --keymap default`
4. Wait for the keyboard to become available
### `make` Targets
* `:uf2-split-left` and `:uf2-split-right`: Flashes the firmware but also sets the handedness setting in EEPROM by generating a side specific firmware.
## Raspberry Pi RP2040 UF2
The `rules.mk` setting for this bootloader is `rp2040`, and can be specified at the keymap or user level.
To ensure compatibility with the rp2040 bootloader, make sure this block is present in your `rules.mk`:
```make
# Bootloader selection
BOOTLOADER = rp2040
```
Compatible flashers:
* Any application able to copy a file from one place to another, such as _macOS Finder_ or _Windows Explorer_.
Flashing sequence:
1. Enter the bootloader using any of the following methods:
* Tap the `QK_BOOTLOADER` keycode
* Hold the `BOOTSEL` button on the PCB while plugin in the usb cable.
* Double-tap the `RESET` button on the PCB<sup>1</sup>.
2. Wait for the OS to detect the device
3. Copy the .uf2 file to the new USB disk
4. Wait for the keyboard to become available
or
CLI Flashing sequence:
1. Enter the bootloader using any of the following methods:
* Tap the `QK_BOOTLOADER` keycode
* Hold the `BOOTSEL` button on the PCB while plugin in the usb cable.
* Double-tap the `RESET` button on the PCB<sup>1</sup>.
2. Wait for the OS to detect the device
3. Flash via QMK CLI eg. `qmk flash --keyboard handwired/onekey/rpi_pico --keymap default`
4. Wait for the keyboard to become available
<sup>1</sup>: This works only if QMK was compiled with `RP2040_BOOTLOADER_DOUBLE_TAP_RESET` defined.

View File

@@ -35,7 +35,7 @@ USB for a given key.
## 3. What the Event Input/Kernel Does
The *scancode* is mapped to a *keycode* dependent on the keyboard [60-keyboard.hwdb at Master](https://github.com/systemd/systemd/blob/master/hwdb.d/60-keyboard.hwdb). Without this mapping, the operating system will not receive a valid keycode and will be unable to do anything useful with that key press.
The *scancode* is mapped to a *keycode* dependent on the keyboard [60-keyboard.hwdb at Main](https://github.com/systemd/systemd/blob/main/hwdb.d/60-keyboard.hwdb). Without this mapping, the operating system will not receive a valid keycode and will be unable to do anything useful with that key press.
## 4. What the Operating System Does

View File

@@ -166,7 +166,7 @@ Send multiple bytes to the selected I2C device.
### `i2c_status_t i2c_receive(uint8_t address, uint8_t* data, uint16_t length, uint16_t timeout)`
Receive multiple bytes from the selected SPI device.
Receive multiple bytes from the selected I2C device.
#### Arguments

View File

@@ -15,7 +15,7 @@
<meta name="twitter:card" content="summary_large_image">
<link rel="stylesheet" href="//unpkg.com/docsify/lib/themes/buble.css" title="light">
<link rel="stylesheet" href="//unpkg.com/docsify/lib/themes/dark.css" media="(prefers-color-scheme: dark)">
<link rel="stylesheet" href="//unpkg.com/docsify-toc@1.0.0/dist/toc.css">
<link rel="stylesheet" href="//unpkg.com/docsify-toc@1.1.0/dist/toc.css">
<link rel="stylesheet" href="qmk_custom_light.css">
<link rel="stylesheet" href="qmk_custom_dark.css" media="(prefers-color-scheme: dark)">
</head>
@@ -130,7 +130,7 @@
<script src="//unpkg.com/docsify/lib/plugins/emoji.min.js"></script>
<script src="//unpkg.com/docsify-tabs@1"></script>
<script src="//unpkg.com/docsify-copy-code@2"></script>
<script src="//unpkg.com/docsify-toc@1.0.0/dist/toc.js"></script>
<script src="//unpkg.com/docsify-toc@1.1.0/dist/toc.js"></script>
<script src="//unpkg.com/prismjs/components/prism-bash.min.js"></script>
<script src="//unpkg.com/prismjs/components/prism-c.min.js"></script>
<script src="//unpkg.com/prismjs/components/prism-cpp.min.js"></script>

View File

@@ -4,7 +4,7 @@ In order to flash a microcontroller over USB, it needs something called a bootlo
However, it can sometimes happen that the bootloader becomes corrupted and needs reflashing, or you may want to change the bootloader to another one. It's not possible to do this with the existing bootloader, because, of course, it is already running, and cannot overwrite itself. Instead, you will need to ISP flash the microcontroller.
There are several different kinds of bootloaders available for AVR microcontrollers. Most STM32 ARM-based microcontrollers already have a USB-capable bootloader in ROM, so generally do not need to be ISP flashed.
There are several different kinds of bootloaders available for AVR microcontrollers. Most STM32 ARM-based microcontrollers already have a USB-capable bootloader in ROM, so generally do not need to be ISP flashed. The one current exception is the [STM32F103](#flashing-stm32duino-bootloader).
## Hardware
@@ -260,3 +260,93 @@ For mass production purposes, it is possible to join the bootloader and QMK firm
4. Save it as a new file, for example `<keyboard>_<keymap>_production.hex`.
You can then ISP flash this combined firmware instead, which allows you to skip the extra step of flashing the QMK firmware over USB.
## Flashing STM32Duino Bootloader
As mentioned above, *most* supported STM32 devices already possess a USB DFU bootloader which cannot be overwritten, however the ROM bootloader in the STM32F103 used on the Bluepill is not USB capable. In this case an ST-Link V2 dongle is required to upload the STM32Duino bootloader to the device. These can be readily purchased for relatively cheap on eBay and other places.
This bootloader is a descendant of the Maple bootloader by Leaflabs, and is compatible with dfu-util.
### Software
To communicate with the ST-Link, you must install the following packages:
* **macOS:** `brew install stlink openocd`
* **Windows (MSYS2):** `pacman -S mingw-w64-x86_64-stlink mingw-w64-x86_64-openocd`
* **Linux:** will vary by distribution, but will likely be `stlink` and `openocd` through your particular package manager
Additionally, you may need to update the ST-Link's firmware with the [`STSW-LINK007`](https://www.st.com/en/development-tools/stsw-link007.html) application. Note you will be asked to provide your name and email address if you do not have an ST.com account (this does not create one).
Finally, the bootloader binary itself can be downloaded from [here](https://github.com/rogerclarkmelbourne/STM32duino-bootloader/blob/master/bootloader_only_binaries/generic_boot20_pc13.bin).
### Wiring
Connect the four-pin header on the end of the Bluepill to the matching pins on the ST-Link (the pinout will usually be printed on the side):
|ST-Link |Bluepill|
|-------------|--------|
|`GND` (6) |`GND` |
|`SWCLK` (2) |`DCLK` |
|`SWDIO` (4) |`DIO` |
|`3.3V` (8) |`3.3` |
### Flashing
Firstly, make sure both jumpers on the Bluepill are set to 0.
Check that the ST-Link can talk to the Bluepill by running `st-info --probe`:
```
Found 1 stlink programmers
version: V2J37S7
serial: 2C1219002B135937334D4E00
flash: 65536 (pagesize: 1024)
sram: 20480
chipid: 0x0410
descr: F1xx Medium-density
```
If the reported `chipid` is `0x0410`, everything is working. If it is `0x0000`, check your wiring, and try swapping the `SWDIO` and `SWCLK` pins, as some ST-Link dongles may have incorrect pinouts.
Next, run the following command:
```
st-flash --reset --format binary write <path-to-bootloader> 0x08000000
```
where `<path-to-bootloader>` is the path to the bootloader `.bin` file above. You can run this command from the directory you downloaded it to, so that you can simply pass in the filename.
If all goes well, you should get output similar to the following:
```
st-flash 1.7.0
2022-03-08T12:16:30 INFO common.c: F1xx Medium-density: 20 KiB SRAM, 64 KiB flash in at least 1 KiB pages.
file generic_boot20_pc13.bin md5 checksum: 333c30605e739ce9bedee5999fdaf81b, stlink checksum: 0x0008e534
2022-03-08T12:16:30 INFO common.c: Attempting to write 7172 (0x1c04) bytes to stm32 address: 134217728 (0x8000000)
2022-03-08T12:16:30 INFO common.c: Flash page at addr: 0x08000000 erased
2022-03-08T12:16:30 INFO common.c: Flash page at addr: 0x08000400 erased
2022-03-08T12:16:31 INFO common.c: Flash page at addr: 0x08000800 erased
2022-03-08T12:16:31 INFO common.c: Flash page at addr: 0x08000c00 erased
2022-03-08T12:16:31 INFO common.c: Flash page at addr: 0x08001000 erased
2022-03-08T12:16:31 INFO common.c: Flash page at addr: 0x08001400 erased
2022-03-08T12:16:31 INFO common.c: Flash page at addr: 0x08001800 erased
2022-03-08T12:16:31 INFO common.c: Flash page at addr: 0x08001c00 erased
2022-03-08T12:16:31 INFO common.c: Finished erasing 8 pages of 1024 (0x400) bytes
2022-03-08T12:16:31 INFO common.c: Starting Flash write for VL/F0/F3/F1_XL
2022-03-08T12:16:31 INFO flash_loader.c: Successfully loaded flash loader in sram
2022-03-08T12:16:31 INFO flash_loader.c: Clear DFSR
8/ 8 pages written
2022-03-08T12:16:31 INFO common.c: Starting verification of write complete
2022-03-08T12:16:31 INFO common.c: Flash written and verified! jolly good!
2022-03-08T12:16:31 WARN common.c: NRST is not connected
```
Otherwise, if you receive an `Unknown memory region` error, run the following command to unlock the STM32F103:
```
openocd -f interface/stlink.cfg -f target/stm32f1x.cfg -c "init; reset halt; stm32f1x unlock 0; reset halt; exit"
```
Then re-plug the ST-Link and try again.
After all of this, unplug the Bluepill from the ST-Link and connect it to USB. It should now be ready to flash using dfu-util, the QMK CLI or Toolbox.

View File

@@ -85,7 +85,6 @@
* [スワップハンド](ja/feature_swap_hands.md)
* [タップダンス](ja/feature_tap_dance.md)
* [タップホールド設定](ja/tap_hold.md)
* [ターミナル](ja/feature_terminal.md)
* [ユニコード](ja/feature_unicode.md)
* [ユーザスペース](ja/feature_userspace.md)
* [WPM 計算](ja/feature_wpm.md)
@@ -137,7 +136,7 @@
* [EEPROM ドライバ](ja/eeprom_driver.md)
* [シリアル ドライバ](ja/serial_driver.md)
* [UART ドライバ](ja/uart_driver.md)
* [GPIO 制御](ja/internals_gpio_control.md)
* [GPIO 制御](ja/gpio_control.md)
* [キーボード ガイドライン](ja/hardware_keyboard_guidelines.md)
* Python 開発
@@ -173,10 +172,10 @@
* [QMK を理解する](ja/understanding_qmk.md)
* QMK の内部詳細(作成中)
* [定義](ja/internals_defines.md)
* [入力コールバック登録](ja/internals_input_callback_reg.md)
* [Midi デバイス](ja/internals_midi_device.md)
* [Midi デバイスのセットアップ手順](ja/internals_midi_device_setup_process.md)
* [Midi ユーティリティ](ja/internals_midi_util.md)
* [Midi 送信関数](ja/internals_send_functions.md)
* [Sysex Tools](ja/internals_sysex_tools.md)
* [定義](ja/internals/defines.md)
* [入力コールバック登録](ja/internals/input_callback_reg.md)
* [Midi デバイス](ja/internals/midi_device.md)
* [Midi デバイスのセットアップ手順](ja/internals/midi_device_setup_process.md)
* [Midi ユーティリティ](ja/internals/midi_util.md)
* [Midi 送信関数](ja/internals/send_functions.md)
* [Sysex Tools](ja/internals/sysex_tools.md)

View File

@@ -275,14 +275,14 @@ $ qmk kle2json -f kle.txt -f
Ψ Wrote out to info.json
```
## `qmk format-py`
## `qmk format-python`
このコマンドは `qmk_firmware` 内の python コードを整形します。
**使用法**:
```
qmk format-py
qmk format-python
```
## `qmk pytest`

View File

@@ -192,7 +192,7 @@ cli.log.info('Reading from %s and writing to %s', cli.args.filename, cli.args.ou
# テスト、リントおよびフォーマット
nose2、flake8 および yapf を使ってコードをテスト、リントおよびフォーマットします。これらのテストを実行するために `pytest``format-py` サブコマンドを使うことができます。
nose2、flake8 および yapf を使ってコードをテスト、リントおよびフォーマットします。これらのテストを実行するために `pytest``format-python` サブコマンドを使うことができます。
### テストとリント
@@ -200,7 +200,7 @@ nose2、flake8 および yapf を使ってコードをテスト、リントお
### フォーマット
qmk format-py
qmk format-python
## フォーマットの詳細

View File

@@ -108,7 +108,7 @@ QMK での全ての利用可能な設定にはデフォルトがあります。
* デバイスの USB 経由の最大電力(mA) を設定します (デフォルト: 500)
* `#define USB_POLLING_INTERVAL_MS 10`
* キーボード、マウス および 共有 (NKRO/メディアキー) インタフェースのための USB ポーリングレートをミリ秒で設定します
* `#define USB_SUSPEND_WAKEUP_DELAY 200`
* `#define USB_SUSPEND_WAKEUP_DELAY 0`
* ウェイクアップパケットを送信した後で一時停止するミリ秒を設定します
* `#define F_SCL 100000L`
* I2C を使用するキーボードのための I2C クロックレート速度を設定します。デフォルトは `400000L` ですが、`split_common` を使っているキーボードは別でデフォルトは `100000L` です。
@@ -144,7 +144,7 @@ QMK での全ての利用可能な設定にはデフォルトがあります。
## 設定可能な挙動 :id=behaviors-that-can-be-configured
* `#define TAPPING_TERM 200`
* タップがホールドになるまでの時間。500以上に設定された場合、タップ期間中にタップされたキーもホールドになります。(訳注: PERMISSIVE_HOLDも参照)
* タップがホールドになるまでの時間。
* `#define TAPPING_TERM_PER_KEY`
* キーごとの `TAPPING_TERM` 設定の処理を有効にします
* `#define RETRO_TAPPING`

View File

@@ -87,17 +87,17 @@ void matrix_init(void) {
}
uint8_t matrix_scan(void) {
bool matrix_has_changed = false;
bool changed = false;
// TODO: ここにマトリックススキャンルーチンを追加します
// ハードウェアによるデバウンスがない場合 - 設定されているデバウンスルーチンを使用します
debounce(raw_matrix, matrix, MATRIX_ROWS, changed);
changed = debounce(raw_matrix, matrix, MATRIX_ROWS, changed);
// 正しいキーボード動作のためにこれを呼び出す*必要があります*
matrix_scan_quantum();
return matrix_has_changed;
return changed;
}
```

View File

@@ -40,6 +40,7 @@ QMK はその場で作られた一時的なマクロをサポートします。
| `DYNAMIC_MACRO_SIZE` | 128 | 動的マクロが使用できるメモリ量を設定します。これは限られたリソースであり、コントローラに依存します。 |
| `DYNAMIC_MACRO_USER_CALL` | *定義なし* | これを定義すると、ユーザの `keymap.c` ファイルを使ってマクロが起動されます。 |
| `DYNAMIC_MACRO_NO_NESTING` | *定義なし* | これを定義すると、別のマクロからマクロを呼び出す(入れ子になったマクロ)機能を無効にします。 |
| `DYNAMIC_MACRO_DELAY` | *定義なし* | 各キーを送信する時の待ち時間ms単位を設定します。 |
記録中にキーを押すたびに LED が点滅し始めた場合は、マクロバッファにマクロを入れるスペースがもう無いことを意味します。マクロを入れるには、他のマクロ(それらは同じバッファを共有します)を短くするか、`config.h``DYNAMIC_MACRO_SIZE` 定義を追加することでバッファを増やします(デフォルト値: 128; ヘッダ内のコメントを読んでください)。

Some files were not shown because too many files have changed in this diff Show More