Compare commits

..

986 Commits

Author SHA1 Message Date
Jack Humbert
92005dee35 using data/mappings for processing 2023-04-07 16:25:51 -04:00
Jack Humbert
5dd8efc7c0 chibios compiling, layout keymaps 2023-04-06 16:22:14 -04:00
Jack Humbert
cc22d67b32 some chibios experiments 2023-04-05 18:27:47 -04:00
Jack Humbert
a1cb005981 storm commit, chibios exp 2023-04-05 12:59:16 -04:00
Jack Humbert
cfde338998 generate compile_commands.json and configure clangd 2023-04-04 23:39:52 -04:00
Jack Humbert
4d1ad14596 Merge branch 'cmake-experiments' of https://github.com/qmk/qmk_firmware into cmake-experiments 2023-04-04 20:55:17 -04:00
Jack Humbert
c34f0e4998 test out compile_flags.txt 2023-04-04 20:55:10 -04:00
Jack Humbert
94d76a4f9e fix case issues 2023-04-04 16:55:03 -04:00
Jack Humbert
fe59b4e5d6 load keyboard ui through vscode 2023-04-04 16:26:44 -04:00
Jack Humbert
7093a41c6c clean-up 2023-04-04 14:19:52 -04:00
Jack Humbert
c9ca9b9875 one target one target one target 2023-04-04 13:42:50 -04:00
Jack Humbert
060c15f32b fully compiling with qmk target 2023-04-04 12:46:29 -04:00
Jack Humbert
6a960cbf05 move to single lib 2023-04-04 12:29:01 -04:00
Jack Humbert
531c37b256 closer, tasks populating targets 2023-04-04 12:07:58 -04:00
Jack Humbert
6468360ff1 example tasks 2023-04-03 23:22:59 -04:00
Jack Humbert
40a3a431ef unknown state 2023-04-03 21:02:40 -04:00
Jack Humbert
4d999378d0 more absolute keyboard/keymap support 2023-04-03 13:43:40 -04:00
Jack Humbert
2ebad0d33f basic json validator supporting most used properties. converted some regex to cmake-compatible expressions 2023-04-03 13:19:45 -04:00
Jack Humbert
d5760d02a6 some relative/abs keymap folder stuff 2023-04-02 23:46:40 -04:00
Jack Humbert
9ae271c844 capitalization matters on linux 2023-04-02 22:40:34 -04:00
Jack Humbert
4aea69ba21 start arm stuff, better keyboard folder path management 2023-04-02 16:38:37 -04:00
Jack Humbert
2031d063b5 split up functions/scripts a bit. downloads avr-gcc 2023-04-02 11:20:49 -04:00
Jack Humbert
d32724c08f refix windows compiling 2023-04-01 23:39:13 -04:00
Jack Humbert
26756d05a2 look for make independently, osx compiling 2023-04-01 23:24:46 -04:00
Jack Humbert
b45dbcd4c1 fix linux compiling 2023-04-01 23:10:44 -04:00
Jack Humbert
6fe0cd47ca multi folder targets 2023-04-01 22:04:00 -04:00
Jack Humbert
ca8596e4a8 compiling basic AVR 2023-04-01 18:03:54 -04:00
Nick Brassel
c3c401f91d [QP] Fix up delta frame boundaries (#20296) 2023-03-31 08:41:11 +11:00
Alejandro Chacón
b63e388692 [Keyboard update] Fix json error (#20299) 2023-03-30 18:25:42 +01:00
Nick Brassel
81f3f0f3e9 Revert to hex output for kint41 (#20295) 2023-03-30 01:41:36 +01:00
Maverick0197
d0c36a7683 [Keyboard] Add KeyDeck8 (#20107)
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2023-03-29 13:13:05 -07:00
4pplet
c6cc638752 [Keyboard] Add Steezy60 Rev B (#19688)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Nick Brassel <nick@tzarc.org>
Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
Co-authored-by: Wolf Van Herreweghe <wolfvh@getupgamesofficial.com>
Co-authored-by: yiancar <yiancar@gmail.com>
Co-authored-by: Dasky <32983009+daskygit@users.noreply.github.com>
Co-authored-by: adophoxia <100170946+adophoxia@users.noreply.github.com>
Co-authored-by: Jue Liu <youturn@Jues-MacBook-Pro.local>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Shandon Anderson <shandon@shandon.codes>
Co-authored-by: jack <0x6A73@pm.me>
Co-authored-by: jason <jrucker2004@gmail.com>
Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>
2023-03-29 13:10:47 -07:00
Sắn
621dbdf8ee [Keyboard] Add Plaque80 (#20240)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Joel Challis <git@zvecr.com>
2023-03-29 13:34:42 -06:00
Alejandro Chacón
896f38c52c [Keyboard] Add alhenkb macropad (#20123) 2023-03-29 11:47:14 -07:00
Joel Challis
f56580404d Minify content published to API (#20285) 2023-03-29 13:01:16 +01:00
Nick Brassel
5bb8f7ae84 Add ability for qmk mass-compile to build specified targets (#20294) 2023-03-29 21:26:05 +11:00
Nick Brassel
d31d1488e8 Fixup CI command failures. (#20291) 2023-03-29 16:48:57 +11:00
Nick Brassel
6bdbf77238 Add step summary output to CI builds, with failure logs. (#20288) 2023-03-29 15:55:31 +11:00
Ryan
e2630f9b40 Fix some invalid layout macros (#20256) 2023-03-29 15:51:22 +11:00
Nick Brassel
c94241d447 CI Builds: master/develop, default/via, twice daily. (#20283) 2023-03-29 12:51:39 +11:00
Joel Challis
e0b1637e15 I have zero involvement with this keyboard... (#20287) 2023-03-29 02:09:26 +01:00
takashicompany
a6b2b1ca41 Add new keyboard Tightwriter (#20136)
Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>
2023-03-28 10:24:53 -06:00
Albert Y
02cb5db67b Remove invalid characters (#20277) 2023-03-28 14:33:00 +01:00
blindassassin111
00c3946fbe [keyboard] Correcting info.JSON for OSAv2 (#20247) 2023-03-27 23:42:04 -06:00
Nick Brassel
3ee17cd5d3 [chore] keyboards/tzarc: Alignment with clang-format. (#20265) 2023-03-26 23:56:09 +01:00
Ryan
d6ce42ae5b Check for multiple matrix positions assigned to same key (#20039) 2023-03-24 13:46:42 +11:00
Pablo Martínez
67dae1222f [Documentation] Pointing device minor rewrite (#19641) 2023-03-23 22:35:02 +00:00
dependabot[bot]
8d0f97d110 Bump actions/stale from 7 to 8 (#20246)
Bumps [actions/stale](https://github.com/actions/stale) from 7 to 8.
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/stale/compare/v7...v8)

---
updated-dependencies:
- dependency-name: actions/stale
  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>
2023-03-23 21:09:21 +00:00
Andrew Kannan
153bcdcd8d Add CannonKeys Bakeneko65 Hotswap ISO PCB to QMK (#20131)
* Add CannonKeys Bakeneko65 Hotswap ISO PCB to QMK

* Add 65_iso_blocker community layout support
2023-03-23 20:25:15 +00:00
blindassassin111
37ac5e68e6 [Keyboard]Viktus Minne - Topre variant (#20044)
* Adding the Viktus Minne topre pcb variant

* Update keyboards/viktus/minne_topre/readme.md

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

* Update rules.mk

* Moving layouts from *.h to info.json

* Removing minne_topre.h and updating others

* fixing *.c's

* Switch from int to void for ec_init

* Update info.json

* Update info.json

---------

Co-authored-by: Drashna Jaelre <drashna@live.com>
2023-03-23 20:22:47 +00:00
blindassassin111
b035cd094b [keyboard] Correcting info.JSON for Viktus Minne (#20244) 2023-03-23 14:20:12 -06:00
Cipulot
15cb7ded76 EC ProX PCB (#20047)
* Add EC Pro X

Addition of EC Pro X PCB series.
This series comprises 2 versions:
- ANSI/ISO
- JIS

The PCBs are different and are compatible only with their respective cases.

* Moved from data driven row/col def to config def

* Added project url in info.json

* Implemented proper `LAYOUT_` changes

* Removen unnecessary `.h` includes

* Removal of `"w": 1`

* Added `DISCHARGE_TIME`

Addition of a `DISCHARGE_TIME` time. This is to ensure that the ghost capacitor  that is the row strobed for the ADC read, is fully drained and doesn't carry charges that deviates the readings.

Tested on multiple hardware and confirmed working and improving the readings, both in terms of stability and consistency for baseline noise.

* Fixed keymap error in ordering

* Update keyboards/cipulot/ec_prox/jis/readme.md

Co-authored-by: Tom Barnes <barnestom@me.com>

* Update keyboards/cipulot/ec_prox/ansi_iso/readme.md

Co-authored-by: Tom Barnes <barnestom@me.com>

* Removal of `info.json` lines as suggested

* Update to comply with `_kb` and `_user` separation

* Update keyboards/cipulot/ec_prox/jis/rules.mk

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

* Update rules.mk

---------

Co-authored-by: Tom Barnes <barnestom@me.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2023-03-23 10:09:50 +00:00
Cipulot
5428d922a5 EC 23U PCB (#20049)
* Add EC 23U PCB firmware

* Moved from data driven row/col def to config def

* Implemented proper LAYOUT_ changes

* Removed unnecessary `.h` includes

* Updated default thresholds

* Added `DISCHARGE_TIME`

Addition of a `DISCHARGE_TIME` time. This is to ensure that the ghost capacitor  that is the row strobed for the ADC read, is fully drained and doesn't carry charges that deviates the readings.

Tested on multiple hardware and confirmed working and improving the readings, both in terms of stability and consistency for baseline noise.

* Update readme.md

Added missing `cipulot/` in example commands.

* Removal of `info.json` lines as suggested

* Update to comply with `_kb` and `_user` separation

* Update rules.mk
2023-03-23 10:06:38 +00:00
Cipulot
3303f7ea5d EC 60 PCB (#20050)
* Add EC 60 PCB firmware

* Moved from data driven row/col def to config def

* Implemented proper LAYOUT_ changes

* Removed unnecessary `.h` includes

* Added `DISCHARGE_TIME`

Addition of a `DISCHARGE_TIME` time. This is to ensure that the ghost capacitor  that is the row strobed for the ADC read, is fully drained and doesn't carry charges that deviates the readings.

Tested on multiple hardware and confirmed working and improving the readings, both in terms of stability and consistency for baseline noise.

* Update readme.md

Added missing `cipulot/`in readme example commands

* Update keyboards/cipulot/ec_60/readme.md

Co-authored-by: Tom Barnes <barnestom@me.com>

* Removal of `info.json` lines as suggested

* Update to comply with `_kb` and `_user` separation

* Update keyboards/cipulot/ec_60/rules.mk

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

---------

Co-authored-by: Tom Barnes <barnestom@me.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2023-03-23 10:05:49 +00:00
Less/Rikki
bb4abc8a9f [jacky_studio/piggy60] warn about incompatible PCB rev (#20232) 2023-03-23 19:18:30 +11:00
spbgzh
0e4221fdf7 [Keyboard] Fix tata80 wkl layout (#20195) 2023-03-23 00:12:38 -07:00
SHVD3x
4f374640d0 [Keyboard] Ymd09 config updates (#20124)
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2023-03-22 23:52:31 -07:00
Moritz Plattner
e624ce959a [Keyboard] Add Geistmaschine Geist (#20117)
Co-authored-by: jack <0x6a73@protonmail.com>
2023-03-22 22:09:33 -07:00
jotix
8cd78b392f [Keyboard] Add via support for jotanck keyboard (#20146)
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2023-03-22 21:38:35 -07:00
Less/Rikki
5ace174cd3 fixup: correct filename (#20212) 2023-03-21 23:23:21 +00:00
Jason Hazel
b1e6b3798a Adding Bad Wings Support (#20153) 2023-03-21 20:53:06 +00:00
spbgzh
0bb9eada83 [Keyboard] update creek70 change rgb num (#20196)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2023-03-21 12:07:47 -07:00
Ning
ac75242132 [Keyboard] Add tiny board 16 rgb keyboard (#20158)
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2023-03-21 11:20:25 -07:00
mechlovin
650a0b8ad4 [Keyboard] Olly Orion: Disable SWD and JTAG (#20169)
Co-authored-by: Joel Challis <git@zvecr.com>
2023-03-21 01:17:24 -07:00
blindassassin111
0f07fcc8d4 [Keyboard] OSAv2 (#20166) 2023-03-21 01:12:21 -07:00
hulahermit
b6a636d954 [Keyboard] Add pteropus keyboard (#20147)
Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>
Co-authored-by: Chi-Han Yang <chyang@enrichtx.com>
2023-03-20 23:44:56 -07:00
Andrew Kannan
44cd8a2f88 [Keyboard] Add CannonKeys Bakeneko60 ISO Hotswap PCB (#20130) 2023-03-20 23:20:30 -07:00
Tobias Minn
f55d2cd6b6 [Keyboard] Add Kuro65 keyboard (#20122)
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>
2023-03-20 22:30:21 -07:00
Sid Quinsaat
63af5cd50e [Keymap] for sharkby7e (#20121)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: jack <0x6a73@protonmail.com>
2023-03-20 22:28:54 -07:00
Agent Blu, 006
8bb7d24fba [Keyboard] Add Blu vimclutch (#20060)
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2023-03-20 20:13:27 -07:00
Laneware
50b12ece13 Update lpad info.json (#20184)
Update incorrect row and col pins, now confirmed working via manual build in QMK MSYS
2023-03-19 23:19:28 +00:00
QMK Bot
c5b0e3a6a3 Format code according to conventions (#20175) 2023-03-18 18:15:26 +00:00
jack
a1a5dd6ddd Fixup kbdfans/tiger80 RGB animations (#20164) 2023-03-18 11:38:24 -06:00
Laneware
da52450152 Add Support for LPAD (#19852)
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2023-03-18 11:33:20 -06:00
Dam Vu Duy
7b9d471ba0 [Keyboard] Add Coban Pad 3A (#19634) 2023-03-18 11:32:29 -06:00
toinux
319da117b7 [Keymap] crkbd toinux update (#19673) 2023-03-18 11:26:42 -06:00
Nick Brassel
f8e89a1fe4 De-parallelise CI (#20171)
* De-parallelise CI

No speed increase.

* Update .github/workflows/ci_builds.yml
2023-03-18 15:58:51 +00:00
JX
e437560144 [Keyboard] Add yandrstudio/transition80 (#19790)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2023-03-17 10:14:21 -07:00
Fabien
d026803147 [Keyboard] Fix typos in readme for Lily58 R2G (#20149) 2023-03-17 10:27:39 -06:00
blindassassin111
687b7341ed [keyboard] Viktus Minne (#19977)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2023-03-17 10:26:52 -06:00
ziptyze
0f323a45ce [Keyboard] 1upkeyboards/pi40 update (#20066) 2023-03-17 10:07:26 -06:00
Nick Brassel
1b3f7fcf7d Add qmk find command, reuse logic for qmk mass-compile. (#20139) 2023-03-16 20:35:49 +00:00
ToffeeStudio
f3f634ef67 [Keyboard] Add Blueberry (#19915)
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2023-03-16 11:11:58 -06:00
Kyle McCreery
b2ee950d9e [Keymap] Sugarglider VIA keymap enhancement (#20140) 2023-03-16 09:58:49 -06:00
lalalademaxiya1
2f7a06cf73 Update keychron_common.c (#20055) 2023-03-16 12:30:09 +11:00
Joel Challis
7654c2a23b Update keycodes_0.0.1_basic.hjson (#20129) 2023-03-16 00:37:58 +00:00
しぐれ
012fa6dd45 [Doc] Add example to keyboard housekeeping and some minor fixes (#19968)
Co-authored-by: jack <0x6a73@protonmail.com>
2023-03-15 16:55:18 -06:00
mjbogusz
54dca8cbff [Keyboard] Add Atlantis PS17 (#19952) 2023-03-15 14:30:29 -06:00
dztech
3eb04fee87 add tiger80 iso layout support (#19975)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: jack <0x6a73@protonmail.com>
2023-03-15 10:53:28 -06:00
Josh Hinnebusch
0996bca9e9 [Keyboard] Add hineybush/h87_g2 (#20053)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: jack <0x6a73@protonmail.com>
2023-03-15 10:43:06 -06:00
Conor Burns
c18d5ebd2d add new board: splaytoraid (#20052)
Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>
2023-03-15 15:53:02 +00:00
Kyle McCreery
915d7a18d7 [Keyboard] New Keyboard - Sugar Glider (#19933)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>
Co-authored-by: jack <0x6a73@protonmail.com>
2023-03-15 15:49:14 +00:00
Nick Brassel
e62fc866db Let's use workflows to parallelise the builds. (#20120)
* Let's use workflows to parallelise the builds.

* Nofail if files aren't present.

* Formatting.
2023-03-15 08:31:10 +11:00
d-floe
c91296f001 [Keyboard] Add KP60 (#20096)
Co-authored-by: adophoxia <100170946+adophoxia@users.noreply.github.com>
Co-authored-by: jack <0x6a73@protonmail.com>
2023-03-14 12:56:31 -07:00
Sophie Machen
99a39a1198 Update newbs_getting_started to include instructions for apple silicon (#19579)
Co-authored-by: Joel Challis <git@zvecr.com>
2023-03-14 12:58:08 -04:00
Cipulot
4283e69ac7 RF R1 8-9Xu PCB (#20048)
Co-authored-by: Tom Barnes <barnestom@me.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2023-03-14 07:41:06 +00:00
Albert Y
a71e58270c Document Autocorrect callback functions (#20115) 2023-03-13 13:34:23 -06:00
Albert Y
e0bd6fac10 Move Ferris Sweep to data-driven (#20111) 2023-03-12 23:33:31 -06:00
Darkhan
a5e7390419 [keyboard] Prevent LED flicker when connecting AnnePro 2 (#19709) 2023-03-12 21:23:39 +11:00
Nick Brassel
bcfe67883e Allow for CI builds to run for 23 hours, instead of 6. (part deux) (#20095) 2023-03-12 12:55:26 +11:00
Nick Brassel
6b9dced611 Allow for CI builds to run for 23 hours, instead of 6. (#20094) 2023-03-12 01:18:49 +00:00
Andrew Kannan
042e42d1b7 Add Chimera65 Hotswap keyboard (#20038)
Co-authored-by: jack <0x6a73@protonmail.com>
2023-03-11 14:04:26 -07:00
jonylee@hfd
dff9ee25e2 [Keyboard] Add k83 (#19896) 2023-03-11 10:52:35 -07:00
Dan White
6fe223b5ee Ketch LGUI/LALT key transposed on Minivan layout (#20025) 2023-03-11 10:29:20 -07:00
azhizhinov
b281d6efa2 [Keyboard] Change pierce vendor ID (#20088) 2023-03-11 10:26:47 -07:00
ebastler
36292faf94 Teleport native bugfix (changed F411CC wear levelling) (#20090)
* workaround for flash size issue

* enable mousekeys due to requests by some users
2023-03-11 16:52:45 +00:00
Nick Brassel
e8a5630c7c Yet another adventure in trying to fit things into a 32U4 (#20091) 2023-03-11 23:56:01 +11:00
Christopher Hoage
96b0baa230 [Keyboard] Add Spleeb default and custom firmware (#19481)
Co-authored-by: jack <0x6a73@protonmail.com>
2023-03-10 22:33:52 -07:00
Vino Rodrigues
dbd1d3cba1 [Keyboard] Add Binpad BN009 R2 3x3 macropad (#19992)
Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2023-03-10 20:12:14 -08:00
azhizhinov
1d04a818d7 [Keyboard] VIA support for Pierce keyboard (#20045) 2023-03-10 19:47:03 -08:00
Andrew Kannan
df814dec7a Caerdroia Keyboard Firmware (#20036) 2023-03-10 10:57:11 -07:00
paulgali
950afdceeb Zeno pcb V0.0.4 update via + fileformatting (#20023)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2023-03-10 10:51:15 -07:00
Albert Y
7be63bb524 Move macro3 to data-driven (#20046) 2023-03-10 10:38:56 -07:00
Danny
943d0ff619 Fix incorrect matrix positions for RGB LEDs (#20082) 2023-03-10 16:08:07 +00:00
Andrew Kannan
bf4121a770 [Keyboard] Add Ortho48v2 Keyboard (#18889)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2023-03-10 02:23:53 -08:00
Kuribayashi Atsushi
24bf0dfb37 [Keyboard] Add tsubasa keyboard (#19352)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: jack <0x6a73@protonmail.com>
2023-03-10 01:20:37 -08:00
Paul Enrico N. Viola
3b89fb61e8 [Keyboard] update matrix pins for Polly40 (#20002) 2023-03-09 23:52:36 -08:00
Mark Stosberg
eed3eb0b1d [Keymap] add crkbd/keymaps/markstos (#19010)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2023-03-09 23:19:20 -08:00
frobiac
313fc4cb8f [Keyboard] frobiac custom boards and layout (#19883) 2023-03-09 23:05:20 -08:00
Budiman Jojo
62a8f41209 [Keymap] Fix the secondary keyboard not updating WPM (#20069) 2023-03-09 17:21:19 -07:00
Nick Brassel
ceb8222e57 Add CI builds for default and via keymaps (#20071) 2023-03-10 09:36:20 +11:00
Flame Soulis
17bbef5200 Keebio/KBO-5000 Encoder Misconfiguration Fix for #20073 (#20074) 2023-03-09 15:32:46 -05:00
Ryan
76fb534269 qmk info: add warning when layout is offset (#20070) 2023-03-09 20:27:04 +00:00
Anjheos
65f380c768 Adding firmware for New Proto[Typist] in-stock PCBs. (#19958)
Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Anjheos <Anjheos.Designs@gmail.com>
2023-03-09 12:42:09 -07:00
jack
9c79d2933c [Doc] Update PR checklist (#19988) 2023-03-08 12:58:23 -07:00
Albert Y
ec3c2b75de [Docs] Add mod-tap section header (#20041) 2023-03-08 12:36:36 -07:00
Cipulot
5e4d23c54c EC Pro 2 PCB (#19917)
* EC Pro 2 firmware by Cipulot
2023-03-08 10:43:57 +00:00
Freather
2317c768e4 [Keyboard] Teahouse Ayleen TKL (#19900)
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: jack <0x6a73@protonmail.com>
Co-authored-by: CMM.Studio Freather <50167286+frankBTHID@users.noreply.github.com>
2023-03-08 00:50:37 -08:00
Joel Challis
952b88528f Fix processing of recently added system keycodes (#20058) 2023-03-08 06:38:11 +00:00
Niles Tanner
c1664ac6e3 VIA keymap for djinn (#19881) 2023-03-08 09:50:32 +11:00
peepeetee
3d0f03f21e implement rgb matrix for momokai keyboards (#19904)
Co-authored-by: jack <0x6a73@protonmail.com>
2023-03-07 14:07:47 -07:00
Olivia
25cb1c6a5a [Keymap] Smooted's BM80v2 keymap (#19873) 2023-03-07 10:29:03 -08:00
Robert Mills
8812db1d64 [Keyboard] Add Karn Keyboard (#19846)
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2023-03-07 10:13:46 -08:00
Albert Y
e6e11dfde7 Add disable git safe directory check step (#20040) 2023-03-07 01:05:34 +00:00
Dmitry Nosachev
c8237a7691 [Keyboard] Sejin EAT-1010R2 keyboard (#19809)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: jack <0x6a73@protonmail.com>
2023-03-06 11:39:13 -08:00
souvlakeeb
f067f42305 [Docs] Discuss layout macro (#19803)
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2023-03-06 11:24:56 -08:00
gumorr
ca5eb9f664 [Keyboard] Add gummykey (#19695)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: jack <0x6a73@protonmail.com>
2023-03-06 11:17:29 -08:00
Leon Anavi
61f3f5676a keyboards/anavi: Add ANAVI Knobs 3 (#18624) 2023-03-05 18:28:01 -07:00
Joel Challis
500c4b7484 Reject VIA keys within info.json (#20026) 2023-03-06 10:07:47 +11:00
Sergey Vlasov
07b7fed122 Unbreak switchplate/southpaw_65 after #16277 (#20015)
Apparently the changes done in #16277 swapped the values read from the
PCA9555 expanders by mistake, which resulted in mixed up matrix columns.
Fix the chip and register addresses to match the original code.
2023-03-05 13:29:10 +00:00
lalalademaxiya1
77f7351991 Add Keychron Q12 (#19844)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2023-03-04 11:53:09 +11:00
Elliot Powell
127b53bd23 Add Support for Lilly58 r2g (#19862)
* Add support for lilly58 r2g by Mechboards
2023-03-03 23:04:00 +00:00
Guillermo Aguirre
95dd5738d2 Add new keymap for Preonic rev3 (#19706) 2023-03-03 15:01:22 -07:00
Nick Brassel
d1a430b348 Initial deprecation policy documentation. (#19908) 2023-03-03 14:16:32 +11:00
Nick Brassel
7ebb8c2dec Update branch names to reflect configurator's new deployment. (#19999) 2023-03-03 14:16:06 +11:00
Ryan
6fabc330e3 Check all keys have matrix positions when parsing C LAYOUT macros (#19781) 2023-03-02 10:56:45 +11:00
Albert Y
80c6fbad1c [Keyboard] Clean up contra & move to data-driven (#19973)
Co-authored-by: Joel Challis <git@zvecr.com>
2023-03-01 10:53:31 -07:00
David Rambo
f6390892e3 [Keymap] Add davidrambo lulu keymap (#19448)
Co-authored-by: Joel Challis <git@zvecr.com>
2023-03-01 10:49:33 -07:00
Paul Enrico N. Viola
aeb3ed64c3 added Polly40 keyboard (#19936)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: jack <0x6a73@protonmail.com>
2023-03-01 10:05:36 -07:00
Joel Challis
3fc9c03559 Remove all from list of animations in info.json (#19978) 2023-03-01 02:55:14 +00:00
Joel Challis
53727062db Disable safe.directory check (#19970) 2023-02-28 20:27:11 +00:00
gkeyboard
d35cdcc933 [Keyboard] Add GPAD8-2R (gpad8_2r) Macro Pad (#19914)
Co-authored-by: jack <0x6a73@protonmail.com>
2023-02-28 12:24:35 -08:00
Michal S
b85a9abc96 [Keymap] sofle/keymaps/michal: rewrite (#19938) 2023-02-28 12:23:47 -08:00
studiokestra
ee90ad28e6 [Keyboard] Add FRL84 PCB. (#19942)
Co-authored-by: jack <0x6a73@protonmail.com>
2023-02-28 12:22:14 -08:00
dependabot[bot]
e14254335d Bump tj-actions/changed-files from 34 to 35 (#19971)
Bumps [tj-actions/changed-files](https://github.com/tj-actions/changed-files) from 34 to 35.
- [Release notes](https://github.com/tj-actions/changed-files/releases)
- [Changelog](https://github.com/tj-actions/changed-files/blob/main/HISTORY.md)
- [Commits](https://github.com/tj-actions/changed-files/compare/v34...v35)

---
updated-dependencies:
- dependency-name: tj-actions/changed-files
  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>
2023-02-28 20:10:08 +00:00
Shawn Meier
0596720f7f [Keyboard] remove non-existent method from ploopy documentation (#19957) 2023-02-28 11:15:19 -08:00
Drashna Jaelre
051401175d [Keymap] Drashna updates for 0.20.0 (#19960) 2023-02-28 11:14:48 -08:00
Joel Challis
05631b276d Flag "builddefs" as core changes (#19950) 2023-02-28 14:18:43 +00:00
Nick Brassel
bacec14073 Merge remote-tracking branch 'upstream/develop' 2023-02-28 11:22:29 +11:00
Ryan
b865b9e170 Add changelog for Leader Key refactor (#19953) 2023-02-27 20:28:15 +11:00
Nick Brassel
1d182995ed Breaking Changes 2023q1 changelog. (#19945) 2023-02-27 08:41:42 +11:00
Joel Challis
bda28fa384 Hide hex output when building uf2 (#19940) 2023-02-26 15:24:43 +11:00
Ryan
89487677e3 keebio/kbo5000: fix encoder config (#19941) 2023-02-26 15:24:24 +11:00
Ryan
7e0299117b Move encoder config to data driven (#19923)
Co-authored-by: Nick Brassel <nick@tzarc.org>
2023-02-26 09:45:12 +11:00
Ryan
314f6c1ddb Move backlight config to data driven (#19910) 2023-02-26 08:37:57 +11:00
QMK Bot
ba7546a334 Merge remote-tracking branch 'origin/master' into develop 2023-02-25 06:04:23 +00:00
azhizhinov
d70e9b8659 [Keyboard] Update Reviung Vendor ID (#19928) 2023-02-25 17:03:43 +11:00
jack
9b410a9214 Remove VIA specific use of MACRO0* (#19918) 2023-02-23 18:54:01 +00:00
jack
e719f5e294 Open Use standard magic keycodes in yandrstudio keymaps (#19919) 2023-02-23 14:46:15 +00:00
Joel Challis
9f2cd9119f Reallocate user/kb keycode ranges (#19907) 2023-02-23 09:50:09 +11:00
Joel Challis
961f0b7b2d Reallocate SAFE_RANGE (#19909) 2023-02-23 09:49:07 +11:00
Ryan
ea77246865 Migrate some more layouts to data driven (#19889) 2023-02-23 09:32:18 +11:00
Ryan
3bf01bb9ed Move QMK LUFA bootloader config to data driven (#19879) 2023-02-23 09:20:23 +11:00
Nick Brassel
7f805cc779 VIA Protocol 12 + fixes (#19916)
Co-authored-by: Wilba <wilba@wilba.tech>
Co-authored-by: zvecr <git@zvecr.com>
2023-02-23 09:19:00 +11:00
Joel Challis
403b0addea Align magic keycodes (#19877) 2023-02-23 08:14:29 +11:00
precondition
93f2ed3abf [Bug] Fix compilation error when defining QUICK_TAP_TERM_PER_KEY (#19893) 2023-02-22 11:03:36 -08:00
jack
24a86d5fdb Fixup cannonkeys/satisfaction75 (readd backlight.breathing_period) (#19901) 2023-02-22 16:58:29 +11:00
Joel Challis
0512e286a6 Remove magic bodges from via keymaps (#19890) 2023-02-22 01:15:18 +00:00
Ryan
26854f5940 Remove default and unused BACKLIGHT_LEVELS (#19898) 2023-02-22 01:12:42 +00:00
Ryan
499fc3b85e Add some missing #pragma onces (#19902) 2023-02-21 15:55:23 +00:00
Ryan
9c0ce80d7e Move backlight config to data driven, part 1 (#19887) 2023-02-21 12:05:40 +11:00
QMK Bot
4b69225c22 Merge remote-tracking branch 'origin/master' into develop 2023-02-20 05:43:29 +00:00
Eugenio Pastoral
2133cc1011 New keymap for GMMK2 Compact (#19430)
Co-authored-by: Joel Challis <git@zvecr.com>
2023-02-19 22:42:42 -07:00
Joel Challis
7996be6db6 Refactor more KC_MISSION_CONTROL/KC_LAUNCHPAD usages (#19891) 2023-02-20 00:59:46 +00:00
zvecr
f71f7733a3 Fix date 2023-02-19 20:30:18 +00:00
zvecr
f5ccd04a5f Stub changelog 2023-02-19 20:23:01 +00:00
Ryan
330b73a2df Add license headers to all default layout keymaps (#19888) 2023-02-19 11:33:47 +00:00
Joel Challis
0152dd811d Move KC_MISSION_CONTROL/KC_LAUNCHPAD keycodes to core (#19884) 2023-02-19 18:59:50 +11:00
Ryan
e837a32b2b Move layouts for direct_pins boards to data driven (#19872) 2023-02-19 18:55:12 +11:00
QMK Bot
2222836f09 Merge remote-tracking branch 'origin/master' into develop 2023-02-19 05:42:36 +00:00
ThePanduuh
f93d72e57f [Keymap] Add encoder map to degenpad default keymap (#19880) 2023-02-18 22:41:58 -07:00
QMK Bot
3a23d0aab7 Merge remote-tracking branch 'origin/master' into develop 2023-02-19 03:14:42 +00:00
Kenny Hung (he)
08fc370621 BM40 keymap for Skewwhiffy, revamp (#19876) 2023-02-19 14:14:05 +11:00
Nick Brassel
1283863c0e Add mass-compile ability to filter by key existence. (#19885) 2023-02-18 18:04:50 -08:00
Drashna Jaelre
48a79b08cc Fix functions when NO_ACTION_TAPPING is defined (#11528) 2023-02-19 12:08:03 +11:00
QMK Bot
8f03657491 Merge remote-tracking branch 'origin/master' into develop 2023-02-18 17:38:42 +00:00
CoffeeIsLife
d2bed27414 Add mouse layer to Kprepublic BM40HSRGB Coffee layout (#19878)
Co-authored-by: Fae <faenkhauser@gmail.com>
2023-02-18 10:38:06 -07:00
fauxpark
b8b1cb04b2 Merge remote-tracking branch 'upstream/master' into develop 2023-02-19 04:35:43 +11:00
jonylee@hfd
3110a70f6f Add ac001 keyboard (#19868)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: jack <0x6a73@protonmail.com>
2023-02-18 10:28:56 -07:00
Paul James
59f5889e62 [Keyboard] Add LED startup sequence to Lumberjack (#19841) 2023-02-18 10:26:44 -07:00
Álvaro A. Volpato
7b5dee4064 Add caps lock indicator capabilities to M75S (#19552) 2023-02-18 10:12:44 -07:00
Joel Challis
f587a0c548 Align sequencer keycodes (#19875) 2023-02-18 15:44:36 +00:00
QMK Bot
c9cee5acca Merge remote-tracking branch 'origin/master' into develop 2023-02-18 08:14:13 +00:00
ThePanduuh
609b23af34 [Keyboard] Add Degenpad (#19812)
Co-authored-by: jack <0x6a73@protonmail.com>
2023-02-18 00:13:06 -08:00
pauper
7ce71625bc [Keyboard] Brick (#19851)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Jason Chestnut <jason@Jasons-MacBook-Pro.local>
2023-02-17 21:26:43 -08:00
jack
d1420cf1d9 Fixup pegasushoof VIA keymap (#19874) 2023-02-17 11:09:36 -08:00
Ryan
86885ecbcc Fix more build failures (#19869) 2023-02-18 02:21:00 +11:00
jack
a0708b2a78 Fixup for_science (#19867) 2023-02-17 19:17:35 +11:00
Drashna Jael're
92f85ce929 Merge remote-tracking branch 'origin/master' into develop 2023-02-16 22:34:35 -08:00
Emrik Östling
92ea53aeda Added via keymap for bpiphany/pegasushoof (#19653)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: jack <0x6a73@protonmail.com>
2023-02-16 22:29:22 -08:00
Ryan
8d5ad26310 Fix API generation (#19866) 2023-02-17 17:19:34 +11:00
Ryan
8f6c228adb Move SOFT_SERIAL_PIN to data driven (#19863) 2023-02-17 16:40:49 +11:00
Ryan
2da0827d4f Remove matrix size defines (#19581) 2023-02-17 16:08:25 +11:00
jack
40ed20dddc Fixup durgod/dgk6x (scroll lock mis-defined as num lock) (#19864) 2023-02-17 14:58:32 +11:00
QMK Bot
17a0ccb432 Merge remote-tracking branch 'origin/master' into develop 2023-02-17 03:19:59 +00:00
chickenman112
4a7894d98c [Keyboard] Add Ciel65 (#19847)
Co-authored-by: Sắn <59417802+MaiTheSan@users.noreply.github.com>
2023-02-16 20:19:13 -07:00
Ryan
43843e19b6 Clean up remaining rules.mk MCU/BOOTLOADERs (#19778)
Co-authored-by: Nick Brassel <nick@tzarc.org>
2023-02-17 14:15:06 +11:00
Ryan
f4ba17c4a0 Move LED indicator config to data driven (#19800) 2023-02-17 13:14:29 +11:00
Ryan
d784f78bd0 Move Bootmagic config to data driven (#19860) 2023-02-17 08:49:49 +11:00
Ryan
7fad94ba2d Remove unused RGBLight defines from config.h (#19859) 2023-02-17 08:13:41 +11:00
QMK Bot
86ab1c1331 Merge remote-tracking branch 'origin/master' into develop 2023-02-16 16:31:05 +00:00
TommyZ
beb9fcb8bc [Keyboard] Add Quarkeys Z40 keyboard (#19741)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2023-02-16 09:30:24 -07:00
Joel Challis
242f51007f Fix regen script for macOS (#19857) 2023-02-16 01:00:01 +00:00
QMK Bot
5e8c0e4d5f Merge remote-tracking branch 'origin/master' into develop 2023-02-15 22:41:33 +00:00
jack
9cf58ec834 Elaborate on keyboard level encoder functionality (#19839) 2023-02-15 15:40:47 -07:00
Drashna Jaelre
a63808c23f [Bug] Fix compiliation issue for Key Overrides (#19856) 2023-02-15 21:06:10 +00:00
QMK Bot
7bd049a79a Merge remote-tracking branch 'origin/master' into develop 2023-02-15 02:46:25 +00:00
jack
e4c41b4337 Fixup work_board VIA keymap (reduce firmware size) (#19850) 2023-02-15 13:45:40 +11:00
QMK Bot
47b7b4bcff Merge remote-tracking branch 'origin/master' into develop 2023-02-14 21:12:24 +00:00
Jeayo Keh
7ae9dbca1d [Keyboard] add ‘soda/pocket’ (#19838)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: jack <0x6a73@protonmail.com>
2023-02-14 14:11:45 -07:00
Pascal Getreuer
7d692d64f3 Fix Layer Mod handling of with right-handed mods. (#19845) 2023-02-14 12:44:42 -08:00
Albert Y
9908ed7ecd Add swap hands status function (#19831)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2023-02-14 12:44:18 -08:00
Ryan
2cdf99ae95 Migrate DIRECT_PINS to data driven (#19826) 2023-02-14 00:39:41 -07:00
QMK Bot
0b796b91a3 Merge remote-tracking branch 'origin/master' into develop 2023-02-14 07:38:14 +00:00
spbgzh
7d0358cfeb add new keyboard creek70 (#19789) 2023-02-14 00:37:12 -07:00
QMK Bot
b5b422335a Merge remote-tracking branch 'origin/master' into develop 2023-02-14 07:17:57 +00:00
Sắn
aa9882abd6 Add Eclipse60 / tinyneko (#19379) 2023-02-14 00:17:21 -07:00
QMK Bot
0bc804e6a1 Merge remote-tracking branch 'origin/master' into develop 2023-02-14 07:14:04 +00:00
Keith Wade
999200c05a Add keaboard keyboard (#19816)
Co-authored-by: Ryan <fauxpark@gmail.com>
2023-02-14 00:13:27 -07:00
しぐれ
12f02dd8be [Doc]Remove depracted extension links in vscode guide (#19842) 2023-02-14 03:23:36 +00:00
Dasky
74770ac79b Merge branch 'master' into develop 2023-02-14 03:05:44 +00:00
precondition
7a099b7ea5 Update KC_NLCK and KC_SLCK in international docs (#19521) 2023-02-14 02:49:17 +00:00
Albert Y
cd91a3ced7 Update fractal attribution comment (#19832) 2023-02-13 10:58:27 -07:00
Stefan Kerkmann
e922b46a86 Update pico-sdk to 1.5.0 (#19829) 2023-02-13 15:51:51 +01:00
jack
ef881364d4 Fixup swiftrax/bumblebee (reduce firmware size) (#19834) 2023-02-13 17:11:43 +11:00
jack
37fc08af84 Remove lingering I2CD2 usages w/ RP2040 (#19833) 2023-02-13 17:10:51 +11:00
Joel Challis
896d9aa98c Add rp2040_ce and add elite-pi and helios as alias (#19830)
* add rp2040_ce and add elite-pi and helios as alias (#19628)

* fix git mishap

* Update platforms/chibios/converters/promicro_to_rp2040_ce/_pin_defs.h

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

---------

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

* Tidy docs

---------

Co-authored-by: Conor Burns <mail@conor-burns.com>
2023-02-12 23:02:05 +00:00
Nick Brassel
b8ac4dddb6 Fixup develop compiles. (#19828) 2023-02-13 08:57:23 +11:00
QMK Bot
9828f9d256 Merge remote-tracking branch 'origin/master' into develop 2023-02-12 20:10:30 +00:00
Thomas
9a654e5728 [Keyboard] Add Blue Team Pad (#19807)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2023-02-12 12:09:43 -08:00
Drashna Jaelre
b47f179a4a Make Magic handling more consistent in Action Keycode handling (#9126)
Co-authored-by: Ryan <fauxpark@gmail.com>
2023-02-13 04:48:14 +11:00
Joel Challis
6ceff1367d Tidy up use of keycode range helpers (#19813) 2023-02-12 17:09:34 +00:00
QMK Bot
13af265268 Merge remote-tracking branch 'origin/master' into develop 2023-02-12 17:06:22 +00:00
souvlakeeb
3f45fd4924 Fix serial_driver.md list item numbering (#19819) 2023-02-12 17:05:46 +00:00
dexter93
3ae87b1555 core: allow locking the matrix state (#18852)
Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
Co-authored-by: Stefan Kerkmann <karlk90@pm.me>
Co-authored-by: Nick Brassel <nick@tzarc.org>
2023-02-13 03:38:36 +11:00
Eric.a Gebhart
db1eeea478 Add combo hook to allow per layer combo reference layers. (#16699)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
2023-02-13 03:31:04 +11:00
Ryan
bbf7a20b33 Refactor Leader key feature (#19632)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2023-02-13 03:19:02 +11:00
Joel Challis
d10350cd2c Restore packing of midi note keycodes (#19468) 2023-02-13 02:55:51 +11:00
fauxpark
b44e64a6bf Merge remote-tracking branch 'upstream/master' into develop 2023-02-13 00:20:19 +11:00
Sergey Vlasov
584b7cf801 Fix build failures with OPT = 0 due to inline functions (#19767)
Co-authored-by: Joel Challis <git@zvecr.com>
2023-02-12 17:14:34 +11:00
Drashna Jaelre
b1f4d49c43 [Bug] Fix tri layer compiler issue if NO_ACTION_LAYER is defined (#19821) 2023-02-12 17:07:01 +11:00
jack
9c6942ea40 Remove config.h include from quantum files (#19817) 2023-02-12 02:40:16 +00:00
Ryan
0afe0e2441 Fix layout aliases for two boards (#19818) 2023-02-12 02:38:47 +00:00
jack
ab1dd0faab Fixup ek65 -- add processor & bootloader in info.json (#19815) 2023-02-12 02:01:48 +00:00
jack
78d366fca6 Reduce synthlabs/060 firmware size (#19814) 2023-02-12 01:58:30 +00:00
Drashna Jaelre
fe02abc479 [Core] Tri Layer Keys (#19795)
Co-authored-by: wilba <wilba@wilba.tech>
Co-authored-by: Pablo Martínez <58857054+elpekenin@users.noreply.github.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Nick Brassel <nick@tzarc.org>
2023-02-12 10:23:07 +11:00
QMK Bot
4002843797 Merge remote-tracking branch 'origin/master' into develop 2023-02-11 20:38:10 +00:00
precondition
21f4375393 Update documentation for LM(layer, mod) (#19284)
* Update documentation for LM(layer, mod)

* Move LM table to caveats section
2023-02-11 20:37:30 +00:00
Joel Challis
90f3d6201a Reduce false positives in layout name validation (#19646) 2023-02-11 20:36:11 +00:00
QMK Bot
0a9d06a505 Merge remote-tracking branch 'origin/master' into develop 2023-02-11 19:08:39 +00:00
Luis Moreno
f667821ed3 [Docs] Resynchronizing Your Branch including submodules (#19268) 2023-02-11 12:07:51 -07:00
Drashna Jaelre
34bc896cf9 [Keyboard] Fix merge error with fave84 board (#19808) 2023-02-11 15:12:35 +11:00
Joel Challis
11d49d00e7 Remove matrix_init_quantum/matrix_scan_quantum (#19806) 2023-02-11 03:47:17 +00:00
Nick Brassel
9991894514 Generate encodermap output from keymap.json. (#18915)
Co-authored-by: Joel Challis <git@zvecr.com>
2023-02-11 13:45:51 +11:00
QMK Bot
01593501e3 Merge remote-tracking branch 'origin/master' into develop 2023-02-10 22:41:56 +00:00
Xelus22
1504e9ca4c Fix bear65 (#19805) 2023-02-10 22:41:18 +00:00
Jouke Witteveen
3137883956 Typographic updates to source generation (#19160) 2023-02-10 22:39:13 +00:00
Joel Challis
1d0b4c8d38 Tidy up use of keycode range helpers (#19756) 2023-02-10 21:10:14 +00:00
Joel Challis
2ffdec5dc2 Move more unicode ranges to DD (#19755) 2023-02-10 21:08:54 +00:00
QMK Bot
79b364d289 Merge remote-tracking branch 'origin/master' into develop 2023-02-10 18:06:46 +00:00
Xelus22
d0702b519d [Keyboard] Update Pachi RGB Rev2 VIA custom indicators (#19788) 2023-02-10 10:06:37 -08:00
Wolf Van Herreweghe
8c3e09b950 [Keyboard] Add the Twilight by MD (#19787)
Co-authored-by: Wolf <contact@vwolf.be>
2023-02-10 10:05:57 -08:00
QMK Bot
61009c506b Merge remote-tracking branch 'origin/master' into develop 2023-02-10 17:29:34 +00:00
kpagratis
b444e82985 [Keyboard] Add Dactyl 6x5 68 keys (#18679) 2023-02-10 10:28:39 -07:00
QMK Bot
55e671a6f9 Merge remote-tracking branch 'origin/master' into develop 2023-02-10 10:40:54 +00:00
Arialdo Martini
98ed19045d [Docs] Combos example consistently uses A B keys (#19792) 2023-02-10 02:40:15 -08:00
Pablo Martínez
95671148a4 [Docs] Change defines to enums in examples (#19793) 2023-02-10 02:39:35 -08:00
fauxpark
50cd320616 Merge remote-tracking branch 'upstream/master' into develop 2023-02-10 20:19:08 +11:00
yiancar
bccf2cba6a [Keyboard] Add alas keyboard (#19717)
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: yiancar <yiancar@gmail.com>
2023-02-10 01:09:40 -08:00
FLinguenheld
3b987f4a9d [Keyboard] Flinguenheld (#19661) 2023-02-10 01:07:39 -08:00
buzzlighter1
bc3c6f0831 Update buzzlighter1 keymap (#19757)
Co-authored-by: zvecr <git@zvecr.com>
2023-02-09 21:03:56 -07:00
Wolf Van Herreweghe
25ff06c01d Move FAve 84H to data driven design + Via Custom UI (#19763)
Co-authored-by: Wolf <contact@vwolf.be>
2023-02-09 20:59:03 -07:00
lalalademaxiya1
5208361dcb Update info.json for Keychron V10 (#19791) 2023-02-09 20:54:40 -07:00
Colin Kinloch
462ab3c4d2 [Keyboard] Add CXT Studio (#19531)
Co-authored-by: jack <0x6a73@protonmail.com>
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: Colin Kinloch <colin.kinloch@collabora.com>
2023-02-09 13:29:23 -08:00
djok0127
1b3b1427d2 [Keyboard] Add Igloo (#19678)
Co-authored-by: jack <0x6a73@protonmail.com>
2023-02-09 14:10:25 -07:00
Vertex-kb
bc78474906 [Keyboard] add arc60h (#18798)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2023-02-09 13:07:44 -08:00
Juno Nguyen
cdaac25861 [Keymap] junonum: community keymap improvement (#19727)
Co-authored-by: Minh-tri Nguyen <mtngx@PigeonMac.local>
Co-authored-by: Joel Challis <git@zvecr.com>
2023-02-09 13:07:00 -08:00
QMK Bot
40f0325af8 [CI] Format code according to conventions (#19794) 2023-02-09 14:04:20 -07:00
Vino Rodrigues
989f2476b6 [Keyboard] Add Binepad BNR1 v2 rotary encoder (#19770) 2023-02-09 13:01:21 -08:00
eason
9c6b8fae40 [Keyboard] Add greatsword80 (#19746)
Co-authored-by: jack <0x6a73@protonmail.com>
2023-02-09 13:57:31 -07:00
Alabahuy
4eb5c6803f Fix Matrix for kamigakushi (#19775) 2023-02-09 13:56:17 -07:00
Andrew Kannan
758766820d Add Type-B firmware to QMK (#19764)
Co-authored-by: jack <0x6a73@protonmail.com>
2023-02-09 13:55:26 -07:00
Katrina
e19cbe25f3 [Keyboard] Doio kb38 (#19650) 2023-02-09 12:43:22 -08:00
lalalademaxiya1
f07841cce3 [Keyboard] Added JIS version for Keychron Q2 (#19491)
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2023-02-09 12:40:17 -08:00
QMK Bot
6df5d64bb9 Merge remote-tracking branch 'origin/master' into develop 2023-02-09 19:36:44 +00:00
asdfire1
41a5046e89 [Keymap] Add colemak_luna keymap for crkbd (#19708)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2023-02-09 11:36:06 -08:00
miguelelinventor
e24f9b2c0a Add Michi MCU Converter support (#19163) 2023-02-09 11:27:37 -08:00
Ryan
c67285587c Fix errors flagged by generate-api (#19784) 2023-02-09 03:34:21 +00:00
QMK Bot
b0604aca47 Merge remote-tracking branch 'origin/master' into develop 2023-02-09 03:29:51 +00:00
Less/Rikki
ff6c44db25 [keyboard] reedskeebs/alish40 (#19754)
Co-authored-by: Kyle McCreery <mccreery.kyle@gmail.com>
2023-02-08 20:29:15 -07:00
Less/Rikki
7d677cfdff implement missing layouts + DD migration for wilba_tech/wt60_d (#19777) 2023-02-08 20:10:27 -07:00
Ramon Imbao
df3c9a5401 Rename ramonimbao folder to rmi_kb (#19699)
Co-authored-by: Joel Challis <git@zvecr.com>
2023-02-08 20:05:21 -07:00
Ryan
ccb6c908dd Remove SOFT_SERIAL_PIN for non-split boards (#19774)
* Remove `SOFT_SERIAL_PIN` for non-split boards

* Delete more empty config.h
2023-02-08 23:57:42 +00:00
Ryan
f9aeea64c1 Migrate MCU and BOOTLOADER to data-driven (#19529) 2023-02-08 18:41:46 +11:00
QMK Bot
3499677b6a Merge remote-tracking branch 'origin/master' into develop 2023-02-08 04:55:11 +00:00
beelzebubi
cf45a05296 [Keyboard] Add Bear65 v2 (#19578)
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Tom Sennewald <tom@sennewald.me>
2023-02-07 20:54:27 -08:00
QMK Bot
c2362b4bea Merge remote-tracking branch 'origin/master' into develop 2023-02-08 04:52:31 +00:00
mechlovin
e871ddaae8 [Keyboard] Fix the underglow RGB LED (#19622)
Co-authored-by: h40 <73354045+h40io@users.noreply.github.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2023-02-07 20:51:51 -08:00
QMK Bot
6dfaedb0d4 Merge remote-tracking branch 'origin/master' into develop 2023-02-08 04:43:26 +00:00
Laneware
aa3b64db2b [Keyboard] LW75 Support (#19506)
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2023-02-07 20:42:47 -08:00
QMK Bot
650864c27d Merge remote-tracking branch 'origin/master' into develop 2023-02-08 02:21:22 +00:00
soggywhale
a7febfbb62 changed the undefined ON and OFF parameters to thedefined constant (#19772) 2023-02-08 02:20:42 +00:00
Ryan
8d6bf19fc7 Remove unused SOFT_SERIAL_PIN from config.h (#19768) 2023-02-07 14:46:51 +00:00
QMK Bot
2202a25c35 Merge remote-tracking branch 'origin/master' into develop 2023-02-07 08:10:08 +00:00
QMK Bot
5dfaf0a218 [CI] Format code according to conventions (#19765) 2023-02-07 19:09:26 +11:00
QMK Bot
c9a1804ca7 [CI] Format code according to conventions (#19766) 2023-02-07 19:09:04 +11:00
QMK Bot
7a07e4a443 Merge remote-tracking branch 'origin/master' into develop 2023-02-07 07:54:49 +00:00
eason
4d5abe1e74 [Keyboard] Add aeroboard (#19087)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: jack <0x6a73@protonmail.com>
2023-02-07 00:54:10 -07:00
Ryan
11b6bb8179 Remove unused Bootmagic row/col defines from config.h (#19761) 2023-02-07 00:05:37 +00:00
Ryan
a988f8a169 Remove unused GRAVE_ESC_CTRL_OVERRIDE from config.h (#19752) 2023-02-06 02:40:23 +00:00
Ryan
f0618a1d53 Remove IS_HOST_LED_ON and migrate usages (#19753) 2023-02-06 02:36:09 +00:00
jack
d5e622b979 Remove DEBOUNCE macro usage (#19750) 2023-02-06 08:36:01 +11:00
QMK Bot
a5f36b156b Merge remote-tracking branch 'origin/master' into develop 2023-02-05 20:50:17 +00:00
Juno Nguyen
3dae56b634 [Keyboard] Add Brick (#19728) 2023-02-05 20:49:25 +00:00
Ryan
53b7dbe671 Remove unused LOCKING_SUPPORT_ENABLE from config.h (#19748) 2023-02-05 20:26:45 +00:00
Ryan
ebb512db82 Debounce defines cleanup (#19742)
* Clean up `DEBOUNCE` in config.h, 0-9

* Clean up `DEBOUNCE` in config.h, A

* Clean up `DEBOUNCE` in config.h, B

* Clean up `DEBOUNCE` in config.h, C

* Clean up `DEBOUNCE` in config.h, D

* Clean up `DEBOUNCE` in config.h, E

* Clean up `DEBOUNCE` in config.h, F

* Clean up `DEBOUNCE` in config.h, G

* Clean up `DEBOUNCE` in config.h, H

* Clean up `DEBOUNCE` in config.h, handwired

* Clean up `DEBOUNCE` in config.h, I

* Clean up `DEBOUNCE` in config.h, J

* Clean up `DEBOUNCE` in config.h, K

* Clean up `DEBOUNCE` in config.h, L

* Clean up `DEBOUNCE` in config.h, M

* Clean up `DEBOUNCE` in config.h, N

* Clean up `DEBOUNCE` in config.h, O

* Clean up `DEBOUNCE` in config.h, P

* Clean up `DEBOUNCE` in config.h, Q

* Clean up `DEBOUNCE` in config.h, R

* Clean up `DEBOUNCE` in config.h, S

* Clean up `DEBOUNCE` in config.h, T

* Clean up `DEBOUNCE` in config.h, U

* Clean up `DEBOUNCE` in config.h, V

* Clean up `DEBOUNCE` in config.h, W

* Clean up `DEBOUNCE` in config.h, X

* Clean up `DEBOUNCE` in config.h, Y

* Clean up `DEBOUNCE` in config.h, Z

* Remove default debounce from info.json

* Migrate non-default debounce to info.json
2023-02-03 19:19:58 +00:00
Joel Challis
fb6c9eaed4 Regen keycode_table for unit tests (#19721) 2023-02-03 05:05:45 +00:00
QMK Bot
a01a8949eb Merge remote-tracking branch 'origin/master' into develop 2023-02-03 02:15:02 +00:00
QMK Bot
17409dad54 Format code according to conventions (#19739) 2023-02-03 02:14:26 +00:00
QMK Bot
903a42f869 [CI] Format code according to conventions (#19740) 2023-02-03 13:10:32 +11:00
QMK Bot
18090062ea Merge remote-tracking branch 'origin/master' into develop 2023-02-03 02:05:26 +00:00
nendezkombet
4d09bfa076 [Keyboard] Add keebformom ortho 4x10 (#18104)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: jack <0x6a73@protonmail.com>
2023-02-02 19:04:47 -07:00
QMK Bot
11fc7bf0dd Merge remote-tracking branch 'origin/master' into develop 2023-02-03 01:01:13 +00:00
zhol0777
c3406eb8d7 [Keyboard] Add mkh studio bully (#19696) 2023-02-03 01:00:38 +00:00
QMK Bot
a1ecbaa45d Merge remote-tracking branch 'origin/master' into develop 2023-02-03 00:18:03 +00:00
Albert Y
87c4152738 Update handedness by define examples (#19687) 2023-02-03 00:17:05 +00:00
QMK Bot
0250de184d Merge remote-tracking branch 'origin/master' into develop 2023-02-03 00:15:41 +00:00
Kassandra Karan
8e9d109b8c Added MacOS Support for BigKnob (#19693) 2023-02-03 00:14:54 +00:00
Ryan
f20a05440e Remove unused MATRIX_HAS_GHOST from config.h (#19726) 2023-02-03 00:04:10 +00:00
QMK Bot
8c0267c0eb Merge remote-tracking branch 'origin/master' into develop 2023-02-02 21:34:50 +00:00
lalalademaxiya1
de6a6f963b [Keyboard] Add Keychron V6 (#19498)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2023-02-02 13:34:39 -08:00
lalalademaxiya1
10c3b9737f [Keyboard] Add Keychron V10 (#19504)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2023-02-02 13:34:18 -08:00
QMK Bot
007bcb2106 Merge remote-tracking branch 'origin/master' into develop 2023-02-02 21:34:07 +00:00
lalalademaxiya1
a76e70cfff [Keyboard] Add rev_0131 for Keychron Q0 (#19547)
Co-authored-by: Ryan <fauxpark@gmail.com>
2023-02-02 13:33:56 -08:00
TommyZ
d3b00d9594 [Keyboard] Add Quarkeys Z67 with solder and hotswap versions (#19465)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2023-02-02 13:33:31 -08:00
QMK Bot
2889f62179 Merge remote-tracking branch 'origin/master' into develop 2023-02-02 21:33:06 +00:00
Andrew Kannan
3115cdf663 [Keyboard] Add Crin (#18065)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Nick Brassel <nick@tzarc.org>
2023-02-02 13:32:22 -08:00
QMK Bot
a6900dd5c5 Merge remote-tracking branch 'origin/master' into develop 2023-02-02 20:15:05 +00:00
Nick Brassel
eeadbd2176 Politely ask people not to submit issues to add support for unknown keyboards. (#19737) 2023-02-03 07:14:26 +11:00
Pablo Martínez
d55b07696b Add commit info to version.h (#19542)
* Initial commit

* Fix import order

* Fix deleted code instead of debug print line

* Format

* Update lib/python/qmk/cli/generate/version_h.py

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

* Renaming

* Update lib/python/qmk/cli/generate/version_h.py

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

* Update lib/python/qmk/git.py

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

---------

Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
2023-02-02 18:23:27 +00:00
QMK Bot
53132ab9cf Merge remote-tracking branch 'origin/master' into develop 2023-02-02 18:18:26 +00:00
ziptyze
f7e69639b5 adding pi60 (#19431)
* updates to 1up product line

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: jack <0x6a73@protonmail.com>
2023-02-02 18:17:10 +00:00
jpe230
49c912f9b4 QP: Correct rotation and offset when using LVGL (#19713)
Co-authored-by: Nick Brassel <nick@tzarc.org>
Co-authored-by: Joel Challis <git@zvecr.com>
2023-02-02 14:31:54 +11:00
QMK Bot
7717630390 Merge remote-tracking branch 'origin/master' into develop 2023-02-01 18:55:53 +00:00
adiabatic
8dc66867e2 zweihander-macos: Update keys, add capslock (#19730)
* Update to current Scroll Lock/Power names

* Replace `'` with `⇪`
2023-02-01 18:55:12 +00:00
QMK Bot
1c772eb618 Merge remote-tracking branch 'origin/master' into develop 2023-02-01 17:27:17 +00:00
a_marmot
ca8b4b8e30 [Keyboard] Add modded Razer Orbweaver with RP2040 (#19711)
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
2023-02-01 10:26:37 -07:00
QMK Bot
0ee48d287a Merge remote-tracking branch 'origin/master' into develop 2023-02-01 14:14:10 +00:00
Patryk
252b041b97 add Mecx Labs mp1 macropad (#19064)
* add mecxlabs mp1 macropad
Co-authored-by: Joel Challis <git@zvecr.com>
2023-02-01 14:13:18 +00:00
Joel Challis
944b6107e2 Fix midi after recent refactoring (#19723) 2023-01-31 01:02:17 +00:00
Ryan
b867522f8c Clean up Force NKRO in config.h (#19718) 2023-01-30 20:45:41 +00:00
Joel Challis
d84a7351ea Strip out more of config_common (#19722) 2023-01-30 20:40:12 +00:00
Nick Brassel
f6dd8dea2e Remove usages of config_common.h from config.h files. (#19714) 2023-01-31 06:03:30 +11:00
Ryan
2d843088a2 Normalise Swap Hands keycodes (#19720) 2023-01-30 18:37:19 +00:00
QMK Bot
cc9520b7a0 Merge remote-tracking branch 'origin/master' into develop 2023-01-30 08:48:34 +00:00
Nick Brassel
e296d67146 Accumulate version.h generator flags. (#19716) 2023-01-30 08:47:46 +00:00
fauxpark
ef6505ad75 Merge remote-tracking branch 'upstream/master' into develop 2023-01-30 18:55:36 +11:00
Ryan
242b80c63f Move MIDI code out of tmk_core (#19704) 2023-01-30 18:47:50 +11:00
Joel Challis
968cc1fe7b Relocate diode direction definitions (#19715) 2023-01-30 15:10:40 +11:00
Ryan
2c878b1b16 Clean up qmk generate-autocorrect-data (#19710) 2023-01-30 03:37:02 +00:00
Wolf Van Herreweghe
328279ac59 Add base firmware for the Frog Numpad (#19698)
Co-authored-by: Wolf Van Herreweghe <wolfvh@getupgamesofficial.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: jack <0x6a73@protonmail.com>
2023-01-29 22:58:07 +00:00
yiancar
d322b4c041 [Keyboard] Baion 808 (#19690)
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: yiancar <yiancar@gmail.com>
2023-01-29 09:59:13 -07:00
Ryan
043d8e1140 Remove deprecated Quantum keycodes (#19712) 2023-01-29 16:44:16 +00:00
Joel Challis
80cc6ad187 Fix 19701 merge 2023-01-28 21:16:59 +00:00
Joel Challis
8cc2e0e906 Fix quantum ring_buffer for ChibiOS (#19683) 2023-01-28 21:07:51 +00:00
Joel Challis
832479c7fb Split out mcu_selection to platform (#19701) 2023-01-29 07:40:47 +11:00
Albert Y
981f3c316c Additional handedness by EEPROM examples (#19686)
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Dasky <32983009+daskygit@users.noreply.github.com>
2023-01-28 09:41:50 -07:00
Ryan
b727434391 Remove commented out backlight config & stray "backlight levels" (#19703) 2023-01-28 15:42:44 +00:00
azhizhinov
ce7bb63999 VIA keymap for Reviung 34. (#19694)
VIA keymap for Reviung 34.
2023-01-27 22:52:05 +00:00
adophoxia
acea06b4f5 [Keyboard] Update effects for Keychron Q2 (#19685) 2023-01-27 14:39:38 -07:00
Patrick Muldoon
9aaf1c26f0 Swap LED_PIN_ON_STATE to 0. (#19692)
User reported that CAPS lock Led state was inverted after soldering a LED to their board.

LED_PIN_ON_STATE defaults to 1, so just swap to low.

Flashed board and now CAPS LED reflects the actual state
2023-01-27 16:35:26 +00:00
Jay Greco
b3dca4bb36 Add RP2040 SCRAMBLE v2 (#19489) 2023-01-27 08:03:57 +00:00
wangfuco
f1b5659ba8 fix pegasushoof caps light, add via keymap (#19649)
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Fucong Wang <wangfuco@Fucongs-Mac-mini.local>
2023-01-26 23:11:29 -07:00
AnotherStranger
6e42b58549 VIA keymap for the dactyl manuform 4x6 (#19668)
Co-authored-by: adophoxia <100170946+adophoxia@users.noreply.github.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2023-01-26 14:14:34 -07:00
Charly Delay
19ecd69757 Rename LAYOUT macros identifier that contained the keyboard name (#19657) 2023-01-26 18:43:08 +00:00
QMK Bot
ad817a71a3 Merge remote-tracking branch 'origin/master' into develop 2023-01-26 16:35:07 +00:00
schwarzer-geiger
3823046712 new keyboard: edinburgh41 (#19569)
* added edinburgh41

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2023-01-26 16:34:27 +00:00
Sergey Vlasov
81ca83296f analog.c: Fix pinToMux() for STM32F0xx (#19658)
The `adc_read()` code for STM32F0xx expects to get the 0-based channel
number in `mux.input`, but the `pinToMux()` code for STM32F0xx was
attempting to pass the CHSELR bit mask in that field, which resulted in
selecting a wrong channel, therefore `analogReadPin()` did not work
properly for the STM32F0xx chips.  Fix `pinToMux()` to put the channel
number in that field (this matches the behavior for other supported
chips and also allows selection of channels 16...18, which can be used
to access the builtin temperature, reference voltage and VBAT sensors).
2023-01-25 01:47:55 +00:00
QMK Bot
0edf478a53 Merge remote-tracking branch 'origin/master' into develop 2023-01-25 00:20:11 +00:00
Darkhan
fa132baa43 Decrease LED animation frequency to improve performance (#19677) 2023-01-25 11:19:32 +11:00
QMK Bot
019c3217a6 Merge remote-tracking branch 'origin/master' into develop 2023-01-24 20:03:41 +00:00
Christian Brauner
8af872056a [Keymap] Update brauner preonic layout (#19665) 2023-01-24 12:03:05 -08:00
QMK Bot
7ff55e67e1 Merge remote-tracking branch 'origin/master' into develop 2023-01-24 15:18:09 +00:00
arrowj
419a7944a4 Update understanding_qmk.md (#19664)
Changed "...4 row by 5 column numpad" to "...5 row by 4 column numpad" on line 46.
2023-01-24 15:17:24 +00:00
QMK Bot
d14863c00b Merge remote-tracking branch 'origin/master' into develop 2023-01-24 14:20:10 +00:00
Natan-P
b24fa2f9db escaped stray backslash in bux.py (#19667) 2023-01-24 14:19:34 +00:00
QMK Bot
8767e74c82 Merge remote-tracking branch 'origin/master' into develop 2023-01-24 09:20:21 +00:00
MJM
1c69682605 [Keyboard] Add the Black Hellebore (#19655) 2023-01-24 01:19:42 -08:00
QMK Bot
fca6d16b55 Merge remote-tracking branch 'origin/master' into develop 2023-01-24 08:52:36 +00:00
adophoxia
695c4c6030 [Keyboard] Add missing dip_switch_update_kb for Keychron V2 (#19674) 2023-01-24 00:51:45 -08:00
QMK Bot
025e530f46 Merge remote-tracking branch 'origin/master' into develop 2023-01-24 08:05:37 +00:00
jack
4d180c935a fixup splitkb/kyria VIA keymap (#19676) 2023-01-24 08:04:56 +00:00
jack
dd7b244872 Fixup handwired/jscotto/scotto40 (#19675) 2023-01-23 23:24:56 -07:00
QMK Bot
79d5f2feb3 Merge remote-tracking branch 'origin/master' into develop 2023-01-24 05:43:18 +00:00
cole smith
4c6415d768 [Keyboard] Fix boardsource/lulu/avr encoder pins (#19672) 2023-01-23 22:42:38 -07:00
Stefan Kerkmann
8ca3f0fb7c [Bug] rp2040: fix timer wrap deadlock in ws2812 vendor driver (#19652)
Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
2023-01-23 22:24:21 +01:00
Nick Brassel
ea05045923 Allow overriding of keymap/encodermap layer count. (#19325) 2023-01-24 07:10:03 +11:00
David Hoelscher
aea1194ea3 Corrections to uart driver for Chibios platform (#19075) 2023-01-24 07:05:47 +11:00
QMK Bot
dfb28334e4 Merge remote-tracking branch 'origin/master' into develop 2023-01-23 10:23:39 +00:00
youturn45
4e658d47f8 [Keymap] Add youturn/yt keymap for think65 (#19300)
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Jue Liu <youturn@Jues-MacBook-Pro.local>
2023-01-23 02:23:00 -08:00
QMK Bot
0a51ea28fa Merge remote-tracking branch 'origin/master' into develop 2023-01-23 09:39:16 +00:00
Joe Scotto
9c7490d7cb [Keyboard] Add Scotto40 Keyboard (#18453)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2023-01-23 01:38:22 -08:00
Joel Challis
603c86b6a2 Run format-text on keyboard PRs (#19656) 2023-01-22 14:15:10 +11:00
QMK Bot
713003b7fd Merge remote-tracking branch 'origin/master' into develop 2023-01-20 19:43:58 +00:00
era
300a0def4e Change era65 keymap&debounce_type (#19627) 2023-01-20 12:43:11 -07:00
Ryan
cf935d97ae Fix functions with empty params (#19647)
* Fix functions with empty params

* Found a bunch more
2023-01-20 16:21:17 +00:00
QMK Bot
0f77ae6a20 Merge remote-tracking branch 'origin/master' into develop 2023-01-20 11:23:34 +00:00
leah-splitkb
64c399ba38 [Keyboard] Add Kyria rev3 (#19423) 2023-01-20 11:22:53 +00:00
QMK Bot
560b981746 Merge remote-tracking branch 'origin/master' into develop 2023-01-20 05:44:42 +00:00
Joel Challis
53cc6170ae Refactor some layouts which contain keyboard name (#19645)
* Refactor some layouts which contain keyboard name

* use planck_mit
2023-01-20 05:44:05 +00:00
QMK Bot
64c04640ce Merge remote-tracking branch 'origin/master' into develop 2023-01-20 04:30:21 +00:00
dztech
18d107b29b Og60 fix indicator (#19631) 2023-01-19 21:29:48 -07:00
QMK Bot
b738d52160 Merge remote-tracking branch 'origin/master' into develop 2023-01-20 04:24:40 +00:00
Leo Deng
255e138ee1 djam add rgb matrix (#19621) 2023-01-19 21:24:06 -07:00
Joel Challis
fe6502f12e Publish keymap.json to API (#19167) 2023-01-20 03:38:19 +00:00
Joel Challis
27504d974d Fix converter alias after 19603 (#19644) 2023-01-20 02:41:10 +00:00
QMK Bot
c6d7f61e79 Merge remote-tracking branch 'origin/master' into develop 2023-01-20 02:37:07 +00:00
Joel Challis
f2ad3ba7c3 Refactor some layouts which contain keyboard name (#19643) 2023-01-20 02:36:30 +00:00
QMK Bot
771d85b86f Merge remote-tracking branch 'origin/master' into develop 2023-01-20 02:35:58 +00:00
Joel Challis
5e502c3265 Remove stray UNUSED_PINS (#19639) 2023-01-20 02:35:18 +00:00
QMK Bot
64d5ef4056 Merge remote-tracking branch 'origin/master' into develop 2023-01-20 02:00:19 +00:00
Joel Challis
891780b17f Refactor some layouts which contain keyboard name (#19642) 2023-01-20 01:59:46 +00:00
Joel Challis
cc9a3a84d0 Fix mk0_avr_extra PIN_COMPATIBLE lint warning (#19640) 2023-01-20 01:59:27 +00:00
QMK Bot
d6ba3b4b84 Merge remote-tracking branch 'origin/master' into develop 2023-01-19 23:09:55 +00:00
leviport
e5b36e2c3f Docs: typo fixes in platformdev_blackpill_f4x1.md (#19635) 2023-01-19 16:09:11 -07:00
QMK Bot
e99b2b6ec8 Merge remote-tracking branch 'origin/master' into develop 2023-01-19 11:31:19 +00:00
Nick Brassel
22be5190ab Minor cleanup to breaking/checklist docs. (#19596)
Co-authored-by: Ryan <fauxpark@gmail.com>
2023-01-19 22:30:16 +11:00
Joel Challis
4973950ddc Print distro in doctor output (#19633) 2023-01-19 10:25:47 +00:00
QMK Bot
3723c0e3d5 Merge remote-tracking branch 'origin/master' into develop 2023-01-19 01:06:08 +00:00
Nick Brassel
327f7ee9a7 Fixup ChibiOS header inclusion search ordering. (#19623)
* Add STM32F446-Nucleo onekey. 

* Fixup onekey build for F446, all keymaps.

* Fixup board inclusion search ordering.
2023-01-19 01:05:29 +00:00
Joel Challis
0b25528b6b Fix 'No LAYOUTs defined' check (#19537) 2023-01-19 00:27:11 +00:00
Joel Challis
0ce3f6bcfe De-duplicate platform detection (#19603) 2023-01-19 00:27:00 +00:00
Joel Challis
a1f253cbef qmk compile/qmk flash - Validate keymap argument (#19530) 2023-01-19 00:24:13 +00:00
Nick Brassel
baecc69da5 Add support for current/voltage measurement on Ghoul. (#19630) 2023-01-19 11:13:39 +11:00
Nick Brassel
4723f308ad Remove CLI commands: multibuild, cformat, fileformat, pyformat. (#19629) 2023-01-19 10:56:15 +11:00
Joel Challis
88ec588ae7 Remove make all-<platform> build targets (#19496) 2023-01-19 10:44:41 +11:00
Sergey Vlasov
272281f1a0 Add analog support for RP2040 (#19453)
Co-authored-by: Ryan <fauxpark@gmail.com>
2023-01-19 10:30:58 +11:00
Joel Challis
12f1a30d16 Add alias support for converters (#19563) 2023-01-18 23:16:33 +00:00
QMK Bot
364a910b92 Merge remote-tracking branch 'origin/master' into develop 2023-01-18 22:37:06 +00:00
Joel Challis
82a94ea1bd Add f303 to tinyuf2 bootloader support (#19620) 2023-01-18 22:36:58 +00:00
Nick Brassel
17c9388af5 Allow for wildcard filtering in qmk mass-compile (#19625) 2023-01-18 22:36:32 +00:00
QMK Bot
dcd532830d Merge remote-tracking branch 'origin/master' into develop 2023-01-18 08:56:13 +00:00
Shandon Anderson
d73ad52040 [Keyboard] Add Mino Plus Keyboard (#19535)
Co-authored-by: Shandon Anderson <shandon@shandon.codes>
2023-01-18 00:55:34 -08:00
QMK Bot
83a6f6534c Merge remote-tracking branch 'origin/master' into develop 2023-01-18 08:55:20 +00:00
spbgzh
e6ec2bde07 [Keyboard] Add tata80 (#19445)
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2023-01-18 00:54:20 -08:00
QMK Bot
4858059280 Merge remote-tracking branch 'origin/master' into develop 2023-01-18 01:39:32 +00:00
lukeski14
f5a31fdda6 updating productId for via compat (#19611) 2023-01-18 01:38:53 +00:00
QMK Bot
bd7c396c18 Merge remote-tracking branch 'origin/master' into develop 2023-01-18 01:22:55 +00:00
Albert Y
204ba02765 Use consistent highlight format (#19619) 2023-01-18 01:22:34 +00:00
Albert Y
eb7a8d994a Reduce RGB maximum brightness (#19618) 2023-01-18 01:22:19 +00:00
QMK Bot
949bdd22ef Merge remote-tracking branch 'origin/master' into develop 2023-01-18 00:26:53 +00:00
Albert Y
737e6bf027 Highlight inclusion of extern macro (#19614) 2023-01-18 00:26:16 +00:00
Dean Scarff
8e16920530 [Keyboard] keebio/iris document LED matrix (#19588) 2023-01-17 12:54:16 -08:00
QMK Bot
13fe1a9fe8 Merge remote-tracking branch 'origin/master' into develop 2023-01-17 17:47:06 +00:00
Anton
d907f104aa [Keymap] Add saph1s keymap for KPrepublic BM80v2 (#19608)
Co-authored-by: jack <0x6A73@pm.me>
2023-01-17 10:46:33 -07:00
QMK Bot
d448ff4c17 Merge remote-tracking branch 'origin/master' into develop 2023-01-17 07:40:37 +00:00
QMK Bot
625e57480f Format code according to conventions (#19615) 2023-01-16 23:39:09 -08:00
QMK Bot
3b60a05ae1 Merge remote-tracking branch 'origin/master' into develop 2023-01-17 05:57:55 +00:00
Ivan Gromov
9f84b9ac09 [Keyboard] Add kt3700 (#19432)
Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2023-01-16 21:57:18 -08:00
QMK Bot
275673c562 Merge remote-tracking branch 'origin/master' into develop 2023-01-17 05:57:09 +00:00
JW2586
c6cc104810 [Keyboard] Waterfowl - Updated default keymap (#19438)
Co-authored-by: jack <0x6a73@protonmail.com>
2023-01-16 21:56:37 -08:00
QMK Bot
69397d4fe2 Merge remote-tracking branch 'origin/master' into develop 2023-01-17 05:49:24 +00:00
Alabahuy
7b795b2921 [Keyboard] add kamigakushi (#19514) 2023-01-16 21:48:44 -08:00
Jouke Witteveen
db7ca07909 Process Tap Dances before WPM/Velocikey (#19599) 2023-01-16 21:23:57 -08:00
QMK Bot
a52b3aafd2 Merge remote-tracking branch 'origin/master' into develop 2023-01-17 04:34:24 +00:00
d-floe
49f3ffa264 [Keyboard] Add Bubble 75 (#18863)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2023-01-16 20:33:49 -08:00
QMK Bot
2cf904b20d Merge remote-tracking branch 'origin/master' into develop 2023-01-17 01:55:46 +00:00
era
4098ff5574 [Keyboard] Add ERA65 (#19591)
Co-authored-by: Ryan <fauxpark@gmail.com>
2023-01-16 17:55:13 -08:00
Albert Y
0ff52925c0 Refactor pixel rain animation (#19606) 2023-01-16 17:54:51 -08:00
Ryan
7acc3f4449 ChibiOS: Consolidate report sending code (#19607) 2023-01-16 17:54:26 -08:00
QMK Bot
6fd4d8c7ee Merge remote-tracking branch 'origin/master' into develop 2023-01-16 22:42:25 +00:00
Tom Barnes
465b6a14e3 Docs/space b cleanup (#19612)
* Clean up remaining mentions of the deprecated Space B reset method

* cleanup auto_tag.yml that got sucked in
2023-01-16 22:41:52 +00:00
QMK Bot
4c7f67f724 Merge remote-tracking branch 'origin/master' into develop 2023-01-16 09:33:19 +00:00
Pablo Martínez
2bff00e1ba Small doc changes (#19601) 2023-01-16 01:32:43 -08:00
QMK Bot
b6e42db64b Merge remote-tracking branch 'origin/master' into develop 2023-01-16 08:52:56 +00:00
Sergey Vlasov
917d93e968 [Docs] Fix JOYSTICK_AXIS_COUNT name in docs (#19605) 2023-01-16 00:52:18 -08:00
QMK Bot
b077e633c0 Merge remote-tracking branch 'origin/master' into develop 2023-01-16 08:49:16 +00:00
adiabatic
4f83b673bd [Keymap] Improve Zweihander layout for the Ergodox EZ (#18737) 2023-01-16 00:48:41 -08:00
QMK Bot
401b4753fd Merge remote-tracking branch 'origin/master' into develop 2023-01-16 00:56:04 +00:00
Ryan Baker
fe27e46e6d [Keyboard] Add rb87 (#19546) 2023-01-15 16:55:30 -08:00
Sergey Vlasov
955829bfd0 Fix joystick build for ChibiOS (#19602)
`joystick_report_t` was renamed to `report_joystick_t`, but apparently
one place in the code was missed.
2023-01-15 23:29:29 +00:00
Joel Challis
0730740add Add mmoskal/uf2-stm32f103 bootloader support (#19594) 2023-01-15 15:04:32 +00:00
Ryan
a92071494a usb_main.c: remove CH_KERNEL_MAJOR check (#19597) 2023-01-15 19:40:52 +11:00
QMK Bot
80464674d3 Merge remote-tracking branch 'origin/master' into develop 2023-01-15 08:03:56 +00:00
Christian Brauner
44bcde102d [Keymap] Update brauner preonic layout (#19595) 2023-01-15 00:03:27 -08:00
jack
2c98e795f7 [Keyboard] Fixup gingko65 matrix pins (#19589) 2023-01-15 00:03:16 -08:00
QMK Bot
d40516c3c7 Merge remote-tracking branch 'origin/master' into develop 2023-01-15 03:58:42 +00:00
jurassic73
e7d1b210ba [Keyboard] Update handwired/split89 to new standard. (#19540)
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2023-01-14 19:58:09 -08:00
QMK Bot
5f46e29c72 Merge remote-tracking branch 'origin/master' into develop 2023-01-15 03:47:13 +00:00
Bastien BALOUP
4a53d9c431 [Keymap] Add Bastian-Baloup sofle keymap (#18836)
Co-authored-by: Ryan <fauxpark@gmail.com>
2023-01-14 19:46:13 -08:00
David Hoelscher
45851a10f6 Add RGB565 and RGB888 color support to Quantum Painter (#19382) 2023-01-14 21:24:54 +11:00
QMK Bot
5873fbe569 Merge remote-tracking branch 'origin/master' into develop 2023-01-14 02:25:42 +00:00
Renegade-Master
3f2cbc9e68 Pr/reorder docker podman check (#19561) 2023-01-14 13:25:07 +11:00
QMK Bot
6f575fb23b Merge remote-tracking branch 'origin/master' into develop 2023-01-13 22:21:11 +00:00
gitdrik
9c02b2990a Updates to gitdrik Planck keymap (#19585) 2023-01-13 22:19:57 +00:00
QMK Bot
83c6454a76 Merge remote-tracking branch 'origin/master' into develop 2023-01-13 11:09:14 +00:00
Duccio
d196ab56d3 [bluebell/Swoop] Enable RGB underlight by default (#19501) 2023-01-13 03:08:12 -08:00
QMK Bot
867f2fb280 Merge remote-tracking branch 'origin/master' into develop 2023-01-13 11:04:54 +00:00
Jens Peter Secher
0de7ccedac [Keyboard] Acacia keyboard (#19532) 2023-01-13 03:04:16 -08:00
QMK Bot
a306a31042 Merge remote-tracking branch 'origin/master' into develop 2023-01-13 11:04:13 +00:00
Rucker Machine
e1feab3167 [Keyboard] Add additional layout to RM_Numpad (#19534)
Co-authored-by: jason <jrucker2004@gmail.com>
2023-01-13 03:03:37 -08:00
QMK Bot
d44581b036 Merge remote-tracking branch 'origin/master' into develop 2023-01-13 10:59:53 +00:00
jack
b756c53c7b [Docs] Touch up documentation templates & porting keyboard docs (#19573) 2023-01-13 02:58:38 -08:00
QMK Bot
28832cf54c Merge remote-tracking branch 'origin/master' into develop 2023-01-13 10:58:09 +00:00
James Young
c965243bb7 Synth Labs 060 Layout Additions and Fixes (#19575) 2023-01-13 02:57:35 -08:00
QMK Bot
5a3c9d3efd Merge remote-tracking branch 'origin/master' into develop 2023-01-13 10:57:14 +00:00
James Young
aba0441117 Teleport Native Layout Implementation Rework (#19576) 2023-01-13 02:55:37 -08:00
QMK Bot
c35798f282 Merge remote-tracking branch 'origin/master' into develop 2023-01-13 06:49:24 +00:00
James Young
9a4c7a48ba Quarkeys Z60 Layout Addtions (#19568)
* quarkeys/z60/hotswap: rename LAYOUT to LAYOUT_60_ansi_tsangan_split_rshift

* quarkeys/z60/solder: add matrix diagram

* quarkeys/z60/solder: rename LAYOUT to LAYOUT_all

* quarkeys/z60/solder: add LAYOUT_60_ansi

* quarkeys/z60/solder: add LAYOUT_60_ansi_split_bs_rshift

* quarkeys/z60/solder: add LAYOUT_60_iso

* quarkeys/z60/solder: add LAYOUT_60_iso_split_bs_rshift

* quarkeys/z60/solder: add LAYOUT_60_ansi_tsangan

* quarkeys/z60/solder: add LAYOUT_60_tsangan_hhkb

* quarkeys/z60/solder: add LAYOUT_60_iso_tsangan

* quarkeys/z60/solder: enable Community Layout support
2023-01-12 22:48:50 -08:00
QMK Bot
33da7f77a4 Merge remote-tracking branch 'origin/master' into develop 2023-01-13 06:39:24 +00:00
Jonathan Moallem
c1aef03e98 Rectified ins/del layout macro ordering of Keychron Q1 ANSI (#19560) 2023-01-13 17:38:50 +11:00
QMK Bot
e57d703d50 Merge remote-tracking branch 'origin/master' into develop 2023-01-12 11:30:07 +00:00
Tom Barnes
0cff636739 weact docs patch re "security vulnerability" (#19572) 2023-01-12 22:29:25 +11:00
Stefan Kerkmann
ec09087543 Update ChibiOS[-Contrib], SIO driver, configs (#17915)
Co-authored-by: Nick Brassel <nick@tzarc.org>
2023-01-12 21:47:36 +11:00
QMK Bot
81513ab5f5 Merge remote-tracking branch 'origin/master' into develop 2023-01-12 09:57:20 +00:00
Peter Park
6e4b4a1360 [Keymap] Add The Uni Utility Belt Keymap (#19411)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Peter Park <peter@Peters-MacBook-Air.local>
2023-01-12 01:56:34 -08:00
Christian Brauner
2b5e5d9047 [Keymap] Add brauner preonic layout (#19444) 2023-01-12 01:56:12 -08:00
QMK Bot
4cfdefa2b5 Merge remote-tracking branch 'origin/master' into develop 2023-01-12 07:45:52 +00:00
Ramon Imbao
62eba54092 [Keyboard] Add Plywrks Ji-Eun (#18276) 2023-01-11 23:45:08 -08:00
Joel Challis
1bbacec44d Promote CTPC warning to error (#19565) 2023-01-11 22:44:55 +00:00
QMK Bot
53caeb7952 Merge remote-tracking branch 'origin/master' into develop 2023-01-11 22:34:07 +00:00
James Young
74d8f16c1d Keychron V3: correct layout data (#19567)
* keychron/v3/ansi_encoder: correct layout data

* keychron/v3/iso_encoder: correct layout data
2023-01-11 22:33:30 +00:00
Joel Challis
b61654fb95 Tidy up use of CTPC (#19570) 2023-01-11 22:31:54 +00:00
Drashna Jael're
6576127b4c Merge remote-tracking branch 'origin/master' into develop 2023-01-11 14:18:08 -08:00
James Young
377f87cb7e Keychron V1: correct layout data for ANSI versions (#19558)
* keychron/v1/ansi: correct layout data

* keychron/v1/ansi_encoder: correct layout data
2023-01-11 12:50:11 -08:00
Joel Challis
46c85c93f0 Revert "De-duplicate platform detection (#19545)" (#19564)
This reverts commit e11235ee14.
2023-01-11 19:58:27 +00:00
Joel Challis
e11235ee14 De-duplicate platform detection (#19545) 2023-01-11 02:13:32 +00:00
Joel Challis
20474ae232 Fix CLI community detection (#19562) 2023-01-11 12:38:35 +11:00
Drashna Jaelre
a1676c3b8c [Keyboard] Work Louder updates for via v3 (#19555) 2023-01-10 16:35:33 -08:00
QMK Bot
f4a25bcfaf Merge remote-tracking branch 'origin/master' into develop 2023-01-10 16:34:14 +00:00
James Young
5e5b19cf94 Keychron S1 ANSI Layout Touch-Up (#19556) 2023-01-10 15:09:09 +00:00
QMK Bot
6b81ba1d4c Merge remote-tracking branch 'origin/master' into develop 2023-01-10 09:06:09 +00:00
squarecut
aba67829e9 [Keymap] Kbdfans Tiger 80 keymap & Planck keymap (#19428)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Abhishek Malavalli <abhishek.malavalli@fphcare.co.nz>
2023-01-10 01:05:31 -08:00
QMK Bot
64dea51094 Merge remote-tracking branch 'origin/master' into develop 2023-01-10 06:39:27 +00:00
Filip Paryż
4d83583410 [Keymap] Updated Freoduo keymap (#19351) 2023-01-09 22:38:54 -08:00
QMK Bot
8bc85c0f42 Merge remote-tracking branch 'origin/master' into develop 2023-01-10 03:22:17 +00:00
Drashna Jaelre
90fd08bf4b [Bug] Use correct functions for RGB Matrix support in VIA (#19554) 2023-01-10 03:21:38 +00:00
Ryan
56555c61e1 Migrate LAYOUTS to data driven (#19541)
* Migrate `LAYOUTS` to data driven, 0-9

* Migrate `LAYOUTS` to data driven, A

* Migrate `LAYOUTS` to data driven, B

* Migrate `LAYOUTS` to data driven, C

* Migrate `LAYOUTS` to data driven, D

* Migrate `LAYOUTS` to data driven, E

* Migrate `LAYOUTS` to data driven, F

* Migrate `LAYOUTS` to data driven, G

* Migrate `LAYOUTS` to data driven, H

* Migrate `LAYOUTS` to data driven, handwired

* Migrate `LAYOUTS` to data driven, I

* Migrate `LAYOUTS` to data driven, J

* Migrate `LAYOUTS` to data driven, K

* Migrate `LAYOUTS` to data driven, L

* Migrate `LAYOUTS` to data driven, M

* Migrate `LAYOUTS` to data driven, N

* Migrate `LAYOUTS` to data driven, O

* Migrate `LAYOUTS` to data driven, P

* Migrate `LAYOUTS` to data driven, Q

* Migrate `LAYOUTS` to data driven, R

* Migrate `LAYOUTS` to data driven, S

* Migrate `LAYOUTS` to data driven, T

* Migrate `LAYOUTS` to data driven, U

* Migrate `LAYOUTS` to data driven, V

* Migrate `LAYOUTS` to data driven, W

* Migrate `LAYOUTS` to data driven, X

* Migrate `LAYOUTS` to data driven, Y

* Migrate `LAYOUTS` to data driven, Z
2023-01-10 02:48:20 +00:00
QMK Bot
59ae682dc9 Merge remote-tracking branch 'origin/master' into develop 2023-01-10 00:49:04 +00:00
Dennis Kruyt
caca029e12 [Keyboard] add YMDK40 AIR40 (#19276)
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2023-01-09 16:48:11 -08:00
QMK Bot
2dd4359181 Merge remote-tracking branch 'origin/master' into develop 2023-01-09 23:50:53 +00:00
Manna Harbour
0becd33c4d [keyboard] Enable community layout support (#19499) 2023-01-09 23:50:18 +00:00
QMK Bot
14fabfd893 Merge remote-tracking branch 'origin/master' into develop 2023-01-09 21:34:03 +00:00
Nick Brassel
01de98428c [Keychron Q5] Build failures: recursive function call. (#19553) 2023-01-10 08:33:28 +11:00
QMK Bot
3a726203a4 Merge remote-tracking branch 'origin/master' into develop 2023-01-09 20:19:56 +00:00
Nick Brassel
2891d901c3 New ChibiOS SVN URL, added new release. (#19493) 2023-01-10 07:19:20 +11:00
Joel Challis
b57714f793 qmk doctor - Handle timeouts while checking binaries (#19549) 2023-01-09 09:27:41 +00:00
Joel Challis
a3ed1b0c8d Relax converter within keymap schema (#19544) 2023-01-09 09:23:02 +00:00
Joel Challis
1b045b1e60 Handle doctor permission issues while checking udev (#19548) 2023-01-09 08:21:21 +00:00
QMK Bot
cf55032485 Merge remote-tracking branch 'origin/master' into develop 2023-01-08 15:27:43 +00:00
Joel Challis
1c024bfa91 Add some missing layout data (#19539) 2023-01-08 15:26:37 +00:00
QMK Bot
c172ae107e Merge remote-tracking branch 'origin/master' into develop 2023-01-07 17:07:51 +00:00
Joel Challis
f6023a36bc Remove invalid pin_compatible config from defaults (#19512) 2023-01-07 17:07:19 +00:00
Joel Challis
974a1eaf2a Ignore defaults.hjson values if already set (#19511)
* Ignore defaults.hjson values if already set

* Add warning when nothing is merged
2023-01-07 17:05:53 +00:00
QMK Bot
403c7eeb5c Merge remote-tracking branch 'origin/master' into develop 2023-01-07 17:03:18 +00:00
Joel Challis
c5e3275299 Fix handwired/onekey/kb2040 WS2812 pin (#19517) 2023-01-07 17:02:40 +00:00
QMK Bot
31b8dd34a3 Merge remote-tracking branch 'origin/master' into develop 2023-01-06 21:46:41 +00:00
dependabot[bot]
97910fac06 Bump anothrNick/github-tag-action from 1.58.0 to 1.61.0 (#19519)
Bumps [anothrNick/github-tag-action](https://github.com/anothrNick/github-tag-action) from 1.58.0 to 1.61.0.
- [Release notes](https://github.com/anothrNick/github-tag-action/releases)
- [Commits](https://github.com/anothrNick/github-tag-action/compare/1.58.0...1.61.0)

---
updated-dependencies:
- dependency-name: anothrNick/github-tag-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-06 21:45:23 +00:00
QMK Bot
72dc1f88b9 Merge remote-tracking branch 'origin/master' into develop 2023-01-06 17:13:12 +00:00
Daniel Schaefer
b56ffc8920 docs: Fix IS31FL3743A driver name (#19518)
Incorrectly documented.
See: `builddefs/common_features.mk`
2023-01-06 17:12:30 +00:00
Joel Challis
5c730d971e Migrate submodule dirty check to CLI (#19488) 2023-01-06 04:16:52 +00:00
QMK Bot
b2384f1809 Merge remote-tracking branch 'origin/master' into develop 2023-01-05 23:41:28 +00:00
Sergey Vlasov
4a7d65b9d7 Fix MATRIX_COLS and MATRIX_ROWS generation for custom matrix (#19508)
The code which generated the MATRIX_COLS and MATRIX_ROWS defines from
the JSON information was checking the presence of the `matrix_pins` key,
which may not exist if a custom matrix is used.  Check the presence of
`matrix_size` instead.
2023-01-05 23:40:53 +00:00
QMK Bot
fee362e09a Merge remote-tracking branch 'origin/master' into develop 2023-01-05 19:33:34 +00:00
dependabot[bot]
64508caa76 Bump anothrNick/github-tag-action from 1.57.0 to 1.58.0 (#19509)
Bumps [anothrNick/github-tag-action](https://github.com/anothrNick/github-tag-action) from 1.57.0 to 1.58.0.
- [Release notes](https://github.com/anothrNick/github-tag-action/releases)
- [Commits](https://github.com/anothrNick/github-tag-action/compare/1.57.0...1.58.0)

---
updated-dependencies:
- dependency-name: anothrNick/github-tag-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-05 19:32:57 +00:00
QMK Bot
8f36e08be0 Merge remote-tracking branch 'origin/master' into develop 2023-01-05 15:13:44 +00:00
Paul Massendari
84a642266c A comma was missing (#19507) 2023-01-05 15:12:46 +00:00
QMK Bot
68aa64172d Merge remote-tracking branch 'origin/master' into develop 2023-01-04 19:41:58 +00:00
dependabot[bot]
e2ef3c8cc9 Bump anothrNick/github-tag-action from 1.56.0 to 1.57.0 (#19502)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-05 06:41:20 +11:00
QMK Bot
8b141020b2 Merge remote-tracking branch 'origin/master' into develop 2023-01-04 06:18:53 +00:00
SapuSeven
6a02eb2874 Add SapuSeven MacroPad12 (#19466)
* Add SapuSeven MacroPad12

* Update image url

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

* Remove unnecessary layers

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

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Joel Challis <git@zvecr.com>
2023-01-04 06:18:16 +00:00
QMK Bot
b6b9b25525 Merge remote-tracking branch 'origin/master' into develop 2023-01-04 05:21:35 +00:00
Carlo
be024a1d43 feat(kprepublic/bm60hsrgb_poker): update carlosala keymap (#19426) 2023-01-04 05:21:32 +00:00
Paul James
04dcf81d1e [Keyboard] Stop LED1 from flashing on layer change (#19427) 2023-01-04 05:21:03 +00:00
QMK Bot
03a728f71c Merge remote-tracking branch 'origin/master' into develop 2023-01-04 05:07:50 +00:00
Nick Brassel
8e869da1da Allow for specifying the number of symbols to output. (#19497) 2023-01-04 16:07:13 +11:00
zvecr
115c241f21 Merge remote-tracking branch 'origin/master' into develop 2023-01-04 04:17:58 +00:00
Nick Brassel
691668340c Add qmk mass-compile, which intends to supercede qmk multibuild whilst providing support for filtering as per data-driven definitions. (#18971) 2023-01-04 04:10:18 +00:00
Joel Challis
f9ee0571a7 Remove unused Makefile paths (#19487) 2023-01-04 14:25:48 +11:00
QMK Bot
6d41ba75d3 Merge remote-tracking branch 'origin/master' into develop 2023-01-03 19:36:56 +00:00
dependabot[bot]
46ed46e384 Bump anothrNick/github-tag-action from 1.55.0 to 1.56.0 (#19494)
Bumps [anothrNick/github-tag-action](https://github.com/anothrNick/github-tag-action) from 1.55.0 to 1.56.0.
- [Release notes](https://github.com/anothrNick/github-tag-action/releases)
- [Commits](https://github.com/anothrNick/github-tag-action/compare/1.55.0...1.56.0)

---
updated-dependencies:
- dependency-name: anothrNick/github-tag-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-03 19:36:22 +00:00
Joel Challis
c345278101 Replace list_keyboards.sh with CLI calls (#19485) 2023-01-03 14:15:29 +11:00
QMK Bot
44800f119d Merge remote-tracking branch 'origin/master' into develop 2023-01-02 22:52:06 +00:00
Jesus Climent
5962ebaba1 Fix github URL for the atreyu maintainer. (#19476) 2023-01-03 09:51:32 +11:00
Joel Challis
20ee103399 Remove cmp checks from Makefile (#19480) 2023-01-02 22:26:26 +00:00
QMK Bot
b497d58d6d Merge remote-tracking branch 'origin/master' into develop 2023-01-02 22:13:00 +00:00
Joel Challis
4b2fd42122 Build warning when not valid work-tree (#19475) 2023-01-03 09:12:54 +11:00
Joel Challis
975d64cc2b adpenrose/akemipad fixes (#19477) 2023-01-03 09:12:25 +11:00
Joel Challis
b297531dbf Migrate 'make git-submodule' to CLI command (#19479) 2023-01-03 09:11:57 +11:00
Joel Challis
3a5a4c708f Report submodule status when not valid work-tree (#19474) 2023-01-03 09:00:29 +11:00
David Kosorin
0f5500182c Allow mod-tap hold action on one shot layer (#19214) 2023-01-02 11:16:24 +01:00
Joel Challis
24adecd922 Implement XAP style merge semantics for DD keycodes (#19397) 2023-01-01 19:16:38 +00:00
QMK Bot
8c09170fff Merge remote-tracking branch 'origin/master' into develop 2023-01-01 17:31:57 +00:00
theamarin
ff73cb6290 [Keymap] Add Neo2-based keymap for Planck keyboard (#19173)
Co-authored-by: christian <christian.lueke@sonoware.de>
2023-01-01 09:31:25 -08:00
QMK Bot
17085ec49d Merge remote-tracking branch 'origin/master' into develop 2023-01-01 16:06:35 +00:00
Byron Clark
867e4fc11c [Keyboard] Add community layout support to Piantor (#19455) 2023-01-01 08:05:57 -08:00
Joel Challis
e4cfbd2532 Allow CLI to flash .uf2 files (#19462) 2023-01-01 15:51:29 +11:00
Joel Challis
cd1f05a23a Use unique name for regen PR branches (#19464) 2023-01-01 13:38:31 +11:00
QMK Bot
fc2c9ccbc5 Regenerate Files (#19463) 2023-01-01 02:20:11 +00:00
QMK Bot
03ec3db651 Merge remote-tracking branch 'origin/master' into develop 2023-01-01 00:57:59 +00:00
Drashna Jaelre
9b8f18699f Partially revert #18940 for Ploopy Thumb Trackball (#18943) 2023-01-01 11:57:36 +11:00
Drashna Jaelre
b4d5c22ed4 Keyboard/fix work louder micro (#18968) 2023-01-01 11:57:15 +11:00
Drashna Jaelre
b585ece5ef Add Split support for Haptic feedback (#19203) 2023-01-01 11:56:32 +11:00
Drashna Jaelre
ac561b9473 [Bug] Prevent dynamic keymaps from processing layers that don't exist (#19225) 2023-01-01 11:55:14 +11:00
Joel Challis
d0ebafaea6 Align definition of unicode_map (#19452) 2023-01-01 11:54:12 +11:00
QMK Bot
4704a4e053 Merge remote-tracking branch 'origin/master' into develop 2023-01-01 00:53:46 +00:00
Joel Challis
2ae215514a Add docs to cover recent LAYOUT_all lint checks (#19393) 2023-01-01 11:53:10 +11:00
Joel Challis
5a3594366f Initial DD keycode regen workflow (#19400) 2023-01-01 11:46:17 +11:00
QMK Bot
422fd8aed8 Merge remote-tracking branch 'origin/master' into develop 2023-01-01 00:44:40 +00:00
Joel Challis
b8e12eed80 WSL qmk flash firmware.bin workaround (#19434) 2023-01-01 11:44:33 +11:00
Joel Challis
61696fda83 CLI flashers should allow files outside qmk_firmware folder (#19454) 2023-01-01 11:43:30 +11:00
QMK Bot
c6bc439eb2 Merge remote-tracking branch 'origin/master' into develop 2023-01-01 00:42:58 +00:00
TommyZ
c7c44de32f [Keyboard] Add Quarkeys Z60, reorganized keyboard file directory (#19404)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: jack <0x6a73@protonmail.com>
2023-01-01 11:41:58 +11:00
QMK Bot
22b3d76f9b Merge remote-tracking branch 'origin/master' into develop 2023-01-01 00:40:34 +00:00
DOIO2022
53100496c3 Add KB30 keyboard (#19395)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2023-01-01 11:40:01 +11:00
QMK Bot
06b12a98c7 Merge remote-tracking branch 'origin/master' into develop 2023-01-01 00:39:31 +00:00
Jesus Climent
20bafb9313 Atreyu rev2 (#19443) 2023-01-01 11:38:44 +11:00
QMK Bot
ea96799970 Merge remote-tracking branch 'origin/master' into develop 2022-12-31 21:23:49 +00:00
BBBNBBB
943aae85d5 Fixes unicode_map declaration example (#19450)
If the previous example was used the incorrect codepoints are produced.
Changes the order of arguments the declaration of the unicode_map
2022-12-31 21:23:17 +00:00
jack
829c7e0931 Fixup horrortroll/handwired_k552 (#19447) 2022-12-31 21:15:16 +00:00
HorrorTroll
724aa3a4b2 Refactor entire Handwired K552 keyboard (#18066) 2022-12-30 12:04:01 +11:00
QMK Bot
87cace28a6 Merge remote-tracking branch 'origin/master' into develop 2022-12-30 01:02:09 +00:00
Yizhen Liu
590c889537 [keyboard]Add Graystudio Space65 R3 (#18909)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-12-30 12:01:32 +11:00
QMK Bot
7cccba8a3b Merge remote-tracking branch 'origin/master' into develop 2022-12-30 01:00:29 +00:00
HorrorTroll
5fa2aab41e Added support keyboard Pila87 / XM87 PRO (#18919) 2022-12-30 11:59:55 +11:00
QMK Bot
62d101b886 Merge remote-tracking branch 'origin/master' into develop 2022-12-30 00:53:52 +00:00
Evgenii Vilkov
ced8142847 [Keyboard] Add Pica40 (#19220)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-12-30 11:53:31 +11:00
QMK Bot
91bfc2ba3f Merge remote-tracking branch 'origin/master' into develop 2022-12-30 00:52:37 +00:00
Wolf Van Herreweghe
a7ff2b8d54 Typ65+ Add code to auto turn off LEDs when the PC goes to sleep (#19365)
Co-authored-by: Wolf <contact@vwolf.be>
2022-12-30 11:51:12 +11:00
QMK Bot
d4096db271 Merge remote-tracking branch 'origin/master' into develop 2022-12-30 00:51:12 +00:00
Roberto Santalla
a781672ce7 docs: add a note about reflashing both halves for encoder resolution (#19162)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-12-30 11:50:37 +11:00
jasonj2232
6b50b1be9b [Keyboard] Added support for a new keyboard - Ishi 80 Mk0 (#19195) 2022-12-30 11:50:16 +11:00
dztech
e08debb62f Fix odinmini layout macro (#19429) 2022-12-30 11:48:26 +11:00
QMK Bot
cd1d1d80bb Merge remote-tracking branch 'origin/master' into develop 2022-12-30 00:48:13 +00:00
Ryan
801d2ff940 Remove useless line continuations (#19399) 2022-12-30 11:48:05 +11:00
yonatanzunger
6bd76c97be A fancy keymap for the wt65_xt. (#19375) 2022-12-30 11:47:40 +11:00
QMK Bot
2b61cc739f Merge remote-tracking branch 'origin/master' into develop 2022-12-30 00:45:52 +00:00
alaviss
444760efcb ploopyco/trackball_mini: always update encoder (#18561) 2022-12-30 11:45:10 +11:00
QMK Bot
69a9577558 Merge remote-tracking branch 'origin/master' into develop 2022-12-30 00:44:58 +00:00
x123
ab667a8b64 add x123 keymap for splitkb/aurora/corne (#19407) 2022-12-30 11:44:21 +11:00
Albert Y
77092675aa Update RGB matrix reactive gradient timer scale (#19415) 2022-12-30 11:38:15 +11:00
QMK Bot
40fddcb1e5 Merge remote-tracking branch 'origin/master' into develop 2022-12-27 20:29:52 +00:00
gachiham
4c32e060e8 [Keyboard] Add XR63GL keyboard (#19380) 2022-12-27 12:29:19 -08:00
QMK Bot
3b80638ac3 Merge remote-tracking branch 'origin/master' into develop 2022-12-27 20:15:16 +00:00
DeskDaily
202a708ba7 [Keyboard] Add Mk65 (#19346)
Co-authored-by: Neil Brian Ramirez <nightlykeyboards@gmail.com>
Co-authored-by: Neil Brian Ramirez <nightlyboards@gmail.com>
2022-12-27 12:14:56 -08:00
Isaac Lyons
fd9c809fc3 [Keymap] Add snowskeleton preonic layout (#19357)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-12-27 12:14:42 -08:00
Albert Y
7f2ac4c576 De-obfuscate random8 functions in RGB matrix animations (#19416) 2022-12-27 12:11:31 -08:00
Albert Y
809c05ddf2 Use random8 for jellybean effect (#19418) 2022-12-27 12:10:07 -08:00
QMK Bot
d81c54109a Merge remote-tracking branch 'origin/master' into develop 2022-12-27 20:09:35 +00:00
Arturo Avila
3de3f885de [Keyboard] Add AkemiPad (#18790)
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-12-27 12:09:01 -08:00
QMK Bot
3232f52efb Merge remote-tracking branch 'origin/master' into develop 2022-12-27 19:39:29 +00:00
leah-splitkb
95e97fa839 [Keyboard] Fix Aurora Lily58 default encoder behaviour (#19424) 2022-12-27 11:38:53 -08:00
Joel Challis
517f8af99e Revert changes to keymap_steno.h (#19412) 2022-12-23 23:42:33 +00:00
jack
003cee0098 Validate keyboard name before accepting further input (#19394) 2022-12-23 18:18:57 +00:00
QMK Bot
1c5a67b767 Merge remote-tracking branch 'origin/master' into develop 2022-12-23 18:14:59 +00:00
dependabot[bot]
b56c0fa674 Bump actions/stale from 6 to 7 (#19392)
Bumps [actions/stale](https://github.com/actions/stale) from 6 to 7.
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/stale/compare/v6...v7)

---
updated-dependencies:
- dependency-name: actions/stale
  dependency-type: direct:production
  update-type: version-update:semver-major
...

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-23 18:14:23 +00:00
QMK Bot
430b551407 Merge remote-tracking branch 'origin/master' into develop 2022-12-23 17:53:44 +00:00
Joel Challis
70f67ca908 Update breaking changes year... (#19409) 2022-12-23 17:53:08 +00:00
QMK Bot
8f506b5bc2 Merge remote-tracking branch 'origin/master' into develop 2022-12-23 11:12:33 +00:00
Joel Challis
ab1898e660 Minor alignment of rgb_breathe_table generator (#19403) 2022-12-23 11:11:56 +00:00
QMK Bot
d988c1c082 Merge remote-tracking branch 'origin/master' into develop 2022-12-23 09:09:11 +00:00
DeskDaily
99b69dc80e [Keyboard] Corrected a GPIO pin on config.h on the jisoo pcb (#19396)
Co-authored-by: Neil Brian Ramirez <nightlykeyboards@gmail.com>
Co-authored-by: Neil Brian Ramirez <nightlyboards@gmail.com>
2022-12-23 01:08:37 -08:00
QMK Bot
f6eccf49e8 Merge remote-tracking branch 'origin/master' into develop 2022-12-22 23:41:55 +00:00
Nick Brassel
f75ac6042e Lock down workflow permissions. (#19406)
Co-authored-by: Joel Challis <git@zvecr.com>
2022-12-23 10:41:16 +11:00
Joel Challis
e5721bbd37 Remaining DD keymap_extras migration (#19110)
* Parse headers to data

* Regen headers from data
2022-12-21 23:35:23 +00:00
QMK Bot
89b72017a0 Merge remote-tracking branch 'origin/master' into develop 2022-12-21 10:04:25 +00:00
ebastler
b8a9de206d Add Anvil Native keyboard (#19333)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-12-21 21:03:50 +11:00
QMK Bot
b2036a4c9f Merge remote-tracking branch 'origin/master' into develop 2022-12-21 00:24:13 +00:00
dependabot[bot]
c0e54737ad Bump anothrNick/github-tag-action from 1.54.0 to 1.55.0 (#19387)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-21 11:23:38 +11:00
Filip Paryż
ae94be98ed New keymap for ID75 - paryz (#19350) 2022-12-21 03:48:17 +11:00
QMK Bot
d95a51fb17 Merge remote-tracking branch 'origin/master' into develop 2022-12-20 06:45:05 +00:00
lalalademaxiya1
8560280afe Add Keychron S1 (#19378) 2022-12-20 17:44:23 +11:00
QMK Bot
174263445f Merge remote-tracking branch 'origin/master' into develop 2022-12-19 10:00:37 +00:00
4pplet
8d43f20624 Adding Duck Viper/Eagle V2/V3 Replacement PCB Rev B (#18584)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: 4pplet <4pplet@protonmail.com>
Co-authored-by: 4pplet <stefan.ess@gmail.com>
2022-12-19 20:59:48 +11:00
QMK Bot
3944eda299 Merge remote-tracking branch 'origin/master' into develop 2022-12-19 09:57:45 +00:00
lalalademaxiya1
90bd710b69 Add Keychron V7 (#19360) 2022-12-19 20:55:30 +11:00
QMK Bot
995aad1123 Merge remote-tracking branch 'origin/master' into develop 2022-12-19 09:55:02 +00:00
lalalademaxiya1
007a8c8b35 Add Keychron V8 (#19361) 2022-12-19 20:54:05 +11:00
QMK Bot
ff8d514262 Merge remote-tracking branch 'origin/master' into develop 2022-12-19 09:52:40 +00:00
Manna Harbour
5922751b17 [Keyboard] Add converter/xmk (#18433) 2022-12-19 20:52:03 +11:00
QMK Bot
0b079424c8 Merge remote-tracking branch 'origin/master' into develop 2022-12-19 09:48:45 +00:00
lalalademaxiya1
d27d6f0485 Add Keychron Q7 (#19308)
Co-authored-by: jack <0x6a73@protonmail.com>
2022-12-19 20:48:30 +11:00
lalalademaxiya1
90c4a8785e Add Keychron Q60 (#19309)
Co-authored-by: jack <0x6a73@protonmail.com>
2022-12-19 20:46:56 +11:00
QMK Bot
5d3fccf006 Merge remote-tracking branch 'origin/master' into develop 2022-12-19 09:46:29 +00:00
lalalademaxiya1
4c28f93520 Add Keychron Q65 (#19310)
Co-authored-by: jack <0x6a73@protonmail.com>
2022-12-19 20:45:57 +11:00
QMK Bot
e8d6c62934 Merge remote-tracking branch 'origin/master' into develop 2022-12-19 09:45:26 +00:00
lalalademaxiya1
e0ff1189ce Add Keychron V1 (#19315) 2022-12-19 20:44:47 +11:00
QMK Bot
830bdd9a85 Merge remote-tracking branch 'origin/master' into develop 2022-12-19 09:42:33 +00:00
lalalademaxiya1
de64c61d17 Add Keychron V2 (#19316) 2022-12-19 20:42:00 +11:00
QMK Bot
bef4d9965d Merge remote-tracking branch 'origin/master' into develop 2022-12-19 09:40:13 +00:00
lalalademaxiya1
a3392fdd1e Add Keychron V3 (#19317) 2022-12-19 20:39:36 +11:00
QMK Bot
f46018457f Merge remote-tracking branch 'origin/master' into develop 2022-12-19 09:07:33 +00:00
lalalademaxiya1
0ab4f53691 Add Keychron V4 (#19319) 2022-12-19 20:06:51 +11:00
QMK Bot
f249789a8f Merge remote-tracking branch 'origin/master' into develop 2022-12-19 08:54:27 +00:00
lalalademaxiya1
4a0027d493 Add Keychron V5 (#19320) 2022-12-19 19:53:51 +11:00
QMK Bot
cf1c50987a Merge remote-tracking branch 'origin/master' into develop 2022-12-19 08:43:20 +00:00
lalalademaxiya1
359caf1432 Add Keychron Q9 (#19318) 2022-12-19 19:42:45 +11:00
QMK Bot
2e36bde659 Merge remote-tracking branch 'origin/master' into develop 2022-12-19 08:10:51 +00:00
Alexander Franco
11ae141835 Fix description for selectively disabling animations (#19374) 2022-12-19 19:10:11 +11:00
QMK Bot
05a2f0453a Merge remote-tracking branch 'origin/master' into develop 2022-12-19 08:10:10 +00:00
Salicylic-acid3
6a80b7266a [Keyboard] Add Guide68 (#19264)
Co-authored-by: jack <0x6a73@protonmail.com>
2022-12-19 19:09:35 +11:00
QMK Bot
7526b2a621 Merge remote-tracking branch 'origin/master' into develop 2022-12-19 07:29:10 +00:00
jack
8655b100b1 keebio/quefrency — add missing LAYOUT_all's to info.json (#19373) 2022-12-18 23:28:30 -08:00
QMK Bot
dd9d3d6c8e Merge remote-tracking branch 'origin/master' into develop 2022-12-18 22:34:09 +00:00
zvecr
2e9ebf0756 Correct 19355 2022-12-18 22:33:08 +00:00
QMK Bot
54f441ca9f Merge remote-tracking branch 'origin/master' into develop 2022-12-18 22:32:35 +00:00
dztech
f1cf00ab70 change d45lite keyboard name to d45v2 (#19355) 2022-12-18 22:31:34 +00:00
Stefan Kerkmann
c2b13bd77b Introduce VERIFY_AND_CLEAR shorthand (#19370)
Which is just a syntactic sugar for
testing::Mock::VerifyAndClearExpectations to reduce the visual clutter
in unit-tests.
2022-12-18 21:55:14 +01:00
Peter Park
7aa2d791f6 [Keyboard] The Uni change folder location (#19326)
Co-authored-by: Peter Park <peter@Peters-MacBook-Air.local>
2022-12-17 19:26:02 -08:00
QMK Bot
9c08c7d4b6 Merge remote-tracking branch 'origin/master' into develop 2022-12-18 03:21:34 +00:00
Nostril
f3041c5500 [Keyboard] Add Synth Labs 060 keyboard (#19363)
Co-authored-by: jack <0x6a73@protonmail.com>
2022-12-17 19:21:02 -08:00
QMK Bot
2e126faf92 Merge remote-tracking branch 'origin/master' into develop 2022-12-17 19:56:39 +00:00
jack
bb82ded302 [Keyboard] tkc/portico75 — Fix layers & move to encoder map (#19359) 2022-12-17 11:55:37 -08:00
jack
a73014fa27 [Keyboard] tkc/portico75 — Fix layers & move to encoder map (#19359) 2022-12-17 11:55:12 -08:00
Stefan Kerkmann
85984902cf Introduce IS_EVENT instead of !IS_NOEVENT (#19366) 2022-12-17 14:06:27 +00:00
Stefan Kerkmann
dedc54a328 [Core] guard action related debug messages (#19348) 2022-12-15 23:38:25 +01:00
QMK Bot
233ae20d33 Merge remote-tracking branch 'origin/master' into develop 2022-12-15 19:36:22 +00:00
James Young
f21443d6a2 DZTECH OG60 Touch-Up (#19343) 2022-12-15 11:35:28 -08:00
QMK Bot
e3a34d6062 Merge remote-tracking branch 'origin/master' into develop 2022-12-15 19:29:21 +00:00
Leo Deng
79d083c635 [Docs] Update feature_joystick.md (#19347) 2022-12-15 11:28:48 -08:00
QMK Bot
0072f5bb1b Merge remote-tracking branch 'origin/master' into develop 2022-12-15 19:26:01 +00:00
Basil Sh
293a9fb342 [Keymap] Fix miryoku layout for draculad (#19338) 2022-12-15 11:25:17 -08:00
Albert Y
c6d0aa6ae4 Add change log for quick tap term (#19341) 2022-12-15 12:29:26 +01:00
QMK Bot
1d3b27eb34 Merge remote-tracking branch 'origin/master' into develop 2022-12-15 09:03:23 +00:00
ebastler
d7225eafbe [Keymap] Add E80-1800 keymap with bongocat OLED animation (#19334) 2022-12-15 01:02:49 -08:00
QMK Bot
62b89f8184 Merge remote-tracking branch 'origin/master' into develop 2022-12-15 08:19:43 +00:00
jotix
33cc81f36e [Keymap] Simplifying ortho-4x12 jotix's layout (#19336) 2022-12-15 00:19:39 -08:00
Joshua Diamond
571a9794af Fix non-functional RGBLIGHT_EFFECT_TWINKLE on ARM (#19335) 2022-12-15 00:18:54 -08:00
QMK Bot
9e29fe16e6 Merge remote-tracking branch 'origin/master' into develop 2022-12-15 06:40:57 +00:00
James Young
8e50f1c5f5 DZTECH Endless80 Touch-Up (#19339) 2022-12-14 22:40:17 -08:00
Nick Brassel
64715084b2 Fixup build failures. (#19332) 2022-12-15 09:56:30 +11:00
QMK Bot
2ea290f5b9 Merge remote-tracking branch 'origin/master' into develop 2022-12-14 21:09:59 +00:00
Nick Brassel
6543065180 Reorder paths to (hopefully) trigger a re-tag. 2022-12-15 08:09:14 +11:00
QMK Bot
fd6b1558ce Format code according to conventions (#19331) 2022-12-14 12:58:02 -08:00
QMK Bot
309b4dc2b7 Merge remote-tracking branch 'origin/master' into develop 2022-12-14 20:56:53 +00:00
QMK Bot
51360f3d54 Format code according to conventions (#19330) 2022-12-14 20:56:19 +00:00
QMK Bot
1bf60eb6fc Merge remote-tracking branch 'origin/master' into develop 2022-12-14 20:51:55 +00:00
Zykrah
5c817bffe9 [Keyboard] Add Slime88 (#19054)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-12-14 12:51:02 -08:00
QMK Bot
7311b17875 Merge remote-tracking branch 'origin/master' into develop 2022-12-14 20:50:36 +00:00
Nick Brassel
0f97402d21 Add builddefs to the paths associated with tagging. (#19329) 2022-12-15 07:50:02 +11:00
QMK Bot
6550b67005 Merge remote-tracking branch 'origin/master' into develop 2022-12-14 20:49:23 +00:00
Zykrah
35f460643a [Keyboard] Tinny50 RGB Edition (#19285)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-12-14 12:48:45 -08:00
QMK Bot
66af985a62 Merge remote-tracking branch 'origin/master' into develop 2022-12-14 20:41:09 +00:00
BentoBoxStudio
5373376020 [Keyboard] Add cosmo65 (#19181) 2022-12-14 12:40:38 -08:00
Ryan
1978007fae Tap Dance: remove qk_ prefix (#19313) 2022-12-14 12:40:25 -08:00
QMK Bot
83e8e5845a Merge remote-tracking branch 'origin/master' into develop 2022-12-14 20:27:34 +00:00
Nick Brassel
e67e690cf3 Revert to legacy wear-leveling driver by default for F401. (#19328) 2022-12-15 07:27:00 +11:00
QMK Bot
2f15cde2d1 Merge remote-tracking branch 'origin/master' into develop 2022-12-14 15:51:31 +00:00
mfkiiyd
1130834513 add ubest/vn 68 keyboard (#19263)
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: water <mfkiiyd@163.com>
2022-12-15 02:50:56 +11:00
QMK Bot
2b2d1d43d8 Merge remote-tracking branch 'origin/master' into develop 2022-12-14 15:50:29 +00:00
dztech
4c5e0606fe add tofu_jr keyboard (#18960)
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-12-15 02:49:49 +11:00
Stefan Kerkmann
962e4c0e18 [Test] Reset timer for every unit test and provide timestamps for log messages (#17028) 2022-12-15 02:31:08 +11:00
QMK Bot
e2ab98f960 Merge remote-tracking branch 'origin/master' into develop 2022-12-14 14:44:19 +00:00
Pablo Martínez
99174edf0a [Docs] Remove broken link (#19321) 2022-12-15 01:43:39 +11:00
Joel Challis
1124bbc1db Remove deprecated led_set_kb (#19273)
* Remove led_set_kb maintaining existing led_set_user behaviour

* Also call led_set_user
2022-12-14 11:14:10 +00:00
QMK Bot
0fcf481cdd Merge remote-tracking branch 'origin/master' into develop 2022-12-14 02:49:39 +00:00
jack
fecfb176b4 Add encoder map to boardsource/lulu, and some other dd migrations (#19281) 2022-12-14 13:49:06 +11:00
Ryan
e2117564c5 Leader: remove qk_ prefix (#19304) 2022-12-14 13:46:01 +11:00
QMK Bot
49b81a9c2b Merge remote-tracking branch 'origin/master' into develop 2022-12-14 02:44:46 +00:00
Ryan
9e4cfcd181 UCIS: remove qk_ prefix (#19302) 2022-12-14 13:44:36 +11:00
James Young
582f879d6f Mode SixtyFive HA Layout Refactor (#19312) 2022-12-14 13:43:40 +11:00
precondition
515dd18c28 Remove IGNORE_MOD_TAP_INTERRUPT_PER_KEY in favour of HOLD_ON_OTHER_KEY_PRESS_PER_KEY (#15741) 2022-12-13 22:20:07 +11:00
QMK Bot
ca13734f91 Merge remote-tracking branch 'origin/master' into develop 2022-12-13 09:24:13 +00:00
Zykrah
411ed54b0a [Keyboard] Add Fuyu (#19055)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-12-13 01:23:37 -08:00
QMK Bot
3cb0888afa Merge remote-tracking branch 'origin/master' into develop 2022-12-13 09:15:33 +00:00
Leo Deng
70b9cec3f2 [Keyboard] add deng/thirty keyboard (#19228)
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Leo DENG <leo.deng@nio.com>
2022-12-13 01:14:29 -08:00
Drashna Jaelre
222f685b90 [Keyboard] Fix DZTECH Tofu II v1 i2c config (#19306) 2022-12-13 15:59:32 +11:00
QMK Bot
408bb469bb Merge remote-tracking branch 'origin/master' into develop 2022-12-13 02:50:58 +00:00
Danny
e25672baef [Keyboard] Add Convolution Rev. 1 PCB (#19283)
Co-authored-by: Joel Challis <git@zvecr.com>
2022-12-12 18:50:23 -08:00
QMK Bot
e0e22176bb Merge remote-tracking branch 'origin/master' into develop 2022-12-13 02:38:55 +00:00
DeskDaily
e444cf9578 [Keyboard] Add Daily60 keyboard (#19116)
Co-authored-by: Neil Brian Ramirez <nightlykeyboards@gmail.com>
Co-authored-by: Neil Brian Ramirez <nightlyboards@gmail.com>
2022-12-12 18:38:38 -08:00
dztech
7cf3dd7b8d [Keyboard] add tofu_ii keyboard (#19118)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-12-12 18:38:15 -08:00
mechlovin
7578daaf16 [Keyboard] Add Olly Orion to QMK (#19134)
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-12-12 18:37:35 -08:00
QMK Bot
a137edf5df Merge remote-tracking branch 'origin/master' into develop 2022-12-13 02:36:41 +00:00
Ramon Imbao
812468abb4 [Keyboard] Add the Gone Hacking Studio XLS (#19185)
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-12-12 18:36:26 -08:00
Simon Fell
2792ee6573 [Keymap] superfell's custom keymap for the 0xc pad (#19196) 2022-12-12 18:36:05 -08:00
ebastler
29b8bbc4a0 [Keyboard] moved E80-1800 to data driven configuration (#19199)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-12-12 18:35:49 -08:00
QMK Bot
9a3df6e4e2 Merge remote-tracking branch 'origin/master' into develop 2022-12-12 23:51:32 +00:00
TW59420
9c2703cab0 [Keyboard] add mw80 (#19223)
Co-authored-by: jack <0x6a73@protonmail.com>
2022-12-12 15:50:04 -08:00
QMK Bot
84e0a17aae Merge remote-tracking branch 'origin/master' into develop 2022-12-12 23:49:02 +00:00
DeskDaily
291f988423 [Keyboard] Add Jisoo pcb (#19238)
Co-authored-by: Neil Brian Ramirez <nightlykeyboards@gmail.com>
Co-authored-by: Neil Brian Ramirez <nightlyboards@gmail.com>
2022-12-12 15:48:39 -08:00
Moses Hoyt
48a80a502d [Keyboard] Add Lagom keyboard (#19240)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-12-12 15:48:18 -08:00
Wolf Van Herreweghe
a5eaa461dc [Keyboard] Add Rama Works M60-B (#19248)
Co-authored-by: jack <0x6a73@protonmail.com>
2022-12-12 15:48:01 -08:00
QMK Bot
b6a4923863 Merge remote-tracking branch 'origin/master' into develop 2022-12-12 23:47:41 +00:00
DeskDaily
06593acc7d [Keyboard] Add Navi60 (#19253)
Co-authored-by: Neil Brian Ramirez <nightlykeyboards@gmail.com>
Co-authored-by: Neil Brian Ramirez <nightlyboards@gmail.com>
2022-12-12 15:47:40 -08:00
yiancar
89399b5494 [Keyboard] Crypt Macro (#19279)
Co-authored-by: yiancar <yiancar@gmail.com>
2022-12-12 15:47:08 -08:00
QMK Bot
35477a38b1 Merge remote-tracking branch 'origin/master' into develop 2022-12-12 23:46:44 +00:00
dztech
15ef0a7e3c [Keyboard] add d45 lite keyboard (#19288)
Co-authored-by: Joel Challis <git@zvecr.com>
2022-12-12 15:46:09 -08:00
QMK Bot
4b6d458f49 Merge remote-tracking branch 'origin/master' into develop 2022-12-12 23:42:20 +00:00
mechlovin
68f550a3f2 [Keyboard] Add Zed65-monoLED and Zed65-Cor65 (#18872)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-12-12 15:41:06 -08:00
QMK Bot
b44317ff70 Merge remote-tracking branch 'origin/master' into develop 2022-12-12 23:24:28 +00:00
T.Shinohara
6d0f944e5e Keyboard rura66 (#15853)
* add : BlackMask60 and MayShi.No30

* fix:spell miss

* change:keyboard name area

* change: default keymap

* 配列を自分用に変更

* MyKemap Update

* 構成変更

* Add RURA66 new keyboard

* remove additional files

* fix file

* fix info.json from rura66

* fix KC_LANG to KC_LNG from rura66

* Fix readme
- fix purchase URL
- adjust to the recent standard

* Fix rules.mk
- no backlight
- remove DIP switch/Bluetooth
- OLED_DRIVER_ENABLE -> OLED_ENABLE

* Fix rura66.h: add LICENSE

* Fix config.h
- UNUSED_PINS is deprecated
- accept suggestion on PR

* Fix oled_display.c
- remove snprintf()
- OLED_DRIVER_ENABLE->OLED_ENABLE
- oled_task_user() returns false

* Fix config.h
- no SPLIT_HAND_MATRIX_GRID
- no RGB Matrix

* move default keymap readme

* add VIA keymap

* Fix info.json
- Fix keyboard URL
- Change VID/PID

* Fix comments in rules.mk

* fix info.json keyboard url

Co-authored-by: yswallow <1426202+yswallow@users.noreply.github.com>
2022-12-12 15:23:54 -08:00
QMK Bot
ecdc768451 Merge remote-tracking branch 'origin/master' into develop 2022-12-12 21:17:26 +00:00
xofyarg
25790fc886 [Keyboard] add ydpm40 keyboard (#19294) 2022-12-12 13:16:26 -08:00
QMK Bot
57aff7ff18 Merge remote-tracking branch 'origin/master' into develop 2022-12-12 21:16:15 +00:00
precondition
454edf68d1 Tests that caps word stays active after use of OSL (#19303) 2022-12-12 22:16:12 +01:00
MJM
b8532d100d [Keyboard] Switch heliotrope from rgblight to rgb matrix (#19296) 2022-12-12 13:15:41 -08:00
Alabastard-64
008f1312bb Cleanup pmw3389.c (#19301) 2022-12-12 13:14:48 -08:00
jpe230
102f22f7e9 [Core] Quantum Painter - LVGL Integration (#18499)
Co-authored-by: Nick Brassel <nick@tzarc.org>
2022-12-13 07:51:14 +11:00
QMK Bot
2d19e59d78 Merge remote-tracking branch 'origin/master' into develop 2022-12-12 20:11:20 +00:00
lalalademaxiya1
1431f314a4 Add Keychron Q10 (#19127)
Co-authored-by: Nick Brassel <nick@tzarc.org>
2022-12-13 07:10:32 +11:00
QMK Bot
598735a2b8 Format code according to conventions (#19305) 2022-12-12 17:02:15 +01:00
Albert Y
cbabc8dbe6 [Core] Replace Tapping Force Hold feature with Quick Tap Term (#17007)
* Replace Tapping Force Hold feature with Quick Tap Term

* Replace keyboard level TAPPING_FORCE_HOLD with QUICK_TAP_TERM 0

* Deprecate force hold in info_config.json

* Before and after quick tap term unit tests

* Quick tap unit tests iteration

* Keymap config.h correction

* Remove TAPPING_FORCE_HOLD_PER_KEY macros that were missed

* Add two more test cases for quick tap

* Replace TAPPING_FORCE_HOLD with QUICK_TAP_TERM in configs #2

* Replace TAPPING_FORCE_HOLD_PER_KEY with QUICK_TAP_TERM_PER_KEY in configs #2

* Add function declaration for get_quick_tap_term

Co-authored-by: Stefan Kerkmann <karlk90@pm.me>
2022-12-12 16:52:22 +01:00
QMK Bot
8698d109d7 Merge remote-tracking branch 'origin/master' into develop 2022-12-12 05:22:01 +00:00
Luc
bf2ed0174b [Keymap] user dvorak_42_key ergodox_ez and crkbd keymaps (#19154)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: luc wastiaux <luc.wastiaux@airpost.net>
Co-authored-by: Luc W <lucw@airpost.net>
2022-12-11 21:21:23 -08:00
QMK Bot
7d51636581 Merge remote-tracking branch 'origin/master' into develop 2022-12-12 05:17:53 +00:00
Christopher Bunn
96ba554ca8 [Keymap] lets_split: add mypetyak map (#19205) 2022-12-11 21:17:08 -08:00
Stefan Kerkmann
9dc3f79196 [RP2040] update i2c drivers to reflect peripheral number (#19277) 2022-12-11 14:04:29 +01:00
QMK Bot
f67f787cc2 Merge remote-tracking branch 'origin/master' into develop 2022-12-11 07:15:16 +00:00
QMK Bot
57f9a2ad6d [CI] Format code according to conventions (#19292) 2022-12-11 18:14:34 +11:00
QMK Bot
4b75b90f5c [CI] Format code according to conventions (#19293) 2022-12-11 18:14:18 +11:00
QMK Bot
c2687906d2 Merge remote-tracking branch 'origin/master' into develop 2022-12-11 07:00:52 +00:00
Ryan
7c72c5e436 sthlmkb/litl: fix layout macros (#19244) 2022-12-11 18:00:14 +11:00
QMK Bot
d9aab6f9c7 Merge remote-tracking branch 'origin/master' into develop 2022-12-11 04:06:12 +00:00
Wolf Van Herreweghe
608ed489de Update KC_BKSP->KCBSPC for default Ortho4x6 layout (#19290)
Co-authored-by: Wolf <contact@vwolf.be>
2022-12-11 15:05:23 +11:00
QMK Bot
c6ab70ef0d Merge remote-tracking branch 'origin/master' into develop 2022-12-11 02:35:40 +00:00
MJM
57351e4a37 [Keyboard] Add heliotrope Keyboard (#19170) 2022-12-10 18:35:06 -08:00
QMK Bot
0435381c91 Merge remote-tracking branch 'origin/master' into develop 2022-12-10 20:46:56 +00:00
Adam Lickel
143b7a3c3d [Keymap] Keeb.io Sinc - Lickel keymap update (#19188) 2022-12-10 12:46:24 -08:00
Joel Challis
1dd3e46336 Remove broken keymap/userspace (#19271) 2022-12-10 13:19:31 +11:00
Pablo Martínez
d9cba6e978 Add *_RIGHT configuration for PMW33XX driver (#19243) 2022-12-10 13:18:40 +11:00
Ryan
8c12559edb Add KPrepublic BM16A v2 (#19194) 2022-12-09 15:31:13 +11:00
Wolf Van Herreweghe
aa06a6e094 Minor lint fixes for various info.json (#19275) 2022-12-09 04:23:24 +00:00
QMK Bot
43870190af Merge remote-tracking branch 'origin/master' into develop 2022-12-09 03:33:24 +00:00
Joel Challis
89fdafc27d Refactor use of led_set_user within handwired/prime_exl (#19274) 2022-12-09 03:32:47 +00:00
QMK Bot
37ade41ad9 Merge remote-tracking branch 'origin/master' into develop 2022-12-09 02:16:18 +00:00
James Young
96cd333371 TGR Jane V2 CE Refactor (#19261) 2022-12-08 18:15:44 -08:00
QMK Bot
57bf060198 Merge remote-tracking branch 'origin/master' into develop 2022-12-09 01:43:01 +00:00
Joel Challis
99cd0b13e1 Refactor some led_set_kb instances (#19179)
* Refactor some led_set_kb instances

* Apply suggestions from code review

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

Co-authored-by: Ryan <fauxpark@gmail.com>
2022-12-09 01:42:22 +00:00
Ryan
701747ad4f Teensy 3.5: do not restart USB stack after wakeup (#19269) 2022-12-09 01:41:22 +00:00
Joel Challis
9bc7e9afbd Initial uk+us DD keymap_extras migration (#19031) 2022-12-09 00:54:52 +00:00
Joel Challis
6133b08e73 Rework input_pressed_state docs (#19267)
* Revert changes to porting

* Update reference_info_json.md
2022-12-08 20:41:38 +00:00
QMK Bot
6ae0f83138 Merge remote-tracking branch 'origin/master' into develop 2022-12-08 19:40:31 +00:00
James Young
ba6ee29040 fix LinWorks FAve84H keymaps (#19266)
Develop merge broke a previous refactor.
2022-12-08 19:39:54 +00:00
QMK Bot
29e0d440c3 Merge remote-tracking branch 'origin/master' into develop 2022-12-08 17:15:43 +00:00
James Young
f4a4d841e5 Dactyl Manuform 4x5_5 Configurator Rendering Update (#18313) 2022-12-09 04:15:09 +11:00
QMK Bot
1786932d9f [CI] Format code according to conventions (#19265) 2022-12-09 04:10:52 +11:00
Jack Humbert
a23333eb58 Return USB HID GET_REPORT requests (#14814)
Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
Co-authored-by: Nick Brassel <nick@tzarc.org>
2022-12-09 04:08:36 +11:00
QMK Bot
dd93b17e96 Merge remote-tracking branch 'origin/master' into develop 2022-12-08 17:02:38 +00:00
James Young
de92e8b3b0 Idobao ID80 V2: Partial Data-Driven Conversion (#19247) 2022-12-09 04:01:56 +11:00
QMK Bot
75a145af59 Merge remote-tracking branch 'origin/master' into develop 2022-12-08 16:52:04 +00:00
James Young
e4f4e0a307 Aperture: fix Community Layout support (#19260) 2022-12-09 03:50:59 +11:00
James Young
069e6a259a Soda Cherish Refactor (#19259) 2022-12-09 03:50:34 +11:00
QMK Bot
769a4f830d Merge remote-tracking branch 'origin/master' into develop 2022-12-08 16:50:17 +00:00
Michael Stapelberg
9e103a2c58 kint36: do not restart USB stack after wakeup (#19077) 2022-12-09 03:49:58 +11:00
simchee
88d8817397 [Keymap] Add personal config for Kprepublic BM40HSRGB (#19186) 2022-12-09 03:49:22 +11:00
Jouke Witteveen
c9fe884b26 Moonlander: Add RGB LED layout map macro (#18745) 2022-12-09 03:48:58 +11:00
kopibeng
1df41e6db1 Add support for MNK65_STM32 (#18744)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-12-09 03:48:42 +11:00
QMK Bot
56e907b16e Merge remote-tracking branch 'origin/master' into develop 2022-12-08 16:48:34 +00:00
peepeetee
5447b075f9 [Keyboard] Add momokai tap duo (#19042) 2022-12-09 03:47:38 +11:00
QMK Bot
d9a64d950f Merge remote-tracking branch 'origin/master' into develop 2022-12-08 16:45:45 +00:00
Ruslan Sayfutdinov
85ee55ff3b Detect host OS based on USB fingerprint (#18463)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Nick Brassel <nick@tzarc.org>
2022-12-09 03:45:30 +11:00
adophoxia
fa56e51894 Add support for Keychron Q4 (#19048) 2022-12-09 03:45:10 +11:00
QMK Bot
e06f50c489 Merge remote-tracking branch 'origin/master' into develop 2022-12-08 16:44:03 +00:00
lalalademaxiya1
1215fc2a78 Update Q1 and Q2 for keychron (#18713)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: jpe230 <pablin.123.ra@gmail.com>
2022-12-09 03:43:28 +11:00
QMK Bot
5a2ed77a08 Merge remote-tracking branch 'origin/master' into develop 2022-12-08 16:31:37 +00:00
Joel Challis
6e6039995b Add lint check for keyboard/keymap license header (#19215) 2022-12-09 03:31:02 +11:00
QMK Bot
c2aa0f67ec Merge remote-tracking branch 'origin/master' into develop 2022-12-08 16:15:43 +00:00
Mikhail Nosov
071268633d [Keyboard] Fix CapsLock pin for ymdk/ymd75/rev3 (#19158) 2022-12-09 03:13:53 +11:00
Wolf Van Herreweghe
c6e291c416 Revert RESET-> QK_BOOT in Read Me files where applicable (#19262) 2022-12-09 03:12:49 +11:00
QMK Bot
beaea2eb0d Merge remote-tracking branch 'origin/master' into develop 2022-12-08 16:11:25 +00:00
syntax-magic
261e7668c6 Added mouse clicks to RBG layer (#19105)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: syntax-magic <dkim.8881@gmail.com>
2022-12-09 03:09:43 +11:00
dexter93
f2a8a13dba Core: Support inverted scan logic for optical switches (#19053) 2022-12-09 03:09:01 +11:00
QMK Bot
6668a0adb0 Merge remote-tracking branch 'origin/master' into develop 2022-12-08 16:08:30 +00:00
4pplet
d30bf44a60 Add AEKISO60 rev B (#19074)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: 4pplet <4pplet@protonmail.com>
Co-authored-by: 4pplet <stefan.ess@gmail.com>
2022-12-09 03:07:54 +11:00
ForsakenRei
53423f0369 KC_GESC -> QK_GESC for cn and ja Docs (#19024) 2022-12-09 03:03:33 +11:00
lokher
0d7edbbcbe Fixed NKRO issue caused by HID_SET_PROTOCOL on Chibios platform (#17588) 2022-12-09 02:56:36 +11:00
QMK Bot
6866466b07 Merge remote-tracking branch 'origin/master' into develop 2022-12-08 15:54:53 +00:00
tarneo
ebcbbfc1e8 correct config for supersplit and add keymap (#18927) 2022-12-09 02:54:19 +11:00
QMK Bot
5d8ece1b3d Merge remote-tracking branch 'origin/master' into develop 2022-12-08 13:35:08 +00:00
Ryan
acca2eb963 Fix build failures for aurora/lily58 and sweep (#19258) 2022-12-08 13:34:32 +00:00
QMK Bot
d4ead8783c Merge remote-tracking branch 'origin/master' into develop 2022-12-07 21:02:49 +00:00
Jordan Duabe
bb3d694875 [Keyboard] Add NCR-80 (#19130) 2022-12-07 13:02:05 -08:00
QMK Bot
2183eda7ac Merge remote-tracking branch 'origin/master' into develop 2022-12-07 18:00:05 +00:00
Ryan
405aa7b2ed Fix keyboard for some JSON keymaps (#19251) 2022-12-07 17:59:23 +00:00
QMK Bot
25b9e34fbe Merge remote-tracking branch 'origin/master' into develop 2022-12-07 15:57:26 +00:00
James Young
760e5c2ee1 ASK55: correct layout data (#19252) 2022-12-07 15:56:21 +00:00
QMK Bot
8cba1d3297 Merge remote-tracking branch 'origin/master' into develop 2022-12-06 21:44:52 +00:00
dependabot[bot]
3fa1e8e273 Bump anothrNick/github-tag-action from 1.53.0 to 1.54.0 (#19246)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-07 08:44:19 +11:00
QMK Bot
71c1ca47db Merge remote-tracking branch 'origin/master' into develop 2022-12-06 15:58:25 +00:00
leah-splitkb
0e93b0d59b [Keyboard] Add splitkb.com's Aurora Lily58 (#19183) 2022-12-06 15:57:50 +00:00
Xelus22
0b1d5497fc [Keyboard] Refactor xs60 with soldered and hotswap version (#19049)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-12-06 00:32:25 -08:00
QMK Bot
76c69f35c5 Merge remote-tracking branch 'origin/master' into develop 2022-12-05 19:32:26 +00:00
dependabot[bot]
2709b6ed61 Bump anothrNick/github-tag-action from 1.52.0 to 1.53.0 (#19242)
Bumps [anothrNick/github-tag-action](https://github.com/anothrNick/github-tag-action) from 1.52.0 to 1.53.0.
- [Release notes](https://github.com/anothrNick/github-tag-action/releases)
- [Commits](https://github.com/anothrNick/github-tag-action/compare/1.52.0...1.53.0)

---
updated-dependencies:
- dependency-name: anothrNick/github-tag-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-05 19:31:20 +00:00
QMK Bot
1fd2ef2bcb Merge remote-tracking branch 'origin/master' into develop 2022-12-05 02:33:15 +00:00
Joel Challis
92fadf0110 Ensure info.json layout macros are somewhat valid (#19236) 2022-12-05 02:32:40 +00:00
QMK Bot
3bf0a10990 Merge remote-tracking branch 'origin/master' into develop 2022-12-04 21:04:18 +00:00
mechlovin
92354b2ca8 [Keyboard] Add Olly_Octagon PCB to QMK (#19128)
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-12-04 21:03:41 +00:00
QMK Bot
db4934f922 Merge remote-tracking branch 'origin/master' into develop 2022-12-04 20:58:50 +00:00
Charly Delay
af14b212b9 Re-structure splinky support to handle versioning in the same fashion as for the teensy (#19123) 2022-12-04 20:58:12 +00:00
QMK Bot
41b1f7283b Merge remote-tracking branch 'origin/master' into develop 2022-12-04 20:48:35 +00:00
mechlovin
ea1a6975a8 [Keyboard] Add ISO layout support for Zed60 PCB (#19204)
* add iso layout

* Update zed60.h
2022-12-04 20:47:56 +00:00
QMK Bot
b4073e11e1 Merge remote-tracking branch 'origin/master' into develop 2022-12-04 20:44:02 +00:00
David Kühling
2f92880578 dqz11n1g: Documentation improvement. (#19230)
Co-authored-by: David <dvdkhlng@posteo.de>
2022-12-04 20:43:28 +00:00
QMK Bot
9e757ea5d0 Merge remote-tracking branch 'origin/master' into develop 2022-12-04 18:53:44 +00:00
dztech
4d1b1bc534 [Keyboard] add kbdpadmk3 (#18795)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-12-04 10:53:08 -08:00
QMK Bot
dd252ebb55 Merge remote-tracking branch 'origin/master' into develop 2022-12-04 09:35:58 +00:00
gshmu
1dd77d9944 [Keymap] gshmu keymap for lily58 (#19040) 2022-12-04 01:35:23 -08:00
QMK Bot
3af6fb5d0f Merge remote-tracking branch 'origin/master' into develop 2022-12-04 09:26:59 +00:00
lalalademaxiya1
d878edfaad [Keyboard] Add Keychron Q8 (#19126) 2022-12-04 01:26:27 -08:00
QMK Bot
76a8778672 Merge remote-tracking branch 'origin/master' into develop 2022-12-04 09:22:54 +00:00
dztech
ee772ad165 [Keyboard] add odinmini keyboard (#19111)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-12-04 01:22:21 -08:00
QMK Bot
45c288d5b1 Merge remote-tracking branch 'origin/master' into develop 2022-12-04 07:17:06 +00:00
micros24
6af12001eb [Keymap] KBDFans Tiger80 Keymap (#19148)
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Jasper Jan O. Solee <jjosolee@mymail.mapua.edu.ph>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-12-03 23:16:34 -08:00
Andrew Kannan
f288a3bb3b [Keyboard] Add Ortho60 v2 Keyboard (#18890)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-12-03 23:15:44 -08:00
Andre Brait
f32070bfef [Keymap] Change DEBOUNCE_TYPE to sym_eager_pk to reduce latency (#19153) 2022-12-03 22:56:04 -08:00
QMK Bot
004ca55011 Merge remote-tracking branch 'origin/master' into develop 2022-12-03 20:05:56 +00:00
mechlovin
03d7c31e6c [Keyboard] Change indicator LED state on Kay60 (#19182) 2022-12-03 12:05:23 -08:00
Joel Challis
32dabd5320 Align new-keymap with new-keyboard (#19229) 2022-12-03 12:04:06 +00:00
Joel Challis
82760bcea6 Apply suggested workaround for #18371 (#19226)
Fixes undefined
2022-12-03 11:42:54 +11:00
Joel Challis
4540f52e98 Revert WB32 ISO workaround (#19224) 2022-12-03 09:07:16 +11:00
QMK Bot
68c54d846d Merge remote-tracking branch 'origin/master' into develop 2022-12-02 10:56:12 +00:00
Nick Brassel
cf3c26533c Fixup EFL and F4's sector selection. (#19221) 2022-12-02 21:55:28 +11:00
QMK Bot
e85439eb04 Merge remote-tracking branch 'origin/master' into develop 2022-12-02 05:38:02 +00:00
Ryan
f98a7e8ffe Fix RGB_MATRIX_LED_COUNT for aurora/corne (#19222) 2022-12-02 16:36:47 +11:00
QMK Bot
e68eb2f4ad Merge remote-tracking branch 'origin/master' into develop 2022-12-01 22:13:43 +00:00
Drashna Jaelre
0e8d22e2b7 [Keyboard] Fix config error for Charybdis (#19219) 2022-12-01 22:12:35 +00:00
Drashna Jaelre
50661ab65c Remove RGBLIGHT_ANIMATIONS from core (+cleanup) (#19216) 2022-12-01 13:06:45 -08:00
QMK Bot
9c320bc558 Merge remote-tracking branch 'origin/master' into develop 2022-11-30 23:31:14 +00:00
HorrorTroll
e9d5967a93 [Keyboard] Add keyboard Caticorn (#19138) 2022-11-30 15:30:41 -08:00
QMK Bot
9ebd6eacd5 Merge remote-tracking branch 'origin/master' into develop 2022-11-30 23:28:49 +00:00
tsubuan_145
3f98542e52 Add meow48 ver.1.0 keyboard (#19217)
just make the PRs stop
2022-11-30 23:28:17 +00:00
Joel Challis
3e59bbd731 Automate "Data Driven" migrations (#17820) 2022-11-30 20:08:54 +00:00
QMK Bot
12e4a36db7 Merge remote-tracking branch 'origin/master' into develop 2022-11-30 19:21:17 +00:00
Commander1024
402d3d8a86 [Keyboard] Daskeyboard4 (#18675)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-11-30 11:20:45 -08:00
QMK Bot
b4f6a329d4 Merge remote-tracking branch 'origin/master' into develop 2022-11-30 17:48:56 +00:00
Pablo Martínez
a5c2eea6c1 Update OLED doc (#19213)
* Update OLED doc

* Update docs/feature_oled_driver.md

Co-authored-by: Dasky <32983009+daskygit@users.noreply.github.com>
2022-11-30 17:48:23 +00:00
QMK Bot
3274a80189 Merge remote-tracking branch 'origin/master' into develop 2022-11-30 07:06:35 +00:00
Moses Hoyt
5ff7f289f2 [Keyboard] Add Litl keyboard (#19000)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-11-29 23:06:01 -08:00
QMK Bot
102c7665f4 Merge remote-tracking branch 'origin/master' into develop 2022-11-30 06:54:22 +00:00
IFo Hancroft
38a153b143 [Keymap] Fixed ifohancroft Swap Hands Config (#19176) 2022-11-29 22:52:44 -08:00
QMK Bot
798d6a1c68 Merge remote-tracking branch 'origin/master' into develop 2022-11-30 06:52:25 +00:00
Adam Lickel
3d091f4a9d Keeb.io Sinc: Enable Split LED state (#19187) 2022-11-29 22:52:10 -08:00
Manna Harbour
0b29af1019 [Keymap] Update Miryoku (#19190) 2022-11-29 22:51:49 -08:00
QMK Bot
f7095283e8 Merge remote-tracking branch 'origin/master' into develop 2022-11-30 06:39:59 +00:00
Joel Challis
5d516ac2e2 Ignore some layout macro names from lint (#19207) 2022-11-30 06:39:41 +00:00
Joel Challis
739d4ad2fb Add some community layouts to 40percentclub boards (#19209) 2022-11-30 06:39:27 +00:00
QMK Bot
b2c8e59cc1 Merge remote-tracking branch 'origin/master' into develop 2022-11-30 06:38:33 +00:00
Joel Challis
2d45e5e4b4 Add ortho_3x3 community layout (#19210) 2022-11-30 06:38:02 +00:00
QMK Bot
891734e2d3 Merge remote-tracking branch 'origin/master' into develop 2022-11-30 06:18:38 +00:00
Joel Challis
e0d0d81dfa Add missing default_ortho_5x5 keymap (#19208) 2022-11-30 06:18:05 +00:00
QMK Bot
3fffdf4c71 Merge remote-tracking branch 'origin/master' into develop 2022-11-30 06:03:51 +00:00
Joel Challis
bb4f094a08 Fix bad bootmagic config (#19206) 2022-11-30 17:03:19 +11:00
QMK Bot
370c02cb9a Merge remote-tracking branch 'origin/master' into develop 2022-11-30 04:28:46 +00:00
Joel Challis
17fec52b0f Extend layout lint checks (#19200)
* Extend layout lint checks

* Apply suggestions from code review

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

* Fix function comment

Co-authored-by: Ryan <fauxpark@gmail.com>
2022-11-30 04:27:48 +00:00
Joel Challis
c952458c78 DD bootmagic config (#19201)
* DD bootmagic config

* Also enable

* docs
2022-11-30 04:27:21 +00:00
QMK Bot
20b901366a Merge remote-tracking branch 'origin/master' into develop 2022-11-30 02:46:25 +00:00
Joel Challis
4a0aa9ada2 Fix headers in info.json reference (#19202) 2022-11-30 02:45:51 +00:00
QMK Bot
4d74839d35 Merge remote-tracking branch 'origin/master' into develop 2022-11-30 01:01:46 +00:00
Albert Y
90fe668dd9 Enable bootmagic (#19191) 2022-11-30 01:01:10 +00:00
QMK Bot
d648eb42ca Merge remote-tracking branch 'origin/master' into develop 2022-11-29 19:44:26 +00:00
Drashna Jaelre
4a87af0e9a [Keymap] Drashna updates for 0.19 (#19175)
* Fix up bastardkb boards since blackpill support is officially added.
  * Check for blackpill version, not elite c.
  * Add checks in chibiOS config since multiple ARM controllers supported.
  * Rework rules.mk for keymaps to better handle arm vs avr support
* Start moving away from `matrix_*_*` functions.
  * `housekeeping_task_*` instead of `matrix_scan_*`
  * `keyboard_(pre|post)_init_*` instead of `matrix_init_*` 
* Add ℂℴmⅈℂ unicode input method.
* Clean up unicode code to be more compact and flexible.
* Remove/move Pro Micro LED commands to userspace and better filter them
* Fixup OLED code
  * Use newer quantum keycode functions/preprocessors rather than manual bit manipulation
  * Make unicode mode render much more compact/simple.
* Make qmk secrets more self contained
* Remove custom implementation of split watchdog
2022-11-29 11:43:42 -08:00
QMK Bot
c146563f4b Merge remote-tracking branch 'origin/master' into develop 2022-11-29 16:35:30 +00:00
Ryan
8a8000b4ec Fix Czech sendstring LUT (#19193) 2022-11-29 16:34:57 +00:00
JayceFayne
9ddb0165a4 fix typo (#19189) 2022-11-29 16:34:20 +00:00
Joel Challis
393a37c012 Update files changed action (#19172) 2022-11-28 20:04:04 +00:00
Felix Kuehling
4ae7525923 Bug17281 - Retain momentary layers until the end of tapping (#17282)
* Make process_tapping more readable

Move most #ifdefs into conditionally defined macros to make the logic
easier to follow.

* Retain momentary layers until the end of tapping

This allows mod-tap and layer-tap keys on layers to behave as expected.

Bug: https://github.com/qmk/qmk_firmware/issues/17281

* Add tests for delayed mod/layer release while tapping

Mods and layer key release is delayed while tapping is in progress to
ensure that the tap is registered with the modifier state and on the
layer where the key was first pressed.

Signed-off-by: Felix Kuehling <felix.kuehling@gmail.com>
2022-11-28 09:16:38 +01:00
QMK Bot
baf573a144 Merge remote-tracking branch 'origin/master' into develop 2022-11-28 05:47:14 +00:00
Ryan Baker
d27b852fcc new keyboard rb1 (#18164)
* rb1

* Update keymap.c

* Update keyboards/ryanbaekr/rb1/info.json

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

* Delete rb1.c

* Delete rb1.h

* Update keyboards/ryanbaekr/rb1/config.h

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

* Update keyboards/ryanbaekr/rb1/config.h

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

* Update keyboards/ryanbaekr/rb1/config.h

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

Co-authored-by: Ryan <fauxpark@gmail.com>
2022-11-28 05:46:40 +00:00
QMK Bot
7e27e5e9c8 Merge remote-tracking branch 'origin/master' into develop 2022-11-28 05:26:50 +00:00
gshmu
690eb4a453 Fix RWIN typo within keycode list (#19155)
fix typo
2022-11-28 05:25:56 +00:00
QMK Bot
af703e6c0a Merge remote-tracking branch 'origin/master' into develop 2022-11-28 02:08:59 +00:00
Ndot
5a3770d363 [Docs] Update reference_info_json.md (#18817)
* [Docs] Update reference_info_json.md

- Makes it easier to find keyboard.jsonschema.
- Adds a reference to the Data Driven page.

* Update docs/reference_info_json.md

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

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-11-28 02:08:27 +00:00
QMK Bot
1c2669f801 Merge remote-tracking branch 'origin/master' into develop 2022-11-28 02:04:41 +00:00
Leo Lou
cbedec64a4 Add piantor (#18920)
* Add piantor

* Update keyboards/beekeeb/piantor/readme.md

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

Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-11-28 02:03:58 +00:00
Gabriele Musco
d915ab59ac Add udev rule for the WB32 DFU bootloader (#19135)
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-11-28 09:13:25 +11:00
13693 changed files with 217670 additions and 124360 deletions

3
.clangd Normal file
View File

@@ -0,0 +1,3 @@
CompileFlags:
Remove: -mcall-prologues
Add: -nostdinc

View File

@@ -7,6 +7,9 @@ body:
attributes:
value: |
Provide a general summary of the changes you want in the title above.
Please refrain from asking maintainers to add support for specific keyboards -- it is unlikely they will have hardware available, and will not be able to help.
Your best bet is to take the initiative, add support, then submit a PR yourself.
- type: checkboxes
attributes:
label: Feature Request Type
@@ -18,4 +21,4 @@ body:
- type: textarea
attributes:
label: Description
description: A few sentences describing what it is that you'd like to see in QMK. Additional information (such as links to spec sheets, licensing info, other related issues or PRs, etc) would be helpful.
description: A few sentences describing what it is that you'd like to see in QMK. Additional information (such as links to spec sheets, licensing info, other related issues or PRs, etc) would be helpful.

View File

@@ -10,7 +10,10 @@ body:
attributes:
value: |
Please check [https://docs.qmk.fm/#/support](https://docs.qmk.fm/#/support) for additional resources first. If that doesn't answer your question, choose the bug report template instead, as that may be more appropriate.
Please refrain from asking maintainers to add support for specific keyboards -- it is unlikely they will have hardware available, and will not be able to help.
Your best bet is to take the initiative, add support, then submit a PR yourself.
- type: textarea
attributes:
label: Issue Description
description: Describe your issue in as much detail as possible.
description: Describe your issue in as much detail as possible.

1
.github/labeler.yml vendored
View File

@@ -5,6 +5,7 @@ core:
- tests/**/*
- util/**/*
- platforms/**/*
- builddefs/**/*
- Makefile
- '*.mk'
dependencies:

View File

@@ -1,5 +1,8 @@
name: Update API Data
permissions:
contents: read
on:
push:
branches:

View File

@@ -1,5 +1,7 @@
name: Automatic Approve
permissions: {}
on:
schedule:
- cron: "*/5 * * * *"

View File

@@ -1,16 +1,20 @@
name: Essential files modified
permissions:
contents: write
on:
push:
branches:
- master
paths:
- quantum/**/*
- tmk_core/**/*
- builddefs/**/*
- drivers/**/*
- tests/**/*
- util/**/*
- platforms/**/*
- quantum/**/*
- tests/**/*
- tmk_core/**/*
- util/**/*
- Makefile
- '*.mk'
@@ -27,7 +31,7 @@ jobs:
fetch-depth: 0
- name: Bump version and push tag
uses: anothrNick/github-tag-action@1.52.0
uses: anothrNick/github-tag-action@1.61.0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
DEFAULT_BUMP: 'patch'

60
.github/workflows/ci_builds.yml vendored Normal file
View File

@@ -0,0 +1,60 @@
name: CI Builds
permissions:
contents: read
on:
workflow_dispatch:
schedule:
- cron: '0 0,12 * * *'
jobs:
ci_builds:
name: "CI Build"
runs-on: self-hosted
timeout-minutes: 1380
if: github.repository == 'qmk/qmk_firmware'
strategy:
fail-fast: false
matrix:
branch: [master, develop]
keymap: [default, via]
container: qmkfm/qmk_cli
steps:
- name: Disable safe.directory check
run : git config --global --add safe.directory '*'
- uses: actions/checkout@v3
with:
submodules: recursive
ref: ${{ matrix.branch }}
- name: Install dependencies
run: pip3 install -r requirements.txt
- name: Run `qmk mass-compile` (keymap ${{ matrix.keymap }})
run: |
export NCPUS=$(nproc 2>/dev/null || sysctl -n hw.ncpu 2>/dev/null || getconf _NPROCESSORS_ONLN 2>/dev/null)
qmk mass-compile -t -j $NCPUS -km ${{ matrix.keymap }} -e DUMP_CI_METADATA=yes || touch .failed
# Generate the step summary markdown
./util/ci/generate_failure_markdown.sh > $GITHUB_STEP_SUMMARY || true
# Truncate to a maximum of 1MB to deal with GitHub workflow limit
truncate --size='<960K' $GITHUB_STEP_SUMMARY || true
# Exit with failure if the compilation stage failed
[ ! -f .failed ] || exit 1
- name: 'Upload artifacts'
uses: actions/upload-artifact@v3
if: always()
with:
name: artifacts-${{ matrix.branch }}-${{ matrix.keymap }}
if-no-files-found: ignore
path: |
*.bin
*.hex
*.uf2
.build/failed.*

View File

@@ -1,5 +1,8 @@
name: CLI CI
permissions:
contents: read
on:
push:
branches:
@@ -18,9 +21,13 @@ jobs:
container: qmkfm/qmk_cli
steps:
- name: Disable safe.directory check
run : git config --global --add safe.directory '*'
- uses: actions/checkout@v3
with:
submodules: recursive
- name: Install dependencies
run: pip3 install -r requirements-dev.txt
- name: Run tests

View File

@@ -1,5 +1,8 @@
name: Update develop after master merge
permissions:
contents: write
on:
push:
branches:

View File

@@ -1,5 +1,8 @@
name: Generate Docs
permissions:
contents: write
on:
push:
branches:

View File

@@ -1,5 +1,8 @@
name: Update feature branches after develop merge
permissions:
contents: write
on:
push:
branches:

View File

@@ -1,5 +1,8 @@
name: PR Lint Format
permissions:
contents: read
on:
pull_request:
paths:
@@ -19,6 +22,9 @@ jobs:
container: qmkfm/qmk_cli
steps:
- name: Disable safe.directory check
run : git config --global --add safe.directory '*'
- uses: actions/checkout@v3
with:
fetch-depth: 0
@@ -27,16 +33,14 @@ jobs:
run: |
pip3 install -r requirements-dev.txt
- uses: trilom/file-changes-action@v1.2.4
- name: Get changed files
id: file_changes
with:
output: ' '
fileOutput: ' '
uses: tj-actions/changed-files@v35
- name: Run qmk formatters
shell: 'bash {0}'
run: |
cat ~/files_added.txt ~/files_modified.txt > ~/files_changed.txt
echo '${{ steps.file_changes.outputs.added_files}}' '${{ steps.file_changes.outputs.modified_files}}' > ~/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

View File

@@ -1,5 +1,8 @@
name: Lint Format
permissions:
contents: read
on:
push:
branches:
@@ -13,6 +16,9 @@ jobs:
container: qmkfm/qmk_cli
steps:
- name: Disable safe.directory check
run : git config --global --add safe.directory '*'
- uses: actions/checkout@v3
with:
fetch-depth: 0

View File

@@ -1,5 +1,9 @@
name: "Pull Request Labeler"
permissions:
contents: read
pull-requests: write
on:
pull_request_target:
types: [opened, synchronize, reopened, ready_for_review, locked]

View File

@@ -1,5 +1,8 @@
name: PR Lint keyboards
permissions:
contents: read
on:
pull_request:
paths:
@@ -12,6 +15,9 @@ jobs:
container: qmkfm/qmk_cli
steps:
- name: Disable safe.directory check
run : git config --global --add safe.directory '*'
- uses: actions/checkout@v3
with:
fetch-depth: 0
@@ -19,24 +25,24 @@ jobs:
- name: Install dependencies
run: pip3 install -r requirements-dev.txt
- uses: trilom/file-changes-action@v1.2.4
- name: Get changed files
id: file_changes
with:
output: '\n'
uses: tj-actions/changed-files@v35
- name: Print info
run: |
git rev-parse --short HEAD
echo ${{ github.event.pull_request.base.sha }}
echo '${{ steps.file_changes.outputs.files}}'
echo '${{ steps.file_changes.outputs.all_changed_files}}'
- name: Run qmk lint
shell: 'bash {0}'
run: |
QMK_CHANGES=$(echo -e '${{ steps.file_changes.outputs.files}}')
QMK_CHANGES=$(echo -e '${{ steps.file_changes.outputs.all_changed_files}}' | sed 's/ /\n/g')
QMK_KEYBOARDS=$(qmk list-keyboards)
exit_code=0
for KB in $QMK_KEYBOARDS; do
KEYBOARD_CHANGES=$(echo "$QMK_CHANGES" | grep -E '^(keyboards/'${KB}'/)')
if [[ -z "$KEYBOARD_CHANGES" ]]; then
@@ -52,6 +58,16 @@ jobs:
exit_code=$(($exit_code + $?))
fi
done
qmk format-text ${{ steps.file_changes.outputs.all_changed_files}} || true
for file in ${{ steps.file_changes.outputs.all_changed_files}}; do
if ! git diff --quiet $file; then
echo "File '${file}' Requires Formatting"
echo "::error file=${file}::Requires Formatting"
exit_code=$(($exit_code + 1))
fi
done
if [[ $exit_code -gt 255 ]]; then
exit 255
fi

36
.github/workflows/regen.yml vendored Normal file
View File

@@ -0,0 +1,36 @@
name: PR Regenerate Files
permissions:
contents: read
on:
pull_request:
paths:
- 'data/constants/**'
- 'lib/python/**'
jobs:
regen:
runs-on: ubuntu-latest
container: qmkfm/qmk_cli
steps:
- name: Disable safe.directory check
run : git config --global --add safe.directory '*'
- uses: actions/checkout@v3
- name: Run qmk generators
run: |
util/regen.sh
git diff
- name: Fail when regeneration required
run: |
git diff
for file in $(git diff --name-only); do
echo "File '${file}' Requires Regeneration"
echo "::error file=${file}::Requires Regeneration"
done
test -z "$(git diff --name-only)"

46
.github/workflows/regen_push.yml vendored Normal file
View File

@@ -0,0 +1,46 @@
name: Regenerate Files
permissions:
contents: write
on:
push:
branches:
- master
- develop
jobs:
regen:
runs-on: ubuntu-latest
container: qmkfm/qmk_cli
steps:
- name: Disable safe.directory check
run : git config --global --add safe.directory '*'
- uses: actions/checkout@v3
- name: Run qmk generators
run: |
util/regen.sh
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/regen_${{ env.GITHUB_REF_SLUG }}
author: QMK Bot <hello@qmk.fm>
committer: QMK Bot <hello@qmk.fm>
commit-message: Regenerate Files
title: '[CI] Regenerate Files'

View File

@@ -1,18 +1,19 @@
name: 'Close stale issues and PRs'
on:
schedule:
- cron: '30 1 * * *'
workflow_dispatch:
permissions:
issues: write
pull-requests: write
on:
schedule:
- cron: '30 1 * * *'
workflow_dispatch:
jobs:
stale:
runs-on: ubuntu-latest
steps:
- uses: actions/stale@v6
- uses: actions/stale@v8
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -1,5 +1,8 @@
name: Unit Tests
permissions:
contents: read
on:
push:
branches:

5
.gitignore vendored
View File

@@ -52,9 +52,12 @@ quantum/version.h
.history/
build/
cmake-build-debug
CMakeLists.txt
# CMakeLists.txt
*.pdf
# cmake toolchain downloads
/toolchains
# Let these ones be user specific, since we have so many different configurations
*.code-workspace
.stfolder

4
.gitmodules vendored
View File

@@ -21,3 +21,7 @@
[submodule "lib/pico-sdk"]
path = lib/pico-sdk
url = https://github.com/qmk/pico-sdk.git
[submodule "lib/lvgl"]
path = lib/lvgl
url = https://github.com/qmk/lvgl.git
branch = release/v8.2

9
.vscode/cmake-kits.json vendored Normal file
View File

@@ -0,0 +1,9 @@
[
{
"name": "AVR GCC",
"compilers": {
"CC": "C:\\QMK_MSYS\\mingw64\\bin\\avr-gcc.exe",
"CXX": "C:\\QMK_MSYS\\mingw64\\bin\\avr-g++.exe"
}
}
]

View File

@@ -5,8 +5,8 @@
// Configure glob patterns for excluding files and folders.
"files.exclude": {
"**/.build": true,
"**/*.hex": true,
"**/*.bin": true,
// "**/*.hex": true,
// "**/*.bin": true,
"**/*.uf2": true
},
"files.associations": {

114
.vscode/tasks.json vendored Normal file
View File

@@ -0,0 +1,114 @@
{
"version": "2.0.0",
"tasks": [
{
"label": "Load Keyboard",
"dependsOrder": "sequence",
"dependsOn":[
"Only Load Keyboard",
"Configure CMake"
],
"group": {
"kind": "build",
"isDefault": true
}
},
{
"label": "Only Load Keyboard",
"type": "shell",
"command": "cmake -D QMK_KEYBOARD_FOLDER=\"${input:all_keyboards}\" -D QMK_KEYMAP_FOLDER=\"${input:keyboard_keymap}\" -P ${workspaceFolder}/cmake/ConfigureKeyboard.cmake",
"problemMatcher": []
},
{
"label": "Configure CMake",
"type": "cmake",
"command": "configure"
},
{
"label": "Build",
"problemMatcher": [
{
"base": "$gcc",
"fileLocation": ["relative", "${workspaceFolder}/build"]
},
],
"options": {
"environment": {
"CLICOLOR_FORCE": "1"
}
},
"type": "cmake",
"command": "build",
"targets":[
"${input:keyboard_target}"
],
"group": {
"kind": "build",
"isDefault": true
},
},
// {
// "label": "Rebuild",
// "problemMatcher": [
// {
// "base": "$gcc",
// "fileLocation": ["relative", "${workspaceFolder}/build"]
// },
// ],
// "options": {
// "environment": {
// "CLICOLOR_FORCE": "1"
// }
// },
// "type": "cmake",
// "command": "cleanRebuild",
// "targets":[
// "${input:keyboard_target}"
// ],
// "group": {
// "kind": "build",
// "isDefault": true
// },
// }
],
"inputs": [
{
"id": "keyboard_target",
"type": "command",
"command": "shellCommand.execute",
"args": {
"command": "type build\\targets",
"description": "Target:",
"fieldSeparator": "|"
},
},
{
"id": "all_keyboards",
"type": "command",
"command": "shellCommand.execute",
"args": {
"command": "type build\\all_keyboards",
"description": "Keyboard:",
"default": ""
},
},
{
"id": "keymap",
"description": "Keymap:",
"type": "pickString",
"options":[
"default"
]
},
{
"id": "keyboard_keymap",
"type": "command",
"command": "shellCommand.execute",
"args": {
"command": "cmake -D QMK_KEYBOARD_FOLDER=\"${input:all_keyboards}\" -P ${workspaceFolder}/cmake/GetKeymaps.cmake && type build\\keyboard_keymaps",
"description": "Keymap:",
"default": ""
},
},
]
}

97
CMakeLists.txt Normal file
View File

@@ -0,0 +1,97 @@
cmake_minimum_required(VERSION 3.20)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON CACHE INTERNAL "")
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
include(UpdateSubmodule)
include(ResolveKeyboard)
include(ValidateJson)
include(ProcessKeyboard)
set(QMK_KEYBOARDS_FOLDER "${CMAKE_SOURCE_DIR}/keyboards")
function(_get_all_cmake_targets out_var current_dir)
get_property(targets DIRECTORY ${current_dir} PROPERTY BUILDSYSTEM_TARGETS)
get_property(subdirs DIRECTORY ${current_dir} PROPERTY SUBDIRECTORIES)
foreach(subdir ${subdirs})
_get_all_cmake_targets(subdir_targets ${subdir})
list(APPEND targets ${subdir_targets})
endforeach()
set(${out_var} ${targets} PARENT_SCOPE)
endfunction()
if(NOT DEFINED QMK_KEYBOARD)
# configure step - populate targets
project(qmk_firmware)
add_subdirectory(keyboards)
else()
# build step
if(NOT DEFINED QMK_KEYMAP_FOLDER)
set(QMK_KEYMAP_FOLDER "default")
endif()
resolve_keyboard(${QMK_KEYBOARD_FOLDER} QMK_KEYBOARD_FOLDER_ABS)
cmake_path(IS_PREFIX QMK_KEYBOARDS_FOLDER "${QMK_KEYBOARD_FOLDER_ABS}" IS_KEYBOARDS_FOLDER)
resolve_config_h(${QMK_KEYBOARD_FOLDER_ABS} QMK_KEYBOARD_CONFIG_H)
process_keyboard()
resolve_keyboard_h(${QMK_KEYBOARD_FOLDER_ABS} QMK_KEYBOARD_H)
resolve_keymap_c(${QMK_KEYBOARD_FOLDER_ABS} ${QMK_KEYMAP_FOLDER} QMK_KEYMAP_C)
message(STATUS "config.h: ${QMK_KEYBOARD_CONFIG_H}")
message(STATUS "keyboard.h: ${QMK_KEYBOARD_H}")
message(STATUS "keymap.c: ${QMK_KEYMAP_C}")
project(${QMK_KEYBOARD}
LANGUAGES C CXX ASM
HOMEPAGE_URL ${URL}
VERSION ${DEVICE_VER})
# add_compile_options(
# -include ${QMK_KEYBOARD_CONFIG_H}
# )
add_compile_definitions(
QMK_KEYBOARD_H="${QMK_KEYBOARD_H}"
KEYBOARD_${QMK_KEYBOARD}
KEYMAP_C="${QMK_KEYMAP_C}"
MATRIX_ROWS=8
MATRIX_COLS=6
)
if(DEFINED DIODE_DIRECTION)
add_compile_definitions(DIODE_DIRECTION=${DIODE_DIRECTION})
endif()
include_directories(${CMAKE_SOURCE_DIR})
# if(EXISTS ${QMK_KEYBOARD_FOLDER_ABS}/CMakeLists.txt)
# add_subdirectory(${QMK_KEYBOARD_FOLDER_ABS})
# else()
file(GLOB KEYBOARD_SRC "${QMK_KEYBOARD_FOLDER_ABS}/*.c")
list(REMOVE_ITEM KEYBOARD_SRC "${QMK_KEYMAP_C}")
add_qmk_executable(${TARGET_NAME} ${KEYBOARD_SRC})
# endif()
# add_library(qmk)
target_precompile_headers(qmk PUBLIC
${QMK_KEYBOARD_CONFIG_H}
)
resolve_keyboard_includes(${QMK_KEYBOARD_FOLDER_ABS})
add_subdirectory(quantum)
add_subdirectory(platforms)
add_subdirectory(tmk_core/protocol)
include(features/oled)
include(features/backlight)
include(features/eeprom)
include(features/matrix)
include(features/fnv)
endif()

View File

@@ -19,8 +19,13 @@ endif
# Otherwise the [OK], [ERROR] and [WARN] messages won't be displayed correctly
override SILENT := false
ifeq ($(shell git rev-parse --is-inside-work-tree 2>/dev/null),)
export SKIP_GIT := yes
export NOT_REPO := yes
endif
ifdef SKIP_VERSION
SKIP_GIT := yes
export SKIP_GIT := yes
endif
ifndef SUB_IS_SILENT
@@ -43,17 +48,10 @@ ON_ERROR := error_occurred=1
BREAK_ON_ERRORS = no
STARTING_MAKEFILE := $(firstword $(MAKEFILE_LIST))
ROOT_MAKEFILE := $(lastword $(MAKEFILE_LIST))
ROOT_DIR := $(dir $(ROOT_MAKEFILE))
ROOT_DIR := $(dir $(lastword $(MAKEFILE_LIST)))
ifeq ($(ROOT_DIR),)
ROOT_DIR := .
endif
ABS_STARTING_MAKEFILE := $(abspath $(STARTING_MAKEFILE))
ABS_ROOT_MAKEFILE := $(abspath $(ROOT_MAKEFILE))
ABS_STARTING_DIR := $(dir $(ABS_STARTING_MAKEFILE))
ABS_ROOT_DIR := $(dir $(ABS_ROOT_MAKEFILE))
STARTING_DIR := $(subst $(ABS_ROOT_DIR),,$(ABS_STARTING_DIR))
include paths.mk
@@ -126,29 +124,16 @@ endef
define PARSE_RULE
RULE := $1
COMMANDS :=
REQUIRE_PLATFORM_KEY :=
# If the rule starts with all, then continue the parsing from
# PARSE_ALL_KEYBOARDS
ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,all),true)
KEYBOARD_RULE=all
$$(eval $$(call PARSE_ALL_KEYBOARDS))
else ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,all-avr),true)
KEYBOARD_RULE=all
REQUIRE_PLATFORM_KEY := avr
$$(eval $$(call PARSE_ALL_KEYBOARDS))
else ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,all-chibios),true)
KEYBOARD_RULE=all
REQUIRE_PLATFORM_KEY := chibios
$$(eval $$(call PARSE_ALL_KEYBOARDS))
else ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,all-arm_atsam),true)
KEYBOARD_RULE=all
REQUIRE_PLATFORM_KEY := arm_atsam
$$(eval $$(call PARSE_ALL_KEYBOARDS))
else ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,test),true)
$$(eval $$(call PARSE_TEST))
# If the rule starts with the name of a known keyboard, then continue
# the parsing from PARSE_KEYBOARD
else ifeq ($$(call TRY_TO_MATCH_RULE_FROM_LIST,$$(shell util/list_keyboards.sh | sort -u)),true)
else ifeq ($$(call TRY_TO_MATCH_RULE_FROM_LIST,$$(shell $(QMK_BIN) list-keyboards --no-resolve-defaults)),true)
KEYBOARD_RULE=$$(MATCHED_ITEM)
$$(eval $$(call PARSE_KEYBOARD,$$(MATCHED_ITEM)))
else
@@ -241,7 +226,7 @@ endef
# if we are going to compile all keyboards, match the rest of the rule
# for each of them
define PARSE_ALL_KEYBOARDS
$$(eval $$(call PARSE_ALL_IN_LIST,PARSE_KEYBOARD,$(shell util/list_keyboards.sh | sort -u)))
$$(eval $$(call PARSE_ALL_IN_LIST,PARSE_KEYBOARD,$(shell $(QMK_BIN) list-keyboards --no-resolve-defaults)))
endef
# Prints a list of all known keymaps for the given keyboard
@@ -273,7 +258,7 @@ define PARSE_KEYMAP
# Format it in bold
KB_SP := $(BOLD)$$(KB_SP)$(NO_COLOR)
# Specify the variables that we are passing forward to submake
MAKE_VARS := KEYBOARD=$$(CURRENT_KB) KEYMAP=$$(CURRENT_KM) REQUIRE_PLATFORM_KEY=$$(REQUIRE_PLATFORM_KEY) QMK_BIN=$$(QMK_BIN)
MAKE_VARS := KEYBOARD=$$(CURRENT_KB) KEYMAP=$$(CURRENT_KM) QMK_BIN=$$(QMK_BIN)
# And the first part of the make command
MAKE_CMD := $$(MAKE) -r -R -C $(ROOT_DIR) -f $(BUILDDEFS_PATH)/build_keyboard.mk $$(MAKE_TARGET)
# The message to display
@@ -390,25 +375,15 @@ endef
# Catch everything and parse the command line ourselves.
.PHONY: %
%:
# Check if we have the CMP tool installed
cmp $(ROOT_DIR)/Makefile $(ROOT_DIR)/Makefile >/dev/null 2>&1; if [ $$? -gt 0 ]; then printf "$(MSG_NO_CMP)"; exit 1; fi;
# Ensure that $(QMK_BIN) works.
if ! $(QMK_BIN) hello 1> /dev/null 2>&1; then printf "$(MSG_PYTHON_MISSING)"; exit 1; fi
# Check if the submodules are dirty, and display a warning if they are
ifdef NOT_REPO
printf "$(MSG_NOT_REPO)"
endif
ifndef SKIP_GIT
if [ ! -e lib/chibios ]; then git submodule sync lib/chibios && git submodule update --depth 50 --init lib/chibios; fi
if [ ! -e lib/chibios-contrib ]; then git submodule sync lib/chibios-contrib && git submodule update --depth 50 --init lib/chibios-contrib; fi
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 \
\ *) ;; \
*) printf "$(MSG_SUBMODULE_DIRTY)";break;; \
esac \
done
$(QMK_BIN) git-submodule --sync
# Check if the submodules are dirty, and display a warning if they are
if ! $(QMK_BIN) git-submodule --check 1> /dev/null 2>&1; then printf "$(MSG_SUBMODULE_DIRTY)"; fi
endif
rm -f $(ERROR_FILE) > /dev/null 2>&1
$(eval $(call PARSE_RULE,$@))
@@ -429,22 +404,18 @@ lib/%:
.PHONY: git-submodule
git-submodule:
[ -e lib/ugfx ] && rm -rf lib/ugfx || true
[ -e lib/pico-sdk ] && rm -rf lib/pico-sdk || true
[ -e lib/chibios-contrib/ext/mcux-sdk ] && rm -rf lib/chibios-contrib/ext/mcux-sdk || true
git submodule sync --recursive
git submodule update --init --recursive --progress
$(QMK_BIN) git-submodule
.PHONY: git-submodules
git-submodules: git-submodule
.PHONY: list-keyboards
list-keyboards:
util/list_keyboards.sh | sort -u | tr '\n' ' '
$(QMK_BIN) list-keyboards --no-resolve-defaults | tr '\n' ' '
.PHONY: generate-keyboards-file
generate-keyboards-file:
util/list_keyboards.sh | sort -u
$(QMK_BIN) list-keyboards --no-resolve-defaults
.PHONY: clean
clean:

View File

@@ -24,6 +24,8 @@ $(TEST)_SRC := \
tests/test_common/matrix.c \
tests/test_common/test_driver.cpp \
tests/test_common/keyboard_report_util.cpp \
tests/test_common/keycode_util.cpp \
tests/test_common/keycode_table.cpp \
tests/test_common/test_fixture.cpp \
tests/test_common/test_keymap_key.cpp \
tests/test_common/test_logger.cpp \

View File

@@ -29,6 +29,11 @@ KEYBOARD_FILESAFE := $(subst /,_,$(KEYBOARD))
TARGET ?= $(KEYBOARD_FILESAFE)_$(KEYMAP)
KEYBOARD_OUTPUT := $(BUILD_DIR)/obj_$(KEYBOARD_FILESAFE)
ifeq ($(strip $(DUMP_CI_METADATA)),yes)
$(info CI Metadata: KEYBOARD=$(KEYBOARD))
$(info CI Metadata: KEYMAP=$(KEYMAP))
endif
# Force expansion
TARGET := $(TARGET)
@@ -46,11 +51,12 @@ ifdef SKIP_VERSION
endif
# Generate the version.h file
VERSION_H_FLAGS :=
ifdef SKIP_VERSION
VERSION_H_FLAGS := --skip-all
VERSION_H_FLAGS += --skip-all
endif
ifdef SKIP_GIT
VERSION_H_FLAGS := --skip-git
VERSION_H_FLAGS += --skip-git
endif
# Generate the board's version.h file.
@@ -182,7 +188,14 @@ endif
include $(BUILDDEFS_PATH)/converters.mk
include $(BUILDDEFS_PATH)/mcu_selection.mk
MCU_ORIG := $(MCU)
include $(wildcard $(PLATFORM_PATH)/*/mcu_selection.mk)
# PLATFORM_KEY should be detected in info.json via key 'processor' (or rules.mk 'MCU')
ifeq ($(PLATFORM_KEY),)
$(call CATASTROPHIC_ERROR,Platform not defined)
endif
PLATFORM=$(shell echo $(PLATFORM_KEY) | tr '[:lower:]' '[:upper:]')
# Find all the C source files to be compiled in subfolders.
KEYBOARD_SRC :=
@@ -257,24 +270,6 @@ ifneq ("$(wildcard $(KEYBOARD_PATH_5)/$(KEYBOARD_FOLDER_5).h)","")
FOUND_KEYBOARD_H = $(KEYBOARD_FOLDER_5).h
endif
# Determine and set parameters based on the keyboard's processor family.
# We can assume a ChibiOS target When MCU_FAMILY is defined since it's
# not used for LUFA
ifdef MCU_FAMILY
PLATFORM=CHIBIOS
PLATFORM_KEY=chibios
FIRMWARE_FORMAT?=bin
OPT_DEFS += -DMCU_$(MCU_FAMILY)
else ifdef ARM_ATSAM
PLATFORM=ARM_ATSAM
PLATFORM_KEY=arm_atsam
FIRMWARE_FORMAT=bin
else
PLATFORM=AVR
PLATFORM_KEY=avr
FIRMWARE_FORMAT?=hex
endif
# Find all of the config.h files and add them to our CONFIG_H define.
CONFIG_H :=
ifneq ("$(wildcard $(KEYBOARD_PATH_5)/config.h)","")
@@ -433,13 +428,6 @@ SRC += $(TMK_COMMON_SRC)
OPT_DEFS += $(TMK_COMMON_DEFS)
EXTRALDFLAGS += $(TMK_COMMON_LDFLAGS)
SKIP_COMPILE := no
ifneq ($(REQUIRE_PLATFORM_KEY),)
ifneq ($(REQUIRE_PLATFORM_KEY),$(PLATFORM_KEY))
SKIP_COMPILE := yes
endif
endif
-include $(PLATFORM_PATH)/$(PLATFORM_KEY)/bootloader.mk
include $(PLATFORM_PATH)/$(PLATFORM_KEY)/platform.mk
-include $(PLATFORM_PATH)/$(PLATFORM_KEY)/flash.mk
@@ -479,28 +467,28 @@ $(KEYBOARD_OUTPUT)_INC := $(PROJECT_INC)
$(KEYBOARD_OUTPUT)_CONFIG := $(PROJECT_CONFIG)
# Default target.
ifeq ($(SKIP_COMPILE),no)
all: build check-size
else
all:
echo "skipped" >&2
endif
build: elf cpfirmware
check-size: build
check-md5: build
objs-size: build
ifneq ($(strip $(TOP_SYMBOLS)),)
ifeq ($(strip $(TOP_SYMBOLS)),yes)
NUM_TOP_SYMBOLS := 10
else
NUM_TOP_SYMBOLS := $(strip $(TOP_SYMBOLS))
endif
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'
$(NM) -Crtd --size-sort $(BUILD_DIR)/$(TARGET).elf | grep -i ' [t] ' | head -n$(NUM_TOP_SYMBOLS) | 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'
$(NM) -Crtd --size-sort $(BUILD_DIR)/$(TARGET).elf | grep -i ' [dbv] ' | head -n$(NUM_TOP_SYMBOLS) | 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

View File

@@ -62,6 +62,7 @@ include $(PLATFORM_PATH)/common.mk
include $(TMK_PATH)/protocol.mk
include $(QUANTUM_PATH)/debounce/tests/rules.mk
include $(QUANTUM_PATH)/encoder/tests/rules.mk
include $(QUANTUM_PATH)/os_detection/tests/rules.mk
include $(QUANTUM_PATH)/sequencer/tests/rules.mk
include $(QUANTUM_PATH)/wear_leveling/tests/rules.mk
include $(QUANTUM_PATH)/logging/print.mk

View File

@@ -84,6 +84,13 @@ endif
ifeq ($(strip $(MIDI_ENABLE)), yes)
OPT_DEFS += -DMIDI_ENABLE
MUSIC_ENABLE = yes
COMMON_VPATH += $(QUANTUM_PATH)/midi
SRC += $(QUANTUM_DIR)/midi/midi.c
SRC += $(QUANTUM_DIR)/midi/midi_device.c
SRC += $(QUANTUM_DIR)/midi/qmk_midi.c
SRC += $(QUANTUM_DIR)/midi/sysex_tools.c
SRC += $(QUANTUM_DIR)/midi/bytequeue/bytequeue.c
SRC += $(QUANTUM_DIR)/midi/bytequeue/interrupt_setting.c
SRC += $(QUANTUM_DIR)/process_keycode/process_midi.c
endif
@@ -230,7 +237,7 @@ else
# Wear-leveling EEPROM implementation, backed by MCU flash
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_WEAR_LEVELING
SRC += eeprom_driver.c eeprom_wear_leveling.c
WEAR_LEVELING_DRIVER = embedded_flash
WEAR_LEVELING_DRIVER ?= embedded_flash
else ifneq ($(filter $(MCU_SERIES),STM32L0xx STM32L1xx),)
# True EEPROM on STM32L0xx, L1xx
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_STM32_L0_L1
@@ -239,7 +246,7 @@ else
# 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
WEAR_LEVELING_DRIVER ?= rp2040_flash
else ifneq ($(filter $(MCU_SERIES),KL2x K20x),)
# Teensy EEPROM implementations
OPT_DEFS += -DEEPROM_KINETIS_FLEXRAM
@@ -613,6 +620,7 @@ ifeq ($(strip $(VIA_ENABLE)), yes)
DYNAMIC_KEYMAP_ENABLE := yes
RAW_ENABLE := yes
BOOTMAGIC_ENABLE := yes
TRI_LAYER_ENABLE := yes
SRC += $(QUANTUM_DIR)/via.c
OPT_DEFS += -DVIA_ENABLE
endif
@@ -907,3 +915,11 @@ ifeq ($(strip $(ENCODER_ENABLE)), yes)
OPT_DEFS += -DENCODER_MAP_ENABLE
endif
endif
ifeq ($(strip $(OS_DETECTION_ENABLE)), yes)
SRC += $(QUANTUM_DIR)/os_detection.c
OPT_DEFS += -DOS_DETECTION_ENABLE
ifeq ($(strip $(OS_DETECTION_DEBUG_ENABLE)), yes)
OPT_DEFS += -DOS_DETECTION_DEBUG_ENABLE
endif
endif

View File

@@ -218,8 +218,8 @@ gccversion :
@$(SILENT) || printf "$(MSG_FLASH) $@" | $(AWK_CMD)
@$(BUILD_CMD)
%.uf2: %.hex
$(eval CMD=$(UF2CONV) $(BUILD_DIR)/$(TARGET).hex --output $(BUILD_DIR)/$(TARGET).uf2 --convert --family $(UF2_FAMILY) >/dev/null 2>&1)
%.uf2: %.elf
$(eval CMD=$(HEX) $< $(BUILD_DIR)/$(TARGET).tmp && $(UF2CONV) $(BUILD_DIR)/$(TARGET).tmp --output $@ --convert --family $(UF2_FAMILY) >/dev/null 2>&1)
#@$(SILENT) || printf "$(MSG_EXECUTING) '$(CMD)':\n"
@$(SILENT) || printf "$(MSG_UF2) $@" | $(AWK_CMD)
@$(BUILD_CMD)

View File

@@ -1,30 +1,25 @@
# 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 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@)
ifneq ($(findstring yes, $(CTPC)$(CONVERT_TO_PROTON_C)),)
$(call CATASTROPHIC_ERROR,The `CONVERT_TO_PROTON_C` and `CTPC` options are now deprecated. `CONVERT_TO=proton_c` should be used instead.)
endif
# TODO: opt in rather than assume everything uses a pro micro
PIN_COMPATIBLE ?= promicro
ifneq ($(CONVERT_TO),)
# stash so we can overwrite env provided vars if needed
ACTIVE_CONVERTER=$(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
-include $(CONVERTER)/pre_converter.mk
PLATFORM_KEY = $(shell echo $(CONVERTER) | cut -d "/" -f2)
TARGET := $(TARGET)_$(CONVERT_TO)
# Configure any defaults
@@ -33,6 +28,9 @@ ifneq ($(CONVERT_TO),)
OPT_DEFS += -DCONVERTER_ENABLED
VPATH += $(CONVERTER)
# Configure for "alias" - worst case it produces an idential define
OPT_DEFS += -DCONVERT_TO_$(strip $(shell echo $(ACTIVE_CONVERTER) | tr '[:lower:]' '[:upper:]'))
# Finally run any converter specific logic
include $(CONVERTER)/converter.mk
endif

View File

@@ -39,6 +39,7 @@ GENERIC_FEATURES = \
VELOCIKEY \
WPM \
DYNAMIC_TAPPING_TERM \
TRI_LAYER
define HANDLE_GENERIC_FEATURE
# $$(info "Processing: $1_ENABLE $2.c")

View File

@@ -1,911 +0,0 @@
MCU_ORIG := $(MCU)
ifneq ($(findstring MKL26Z64, $(MCU)),)
# Cortex version
MCU = cortex-m0plus
# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
ARMV = 6
## 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 = KL2x
# Linker script to use
# - it should exist either in <chibios>/os/common/ports/ARMCMx/compilers/GCC/ld/
# or <keyboard_dir>/ld/
MCU_LDSCRIPT ?= MKL26Z64
# Startup code to use
# - it should exist in <chibios>/os/common/ports/ARMCMx/compilers/GCC/mk/
MCU_STARTUP ?= kl2x
# Board: it should exist either in <chibios>/os/hal/boards/,
# <keyboard_dir>/boards/, or drivers/boards/
BOARD ?= PJRC_TEENSY_LC
endif
ifneq ($(findstring MK20DX128, $(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 = K20x
# Linker script to use
# - it should exist either in <chibios>/os/common/ports/ARMCMx/compilers/GCC/ld/
# or <keyboard_dir>/ld/
MCU_LDSCRIPT ?= MK20DX128
# Startup code to use
# - it should exist in <chibios>/os/common/ports/ARMCMx/compilers/GCC/mk/
MCU_STARTUP ?= k20x5
# Board: it should exist either in <chibios>/os/hal/boards/,
# <keyboard_dir>/boards/, or drivers/boards/
BOARD ?= PJRC_TEENSY_3
endif
ifneq ($(findstring MK20DX256, $(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 = K20x
# Linker script to use
# - it should exist either in <chibios>/os/common/ports/ARMCMx/compilers/GCC/ld/
# or <keyboard_dir>/ld/
MCU_LDSCRIPT ?= MK20DX256
# Startup code to use
# - it should exist in <chibios>/os/common/ports/ARMCMx/compilers/GCC/mk/
MCU_STARTUP ?= k20x7
# Board: it should exist either in <chibios>/os/hal/boards/,
# <keyboard_dir>/boards/, or drivers/boards/
BOARD ?= PJRC_TEENSY_3_1
endif
ifneq ($(findstring MK64FX512, $(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>/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
# - it should exist either in <chibios>/os/common/ports/ARMCMx/compilers/GCC/ld/
# or <keyboard_dir>/ld/
MCU_LDSCRIPT ?= MK66FX1M0
# Startup code to use
# - it should exist in <chibios>/os/common/startup/ARMCMx/compilers/GCC/mk/
MCU_STARTUP ?= MK66F18
# Board: it should exist either in <chibios>/os/hal/boards/,
# <keyboard_dir>/boards/, or drivers/boards/
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
# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
ARMV = 6
## 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 = STM32
MCU_SERIES = STM32F0xx
# Linker script to use
# - it should exist either in <chibios>/os/common/startup/ARMCMx/compilers/GCC/ld/
# or <keyboard_dir>/ld/
MCU_LDSCRIPT ?= STM32F042x6
# Startup code to use
# - it should exist in <chibios>/os/common/startup/ARMCMx/compilers/GCC/mk/
MCU_STARTUP ?= stm32f0xx
# Board: it should exist either in <chibios>/os/hal/boards/,
# <keyboard_dir>/boards/, or drivers/boards/
BOARD ?= GENERIC_STM32_F042X6
USE_FPU ?= no
# UF2 settings
UF2_FAMILY ?= STM32F0
# Stack sizes: Since this chip has limited RAM capacity, the stack area needs to be reduced.
# This ensures that the EEPROM page buffer fits into RAM
USE_PROCESS_STACKSIZE = 0x600
USE_EXCEPTIONS_STACKSIZE = 0x300
# Bootloader address for STM32 DFU
STM32_BOOTLOADER_ADDRESS ?= 0x1FFFC400
endif
ifneq ($(findstring STM32F072, $(MCU)),)
# Cortex version
MCU = cortex-m0
# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
ARMV = 6
## 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 = STM32
MCU_SERIES = STM32F0xx
# Linker script to use
# - it should exist either in <chibios>/os/common/startup/ARMCMx/compilers/GCC/ld/
# or <keyboard_dir>/ld/
MCU_LDSCRIPT ?= STM32F072xB
# Startup code to use
# - it should exist in <chibios>/os/common/startup/ARMCMx/compilers/GCC/mk/
MCU_STARTUP ?= stm32f0xx
# Board: it should exist either in <chibios>/os/hal/boards/,
# <keyboard_dir>/boards/, or drivers/boards/
BOARD ?= GENERIC_STM32_F072XB
USE_FPU ?= no
# UF2 settings
UF2_FAMILY ?= STM32F0
# Bootloader address for STM32 DFU
STM32_BOOTLOADER_ADDRESS ?= 0x1FFFC800
endif
ifneq ($(findstring STM32F103, $(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 = STM32
MCU_SERIES = STM32F1xx
# Linker script to use
# - it should exist either in <chibios>/os/common/startup/ARMCMx/compilers/GCC/ld/
# or <keyboard_dir>/ld/
MCU_LDSCRIPT ?= STM32F103x8
# Startup code to use
# - it should exist in <chibios>/os/common/startup/ARMCMx/compilers/GCC/mk/
MCU_STARTUP ?= stm32f1xx
# Board: it should exist either in <chibios>/os/hal/boards/,
# <keyboard_dir>/boards/, or drivers/boards/
BOARD ?= GENERIC_STM32_F103
USE_FPU ?= no
# UF2 settings
UF2_FAMILY ?= STM32F1
endif
ifneq ($(findstring STM32F303, $(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 = STM32
MCU_SERIES = STM32F3xx
# Linker script to use
# - it should exist either in <chibios>/os/common/startup/ARMCMx/compilers/GCC/ld/
# or <keyboard_dir>/ld/
MCU_LDSCRIPT ?= STM32F303xC
# Startup code to use
# - it should exist in <chibios>/os/common/startup/ARMCMx/compilers/GCC/mk/
MCU_STARTUP ?= stm32f3xx
# Board: it should exist either in <chibios>/os/hal/boards/,
# <keyboard_dir>/boards/, or drivers/boards/
BOARD ?= GENERIC_STM32_F303XC
USE_FPU ?= yes
# UF2 settings
UF2_FAMILY ?= STM32F3
# Bootloader address for STM32 DFU
STM32_BOOTLOADER_ADDRESS ?= 0x1FFFD800
endif
ifneq ($(findstring STM32F401, $(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 = STM32
MCU_SERIES = STM32F4xx
# Linker script to use
# - it should exist either in <chibios>/os/common/startup/ARMCMx/compilers/GCC/ld/
# or <keyboard_dir>/ld/
ifeq ($(strip $(BOOTLOADER)), tinyuf2)
MCU_LDSCRIPT ?= STM32F401xC_tinyuf2
else
MCU_LDSCRIPT ?= STM32F401xC
endif
# Startup code to use
# - it should exist in <chibios>/os/common/startup/ARMCMx/compilers/GCC/mk/
MCU_STARTUP ?= stm32f4xx
# Board: it should exist either in <chibios>/os/hal/boards/,
# <keyboard_dir>/boards/, or drivers/boards/
BOARD ?= GENERIC_STM32_F401XC
USE_FPU ?= yes
# UF2 settings
UF2_FAMILY ?= STM32F4
# Bootloader address for STM32 DFU
STM32_BOOTLOADER_ADDRESS ?= 0x1FFF0000
endif
ifneq ($(findstring STM32F405, $(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 = STM32
MCU_SERIES = STM32F4xx
# Linker script to use
# - it should exist either in <chibios>/os/common/ports/ARMCMx/compilers/GCC/ld/
# or <keyboard_dir>/ld/
MCU_LDSCRIPT ?= STM32F405xG
# Startup code to use
# - it should exist in <chibios>/os/common/startup/ARMCMx/compilers/GCC/mk/
MCU_STARTUP ?= stm32f4xx
# Board: it should exist either in <chibios>/os/hal/boards/,
# <keyboard_dir>/boards/, or drivers/boards/
BOARD ?= GENERIC_STM32_F405XG
USE_FPU ?= yes
# UF2 settings
UF2_FAMILY ?= STM32F4
# Bootloader address for STM32 DFU
STM32_BOOTLOADER_ADDRESS ?= 0x1FFF0000
endif
ifneq ($(findstring STM32F407, $(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 = STM32
MCU_SERIES = STM32F4xx
# Linker script to use
# - it should exist either in <chibios>/os/common/startup/ARMCMx/compilers/GCC/ld/
# or <keyboard_dir>/ld/
MCU_LDSCRIPT ?= STM32F407xE
# Startup code to use
# - it should exist in <chibios>/os/common/startup/ARMCMx/compilers/GCC/mk/
MCU_STARTUP ?= stm32f4xx
# Board: it should exist either in <chibios>/os/hal/boards/,
# <keyboard_dir>/boards/, or drivers/boards/
BOARD ?= GENERIC_STM32_F407XE
USE_FPU ?= yes
# UF2 settings
UF2_FAMILY ?= STM32F4
# Bootloader address for STM32 DFU
STM32_BOOTLOADER_ADDRESS ?= 0x1FFF0000
endif
ifneq ($(findstring STM32F411, $(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 = STM32
MCU_SERIES = STM32F4xx
# Linker script to use
# - it should exist either in <chibios>/os/common/startup/ARMCMx/compilers/GCC/ld/
# or <keyboard_dir>/ld/
ifeq ($(strip $(BOOTLOADER)), tinyuf2)
MCU_LDSCRIPT ?= STM32F411xE_tinyuf2
else
MCU_LDSCRIPT ?= STM32F411xE
endif
# Startup code to use
# - it should exist in <chibios>/os/common/startup/ARMCMx/compilers/GCC/mk/
MCU_STARTUP ?= stm32f4xx
# Board: it should exist either in <chibios>/os/hal/boards/,
# <keyboard_dir>/boards/, or drivers/boards/
BOARD ?= GENERIC_STM32_F411XE
USE_FPU ?= yes
# UF2 settings
UF2_FAMILY ?= STM32F4
# Bootloader address for STM32 DFU
STM32_BOOTLOADER_ADDRESS ?= 0x1FFF0000
endif
ifneq ($(findstring STM32F446, $(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 = STM32
MCU_SERIES = STM32F4xx
# Linker script to use
# - it should exist either in <chibios>/os/common/startup/ARMCMx/compilers/GCC/ld/
# or <keyboard_dir>/ld/
MCU_LDSCRIPT ?= STM32F446xE
# Startup code to use
# - it should exist in <chibios>/os/common/startup/ARMCMx/compilers/GCC/mk/
MCU_STARTUP ?= stm32f4xx
# Board: it should exist either in <chibios>/os/hal/boards/,
# <keyboard_dir>/boards/, or drivers/boards/
BOARD ?= GENERIC_STM32_F446XE
USE_FPU ?= yes
# Bootloader address for STM32 DFU
STM32_BOOTLOADER_ADDRESS ?= 0x1FFF0000
# Default as no chibios efl config
EEPROM_DRIVER ?= transient
endif
ifneq ($(findstring STM32G431, $(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 = STM32
MCU_SERIES = STM32G4xx
# Linker script to use
# - it should exist either in <chibios>/os/common/startup/ARMCMx/compilers/GCC/ld/
# or <keyboard_dir>/ld/
MCU_LDSCRIPT ?= STM32G431xB
# Startup code to use
# - it should exist in <chibios>/os/common/startup/ARMCMx/compilers/GCC/mk/
MCU_STARTUP ?= stm32g4xx
# Board: it should exist either in <chibios>/os/hal/boards/,
# <keyboard_dir>/boards/, or drivers/boards/
BOARD ?= GENERIC_STM32_G431XB
USE_FPU ?= yes
# UF2 settings
UF2_FAMILY ?= STM32G4
# Bootloader address for STM32 DFU
STM32_BOOTLOADER_ADDRESS ?= 0x1FFF0000
endif
ifneq ($(findstring STM32G474, $(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 = STM32
MCU_SERIES = STM32G4xx
# Linker script to use
# - it should exist either in <chibios>/os/common/startup/ARMCMx/compilers/GCC/ld/
# or <keyboard_dir>/ld/
MCU_LDSCRIPT ?= STM32G474xE
# Startup code to use
# - it should exist in <chibios>/os/common/startup/ARMCMx/compilers/GCC/mk/
MCU_STARTUP ?= stm32g4xx
# Board: it should exist either in <chibios>/os/hal/boards/,
# <keyboard_dir>/boards/, or drivers/boards/
BOARD ?= GENERIC_STM32_G474XE
USE_FPU ?= yes
# UF2 settings
UF2_FAMILY ?= STM32G4
# Bootloader address for STM32 DFU
STM32_BOOTLOADER_ADDRESS ?= 0x1FFF0000
endif
ifneq (,$(filter $(MCU),STM32L432 STM32L442))
# 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 = STM32
MCU_SERIES = STM32L4xx
# Linker script to use
# - it should exist either in <chibios>/os/common/startup/ARMCMx/compilers/GCC/ld/
# or <keyboard_dir>/ld/
MCU_LDSCRIPT ?= STM32L432xC
# Startup code to use
# - it should exist in <chibios>/os/common/startup/ARMCMx/compilers/GCC/mk/
MCU_STARTUP ?= stm32l4xx
# Board: it should exist either in <chibios>/os/hal/boards/,
# <keyboard_dir>/boards/, or drivers/boards/
BOARD ?= GENERIC_STM32_L432XC
PLATFORM_NAME ?= platform_l432
USE_FPU ?= yes
# UF2 settings
UF2_FAMILY ?= STM32L4
# Bootloader address for STM32 DFU
STM32_BOOTLOADER_ADDRESS ?= 0x1FFF0000
endif
ifneq (,$(filter $(MCU),STM32L433 STM32L443))
# 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 = STM32
MCU_SERIES = STM32L4xx
# Linker script to use
# - it should exist either in <chibios>/os/common/startup/ARMCMx/compilers/GCC/ld/
# or <keyboard_dir>/ld/
MCU_LDSCRIPT ?= STM32L432xC
# Startup code to use
# - it should exist in <chibios>/os/common/startup/ARMCMx/compilers/GCC/mk/
MCU_STARTUP ?= stm32l4xx
# Board: it should exist either in <chibios>/os/hal/boards/,
# <keyboard_dir>/boards/, or drivers/boards/
BOARD ?= GENERIC_STM32_L433XC
PLATFORM_NAME ?= platform_l432
USE_FPU ?= yes
# UF2 settings
UF2_FAMILY ?= STM32L4
# Bootloader address for STM32 DFU
STM32_BOOTLOADER_ADDRESS ?= 0x1FFF0000
endif
ifneq (,$(filter $(MCU),STM32L412 STM32L422))
# 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 = STM32
MCU_SERIES = STM32L4xx
# Linker script to use
# - it should exist either in <chibios>/os/common/startup/ARMCMx/compilers/GCC/ld/
# or <keyboard_dir>/ld/
MCU_LDSCRIPT ?= STM32L412xB
# Startup code to use
# - it should exist in <chibios>/os/common/startup/ARMCMx/compilers/GCC/mk/
MCU_STARTUP ?= stm32l4xx
# Board: it should exist either in <chibios>/os/hal/boards/,
# <keyboard_dir>/boards/, or drivers/boards/
BOARD ?= GENERIC_STM32_L412XB
PLATFORM_NAME ?= platform_l412_l422
USE_FPU ?= yes
# UF2 settings
UF2_FAMILY ?= STM32L4
# Bootloader address for STM32 DFU
STM32_BOOTLOADER_ADDRESS ?= 0x1FFF0000
endif
ifneq ($(findstring WB32F3G71, $(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 = WB32F3G71xx
# Linker script to use
# - it should exist either in <chibios>/os/common/ports/ARMCMx/compilers/GCC/ld/
# or <keyboard_dir>/ld/
MCU_LDSCRIPT ?= WB32F3G71x9
# Startup code to use
# - it should exist in <chibios>/os/common/startup/ARMCMx/compilers/GCC/mk/
MCU_STARTUP ?= wb32f3g71xx
# Board: it should exist either in <chibios>/os/hal/boards/,
# <keyboard_dir>/boards/, or drivers/boards/
BOARD ?= GENERIC_WB32_F3G71XX
USE_FPU ?= no
# Bootloader address for WB32 DFU
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
ifneq ($(findstring GD32VF103, $(MCU)),)
# RISC-V
MCU = risc-v
# RISC-V extensions and abi configuration
MCU_ARCH = rv32imac
MCU_ABI = ilp32
MCU_CMODEL = medlow
## 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_PORT_NAME = GD
MCU_FAMILY = GD32V
MCU_SERIES = GD32VF103
# Linker script to use
# - it should exist either in <chibios>/os/common/startup/RISCV-ECLIC/compilers/GCC/ld/
# or <keyboard_dir>/ld/
MCU_LDSCRIPT ?= GD32VF103xB
# Startup code to use
# - it should exist in <chibios>/os/common/startup/RISCV-ECLIC/compilers/GCC/mk/
MCU_STARTUP ?= gd32vf103
# Board: it should exist either in <chibios>/os/hal/boards/,
# <keyboard_dir>/boards/, or drivers/boards/
BOARD ?= SIPEED_LONGAN_NANO
USE_FPU ?= no
endif
ifneq (,$(filter $(MCU),at90usb162 atmega16u2 atmega32u2 atmega16u4 atmega32u4 at90usb646 at90usb647 at90usb1286 at90usb1287))
PROTOCOL = LUFA
# Processor frequency.
# This will define a symbol, F_CPU, in all source code files equal to the
# processor frequency in Hz. You can then use this symbol in your source code to
# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
# automatically to create a 32-bit value in your source code.
#
# This will be an integer division of F_USB below, as it is sourced by
# F_USB after it has run through any CPU prescalers. Note that this value
# does not *change* the processor frequency - it should merely be updated to
# reflect the processor speed set externally so that the code can use accurate
# software delays.
F_CPU ?= 16000000
# LUFA specific
#
# Target architecture (see library "Board Types" documentation).
ARCH = AVR8
# Input clock frequency.
# This will define a symbol, F_USB, in all source code files equal to the
# input clock frequency (before any prescaling is performed) in Hz. This value may
# differ from F_CPU if prescaling is used on the latter, and is required as the
# raw input clock is fed directly to the PLL sections of the AVR for high speed
# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
# at the end, this will be done automatically to create a 32-bit value in your
# source code.
#
# If no clock division is performed on the input clock inside the AVR (via the
# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
F_USB ?= $(F_CPU)
# Interrupt driven control endpoint task
ifeq (,$(filter $(NO_INTERRUPT_CONTROL_ENDPOINT),yes))
OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
endif
ifneq (,$(filter $(MCU),at90usb162 atmega16u2 atmega32u2))
NO_I2C = yes
endif
endif
ifneq (,$(filter $(MCU),atmega32a))
# MCU name for avrdude
AVRDUDE_MCU = m32
PROTOCOL = VUSB
# Processor frequency.
# This will define a symbol, F_CPU, in all source code files equal to the
# processor frequency in Hz. You can then use this symbol in your source code to
# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
# automatically to create a 32-bit value in your source code.
F_CPU ?= 12000000
endif
ifneq (,$(filter $(MCU),atmega328p))
# MCU name for avrdude
AVRDUDE_MCU = m328p
PROTOCOL = VUSB
# Processor frequency.
# This will define a symbol, F_CPU, in all source code files equal to the
# processor frequency in Hz. You can then use this symbol in your source code to
# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
# automatically to create a 32-bit value in your source code.
F_CPU ?= 16000000
endif
ifneq (,$(filter $(MCU),atmega328))
# MCU name for avrdude
AVRDUDE_MCU = m328
PROTOCOL = VUSB
# Processor frequency.
# This will define a symbol, F_CPU, in all source code files equal to the
# processor frequency in Hz. You can then use this symbol in your source code to
# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
# automatically to create a 32-bit value in your source code.
F_CPU ?= 16000000
endif
ifneq (,$(filter $(MCU),attiny85))
PROTOCOL = VUSB
# Processor frequency.
# This will define a symbol, F_CPU, in all source code files equal to the
# processor frequency in Hz. You can then use this symbol in your source code to
# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
# automatically to create a 32-bit value in your source code.
F_CPU ?= 16500000
endif

View File

@@ -64,9 +64,10 @@ MSG_ASSEMBLING = Assembling:
MSG_CLEANING = Cleaning project:
MSG_CREATING_LIBRARY = Creating library:
MSG_GENERATING = Generating:
MSG_NOT_REPO = $(WARN_COLOR)WARNING:$(NO_COLOR) Target folder is not a git repo, you probably downloaded a zip file instead of cloning.\n\
Please consider following $(BOLD)https://docs.qmk.fm/\#/newbs_getting_started$(NO_COLOR).\n\n
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)
Please consider running $(BOLD)qmk git-submodule$(NO_COLOR).\n\n
define GENERATE_MSG_MAKE_KB
MSG_MAKE_KB_ACTUAL := Making $$(KB_SP) with keymap $(BOLD)$$(CURRENT_KM)$(NO_COLOR)
@@ -106,4 +107,4 @@ MSG_BOOTLOADER_NOT_FOUND_QUICK_RETRY = $(MSG_BOOTLOADER_NOT_FOUND_BASE) Trying a
define CATASTROPHIC_ERROR
$(shell printf "\n * %-99s $(ERROR_STRING)\n" "$2" >&2)
$(error $1)
endef
endef

View File

@@ -84,7 +84,8 @@ OTHER_OPTION_NAMES = \
PROGRAMMABLE_BUTTON_ENABLE \
SECURE_ENABLE \
CAPS_WORD_ENABLE \
AUTOCORRECT_ENABLE
AUTOCORRECT_ENABLE \
TRI_LAYER_ENABLE
define NAME_ECHO
@printf " %-30s = %-16s # %s\\n" "$1" "$($1)" "$(origin $1)"

View File

@@ -3,6 +3,7 @@ FULL_TESTS := $(notdir $(TEST_LIST))
include $(QUANTUM_PATH)/debounce/tests/testlist.mk
include $(QUANTUM_PATH)/encoder/tests/testlist.mk
include $(QUANTUM_PATH)/os_detection/tests/testlist.mk
include $(QUANTUM_PATH)/sequencer/tests/testlist.mk
include $(QUANTUM_PATH)/wear_leveling/tests/testlist.mk
include $(PLATFORM_PATH)/test/testlist.mk

41
chibios_mcu.json Normal file
View File

@@ -0,0 +1,41 @@
{
"MKL26Z64" : {
"MCU" : "cortex-m0plus",
"ARMV": 6,
"MCU_FAMILY": "KINETIS",
"MCU_SERIES": "KL2x",
"MCU_LDSCRIPT": "MKL26Z64",
"MCU_STARTUP": "kl2x",
"BOARD": "PJRC_TEENSY_LC"
},
"MK20DX128" : {
"MCU" : "cortex-m4",
"ARMV": 7,
"MCU_FAMILY": "KINETIS",
"MCU_SERIES": "K20x",
"MCU_LDSCRIPT": "MK20DX128",
"MCU_STARTUP": "k20x5",
"BOARD": "PJRC_TEENSY_3"
},
"MK20DX256" : {
"MCU" : "cortex-m4",
"ARMV": 7,
"MCU_FAMILY": "KINETIS",
"MCU_SERIES": "K20x",
"MCU_LDSCRIPT": "MK20DX256",
"MCU_STARTUP": "k20x7",
"BOARD": "PJRC_TEENSY_3_1"
},
"STM32F303" : {
"MCU" : "cortex-m4",
"ARMV": 7,
"MCU_FAMILY": "STM32",
"MCU_SERIES": "STM32F3xx",
"MCU_LDSCRIPT": "STM32F303xC",
"MCU_STARTUP": "stm32f3xx",
"BOARD": "GENERIC_STM32_F303XC",
"USE_FPU": true,
"UF2_FAMILY": "STM32F3",
"STM32_BOOTLOADER_ADDRESS": "0x1FFFD800"
}
}

83
cmake/AddKeyboard.cmake Normal file
View File

@@ -0,0 +1,83 @@
include(ResolveKeyboard)
include(ValidateJson)
include(ResolveToolchain)
macro(add_keyboard KEYBOARD_FOLDER KEYMAP_FOLDER)
# not entirely sure why this is necessary
# set(TEMP_PATH ${KEYBOARD_FOLDER})
# cmake_path(IS_RELATIVE TEMP_PATH IS_KEYBOARD_FOLDER_RELATIVE)
# if(${IS_KEYBOARD_FOLDER_RELATIVE})
# set(KEYBOARD_FOLDER_ABS ${CMAKE_SOURCE_DIR}/keyboards/${KEYBOARD_FOLDER})
# if(NOT EXISTS ${KEYBOARD_FOLDER_ABS})
# # message(FATAL_ERROR "Keyboard does not exist in QMK - try using an absolute path to the keyboard folder")
# resolve_keyboard(${KEYBOARD_FOLDER} KEYBOARD_FOLDER_ABS)
# endif()
# else()
# set(KEYBOARD_FOLDER_ABS ${KEYBOARD_FOLDER})
# if(NOT EXISTS ${KEYBOARD_FOLDER_ABS})
# message(FATAL_ERROR "Absolute path to keyboard does not exist")
# endif()
# endif()
resolve_keyboard(${KEYBOARD_FOLDER} KEYBOARD_FOLDER_ABS)
set(TEMP_PATH ${KEYBOARD_FOLDER})
cmake_path(IS_RELATIVE TEMP_PATH IS_KEYBOARD_FOLDER_RELATIVE)
set(TEMP_PATH ${KEYMAP_FOLDER})
cmake_path(IS_RELATIVE TEMP_PATH IS_KEYMAP_FOLDER_RELATIVE)
if(${IS_KEYMAP_FOLDER_RELATIVE})
set(KEYMAP_NAME ${KEYMAP_FOLDER})
else()
if(WIN32)
set(KEYMAP_NAME $ENV{USERNAME})
else()
set(KEYMAP_NAME $ENV{USE})
endif()
endif()
# find the right toolchain
# not sure we need to validate here
validate_json(${KEYBOARD_FOLDER_ABS}/info.json keyboard JSON_STRING)
string(JSON PROCESSOR GET ${JSON_STRING} processor)
resolve_toolchain(${PROCESSOR} TOOLCHAIN)
string(JSON KEYBOARD_NAME GET ${JSON_STRING} keyboard_name)
if(${IS_KEYBOARD_FOLDER_RELATIVE})
string(MAKE_C_IDENTIFIER ${KEYBOARD_FOLDER} KEYBOARD_SLUG)
else()
string(MAKE_C_IDENTIFIER ${KEYBOARD_NAME} KEYBOARD_SLUG)
endif()
string(JSON MANUFACTURER GET ${JSON_STRING} manufacturer)
set(TARGET_NAME "${KEYBOARD_SLUG}_${KEYMAP_NAME}")
ExternalProject_Add(${TARGET_NAME}
SOURCE_DIR ${CMAKE_SOURCE_DIR}
# PREFIX ${CMAKE_SOURCE_DIR}/build/keyboards/${KEYBOARD_FOLDER}
TMP_DIR ${CMAKE_SOURCE_DIR}/build/tmp
DOWNLOAD_DIR ${CMAKE_SOURCE_DIR}/build/download
BINARY_DIR ${CMAKE_SOURCE_DIR}/build/keyboards/${TARGET_NAME}
STAMP_DIR ${CMAKE_SOURCE_DIR}/build/stamp
LOG_DIR ${CMAKE_SOURCE_DIR}/build/log
INSTALL_DIR ${CMAKE_SOURCE_DIR}/build/install
INSTALL_COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/build/${TARGET_NAME}${QMK_EXTENSION} ${CMAKE_SOURCE_DIR}/${TARGET_NAME}${QMK_EXTENSION}
# this seems to work well for all systems so far - not sure if it'd be useful to customize
CMAKE_GENERATOR "Unix Makefiles"
CMAKE_ARGS
-DCMAKE_TOOLCHAIN_FILE=${CMAKE_SOURCE_DIR}/cmake/toolchains/${TOOLCHAIN}.cmake
-DQMK_KEYBOARD=${KEYBOARD_SLUG}
-DQMK_KEYBOARD_FOLDER=${KEYBOARD_FOLDER}
-DQMK_KEYMAP_FOLDER=${KEYMAP_FOLDER}
-DTARGET_NAME=${TARGET_NAME}
)
ExternalProject_Add_Step(${TARGET_NAME} copy_compile_commands
DEPENDEES configure
DEPENDERS build
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/build/keyboards/${TARGET_NAME}/compile_commands.json ${CMAKE_SOURCE_DIR}/compile_commands.json
# BYPRODUCTS ${CMAKE_SOURCE_DIR}/compile_commands.json
ALWAYS TRUE
)
# file(APPEND "${CMAKE_SOURCE_DIR}/build/targets" "${TARGET_NAME}|${KEYBOARD_NAME} with ${KEYMAP_FOLDER}|${KEYBOARD_FOLDER}|Made by: ${MANUFACTURER}\n")
endmacro(add_keyboard)

View File

@@ -0,0 +1,44 @@
cmake_minimum_required(VERSION 3.20)
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
include(ResolveKeyboard)
include(ValidateJSON)
resolve_keyboard(${QMK_KEYBOARD_FOLDER} KEYBOARD_FOLDER_ABS)
validate_json(${KEYBOARD_FOLDER_ABS}/info.json keyboard JSON_STRING)
if(NOT DEFINED QMK_KEYMAP_FOLDER)
set(QMK_KEYMAP_FOLDER default)
endif()
set(TEMP_PATH ${QMK_KEYBOARD_FOLDER})
cmake_path(IS_RELATIVE TEMP_PATH IS_KEYBOARD_FOLDER_RELATIVE)
set(TEMP_PATH ${QMK_KEYMAP_FOLDER})
cmake_path(IS_RELATIVE TEMP_PATH IS_KEYMAP_FOLDER_RELATIVE)
if(${IS_KEYMAP_FOLDER_RELATIVE})
set(KEYMAP_NAME ${QMK_KEYMAP_FOLDER})
else()
if(WIN32)
set(KEYMAP_NAME $ENV{USERNAME})
else()
set(KEYMAP_NAME $ENV{USE})
endif()
endif()
string(JSON KEYBOARD_NAME GET ${JSON_STRING} keyboard_name)
if(${IS_KEYBOARD_FOLDER_RELATIVE})
string(MAKE_C_IDENTIFIER ${QMK_KEYBOARD_FOLDER} KEYBOARD_SLUG)
else()
string(MAKE_C_IDENTIFIER ${KEYBOARD_NAME} KEYBOARD_SLUG)
endif()
string(JSON MANUFACTURER GET ${JSON_STRING} manufacturer)
set(TARGET_NAME "${KEYBOARD_SLUG}_${KEYMAP_NAME}")
file(APPEND "${CMAKE_SOURCE_DIR}/build/targets" "${TARGET_NAME}|${KEYBOARD_NAME} with ${QMK_KEYMAP_FOLDER}|${QMK_KEYBOARD_FOLDER}:${QMK_KEYMAP_FOLDER}|Made by: ${MANUFACTURER}\n")
message(STATUS "Added keyboard '${QMK_KEYBOARD_FOLDER}' with keymap '${QMK_KEYMAP_FOLDER}'")

View File

@@ -0,0 +1,14 @@
macro(find_arm_toolchain)
find_toolchain(arm-none-eabi TOOLCHAIN_ROOT)
if(NOT TOOLCHAIN_ROOT)
include(GetARMToolchain)
find_toolchain(arm-none-eabi TOOLCHAIN_ROOT)
endif()
if(NOT TOOLCHAIN_ROOT)
message(FATAL_ERROR "ARM Toolchain could not be found")
endif()
message(STATUS "ARM toolchain found: ${TOOLCHAIN_ROOT}")
endmacro()

View File

@@ -0,0 +1,20 @@
macro(find_avr_toolchain)
find_toolchain(avr TOOLCHAIN_ROOT)
if(NOT TOOLCHAIN_ROOT)
include(GetAVRToolchain)
find_toolchain(avr TOOLCHAIN_ROOT)
endif()
find_program(DFU_PROGRAMMER NAMES dfu-programmer PATHS ${CMAKE_SOURCE_DIR}/toolchains/dfu-programmer/)
if(${DFU_PROGRAMMER} STREQUAL "DFU_PROGRAMMER-NOTFOUND")
include(GetDfuProgrammer)
find_program(DFU_PROGRAMMER NAMES dfu-programmer PATHS ${CMAKE_SOURCE_DIR}/toolchains/dfu-programmer/)
endif()
if(NOT TOOLCHAIN_ROOT)
message(FATAL_ERROR "AVR Toolchain could not be found")
endif()
message(STATUS "AVR toolchain found: ${TOOLCHAIN_ROOT}")
endmacro()

282
cmake/Findchibios.cmake Normal file
View File

@@ -0,0 +1,282 @@
include(ParseMakefile)
# STM32F303
set(MCU "cortex-m4")
set(ARMV 7)
set(MCU_FAMILY "STM32")
set(MCU_SERIES "STM32F3xx")
string(TOUPPER ${MCU_SERIES} MCU_SERIES_UPPER)
set(MCU_LDSCRIPT "STM32F303xC")
set(MCU_STARTUP "stm32f3xx")
set(BOARD "GENERIC_STM32_F303XC")
set(USE_FPU TRUE)
set(UF2_FAMILY "STM32F3")
set(STM32_BOOTLOADER_ADDRESS 0x1FFFD800)
set(EEPROM_DRIVER "wear_leveling" FORCE)
set(WEAR_LEVELING_DRIVER "embedded_flash" FORCE)
target_compile_definitions(qmk PUBLIC
QMK_MCU_FAMILY_${MCU_FAMILY}
QMK_MCU_SERIES_${MCU_SERIES_UPPER}
)
target_compile_options(qmk PUBLIC
-march=armv7-m
)
target_compile_definitions(qmk PUBLIC
MCU_${MCU_FAMILY}
__ARM_ARCH_7M__
)
# platforms/chibios/platform.mk
if(NOT DEFINED USE_PROCESS_STACKSIZE)
set(USE_PROCESS_STACKSIZE 0x800)
endif()
if(NOT DEFINED USE_EXCEPTIONS_STACKSIZE)
set(USE_EXCEPTIONS_STACKSIZE 0x400)
endif()
target_link_options(qmk PUBLIC
-Wl,--defsym=__process_stack_size__=${USE_PROCESS_STACKSIZE},--defsym=__main_stack_size__=${USE_EXCEPTIONS_STACKSIZE}
)
if(NOT DEFINED MCU_PORT_NAME)
set(MCU_PORT_NAME ${MCU_FAMILY})
endif()
set(MCU_ARCH ${MCU})
if(NOT DEFINED CHIBIOS_PORT)
set(CHIBIOS_PORT "ARMv${ARMV}-M")
endif()
if(NOT DEFINED PLATFORM_NAME)
set(PLATFORM_NAME platform)
endif()
set(CHIBIOS ${CMAKE_SOURCE_DIR}/lib/chibios)
set(CHIBIOS_CONTRIB ${CMAKE_SOURCE_DIR}/lib/chibios-contrib)
# port*.mk
include(chibios/ports/${CHIBIOS_PORT})
# platform.mk
include(chibios/ports/${MCU_SERIES})
# startup_*.mk - might need to convert these
find_file(STARTUP_MK startup_${MCU_STARTUP}.mk
${CHIBIOS}/os/common/ports/ARMCMx/compilers/GCC/mk
${CHIBIOS}/os/common/startup/ARMCMx/compilers/GCC/mk
${CHIBIOS_CONTRIB}/os/common/startup/ARMCMx/compilers/GCC/mk
)
get_filename_component(STARTUP_DIR ${STARTUP_MK} DIRECTORY)
ParseMakefile(${STARTUP_MK})
target_sources(qmk PUBLIC ${STARTUPSRC})
target_sources(qmk PUBLIC ${STARTUPASM})
target_include_directories(qmk PUBLIC ${STARTUPINC})
# board paths - we should just standardize these
find_path(BOARD_PATH
NAMES
boards/${BOARD}/board.mk
board/board.mk
PATHS
${QMK_KEYBOARD_FOLDER}/boards/${BOARD}
${CMAKE_SOURCE_DIR}/platforms/chibios/boards/${BOARD}
${CHIBIOS}/os/hal/
${CHIBIOS_CONTRIB}/os/hal/
)
# if(EXISTS ${BOARD_PATH}/rules.mk)
# ParseMakefile(${BOARD_PATH}/rules.mk)
# endif()
if(EXISTS ${BOARD_PATH}/configs/config.h)
target_precompile_headers(qmk PUBLIC
${BOARD_PATH}/configs/config.h
)
endif()
if(EXISTS ${BOARD_PATH}/configs/post_config.h)
target_precompile_headers(qmk PUBLIC
${BOARD_PATH}/configs/post_config.h
)
endif()
find_file(BOARD_MK board.mk
${BOARD_PATH}/boards/${BOARD}
${BOARD_PATH}/board
)
ParseMakefile(${BOARD_MK})
target_sources(qmk PUBLIC ${BOARDSRC})
target_include_directories(qmk PUBLIC ${BOARDINC})
# allow board.c to be overriden
file(RELATIVE_PATH INIT_HOOK_RELATIVE ${CMAKE_BINARY_DIR}
"${CMAKE_SOURCE_DIR}/tmk_core/protocol/chibios/init_hooks.h")
set_source_files_properties(${BOARDSRC} TARGET_DIRECTORY qmk PROPERTIES
# COMPILE_OPTIONS "-include ../../../tmk_core/protocol/chibios/init_hooks.h"
COMPILE_OPTIONS "-include ${INIT_HOOK_RELATIVE}"
)
# bootloader
if(DEFINED STM32_BOOTLOADER_ADDRESS)
target_compile_definitions(qmk PUBLIC STM32_BOOTLOADER_ADDRESS=${STM32_BOOTLOADER_ADDRESS})
endif()
if(DEFINED WB32_BOOTLOADER_ADDRESS)
target_compile_definitions(qmk PUBLIC WB32_BOOTLOADER_ADDRESS=${WB32_BOOTLOADER_ADDRESS})
endif()
find_file(BOOTLOADER_DEFS_H bootloader_defs.h
${QMK_KEYBOARD_FOLDER}
${QMK_KEYBOARD_FOLDER}/boards/${BOARD}
${BOARD_PATH}/configs
)
if(EXISTS ${BOOTLOADER_DEFS_H})
target_compile_options(qmk PUBLIC -include ${BOOTLOADER_DEFS_H})
endif()
# chconf directories
find_path(CHCONFDIR chconf.h
${QMK_KEYBOARD_FOLDER}
${CMAKE_SOURCE_DIR}/platforms/chibios/boards/${BOARD}/configs
${CMAKE_SOURCE_DIR}/platforms/chibios/boards/common/configs
)
target_include_directories(qmk PUBLIC ${CHCONFDIR})
# halconf directories
find_path(HALCONFDIR halconf.h
${QMK_KEYBOARD_FOLDER}
${CMAKE_SOURCE_DIR}/platforms/chibios/boards/${BOARD}/configs
${CMAKE_SOURCE_DIR}/platforms/chibios/boards/common/configs
)
target_include_directories(qmk PUBLIC ${HALCONFDIR})
# linker script
find_file(LDSCRIPT ${MCU_LDSCRIPT}.ld
${QMK_KEYBOARD_FOLDER}/ld
${CMAKE_SOURCE_DIR}/platforms/chibios/boards/${BOARD}/ld
${CMAKE_SOURCE_DIR}/platforms/chibios/boards/common/ld
${STARTUPLD}
${STARTUPLD_CONTRIB}
)
get_filename_component(LDSCRIPT_PATH ${LDSCRIPT} DIRECTORY)
target_link_options(qmk PUBLIC
-T ${LDSCRIPT}
-L ${LDSCRIPT_PATH}
)
# os/hal/hal.mk
target_sources(qmk PUBLIC
${CHIBIOS}/os/hal/src/hal.c
${CHIBIOS}/os/hal/src/hal_st.c
${CHIBIOS}/os/hal/src/hal_buffers.c
${CHIBIOS}/os/hal/src/hal_queues.c
${CHIBIOS}/os/hal/src/hal_flash.c
${CHIBIOS}/os/hal/src/hal_mmcsd.c
${CHIBIOS}/os/hal/src/hal_adc.c
${CHIBIOS}/os/hal/src/hal_can.c
${CHIBIOS}/os/hal/src/hal_crypto.c
${CHIBIOS}/os/hal/src/hal_dac.c
${CHIBIOS}/os/hal/src/hal_efl.c
${CHIBIOS}/os/hal/src/hal_gpt.c
${CHIBIOS}/os/hal/src/hal_i2c.c
${CHIBIOS}/os/hal/src/hal_i2s.c
${CHIBIOS}/os/hal/src/hal_icu.c
${CHIBIOS}/os/hal/src/hal_mac.c
${CHIBIOS}/os/hal/src/hal_mmc_spi.c
${CHIBIOS}/os/hal/src/hal_pal.c
${CHIBIOS}/os/hal/src/hal_pwm.c
${CHIBIOS}/os/hal/src/hal_rtc.c
${CHIBIOS}/os/hal/src/hal_sdc.c
${CHIBIOS}/os/hal/src/hal_serial.c
${CHIBIOS}/os/hal/src/hal_serial_usb.c
${CHIBIOS}/os/hal/src/hal_sio.c
${CHIBIOS}/os/hal/src/hal_spi.c
${CHIBIOS}/os/hal/src/hal_trng.c
${CHIBIOS}/os/hal/src/hal_uart.c
${CHIBIOS}/os/hal/src/hal_usb.c
${CHIBIOS}/os/hal/src/hal_wdg.c
${CHIBIOS}/os/hal/src/hal_wspi.c
)
target_include_directories(qmk PUBLIC
${CHIBIOS}/os/hal/include
)
# os/hal/osal/rt-nil/osal.mk
target_sources(qmk PUBLIC
${CHIBIOS}/os/hal/osal/rt-nil/osal.c
)
target_include_directories(qmk PUBLIC
${CHIBIOS}/os/hal/osal/rt-nil
)
# os/rt/rt.mk
target_sources(qmk PUBLIC
${CHIBIOS}/os/rt/src/chsys.c
${CHIBIOS}/os/rt/src/chrfcu.c
${CHIBIOS}/os/rt/src/chdebug.c
${CHIBIOS}/os/rt/src/chtrace.c
${CHIBIOS}/os/rt/src/chvt.c
${CHIBIOS}/os/rt/src/chschd.c
${CHIBIOS}/os/rt/src/chinstances.c
${CHIBIOS}/os/rt/src/chthreads.c
${CHIBIOS}/os/rt/src/chsys.c
${CHIBIOS}/os/rt/src/chrfcu.c
${CHIBIOS}/os/rt/src/chdebug.c
${CHIBIOS}/os/rt/src/chtrace.c
${CHIBIOS}/os/rt/src/chvt.c
${CHIBIOS}/os/rt/src/chschd.c
${CHIBIOS}/os/rt/src/chinstances.c
${CHIBIOS}/os/rt/src/chthreads.c
${CHIBIOS}/os/rt/src/chtm.c
${CHIBIOS}/os/rt/src/chstats.c
${CHIBIOS}/os/rt/src/chregistry.c
${CHIBIOS}/os/rt/src/chsem.c
${CHIBIOS}/os/rt/src/chmtx.c
${CHIBIOS}/os/rt/src/chcond.c
${CHIBIOS}/os/rt/src/chevents.c
${CHIBIOS}/os/rt/src/chmsg.c
${CHIBIOS}/os/rt/src/chdynamic.c
)
target_include_directories(qmk PUBLIC
${CHIBIOS}/os/rt/include
)
# os/oslib/oslib.mk
target_sources(qmk PUBLIC
${CHIBIOS}/os/oslib/src/chmboxes.c
${CHIBIOS}/os/oslib/src/chmemcore.c
${CHIBIOS}/os/oslib/src/chmemheaps.c
${CHIBIOS}/os/oslib/src/chmempools.c
${CHIBIOS}/os/oslib/src/chpipes.c
${CHIBIOS}/os/oslib/src/chobjcaches.c
${CHIBIOS}/os/oslib/src/chdelegates.c
${CHIBIOS}/os/oslib/src/chfactory.c
)
target_include_directories(qmk PUBLIC
${CHIBIOS}/os/oslib/include
)
# os/hal/lib/streams/streams.mk
target_sources(qmk PUBLIC
${CHIBIOS}/os/hal/lib/streams/chprintf.c
${CHIBIOS}/os/hal/lib/streams/chscanf.c
${CHIBIOS}/os/hal/lib/streams/memstreams.c
${CHIBIOS}/os/hal/lib/streams/nullstreams.c
${CHIBIOS}/os/hal/lib/streams/bufstreams.c
)
target_include_directories(qmk PUBLIC
${CHIBIOS}/os/hal/lib/streams
)
# resume platform.mk
target_sources(qmk PUBLIC
${CHIBIOS}/os/various/syscalls.c
)
target_include_directories(qmk PUBLIC
${CHIBIOS}/os/license
${CHIBIOS}/os/oslib/include
${CHIBIOS}/os/various
)

27
cmake/Findlufa.cmake Normal file
View File

@@ -0,0 +1,27 @@
include(UpdateSubmodule)
update_submodule(lib/lufa)
set(LUFA_PATH ${CMAKE_SOURCE_DIR}/lib/lufa)
set(LUFA_ROOT_PATH ${LUFA_PATH}/LUFA)
target_sources(qmk PUBLIC
${LUFA_ROOT_PATH}/Drivers/USB/Core/${ARCH}/USBController_${ARCH}.c
${LUFA_ROOT_PATH}/Drivers/USB/Core/${ARCH}/USBInterrupt_${ARCH}.c
${LUFA_ROOT_PATH}/Drivers/USB/Core/ConfigDescriptors.c
${LUFA_ROOT_PATH}/Drivers/USB/Core/Events.c
${LUFA_ROOT_PATH}/Drivers/USB/Core/USBTask.c
${LUFA_ROOT_PATH}/Drivers/USB/Class/Common/HIDParser.c
${LUFA_ROOT_PATH}/Drivers/USB/Core/${ARCH}/Host_${ARCH}.c
${LUFA_ROOT_PATH}/Drivers/USB/Core/${ARCH}/Pipe_${ARCH}.c
${LUFA_ROOT_PATH}/Drivers/USB/Core/${ARCH}/PipeStream_${ARCH}.c
${LUFA_ROOT_PATH}/Drivers/USB/Core/HostStandardReq.c
${LUFA_ROOT_PATH}/Drivers/USB/Core/${ARCH}/Device_${ARCH}.c
${LUFA_ROOT_PATH}/Drivers/USB/Core/${ARCH}/Endpoint_${ARCH}.c
${LUFA_ROOT_PATH}/Drivers/USB/Core/${ARCH}/EndpointStream_${ARCH}.c
${LUFA_ROOT_PATH}/Drivers/USB/Core/DeviceStandardReq.c
${LUFA_PATH}/LUFA/Drivers/USB/USB.h
)
target_include_directories(qmk PUBLIC ${LUFA_PATH})
# target_link_libraries(lufa ${QMK_TARGET})
# target_link_libraries(lufa tmk_core_protocol)
# target_link_libraries(lufa tmk_core_protocol_lufa)

View File

@@ -0,0 +1,24 @@
message("Downloading gcc-arm-none-eabi")
if(WIN32)
file(DOWNLOAD
https://developer.arm.com/-/media/Files/downloads/gnu-rm/10.3-2021.10/gcc-arm-none-eabi-10.3-2021.10-win32.zip?rev=8f4a92e2ec2040f89912f372a55d8cf3&hash=8A9EAF77EF1957B779C59EADDBF2DAC118170BBF
${CMAKE_SOURCE_DIR}/toolchains/downloads/gcc-arm-none-eabi-win32.zip
EXPECTED_HASH MD5=2bc8f0c4c4659f8259c8176223eeafc1
SHOW_PROGRESS
)
file(ARCHIVE_EXTRACT
INPUT ${CMAKE_SOURCE_DIR}/toolchains/downloads/gcc-arm-none-eabi-win32.zip
DESTINATION ${CMAKE_SOURCE_DIR}/toolchains/
)
elseif(UNIX)
file(DOWNLOAD
https://developer.arm.com/-/media/Files/downloads/gnu-rm/10.3-2021.10/gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2?rev=78196d3461ba4c9089a67b5f33edf82a&hash=D484B37FF37D6FC3597EBE2877FB666A41D5253B
${CMAKE_SOURCE_DIR}/toolchains/downloads/gcc-arm-none-eabi-x86_64-linux.tar.bz2
EXPECTED_HASH MD5=3fe3d8bb693bd0a6e4615b6569443d0d
SHOW_PROGRESS
)
file(ARCHIVE_EXTRACT
INPUT ${CMAKE_SOURCE_DIR}/toolchains/downloads/gcc-arm-none-eabi-x86_64-linux.tar.bz2
DESTINATION ${CMAKE_SOURCE_DIR}/toolchains/
)
endif()

View File

@@ -0,0 +1,24 @@
message("Downloading avr-gcc")
if(WIN32)
file(DOWNLOAD
https://github.com/ZakKemble/avr-gcc-build/releases/download/v12.1.0-1/avr-gcc-12.1.0-x64-windows.zip
${CMAKE_SOURCE_DIR}/toolchains/downloads/avr-gcc-x64-windows.zip
EXPECTED_HASH SHA256=e921a964fdeaedbe963352d0f26c6520a0a3eb8effc6ff232f3824b06c4ea0e2
SHOW_PROGRESS
)
file(ARCHIVE_EXTRACT
INPUT ${CMAKE_SOURCE_DIR}/toolchains/downloads/avr-gcc-x64-windows.zip
DESTINATION ${CMAKE_SOURCE_DIR}/toolchains/
)
elseif(UNIX)
file(DOWNLOAD
https://github.com/ZakKemble/avr-gcc-build/releases/download/v12.1.0-1/avr-gcc-12.1.0-x64-linux.tar.bz2
${CMAKE_SOURCE_DIR}/toolchains/downloads/avr-gcc-x64-linux.tar.bz2
EXPECTED_HASH SHA256=feb034f4b85237032da8bac1f03765af5ebc4a8939b69bed57ff31bc482ca1a6
SHOW_PROGRESS
)
file(ARCHIVE_EXTRACT
INPUT ${CMAKE_SOURCE_DIR}/toolchains/downloads/avr-gcc-x64-linux.tar.bz2
DESTINATION ${CMAKE_SOURCE_DIR}/toolchains/
)
endif()

View File

@@ -0,0 +1,22 @@
message("Downloading dfu-programmer")
if(WIN32)
file(DOWNLOAD
https://github.com/dfu-programmer/dfu-programmer/releases/download/v1.0.0/dfu-programmer-x64-1.0.0.7z
${CMAKE_SOURCE_DIR}/toolchains/downloads/dfu-programmer-x64-1.0.0.7z
SHOW_PROGRESS
)
file(ARCHIVE_EXTRACT
INPUT ${CMAKE_SOURCE_DIR}/toolchains/downloads/dfu-programmer-x64-1.0.0.7z
DESTINATION ${CMAKE_SOURCE_DIR}/toolchains/dfu-programmer/
)
elseif(UNIX)
file(DOWNLOAD
https://github.com/dfu-programmer/dfu-programmer/releases/download/v1.0.0/dfu-programmer-linux-1.0.0.7z
${CMAKE_SOURCE_DIR}/toolchains/downloads/dfu-programmer-linux-1.0.0.7z
SHOW_PROGRESS
)
file(ARCHIVE_EXTRACT
INPUT ${CMAKE_SOURCE_DIR}/toolchains/downloads/dfu-programmer-linux-1.0.0.7z
DESTINATION ${CMAKE_SOURCE_DIR}/toolchains/dfu-programmer/
)
endif()

51
cmake/GetKeymaps.cmake Normal file
View File

@@ -0,0 +1,51 @@
cmake_minimum_required(VERSION 3.20)
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
include(ResolveKeyboard)
include(ValidateJson)
set(QMK_KEYBOARDS_FOLDER "${CMAKE_SOURCE_DIR}/keyboards")
set(CMAKE_MESSAGE_INDENT "")
resolve_keyboard(${QMK_KEYBOARD_FOLDER} KEYBOARD_FOLDER_ABS)
validate_json(${KEYBOARD_FOLDER_ABS}/info.json keyboard JSON_STR)
cmake_path(IS_PREFIX QMK_KEYBOARDS_FOLDER "${KEYBOARD_FOLDER_ABS}" IS_KEYBOARDS_FOLDER)
file(WRITE "${CMAKE_SOURCE_DIR}/build/keyboard_keymaps" "")
if(${IS_KEYBOARDS_FOLDER})
file(RELATIVE_PATH RELATIVE_KEYBOARD_FOLDER ${QMK_KEYBOARDS_FOLDER} ${KEYBOARD_FOLDER_ABS})
while(NOT ${RELATIVE_KEYBOARD_FOLDER} STREQUAL "")
file(GLOB KEYMAPS "${QMK_KEYBOARDS_FOLDER}/${RELATIVE_KEYBOARD_FOLDER}/keymaps/*/keymap.c")
foreach(KEYMAP ${KEYMAPS})
file(RELATIVE_PATH KEYMAP_C "${QMK_KEYBOARDS_FOLDER}/${RELATIVE_KEYBOARD_FOLDER}/keymaps" "${KEYMAP}")
get_filename_component(KEYMAP_FOLDER ${KEYMAP_C} DIRECTORY)
# message(STATUS "${KEYMAP_FOLDER}")
file(APPEND "${CMAKE_SOURCE_DIR}/build/keyboard_keymaps" "${KEYMAP_FOLDER}\n")
endforeach()
get_filename_component(RELATIVE_KEYBOARD_FOLDER ${RELATIVE_KEYBOARD_FOLDER} DIRECTORY)
endwhile()
else()
if(EXISTS "${KEYBOARD_FOLDER_ABS}/keymap.c")
set(${KEYMAP_C_STR} "${KEYBOARD_FOLDER_ABS}/keymap.c" PARENT_SCOPE)
elseif(EXISTS "${KEYBOARD_FOLDER_ABS}/keymaps/${KEYMAP_FOLDER}/keymap.c")
set(${KEYMAP_C_STR} "${KEYBOARD_FOLDER_ABS}/keymaps/${KEYMAP_FOLDER}/keymap.c" PARENT_SCOPE)
endif()
endif()
string(JSON COMMUNITY_LAYOUTS ERROR_VARIABLE NO_COMMUNITY_LAYOUTS GET ${JSON_STR} community_layouts)
if(${NO_COMMUNITY_LAYOUTS} STREQUAL "NOTFOUND")
string(JSON NUM_LAYOUTS LENGTH ${COMMUNITY_LAYOUTS})
math(EXPR MAX "${NUM_LAYOUTS} - 1")
foreach(IDX RANGE ${MAX})
string(JSON LAYOUT GET ${COMMUNITY_LAYOUTS} ${IDX})
file(GLOB KEYMAPS "${CMAKE_SOURCE_DIR}/layouts/community/${LAYOUT}/*/keymap.c")
foreach(KEYMAP ${KEYMAPS})
file(RELATIVE_PATH KEYMAP_C "${CMAKE_SOURCE_DIR}/layouts/community/${LAYOUT}" "${KEYMAP}")
get_filename_component(KEYMAP_FOLDER ${KEYMAP_C} DIRECTORY)
# message(STATUS "${KEYMAP_FOLDER}")
file(APPEND "${CMAKE_SOURCE_DIR}/build/keyboard_keymaps" "${KEYMAP_FOLDER}\n")
endforeach()
endforeach()
endif()

64
cmake/ParseHeader.cmake Normal file
View File

@@ -0,0 +1,64 @@
# Simple CMake utility to read variables from MK files
# - Gets contents from given file (name or path)
# - Parses the assignment statements
# - Makes the same assignments in the PARENT_SCOPE
if(POLICY CMP0007)
cmake_policy(SET CMP0007 NEW)
endif()
function(ParseHeader HeaderFile Prefix)
_ParseHeader(${HeaderFile} ${Prefix})
endfunction()
macro(_ParseHeader HeaderFile Prefix)
message(CHECK_START "Parsing Header")
list(APPEND CMAKE_MESSAGE_INDENT " ")
message(STATUS "Reading \"${HeaderFile}\"")
file(READ "${HeaderFile}" FileContents)
string(REGEX REPLACE "/\\*.*\\*/" "" FileContents ${FileContents})
# replace the \ newlines with spaces
string(REGEX REPLACE "\\\\\r?\n *" " " FileContents ${FileContents})
# turn each line into an item in a list
string(REGEX REPLACE "\r?\n" ";" FileLines ${FileContents})
list(REMOVE_ITEM FileLines "")
foreach(line ${FileLines})
# remove comments from the ends of each line
string(REGEX REPLACE "//.*" "" line ${line})
# remove now-empty lines
if("${line}" STREQUAL "")
continue()
endif()
# try to process includes, if the file exists
if(line MATCHES "^#include \"(.+)\"")
set(INCLUDED_HEADER ${CMAKE_MATCH_1})
if(EXISTS ${INCLUDED_HEADER})
_ParseHeader("${INCLUDED_HEADER}" ${Prefix})
else()
message(STATUS "Could not read ${INCLUDED_HEADER}")
endif()
continue()
endif()
# array
if(line MATCHES "#define ([A-Za-z0-9_]+) {(.*)}")
set(VARIABLE_NAME ${CMAKE_MATCH_1})
set(VARIABLE_VALUE ${CMAKE_MATCH_2})
set(${Prefix}${VARIABLE_NAME} ${VARIABLE_VALUE})
endif()
# regular variable
if(line MATCHES "#define ([A-Za-z0-9_]+) (.*)")
set(VARIABLE_NAME ${CMAKE_MATCH_1})
set(VARIABLE_VALUE ${CMAKE_MATCH_2})
set(${Prefix}${VARIABLE_NAME} ${VARIABLE_VALUE})
endif()
endforeach()
list(POP_BACK CMAKE_MESSAGE_INDENT)
message(CHECK_PASS "Complete")
endmacro()

98
cmake/ParseMakefile.cmake Normal file
View File

@@ -0,0 +1,98 @@
# Simple CMake utility to read variables from MK files
# - Gets contents from given file (name or path)
# - Parses the assignment statements
# - Makes the same assignments in the PARENT_SCOPE
if(POLICY CMP0007)
cmake_policy(SET CMP0007 NEW)
endif()
function(ParseMakefile MKFile)
_ParseMakefile(${MKFile} ${ARGN})
endfunction()
macro(_ParseMakefile MKFile)
message(CHECK_START "Parsing Makefile")
list(APPEND CMAKE_MESSAGE_INDENT " ")
message(STATUS "Reading \"${MKFile}\"")
file(READ "${MKFile}" FileContents)
# replace the \ newlines with spaces
string(REGEX REPLACE "\\\\\r?\n *" " " FileContents ${FileContents})
# turn each line into an item in a list
string(REGEX REPLACE "\r?\n" ";" FileLines ${FileContents})
list(REMOVE_ITEM FileLines "")
foreach(line ${FileLines})
# remove comments from the ends of each line
string(REGEX REPLACE "#.*" "" line ${line})
# remove now-empty lines
if("${line}" STREQUAL "")
continue()
endif()
# try to process includes, if the file exists
if(line MATCHES "^-?include (.+)$")
set(MAKE_CHILD ${CMAKE_MATCH_1})
if(EXISTS ${MAKE_CHILD})
_ParseMakefile("${MAKE_CHILD}" ${ARGN})
else()
message(STATUS "Could not read ${MAKE_CHILD}")
endif()
continue()
endif()
# turn the assignment into a list with the first item being the variable name
string(REPLACE "=" ";" line_split ${line})
list(LENGTH line_split count)
if(count LESS 2)
message(STATUS "Skipping ${line}")
continue()
endif()
list(GET line_split -1 value)
string(STRIP ${value} value)
# separate_arguments(value)
# string(REPLACE " " ";" value ${value})
list(REMOVE_AT line_split -1)
foreach(var_name ${line_split})
string(STRIP ${var_name} var_name)
# replace $(?) with the variable ? from cmake
if(value MATCHES "\\$\\(([^\\(\\)]+)\\)")
set(MAKE_VARIABLE "${CMAKE_MATCH_1}")
string(REPLACE "$(${MAKE_VARIABLE})" "${${MAKE_VARIABLE}}" value ${value})
endif()
# look for +, assuming it used to be +=
if(${var_name} MATCHES "([^ \\+]+) *\\+")
message(STATUS "Appending \"${CMAKE_MATCH_1}\" with \"${value}\"")
# read parent variable in local & append
set(LOCAL_${CMAKE_MATCH_1} ${CMAKE_MATCH_1})
# APPEND accepts spaces between values
list(APPEND LOCAL_${CMAKE_MATCH_1} ${value})
set(${CMAKE_MATCH_1} ${LOCAL_${CMAKE_MATCH_1}})
set(${CMAKE_MATCH_1} ${LOCAL_${CMAKE_MATCH_1}} PARENT_SCOPE)
else()
# set needs ; between elements to be considered a list
string(REGEX REPLACE " +" ";" value ${value})
# try to find variable in cache and FORCE wtih INTERNAL if it exists
if(DEFINED CACHE${${var_name}})
message(STATUS "Caching \"${var_name}\" to \"${value}\"")
# set locally so replacement still work
set(${var_name} ${value})
set(${var_name} ${value} CACHE INTERNAL "")
else()
message(STATUS "Setting \"${var_name}\" to \"${value}\"")
set(${var_name} ${value})
set(${var_name} ${value} PARENT_SCOPE)
endif()
endif()
endforeach()
endforeach()
list(POP_BACK CMAKE_MESSAGE_INDENT)
message(CHECK_PASS "Complete")
endmacro()

View File

@@ -0,0 +1,78 @@
include(ParseMakefile)
include(Utils)
macro(process_keyboard)
message(CHECK_START "Processing keyboard")
list(APPEND CMAKE_MESSAGE_INDENT " ")
validate_json(${QMK_KEYBOARD_FOLDER_ABS}/info.json keyboard QMK_KEYBOARD_INFO_JSON_STRING)
# process rules from info.json
file(READ ${CMAKE_SOURCE_DIR}/data/mappings/info_rules.hjson JSON_STRING)
string(JSON MAPPING_LENGTH LENGTH ${JSON_STRING})
math(EXPR MAX "${MAPPING_LENGTH} - 1")
foreach(IDX RANGE ${MAX})
string(JSON RULE_KEY MEMBER ${JSON_STRING} ${IDX})
# string(JSON INFO_KEY GET ${JSON_STRING} ${RULE_KEY} info_key)
json_get_with_default(INFO_KEY ${JSON_STRING} _ ${RULE_KEY} info_key)
string(REPLACE "." " " INFO_KEYS ${INFO_KEY})
string(JSON RULE_VALUE ERROR_VARIABLE RULE_KEY_NOT_FOUND GET ${QMK_KEYBOARD_INFO_JSON_STRING} ${INFO_KEYS})
if(${RULE_KEY_NOT_FOUND} STREQUAL "NOTFOUND")
json_get_with_default(VALUE_TYPE ${JSON_STRING} raw ${RULE_KEY} value_type)
if(${VALUE_TYPE} STREQUAL "list")
string(JSON NUM_VALUES LENGTH ${RULE_VALUE})
math(EXPR MAX "${NUM_VALUES} - 1")
foreach(IDX RANGE ${MAX})
string(JSON VALUE GET ${RULE_VALUE} ${IDX})
list(APPEND ${RULE_KEY} ${VALUE})
endforeach()
message(STATUS "Found rule '${INFO_KEY}': '${${RULE_KEY}}' assigned to '${RULE_KEY}'")
else()
set(${RULE_KEY} ${RULE_VALUE})
message(STATUS "Found rule '${INFO_KEY}': '${RULE_VALUE}' assigned to '${RULE_KEY}'")
endif()
endif()
endforeach()
# process definitions from info.json
file(READ ${CMAKE_SOURCE_DIR}/data/mappings/info_config.hjson JSON_STRING)
string(JSON MAPPING_LENGTH LENGTH ${JSON_STRING})
math(EXPR MAX "${MAPPING_LENGTH} - 1")
foreach(IDX RANGE ${MAX})
string(JSON CONFIG_KEY MEMBER ${JSON_STRING} ${IDX})
json_get_with_default(INFO_KEY ${JSON_STRING} _ ${CONFIG_KEY} info_key)
string(REPLACE "." ";" INFO_KEYS ${INFO_KEY})
# string(JSON CONFIG_VALUE ERROR_VARIABLE CONFIG_KEY_NOT_FOUND GET ${QMK_KEYBOARD_INFO_JSON_STRING} ${INFO_KEYS})
json_get_with_default(CONFIG_VALUE ${QMK_KEYBOARD_INFO_JSON_STRING} NOTFOUND ${INFO_KEYS})
if(NOT CONFIG_VALUE STREQUAL "NOTFOUND")
set(${CONFIG_KEY} ${CONFIG_VALUE})
json_get_with_default(VALUE_TYPE ${JSON_STRING} raw ${CONFIG_KEY} value_type)
if(${VALUE_TYPE} STREQUAL "str")
add_compile_definitions(${CONFIG_KEY}="${CONFIG_VALUE}")
message(STATUS "Found definition '${INFO_KEY}': '\"${CONFIG_VALUE}\"' assigned to '${CONFIG_KEY}'")
elseif(${VALUE_TYPE} STREQUAL "bcd_version")
string(REGEX MATCH "^([0-9]+)\\.([0-9]+)\\.([0-9]+)" VERSION_MATCH ${CONFIG_VALUE})
set(VERSION_MAJOR ${CMAKE_MATCH_1})
set(VERSION_MINOR ${CMAKE_MATCH_2})
set(VERSION_PATCH ${CMAKE_MATCH_3})
math(EXPR BCD_VERSION "${VERSION_MAJOR} * 10000 + ${VERSION_MINOR} * 100 + ${VERSION_PATCH}" OUTPUT_FORMAT HEXADECIMAL)
add_compile_definitions(${CONFIG_KEY}=${BCD_VERSION})
message(STATUS "Found definition '${INFO_KEY}': '${BCD_VERSION}' assigned to '${CONFIG_KEY}'")
else()
add_compile_definitions(${CONFIG_KEY}=${CONFIG_VALUE})
message(STATUS "Found definition '${INFO_KEY}': '${CONFIG_VALUE}' assigned to '${CONFIG_KEY}'")
endif()
endif()
endforeach()
string(JSON KEYBOARD_NAME GET ${QMK_KEYBOARD_INFO_JSON_STRING} keyboard_name)
string(JSON MANUFACTURER GET ${QMK_KEYBOARD_INFO_JSON_STRING} manufacturer)
string(JSON URL GET ${QMK_KEYBOARD_INFO_JSON_STRING} url)
string(JSON QMK_MCU GET ${QMK_KEYBOARD_INFO_JSON_STRING} processor)
list(POP_BACK CMAKE_MESSAGE_INDENT)
message(CHECK_PASS "info.json validated and loaded")
ParseMakefile(${QMK_KEYBOARD_FOLDER_ABS}/rules.mk)
endmacro()

146
cmake/ResolveKeyboard.cmake Normal file
View File

@@ -0,0 +1,146 @@
include(Utils)
function(resolve_keyboard KEYBOARD KEYBOAD_FOLDER_ABS_STR)
message(VERBOSE "Resolving ${KEYBOARD}")
if(EXISTS "${CMAKE_SOURCE_DIR}/keyboards/${KEYBOARD}")
message(VERBOSE "Found in repo: ${KEYBOARD}")
set(${KEYBOAD_FOLDER_ABS_STR} "${CMAKE_SOURCE_DIR}/keyboards/${KEYBOARD}" PARENT_SCOPE)
return()
endif()
if(EXISTS "${CMAKE_SOURCE_DIR}/build/keyboard_repository/${KEYBOARD}")
message(VERBOSE "Already checked out: ${KEYBOARD}")
set(${KEYBOAD_FOLDER_ABS_STR} "${CMAKE_SOURCE_DIR}/build/keyboard_repository/${KEYBOARD}" PARENT_SCOPE)
return()
endif()
file(READ ${CMAKE_SOURCE_DIR}/data/keyboards.json KEYBOARDS_JSON)
string(JSON KEYBOARD_SLUG ERROR_VARIABLE JSON_ERROR GET ${KEYBOARDS_JSON} ${KEYBOARD})
if(${JSON_ERROR} STREQUAL "NOTFOUND")
message(VERBOSE "Found ${KEYBOARD_SLUG}")
if(${KEYBOARD_SLUG} MATCHES "^@([0-9a-zA-Z_]+/[0-9a-zA-Z_]+)")
# keyboard slug is mapped to a github repo
set(GIT_SLUG ${CMAKE_MATCH_1})
# string(MAKE_C_IDENTIFIER ${KEYBOARD} KEYBOARD_NAME)
message(VERBOSE "Cloning ${GIT_SLUG}")
find_package(Git QUIET)
if(GIT_FOUND)
file(MAKE_DIRECTORY "${CMAKE_SOURCE_DIR}/build/keyboard_repository/${KEYBOARD}")
execute_process(COMMAND ${GIT_EXECUTABLE} clone "https://github.com/${GIT_SLUG}.git" .
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/build/keyboard_repository/${KEYBOARD}"
RESULT_VARIABLE GIT_SUBMOD_RESULT)
if(NOT GIT_SUBMOD_RESULT EQUAL "0")
message(FATAL_ERROR "git clone failed with ${GIT_SUBMOD_RESULT}")
endif()
else()
message("Git not found - skipping submodule update")
endif()
set(${KEYBOAD_FOLDER_ABS_STR} "${CMAKE_SOURCE_DIR}/build/keyboard_repository/${KEYBOARD}" PARENT_SCOPE)
else()
message(FATAL_ERROR "Didn't match")
endif()
else()
message(FATAL_ERROR "Couldn't find")
# set(${RESULT_STR} "NOTFOUND" PARENT_SCOPE)
endif()
endfunction()
function(resolve_config_h KEYBOARD_FOLDER_ABS CONFIG_H_STR)
set(${CONFIG_H_STR} PARENT_SCOPE)
if(${IS_KEYBOARDS_FOLDER})
file(RELATIVE_PATH RELATIVE_KEYBOARD_FOLDER ${QMK_KEYBOARDS_FOLDER} ${KEYBOARD_FOLDER_ABS})
# get the deepest config.h
while(NOT ${RELATIVE_KEYBOARD_FOLDER} STREQUAL "")
if(EXISTS "${QMK_KEYBOARDS_FOLDER}/${RELATIVE_KEYBOARD_FOLDER}/config.h")
parent_list(PREPEND ${CONFIG_H_STR} "${QMK_KEYBOARDS_FOLDER}/${RELATIVE_KEYBOARD_FOLDER}/config.h")
# set(${CONFIG_H_STR} "${QMK_KEYBOARDS_FOLDER}/${RELATIVE_KEYBOARD_FOLDER}/config.h" PARENT_SCOPE)
# return()
endif()
get_filename_component(RELATIVE_KEYBOARD_FOLDER ${RELATIVE_KEYBOARD_FOLDER} DIRECTORY)
endwhile()
# message(FATAL_ERROR "Could not find config.h in ${KEYBOARD_FOLDER_ABS}")
else()
if(EXISTS "${KEYBOARD_FOLDER_ABS}/config.h")
set(${CONFIG_H_STR} "${KEYBOARD_FOLDER_ABS}/config.h" PARENT_SCOPE)
else()
message(FATAL_ERROR "Could not find config.h in ${KEYBOARD_FOLDER_ABS}")
endif()
endif()
endfunction()
function(resolve_keyboard_h KEYBOARD_FOLDER_ABS KEYBOARD_H_STR)
if(${IS_KEYBOARDS_FOLDER})
file(RELATIVE_PATH RELATIVE_KEYBOARD_FOLDER ${QMK_KEYBOARDS_FOLDER} ${KEYBOARD_FOLDER_ABS})
# get the deepest header
while(NOT ${RELATIVE_KEYBOARD_FOLDER} STREQUAL "")
get_filename_component(LAST_PART ${RELATIVE_KEYBOARD_FOLDER} NAME)
if(EXISTS "${QMK_KEYBOARDS_FOLDER}/${RELATIVE_KEYBOARD_FOLDER}/${LAST_PART}.h")
set(${KEYBOARD_H_STR} "${QMK_KEYBOARDS_FOLDER}/${RELATIVE_KEYBOARD_FOLDER}/${LAST_PART}.h" PARENT_SCOPE)
return()
endif()
get_filename_component(RELATIVE_KEYBOARD_FOLDER ${RELATIVE_KEYBOARD_FOLDER} DIRECTORY)
endwhile()
message(FATAL_ERROR "Could not find *.h in ${KEYBOARD_FOLDER_ABS}")
else()
if(EXISTS "${KEYBOARD_FOLDER_ABS}/keyboard.h")
set(${KEYBOARD_H_STR} "${KEYBOARD_FOLDER_ABS}/keyboard.h" PARENT_SCOPE)
else()
message(FATAL_ERROR "Could not find keyboard.h in ${KEYBOARD_FOLDER_ABS}")
endif()
endif()
endfunction()
function(resolve_keymap_c KEYBOARD_FOLDER_ABS KEYMAP_FOLDER KEYMAP_C_STR)
if(IS_ABSOLUTE ${KEYMAP_FOLDER})
if(EXISTS "${KEYMAP_FOLDER}/keymap.c")
set(${KEYMAP_C_STR} "${KEYMAP_FOLDER}/keymap.c" PARENT_SCOPE)
return()
endif()
else()
if(${IS_KEYBOARDS_FOLDER})
file(RELATIVE_PATH RELATIVE_KEYBOARD_FOLDER ${QMK_KEYBOARDS_FOLDER} ${KEYBOARD_FOLDER_ABS})
# get the deepest keymap.c
while(NOT ${RELATIVE_KEYBOARD_FOLDER} STREQUAL "")
if(EXISTS "${QMK_KEYBOARDS_FOLDER}/${RELATIVE_KEYBOARD_FOLDER}/keymaps/${KEYMAP_FOLDER}/keymap.c")
set(${KEYMAP_C_STR} "${QMK_KEYBOARDS_FOLDER}/${RELATIVE_KEYBOARD_FOLDER}/keymaps/${KEYMAP_FOLDER}/keymap.c" PARENT_SCOPE)
return()
endif()
get_filename_component(RELATIVE_KEYBOARD_FOLDER ${RELATIVE_KEYBOARD_FOLDER} DIRECTORY)
endwhile()
else()
if(EXISTS "${KEYBOARD_FOLDER_ABS}/keymap.c")
set(${KEYMAP_C_STR} "${KEYBOARD_FOLDER_ABS}/keymap.c" PARENT_SCOPE)
return()
elseif(EXISTS "${KEYBOARD_FOLDER_ABS}/keymaps/${KEYMAP_FOLDER}/keymap.c")
set(${KEYMAP_C_STR} "${KEYBOARD_FOLDER_ABS}/keymaps/${KEYMAP_FOLDER}/keymap.c" PARENT_SCOPE)
return()
endif()
endif()
endif()
# string(JSON COMMUNITY_LAYOUTS ERROR_VARIABLE NO_COMMUNITY_LAYOUTS GET ${QMK_KEYBOARD_INFO_JSON_STRING} community_layouts)
# if(${NO_COMMUNITY_LAYOUTS} STREQUAL "NOTFOUND")
# string(JSON NUM_LAYOUTS LENGTH ${COMMUNITY_LAYOUTS})
# math(EXPR MAX "${NUM_LAYOUTS} - 1")
foreach(LAYOUT ${LAYOUTS})
# foreach(IDX RANGE ${MAX})
# string(JSON LAYOUT GET ${COMMUNITY_LAYOUTS} ${IDX})
if(EXISTS "${CMAKE_SOURCE_DIR}/layouts/community/${LAYOUT}/${KEYMAP_FOLDER}/keymap.c")
set(${KEYMAP_C_STR} "${CMAKE_SOURCE_DIR}/layouts/community/${LAYOUT}/${KEYMAP_FOLDER}/keymap.c" PARENT_SCOPE)
return()
endif()
endforeach()
# endif()
message(FATAL_ERROR "Could not resolve keymap '${KEYMAP_FOLDER}'")
endfunction()
function(resolve_keyboard_includes KEYBOARD_FOLDER_ABS)
if(${IS_KEYBOARDS_FOLDER})
file(RELATIVE_PATH RELATIVE_KEYBOARD_FOLDER ${QMK_KEYBOARDS_FOLDER} ${KEYBOARD_FOLDER_ABS})
while(NOT ${RELATIVE_KEYBOARD_FOLDER} STREQUAL "")
target_include_directories(qmk PUBLIC "${CMAKE_SOURCE_DIR}/keyboards/${RELATIVE_KEYBOARD_FOLDER}")
get_filename_component(RELATIVE_KEYBOARD_FOLDER ${RELATIVE_KEYBOARD_FOLDER} DIRECTORY)
endwhile()
else()
target_include_directories(qmk PUBLIC "${KEYBOARD_FOLDER_ABS}")
endif()
endfunction()

View File

@@ -0,0 +1,60 @@
function(resolve_toolchain PROCESSOR TOOLCHAIN_STR)
unset(${TOOLCHAIN_STR} PARENT_SCOPE)
if(
${PROCESSOR} MATCHES "^at.*"
)
set(${TOOLCHAIN_STR} "avr" PARENT_SCOPE)
set(QMK_EXTENSION ".hex" PARENT_SCOPE)
include(FindAVRToolchain)
find_avr_toolchain()
elseif(
${PROCESSOR} MATCHES "^STM.*" OR
${PROCESSOR} MATCHES "^WB32.*" OR
${PROCESSOR} MATCHES "^MK.*" OR
${PROCESSOR} MATCHES "RP2040" OR
${PROCESSOR} MATCHES "^GD32.*"
)
set(${TOOLCHAIN_STR} "arm-none-eabi" PARENT_SCOPE)
set(QMK_EXTENSION ".bin" PARENT_SCOPE)
include(FindARMToolchain)
find_arm_toolchain()
elseif(
${PROCESSOR} MATCHES "risc-v"
)
set(${TOOLCHAIN_STR} "riscv32-unknown-elf" PARENT_SCOPE)
set(QMK_EXTENSION ".bin" PARENT_SCOPE)
else()
message(FATAL_ERROR "Could not find toolchain for ${PROCESSOR}")
endif()
endfunction()
function(find_toolchain TOOLCHAIN TOOLCHAIN_ROOT_STR)
unset(${TOOLCHAIN_STR} PARENT_SCOPE)
if(UNIX)
set(OS_SUFFIX "")
find_path(TOOLCHAIN_ROOT
NAMES
${TOOLCHAIN}-gcc${OS_SUFFIX}
PATHS
"${CMAKE_SOURCE_DIR}/toolchains/avr-gcc/avr-gcc-12.1.0-x64-linux/bin/"
"${CMAKE_SOURCE_DIR}/toolchains/gcc-arm-none-eabi-10.3-2021.10/bin/"
/usr/bin/
/usr/local/bin
/bin/
$ENV{AVR_ROOT}
)
elseif(WIN32)
set(OS_SUFFIX ".exe")
find_path(TOOLCHAIN_ROOT
NAMES
${TOOLCHAIN}-gcc${OS_SUFFIX}
PATHS
"${CMAKE_SOURCE_DIR}/toolchains/avr-gcc-12.1.0-x64-windows/bin"
"${CMAKE_SOURCE_DIR}/toolchains/gcc-arm-none-eabi-10.3-2021.10/bin/"
$ENV{AVR_ROOT}
)
else()
message(FATAL_ERROR "Unsure how to handle this OS")
endif(UNIX)
set(${TOOLCHAIN_ROOT_STR} ${TOOLCHAIN_ROOT} PARENT_SCOPE)
endfunction(find_toolchain)

View File

@@ -0,0 +1,22 @@
# can be passed a relative path (to CMAKE_SOURCE_DIR) to update/checkout that submodule
macro(update_submodule SUBMODULE)
find_package(Git QUIET)
if(GIT_FOUND AND EXISTS "${CMAKE_SOURCE_DIR}/.git")
option(GIT_SUBMODULE "Check submodules during build" ON)
if(GIT_SUBMODULE)
message(STATUS "Updating submoudle ${SUBMODULE}")
execute_process(COMMAND ${GIT_EXECUTABLE} submodule update ${SUBMODULE}
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
RESULT_VARIABLE GIT_SUBMOD_RESULT)
if(NOT GIT_SUBMOD_RESULT EQUAL "0")
message(FATAL_ERROR "git submodule update ${SUBMODULE} failed with ${GIT_SUBMOD_RESULT}, please checkout submodules")
endif()
endif()
else()
message("Git not found - skipping submodule update")
endif()
if(NOT EXISTS "${CMAKE_SOURCE_DIR}/${SUBMODULE}/.git")
message(FATAL_ERROR "The submodule was not downloaded! GIT_SUBMODULE was turned off or failed. Please update submodules and try again.")
endif()
endmacro()

25
cmake/Utils.cmake Normal file
View File

@@ -0,0 +1,25 @@
macro(json_get_with_default KEY_STR JSON_STR DEFAULT)
# message(STATUS "Getting ${ARGN} for ${KEY_STR}")
string(JSON ${KEY_STR} ERROR_VARIABLE JSON_ERROR GET ${JSON_STR} ${ARGN})
if(NOT ${JSON_ERROR} STREQUAL "NOTFOUND")
set(${KEY_STR} ${DEFAULT})
endif()
endmacro()
macro(json_get KEY_STR JSON_STR)
# message(STATUS "Getting ${ARGN} for ${KEY_STR}")
string(JSON ${KEY_STR} ERROR_VARIABLE JSON_ERROR GET ${JSON_STR} ${ARGN})
if(NOT ${JSON_ERROR} STREQUAL "NOTFOUND")
unset(${KEY_STR})
endif()
endmacro()
macro(parent_list ACTION LIST_STR)
set(ARGS ${ARGN})
string(REPLACE ";" " " ARGS ${ARGS})
set(LOCAL_LIST ${${LIST_STR}})
list(${ACTION} LOCAL_LIST ${ARGS})
# set in current scope too
set(${LIST_STR} ${LOCAL_LIST})
set(${LIST_STR} ${LOCAL_LIST} PARENT_SCOPE)
endmacro()

199
cmake/ValidateJson.cmake Normal file
View File

@@ -0,0 +1,199 @@
function(validate_json JSON_FILE SCHEMA_NAME JSON_STRING_STR)
unset(${JSON_STRING_STR} PARENT_SCOPE)
message(VERBOSE "Validating ${JSON_FILE} with '${SCHEMA_NAME}' schema")
file(READ ${JSON_FILE} JSON_STRING)
file(READ ${CMAKE_SOURCE_DIR}/data/schemas/${SCHEMA_NAME}.jsonschema SCHEMA_STRING)
string(JSON SCHEMA_ID GET ${SCHEMA_STRING} $id)
set(DEFINITIONS "{}")
file(READ ${CMAKE_SOURCE_DIR}/data/schemas/definitions.jsonschema DEFINITIONS_STRING)
string(JSON DEFINITION_ID GET ${DEFINITIONS_STRING} $id)
string(JSON DEFINITIONS SET ${DEFINITIONS} "${DEFINITION_ID}#" ${DEFINITIONS_STRING})
string(JSON SCHEMA_DEFINITIONS ERROR_VARIABLE JSON_ERROR GET ${SCHEMA_STRING} definitions)
if(${JSON_ERROR} STREQUAL "NOTFOUND")
string(JSON DEFINITIONS SET ${DEFINITIONS} "#" "{}")
string(JSON DEFINITIONS SET ${DEFINITIONS} "#" definitions ${SCHEMA_DEFINITIONS})
# string(JSON DEFINITIONS_LENGTH LENGTH ${SCHEMA_DEFINITIONS})
# math(EXPR MAX "${DEFINITIONS_LENGTH} - 1")
# foreach(IDX RANGE ${MAX})
# string(JSON DEFINITION_NAME MEMBER ${SCHEMA_DEFINITIONS} ${IDX})
# string(JSON DEFINITION GET ${SCHEMA_DEFINITIONS} ${DEFINITION_NAME})
# message(VERBOSE "Loading local definition '${DEFINITION_NAME}'")
# string(JSON DEFINITIONS_STRING SET ${DEFINITIONS_STRING} ${DEFINITION_NAME} ${DEFINITION})
# endforeach()
endif()
validate_object(${JSON_STRING} ${SCHEMA_STRING} OBJECT_ERROR)
if(DEFINED OBJECT_ERROR)
message(FATAL_ERROR ${OBJECT_ERROR})
else()
set(${JSON_STRING_STR} ${JSON_STRING} PARENT_SCOPE)
endif()
endfunction()
function(validate_object JSON_STRING SCHEMA_STRING OBJECT_ERROR_STR)
unset(${OBJECT_ERROR_STR} PARENT_SCOPE)
set(OBJECT_ERROR)
string(JSON PROPERTY_NAME_SCHEMA ERROR_VARIABLE PROPERTY_NAMES_ERROR GET ${SCHEMA_STRING} propertyNames)
string(JSON REQUIRED_PROPERTIES ERROR_VARIABLE REQUIRED_PROPERTIES_ERROR GET ${SCHEMA_STRING} required)
set(REQUIRED_LIST)
if(${REQUIRED_PROPERTIES_ERROR} STREQUAL "NOTFOUND")
string(JSON REQUIRED_LENGTH LENGTH ${REQUIRED_PROPERTIES})
math(EXPR MAX "${REQUIRED_LENGTH} - 1")
foreach(IDX RANGE ${MAX})
string(JSON REQUIRED GET ${REQUIRED_PROPERTIES} ${IDX})
list(APPEND REQUIRED_LIST ${REQUIRED})
endforeach()
endif()
string(JSON NUM_PROPERTIES LENGTH ${JSON_STRING})
math(EXPR MAX "${NUM_PROPERTIES} - 1")
foreach(IDX RANGE ${MAX})
string(JSON PROPERTY_NAME MEMBER ${JSON_STRING} ${IDX})
list(REMOVE_ITEM REQUIRED_LIST ${PROPERTY_NAME})
message(VERBOSE "Validating property '${PROPERTY_NAME}'")
if(${PROPERTY_NAMES_ERROR} STREQUAL "NOTFOUND")
validate_property(${PROPERTY_NAME} ${PROPERTY_NAME_SCHEMA} PROPERTY_NAME_ERROR)
if(DEFINED PROPERTY_NAME_ERROR)
list(APPEND OBJECT_ERROR "${PROPERTY_NAME_ERROR}")
endif()
endif()
string(JSON PROPERTY GET ${JSON_STRING} ${PROPERTY_NAME})
string(JSON SCHEMA_PROPERTIES ERROR_VARIABLE PROPERTIES_ERROR GET ${SCHEMA_STRING} properties ${PROPERTY_NAME})
if(${PROPERTIES_ERROR} STREQUAL "NOTFOUND")
string(JSON PROPERTY_SCHEMA GET ${SCHEMA_STRING} properties ${PROPERTY_NAME})
else()
string(JSON PROPERTY_SCHEMA ERROR_VARIABLE ADDITIONAL_PROPERTIES_ERROR GET ${SCHEMA_STRING} additionalProperties)
if(NOT ${ADDITIONAL_PROPERTIES_ERROR} STREQUAL "NOTFOUND" OR "${PROPERTY_SCHEMA}" STREQUAL "OFF")
list(APPEND OBJECT_ERROR "Additional properties like '${PROPERTY_NAME}' not permitted in '${JSON_STRING}'")
endif()
endif()
validate_property(${PROPERTY} ${PROPERTY_SCHEMA} PROPERTY_ERROR)
if(DEFINED PROPERTY_ERROR)
list(APPEND OBJECT_ERROR "${PROPERTY_ERROR}")
endif()
endforeach()
list(LENGTH REQUIRED_LIST REQUIRED_REMAINING_LENGTH)
if(${REQUIRED_REMAINING_LENGTH} GREATER 0)
list(APPEND OBJECT_ERROR "Required properties not found: ${REQUIRED_LIST}")
endif()
set(${OBJECT_ERROR_STR} ${OBJECT_ERROR} PARENT_SCOPE)
endfunction()
function(validate_property PROPERTY PROPERTY_SCHEMA PROPERTY_ERROR_STR)
unset(${PROPERTY_ERROR_STR} PARENT_SCOPE)
set(PROPERTY_ERROR)
string(JSON PROPERTY_REF ERROR_VARIABLE JSON_ERROR GET ${PROPERTY_SCHEMA} $ref)
if(${JSON_ERROR} STREQUAL "NOTFOUND")
string(REPLACE "/" ";" REF_COMPONENTS "${PROPERTY_REF}")
string(JSON PROPERTY_SCHEMA GET ${DEFINITIONS} ${REF_COMPONENTS})
endif()
string(JSON PROPERTY_TYPE ERROR_VARIABLE JSON_ERROR GET ${PROPERTY_SCHEMA} type)
if(${JSON_ERROR} STREQUAL "NOTFOUND")
message(VERBOSE "Validating property type '${PROPERTY_TYPE}'")
if(${PROPERTY_TYPE} STREQUAL "object")
validate_object(${PROPERTY} ${PROPERTY_SCHEMA} OBJECT_ERROR)
if(DEFINED OBJECT_ERROR)
list(APPEND PROPERTY_ERROR ${OBJECT_ERROR})
endif()
elseif(${PROPERTY_TYPE} STREQUAL "array")
string(JSON ARRAY_LENGTH LENGTH ${PROPERTY})
string(JSON MAX_ITEMS ERROR_VARIABLE JSON_ERROR GET ${PROPERTY_SCHEMA} maxItems)
if(${JSON_ERROR} STREQUAL "NOTFOUND" AND ${ARRAY_LENGTH} GREATER ${MAX_ITEMS})
list(APPEND PROPERTY_ERROR "Number of items in '${PROPERTY}' exceeds maximum ${MAX_ITEMS}")
endif()
string(JSON MIN_ITEMS ERROR_VARIABLE JSON_ERROR GET ${PROPERTY_SCHEMA} minItems)
if(${JSON_ERROR} STREQUAL "NOTFOUND" AND ${ARRAY_LENGTH} LESS ${MIN_ITEMS})
list(APPEND PROPERTY_ERROR "Number of items in '${PROPERTY}' is less than ${MIN_ITEMS}")
endif()
string(JSON ITEM_SCHEMA ERROR_VARIABLE JSON_ERROR GET ${PROPERTY_SCHEMA} items)
if(${JSON_ERROR} STREQUAL "NOTFOUND")
math(EXPR MAX "${ARRAY_LENGTH} - 1")
foreach(IDX RANGE ${MAX})
string(JSON ITEM GET ${PROPERTY} ${IDX})
validate_property(${ITEM} ${ITEM_SCHEMA} ITEM_ERROR)
if(DEFINED ITEM_ERROR)
list(APPEND PROPERTY_ERROR ${ITEM_ERROR})
endif()
endforeach()
endif()
elseif(${PROPERTY_TYPE} STREQUAL "null")
if(NOT "${PROPERTY}" STREQUAL "null")
list(APPEND PROPERTY_ERROR "Property '${PROPERTY}' is not null'")
endif()
elseif(${PROPERTY_TYPE} STREQUAL "boolean")
if(NOT "${PROPERTY}" STREQUAL "OFF" AND NOT "${PROPERTY}" STREQUAL "ON")
list(APPEND PROPERTY_ERROR "Property '${PROPERTY}' is not a boolean'")
endif()
elseif(${PROPERTY_TYPE} STREQUAL "number")
if(NOT "${PROPERTY}" MATCHES "-?[0-9]+\\.?[0-9]*")
list(APPEND PROPERTY_ERROR "Property '${PROPERTY}' is not a number'")
endif()
elseif(${PROPERTY_TYPE} STREQUAL "integer")
if(NOT "${PROPERTY}" MATCHES "-?[0-9]+")
list(APPEND PROPERTY_ERROR "Property '${PROPERTY}' is not an integer'")
endif()
string(JSON MIN ERROR_VARIABLE JSON_ERROR GET ${PROPERTY_SCHEMA} minimum)
if(${JSON_ERROR} STREQUAL "NOTFOUND" AND ${PROPERTY} LESS ${MIN})
list(APPEND PROPERTY_ERROR "Property '${PROPERTY}' is less than the minimum of ${MIN}")
endif()
string(JSON MAX ERROR_VARIABLE JSON_ERROR GET ${PROPERTY_SCHEMA} maximum)
if(${JSON_ERROR} STREQUAL "NOTFOUND" AND ${PROPERTY} GREATER ${MAX})
list(APPEND PROPERTY_ERROR "Property '${PROPERTY}' is greater than the maximum of ${MAX}")
endif()
elseif(${PROPERTY_TYPE} STREQUAL "string")
# cmake regex doesn't support {}, so other options might be needed here
string(JSON PATTERN ERROR_VARIABLE JSON_ERROR GET ${PROPERTY_SCHEMA} pattern)
if(${JSON_ERROR} STREQUAL "NOTFOUND" AND NOT "${PROPERTY}" MATCHES "${PATTERN}")
list(APPEND PROPERTY_ERROR "Property '${PROPERTY}' does not match '${PATTERN}'")
endif()
string(LENGTH ${PROPERTY} STRING_LENGTH)
string(JSON MIN_LENGTH ERROR_VARIABLE JSON_ERROR GET ${PROPERTY_SCHEMA} minLength)
if(${JSON_ERROR} STREQUAL "NOTFOUND" AND ${STRING_LENGTH} LESS ${MIN_LENGTH})
list(APPEND PROPERTY_ERROR "Length of property '${PROPERTY}' is less than the minimum of ${MIN_LENGTH}")
endif()
string(JSON MAX_LENGTH ERROR_VARIABLE JSON_ERROR GET ${PROPERTY_SCHEMA} maxLength)
if(${JSON_ERROR} STREQUAL "NOTFOUND" AND ${STRING_LENGTH} GREATER ${MAX_LENGTH})
list(APPEND PROPERTY_ERROR "Length of property '${PROPERTY}' is greater than the maximum of ${MAX_LENGTH}")
endif()
string(JSON ENUM_LIST ERROR_VARIABLE JSON_ERROR GET ${PROPERTY_SCHEMA} enum)
if(${JSON_ERROR} STREQUAL "NOTFOUND")
set(FOUND_IN_ENUM_LIST FALSE)
string(JSON ENUM_LENGTH LENGTH ${ENUM_LIST})
math(EXPR MAX "${ENUM_LENGTH} - 1")
foreach(IDX RANGE ${MAX})
string(JSON ENUM GET ${PROPERTY_SCHEMA} enum ${IDX})
if(${ENUM} STREQUAL ${PROPERTY})
set(FOUND_IN_ENUM_LIST TRUE)
endif()
endforeach()
if(NOT ${FOUND_IN_ENUM_LIST})
list(APPEND PROPERTY_ERROR "Property '${PROPERTY}' is not defined in the schema's enum: ${ENUM_LIST}")
endif()
endif()
else()
message(VERBOSE "Unknown type '${PROPERTY_TYPE}'")
endif()
else()
string(JSON PROPERTY_ONEOF ERROR_VARIABLE JSON_ERROR GET ${PROPERTY_SCHEMA} oneOf)
if(${JSON_ERROR} STREQUAL "NOTFOUND")
set(TYPE_SUCCESS FALSE)
string(JSON NUM_ONEOF LENGTH ${PROPERTY_ONEOF})
math(EXPR MAX "${NUM_ONEOF} - 1")
set(ONEOF_ERRORS)
foreach(IDX RANGE ${MAX})
string(JSON PROPERTY_SCHEMA GET ${PROPERTY_ONEOF} ${IDX})
validate_property(${PROPERTY} ${PROPERTY_SCHEMA} ONEOF_ERROR)
if(NOT DEFINED ONEOF_ERROR)
set(TYPE_SUCCESS TRUE)
else()
list(APPEND ONEOF_ERRORS "${ONEOF_ERROR}\n")
endif()
endforeach()
if(NOT TYPE_SUCCESS)
list(APPEND PROPERTY_ERROR "Could not validate oneOf type '${PROPERTY}' :\n${ONEOF_ERRORS}")
endif()
endif()
endif()
set(${PROPERTY_ERROR_STR} ${PROPERTY_ERROR} PARENT_SCOPE)
endfunction()

View File

@@ -0,0 +1,2 @@
target_sources(qmk PUBLIC ${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/ADCv3/hal_adc_lld.c)
target_include_directories(qmk PUBLIC ${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/ADCv3)

View File

@@ -0,0 +1,2 @@
target_sources(qmk PUBLIC ${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/CANv1/hal_can_lld.c)
target_include_directories(qmk PUBLIC ${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/CANv1)

View File

@@ -0,0 +1,2 @@
target_sources(qmk PUBLIC ${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/DACv1/hal_dac_lld.c)
target_include_directories(qmk PUBLIC ${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/DACv1)

View File

@@ -0,0 +1,2 @@
target_sources(qmk PUBLIC ${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/DMAv1/stm32_dma.c)
target_include_directories(qmk PUBLIC ${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/DMAv1)

View File

@@ -0,0 +1,2 @@
target_sources(qmk PUBLIC ${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/EXTIv1/stm32_exti.c)
target_include_directories(qmk PUBLIC ${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/EXTIv1)

View File

@@ -0,0 +1,2 @@
target_sources(qmk PUBLIC ${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/GPIOv2/hal_pal_lld.c)
target_include_directories(qmk PUBLIC ${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/GPIOv2)

View File

@@ -0,0 +1,7 @@
if(${USE_HAL_I2C_FALLBACK})
target_sources(qmk PUBLIC ${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/I2C/hal_i2c_lld.c)
target_include_directories(qmk PUBLIC ${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/I2C)
else()
target_sources(qmk PUBLIC ${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/I2Cv2/hal_i2c_lld.c)
target_include_directories(qmk PUBLIC ${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/I2Cv2)
endif()

View File

@@ -0,0 +1,2 @@
target_sources(qmk PUBLIC ${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/RTCv2/hal_rtc_lld.c)
target_include_directories(qmk PUBLIC ${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/RTCv2)

View File

@@ -0,0 +1,5 @@
target_sources(qmk PUBLIC
${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/SPIv2/hal_i2s_lld.c
${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/SPIv2/hal_spi_v2_lld.c
)
target_include_directories(qmk PUBLIC ${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/SPIv2)

View File

@@ -0,0 +1,2 @@
target_sources(qmk PUBLIC ${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/SYSTICKv1/hal_st_lld.c)
target_include_directories(qmk PUBLIC ${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/SYSTICKv1)

View File

@@ -0,0 +1,6 @@
target_sources(qmk PUBLIC
${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/TIMv1/hal_gpt_lld.c
${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/TIMv1/hal_icu_lld.c
${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/TIMv1/hal_pwm_lld.c
)
target_include_directories(qmk PUBLIC ${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/TIMv1)

View File

@@ -0,0 +1,9 @@
target_sources(qmk PUBLIC
${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/USARTv2/hal_serial_lld.c
${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/USARTv2/hal_sio_lld.c
${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/USARTv2/hal_uart_lld.c
)
target_include_directories(qmk PUBLIC
${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/USART
${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/USARTv2
)

View File

@@ -0,0 +1,6 @@
target_sources(qmk PUBLIC
${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/USBv1/hal_usb_lld.c
)
target_include_directories(qmk PUBLIC
${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/USBv1
)

View File

@@ -0,0 +1,6 @@
target_sources(qmk PUBLIC
${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/xWDGv1/hal_wdg_lld.c
)
target_include_directories(qmk PUBLIC
${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/xWDGv1
)

View File

@@ -0,0 +1,10 @@
# os/common/ports/ARMv7/compilers/GCC/mk/port.mk
target_sources(qmk PUBLIC
${CHIBIOS}/os/common/ports/ARMv7-M/chcore.c
${CHIBIOS}/os/common/ports/ARMv7-M/compilers/GCC/chcoreasm.S
)
target_include_directories(qmk PUBLIC
${CHIBIOS}/os/common/portability/GCC
${CHIBIOS}/os/common/ports/ARM-common
${CHIBIOS}/os/common/ports/ARMv7-M
)

View File

@@ -0,0 +1,25 @@
# os/hal/ports/STM32/STM32F3xx/platform.mk
target_sources(qmk PUBLIC
${CHIBIOS}/os/hal/ports/common/ARMCMx/nvic.c
${CHIBIOS}/os/hal/ports/STM32/STM32F3xx/stm32_isr.c
${CHIBIOS}/os/hal/ports/STM32/STM32F3xx/hal_lld.c
${CHIBIOS}/os/hal/ports/STM32/STM32F3xx/hal_efl_lld.c
)
target_include_directories(qmk PUBLIC
${CHIBIOS}/os/hal/ports/common/ARMCMx
${CHIBIOS}/os/hal/ports/STM32/STM32F3xx
)
include(chibios/LLD/ADCv3)
include(chibios/LLD/CANv1)
include(chibios/LLD/DACv1)
include(chibios/LLD/DMAv1)
include(chibios/LLD/EXTIv1)
include(chibios/LLD/GPIOv2)
include(chibios/LLD/I2Cv2)
include(chibios/LLD/RTCv2)
include(chibios/LLD/SPIv2)
include(chibios/LLD/SYSTICKv1)
include(chibios/LLD/TIMv1)
include(chibios/LLD/USARTv2)
include(chibios/LLD/USBv1)
include(chibios/LLD/xWDGv1)

View File

@@ -0,0 +1,32 @@
option(BACKLIGHT_ENABLE "" TRUE)
set(BACKLIGHT_DRIVER "pwm" CACHE STRING "Backlight driver")
set_property(CACHE BACKLIGHT_DRIVER PROPERTY STRINGS pwm timer software custom)
string(JSON BACKLIGHT_PIN ERROR_VARIABLE NO_BACKLIGHT_PIN GET ${QMK_KEYBOARD_INFO_JSON_STRING} backlight pin)
if(${BACKLIGHT_ENABLE} AND NOT ${BACKLIGHT_PIN} STREQUAL "backlight-NOTFOUND")
target_sources(qmk PUBLIC
quantum/backlight/backlight.c
quantum/process_keycode/process_backlight.c
)
target_compile_definitions(qmk PUBLIC
BACKLIGHT_ENABLE
BACKLIGHT_PIN=${BACKLIGHT_PIN}
)
if(${BACKLIGHT_DRIVER} STREQUAL "custom")
target_compile_definitions(qmk PUBLIC BACKLIGHT_CUSTOM_DRIVER)
else()
target_sources(qmk PUBLIC quantum/backlight/backlight_driver_common.c)
if(${BACKLIGHT_DRIVER} STREQUAL "pwm")
target_sources(qmk PUBLIC quantum/backlight/backlight_${QMK_PLATFORM}.c)
else()
target_sources(qmk PUBLIC quantum/backlight/backlight_${BACKLIGHT_DRIVER}.c)
endif()
endif()
target_include_directories(qmk PUBLIC quantum/backlight)
target_include_directories(qmk PUBLIC drivers/oled)
# target_link_libraries(backlight qmk)
# target_include_directories(backlight PUBLIC quantum/backlight)
# target_include_directories(quantum PUBLIC quantum/backlight)
# target_link_libraries(backlight ${QMK_TARGET})
# target_link_libraries(backlight quantum)
endif()

View File

@@ -0,0 +1,70 @@
set(EEPROM_DRIVER "vendor" CACHE STRING "EEPROM driver")
set_property(CACHE EEPROM_DRIVER PROPERTY STRINGS vendor custom transient i2c spi wear_leveling legacy_stm32_flash)
set(WEAR_LEVELING_DRIVER "none" CACHE STRING "EEPROM wear-leveling driver")
set_property(CACHE WEAR_LEVELING_DRIVER PROPERTY STRINGS custom embedded_flash spi_flash rp2040_flash legacy)
target_compile_definitions(qmk PUBLIC
EEPROM_ENABLE
)
target_include_directories(qmk PUBLIC
platforms/${QMK_PLATFORM}/drivers/eeprom
drivers/eeprom
platforms/common
)
if(${EEPROM_DRIVER} STREQUAL "wear_leveling")
target_compile_definitions(qmk PUBLIC
EEPROM_DRIVER
EEPROM_WEAR_LEVELING
)
target_sources(qmk PUBLIC
drivers/eeprom/eeprom_driver.c
drivers/eeprom/eeprom_wear_leveling.c
)
elseif(${EEPROM_DRIVER} STREQUAL "vendor")
target_compile_definitions(qmk PUBLIC
EEPROM_VENDOR
)
if(${QMK_PLATFORM} STREQUAL "chibios")
if(${QMK_MCU} MATCHES "STM32F[1-9].*" OR ${QMK_MCU} MATCHES "WB32.*" OR ${QMK_MCU} MATCHES "GD32.*")
target_compile_definitions(qmk PUBLIC
EEPROM_DRIVER
EEPROM_WEAR_LEVELING
)
target_sources(qmk PUBLIC
drivers/eeprom/eeprom_driver.c
drivers/eeprom/eeprom_wear_leveling.c
)
set(WEAR_LEVELING_DRIVER "embedded_flash")
endif()
endif()
endif()
if(NOT ${WEAR_LEVELING_DRIVER} STREQUAL "none")
set(FNV_ENABLE TRUE)
target_compile_definitions(qmk PUBLIC
WEAR_LEVELING_ENABLE
)
target_include_directories(qmk PUBLIC
platforms/${QMK_PLATFORM}/drivers/wear_leveling
drivers/wear_leveling
quantum/wear_leveling
)
target_sources(qmk PUBLIC quantum/wear_leveling/wear_leveling.c)
if(${WEAR_LEVELING_DRIVER} STREQUAL "embedded_flash")
target_compile_definitions(qmk PUBLIC
HAL_USE_EFL
WEAR_LEVELING_EMBEDDED_FLASH
)
target_sources(qmk PUBLIC
platforms/${QMK_PLATFORM}/drivers/wear_leveling/wear_leveling_efl.c
)
# target_compile_options(qmk PUBLIC
# -include ${CMAKE_SOURCE_DIR}/platforms/${QMK_PLATFORM}/drivers/wear_leveling/wear_leveling_efl_config.h
# )
target_precompile_headers(qmk PUBLIC
${CMAKE_SOURCE_DIR}/platforms/${QMK_PLATFORM}/drivers/wear_leveling/wear_leveling_efl_config.h
)
endif()
endif()

9
cmake/features/fnv.cmake Normal file
View File

@@ -0,0 +1,9 @@
if(${FNV_ENABLE})
target_compile_definitions(qmk PUBLIC FNV_ENABLE)
target_include_directories(qmk PUBLIC lib/fnv)
target_sources(qmk PUBLIC
lib/fnv/qmk_fnv_type_validation.c
lib/fnv/hash_32a.c
lib/fnv/hash_64a.c
)
endif()

View File

@@ -0,0 +1,9 @@
message(STATUS "Custom Matrix: ${CUSTOM_MATRIX}")
set(CUSTOM_MATRIX "no" CACHE STRING "Custom matrix-scanning")
set_property(CACHE CUSTOM_MATRIX PROPERTY STRINGS yes lite no)
if(NOT ${CUSTOM_MATRIX} STREQUAL yes)
target_sources(qmk PUBLIC quantum/matrix_common.c)
if(NOT ${CUSTOM_MATRIX} STREQUAL lite)
target_sources(qmk PUBLIC quantum/matrix.c)
endif()
endif()

10
cmake/features/oled.cmake Normal file
View File

@@ -0,0 +1,10 @@
option(OLED_ENABLE "" OFF)
if(${OLED_ENABLE})
target_sources(qmk PUBLIC
drivers/oled/ssd1306_sh1106.c
platforms/${QMK_PLATFORM}/drivers/i2c_master.c)
target_compile_definitions(qmk PUBLIC OLED_ENABLE)
target_include_directories(qmk PUBLIC drivers)
target_include_directories(qmk PUBLIC drivers/oled)
target_include_directories(qmk PUBLIC platforms/${QMK_PLATFORM}/drivers)
endif()

View File

@@ -0,0 +1,144 @@
set(CMAKE_EXPORT_COMPILE_COMMANDS on)
include(ResolveToolchain)
set(QMK_TOOLCHAIN "arm-none-eabi")
set(QMK_PLATFORM "chibios")
set(QMK_PROTOCOL "chibios")
set(QMK_EXTENSION ".bin")
if(UNIX)
set(OS_SUFFIX "")
elseif(WIN32)
set(OS_SUFFIX ".exe")
endif()
find_toolchain(arm-none-eabi TOOLCHAIN_ROOT)
set(CMAKE_SYSTEM_NAME Generic)
set(CMAKE_SYSTEM_PROCESSOR arm)
set(CMAKE_CROSS_COMPILING 1)
set(CMAKE_C_COMPILER "${TOOLCHAIN_ROOT}/${QMK_TOOLCHAIN}-gcc${OS_SUFFIX}" CACHE PATH "gcc" FORCE)
set(CMAKE_CXX_COMPILER "${TOOLCHAIN_ROOT}/${QMK_TOOLCHAIN}-g++${OS_SUFFIX}" CACHE PATH "g++" FORCE)
set(CMAKE_AR "${TOOLCHAIN_ROOT}/${QMK_TOOLCHAIN}-ar${OS_SUFFIX}" CACHE PATH "ar" FORCE)
set(CMAKE_AS "${TOOLCHAIN_ROOT}/${QMK_TOOLCHAIN}-as${OS_SUFFIX}" CACHE PATH "as" FORCE)
set(CMAKE_LINKER "${TOOLCHAIN_ROOT}/${QMK_TOOLCHAIN}-ld${OS_SUFFIX}" CACHE PATH "linker" FORCE)
set(CMAKE_NM "${TOOLCHAIN_ROOT}/${QMK_TOOLCHAIN}-nm${OS_SUFFIX}" CACHE PATH "nm" FORCE)
set(CMAKE_OBJCOPY "${TOOLCHAIN_ROOT}/${QMK_TOOLCHAIN}-objcopy${OS_SUFFIX}" CACHE PATH "objcopy" FORCE)
set(CMAKE_OBJDUMP "${TOOLCHAIN_ROOT}/${QMK_TOOLCHAIN}-objdump${OS_SUFFIX}" CACHE PATH "objdump" FORCE)
set(CMAKE_STRIP "${TOOLCHAIN_ROOT}/${QMK_TOOLCHAIN}-strip${OS_SUFFIX}" CACHE PATH "strip" FORCE)
set(CMAKE_RANLIB "${TOOLCHAIN_ROOT}/${QMK_TOOLCHAIN}-ranlib${OS_SUFFIX}" CACHE PATH "ranlib" FORCE)
set(CMAKE_SIZE "${TOOLCHAIN_ROOT}/${QMK_TOOLCHAIN}-size${OS_SUFFIX}" CACHE PATH "size" FORCE)
find_program(CMAKE_MAKE_PROGRAM NAME make
PATHS
"${CMAKE_SOURCE_DIR}/toolchains/avr-gcc-12.1.0-x64-windows/bin/"
"${CMAKE_SOURCE_DIR}/toolchains/avr-gcc-12.1.0-x64-linux/bin/"
/usr/bin/
/usr/local/bin
/bin/
)
add_compile_options(
$<$<COMPILE_LANGUAGE:C>:-std=gnu11>
$<$<COMPILE_LANGUAGE:CXX>:-std=gnu++14>
$<$<COMPILE_LANGUAGE:CXX>:-fno-rtti>
# -flto
-Os
-Wall
-Wstrict-prototypes
# -fcommon
# -g
-fomit-frame-pointer
-ffunction-sections
-fdata-sections
-fno-common
-fshort-wchar
-fno-builtin-printf
# -funsigned-char
# -funsigned-bitfields
# -ffunction-sections
# -fdata-sections
# -fpack-struct
# -fshort-enums
# -fno-builtin-printf
# $<$<COMPILE_LANGUAGE:C>:-fno-inline-small-functions>
# $<$<COMPILE_LANGUAGE:C>:-fno-strict-aliasing>
# $<$<COMPILE_LANGUAGE:CXX>:-fno-exceptions>
)
add_link_options(
-Wl,--gc-sections
-nostartfiles
-Wl,--no-wchar-size-warning
--specs=nano.specs
-lm
)
macro(add_qmk_executable target_name)
set(elf_file ${target_name}.elf)
set(map_file ${target_name}.map)
set(bin_file ${target_name}.bin)
set(lst_file ${target_name}.lst)
add_link_options(
-Wl,-Map=${map_file},--cref
)
# create elf file
add_executable(qmk ${ARGN})
# add_executable(${elf_file} ${ARGN})
# target_link_libraries(${elf_file} qmk)
set_target_properties(qmk
PROPERTIES
OUTPUT_NAME ${elf_file}
)
# generate the lst file
add_custom_command(
OUTPUT ${lst_file}
COMMAND ${CMAKE_OBJDUMP} -h -S ${elf_file} > ${lst_file}
DEPENDS qmk
)
# add_custom_command(
# OUTPUT "print-size-${elf_file}"
# COMMAND
# ${CMAKE_SIZE} ${elf_file}
# DEPENDS ${elf_file}
# )
# add_custom_command(
# OUTPUT "print-size-${bin_file}"
# COMMAND
# ${CMAKE_SIZE} ${bin_file} sizeafter
# DEPENDS ${bin_file}
# )
add_custom_command(
TARGET qmk
POST_BUILD
COMMAND ${CMAKE_OBJCOPY} -O binary ${elf_file} ${CMAKE_SOURCE_DIR}/build/${bin_file}
# COMMAND ${CMAKE_COMMAND} -E copy ${elf_file} ${CMAKE_SOURCE_DIR}/build/${elf_file}
# COMMAND ${CMAKE_COMMAND} -E copy ${lst_file} ${CMAKE_SOURCE_DIR}/build/${lst_file}
# COMMAND ${CMAKE_COMMAND} -E copy ${map_file} ${CMAKE_SOURCE_DIR}/build/${map_file}
)
# build the intel hex file for the device
add_custom_target(${target_name} ALL
DEPENDS ${elf_file} ${lst_file}
)
set_target_properties(${target_name}
PROPERTIES
OUTPUT_NAME ${bin_file}
)
endmacro(add_qmk_executable)

182
cmake/toolchains/avr.cmake Normal file
View File

@@ -0,0 +1,182 @@
#
# AVR GCC Toolchain file
#
# @author Natesh Narain
# @since Feb 06 2016
set(CMAKE_EXPORT_COMPILE_COMMANDS on)
include(ResolveToolchain)
set(QMK_TOOLCHAIN "avr")
set(QMK_PLATFORM "avr")
set(QMK_PROTOCOL "lufa")
set(QMK_EXTENSION ".hex")
if(UNIX)
set(OS_SUFFIX "")
elseif(WIN32)
set(OS_SUFFIX ".exe")
endif()
find_toolchain(avr TOOLCHAIN_ROOT)
# setup the AVR compiler variables
set(CMAKE_SYSTEM_NAME Generic)
set(CMAKE_SYSTEM_PROCESSOR avr)
set(CMAKE_CROSS_COMPILING 1)
set(CMAKE_C_COMPILER "${TOOLCHAIN_ROOT}/${QMK_TOOLCHAIN}-gcc${OS_SUFFIX}" CACHE PATH "gcc" FORCE)
set(CMAKE_CXX_COMPILER "${TOOLCHAIN_ROOT}/${QMK_TOOLCHAIN}-g++${OS_SUFFIX}" CACHE PATH "g++" FORCE)
set(CMAKE_AR "${TOOLCHAIN_ROOT}/${QMK_TOOLCHAIN}-ar${OS_SUFFIX}" CACHE PATH "ar" FORCE)
set(CMAKE_AS "${TOOLCHAIN_ROOT}/${QMK_TOOLCHAIN}-as${OS_SUFFIX}" CACHE PATH "as" FORCE)
set(CMAKE_LINKER "${TOOLCHAIN_ROOT}/${QMK_TOOLCHAIN}-ld${OS_SUFFIX}" CACHE PATH "linker" FORCE)
set(CMAKE_NM "${TOOLCHAIN_ROOT}/${QMK_TOOLCHAIN}-nm${OS_SUFFIX}" CACHE PATH "nm" FORCE)
set(CMAKE_OBJCOPY "${TOOLCHAIN_ROOT}/${QMK_TOOLCHAIN}-objcopy${OS_SUFFIX}" CACHE PATH "objcopy" FORCE)
set(CMAKE_OBJDUMP "${TOOLCHAIN_ROOT}/${QMK_TOOLCHAIN}-objdump${OS_SUFFIX}" CACHE PATH "objdump" FORCE)
set(CMAKE_STRIP "${TOOLCHAIN_ROOT}/${QMK_TOOLCHAIN}-strip${OS_SUFFIX}" CACHE PATH "strip" FORCE)
set(CMAKE_RANLIB "${TOOLCHAIN_ROOT}/${QMK_TOOLCHAIN}-ranlib${OS_SUFFIX}" CACHE PATH "ranlib" FORCE)
set(AVR_SIZE "${TOOLCHAIN_ROOT}/${QMK_TOOLCHAIN}-size${OS_SUFFIX}" CACHE PATH "size" FORCE)
# set(CMAKE_EXE_LINKER_FLAGS "-L /usr/lib/gcc/avr/4.8.2")
# avr uploader config
find_program(AVR_UPLOAD
NAME
avrdude
PATHS
/usr/bin/
$ENV{AVR_ROOT}
)
find_program(CMAKE_MAKE_PROGRAM NAME make
PATHS
"${CMAKE_SOURCE_DIR}/toolchains/avr-gcc-12.1.0-x64-windows/bin/"
"${CMAKE_SOURCE_DIR}/toolchains/avr-gcc-12.1.0-x64-linux/bin/"
/usr/bin/
/usr/local/bin
/bin/
)
# setup the avr exectable macro
# set(AVR_LINKER_LIBS "-lc -lm -lgcc -Wl,-lprintf_flt -Wl,-u,vfprintf")
add_compile_options(
$<$<COMPILE_LANGUAGE:C>:-std=gnu11>
$<$<COMPILE_LANGUAGE:CXX>:-std=gnu++14>
-flto
# -mrelax
-Os
-Wall
-Wstrict-prototypes
-fcommon
# -g
$<$<BOOL:${WIN32}>:--param=min-pagesize=0>
-funsigned-char
-funsigned-bitfields
-ffunction-sections
-fdata-sections
-fpack-struct
-fshort-enums
-mcall-prologues
-fno-builtin-printf
$<$<COMPILE_LANGUAGE:C>:-fno-inline-small-functions>
$<$<COMPILE_LANGUAGE:C>:-fno-strict-aliasing>
$<$<COMPILE_LANGUAGE:CXX>:-fno-exceptions>
)
add_compile_definitions(
F_CPU=16000000
F_USB=16000000UL
__AVR_ATmega32U4__
LTO_ENABLE
)
add_link_options(
-Wl,--gc-sections
)
macro(add_qmk_executable target_name)
set(elf_file ${target_name}.elf)
set(map_file ${target_name}.map)
set(hex_file ${target_name}.hex)
set(lst_file ${target_name}.lst)
add_compile_options(
-mmcu=${QMK_MCU}
)
add_link_options(
-mmcu=${QMK_MCU}
-Wl,-Map=${map_file}
)
# create elf file
# add_executable(${elf_file} ${ARGN})
# target_link_libraries(${elf_file} qmk)
add_executable(qmk ${ARGN})
set_target_properties(qmk
PROPERTIES
OUTPUT_NAME ${elf_file}
)
# set_target_properties(${elf_file}
# PROPERTIES
# COMPILE_FLAGS "-mmcu=${QMK_MCU} ${COMPILE_OPTIONS}"
# LINK_FLAGS "-mmcu=${QMK_MCU} ${LINK_OPTIONS}"
# )
# add_custom_target(compileOptions
# COMMAND cmake -P ${CMAKE_SOURCE_DIR}/cmake/WriteCompileOptions.cmake
# COMMENT "Writing compile_flags.txt"
# )
# generate the lst file
add_custom_command(
OUTPUT ${lst_file}
COMMAND ${CMAKE_OBJDUMP} -h -S ${elf_file} > ${lst_file}
DEPENDS ${elf_file}
)
# create hex file
add_custom_command(
OUTPUT ${hex_file}
# COMMAND ${CMAKE_OBJCOPY} -j .text -j .data -O ihex ${elf_file} ${hex_file}
COMMAND ${CMAKE_OBJCOPY} -O ihex -R .eeprom -R .fuse -R .lock -R .signature ${elf_file} ${hex_file}
DEPENDS ${elf_file}
)
add_custom_command(
OUTPUT "print-size-${elf_file}"
COMMAND ${AVR_SIZE} ${elf_file}
DEPENDS ${elf_file}
)
add_custom_command(
OUTPUT "print-size-${hex_file}"
COMMAND ${AVR_SIZE} ${hex_file}
DEPENDS ${hex_file}
)
add_custom_target(copy_hex
COMMAND ${CMAKE_COMMAND} -E copy ${hex_file} ${CMAKE_SOURCE_DIR}/build/${hex_file}
DEPENDS ${hex_file}
)
# build the intel hex file for the device
add_custom_target(${target_name} ALL
DEPENDS ${hex_file} ${lst_file} "print-size-${elf_file}" "print-size-${hex_file}" copy_hex
)
set_target_properties(${target_name}
PROPERTIES
OUTPUT_NAME ${hex_file}
)
endmacro(add_qmk_executable)

View File

@@ -0,0 +1,16 @@
if(${USE_PICOLIBC})
add_compile_options(
--specs=picolibc.specs
)
add_compile_definitions(USE_PICOLIBC)
add_link_options(
-Wl,--defsym=__heap_start=__heap_base__,--defsym=__heap_end=__heap_end__
)
endif()
add_compile_options(
-march=${MCU_ARCH}
-mabi=${MCU_ABI}
-mcmodel=${MCU_CMODEL}
-mstrict-align
)

View File

@@ -0,0 +1,375 @@
{
"aliases": {
/*
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │ ² │ & │ é │ " │ ' │ ( │ § │ è │ ! │ ç │ à │ ) │ - │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │ │ A │ Z │ E │ R │ T │ Y │ U │ I │ O │ P │ ^ │ $ │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
* │ │ Q │ S │ D │ F │ G │ H │ J │ K │ L │ M │ ù │ µ │ │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
* │ │ < │ W │ X │ C │ V │ B │ N │ , │ ; │ : │ = │ │
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
* │ │ │ │ │ │ │ │ │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
"KC_GRV": {
"key": "BE_SUP2",
"label": "²",
}
"KC_1": {
"key": "BE_AMPR",
"label": "&",
}
"KC_2": {
"key": "BE_EACU",
"label": "é",
}
"KC_3": {
"key": "BE_DQUO",
"label": "\"",
}
"KC_4": {
"key": "BE_QUOT",
"label": "'",
}
"KC_5": {
"key": "BE_LPRN",
"label": "(",
}
"KC_6": {
"key": "BE_SECT",
"label": "§",
}
"KC_7": {
"key": "BE_EGRV",
"label": "è",
}
"KC_8": {
"key": "BE_EXLM",
"label": "!",
}
"KC_9": {
"key": "BE_CCED",
"label": "ç",
}
"KC_0": {
"key": "BE_AGRV",
"label": "à",
}
"KC_MINS": {
"key": "BE_RPRN",
"label": ")",
}
"KC_EQL": {
"key": "BE_MINS",
"label": "-",
}
"KC_Q": {
"key": "BE_A",
"label": "A",
}
"KC_W": {
"key": "BE_Z",
"label": "Z",
}
"KC_E": {
"key": "BE_E",
"label": "E",
}
"KC_R": {
"key": "BE_R",
"label": "R",
}
"KC_T": {
"key": "BE_T",
"label": "T",
}
"KC_Y": {
"key": "BE_Y",
"label": "Y",
}
"KC_U": {
"key": "BE_U",
"label": "U",
}
"KC_I": {
"key": "BE_I",
"label": "I",
}
"KC_O": {
"key": "BE_O",
"label": "O",
}
"KC_P": {
"key": "BE_P",
"label": "P",
}
"KC_LBRC": {
"key": "BE_DCIR",
"label": "^ (dead)",
}
"KC_RBRC": {
"key": "BE_DLR",
"label": "$",
}
"KC_A": {
"key": "BE_Q",
"label": "Q",
}
"KC_S": {
"key": "BE_S",
"label": "S",
}
"KC_D": {
"key": "BE_D",
"label": "D",
}
"KC_F": {
"key": "BE_F",
"label": "F",
}
"KC_G": {
"key": "BE_G",
"label": "G",
}
"KC_H": {
"key": "BE_H",
"label": "H",
}
"KC_J": {
"key": "BE_J",
"label": "J",
}
"KC_K": {
"key": "BE_K",
"label": "K",
}
"KC_L": {
"key": "BE_L",
"label": "L",
}
"KC_SCLN": {
"key": "BE_M",
"label": "M",
}
"KC_QUOT": {
"key": "BE_UGRV",
"label": "ù",
}
"KC_NUHS": {
"key": "BE_MICR",
"label": "µ",
}
"KC_NUBS": {
"key": "BE_LABK",
"label": "<",
}
"KC_Z": {
"key": "BE_W",
"label": "W",
}
"KC_X": {
"key": "BE_X",
"label": "X",
}
"KC_C": {
"key": "BE_C",
"label": "C",
}
"KC_V": {
"key": "BE_V",
"label": "V",
}
"KC_B": {
"key": "BE_B",
"label": "B",
}
"KC_N": {
"key": "BE_N",
"label": "N",
}
"KC_M": {
"key": "BE_COMM",
"label": ",",
}
"KC_COMM": {
"key": "BE_SCLN",
"label": ";",
}
"KC_DOT": {
"key": "BE_COLN",
"label": ":",
}
"KC_SLSH": {
"key": "BE_EQL",
"label": "=",
}
/* Shifted symbols
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │ ³ │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ ° │ _ │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │ │ │ │ │ │ │ │ │ │ │ │ ¨ │ * │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
* │ │ │ │ │ │ │ │ │ │ │ │ % │ £ │ │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
* │ │ > │ │ │ │ │ │ │ ? │ . │ / │ + │ │
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
* │ │ │ │ │ │ │ │ │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
"S(BE_SUP2)": {
"key": "BE_SUP3",
"label": "³",
}
"S(BE_AMPR)": {
"key": "BE_1",
"label": "1",
}
"S(BE_EACU)": {
"key": "BE_2",
"label": "2",
}
"S(BE_DQUO)": {
"key": "BE_3",
"label": "3",
}
"S(BE_QUOT)": {
"key": "BE_4",
"label": "4",
}
"S(BE_LPRN)": {
"key": "BE_5",
"label": "5",
}
"S(BE_SECT)": {
"key": "BE_6",
"label": "6",
}
"S(BE_EGRV)": {
"key": "BE_7",
"label": "7",
}
"S(BE_EXLM)": {
"key": "BE_8",
"label": "8",
}
"S(BE_CCED)": {
"key": "BE_9",
"label": "9",
}
"S(BE_AGRV)": {
"key": "BE_0",
"label": "0",
}
"S(BE_RPRN)": {
"key": "BE_DEG",
"label": "°",
}
"S(BE_MINS)": {
"key": "BE_UNDS",
"label": "_",
}
"S(BE_DCIR)": {
"key": "BE_DIAE",
"label": "¨ (dead)",
}
"S(BE_DLR)": {
"key": "BE_ASTR",
"label": "*",
}
"S(BE_UGRV)": {
"key": "BE_PERC",
"label": "%",
}
"S(BE_MICR)": {
"key": "BE_PND",
"label": "£",
}
"S(BE_LABK)": {
"key": "BE_RABK",
"label": ">",
}
"S(BE_COMM)": {
"key": "BE_QUES",
"label": "?",
}
"S(BE_SCLN)": {
"key": "BE_DOT",
"label": ".",
}
"S(BE_COLN)": {
"key": "BE_SLSH",
"label": "/",
}
"S(BE_EQL)": {
"key": "BE_PLUS",
"label": "+",
}
/* AltGr symbols
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │ │ | │ @ │ # │ │ │ ^ │ │ │ { │ } │ │ │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │ │ │ │ € │ │ │ │ │ │ │ │ [ │ ] │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
* │ │ │ │ │ │ │ │ │ │ │ │ ´ │ ` │ │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
* │ │ \ │ │ │ │ │ │ │ │ │ │ ~ │ │
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
* │ │ │ │ │ │ │ │ │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
"ALGR(BE_AMPR)": {
"key": "BE_PIPE",
"label": "|",
}
"ALGR(BE_EACU)": {
"key": "BE_AT",
"label": "@",
}
"ALGR(BE_DQUO)": {
"key": "BE_HASH",
"label": "#",
}
"ALGR(BE_SECT)": {
"key": "BE_CIRC",
"label": "^",
}
"ALGR(BE_CCED)": {
"key": "BE_LCBR",
"label": "{",
}
"ALGR(BE_AGRV)": {
"key": "BE_RCBR",
"label": "}",
}
"ALGR(BE_E)": {
"key": "BE_EURO",
"label": "€",
}
"ALGR(BE_DCIR)": {
"key": "BE_LBRC",
"label": "[",
}
"ALGR(BE_DLR)": {
"key": "BE_RBRC",
"label": "]",
}
"ALGR(BE_UGRV)": {
"key": "BE_ACUT",
"label": "´ (dead)",
}
"ALGR(BE_MICR)": {
"key": "BE_GRV",
"label": "` (dead)",
}
"ALGR(BE_LABK)": {
"key": "BE_BSLS",
"label": "\\",
}
"ALGR(BE_EQL)": {
"key": "BE_TILD",
"label": "~",
}
}
}

View File

@@ -0,0 +1,632 @@
{
"aliases": {
/*
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │ $ │ " │ « │ » │ ( │ ) │ @ │ + │ - │ / │ * │ = │ % │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │ │ B │ É │ P │ O │ È │ ^ │ V │ D │ L │ J │ Z │ W │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
* │ │ A │ U │ I │ E │ , │ C │ T │ S │ R │ N │ M │ Ç │ │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
* │ │ Ê │ À │ Y │ X │ . │ K │ ' │ Q │ G │ H │ F │ │
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
* │ │ │ │ │ │ │ │ │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
"KC_GRV": {
"key": "BP_DLR",
"label": "$",
}
"KC_1": {
"key": "BP_DQUO",
"label": "\"",
}
"KC_2": {
"key": "BP_LDAQ",
"label": "«",
}
"KC_3": {
"key": "BP_RDAQ",
"label": "»",
}
"KC_4": {
"key": "BP_LPRN",
"label": "(",
}
"KC_5": {
"key": "BP_RPRN",
"label": ")",
}
"KC_6": {
"key": "BP_AT",
"label": "@",
}
"KC_7": {
"key": "BP_PLUS",
"label": "+",
}
"KC_8": {
"key": "BP_MINS",
"label": "-",
}
"KC_9": {
"key": "BP_SLSH",
"label": "/",
}
"KC_0": {
"key": "BP_ASTR",
"label": "*",
}
"KC_MINS": {
"key": "BP_EQL",
"label": "=",
}
"KC_EQL": {
"key": "BP_PERC",
"label": "%",
}
"KC_Q": {
"key": "BP_B",
"label": "B",
}
"KC_W": {
"key": "BP_EACU",
"label": "É",
}
"KC_E": {
"key": "BP_P",
"label": "P",
}
"KC_R": {
"key": "BP_O",
"label": "O",
}
"KC_T": {
"key": "BP_EGRV",
"label": "È",
}
"KC_Y": {
"key": "BP_DCIR",
"label": "^ (dead)",
}
"KC_U": {
"key": "BP_V",
"label": "V",
}
"KC_I": {
"key": "BP_D",
"label": "D",
}
"KC_O": {
"key": "BP_L",
"label": "L",
}
"KC_P": {
"key": "BP_J",
"label": "J",
}
"KC_LBRC": {
"key": "BP_Z",
"label": "Z",
}
"KC_RBRC": {
"key": "BP_W",
"label": "W",
}
"KC_A": {
"key": "BP_A",
"label": "A",
}
"KC_S": {
"key": "BP_U",
"label": "U",
}
"KC_D": {
"key": "BP_I",
"label": "I",
}
"KC_F": {
"key": "BP_E",
"label": "E",
}
"KC_G": {
"key": "BP_COMM",
"label": ",",
}
"KC_H": {
"key": "BP_C",
"label": "C",
}
"KC_J": {
"key": "BP_T",
"label": "T",
}
"KC_K": {
"key": "BP_S",
"label": "S",
}
"KC_L": {
"key": "BP_R",
"label": "R",
}
"KC_SCLN": {
"key": "BP_N",
"label": "N",
}
"KC_QUOT": {
"key": "BP_M",
"label": "M",
}
"KC_BSLS": {
"key": "BP_CCED",
"label": "Ç",
}
"KC_NUBS": {
"key": "BP_ECIR",
"label": "Ê",
}
"KC_Z": {
"key": "BP_AGRV",
"label": "À",
}
"KC_X": {
"key": "BP_Y",
"label": "Y",
}
"KC_C": {
"key": "BP_X",
"label": "X",
}
"KC_V": {
"key": "BP_DOT",
"label": ".",
}
"KC_B": {
"key": "BP_K",
"label": "K",
}
"KC_N": {
"key": "BP_QUOT",
"label": "'",
}
"KC_M": {
"key": "BP_Q",
"label": "Q",
}
"KC_COMM": {
"key": "BP_G",
"label": "G",
}
"KC_DOT": {
"key": "BP_H",
"label": "H",
}
"KC_SLSH": {
"key": "BP_F",
"label": "F",
}
/* Shifted symbols
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │ # │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ ° │ ` │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │ │ │ │ │ │ │ ! │ │ │ │ │ │ │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
* │ │ │ │ │ │ ; │ │ │ │ │ │ │ │ │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
* │ │ │ │ │ │ : │ │ ? │ │ │ │ │ │
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
* │ │ │ │ │ │ │ │ │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
"S(BP_DLR)": {
"key": "BP_HASH",
"label": "#",
}
"S(BP_DQUO)": {
"key": "BP_1",
"label": "1",
}
"S(BP_LDAQ)": {
"key": "BP_2",
"label": "2",
}
"S(BP_RDAQ)": {
"key": "BP_3",
"label": "3",
}
"S(BP_LPRN)": {
"key": "BP_4",
"label": "4",
}
"S(BP_RPRN)": {
"key": "BP_5",
"label": "5",
}
"S(BP_AT)": {
"key": "BP_6",
"label": "6",
}
"S(BP_PLUS)": {
"key": "BP_7",
"label": "7",
}
"S(BP_MINS)": {
"key": "BP_8",
"label": "8",
}
"S(BP_SLSH)": {
"key": "BP_9",
"label": "9",
}
"S(BP_ASTR)": {
"key": "BP_0",
"label": "0",
}
"S(BP_EQL)": {
"key": "BP_DEG",
"label": "°",
}
"S(BP_PERC)": {
"key": "BP_GRV",
"label": "`",
}
"S(BP_DCIR)": {
"key": "BP_EXLM",
"label": "!",
}
"S(BP_COMM)": {
"key": "BP_SCLN",
"label": ";",
}
"S(BP_DOT)": {
"key": "BP_COLN",
"label": ":",
}
"S(BP_QUOT)": {
"key": "BP_QUES",
"label": "?",
}
"S(KC_SPC)": {
"key": "BP_NBSP",
"label": "(non-breaking space)",
}
/* AltGr symbols
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │ │ — │ < │ > │ [ │ ] │ ^ │ ± │ │ ÷ │ × │ ≠ │ ‰ │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │ │ | │ ´ │ & │ Œ │ ` │ ¡ │ ˇ │ Ð │ / │ IJ │ Ə │ ˘ │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
* │ │ Æ │ Ù │ ¨ │ € │ │ © │ Þ │ ẞ │ ® │ ~ │ ¯ │ ¸ │ │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
* │ │ │ \ │ { │ } │ … │ ~ │ ¿ │ ° │ │ † │ ˛ │ │
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
* │ │ │ │ _ │ │ │ │ │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
"ALGR(BP_DLR)": {
"key": "BP_NDSH",
"label": "",
}
"ALGR(BP_DQUO)": {
"key": "BP_MDSH",
"label": "—",
}
"ALGR(BP_LDAQ)": {
"key": "BP_LABK",
"label": "<",
}
"ALGR(BP_RDAQ)": {
"key": "BP_RABK",
"label": ">",
}
"ALGR(BP_LPRN)": {
"key": "BP_LBRC",
"label": "[",
}
"ALGR(BP_RPRN)": {
"key": "BP_RBRC",
"label": "]",
}
"ALGR(BP_AT)": {
"key": "BP_CIRC",
"label": "^",
}
"ALGR(BP_PLUS)": {
"key": "BP_PLMN",
"label": "±",
}
"ALGR(BP_MINS)": {
"key": "BP_MMNS",
"label": "",
}
"ALGR(BP_SLSH)": {
"key": "BP_DIV",
"label": "÷",
}
"ALGR(BP_ASTR)": {
"key": "BP_MUL",
"label": "×",
}
"ALGR(BP_EQL)": {
"key": "BP_NEQL",
"label": "≠",
}
"ALGR(BP_PERC)": {
"key": "BP_PERM",
"label": "‰",
}
"ALGR(BP_B)": {
"key": "BP_PIPE",
"label": "|",
}
"ALGR(BP_EACU)": {
"key": "BP_ACUT",
"label": "´ (dead)",
}
"ALGR(BP_P)": {
"key": "BP_AMPR",
"label": "&",
}
"ALGR(BP_O)": {
"key": "BP_OE",
"label": "Œ",
}
"ALGR(BP_EGRV)": {
"key": "BP_DGRV",
"label": "` (dead)",
}
"ALGR(BP_DCIR)": {
"key": "BP_IEXL",
"label": "¡",
}
"ALGR(BP_V)": {
"key": "BP_CARN",
"label": "ˇ (dead)",
}
"ALGR(BP_D)": {
"key": "BP_ETH",
"label": "Ð",
}
"ALGR(BP_L)": {
"key": "BP_DSLS",
"label": "/ (dead)",
}
"ALGR(BP_J)": {
"key": "BP_IJ",
"label": "IJ",
}
"ALGR(BP_Z)": {
"key": "BP_SCHW",
"label": "Ə",
}
"ALGR(BP_W)": {
"key": "BP_BREV",
"label": "˘ (dead)",
}
"ALGR(BP_A)": {
"key": "BP_AE",
"label": "Æ",
}
"ALGR(BP_U)": {
"key": "BP_UGRV",
"label": "Ù",
}
"ALGR(BP_I)": {
"key": "BP_DIAE",
"label": "¨ (dead)",
}
"ALGR(BP_E)": {
"key": "BP_EURO",
"label": "€",
}
"ALGR(BP_C)": {
"key": "BP_COPY",
"label": "©",
}
"ALGR(BP_T)": {
"key": "BP_THRN",
"label": "Þ",
}
"ALGR(BP_S)": {
"key": "BP_SS",
"label": "ẞ",
}
"ALGR(BP_R)": {
"key": "BP_REGD",
"label": "®",
}
"ALGR(BP_N)": {
"key": "BP_DTIL",
"label": "~ (dead)",
}
"ALGR(BP_M)": {
"key": "BP_MACR",
"label": "¯ (dead)",
}
"ALGR(BP_CCED)": {
"key": "BP_CEDL",
"label": "¸ (dead)",
}
"ALGR(BP_AGRV)": {
"key": "BP_BSLS",
"label": "\\",
}
"ALGR(BP_Y)": {
"key": "BP_LCBR",
"label": "{",
}
"ALGR(BP_X)": {
"key": "BP_RCBR",
"label": "}",
}
"ALGR(BP_DOT)": {
"key": "BP_ELLP",
"label": "…",
}
"ALGR(BP_K)": {
"key": "BP_TILD",
"label": "~",
}
"ALGR(BP_QUES)": {
"key": "BP_IQUE",
"label": "¿",
}
"ALGR(BP_Q)": {
"key": "BP_RNGA",
"label": "° (dead)",
}
"ALGR(BP_G)": {
"key": "BP_DGRK",
"label": "µ (dead Greek key)",
}
"ALGR(BP_H)": {
"key": "BP_DAGG",
"label": "†",
}
"ALGR(BP_F)": {
"key": "BP_OGON",
"label": "˛ (dead)",
}
"ALGR(KC_SPC)": {
"key": "BP_UNDS",
"label": "_",
}
/* Shift+AltGr symbols
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │ ¶ │ „ │ “ │ ” │ ≤ │ ≥ │ │ ¬ │ ¼ │ ½ │ ¾ │ │ ″ │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │ │ ¦ │ ˝ │ § │ │ │ │ │ │ │ │ │ │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
* │ │ │ │ ˙ │ ¤ │ ̛ │ ſ │ │ │ ™ │ │ º │ , │ │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
* │ │ │ │ │ · │ ⌨ │ ̉ │ ̣ │ │ ‡ │ ª │ │
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
* │ │ │ │ │ │ │ │ │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
"S(ALGR(BP_DLR))": {
"key": "BP_PARA",
"label": "¶",
}
"S(ALGR(BP_DQUO))": {
"key": "BP_DLQU",
"label": "„",
}
"S(ALGR(BP_LDAQ))": {
"key": "BP_LDQU",
"label": "“",
}
"S(ALGR(BP_RDAQ))": {
"key": "BP_RDQU",
"label": "”",
}
"S(ALGR(BP_LPRN))": {
"key": "BP_LEQL",
"label": "≤",
}
"S(ALGR(BP_RPRN))": {
"key": "BP_GEQL",
"label": "≥",
}
"S(ALGR(BP_PLUS))": {
"key": "BP_NOT",
"label": "¬",
}
"S(ALGR(BP_MINS))": {
"key": "BP_QRTR",
"label": "¼",
}
"S(ALGR(BP_SLSH))": {
"key": "BP_HALF",
"label": "½",
}
"S(ALGR(BP_ASTR))": {
"key": "BP_TQTR",
"label": "¾",
}
"S(ALGR(BP_EQL))": {
"key": "BP_PRIM",
"label": "",
}
"S(ALGR(BP_PERC))": {
"key": "BP_DPRM",
"label": "″",
}
"S(ALGR(BP_B))": {
"key": "BP_BRKP",
"label": "¦",
}
"S(ALGR(BP_EACU))": {
"key": "BP_DACU",
"label": "˝ (dead)",
}
"S(ALGR(BP_P))": {
"key": "BP_SECT",
"label": "§",
}
"S(ALGR(BP_I))": {
"key": "BP_DOTA",
"label": "˙ (dead)",
}
"S(ALGR(BP_E))": {
"key": "BP_CURR",
"label": "¤ (dead)",
}
"S(ALGR(BP_COMM))": {
"key": "BP_HORN",
"label": "̛ (dead)",
}
"S(ALGR(BP_C))": {
"key": "BP_LNGS",
"label": "ſ",
}
"S(ALGR(BP_R))": {
"key": "BP_TM",
"label": "™",
}
"S(ALGR(BP_M))": {
"key": "BP_MORD",
"label": "º",
}
"S(ALGR(BP_CCED))": {
"key": "BP_DCMM",
"label": ", (dead)",
}
"S(ALGR(BP_Y))": {
"key": "BP_LSQU",
"label": "",
}
"S(ALGR(BP_X))": {
"key": "BP_RSQU",
"label": "",
}
"S(ALGR(BP_DOT))": {
"key": "BP_MDDT",
"label": "·",
}
"S(ALGR(BP_K))": {
"key": "BP_KEYB",
"label": "⌨",
}
"S(ALGR(BP_QUOT))": {
"key": "BP_HOKA",
"label": "̉ (dead)",
}
"S(ALGR(BP_Q))": {
"key": "BP_DOTB",
"label": "̣ (dead)",
}
"S(ALGR(BP_H))": {
"key": "BP_DDAG",
"label": "‡",
}
"S(ALGR(BP_F))": {
"key": "BP_FORD",
"label": "ª",
}
"S(ALGR(KC_SPC))": {
"key": "BP_NNBS",
"label": "(narrow non-breaking space)",
}
}
}

View File

@@ -0,0 +1,379 @@
{
"aliases": {
/*
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │ ' │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │ │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ ´ │ [ │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
* │ │ A │ S │ D │ F │ G │ H │ J │ K │ L │ Ç │ ~ │ ] │ │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┤
* │ │ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ ; │ / │ │
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬──┴─┬────┤
* │ │ │ │ │ │ │ │ │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
"KC_GRV": {
"key": "BR_QUOT",
"label": "'",
}
"KC_1": {
"key": "BR_1",
"label": "1",
}
"KC_2": {
"key": "BR_2",
"label": "2",
}
"KC_3": {
"key": "BR_3",
"label": "3",
}
"KC_4": {
"key": "BR_4",
"label": "4",
}
"KC_5": {
"key": "BR_5",
"label": "5",
}
"KC_6": {
"key": "BR_6",
"label": "6",
}
"KC_7": {
"key": "BR_7",
"label": "7",
}
"KC_8": {
"key": "BR_8",
"label": "8",
}
"KC_9": {
"key": "BR_9",
"label": "9",
}
"KC_0": {
"key": "BR_0",
"label": "0",
}
"KC_MINS": {
"key": "BR_MINS",
"label": "-",
}
"KC_EQL": {
"key": "BR_EQL",
"label": "=",
}
"KC_Q": {
"key": "BR_Q",
"label": "Q",
}
"KC_W": {
"key": "BR_W",
"label": "W",
}
"KC_E": {
"key": "BR_E",
"label": "E",
}
"KC_R": {
"key": "BR_R",
"label": "R",
}
"KC_T": {
"key": "BR_T",
"label": "T",
}
"KC_Y": {
"key": "BR_Y",
"label": "Y",
}
"KC_U": {
"key": "BR_U",
"label": "U",
}
"KC_I": {
"key": "BR_I",
"label": "I",
}
"KC_O": {
"key": "BR_O",
"label": "O",
}
"KC_P": {
"key": "BR_P",
"label": "P",
}
"KC_LBRC": {
"key": "BR_ACUT",
"label": "´ (dead)",
}
"KC_RBRC": {
"key": "BR_LBRC",
"label": "[",
}
"KC_A": {
"key": "BR_A",
"label": "A",
}
"KC_S": {
"key": "BR_S",
"label": "S",
}
"KC_D": {
"key": "BR_D",
"label": "D",
}
"KC_F": {
"key": "BR_F",
"label": "F",
}
"KC_G": {
"key": "BR_G",
"label": "G",
}
"KC_H": {
"key": "BR_H",
"label": "H",
}
"KC_J": {
"key": "BR_J",
"label": "J",
}
"KC_K": {
"key": "BR_K",
"label": "K",
}
"KC_L": {
"key": "BR_L",
"label": "L",
}
"KC_SCLN": {
"key": "BR_CCED",
"label": "Ç",
}
"KC_QUOT": {
"key": "BR_TILD",
"label": "~ (dead)",
}
"KC_BSLS": {
"key": "BR_RBRC",
"label": "]",
}
"KC_NUBS": {
"key": "BR_BSLS",
"label": "\\",
}
"KC_Z": {
"key": "BR_Z",
"label": "Z",
}
"KC_X": {
"key": "BR_X",
"label": "X",
}
"KC_C": {
"key": "BR_C",
"label": "C",
}
"KC_V": {
"key": "BR_V",
"label": "V",
}
"KC_B": {
"key": "BR_B",
"label": "B",
}
"KC_N": {
"key": "BR_N",
"label": "N",
}
"KC_M": {
"key": "BR_M",
"label": "M",
}
"KC_COMM": {
"key": "BR_COMM",
"label": ",",
}
"KC_DOT": {
"key": "BR_DOT",
"label": ".",
}
"KC_SLSH": {
"key": "BR_SCLN",
"label": ";",
}
"KC_INT1": {
"key": "BR_SLSH",
"label": "/",
}
"KC_PCMM": {
"key": "BR_PDOT",
"label": ".",
}
"KC_PDOT": {
"key": "BR_PCMM",
"label": ",",
}
/* Shifted symbols
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │ " │ ! │ @ │ # │ $ │ % │ ¨ │ & │ * │ ( │ ) │ _ │ + │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │ │ │ │ │ │ │ │ │ │ │ │ ` │ { │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
* │ │ │ │ │ │ │ │ │ │ │ │ ^ │ } │ │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┤
* │ │ | │ │ │ │ │ │ │ │ < │ > │ : │ ? │ │
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬──┴─┬────┤
* │ │ │ │ │ │ │ │ │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
"S(BR_QUOT)": {
"key": "BR_DQUO",
"label": "\"",
}
"S(BR_1)": {
"key": "BR_EXLM",
"label": "!",
}
"S(BR_2)": {
"key": "BR_AT",
"label": "@",
}
"S(BR_3)": {
"key": "BR_HASH",
"label": "#",
}
"S(BR_4)": {
"key": "BR_DLR",
"label": "$",
}
"S(BR_5)": {
"key": "BR_PERC",
"label": "%",
}
"S(BR_6)": {
"key": "BR_DIAE",
"label": "¨ (dead)",
}
"S(BR_7)": {
"key": "BR_AMPR",
"label": "&",
}
"S(BR_8)": {
"key": "BR_ASTR",
"label": "*",
}
"S(BR_9)": {
"key": "BR_LPRN",
"label": "(",
}
"S(BR_0)": {
"key": "BR_RPRN",
"label": ")",
}
"S(BR_MINS)": {
"key": "BR_UNDS",
"label": "_",
}
"S(BR_EQL)": {
"key": "BR_PLUS",
"label": "+",
}
"S(BR_ACUT)": {
"key": "BR_GRV",
"label": "` (dead)",
}
"S(BR_LBRC)": {
"key": "BR_LCBR",
"label": "{",
}
"S(BR_TILD)": {
"key": "BR_CIRC",
"label": "^ (dead)",
}
"S(BR_RBRC)": {
"key": "BR_RCBR",
"label": "}",
}
"S(BR_BSLS)": {
"key": "BR_PIPE",
"label": "|",
}
"S(BR_COMM)": {
"key": "BR_LABK",
"label": "<",
}
"S(BR_DOT)": {
"key": "BR_RABK",
"label": ">",
}
"S(BR_SCLN)": {
"key": "BR_COLN",
"label": ":",
}
"S(BR_SLSH)": {
"key": "BR_QUES",
"label": "?",
}
/* AltGr symbols
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │ │ ¹ │ ² │ ³ │ £ │ ¢ │ ¬ │ │ │ │ │ │ § │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │ │ │ │ ° │ │ │ │ │ │ │ │ │ ª │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
* │ │ │ │ │ │ │ │ │ │ │ │ │ º │ │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┤
* │ │ │ │ │ ₢ │ │ │ │ │ │ │ │ │ │
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬──┴─┬────┤
* │ │ │ │ │ │ │ │ │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
"ALGR(BR_1)": {
"key": "BR_SUP1",
"label": "¹",
}
"ALGR(BR_2)": {
"key": "BR_SUP2",
"label": "²",
}
"ALGR(BR_3)": {
"key": "BR_SUP3",
"label": "³",
}
"ALGR(BR_4)": {
"key": "BR_PND",
"label": "£",
}
"ALGR(BR_5)": {
"key": "BR_CENT",
"label": "¢",
}
"ALGR(BR_6)": {
"key": "BR_NOT",
"label": "¬",
}
"ALGR(BR_EQL)": {
"key": "BR_SECT",
"label": "§",
}
"ALGR(BR_E)": {
"key": "BR_DEG",
"label": "°",
}
"ALGR(BR_LBRC)": {
"key": "BR_FORD",
"label": "ª",
}
"ALGR(BR_RBRC)": {
"key": "BR_MORD",
"label": "º",
}
"ALGR(BR_C)": {
"key": "BR_CRUZ",
"label": "₢",
}
}
}

View File

@@ -0,0 +1,641 @@
{
"aliases": {
/*
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │ / │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │ │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ ^ │ Ç │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
* │ │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ È │ À │ │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
* │ │ Ù │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ É │ │
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
* │ │ │ │ │ │ │ │ │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
"KC_GRV": {
"key": "CA_SLSH",
"label": "/",
}
"KC_1": {
"key": "CA_1",
"label": "1",
}
"KC_2": {
"key": "CA_2",
"label": "2",
}
"KC_3": {
"key": "CA_3",
"label": "3",
}
"KC_4": {
"key": "CA_4",
"label": "4",
}
"KC_5": {
"key": "CA_5",
"label": "5",
}
"KC_6": {
"key": "CA_6",
"label": "6",
}
"KC_7": {
"key": "CA_7",
"label": "7",
}
"KC_8": {
"key": "CA_8",
"label": "8",
}
"KC_9": {
"key": "CA_9",
"label": "9",
}
"KC_0": {
"key": "CA_0",
"label": "0",
}
"KC_MINS": {
"key": "CA_MINS",
"label": "-",
}
"KC_EQL": {
"key": "CA_EQL",
"label": "=",
}
"KC_Q": {
"key": "CA_Q",
"label": "Q",
}
"KC_W": {
"key": "CA_W",
"label": "W",
}
"KC_E": {
"key": "CA_E",
"label": "E",
}
"KC_R": {
"key": "CA_R",
"label": "R",
}
"KC_T": {
"key": "CA_T",
"label": "T",
}
"KC_Y": {
"key": "CA_Y",
"label": "Y",
}
"KC_U": {
"key": "CA_U",
"label": "U",
}
"KC_I": {
"key": "CA_I",
"label": "I",
}
"KC_O": {
"key": "CA_O",
"label": "O",
}
"KC_P": {
"key": "CA_P",
"label": "P",
}
"KC_LBRC": {
"key": "CA_CIRC",
"label": "^ (dead)",
}
"KC_RBRC": {
"key": "CA_CCED",
"label": "Ç",
}
"KC_A": {
"key": "CA_A",
"label": "A",
}
"KC_S": {
"key": "CA_S",
"label": "S",
}
"KC_D": {
"key": "CA_D",
"label": "D",
}
"KC_F": {
"key": "CA_F",
"label": "F",
}
"KC_G": {
"key": "CA_G",
"label": "G",
}
"KC_H": {
"key": "CA_H",
"label": "H",
}
"KC_J": {
"key": "CA_J",
"label": "J",
}
"KC_K": {
"key": "CA_K",
"label": "K",
}
"KC_L": {
"key": "CA_L",
"label": "L",
}
"KC_SCLN": {
"key": "CA_SCLN",
"label": ";",
}
"KC_QUOT": {
"key": "CA_EGRV",
"label": "É",
}
"KC_NUHS": {
"key": "CA_AGRV",
"label": "À",
}
"KC_NUBS": {
"key": "CA_UGRV",
"label": "Ù",
}
"KC_Z": {
"key": "CA_Z",
"label": "Z",
}
"KC_X": {
"key": "CA_X",
"label": "X",
}
"KC_C": {
"key": "CA_C",
"label": "C",
}
"KC_V": {
"key": "CA_V",
"label": "V",
}
"KC_B": {
"key": "CA_B",
"label": "B",
}
"KC_N": {
"key": "CA_N",
"label": "N",
}
"KC_M": {
"key": "CA_M",
"label": "M",
}
"KC_COMM": {
"key": "CA_COMM",
"label": ",",
}
"KC_DOT": {
"key": "CA_DOT",
"label": ".",
}
"KC_SLSH": {
"key": "CA_EACU",
"label": "É",
}
/* Shifted symbols
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │ \ │ ! │ @ │ # │ $ │ % │ ? │ & │ * │ ( │ ) │ _ │ + │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │ │ │ │ │ │ │ │ │ │ │ │ ¨ │ │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
* │ │ │ │ │ │ │ │ │ │ │ : │ │ │ │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
* │ │ │ │ │ │ │ │ │ │ ' │ " │ │ │
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
* │ │ │ │ │ │ │ │ │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
"S(CA_SLSH)": {
"key": "CA_BSLS",
"label": "\\",
}
"S(CA_1)": {
"key": "CA_EXLM",
"label": "!",
}
"S(CA_2)": {
"key": "CA_AT",
"label": "@",
}
"S(CA_3)": {
"key": "CA_HASH",
"label": "#",
}
"S(CA_4)": {
"key": "CA_DLR",
"label": "$",
}
"S(CA_5)": {
"key": "CA_PERC",
"label": "%",
}
"S(CA_6)": {
"key": "CA_QUES",
"label": "?",
}
"S(CA_7)": {
"key": "CA_AMPR",
"label": "&",
}
"S(CA_8)": {
"key": "CA_ASTR",
"label": "*",
}
"S(CA_9)": {
"key": "CA_LPRN",
"label": "(",
}
"S(CA_0)": {
"key": "CA_RPRN",
"label": ")",
}
"S(CA_MINS)": {
"key": "CA_UNDS",
"label": "_",
}
"S(CA_EQL)": {
"key": "CA_PLUS",
"label": "+",
}
"S(CA_CIRC)": {
"key": "CA_DIAE",
"label": "¨ (dead)",
}
"S(CA_SCLN)": {
"key": "CA_COLN",
"label": ":",
}
"S(CA_COMM)": {
"key": "CA_QUOT",
"label": "'",
}
"S(CA_DOT)": {
"key": "CA_DQUO",
"label": "\"",
}
/* AltGr symbols
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │ | │ │ │ │ ¤ │ │ │ { │ } │ [ │ ] │ │ ¬ │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │ │ │ │ € │ │ │ │ │ │ │ │ ` │ ~ │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
* │ │ │ │ │ │ │ │ │ │ │ ° │ │ │ │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
* │ │ │ « │ » │ │ │ │ │ │ < │ > │ │ │
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
* │ │ │ │ │ │ │ │ │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
"ALGR(CA_SLSH)": {
"key": "CA_PIPE",
"label": "|",
}
"ALGR(CA_4)": {
"key": "CA_CURR",
"label": "¤",
}
"ALGR(CA_7)": {
"key": "CA_LCBR",
"label": "{",
}
"ALGR(CA_8)": {
"key": "CA_RCBR",
"label": "}",
}
"ALGR(CA_9)": {
"key": "CA_LBRC",
"label": "[",
}
"ALGR(CA_0)": {
"key": "CA_RBRC",
"label": "]",
}
"ALGR(CA_EQL)": {
"key": "CA_NOT",
"label": "¬",
}
"ALGR(CA_E)": {
"key": "CA_EURO",
"label": "€",
}
"ALGR(CA_CIRC)": {
"key": "CA_GRV",
"label": "` (dead)",
}
"ALGR(CA_CCED)": {
"key": "CA_DTIL",
"label": "~ (dead)",
}
"ALGR(CA_SCLN)": {
"key": "CA_DEG",
"label": "°",
}
"ALGR(CA_Z)": {
"key": "CA_LDAQ",
"label": "«",
}
"ALGR(CA_X)": {
"key": "CA_RDAQ",
"label": "»",
}
"ALGR(CA_COMM)": {
"key": "CA_LABK",
"label": "<",
}
"ALGR(CA_DOT)": {
"key": "CA_RABK",
"label": ">",
}
/* Right Ctrl symbols
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │ │ ¹ │ ² │ ³ │ ¼ │ ½ │ ¾ │ │ │ │ │ │ ¸ │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │ │ Ω │ Ł │ Œ │ ¶ │ Ŧ │ ← │ ↓ │ → │ Ø │ Þ │ │ ~ │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
* │ │ Æ │ ß │ Ð │ │ Ŋ │ Ħ │ IJ │ ĸ │ Ŀ │ ´ │ │ │ │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
* │ │ │ │ │ ¢ │ “ │ ” │ ʼn │ μ │ ― │ ˙ │ │ │
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
* │ │ │ │ │ │ │ │ │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
"RCTL(CA_1)": {
"key": "CA_SUP1",
"label": "¹",
}
"RCTL(CA_2)": {
"key": "CA_SUP2",
"label": "²",
}
"RCTL(CA_3)": {
"key": "CA_SUP3",
"label": "³",
}
"RCTL(CA_4)": {
"key": "CA_QRTR",
"label": "¼",
}
"RCTL(CA_5)": {
"key": "CA_HALF",
"label": "½",
}
"RCTL(CA_6)": {
"key": "CA_TQTR",
"label": "¾",
}
"RCTL(CA_EQL)": {
"key": "CA_CEDL",
"label": "¸ (dead)",
}
"RCTL(CA_Q)": {
"key": "CA_OMEG",
"label": "Ω",
}
"RCTL(CA_W)": {
"key": "CA_LSTR",
"label": "Ł",
}
"RCTL(CA_E)": {
"key": "CA_OE",
"label": "Œ",
}
"RCTL(CA_R)": {
"key": "CA_PARA",
"label": "¶",
}
"RCTL(CA_T)": {
"key": "CA_TSTR",
"label": "Ŧ",
}
"RCTL(CA_Y)": {
"key": "CA_LARR",
"label": "←",
}
"RCTL(CA_U)": {
"key": "CA_DARR",
"label": "↓",
}
"RCTL(CA_I)": {
"key": "CA_RARR",
"label": "→",
}
"RCTL(CA_O)": {
"key": "CA_OSTR",
"label": "Ø",
}
"RCTL(CA_P)": {
"key": "CA_THRN",
"label": "Þ",
}
"RCTL(CA_CCED)": {
"key": "CA_TILD",
"label": "~",
}
"RCTL(CA_A)": {
"key": "CA_AE",
"label": "Æ",
}
"RCTL(CA_S)": {
"key": "CA_SS",
"label": "ß",
}
"RCTL(CA_D)": {
"key": "CA_ETH",
"label": "Ð",
}
"RCTL(CA_G)": {
"key": "CA_ENG",
"label": "Ŋ",
}
"RCTL(CA_H)": {
"key": "CA_HSTR",
"label": "Ħ",
}
"RCTL(CA_J)": {
"key": "CA_IJ",
"label": "IJ",
}
"RCTL(CA_K)": {
"key": "CA_KRA",
"label": "ĸ",
}
"RCTL(CA_L)": {
"key": "CA_LMDT",
"label": "Ŀ",
}
"RCTL(CA_SCLN)": {
"key": "CA_ACUT",
"label": "´ (dead)",
}
"RCTL(CA_C)": {
"key": "CA_CENT",
"label": "¢",
}
"RCTL(CA_V)": {
"key": "CA_LDQU",
"label": "“",
}
"RCTL(CA_B)": {
"key": "CA_RDQU",
"label": "”",
}
"RCTL(CA_N)": {
"key": "CA_APSN",
"label": "ʼn",
}
"RCTL(CA_M)": {
"key": "CA_MICR",
"label": "μ",
}
"RCTL(CA_COMM)": {
"key": "CA_HRZB",
"label": "―",
}
"RCTL(CA_DOT)": {
"key": "CA_DOTA",
"label": "˙ (dead)",
}
/* Shift+Right Ctrl symbols
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │ - │ ¡ │ │ £ │ │ ⅜ │ ⅝ │ ⅞ │ ™ │ ± │ │ ¿ │ ˛ │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │ │ │ │ │ ® │ │ ¥ │ ↑ │ ı │ │ │ ° │ ¯ │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
* │ │ │ § │ │ ª │ │ │ │ │ │ ˝ │ ˇ │ ˘ │ │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
* │ │ ¦ │ │ │ © │ │ ♪ │ º │ × │ ÷ │ │ │
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
* │ │ │ │ │ │ │ │ │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
"RCTL(S(CA_SLSH))": {
"key": "CA_SHYP",
"label": "­ (soft hyphen)",
}
"RCTL(S(CA_1))": {
"key": "CA_IEXL",
"label": "¡",
}
"RCTL(S(CA_3))": {
"key": "CA_PND",
"label": "£",
}
"RCTL(S(CA_5))": {
"key": "CA_TEIG",
"label": "⅜",
}
"RCTL(S(CA_6))": {
"key": "CA_FEIG",
"label": "⅝",
}
"RCTL(S(CA_7))": {
"key": "CA_SEIG",
"label": "⅞",
}
"RCTL(S(CA_8))": {
"key": "CA_TM",
"label": "™",
}
"RCTL(S(CA_9))": {
"key": "CA_PLMN",
"label": "±",
}
"RCTL(S(CA_MINS))": {
"key": "CA_IQUE",
"label": "¿",
}
"RCTL(S(CA_EQL))": {
"key": "CA_OGON",
"label": "˛ (dead)",
}
"RCTL(S(CA_R))": {
"key": "CA_REGD",
"label": "®",
}
"RCTL(S(CA_Y))": {
"key": "CA_YEN",
"label": "¥",
}
"RCTL(S(CA_U))": {
"key": "CA_UARR",
"label": "↑",
}
"RCTL(S(CA_I))": {
"key": "CA_DLSI",
"label": "ı",
}
"RCTL(S(CA_CIRC))": {
"key": "CA_RNGA",
"label": "° (dead)",
}
"RCTL(S(CA_CCED))": {
"key": "CA_MACR",
"label": "¯ (dead)",
}
"RCTL(S(CA_S))": {
"key": "CA_SECT",
"label": "§",
}
"RCTL(S(CA_F))": {
"key": "CA_FORD",
"label": "ª",
}
"RCTL(S(CA_SCLN))": {
"key": "CA_DACU",
"label": "˝ (dead)",
}
"RCTL(S(CA_EGRV))": {
"key": "CA_CARN",
"label": "ˇ (dead)",
}
"RCTL(S(CA_AGRV))": {
"key": "CA_BREV",
"label": "˘ (dead)",
}
"RCTL(S(CA_UGRV))": {
"key": "CA_BRKP",
"label": "¦",
}
"RCTL(S(CA_C))": {
"key": "CA_COPY",
"label": "©",
}
"RCTL(S(CA_V))": {
"key": "CA_LSQU",
"label": "",
}
"RCTL(S(CA_B))": {
"key": "CA_RSQU",
"label": "",
}
"RCTL(S(CA_N))": {
"key": "CA_ENOT",
"label": "♪",
}
"RCTL(S(CA_M))": {
"key": "CA_MORD",
"label": "º",
}
"RCTL(S(CA_COMM))": {
"key": "CA_MUL",
"label": "×",
}
"RCTL(S(CA_DOT))": {
"key": "CA_DIV",
"label": "÷",
}
}
}

View File

@@ -0,0 +1,302 @@
{
"aliases": {
/*
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │ │ Q │ W │ F │ P │ G │ J │ L │ U │ Y │ ; │ [ │ ] │ \ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
* │ │ A │ R │ S │ T │ D │ H │ N │ E │ I │ O │ ' │ │
* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤
* │ │ Z │ X │ C │ V │ B │ K │ M │ , │ . │ / │ │
* ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
* │ │ │ │ │ │ │ │ │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
"KC_GRV": {
"key": "CM_GRV",
"label": "`",
}
"KC_1": {
"key": "CM_1",
"label": "1",
}
"KC_2": {
"key": "CM_2",
"label": "2",
}
"KC_3": {
"key": "CM_3",
"label": "3",
}
"KC_4": {
"key": "CM_4",
"label": "4",
}
"KC_5": {
"key": "CM_5",
"label": "5",
}
"KC_6": {
"key": "CM_6",
"label": "6",
}
"KC_7": {
"key": "CM_7",
"label": "7",
}
"KC_8": {
"key": "CM_8",
"label": "8",
}
"KC_9": {
"key": "CM_9",
"label": "9",
}
"KC_0": {
"key": "CM_0",
"label": "0",
}
"KC_MINS": {
"key": "CM_MINS",
"label": "-",
}
"KC_EQL": {
"key": "CM_EQL",
"label": "=",
}
"KC_Q": {
"key": "CM_Q",
"label": "Q",
}
"KC_W": {
"key": "CM_W",
"label": "W",
}
"KC_E": {
"key": "CM_F",
"label": "F",
}
"KC_R": {
"key": "CM_P",
"label": "P",
}
"KC_T": {
"key": "CM_G",
"label": "G",
}
"KC_Y": {
"key": "CM_J",
"label": "J",
}
"KC_U": {
"key": "CM_L",
"label": "L",
}
"KC_I": {
"key": "CM_U",
"label": "U",
}
"KC_O": {
"key": "CM_Y",
"label": "Y",
}
"KC_P": {
"key": "CM_SCLN",
"label": ";",
}
"KC_LBRC": {
"key": "CM_LBRC",
"label": "[",
}
"KC_RBRC": {
"key": "CM_RBRC",
"label": "]",
}
"KC_BSLS": {
"key": "CM_BSLS",
"label": "\\",
}
"KC_A": {
"key": "CM_A",
"label": "A",
}
"KC_S": {
"key": "CM_R",
"label": "R",
}
"KC_D": {
"key": "CM_S",
"label": "S",
}
"KC_F": {
"key": "CM_T",
"label": "T",
}
"KC_G": {
"key": "CM_D",
"label": "D",
}
"KC_H": {
"key": "CM_H",
"label": "H",
}
"KC_J": {
"key": "CM_N",
"label": "N",
}
"KC_K": {
"key": "CM_E",
"label": "E",
}
"KC_L": {
"key": "CM_I",
"label": "I",
}
"KC_SCLN": {
"key": "CM_O",
"label": "O",
}
"KC_QUOT": {
"key": "CM_QUOT",
"label": "'",
}
"KC_Z": {
"key": "CM_Z",
"label": "Z",
}
"KC_X": {
"key": "CM_X",
"label": "X",
}
"KC_C": {
"key": "CM_C",
"label": "C",
}
"KC_V": {
"key": "CM_V",
"label": "V",
}
"KC_B": {
"key": "CM_B",
"label": "B",
}
"KC_N": {
"key": "CM_K",
"label": "K",
}
"KC_M": {
"key": "CM_M",
"label": "M",
}
"KC_COMM": {
"key": "CM_COMM",
"label": ",",
}
"KC_DOT": {
"key": "CM_DOT",
"label": ".",
}
"KC_SLSH": {
"key": "CM_SLSH",
"label": "/",
}
/* Shifted symbols
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │ ~ │ ! │ @ │ # │ $ │ % │ ^ │ & │ * │ ( │ ) │ _ │ + │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │ │ │ │ │ │ │ │ │ │ │ : │ { │ } │ | │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
* │ │ │ │ │ │ │ │ │ │ │ │ " │ │
* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤
* │ │ │ │ │ │ │ │ │ < │ > │ ? │ │
* ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
* │ │ │ │ │ │ │ │ │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
"S(CM_GRV)": {
"key": "CM_TILD",
"label": "~",
}
"S(CM_1)": {
"key": "CM_EXLM",
"label": "!",
}
"S(CM_2)": {
"key": "CM_AT",
"label": "@",
}
"S(CM_3)": {
"key": "CM_HASH",
"label": "#",
}
"S(CM_4)": {
"key": "CM_DLR",
"label": "$",
}
"S(CM_5)": {
"key": "CM_PERC",
"label": "%",
}
"S(CM_6)": {
"key": "CM_CIRC",
"label": "^",
}
"S(CM_7)": {
"key": "CM_AMPR",
"label": "&",
}
"S(CM_8)": {
"key": "CM_ASTR",
"label": "*",
}
"S(CM_9)": {
"key": "CM_LPRN",
"label": "(",
}
"S(CM_0)": {
"key": "CM_RPRN",
"label": ")",
}
"S(CM_MINS)": {
"key": "CM_UNDS",
"label": "_",
}
"S(CM_EQL)": {
"key": "CM_PLUS",
"label": "+",
}
"S(CM_SCLN)": {
"key": "CM_COLN",
"label": ":",
}
"S(CM_LBRC)": {
"key": "CM_LCBR",
"label": "{",
}
"S(CM_RBRC)": {
"key": "CM_RCBR",
"label": "}",
}
"S(CM_BSLS)": {
"key": "CM_PIPE",
"label": "|",
}
"S(CM_QUOT)": {
"key": "CM_DQUO",
"label": "\"",
}
"S(CM_COMM)": {
"key": "CM_LABK",
"label": "<",
}
"S(CM_DOT)": {
"key": "CM_RABK",
"label": ">",
}
"S(CM_SLSH)": {
"key": "CM_QUES",
"label": "?",
}
}
}

View File

@@ -0,0 +1,403 @@
{
"aliases": {
/*
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │ ¸ │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ ' │ + │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │ │ Q │ W │ E │ R │ T │ Z │ U │ I │ O │ P │ Š │ Đ │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
* │ │ A │ S │ D │ F │ G │ H │ J │ K │ L │ Č │ Ć │ Ž │ │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
* │ │ < │ Y │ X │ C │ V │ B │ N │ M │ , │ . │ - │ │
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
* │ │ │ │ │ │ │ │ │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
"KC_GRV": {
"key": "HR_CEDL",
"label": "¸ (dead)",
}
"KC_1": {
"key": "HR_1",
"label": "1",
}
"KC_2": {
"key": "HR_2",
"label": "2",
}
"KC_3": {
"key": "HR_3",
"label": "3",
}
"KC_4": {
"key": "HR_4",
"label": "4",
}
"KC_5": {
"key": "HR_5",
"label": "5",
}
"KC_6": {
"key": "HR_6",
"label": "6",
}
"KC_7": {
"key": "HR_7",
"label": "7",
}
"KC_8": {
"key": "HR_8",
"label": "8",
}
"KC_9": {
"key": "HR_9",
"label": "9",
}
"KC_0": {
"key": "HR_0",
"label": "0",
}
"KC_MINS": {
"key": "HR_QUOT",
"label": "'",
}
"KC_EQL": {
"key": "HR_PLUS",
"label": "+",
}
"KC_Q": {
"key": "HR_Q",
"label": "Q",
}
"KC_W": {
"key": "HR_W",
"label": "W",
}
"KC_E": {
"key": "HR_E",
"label": "E",
}
"KC_R": {
"key": "HR_R",
"label": "R",
}
"KC_T": {
"key": "HR_T",
"label": "T",
}
"KC_Y": {
"key": "HR_Z",
"label": "Z",
}
"KC_U": {
"key": "HR_U",
"label": "U",
}
"KC_I": {
"key": "HR_I",
"label": "I",
}
"KC_O": {
"key": "HR_O",
"label": "O",
}
"KC_P": {
"key": "HR_P",
"label": "P",
}
"KC_LBRC": {
"key": "HR_SCAR",
"label": "Š",
}
"KC_RBRC": {
"key": "HR_DSTR",
"label": "Đ",
}
"KC_A": {
"key": "HR_A",
"label": "A",
}
"KC_S": {
"key": "HR_S",
"label": "S",
}
"KC_D": {
"key": "HR_D",
"label": "D",
}
"KC_F": {
"key": "HR_F",
"label": "F",
}
"KC_G": {
"key": "HR_G",
"label": "G",
}
"KC_H": {
"key": "HR_H",
"label": "H",
}
"KC_J": {
"key": "HR_J",
"label": "J",
}
"KC_K": {
"key": "HR_K",
"label": "K",
}
"KC_L": {
"key": "HR_L",
"label": "L",
}
"KC_SCLN": {
"key": "HR_CCAR",
"label": "Č",
}
"KC_QUOT": {
"key": "HR_CACU",
"label": "Ć",
}
"KC_NUHS": {
"key": "HR_ZCAR",
"label": "Ž",
}
"KC_NUBS": {
"key": "HR_LABK",
"label": "<",
}
"KC_Z": {
"key": "HR_Y",
"label": "Y",
}
"KC_X": {
"key": "HR_X",
"label": "X",
}
"KC_C": {
"key": "HR_C",
"label": "C",
}
"KC_V": {
"key": "HR_V",
"label": "V",
}
"KC_B": {
"key": "HR_B",
"label": "B",
}
"KC_N": {
"key": "HR_N",
"label": "N",
}
"KC_M": {
"key": "HR_M",
"label": "M",
}
"KC_COMM": {
"key": "HR_COMM",
"label": ",",
}
"KC_DOT": {
"key": "HR_DOT",
"label": ".",
}
"KC_SLSH": {
"key": "HR_MINS",
"label": "-",
}
/* Shifted symbols
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │ ¨ │ ! │ " │ # │ $ │ % │ & │ / │ ( │ ) │ = │ ? │ * │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
* │ │ > │ │ │ │ │ │ │ │ ; │ : │ _ │ │
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
* │ │ │ │ │ │ │ │ │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
"S(HR_CEDL)": {
"key": "HR_DIAE",
"label": "¨ (dead)",
}
"S(HR_1)": {
"key": "HR_EXLM",
"label": "!",
}
"S(HR_2)": {
"key": "HR_DQUO",
"label": "\"",
}
"S(HR_3)": {
"key": "HR_HASH",
"label": "#",
}
"S(HR_4)": {
"key": "HR_DLR",
"label": "$",
}
"S(HR_5)": {
"key": "HR_PERC",
"label": "%",
}
"S(HR_6)": {
"key": "HR_AMPR",
"label": "&",
}
"S(HR_7)": {
"key": "HR_SLSH",
"label": "/",
}
"S(HR_8)": {
"key": "HR_LPRN",
"label": "(",
}
"S(HR_9)": {
"key": "HR_RPRN",
"label": ")",
}
"S(HR_0)": {
"key": "HR_EQL",
"label": "=",
}
"S(HR_QUOT)": {
"key": "HR_QUES",
"label": "?",
}
"S(HR_PLUS)": {
"key": "HR_ASTR",
"label": "*",
}
"S(HR_LABK)": {
"key": "HR_RABK",
"label": ">",
}
"S(HR_COMM)": {
"key": "HR_SCLN",
"label": ";",
}
"S(HR_DOT)": {
"key": "HR_COLN",
"label": ":",
}
"S(HR_MINS)": {
"key": "HR_UNDS",
"label": "_",
}
/* AltGr symbols
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │ │ ~ │ ˇ │ ^ │ ˘ │ ° │ ˛ │ ` │ ˙ │ ´ │ ˝ │ │ │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │ │ \ │ | │ € │ │ │ │ │ │ │ │ ÷ │ × │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
* │ │ │ │ │ [ │ ] │ │ │ ł │ Ł │ │ ß │ ¤ │ │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
* │ │ │ │ │ │ @ │ { │ } │ § │ │ │ │ │
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
* │ │ │ │ │ │ │ │ │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
"ALGR(HR_1)": {
"key": "HR_TILD",
"label": "~",
}
"ALGR(HR_2)": {
"key": "HR_CARN",
"label": "ˇ (dead)",
}
"ALGR(HR_3)": {
"key": "HR_CIRC",
"label": "^ (dead)",
}
"ALGR(HR_4)": {
"key": "HR_BREV",
"label": "˘ (dead)",
}
"ALGR(HR_5)": {
"key": "HR_RNGA",
"label": "° (dead)",
}
"ALGR(HR_6)": {
"key": "HR_OGON",
"label": "˛ (dead)",
}
"ALGR(HR_7)": {
"key": "HR_GRV",
"label": "`",
}
"ALGR(HR_8)": {
"key": "HR_DOTA",
"label": "˙ (dead)",
}
"ALGR(HR_9)": {
"key": "HR_ACUT",
"label": "´ (dead)",
}
"ALGR(HR_0)": {
"key": "HR_DACU",
"label": "˝ (dead)",
}
"ALGR(HR_Q)": {
"key": "HR_BSLS",
"label": "\\",
}
"ALGR(HR_W)": {
"key": "HR_PIPE",
"label": "|",
}
"ALGR(HR_E)": {
"key": "HR_EURO",
"label": "€",
}
"ALGR(HR_SCAR)": {
"key": "HR_DIV",
"label": "÷",
}
"ALGR(HR_DSTR)": {
"key": "HR_MUL",
"label": "×",
}
"ALGR(HR_F)": {
"key": "HR_LBRC",
"label": "[",
}
"ALGR(HR_G)": {
"key": "HR_RBRC",
"label": "]",
}
"ALGR(HR_K)": {
"key": "HR_LLST",
"label": "ł",
}
"ALGR(HR_L)": {
"key": "HR_CLST",
"label": "Ł",
}
"ALGR(HR_CACU)": {
"key": "HR_SS",
"label": "ß",
}
"ALGR(HR_ZCAR)": {
"key": "HR_CURR",
"label": "¤",
}
"ALGR(HR_V)": {
"key": "HR_AT",
"label": "@",
}
"ALGR(HR_B)": {
"key": "HR_LCBR",
"label": "{",
}
"ALGR(HR_N)": {
"key": "HR_RCBR",
"label": "}",
}
"ALGR(HR_M)": {
"key": "HR_SECT",
"label": "§",
}
}
}

View File

@@ -0,0 +1,435 @@
{
"aliases": {
/*
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │ ; │ + │ ě │ š │ č │ ř │ ž │ ý │ á │ í │ é │ = │ ´ │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │ │ Q │ W │ E │ R │ T │ Z │ U │ I │ O │ P │ ú │ ) │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
* │ │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ů │ § │ ¨ │ │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
* │ │ \ │ Y │ X │ C │ V │ B │ N │ M │ , │ . │ - │ │
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
* │ │ │ │ │ │ │ │ │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
"KC_GRV": {
"key": "CZ_SCLN",
"label": ";",
}
"KC_1": {
"key": "CZ_PLUS",
"label": "+",
}
"KC_2": {
"key": "CZ_ECAR",
"label": "ě",
}
"KC_3": {
"key": "CZ_SCAR",
"label": "š",
}
"KC_4": {
"key": "CZ_CCAR",
"label": "č",
}
"KC_5": {
"key": "CZ_RCAR",
"label": "ř",
}
"KC_6": {
"key": "CZ_ZCAR",
"label": "ž",
}
"KC_7": {
"key": "CZ_YACU",
"label": "ý",
}
"KC_8": {
"key": "CZ_AACU",
"label": "á",
}
"KC_9": {
"key": "CZ_IACU",
"label": "í",
}
"KC_0": {
"key": "CZ_EACU",
"label": "é",
}
"KC_MINS": {
"key": "CZ_EQL",
"label": "=",
}
"KC_EQL": {
"key": "CZ_ACUT",
"label": "´ (dead)",
}
"KC_Q": {
"key": "CZ_Q",
"label": "Q",
}
"KC_W": {
"key": "CZ_W",
"label": "W",
}
"KC_E": {
"key": "CZ_E",
"label": "E",
}
"KC_R": {
"key": "CZ_R",
"label": "R",
}
"KC_T": {
"key": "CZ_T",
"label": "T",
}
"KC_Y": {
"key": "CZ_Z",
"label": "Z",
}
"KC_U": {
"key": "CZ_U",
"label": "U",
}
"KC_I": {
"key": "CZ_I",
"label": "I",
}
"KC_O": {
"key": "CZ_O",
"label": "O",
}
"KC_P": {
"key": "CZ_P",
"label": "P",
}
"KC_LBRC": {
"key": "CZ_UACU",
"label": "ú",
}
"KC_RBRC": {
"key": "CZ_RPRN",
"label": ")",
}
"KC_A": {
"key": "CZ_A",
"label": "A",
}
"KC_S": {
"key": "CZ_S",
"label": "S",
}
"KC_D": {
"key": "CZ_D",
"label": "D",
}
"KC_F": {
"key": "CZ_F",
"label": "F",
}
"KC_G": {
"key": "CZ_G",
"label": "G",
}
"KC_H": {
"key": "CZ_H",
"label": "H",
}
"KC_J": {
"key": "CZ_J",
"label": "J",
}
"KC_K": {
"key": "CZ_K",
"label": "K",
}
"KC_L": {
"key": "CZ_L",
"label": "L",
}
"KC_SCLN": {
"key": "CZ_URNG",
"label": "ů",
}
"KC_QUOT": {
"key": "CZ_SECT",
"label": "§",
}
"KC_NUHS": {
"key": "CZ_DIAE",
"label": "¨ (dead)",
}
"KC_NUBS": {
"key": "CZ_BSLS",
"label": "\\",
}
"KC_Z": {
"key": "CZ_Y",
"label": "Y",
}
"KC_X": {
"key": "CZ_X",
"label": "X",
}
"KC_C": {
"key": "CZ_C",
"label": "C",
}
"KC_V": {
"key": "CZ_V",
"label": "V",
}
"KC_B": {
"key": "CZ_B",
"label": "B",
}
"KC_N": {
"key": "CZ_N",
"label": "N",
}
"KC_M": {
"key": "CZ_M",
"label": "M",
}
"KC_COMM": {
"key": "CZ_COMM",
"label": ",",
}
"KC_DOT": {
"key": "CZ_DOT",
"label": ".",
}
"KC_SLSH": {
"key": "CZ_MINS",
"label": "-",
}
/* Shifted symbols
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │ ° │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ % │ ˇ │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │ │ │ │ │ │ │ │ │ │ │ │ / │ ( │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
* │ │ │ │ │ │ │ │ │ │ │ " │ ! │ ' │ │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
* │ │ | │ │ │ │ │ │ │ │ ? │ : │ _ │ │
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
* │ │ │ │ │ │ │ │ │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
"S(CZ_SCLN)": {
"key": "CZ_RNGA",
"label": "° (dead)",
}
"S(CZ_PLUS)": {
"key": "CZ_1",
"label": "1",
}
"S(CZ_ECAR)": {
"key": "CZ_2",
"label": "2",
}
"S(CZ_SCAR)": {
"key": "CZ_3",
"label": "3",
}
"S(CZ_CCAR)": {
"key": "CZ_4",
"label": "4",
}
"S(CZ_RCAR)": {
"key": "CZ_5",
"label": "5",
}
"S(CZ_ZCAR)": {
"key": "CZ_6",
"label": "6",
}
"S(CZ_YACU)": {
"key": "CZ_7",
"label": "7",
}
"S(CZ_AACU)": {
"key": "CZ_8",
"label": "8",
}
"S(CZ_IACU)": {
"key": "CZ_9",
"label": "9",
}
"S(CZ_EACU)": {
"key": "CZ_0",
"label": "0",
}
"S(CZ_EQL)": {
"key": "CZ_PERC",
"label": "%",
}
"S(CZ_ACUT)": {
"key": "CZ_CARN",
"label": "ˇ (dead)",
}
"S(CZ_UACU)": {
"key": "CZ_SLSH",
"label": "/",
}
"S(CZ_RPRN)": {
"key": "CZ_LPRN",
"label": "(",
}
"S(CZ_URNG)": {
"key": "CZ_DQUO",
"label": "\"",
}
"S(CZ_SECT)": {
"key": "CZ_EXLM",
"label": "!",
}
"S(CZ_DIAE)": {
"key": "CZ_QUOT",
"label": "'",
}
"S(CZ_BSLS)": {
"key": "CZ_PIPE",
"label": "|",
}
"S(CZ_COMM)": {
"key": "CZ_QUES",
"label": "?",
}
"S(CZ_DOT)": {
"key": "CZ_COLN",
"label": ":",
}
"S(CZ_MINS)": {
"key": "CZ_UNDS",
"label": "_",
}
/* AltGr symbols
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │ │ ~ │ │ ^ │ ˘ │ │ ˛ │ ` │ ˙ │ │ ˝ │ │ ¸ │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │ │ │ │ € │ │ │ │ │ │ │ │ ÷ │ × │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
* │ │ │ đ │ Đ │ [ │ ] │ │ │ ł │ Ł │ $ │ ß │ ¤ │ │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
* │ │ │ │ # │ & │ @ │ { │ } │ │ < │ > │ * │ │
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
* │ │ │ │ │ │ │ │ │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
"ALGR(CZ_PLUS)": {
"key": "CZ_TILD",
"label": "~",
}
"ALGR(CZ_SCAR)": {
"key": "CZ_CIRC",
"label": "^ (dead)",
}
"ALGR(CZ_CCAR)": {
"key": "CZ_BREV",
"label": "˘ (dead)",
}
"ALGR(CZ_ZCAR)": {
"key": "CZ_OGON",
"label": "˛ (dead)",
}
"ALGR(CZ_YACU)": {
"key": "CZ_GRV",
"label": "` (dead)",
}
"ALGR(CZ_AACU)": {
"key": "CZ_DOTA",
"label": "˙ (dead)",
}
"ALGR(CZ_EACU)": {
"key": "CZ_DACU",
"label": "˝ (dead)",
}
"ALGR(CZ_ACUT)": {
"key": "CZ_CEDL",
"label": "¸ (dead)",
}
"ALGR(CZ_E)": {
"key": "CZ_EURO",
"label": "€",
}
"ALGR(CZ_UACU)": {
"key": "CZ_DIV",
"label": "÷",
}
"ALGR(CZ_RPRN)": {
"key": "CZ_MUL",
"label": "×",
}
"ALGR(CZ_S)": {
"key": "CZ_LDST",
"label": "đ",
}
"ALGR(CZ_D)": {
"key": "CZ_CDST",
"label": "Đ",
}
"ALGR(CZ_F)": {
"key": "CZ_LBRC",
"label": "[",
}
"ALGR(CZ_G)": {
"key": "CZ_RBRC",
"label": "]",
}
"ALGR(CZ_K)": {
"key": "CZ_LLST",
"label": "ł",
}
"ALGR(CZ_L)": {
"key": "CZ_CLST",
"label": "Ł",
}
"ALGR(CZ_URNG)": {
"key": "CZ_DLR",
"label": "$",
}
"ALGR(CZ_SECT)": {
"key": "CZ_SS",
"label": "ß",
}
"ALGR(CZ_DIAE)": {
"key": "CZ_CURR",
"label": "¤",
}
"ALGR(CZ_X)": {
"key": "CZ_HASH",
"label": "#",
}
"ALGR(CZ_C)": {
"key": "CZ_AMPR",
"label": "&",
}
"ALGR(CZ_V)": {
"key": "CZ_AT",
"label": "@",
}
"ALGR(CZ_B)": {
"key": "CZ_LCBR",
"label": "{",
}
"ALGR(CZ_N)": {
"key": "CZ_RCBR",
"label": "}",
}
"ALGR(CZ_COMM)": {
"key": "CZ_LABK",
"label": "<",
}
"ALGR(CZ_DOT)": {
"key": "CZ_RABK",
"label": ">",
}
"ALGR(CZ_MINS)": {
"key": "CZ_ASTR",
"label": "*",
}
}
}

View File

@@ -0,0 +1,359 @@
{
"aliases": {
/*
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │ ½ │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ + │ ´ │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │ │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ Å │ ¨ │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
* │ │ A │ S │ D │ F │ G │ H │ J │ K │ L │ Æ │ Ø │ ' │ │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
* │ │ < │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ - │ │
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
* │ │ │ │ │ │ │ │ │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
"KC_GRV": {
"key": "DK_HALF",
"label": "½",
}
"KC_1": {
"key": "DK_1",
"label": "1",
}
"KC_2": {
"key": "DK_2",
"label": "2",
}
"KC_3": {
"key": "DK_3",
"label": "3",
}
"KC_4": {
"key": "DK_4",
"label": "4",
}
"KC_5": {
"key": "DK_5",
"label": "5",
}
"KC_6": {
"key": "DK_6",
"label": "6",
}
"KC_7": {
"key": "DK_7",
"label": "7",
}
"KC_8": {
"key": "DK_8",
"label": "8",
}
"KC_9": {
"key": "DK_9",
"label": "9",
}
"KC_0": {
"key": "DK_0",
"label": "0",
}
"KC_MINS": {
"key": "DK_PLUS",
"label": "+",
}
"KC_EQL": {
"key": "DK_ACUT",
"label": "´ (dead)",
}
"KC_Q": {
"key": "DK_Q",
"label": "Q",
}
"KC_W": {
"key": "DK_W",
"label": "W",
}
"KC_E": {
"key": "DK_E",
"label": "E",
}
"KC_R": {
"key": "DK_R",
"label": "R",
}
"KC_T": {
"key": "DK_T",
"label": "T",
}
"KC_Y": {
"key": "DK_Y",
"label": "Y",
}
"KC_U": {
"key": "DK_U",
"label": "U",
}
"KC_I": {
"key": "DK_I",
"label": "I",
}
"KC_O": {
"key": "DK_O",
"label": "O",
}
"KC_P": {
"key": "DK_P",
"label": "P",
}
"KC_LBRC": {
"key": "DK_ARNG",
"label": "Å",
}
"KC_RBRC": {
"key": "DK_DIAE",
"label": "¨ (dead)",
}
"KC_A": {
"key": "DK_A",
"label": "A",
}
"KC_S": {
"key": "DK_S",
"label": "S",
}
"KC_D": {
"key": "DK_D",
"label": "D",
}
"KC_F": {
"key": "DK_F",
"label": "F",
}
"KC_G": {
"key": "DK_G",
"label": "G",
}
"KC_H": {
"key": "DK_H",
"label": "H",
}
"KC_J": {
"key": "DK_J",
"label": "J",
}
"KC_K": {
"key": "DK_K",
"label": "K",
}
"KC_L": {
"key": "DK_L",
"label": "L",
}
"KC_SCLN": {
"key": "DK_AE",
"label": "Æ",
}
"KC_QUOT": {
"key": "DK_OSTR",
"label": "Ø",
}
"KC_NUHS": {
"key": "DK_QUOT",
"label": "'",
}
"KC_NUBS": {
"key": "DK_LABK",
"label": "<",
}
"KC_Z": {
"key": "DK_Z",
"label": "Z",
}
"KC_X": {
"key": "DK_X",
"label": "X",
}
"KC_C": {
"key": "DK_C",
"label": "C",
}
"KC_V": {
"key": "DK_V",
"label": "V",
}
"KC_B": {
"key": "DK_B",
"label": "B",
}
"KC_N": {
"key": "DK_N",
"label": "N",
}
"KC_M": {
"key": "DK_M",
"label": "M",
}
"KC_COMM": {
"key": "DK_COMM",
"label": ",",
}
"KC_DOT": {
"key": "DK_DOT",
"label": ".",
}
"KC_SLSH": {
"key": "DK_MINS",
"label": "-",
}
/* Shifted symbols
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │ § │ ! │ " │ # │ ¤ │ % │ & │ / │ ( │ ) │ = │ ? │ ` │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │ │ │ │ │ │ │ │ │ │ │ │ │ ^ │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
* │ │ │ │ │ │ │ │ │ │ │ │ │ * │ │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
* │ │ > │ │ │ │ │ │ │ │ ; │ : │ _ │ │
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
* │ │ │ │ │ │ │ │ │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
"S(DK_HALF)": {
"key": "DK_SECT",
"label": "§",
}
"S(DK_1)": {
"key": "DK_EXLM",
"label": "!",
}
"S(DK_2)": {
"key": "DK_DQUO",
"label": "\"",
}
"S(DK_3)": {
"key": "DK_HASH",
"label": "#",
}
"S(DK_4)": {
"key": "DK_CURR",
"label": "¤",
}
"S(DK_5)": {
"key": "DK_PERC",
"label": "%",
}
"S(DK_6)": {
"key": "DK_AMPR",
"label": "&",
}
"S(DK_7)": {
"key": "DK_SLSH",
"label": "/",
}
"S(DK_8)": {
"key": "DK_LPRN",
"label": "(",
}
"S(DK_9)": {
"key": "DK_RPRN",
"label": ")",
}
"S(DK_0)": {
"key": "DK_EQL",
"label": "=",
}
"S(DK_PLUS)": {
"key": "DK_QUES",
"label": "?",
}
"S(DK_ACUT)": {
"key": "DK_GRV",
"label": "` (dead)",
}
"S(DK_DIAE)": {
"key": "DK_CIRC",
"label": "^ (dead)",
}
"S(DK_QUOT)": {
"key": "DK_ASTR",
"label": "*",
}
"S(DK_LABK)": {
"key": "DK_RABK",
"label": ">",
}
"S(DK_COMM)": {
"key": "DK_SCLN",
"label": ";",
}
"S(DK_DOT)": {
"key": "DK_COLN",
"label": ":",
}
"S(DK_MINS)": {
"key": "DK_UNDS",
"label": "_",
}
/* AltGr symbols
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │ │ │ @ │ £ │ $ │ € │ │ { │ [ │ ] │ } │ │ | │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │ │ │ │ │ │ │ │ │ │ │ │ │ ~ │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
* │ │ \ │ │ │ │ │ │ │ µ │ │ │ │ │
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
* │ │ │ │ │ │ │ │ │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
"ALGR(DK_2)": {
"key": "DK_AT",
"label": "@",
}
"ALGR(DK_3)": {
"key": "DK_PND",
"label": "£",
}
"ALGR(DK_4)": {
"key": "DK_DLR",
"label": "$",
}
"ALGR(DK_5)": {
"key": "DK_EURO",
"label": "€",
}
"ALGR(DK_7)": {
"key": "DK_LCBR",
"label": "{",
}
"ALGR(DK_8)": {
"key": "DK_LBRC",
"label": "[",
}
"ALGR(DK_9)": {
"key": "DK_RBRC",
"label": "]",
}
"ALGR(DK_0)": {
"key": "DK_RCBR",
"label": "}",
}
"ALGR(DK_ACUT)": {
"key": "DK_PIPE",
"label": "|",
}
"ALGR(DK_DIAE)": {
"key": "DK_TILD",
"label": "~ (dead)",
}
"ALGR(DK_LABK)": {
"key": "DK_BSLS",
"label": "\\",
}
"ALGR(DK_M)": {
"key": "DK_MICR",
"label": "µ",
}
}
}

View File

@@ -0,0 +1,302 @@
{
"aliases": {
/*
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ [ │ ] │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │ │ ' │ , │ . │ P │ Y │ F │ G │ C │ R │ L │ / │ = │ \ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
* │ │ A │ O │ E │ U │ I │ D │ H │ T │ N │ S │ - │ │
* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤
* │ │ ; │ Q │ J │ K │ X │ B │ M │ W │ V │ Z │ │
* ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
* │ │ │ │ │ │ │ │ │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
"KC_GRV": {
"key": "DV_GRV",
"label": "`",
}
"KC_1": {
"key": "DV_1",
"label": "1",
}
"KC_2": {
"key": "DV_2",
"label": "2",
}
"KC_3": {
"key": "DV_3",
"label": "3",
}
"KC_4": {
"key": "DV_4",
"label": "4",
}
"KC_5": {
"key": "DV_5",
"label": "5",
}
"KC_6": {
"key": "DV_6",
"label": "6",
}
"KC_7": {
"key": "DV_7",
"label": "7",
}
"KC_8": {
"key": "DV_8",
"label": "8",
}
"KC_9": {
"key": "DV_9",
"label": "9",
}
"KC_0": {
"key": "DV_0",
"label": "0",
}
"KC_MINS": {
"key": "DV_LBRC",
"label": "[",
}
"KC_EQL": {
"key": "DV_RBRC",
"label": "]",
}
"KC_Q": {
"key": "DV_QUOT",
"label": "'",
}
"KC_W": {
"key": "DV_COMM",
"label": ",",
}
"KC_E": {
"key": "DV_DOT",
"label": ".",
}
"KC_R": {
"key": "DV_P",
"label": "P",
}
"KC_T": {
"key": "DV_Y",
"label": "Y",
}
"KC_Y": {
"key": "DV_F",
"label": "F",
}
"KC_U": {
"key": "DV_G",
"label": "G",
}
"KC_I": {
"key": "DV_C",
"label": "C",
}
"KC_O": {
"key": "DV_R",
"label": "R",
}
"KC_P": {
"key": "DV_L",
"label": "L",
}
"KC_LBRC": {
"key": "DV_SLSH",
"label": "/",
}
"KC_RBRC": {
"key": "DV_EQL",
"label": "=",
}
"KC_BSLS": {
"key": "DV_BSLS",
"label": "\\",
}
"KC_A": {
"key": "DV_A",
"label": "A",
}
"KC_S": {
"key": "DV_O",
"label": "O",
}
"KC_D": {
"key": "DV_E",
"label": "E",
}
"KC_F": {
"key": "DV_U",
"label": "U",
}
"KC_G": {
"key": "DV_I",
"label": "I",
}
"KC_H": {
"key": "DV_D",
"label": "D",
}
"KC_J": {
"key": "DV_H",
"label": "H",
}
"KC_K": {
"key": "DV_T",
"label": "T",
}
"KC_L": {
"key": "DV_N",
"label": "N",
}
"KC_SCLN": {
"key": "DV_S",
"label": "S",
}
"KC_QUOT": {
"key": "DV_MINS",
"label": "-",
}
"KC_Z": {
"key": "DV_SCLN",
"label": ";",
}
"KC_X": {
"key": "DV_Q",
"label": "Q",
}
"KC_C": {
"key": "DV_J",
"label": "J",
}
"KC_V": {
"key": "DV_K",
"label": "K",
}
"KC_B": {
"key": "DV_X",
"label": "X",
}
"KC_N": {
"key": "DV_B",
"label": "B",
}
"KC_M": {
"key": "DV_M",
"label": "M",
}
"KC_COMM": {
"key": "DV_W",
"label": "W",
}
"KC_DOT": {
"key": "DV_V",
"label": "V",
}
"KC_SLSH": {
"key": "DV_Z",
"label": "Z",
}
/* Shifted symbols
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │ ~ │ ! │ @ │ # │ $ │ % │ ^ │ & │ * │ ( │ ) │ { │ } │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │ │ " │ < │ > │ │ │ │ │ │ │ │ ? │ + │ | │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
* │ │ │ │ │ │ │ │ │ │ │ │ _ │ │
* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤
* │ │ : │ │ │ │ │ │ │ │ │ │ │
* ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
* │ │ │ │ │ │ │ │ │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
"S(DV_GRV)": {
"key": "DV_TILD",
"label": "~",
}
"S(DV_1)": {
"key": "DV_EXLM",
"label": "!",
}
"S(DV_2)": {
"key": "DV_AT",
"label": "@",
}
"S(DV_3)": {
"key": "DV_HASH",
"label": "#",
}
"S(DV_4)": {
"key": "DV_DLR",
"label": "$",
}
"S(DV_5)": {
"key": "DV_PERC",
"label": "%",
}
"S(DV_6)": {
"key": "DV_CIRC",
"label": "^",
}
"S(DV_7)": {
"key": "DV_AMPR",
"label": "&",
}
"S(DV_8)": {
"key": "DV_ASTR",
"label": "*",
}
"S(DV_9)": {
"key": "DV_LPRN",
"label": "(",
}
"S(DV_0)": {
"key": "DV_RPRN",
"label": ")",
}
"S(DV_LBRC)": {
"key": "DV_LCBR",
"label": "{",
}
"S(DV_RBRC)": {
"key": "DV_RCBR",
"label": "}",
}
"S(DV_QUOT)": {
"key": "DV_DQUO",
"label": "\"",
}
"S(DV_COMM)": {
"key": "DV_LABK",
"label": "<",
}
"S(DV_DOT)": {
"key": "DV_RABK",
"label": ">",
}
"S(DV_SLSH)": {
"key": "DV_QUES",
"label": "?",
}
"S(DV_EQL)": {
"key": "DV_PLUS",
"label": "+",
}
"S(DV_BSLS)": {
"key": "DV_PIPE",
"label": "|",
}
"S(DV_MINS)": {
"key": "DV_UNDS",
"label": "_",
}
"S(DV_SCLN)": {
"key": "DV_COLN",
"label": ":",
}
}
}

View File

@@ -0,0 +1,317 @@
{
"aliases": {
/* Dvorak for the French language
* Version: 2
*
* The layout is designed by Francis Leboutte <dvorak-fr@algo.be>
*
* Source: https://algo.be/ergo/dvorak-fr.html
*/
/*
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │ « │ » │ / │ - │ è │ \ │ ^ │ ( │ ` │ ) │ _ │ [ │ ] │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │ │ : │ ' │ é │ G │ . │ H │ V │ C │ M │ K │ Z │ ¨ │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
* │ │ O │ A │ U │ E │ B │ F │ S │ T │ N │ D │ W │ ~ │ │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
* │ │ à │ ; │ Q │ , │ I │ Y │ X │ R │ L │ P │ J │ │
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
* │ │ │ │ │ │ │ │ │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
"KC_GRV": {
"key": "DV_LDAQ",
"label": "«",
}
"KC_1": {
"key": "DV_RDAQ",
"label": "»",
}
"KC_2": {
"key": "DV_SLSH",
"label": "/",
}
"KC_3": {
"key": "DV_MINS",
"label": "-",
}
"KC_4": {
"key": "DV_EGRV",
"label": "è",
}
"KC_5": {
"key": "DV_BSLS",
"label": "\\",
}
"KC_6": {
"key": "DV_CIRC",
"label": "^ (dead)",
}
"KC_7": {
"key": "DV_LPRN",
"label": "(",
}
"KC_8": {
"key": "DV_GRV",
"label": "` (dead)",
}
"KC_9": {
"key": "DV_RPRN",
"label": ")",
}
"KC_0": {
"key": "DV_UNDS",
"label": "_",
}
"KC_MINS": {
"key": "DV_LBRC",
"label": "[",
}
"KC_EQL": {
"key": "DV_RBRC",
"label": "]",
}
"KC_Q": {
"key": "DV_COLN",
"label": ":",
}
"KC_W": {
"key": "DV_QUOT",
"label": "'",
}
"KC_E": {
"key": "DV_EACU",
"label": "é",
}
"KC_R": {
"key": "DV_G",
"label": "G",
}
"KC_T": {
"key": "DV_DOT",
"label": ".",
}
"KC_Y": {
"key": "DV_H",
"label": "H",
}
"KC_U": {
"key": "DV_V",
"label": "V",
}
"KC_I": {
"key": "DV_C",
"label": "C",
}
"KC_O": {
"key": "DV_M",
"label": "M",
}
"KC_P": {
"key": "DV_K",
"label": "K",
}
"KC_LBRC": {
"key": "DV_Z",
"label": "Z",
}
"KC_RBRC": {
"key": "DV_DIAE",
"label": "¨ (dead)",
}
"KC_A": {
"key": "DV_O",
"label": "O",
}
"KC_S": {
"key": "DV_A",
"label": "A",
}
"KC_D": {
"key": "DV_U",
"label": "U",
}
"KC_F": {
"key": "DV_E",
"label": "E",
}
"KC_G": {
"key": "DV_B",
"label": "B",
}
"KC_H": {
"key": "DV_F",
"label": "F",
}
"KC_J": {
"key": "DV_S",
"label": "S",
}
"KC_K": {
"key": "DV_T",
"label": "T",
}
"KC_L": {
"key": "DV_N",
"label": "N",
}
"KC_SCLN": {
"key": "DV_D",
"label": "D",
}
"KC_QUOT": {
"key": "DV_W",
"label": "W",
}
"KC_NUHS": {
"key": "DV_TILD",
"label": "~ (dead)",
}
"KC_NUBS": {
"key": "DV_AGRV",
"label": "à",
}
"KC_Z": {
"key": "DV_SCLN",
"label": ";",
}
"KC_X": {
"key": "DV_Q",
"label": "Q",
}
"KC_C": {
"key": "DV_COMM",
"label": ",",
}
"KC_V": {
"key": "DV_I",
"label": "I",
}
"KC_B": {
"key": "DV_Y",
"label": "Y",
}
"KC_N": {
"key": "DV_X",
"label": "X",
}
"KC_M": {
"key": "DV_R",
"label": "R",
}
"KC_COMM": {
"key": "DV_L",
"label": "L",
}
"KC_DOT": {
"key": "DV_P",
"label": "P",
}
"KC_SLSH": {
"key": "DV_J",
"label": "J",
}
/* Shifted symbols
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │ * │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 0 │ 0 │ + │ % │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │ │ ? │ < │ > │ │ ! │ │ │ │ │ │ │ = │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
* │ │ │ │ │ │ │ │ │ │ │ │ │ # │ │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
* │ │ ç │ | │ │ @ │ │ │ │ │ │ │ │ │
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
* │ │ │ │ │ │ │ │ │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
"S(DV_LDAQ)": {
"key": "DV_ASTR",
"label": "*",
}
"S(DV_RDAQ)": {
"key": "DV_1",
"label": "1",
}
"S(DV_SLSH)": {
"key": "DV_2",
"label": "2",
}
"S(DV_MINS)": {
"key": "DV_3",
"label": "3",
}
"S(DV_EGRV)": {
"key": "DV_4",
"label": "4",
}
"S(DV_BSLS)": {
"key": "DV_5",
"label": "5",
}
"S(DV_CIRC)": {
"key": "DV_6",
"label": "6",
}
"S(DV_LPRN)": {
"key": "DV_7",
"label": "7",
}
"S(DV_GRV)": {
"key": "DV_8",
"label": "8",
}
"S(DV_RPRN)": {
"key": "DV_9",
"label": "9",
}
"S(DV_UNDS)": {
"key": "DV_0",
"label": "0",
}
"S(DV_LBRC)": {
"key": "DV_PLUS",
"label": "+",
}
"S(DV_RBRC)": {
"key": "DV_PERC",
"label": "%",
}
"S(DV_COLN)": {
"key": "DV_QUES",
"label": "?",
}
"S(DV_QUOT)": {
"key": "DV_LABK",
"label": "<",
}
"S(DV_EACU)": {
"key": "DV_RABK",
"label": ">",
}
"S(DV_DOT)": {
"key": "DV_EXLM",
"label": "!",
}
"S(DV_DIAE)": {
"key": "DV_EQL",
"label": "=",
}
"S(DV_TILD)": {
"key": "DV_HASH",
"label": "#",
}
"S(DV_AGRV)": {
"key": "DV_CCED",
"label": "ç",
}
"S(DV_SCLN)": {
"key": "DV_PIPE",
"label": "|",
}
"S(DV_COMM)": {
"key": "DV_AT",
"label": "@",
}
}
}

View File

@@ -0,0 +1,302 @@
{
"aliases": {
/*
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │ $ │ & │ [ │ { │ } │ ( │ = │ * │ ) │ + │ ] │ ! │ # │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │ │ ; │ , │ . │ P │ Y │ F │ G │ C │ R │ L │ / │ @ │ \ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
* │ │ A │ O │ E │ U │ I │ D │ H │ T │ N │ S │ - │ │
* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤
* │ │ ' │ Q │ J │ K │ X │ B │ M │ W │ V │ Z │ │
* ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
* │ │ │ │ │ │ │ │ │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
"KC_GRV": {
"key": "DP_DLR",
"label": "$",
}
"KC_1": {
"key": "DP_AMPR",
"label": "&",
}
"KC_2": {
"key": "DP_LBRC",
"label": "[",
}
"KC_3": {
"key": "DP_LCBR",
"label": "{",
}
"KC_4": {
"key": "DP_RCBR",
"label": "}",
}
"KC_5": {
"key": "DP_LPRN",
"label": "(",
}
"KC_6": {
"key": "DP_EQL",
"label": "=",
}
"KC_7": {
"key": "DP_ASTR",
"label": "*",
}
"KC_8": {
"key": "DP_RPRN",
"label": ")",
}
"KC_9": {
"key": "DP_PLUS",
"label": "+",
}
"KC_0": {
"key": "DP_RBRC",
"label": "]",
}
"KC_MINS": {
"key": "DP_EXLM",
"label": "!",
}
"KC_EQL": {
"key": "DP_HASH",
"label": "#",
}
"KC_Q": {
"key": "DP_SCLN",
"label": ";",
}
"KC_W": {
"key": "DP_COMM",
"label": ",",
}
"KC_E": {
"key": "DP_DOT",
"label": ".",
}
"KC_R": {
"key": "DP_P",
"label": "P",
}
"KC_T": {
"key": "DP_Y",
"label": "Y",
}
"KC_Y": {
"key": "DP_F",
"label": "F",
}
"KC_U": {
"key": "DP_G",
"label": "G",
}
"KC_I": {
"key": "DP_C",
"label": "C",
}
"KC_O": {
"key": "DP_R",
"label": "R",
}
"KC_P": {
"key": "DP_L",
"label": "L",
}
"KC_LBRC": {
"key": "DP_SLSH",
"label": "/",
}
"KC_RBRC": {
"key": "DP_AT",
"label": "@",
}
"KC_BSLS": {
"key": "DP_BSLS",
"label": "\\",
}
"KC_A": {
"key": "DP_A",
"label": "A",
}
"KC_S": {
"key": "DP_O",
"label": "O",
}
"KC_D": {
"key": "DP_E",
"label": "E",
}
"KC_F": {
"key": "DP_U",
"label": "U",
}
"KC_G": {
"key": "DP_I",
"label": "I",
}
"KC_H": {
"key": "DP_D",
"label": "D",
}
"KC_J": {
"key": "DP_H",
"label": "H",
}
"KC_K": {
"key": "DP_T",
"label": "T",
}
"KC_L": {
"key": "DP_N",
"label": "N",
}
"KC_SCLN": {
"key": "DP_S",
"label": "S",
}
"KC_QUOT": {
"key": "DP_MINS",
"label": "-",
}
"KC_Z": {
"key": "DP_QUOT",
"label": "'",
}
"KC_X": {
"key": "DP_Q",
"label": "Q",
}
"KC_C": {
"key": "DP_J",
"label": "J",
}
"KC_V": {
"key": "DP_K",
"label": "K",
}
"KC_B": {
"key": "DP_X",
"label": "X",
}
"KC_N": {
"key": "DP_B",
"label": "B",
}
"KC_M": {
"key": "DP_M",
"label": "M",
}
"KC_COMM": {
"key": "DP_W",
"label": "W",
}
"KC_DOT": {
"key": "DP_V",
"label": "V",
}
"KC_SLSH": {
"key": "DP_Z",
"label": "Z",
}
/* Shifted symbols
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │ ~ │ % │ 7 │ 5 │ 3 │ 1 │ 9 │ 0 │ 2 │ 4 │ 6 │ 8 │ ` │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │ │ : │ < │ > │ │ │ │ │ │ │ │ ? │ ^ │ | │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
* │ │ │ │ │ │ │ │ │ │ │ │ _ │ │
* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤
* │ │ " │ │ │ │ │ │ │ │ │ │ │
* ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
* │ │ │ │ │ │ │ │ │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
"S(DP_DLR)": {
"key": "DP_TILD",
"label": "~",
}
"S(DP_AMPR)": {
"key": "DP_PERC",
"label": "%",
}
"S(DP_LBRC)": {
"key": "DP_7",
"label": "7",
}
"S(DP_LCBR)": {
"key": "DP_5",
"label": "5",
}
"S(DP_RCBR)": {
"key": "DP_3",
"label": "3",
}
"S(DP_LPRN)": {
"key": "DP_1",
"label": "1",
}
"S(DP_EQL)": {
"key": "DP_9",
"label": "9",
}
"S(DP_ASTR)": {
"key": "DP_0",
"label": "0",
}
"S(DP_RPRN)": {
"key": "DP_2",
"label": "2",
}
"S(DP_PLUS)": {
"key": "DP_4",
"label": "4",
}
"S(DP_RBRC)": {
"key": "DP_6",
"label": "6",
}
"S(DP_EXLM)": {
"key": "DP_8",
"label": "8",
}
"S(DP_HASH)": {
"key": "DP_GRV",
"label": "`",
}
"S(DP_SCLN)": {
"key": "DP_COLN",
"label": ":",
}
"S(DP_COMM)": {
"key": "DP_LABK",
"label": "<",
}
"S(DP_DOT)": {
"key": "DP_RABK",
"label": ">",
}
"S(DP_SLSH)": {
"key": "DP_QUES",
"label": "?",
}
"S(DP_AT)": {
"key": "DP_CIRC",
"label": "^",
}
"S(DP_BSLS)": {
"key": "DP_PIPE",
"label": "|",
}
"S(DP_MINS)": {
"key": "DP_UNDS",
"label": "_",
}
"S(DP_QUOT)": {
"key": "DP_DQUO",
"label": "\"",
}
}
}

View File

@@ -0,0 +1,367 @@
{
"aliases": {
/*
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │ ˇ │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ + │ ´ │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │ │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ Ü │ Õ │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
* │ │ A │ S │ D │ F │ G │ H │ J │ K │ L │ Ö │ Ä │ ' │ │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
* │ │ < │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ - │ │
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
* │ │ │ │ │ │ │ │ │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
"KC_GRV": {
"key": "EE_CARN",
"label": "ˇ (dead)",
}
"KC_1": {
"key": "EE_1",
"label": "1",
}
"KC_2": {
"key": "EE_2",
"label": "2",
}
"KC_3": {
"key": "EE_3",
"label": "3",
}
"KC_4": {
"key": "EE_4",
"label": "4",
}
"KC_5": {
"key": "EE_5",
"label": "5",
}
"KC_6": {
"key": "EE_6",
"label": "6",
}
"KC_7": {
"key": "EE_7",
"label": "7",
}
"KC_8": {
"key": "EE_8",
"label": "8",
}
"KC_9": {
"key": "EE_9",
"label": "9",
}
"KC_0": {
"key": "EE_0",
"label": "0",
}
"KC_MINS": {
"key": "EE_PLUS",
"label": "+",
}
"KC_EQL": {
"key": "EE_ACUT",
"label": "´ (dead)",
}
"KC_Q": {
"key": "EE_Q",
"label": "Q",
}
"KC_W": {
"key": "EE_W",
"label": "W",
}
"KC_E": {
"key": "EE_E",
"label": "E",
}
"KC_R": {
"key": "EE_R",
"label": "R",
}
"KC_T": {
"key": "EE_T",
"label": "T",
}
"KC_Y": {
"key": "EE_Y",
"label": "Y",
}
"KC_U": {
"key": "EE_U",
"label": "U",
}
"KC_I": {
"key": "EE_I",
"label": "I",
}
"KC_O": {
"key": "EE_O",
"label": "O",
}
"KC_P": {
"key": "EE_P",
"label": "P",
}
"KC_LBRC": {
"key": "EE_UDIA",
"label": "Ü",
}
"KC_RBRC": {
"key": "EE_OTIL",
"label": "Õ",
}
"KC_A": {
"key": "EE_A",
"label": "A",
}
"KC_S": {
"key": "EE_S",
"label": "S",
}
"KC_D": {
"key": "EE_D",
"label": "D",
}
"KC_F": {
"key": "EE_F",
"label": "F",
}
"KC_G": {
"key": "EE_G",
"label": "G",
}
"KC_H": {
"key": "EE_H",
"label": "H",
}
"KC_J": {
"key": "EE_J",
"label": "J",
}
"KC_K": {
"key": "EE_K",
"label": "K",
}
"KC_L": {
"key": "EE_L",
"label": "L",
}
"KC_SCLN": {
"key": "EE_ODIA",
"label": "Ö",
}
"KC_QUOT": {
"key": "EE_ADIA",
"label": "Ä",
}
"KC_NUHS": {
"key": "EE_QUOT",
"label": "'",
}
"KC_NUBS": {
"key": "EE_LABK",
"label": "<",
}
"KC_Z": {
"key": "EE_Z",
"label": "Z",
}
"KC_X": {
"key": "EE_X",
"label": "X",
}
"KC_C": {
"key": "EE_C",
"label": "C",
}
"KC_V": {
"key": "EE_V",
"label": "V",
}
"KC_B": {
"key": "EE_B",
"label": "B",
}
"KC_N": {
"key": "EE_N",
"label": "N",
}
"KC_M": {
"key": "EE_M",
"label": "M",
}
"KC_COMM": {
"key": "EE_COMM",
"label": ",",
}
"KC_DOT": {
"key": "EE_DOT",
"label": ".",
}
"KC_SLSH": {
"key": "EE_MINS",
"label": "-",
}
/* Shifted symbols
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │ ~ │ ! │ " │ # │ ¤ │ % │ & │ / │ ( │ ) │ = │ ? │ ` │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
* │ │ │ │ │ │ │ │ │ │ │ │ │ * │ │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
* │ │ > │ │ │ │ │ │ │ │ ; │ : │ _ │ │
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
* │ │ │ │ │ │ │ │ │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
"S(EE_CARN)": {
"key": "EE_TILD",
"label": "~ (dead)",
}
"S(EE_1)": {
"key": "EE_EXLM",
"label": "!",
}
"S(EE_2)": {
"key": "EE_DQUO",
"label": "\"",
}
"S(EE_3)": {
"key": "EE_HASH",
"label": "#",
}
"S(EE_4)": {
"key": "EE_CURR",
"label": "¤",
}
"S(EE_5)": {
"key": "EE_PERC",
"label": "%",
}
"S(EE_6)": {
"key": "EE_AMPR",
"label": "&",
}
"S(EE_7)": {
"key": "EE_SLSH",
"label": "/",
}
"S(EE_8)": {
"key": "EE_LPRN",
"label": "(",
}
"S(EE_9)": {
"key": "EE_RPRN",
"label": ")",
}
"S(EE_0)": {
"key": "EE_EQL",
"label": "=",
}
"S(EE_PLUS)": {
"key": "EE_QUES",
"label": "?",
}
"S(EE_ACUT)": {
"key": "EE_GRV",
"label": "` (dead)",
}
"S(EE_QUOT)": {
"key": "EE_ASTR",
"label": "*",
}
"S(EE_LABK)": {
"key": "EE_RABK",
"label": ">",
}
"S(EE_COMM)": {
"key": "EE_SCLN",
"label": ";",
}
"S(EE_DOT)": {
"key": "EE_COLN",
"label": ":",
}
"S(EE_MINS)": {
"key": "EE_UNDS",
"label": "_",
}
/* AltGr symbols
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │ │ │ @ │ £ │ $ │ € │ │ { │ [ │ ] │ } │ \ │ │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │ │ │ │ │ │ │ │ │ │ │ │ │ § │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
* │ │ │ š │ │ │ │ │ │ │ │ │ ^ │ ½ │ │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
* │ │ | │ ž │ │ │ │ │ │ │ │ │ │ │
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
* │ │ │ │ │ │ │ │ │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
"ALGR(EE_2)": {
"key": "EE_AT",
"label": "@",
}
"ALGR(EE_3)": {
"key": "EE_PND",
"label": "£",
}
"ALGR(EE_4)": {
"key": "EE_DLR",
"label": "$",
}
"ALGR(EE_5)": {
"key": "EE_EURO",
"label": "€",
}
"ALGR(EE_7)": {
"key": "EE_LCBR",
"label": "{",
}
"ALGR(EE_8)": {
"key": "EE_LBRC",
"label": "[",
}
"ALGR(EE_9)": {
"key": "EE_RBRC",
"label": "]",
}
"ALGR(EE_0)": {
"key": "EE_RCBR",
"label": "}",
}
"ALGR(EE_PLUS)": {
"key": "EE_BSLS",
"label": "\\",
}
"ALGR(EE_OTIL)": {
"key": "EE_SECT",
"label": "§",
}
"ALGR(EE_S)": {
"key": "EE_SCAR",
"label": "š",
}
"ALGR(EE_ADIA)": {
"key": "EE_CIRC",
"label": "^ (dead)",
}
"ALGR(EE_QUOT)": {
"key": "EE_HALF",
"label": "½",
}
"ALGR(EE_LABK)": {
"key": "EE_PIPE",
"label": "|",
}
"ALGR(EE_Z)": {
"key": "EE_ZCAR",
"label": "ž",
}
}
}

View File

@@ -0,0 +1,359 @@
{
"aliases": {
/*
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │ § │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ + │ ´ │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │ │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ Å │ ¨ │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
* │ │ A │ S │ D │ F │ G │ H │ J │ K │ L │ Ö │ Ä │ ' │ │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
* │ │ < │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ - │ │
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
* │ │ │ │ │ │ │ │ │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
"KC_GRV": {
"key": "FI_SECT",
"label": "§",
}
"KC_1": {
"key": "FI_1",
"label": "1",
}
"KC_2": {
"key": "FI_2",
"label": "2",
}
"KC_3": {
"key": "FI_3",
"label": "3",
}
"KC_4": {
"key": "FI_4",
"label": "4",
}
"KC_5": {
"key": "FI_5",
"label": "5",
}
"KC_6": {
"key": "FI_6",
"label": "6",
}
"KC_7": {
"key": "FI_7",
"label": "7",
}
"KC_8": {
"key": "FI_8",
"label": "8",
}
"KC_9": {
"key": "FI_9",
"label": "9",
}
"KC_0": {
"key": "FI_0",
"label": "0",
}
"KC_MINS": {
"key": "FI_PLUS",
"label": "+",
}
"KC_EQL": {
"key": "FI_ACUT",
"label": "´ (dead)",
}
"KC_Q": {
"key": "FI_Q",
"label": "Q",
}
"KC_W": {
"key": "FI_W",
"label": "W",
}
"KC_E": {
"key": "FI_E",
"label": "E",
}
"KC_R": {
"key": "FI_R",
"label": "R",
}
"KC_T": {
"key": "FI_T",
"label": "T",
}
"KC_Y": {
"key": "FI_Y",
"label": "Y",
}
"KC_U": {
"key": "FI_U",
"label": "U",
}
"KC_I": {
"key": "FI_I",
"label": "I",
}
"KC_O": {
"key": "FI_O",
"label": "O",
}
"KC_P": {
"key": "FI_P",
"label": "P",
}
"KC_LBRC": {
"key": "FI_ARNG",
"label": "Å",
}
"KC_RBRC": {
"key": "FI_DIAE",
"label": "¨ (dead)",
}
"KC_A": {
"key": "FI_A",
"label": "A",
}
"KC_S": {
"key": "FI_S",
"label": "S",
}
"KC_D": {
"key": "FI_D",
"label": "D",
}
"KC_F": {
"key": "FI_F",
"label": "F",
}
"KC_G": {
"key": "FI_G",
"label": "G",
}
"KC_H": {
"key": "FI_H",
"label": "H",
}
"KC_J": {
"key": "FI_J",
"label": "J",
}
"KC_K": {
"key": "FI_K",
"label": "K",
}
"KC_L": {
"key": "FI_L",
"label": "L",
}
"KC_SCLN": {
"key": "FI_ODIA",
"label": "Ö",
}
"KC_QUOT": {
"key": "FI_ADIA",
"label": "Ä",
}
"KC_NUHS": {
"key": "FI_QUOT",
"label": "'",
}
"KC_NUBS": {
"key": "FI_LABK",
"label": "<",
}
"KC_Z": {
"key": "FI_Z",
"label": "Z",
}
"KC_X": {
"key": "FI_X",
"label": "X",
}
"KC_C": {
"key": "FI_C",
"label": "C",
}
"KC_V": {
"key": "FI_V",
"label": "V",
}
"KC_B": {
"key": "FI_B",
"label": "B",
}
"KC_N": {
"key": "FI_N",
"label": "N",
}
"KC_M": {
"key": "FI_M",
"label": "M",
}
"KC_COMM": {
"key": "FI_COMM",
"label": ",",
}
"KC_DOT": {
"key": "FI_DOT",
"label": ".",
}
"KC_SLSH": {
"key": "FI_MINS",
"label": "-",
}
/* Shifted symbols
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │ ½ │ ! │ " │ # │ ¤ │ % │ & │ / │ ( │ ) │ = │ ? │ ` │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │ │ │ │ │ │ │ │ │ │ │ │ │ ^ │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
* │ │ │ │ │ │ │ │ │ │ │ │ │ * │ │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
* │ │ > │ │ │ │ │ │ │ │ ; │ : │ _ │ │
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
* │ │ │ │ │ │ │ │ │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
"S(FI_SECT)": {
"key": "FI_HALF",
"label": "½",
}
"S(FI_1)": {
"key": "FI_EXLM",
"label": "!",
}
"S(FI_2)": {
"key": "FI_DQUO",
"label": "\"",
}
"S(FI_3)": {
"key": "FI_HASH",
"label": "#",
}
"S(FI_4)": {
"key": "FI_CURR",
"label": "¤",
}
"S(FI_5)": {
"key": "FI_PERC",
"label": "%",
}
"S(FI_6)": {
"key": "FI_AMPR",
"label": "&",
}
"S(FI_7)": {
"key": "FI_SLSH",
"label": "/",
}
"S(FI_8)": {
"key": "FI_LPRN",
"label": "(",
}
"S(FI_9)": {
"key": "FI_RPRN",
"label": ")",
}
"S(FI_0)": {
"key": "FI_EQL",
"label": "=",
}
"S(FI_PLUS)": {
"key": "FI_QUES",
"label": "?",
}
"S(FI_ACUT)": {
"key": "FI_GRV",
"label": "` (dead)",
}
"S(FI_DIAE)": {
"key": "FI_CIRC",
"label": "^ (dead)",
}
"S(FI_QUOT)": {
"key": "FI_ASTR",
"label": "*",
}
"S(FI_LABK)": {
"key": "FI_RABK",
"label": ">",
}
"S(FI_COMM)": {
"key": "FI_SCLN",
"label": ";",
}
"S(FI_DOT)": {
"key": "FI_COLN",
"label": ":",
}
"S(FI_MINS)": {
"key": "FI_UNDS",
"label": "_",
}
/* AltGr symbols
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │ │ │ @ │ £ │ $ │ € │ │ { │ [ │ ] │ } │ \ │ │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │ │ │ │ │ │ │ │ │ │ │ │ │ ~ │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
* │ │ | │ │ │ │ │ │ │ µ │ │ │ │ │
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
* │ │ │ │ │ │ │ │ │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
"ALGR(FI_2)": {
"key": "FI_AT",
"label": "@",
}
"ALGR(FI_3)": {
"key": "FI_PND",
"label": "£",
}
"ALGR(FI_4)": {
"key": "FI_DLR",
"label": "$",
}
"ALGR(FI_5)": {
"key": "FI_EURO",
"label": "€",
}
"ALGR(FI_7)": {
"key": "FI_LCBR",
"label": "{",
}
"ALGR(FI_8)": {
"key": "FI_LBRC",
"label": "[",
}
"ALGR(FI_9)": {
"key": "FI_RBRC",
"label": "]",
}
"ALGR(FI_0)": {
"key": "FI_RCBR",
"label": "}",
}
"ALGR(FI_PLUS)": {
"key": "FI_BSLS",
"label": "\\",
}
"ALGR(FI_DIAE)": {
"key": "FI_TILD",
"label": "~ (dead)",
}
"ALGR(FI_LABK)": {
"key": "FI_PIPE",
"label": "|",
}
"ALGR(FI_M)": {
"key": "FI_MICR",
"label": "µ",
}
}
}

View File

@@ -0,0 +1,367 @@
{
"aliases": {
/*
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │ ² │ & │ é │ " │ ' │ ( │ - │ è │ _ │ ç │ à │ ) │ = │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │ │ A │ Z │ E │ R │ T │ Y │ U │ I │ O │ P │ ^ │ $ │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
* │ │ Q │ S │ D │ F │ G │ H │ J │ K │ L │ M │ ù │ * │ │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
* │ │ < │ W │ X │ C │ V │ B │ N │ , │ ; │ : │ ! │ │
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
* │ │ │ │ │ │ │ │ │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
"KC_GRV": {
"key": "FR_SUP2",
"label": "²",
}
"KC_1": {
"key": "FR_AMPR",
"label": "&",
}
"KC_2": {
"key": "FR_EACU",
"label": "é",
}
"KC_3": {
"key": "FR_DQUO",
"label": "\"",
}
"KC_4": {
"key": "FR_QUOT",
"label": "'",
}
"KC_5": {
"key": "FR_LPRN",
"label": "(",
}
"KC_6": {
"key": "FR_MINS",
"label": "-",
}
"KC_7": {
"key": "FR_EGRV",
"label": "è",
}
"KC_8": {
"key": "FR_UNDS",
"label": "_",
}
"KC_9": {
"key": "FR_CCED",
"label": "ç",
}
"KC_0": {
"key": "FR_AGRV",
"label": "à",
}
"KC_MINS": {
"key": "FR_RPRN",
"label": ")",
}
"KC_EQL": {
"key": "FR_EQL",
"label": "=",
}
"KC_Q": {
"key": "FR_A",
"label": "A",
}
"KC_W": {
"key": "FR_Z",
"label": "Z",
}
"KC_E": {
"key": "FR_E",
"label": "E",
}
"KC_R": {
"key": "FR_R",
"label": "R",
}
"KC_T": {
"key": "FR_T",
"label": "T",
}
"KC_Y": {
"key": "FR_Y",
"label": "Y",
}
"KC_U": {
"key": "FR_U",
"label": "U",
}
"KC_I": {
"key": "FR_I",
"label": "I",
}
"KC_O": {
"key": "FR_O",
"label": "O",
}
"KC_P": {
"key": "FR_P",
"label": "P",
}
"KC_LBRC": {
"key": "FR_CIRC",
"label": "^ (dead)",
}
"KC_RBRC": {
"key": "FR_DLR",
"label": "$",
}
"KC_A": {
"key": "FR_Q",
"label": "Q",
}
"KC_S": {
"key": "FR_S",
"label": "S",
}
"KC_D": {
"key": "FR_D",
"label": "D",
}
"KC_F": {
"key": "FR_F",
"label": "F",
}
"KC_G": {
"key": "FR_G",
"label": "G",
}
"KC_H": {
"key": "FR_H",
"label": "H",
}
"KC_J": {
"key": "FR_J",
"label": "J",
}
"KC_K": {
"key": "FR_K",
"label": "K",
}
"KC_L": {
"key": "FR_L",
"label": "L",
}
"KC_SCLN": {
"key": "FR_M",
"label": "M",
}
"KC_QUOT": {
"key": "FR_UGRV",
"label": "ù",
}
"KC_NUHS": {
"key": "FR_ASTR",
"label": "*",
}
"KC_NUBS": {
"key": "FR_LABK",
"label": "<",
}
"KC_Z": {
"key": "FR_W",
"label": "W",
}
"KC_X": {
"key": "FR_X",
"label": "X",
}
"KC_C": {
"key": "FR_C",
"label": "C",
}
"KC_V": {
"key": "FR_V",
"label": "V",
}
"KC_B": {
"key": "FR_B",
"label": "B",
}
"KC_N": {
"key": "FR_N",
"label": "N",
}
"KC_M": {
"key": "FR_COMM",
"label": ",",
}
"KC_COMM": {
"key": "FR_SCLN",
"label": ";",
}
"KC_DOT": {
"key": "FR_COLN",
"label": ":",
}
"KC_SLSH": {
"key": "FR_EXLM",
"label": "!",
}
/* Shifted symbols
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │ │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ ° │ + │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │ │ │ │ │ │ │ │ │ │ │ │ ¨ │ £ │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
* │ │ │ │ │ │ │ │ │ │ │ │ % │ µ │ │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
* │ │ > │ │ │ │ │ │ │ ? │ . │ / │ § │ │
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
* │ │ │ │ │ │ │ │ │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
"S(FR_AMPR)": {
"key": "FR_1",
"label": "1",
}
"S(FR_EACU)": {
"key": "FR_2",
"label": "2",
}
"S(FR_DQUO)": {
"key": "FR_3",
"label": "3",
}
"S(FR_QUOT)": {
"key": "FR_4",
"label": "4",
}
"S(FR_LPRN)": {
"key": "FR_5",
"label": "5",
}
"S(FR_MINS)": {
"key": "FR_6",
"label": "6",
}
"S(FR_EGRV)": {
"key": "FR_7",
"label": "7",
}
"S(FR_UNDS)": {
"key": "FR_8",
"label": "8",
}
"S(FR_CCED)": {
"key": "FR_9",
"label": "9",
}
"S(FR_AGRV)": {
"key": "FR_0",
"label": "0",
}
"S(FR_RPRN)": {
"key": "FR_DEG",
"label": "°",
}
"S(FR_EQL)": {
"key": "FR_PLUS",
"label": "+",
}
"S(FR_CIRC)": {
"key": "FR_DIAE",
"label": "¨ (dead)",
}
"S(FR_DLR)": {
"key": "FR_PND",
"label": "£",
}
"S(FR_UGRV)": {
"key": "FR_PERC",
"label": "%",
}
"S(FR_ASTR)": {
"key": "FR_MICR",
"label": "µ",
}
"S(FR_LABK)": {
"key": "FR_RABK",
"label": ">",
}
"S(FR_COMM)": {
"key": "FR_QUES",
"label": "?",
}
"S(FR_SCLN)": {
"key": "FR_DOT",
"label": ".",
}
"S(FR_COLN)": {
"key": "FR_SLSH",
"label": "/",
}
"S(FR_EXLM)": {
"key": "FR_SECT",
"label": "§",
}
/* AltGr symbols
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │ │ │ ~ │ # │ { │ [ │ | │ ` │ \ │ │ @ │ ] │ } │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │ │ │ │ € │ │ │ │ │ │ │ │ │ ¤ │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
* │ │ │ │ │ │ │ │ │ │ │ │ │ │
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
* │ │ │ │ │ │ │ │ │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
"ALGR(FR_EACU)": {
"key": "FR_TILD",
"label": "~ (dead)",
}
"ALGR(FR_DQUO)": {
"key": "FR_HASH",
"label": "#",
}
"ALGR(FR_QUOT)": {
"key": "FR_LCBR",
"label": "{",
}
"ALGR(FR_LPRN)": {
"key": "FR_LBRC",
"label": "[",
}
"ALGR(FR_MINS)": {
"key": "FR_PIPE",
"label": "|",
}
"ALGR(FR_EGRV)": {
"key": "FR_GRV",
"label": "` (dead)",
}
"ALGR(FR_UNDS)": {
"key": "FR_BSLS",
"label": "\\",
}
"ALGR(FR_AGRV)": {
"key": "FR_AT",
"label": "@",
}
"ALGR(FR_RPRN)": {
"key": "FR_RBRC",
"label": "]",
}
"ALGR(FR_EQL)": {
"key": "FR_RCBR",
"label": "}",
}
"ALGR(KC_E)": {
"key": "FR_EURO",
"label": "€",
}
"ALGR(FR_DLR)": {
"key": "FR_CURR",
"label": "¤",
}
}
}

View File

@@ -0,0 +1,623 @@
{
"aliases": {
/* French AZERTY - AFNOR NF Z71-300
*
* A standard for the French keyboard
*
* The project was launched at the end of 2015 on the proposal of the General
* Delegation for the French language and the languages of France (Ministry
* of Culture), starting from the observation that the current "azerty"
* keyboards constrain the writing of French, languages regional and European
* languages with Latin alphabet.
*
* For the first time, a standard (NF Z71-300) defines the placement of
* characters on the French keyboard. It offers two layouts, one of which
* closely follows the QWERTY keyboard used by most people who write in French.
*
* However, it is in many ways superior to the old keyboard:
*
* - it contains all the characters required to enter text in French (for example É, œ and ")
* - it is designed to be more ergonomic and allow faster typing
* - it includes almost 60 additional characters for entering foreign languages, technical content, etc
* - however, the characters remain easy to locate thanks to intuitive groupings
*
* Source: https://norme-azerty.fr
*/
/*
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │ @ │ à │ é │ è │ ê │ ( │ ) │ │ « │ » │ ' │ ^ │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │ │ A │ Z │ E │ R │ T │ Y │ U │ I │ O │ P │ - │ + │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
* │ │ Q │ S │ D │ F │ G │ H │ J │ K │ L │ M │ / │ * │ │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
* │ │ < │ W │ X │ C │ V │ B │ N │ . │ , │ : │ ; │ │
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
* │ │ │ │ │ │ │ │ │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
"KC_GRV": {
"key": "FR_AT",
"label": "@",
}
"KC_1": {
"key": "FR_AGRV",
"label": "à",
}
"KC_2": {
"key": "FR_EACU",
"label": "é",
}
"KC_3": {
"key": "FR_EGRV",
"label": "è",
}
"KC_4": {
"key": "FR_ECIR",
"label": "ê",
}
"KC_5": {
"key": "FR_LPRN",
"label": "(",
}
"KC_6": {
"key": "FR_RPRN",
"label": ")",
}
"KC_7": {
"key": "FR_LSQU",
"label": "",
}
"KC_8": {
"key": "FR_RSQU",
"label": "",
}
"KC_9": {
"key": "FR_LDAQ",
"label": "«",
}
"KC_0": {
"key": "FR_RDAQ",
"label": "»",
}
"KC_MINS": {
"key": "FR_QUOT",
"label": "'",
}
"KC_EQL": {
"key": "FR_DCIR",
"label": "^ (dead)",
}
"KC_Q": {
"key": "FR_A",
"label": "A",
}
"KC_W": {
"key": "FR_Z",
"label": "Z",
}
"KC_E": {
"key": "FR_E",
"label": "E",
}
"KC_R": {
"key": "FR_R",
"label": "R",
}
"KC_T": {
"key": "FR_T",
"label": "T",
}
"KC_Y": {
"key": "FR_Y",
"label": "Y",
}
"KC_U": {
"key": "FR_U",
"label": "U",
}
"KC_I": {
"key": "FR_I",
"label": "I",
}
"KC_O": {
"key": "FR_O",
"label": "O",
}
"KC_P": {
"key": "FR_P",
"label": "P",
}
"KC_LBRC": {
"key": "FR_MINS",
"label": "-",
}
"KC_RBRC": {
"key": "FR_PLUS",
"label": "+",
}
"KC_A": {
"key": "FR_Q",
"label": "Q",
}
"KC_S": {
"key": "FR_S",
"label": "S",
}
"KC_D": {
"key": "FR_D",
"label": "D",
}
"KC_F": {
"key": "FR_F",
"label": "F",
}
"KC_G": {
"key": "FR_G",
"label": "G",
}
"KC_H": {
"key": "FR_H",
"label": "H",
}
"KC_J": {
"key": "FR_J",
"label": "J",
}
"KC_K": {
"key": "FR_K",
"label": "K",
}
"KC_L": {
"key": "FR_L",
"label": "L",
}
"KC_SCLN": {
"key": "FR_M",
"label": "M",
}
"KC_QUOT": {
"key": "FR_SLSH",
"label": "/",
}
"KC_NUHS": {
"key": "FR_ASTR",
"label": "*",
}
"KC_NUBS": {
"key": "FR_LABK",
"label": "<",
}
"KC_Z": {
"key": "FR_W",
"label": "W",
}
"KC_X": {
"key": "FR_X",
"label": "X",
}
"KC_C": {
"key": "FR_C",
"label": "C",
}
"KC_V": {
"key": "FR_V",
"label": "V",
}
"KC_B": {
"key": "FR_B",
"label": "B",
}
"KC_N": {
"key": "FR_N",
"label": "N",
}
"KC_M": {
"key": "FR_DOT",
"label": ".",
}
"KC_COMM": {
"key": "FR_COMM",
"label": ",",
}
"KC_DOT": {
"key": "FR_COLN",
"label": ":",
}
"KC_SLSH": {
"key": "FR_SCLN",
"label": ";",
}
/* Shifted symbols
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │ # │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ " │ ¨ │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │ │ │ │ │ │ │ │ │ │ │ │ │ ± │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
* │ │ │ │ │ │ │ │ │ │ │ │ \ │ ½ │ │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
* │ │ > │ │ │ │ │ │ │ ? │ ! │ … │ = │ │
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
* │ │ │ │ │ │ │ │ │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
"S(FR_AT)": {
"key": "FR_HASH",
"label": "#",
}
"S(FR_AGRV)": {
"key": "FR_1",
"label": "1",
}
"S(FR_EACU)": {
"key": "FR_2",
"label": "2",
}
"S(FR_EGRV)": {
"key": "FR_3",
"label": "3",
}
"S(FR_ECIR)": {
"key": "FR_4",
"label": "4",
}
"S(FR_LPRN)": {
"key": "FR_5",
"label": "5",
}
"S(FR_RPRN)": {
"key": "FR_6",
"label": "6",
}
"S(FR_LSQU)": {
"key": "FR_7",
"label": "7",
}
"S(FR_RSQU)": {
"key": "FR_8",
"label": "8",
}
"S(FR_LDAQ)": {
"key": "FR_9",
"label": "9",
}
"S(FR_RDAQ)": {
"key": "FR_0",
"label": "0",
}
"S(FR_QUOT)": {
"key": "FR_DQUO",
"label": "\"",
}
"S(FR_DCIR)": {
"key": "FR_DIAE",
"label": "¨ (dead)",
}
"S(FR_MINS)": {
"key": "FR_NDSH",
"label": "",
}
"S(FR_PLUS)": {
"key": "FR_PLMN",
"label": "±",
}
"S(FR_SLSH)": {
"key": "FR_BSLS",
"label": "\\",
}
"S(FR_ASTR)": {
"key": "FR_HALF",
"label": "½",
}
"S(FR_LABK)": {
"key": "FR_RABK",
"label": ">",
}
"S(FR_DOT)": {
"key": "FR_QUES",
"label": "?",
}
"S(FR_COMM)": {
"key": "FR_EXLM",
"label": "!",
}
"S(FR_COLN)": {
"key": "FR_ELLP",
"label": "…",
}
"S(FR_SCLN)": {
"key": "FR_EQL",
"label": "=",
}
/* AltGr symbols
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │ ˘ │ § │ ´ │ ` │ & │ [ │ ] │ ¯ │ _ │ “ │ ” │ ° │ ˇ │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │ │ æ │ £ │ € │ ® │ { │ } │ ù │ ˙ │ œ │ % │ │ † │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
* │ │ θ │ ß │ $ │ ¤ │ µ │ Eu│ │ │ | │ ∞ │ ÷ │ × │ │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
* │ │ ≤ │ ʒ │ © │ ç │ ¸ │ ~ │ ¿ │ ¡ │ · │ ≃ │ │
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
* │ │ │ │ │ │ │ │ │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
"ALGR(FR_AT)": {
"key": "FR_BREV",
"label": "˘ (dead)",
}
"ALGR(FR_AGRV)": {
"key": "FR_SECT",
"label": "§",
}
"ALGR(FR_EACU)": {
"key": "FR_ACUT",
"label": "´ (dead)",
}
"ALGR(FR_EGRV)": {
"key": "FR_GRV",
"label": "` (dead)",
}
"ALGR(FR_ECIR)": {
"key": "FR_AMPR",
"label": "&",
}
"ALGR(FR_LPRN)": {
"key": "FR_LBRC",
"label": "[",
}
"ALGR(FR_RPRN)": {
"key": "FR_RBRC",
"label": "]",
}
"ALGR(FR_LSQU)": {
"key": "FR_MACR",
"label": "¯ (dead)",
}
"ALGR(FR_RSQU)": {
"key": "FR_UNDS",
"label": "_",
}
"ALGR(FR_LDAQ)": {
"key": "FR_LDQU",
"label": "“",
}
"ALGR(FR_RDAQ)": {
"key": "FR_RDQU",
"label": "”",
}
"ALGR(FR_QUOT)": {
"key": "FR_DEG",
"label": "°",
}
"ALGR(FR_DCIR)": {
"key": "FR_CARN",
"label": "ˇ (dead)",
}
"ALGR(FR_A)": {
"key": "FR_AE",
"label": "æ",
}
"ALGR(FR_Z)": {
"key": "FR_PND",
"label": "£",
}
"ALGR(FR_E)": {
"key": "FR_EURO",
"label": "€",
}
"ALGR(FR_R)": {
"key": "FR_REGD",
"label": "®",
}
"ALGR(FR_T)": {
"key": "FR_LCBR",
"label": "{",
}
"ALGR(FR_Y)": {
"key": "FR_RCBR",
"label": "}",
}
"ALGR(FR_U)": {
"key": "FR_UGRV",
"label": "ù",
}
"ALGR(FR_I)": {
"key": "FR_DOTA",
"label": "˙ (dead)",
}
"ALGR(FR_O)": {
"key": "FR_OE",
"label": "œ",
}
"ALGR(FR_P)": {
"key": "FR_PERC",
"label": "%",
}
"ALGR(FR_MINS)": {
"key": "FR_MMNS",
"label": "",
}
"ALGR(FR_PLUS)": {
"key": "FR_DAGG",
"label": "†",
}
"ALGR(FR_Q)": {
"key": "FR_THET",
"label": "θ",
}
"ALGR(FR_S)": {
"key": "FR_SS",
"label": "ß",
}
"ALGR(FR_D)": {
"key": "FR_DLR",
"label": "$",
}
"ALGR(FR_F)": {
"key": "FR_CURR",
"label": "¤ (dead monetary key)",
}
"ALGR(FR_G)": {
"key": "FR_DGRK",
"label": "µ (dead Greek key)",
}
"ALGR(FR_H)": {
"key": "FR_EU",
"label": "Eu (dead European symbol key)",
}
"ALGR(FR_K)": {
"key": "FR_DSLS",
"label": " (dead)",
}
"ALGR(FR_L)": {
"key": "FR_PIPE",
"label": "|",
}
"ALGR(FR_M)": {
"key": "FR_INFN",
"label": "∞",
}
"ALGR(FR_SLSH)": {
"key": "FR_DIV",
"label": "÷",
}
"ALGR(FR_ASTR)": {
"key": "FR_MUL",
"label": "×",
}
"ALGR(FR_LABK)": {
"key": "FR_LEQL",
"label": "≤",
}
"ALGR(FR_W)": {
"key": "FR_EZH",
"label": "ʒ",
}
"ALGR(FR_X)": {
"key": "FR_COPY",
"label": "©",
}
"ALGR(FR_C)": {
"key": "FR_CCED",
"label": "ç",
}
"ALGR(FR_V)": {
"key": "FR_CEDL",
"label": "¸ (dead)",
}
"ALGR(FR_B)": {
"key": "FR_DMNS",
"label": " (dead)",
}
"ALGR(FR_N)": {
"key": "FR_DTIL",
"label": "~ (dead)",
}
"ALGR(FR_DOT)": {
"key": "FR_IQUE",
"label": "¿",
}
"ALGR(FR_COMM)": {
"key": "FR_IEXL",
"label": "¡",
}
"ALGR(FR_COLN)": {
"key": "FR_MDDT",
"label": "·",
}
"ALGR(FR_SCLN)": {
"key": "FR_AEQL",
"label": "≃",
}
/* Shift+AltGr symbols
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │ ̑ │ │ │ │ │ ˝ │ ̏ │ │ — │ │ ˚ │ │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │ │ │ │ │ │ ™ │ │ │ ̣ │ │ ‰ │ │ ‡ │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
* │ │ │ │ │ │ │ ˍ │ │ │ │ │ √ │ ¼ │ │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
* │ │ ≥ │ │ │ │ ˛ │ │ │ │ ̦ │ │ ≠ │ │
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
* │ │ │ │ │ │ │ │ │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
"S(ALGR(FR_AT))": {
"key": "FR_IBRV",
"label": "̑ (dead)",
}
"S(ALGR(FR_LPRN))": {
"key": "FR_DACU",
"label": "˝ (dead)",
}
"S(ALGR(FR_RPRN))": {
"key": "FR_DGRV",
"label": "̏ (dead)",
}
"S(ALGR(FR_RSQU))": {
"key": "FR_MDSH",
"label": "—",
}
"S(ALGR(FR_LDAQ))": {
"key": "FR_LSAQ",
"label": "",
}
"S(ALGR(FR_RDAQ))": {
"key": "FR_RSAQ",
"label": "",
}
"S(ALGR(FR_QUOT))": {
"key": "FR_RNGA",
"label": "˚ (dead)",
}
"S(ALGR(FR_T))": {
"key": "FR_TM",
"label": "™",
}
"S(ALGR(FR_I))": {
"key": "FR_DOTB",
"label": "̣ (dead)",
}
"S(ALGR(FR_P))": {
"key": "FR_PERM",
"label": "‰",
}
"S(ALGR(FR_MINS))": {
"key": "FR_NBHY",
"label": " (non-breaking hyphen)",
}
"S(ALGR(FR_PLUS))": {
"key": "FR_DDAG",
"label": "‡",
}
"S(ALGR(FR_H))": {
"key": "FR_MACB",
"label": "ˍ (dead)",
}
"S(ALGR(FR_SLSH))": {
"key": "FR_SQRT",
"label": "√",
}
"S(ALGR(FR_ASTR))": {
"key": "FR_QRTR",
"label": "¼",
}
"S(ALGR(FR_LABK))": {
"key": "FR_GEQL",
"label": "≥",
}
"S(ALGR(FR_V))": {
"key": "FR_OGON",
"label": "˛ (dead)",
}
"S(ALGR(FR_COMM))": {
"key": "FR_DCMM",
"label": "̦ (dead)",
}
"S(ALGR(FR_SCLN))": {
"key": "FR_NEQL",
"label": "≠",
}
}
}

View File

@@ -0,0 +1,676 @@
{
"aliases": {
/*
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
* │ @ │ & │ é │ " │ ' │ ( │ § │ è │ ! │ ç │ à │ ) │ - │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤
* │ │ A │ Z │ E │ R │ T │ Y │ U │ I │ O │ P │ ^ │ $ │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
* │ │ Q │ S │ D │ F │ G │ H │ J │ K │ L │ M │ ù │ ` │ │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴──┤
* │ │ < │ W │ X │ C │ V │ B │ N │ , │ ; │ : │ = │ │
* ├────┴┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤
* │ │ │ │ │ │ │ │
* └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘
*/
"KC_GRV": {
"key": "FR_AT",
"label": "@",
}
"KC_1": {
"key": "FR_AMPR",
"label": "&",
}
"KC_2": {
"key": "FR_LEAC",
"label": "é",
}
"KC_3": {
"key": "FR_DQUO",
"label": "\"",
}
"KC_4": {
"key": "FR_QUOT",
"label": "'",
}
"KC_5": {
"key": "FR_LPRN",
"label": "(",
}
"KC_6": {
"key": "FR_SECT",
"label": "§",
}
"KC_7": {
"key": "FR_LEGR",
"label": "è",
}
"KC_8": {
"key": "FR_EXLM",
"label": "!",
}
"KC_9": {
"key": "FR_LCCE",
"label": "ç",
}
"KC_0": {
"key": "FR_LAGR",
"label": "à",
}
"KC_MINS": {
"key": "FR_RPRN",
"label": ")",
}
"KC_EQL": {
"key": "FR_MINS",
"label": "-",
}
"KC_Q": {
"key": "FR_A",
"label": "A",
}
"KC_W": {
"key": "FR_Z",
"label": "Z",
}
"KC_E": {
"key": "FR_E",
"label": "E",
}
"KC_R": {
"key": "FR_R",
"label": "R",
}
"KC_T": {
"key": "FR_T",
"label": "T",
}
"KC_Y": {
"key": "FR_Y",
"label": "Y",
}
"KC_U": {
"key": "FR_U",
"label": "U",
}
"KC_I": {
"key": "FR_I",
"label": "I",
}
"KC_O": {
"key": "FR_O",
"label": "O",
}
"KC_P": {
"key": "FR_P",
"label": "P",
}
"KC_LBRC": {
"key": "FR_CIRC",
"label": "^",
}
"KC_RBRC": {
"key": "FR_DLR",
"label": "$",
}
"KC_A": {
"key": "FR_Q",
"label": "Q",
}
"KC_S": {
"key": "FR_S",
"label": "S",
}
"KC_D": {
"key": "FR_D",
"label": "D",
}
"KC_F": {
"key": "FR_F",
"label": "F",
}
"KC_G": {
"key": "FR_G",
"label": "G",
}
"KC_H": {
"key": "FR_H",
"label": "H",
}
"KC_J": {
"key": "FR_J",
"label": "J",
}
"KC_K": {
"key": "FR_K",
"label": "K",
}
"KC_L": {
"key": "FR_L",
"label": "L",
}
"KC_SCLN": {
"key": "FR_M",
"label": "M",
}
"KC_QUOT": {
"key": "FR_LUGR",
"label": "ù",
}
"KC_NUHS": {
"key": "FR_GRV",
"label": "`",
}
"KC_NUBS": {
"key": "FR_LABK",
"label": "<",
}
"KC_Z": {
"key": "FR_W",
"label": "W",
}
"KC_X": {
"key": "FR_X",
"label": "X",
}
"KC_C": {
"key": "FR_C",
"label": "C",
}
"KC_V": {
"key": "FR_V",
"label": "V",
}
"KC_B": {
"key": "FR_B",
"label": "B",
}
"KC_N": {
"key": "FR_N",
"label": "N",
}
"KC_M": {
"key": "FR_COMM",
"label": ",",
}
"KC_COMM": {
"key": "FR_SCLN",
"label": ";",
}
"KC_DOT": {
"key": "FR_COLN",
"label": ":",
}
"KC_SLSH": {
"key": "FR_EQL",
"label": "=",
}
/* Shifted symbols
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
* │ # │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ ° │ _ │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤
* │ │ │ │ │ │ │ │ │ │ │ │ ¨ │ * │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
* │ │ │ │ │ │ │ │ │ │ │ │ % │ £ │ │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴──┤
* │ │ > │ │ │ │ │ │ │ ? │ . │ / │ + │ │
* ├────┴┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤
* │ │ │ │ │ │ │ │
* └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘
*/
"S(FR_AT)": {
"key": "FR_HASH",
"label": "#",
}
"S(FR_AMPR)": {
"key": "FR_1",
"label": "1",
}
"S(FR_LEAC)": {
"key": "FR_2",
"label": "2",
}
"S(FR_DQUO)": {
"key": "FR_3",
"label": "3",
}
"S(FR_QUOT)": {
"key": "FR_4",
"label": "4",
}
"S(FR_LPRN)": {
"key": "FR_5",
"label": "5",
}
"S(FR_SECT)": {
"key": "FR_6",
"label": "6",
}
"S(FR_LEGR)": {
"key": "FR_7",
"label": "7",
}
"S(FR_EXLM)": {
"key": "FR_8",
"label": "8",
}
"S(FR_LCCE)": {
"key": "FR_9",
"label": "9",
}
"S(FR_LAGR)": {
"key": "FR_0",
"label": "0",
}
"S(FR_RPRN)": {
"key": "FR_DEG",
"label": "°",
}
"S(FR_MINS)": {
"key": "FR_UNDS",
"label": "_",
}
"S(FR_CIRC)": {
"key": "FR_DIAE",
"label": "¨ (dead)",
}
"S(FR_DLR)": {
"key": "FR_ASTR",
"label": "*",
}
"S(FR_LUGR)": {
"key": "FR_PERC",
"label": "%",
}
"S(FR_GRV)": {
"key": "FR_PND",
"label": "£",
}
"S(FR_LABK)": {
"key": "FR_RABK",
"label": ">",
}
"S(FR_COMM)": {
"key": "FR_QUES",
"label": "?",
}
"S(FR_SCLN)": {
"key": "FR_DOT",
"label": ".",
}
"S(FR_COLN)": {
"key": "FR_SLSH",
"label": "/",
}
"S(FR_EQL)": {
"key": "FR_PLUS",
"label": "+",
}
/* Alted symbols
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
* │ • │  │ ë │ “ │ │ { │ ¶ │ « │ ¡ │ Ç │ Ø │ } │ — │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤
* │ │ Æ │  │ Ê │ ® │ † │ Ú │ º │ î │ Œ │ π │ Ô │ € │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
* │ │ ‡ │ Ò │ ∂ │ ƒ │ fi │ Ì │ Ï │ È │ ¬ │ µ │ Ù │ │ │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴──┤
* │ │ ≤ │ │ ≈ │ © │ ◊ │ ß │ ~ │ ∞ │ … │ ÷ │ ≠ │ │
* ├────┴┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤
* │ │ │ │ │ │ │ │
* └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘
*/
"A(FR_AT)": {
"key": "FR_BULT",
"label": "•",
}
"A(FR_AMPR)": {
"key": "FR_APPL",
"label": " (Apple logo)",
}
"A(FR_LEAC)": {
"key": "FR_LEDI",
"label": "ë",
}
"A(FR_DQUO)": {
"key": "FR_LDQU",
"label": "“",
}
"A(FR_QUOT)": {
"key": "FR_LSQU",
"label": "",
}
"A(FR_LPRN)": {
"key": "FR_LCBR",
"label": "{",
}
"A(FR_SECT)": {
"key": "FR_PILC",
"label": "¶",
}
"A(FR_LEGR)": {
"key": "FR_LDAQ",
"label": "«",
}
"A(FR_EXLM)": {
"key": "FR_IEXL",
"label": "¡",
}
"A(FR_LCCE)": {
"key": "FR_CCCE",
"label": "Ç",
}
"A(FR_LAGR)": {
"key": "FR_OSTR",
"label": "Ø",
}
"A(FR_RPRN)": {
"key": "FR_RCBR",
"label": "}",
}
"A(FR_MINS)": {
"key": "FR_MDSH",
"label": "—",
}
"A(FR_A)": {
"key": "FR_AE",
"label": "Æ",
}
"A(FR_Z)": {
"key": "FR_CACI",
"label": "Â",
}
"A(FR_E)": {
"key": "FR_ECIR",
"label": "Ê",
}
"A(FR_R)": {
"key": "FR_REGD",
"label": "®",
}
"A(FR_T)": {
"key": "FR_DAGG",
"label": "†",
}
"A(FR_Y)": {
"key": "FR_CUAC",
"label": "Ú",
}
"A(FR_U)": {
"key": "FR_MORD",
"label": "º",
}
"A(FR_I)": {
"key": "FR_LICI",
"label": "î",
}
"A(FR_O)": {
"key": "FR_OE",
"label": "Œ",
}
"A(FR_P)": {
"key": "FR_PI",
"label": "π",
}
"A(FR_CIRC)": {
"key": "FR_OCIR",
"label": "Ô",
}
"A(FR_DLR)": {
"key": "FR_EURO",
"label": "€",
}
"A(FR_Q)": {
"key": "FR_DDAG",
"label": "‡",
}
"A(FR_S)": {
"key": "FR_COGR",
"label": "Ò",
}
"A(FR_D)": {
"key": "FR_PDIF",
"label": "∂",
}
"A(FR_F)": {
"key": "FR_FHK",
"label": "ƒ",
}
"A(FR_G)": {
"key": "FR_FI",
"label": "fi",
}
"A(FR_H)": {
"key": "FR_CIGR",
"label": "Ì",
}
"A(FR_J)": {
"key": "FR_CIDI",
"label": "Ï",
}
"A(FR_K)": {
"key": "FR_CEGR",
"label": "È",
}
"A(FR_L)": {
"key": "FR_NOT",
"label": "¬",
}
"A(FR_M)": {
"key": "FR_MICR",
"label": "µ",
}
"A(FR_LUGR)": {
"key": "FR_CUGR",
"label": "Ù",
}
"A(FR_LABK)": {
"key": "FR_LTEQ",
"label": "≤",
}
"A(FR_W)": {
"key": "FR_LSAQ",
"label": "",
}
"A(FR_X)": {
"key": "FR_AEQL",
"label": "≈",
}
"A(FR_C)": {
"key": "FR_COPY",
"label": "©",
}
"A(FR_V)": {
"key": "FR_LOZN",
"label": "◊",
}
"A(FR_B)": {
"key": "FR_SS",
"label": "ß",
}
"A(FR_N)": {
"key": "FR_TILD",
"label": "~ (dead)",
}
"A(FR_COMM)": {
"key": "FR_INFN",
"label": "∞",
}
"A(FR_SCLN)": {
"key": "FR_ELLP",
"label": "…",
}
"A(FR_COLN)": {
"key": "FR_DIV",
"label": "÷",
}
"A(FR_EQL)": {
"key": "FR_NEQL",
"label": "≠",
}
/* Shift+Alted symbols
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
* │ Ÿ │ ´ │ „ │ │ │ [ │ å │ » │ Û │ Á │ │ ] │ │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤
* │ │ │ Å │ │ │ ™ │ │ ª │ ï │ │ ∏ │ │ ¥ │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
* │ │ Ω │ ∑ │ ∆ │ · │ fl │ Î │ Í │ Ë │ | │ Ó │ ‰ │ │ │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴──┤
* │ │ ≥ │ │ ¢ │ √ │ ∫ │ ı │ ¿ │ │ \ │ ± │ │
* ├────┴┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤
* │ │ │ │ │ │ │ │
* └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘
*/
"S(A(FR_AT))": {
"key": "FR_CYDI",
"label": "Ÿ",
}
"S(A(FR_AMPR))": {
"key": "FR_ACUT",
"label": "´ (dead)",
}
"S(A(FR_LEAC))": {
"key": "FR_DLQU",
"label": "„",
}
"S(A(FR_LPRN))": {
"key": "FR_LBRC",
"label": "[",
}
"S(A(FR_SECT))": {
"key": "FR_LARI",
"label": "å",
}
"S(A(FR_LEGR))": {
"key": "FR_RDAQ",
"label": "»",
}
"S(A(FR_EXLM))": {
"key": "FR_CUCI",
"label": "Û",
}
"S(A(FR_LCCE))": {
"key": "FR_CAAC",
"label": "Á",
}
"S(A(FR_RPRN))": {
"key": "FR_RBRC",
"label": "]",
}
"S(A(FR_MINS))": {
"key": "FR_NDSH",
"label": "",
}
"S(A(FR_Z))": {
"key": "FR_CARI",
"label": "Å",
}
"S(A(FR_R))": {
"key": "FR_SLQU",
"label": "",
}
"S(A(FR_T))": {
"key": "FR_TM",
"label": "™",
}
"S(A(FR_U))": {
"key": "FR_FORD",
"label": "ª",
}
"S(A(FR_I))": {
"key": "FR_LIDI",
"label": "ï",
}
"S(A(FR_P))": {
"key": "FR_NARP",
"label": "∏",
}
"S(A(FR_DLR))": {
"key": "FR_YEN",
"label": "¥",
}
"S(A(FR_Q))": {
"key": "FR_OMEG",
"label": "Ω",
}
"S(A(FR_S))": {
"key": "FR_NARS",
"label": "∑",
}
"S(A(FR_D))": {
"key": "FR_INCR",
"label": "∆",
}
"S(A(FR_F))": {
"key": "FR_MDDT",
"label": "·",
}
"S(A(FR_G))": {
"key": "FR_FL",
"label": "fl",
}
"S(A(FR_H))": {
"key": "FR_CICI",
"label": "Î",
}
"S(A(FR_J))": {
"key": "FR_CIAC",
"label": "Í",
}
"S(A(FR_K))": {
"key": "FR_CEDI",
"label": "Ë",
}
"S(A(FR_L))": {
"key": "FR_PIPE",
"label": "|",
}
"S(A(FR_M))": {
"key": "FR_COAC",
"label": "Ó",
}
"S(A(FR_LUGR))": {
"key": "FR_PERM",
"label": "‰",
}
"S(A(FR_LABK))": {
"key": "FR_GTEQ",
"label": "≥",
}
"S(A(FR_W))": {
"key": "FR_RSAQ",
"label": "",
}
"S(A(FR_X))": {
"key": "FR_FRSL",
"label": "",
}
"S(A(FR_C))": {
"key": "FR_CENT",
"label": "¢",
}
"S(A(FR_V))": {
"key": "FR_SQRT",
"label": "√",
}
"S(A(FR_B))": {
"key": "FR_INTG",
"label": "∫",
}
"S(A(FR_N))": {
"key": "FR_DLSI",
"label": "ı",
}
"S(A(FR_COMM))": {
"key": "FR_IQUE",
"label": "¿",
}
"S(A(FR_COLN))": {
"key": "FR_BSLS",
"label": "\\",
}
"S(A(FR_EQL))": {
"key": "FR_PLMN",
"label": "±",
}
}
}

View File

@@ -0,0 +1,359 @@
{
"aliases": {
/*
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │ ^ │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ ß │ ´ │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │ │ Q │ W │ E │ R │ T │ Z │ U │ I │ O │ P │ Ü │ + │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
* │ │ A │ S │ D │ F │ G │ H │ J │ K │ L │ Ö │ Ä │ # │ │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
* │ │ < │ Y │ X │ C │ V │ B │ N │ M │ , │ . │ - │ │
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
* │ │ │ │ │ │ │ │ │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
"KC_GRV": {
"key": "DE_CIRC",
"label": "^ (dead)",
}
"KC_1": {
"key": "DE_1",
"label": "1",
}
"KC_2": {
"key": "DE_2",
"label": "2",
}
"KC_3": {
"key": "DE_3",
"label": "3",
}
"KC_4": {
"key": "DE_4",
"label": "4",
}
"KC_5": {
"key": "DE_5",
"label": "5",
}
"KC_6": {
"key": "DE_6",
"label": "6",
}
"KC_7": {
"key": "DE_7",
"label": "7",
}
"KC_8": {
"key": "DE_8",
"label": "8",
}
"KC_9": {
"key": "DE_9",
"label": "9",
}
"KC_0": {
"key": "DE_0",
"label": "0",
}
"KC_MINS": {
"key": "DE_SS",
"label": "ß",
}
"KC_EQL": {
"key": "DE_ACUT",
"label": "´ (dead)",
}
"KC_Q": {
"key": "DE_Q",
"label": "Q",
}
"KC_W": {
"key": "DE_W",
"label": "W",
}
"KC_E": {
"key": "DE_E",
"label": "E",
}
"KC_R": {
"key": "DE_R",
"label": "R",
}
"KC_T": {
"key": "DE_T",
"label": "T",
}
"KC_Y": {
"key": "DE_Z",
"label": "Z",
}
"KC_U": {
"key": "DE_U",
"label": "U",
}
"KC_I": {
"key": "DE_I",
"label": "I",
}
"KC_O": {
"key": "DE_O",
"label": "O",
}
"KC_P": {
"key": "DE_P",
"label": "P",
}
"KC_LBRC": {
"key": "DE_UDIA",
"label": "Ü",
}
"KC_RBRC": {
"key": "DE_PLUS",
"label": "+",
}
"KC_A": {
"key": "DE_A",
"label": "A",
}
"KC_S": {
"key": "DE_S",
"label": "S",
}
"KC_D": {
"key": "DE_D",
"label": "D",
}
"KC_F": {
"key": "DE_F",
"label": "F",
}
"KC_G": {
"key": "DE_G",
"label": "G",
}
"KC_H": {
"key": "DE_H",
"label": "H",
}
"KC_J": {
"key": "DE_J",
"label": "J",
}
"KC_K": {
"key": "DE_K",
"label": "K",
}
"KC_L": {
"key": "DE_L",
"label": "L",
}
"KC_SCLN": {
"key": "DE_ODIA",
"label": "Ö",
}
"KC_QUOT": {
"key": "DE_ADIA",
"label": "Ä",
}
"KC_NUHS": {
"key": "DE_HASH",
"label": "#",
}
"KC_NUBS": {
"key": "DE_LABK",
"label": "<",
}
"KC_Z": {
"key": "DE_Y",
"label": "Y",
}
"KC_X": {
"key": "DE_X",
"label": "X",
}
"KC_C": {
"key": "DE_C",
"label": "C",
}
"KC_V": {
"key": "DE_V",
"label": "V",
}
"KC_B": {
"key": "DE_B",
"label": "B",
}
"KC_N": {
"key": "DE_N",
"label": "N",
}
"KC_M": {
"key": "DE_M",
"label": "M",
}
"KC_COMM": {
"key": "DE_COMM",
"label": ",",
}
"KC_DOT": {
"key": "DE_DOT",
"label": ".",
}
"KC_SLSH": {
"key": "DE_MINS",
"label": "-",
}
/* Shifted symbols
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │ ° │ ! │ " │ § │ $ │ % │ & │ / │ ( │ ) │ = │ ? │ ` │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │ │ │ │ │ │ │ │ │ │ │ │ │ * │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
* │ │ │ │ │ │ │ │ │ │ │ │ │ ' │ │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
* │ │ > │ │ │ │ │ │ │ │ ; │ : │ _ │ │
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
* │ │ │ │ │ │ │ │ │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
"S(DE_CIRC)": {
"key": "DE_DEG",
"label": "°",
}
"S(DE_1)": {
"key": "DE_EXLM",
"label": "!",
}
"S(DE_2)": {
"key": "DE_DQUO",
"label": "\"",
}
"S(DE_3)": {
"key": "DE_SECT",
"label": "§",
}
"S(DE_4)": {
"key": "DE_DLR",
"label": "$",
}
"S(DE_5)": {
"key": "DE_PERC",
"label": "%",
}
"S(DE_6)": {
"key": "DE_AMPR",
"label": "&",
}
"S(DE_7)": {
"key": "DE_SLSH",
"label": "/",
}
"S(DE_8)": {
"key": "DE_LPRN",
"label": "(",
}
"S(DE_9)": {
"key": "DE_RPRN",
"label": ")",
}
"S(DE_0)": {
"key": "DE_EQL",
"label": "=",
}
"S(DE_SS)": {
"key": "DE_QUES",
"label": "?",
}
"S(DE_ACUT)": {
"key": "DE_GRV",
"label": "` (dead)",
}
"S(DE_PLUS)": {
"key": "DE_ASTR",
"label": "*",
}
"S(DE_HASH)": {
"key": "DE_QUOT",
"label": "'",
}
"S(DE_LABK)": {
"key": "DE_RABK",
"label": ">",
}
"S(DE_COMM)": {
"key": "DE_SCLN",
"label": ";",
}
"S(DE_DOT)": {
"key": "DE_COLN",
"label": ":",
}
"S(DE_MINS)": {
"key": "DE_UNDS",
"label": "_",
}
/* AltGr symbols
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │ │ │ ² │ ³ │ │ │ │ { │ [ │ ] │ } │ \ │ │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │ │ @ │ │ € │ │ │ │ │ │ │ │ │ ~ │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
* │ │ | │ │ │ │ │ │ │ µ │ │ │ │ │
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
* │ │ │ │ │ │ │ │ │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
"ALGR(DE_2)": {
"key": "DE_SUP2",
"label": "²",
}
"ALGR(DE_3)": {
"key": "DE_SUP3",
"label": "³",
}
"ALGR(DE_7)": {
"key": "DE_LCBR",
"label": "{",
}
"ALGR(DE_8)": {
"key": "DE_LBRC",
"label": "[",
}
"ALGR(DE_9)": {
"key": "DE_RBRC",
"label": "]",
}
"ALGR(DE_0)": {
"key": "DE_RCBR",
"label": "}",
}
"ALGR(DE_SS)": {
"key": "DE_BSLS",
"label": "\\",
}
"ALGR(DE_Q)": {
"key": "DE_AT",
"label": "@",
}
"ALGR(DE_E)": {
"key": "DE_EURO",
"label": "€",
}
"ALGR(DE_PLUS)": {
"key": "DE_TILD",
"label": "~",
}
"ALGR(DE_LABK)": {
"key": "DE_PIPE",
"label": "|",
}
"ALGR(DE_M)": {
"key": "DE_MICR",
"label": "µ",
}
}
}

View File

@@ -0,0 +1,656 @@
{
"aliases": {
/*
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
* │ ^ │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ ß │ ´ │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤
* │ │ Q │ W │ E │ R │ T │ Z │ U │ I │ O │ P │ Ü │ + │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
* │ │ A │ S │ D │ F │ G │ H │ J │ K │ L │ Ö │ Ä │ # │ │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴──┤
* │ │ < │ Y │ X │ C │ V │ B │ N │ M │ , │ . │ - │ │
* ├────┴┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤
* │ │ │ │ │ │ │ │
* └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘
*/
"KC_GRV": {
"key": "DE_CIRC",
"label": "^ (dead)",
}
"KC_1": {
"key": "DE_1",
"label": "1",
}
"KC_2": {
"key": "DE_2",
"label": "2",
}
"KC_3": {
"key": "DE_3",
"label": "3",
}
"KC_4": {
"key": "DE_4",
"label": "4",
}
"KC_5": {
"key": "DE_5",
"label": "5",
}
"KC_6": {
"key": "DE_6",
"label": "6",
}
"KC_7": {
"key": "DE_7",
"label": "7",
}
"KC_8": {
"key": "DE_8",
"label": "8",
}
"KC_9": {
"key": "DE_9",
"label": "9",
}
"KC_0": {
"key": "DE_0",
"label": "0",
}
"KC_MINS": {
"key": "DE_SS",
"label": "ß",
}
"KC_EQL": {
"key": "DE_ACUT",
"label": "´ (dead)",
}
"KC_Q": {
"key": "DE_Q",
"label": "Q",
}
"KC_W": {
"key": "DE_W",
"label": "W",
}
"KC_E": {
"key": "DE_E",
"label": "E",
}
"KC_R": {
"key": "DE_R",
"label": "R",
}
"KC_T": {
"key": "DE_T",
"label": "T",
}
"KC_Y": {
"key": "DE_Z",
"label": "Z",
}
"KC_U": {
"key": "DE_U",
"label": "U",
}
"KC_I": {
"key": "DE_I",
"label": "I",
}
"KC_O": {
"key": "DE_O",
"label": "O",
}
"KC_P": {
"key": "DE_P",
"label": "P",
}
"KC_LBRC": {
"key": "DE_UDIA",
"label": "Ü",
}
"KC_RBRC": {
"key": "DE_PLUS",
"label": "+",
}
"KC_A": {
"key": "DE_A",
"label": "A",
}
"KC_S": {
"key": "DE_S",
"label": "S",
}
"KC_D": {
"key": "DE_D",
"label": "D",
}
"KC_F": {
"key": "DE_F",
"label": "F",
}
"KC_G": {
"key": "DE_G",
"label": "G",
}
"KC_H": {
"key": "DE_H",
"label": "H",
}
"KC_J": {
"key": "DE_J",
"label": "J",
}
"KC_K": {
"key": "DE_K",
"label": "K",
}
"KC_L": {
"key": "DE_L",
"label": "L",
}
"KC_SCLN": {
"key": "DE_ODIA",
"label": "Ö",
}
"KC_QUOT": {
"key": "DE_ADIA",
"label": "Ä",
}
"KC_NUHS": {
"key": "DE_HASH",
"label": "#",
}
"KC_NUBS": {
"key": "DE_LABK",
"label": "<",
}
"KC_Z": {
"key": "DE_Y",
"label": "Y",
}
"KC_X": {
"key": "DE_X",
"label": "X",
}
"KC_C": {
"key": "DE_C",
"label": "C",
}
"KC_V": {
"key": "DE_V",
"label": "V",
}
"KC_B": {
"key": "DE_B",
"label": "B",
}
"KC_N": {
"key": "DE_N",
"label": "N",
}
"KC_M": {
"key": "DE_M",
"label": "M",
}
"KC_COMM": {
"key": "DE_COMM",
"label": ",",
}
"KC_DOT": {
"key": "DE_DOT",
"label": ".",
}
"KC_SLSH": {
"key": "DE_MINS",
"label": "-",
}
/* Shifted symbols
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
* │ ° │ ! │ " │ § │ $ │ % │ & │ / │ ( │ ) │ = │ ? │ ` │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤
* │ │ │ │ │ │ │ │ │ │ │ │ │ * │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
* │ │ │ │ │ │ │ │ │ │ │ │ │ ' │ │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴──┤
* │ │ > │ │ │ │ │ │ │ │ ; │ : │ _ │ │
* ├────┴┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤
* │ │ │ │ │ │ │ │
* └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘
*/
"S(DE_CIRC)": {
"key": "DE_DEG",
"label": "°",
}
"S(DE_1)": {
"key": "DE_EXLM",
"label": "!",
}
"S(DE_2)": {
"key": "DE_DQUO",
"label": "\"",
}
"S(DE_3)": {
"key": "DE_SECT",
"label": "§",
}
"S(DE_4)": {
"key": "DE_DLR",
"label": "$",
}
"S(DE_5)": {
"key": "DE_PERC",
"label": "%",
}
"S(DE_6)": {
"key": "DE_AMPR",
"label": "&",
}
"S(DE_7)": {
"key": "DE_SLSH",
"label": "/",
}
"S(DE_8)": {
"key": "DE_LPRN",
"label": "(",
}
"S(DE_9)": {
"key": "DE_RPRN",
"label": ")",
}
"S(DE_0)": {
"key": "DE_EQL",
"label": "=",
}
"S(DE_SS)": {
"key": "DE_QUES",
"label": "?",
}
"S(DE_ACUT)": {
"key": "DE_GRV",
"label": "` (dead)",
}
"S(DE_PLUS)": {
"key": "DE_ASTR",
"label": "*",
}
"S(DE_HASH)": {
"key": "DE_QUOT",
"label": "'",
}
"S(DE_LABK)": {
"key": "DE_RABK",
"label": ">",
}
"S(DE_COMM)": {
"key": "DE_SCLN",
"label": ";",
}
"S(DE_DOT)": {
"key": "DE_COLN",
"label": ":",
}
"S(DE_MINS)": {
"key": "DE_UNDS",
"label": "_",
}
/* Alted symbols
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
* │ „ │ ¡ │ “ │ ¶ │ ¢ │ [ │ ] │ | │ { │ } │ ≠ │ ¿ │ │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤
* │ │ « │ ∑ │ € │ ® │ † │ Ω │ ¨ │ │ Ø │ π │ • │ ± │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
* │ │ Å │ │ ∂ │ ƒ │ © │ ª │ º │ ∆ │ @ │ Œ │ Æ │ │ │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴──┤
* │ │ ≤ │ ¥ │ ≈ │ Ç │ √ │ ∫ │ ~ │ µ │ ∞ │ … │ │ │
* ├────┴┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤
* │ │ │ │ │ │ │ │
* └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘
*/
"A(DE_CIRC)": {
"key": "DE_DLQU",
"label": "„",
}
"A(DE_1)": {
"key": "DE_IEXL",
"label": "¡",
}
"A(DE_2)": {
"key": "DE_LDQU",
"label": "“",
}
"A(DE_3)": {
"key": "DE_PILC",
"label": "¶",
}
"A(DE_4)": {
"key": "DE_CENT",
"label": "¢",
}
"A(DE_5)": {
"key": "DE_LBRC",
"label": "[",
}
"A(DE_6)": {
"key": "DE_RBRC",
"label": "]",
}
"A(DE_7)": {
"key": "DE_PIPE",
"label": "|",
}
"A(DE_8)": {
"key": "DE_LCBR",
"label": "{",
}
"A(DE_9)": {
"key": "DE_RCBR",
"label": "}",
}
"A(DE_0)": {
"key": "DE_NEQL",
"label": "≠",
}
"A(DE_SS)": {
"key": "DE_IQUE",
"label": "¿",
}
"A(DE_Q)": {
"key": "DE_LDAQ",
"label": "«",
}
"A(DE_W)": {
"key": "DE_NARS",
"label": "∑",
}
"A(DE_E)": {
"key": "DE_EURO",
"label": "€",
}
"A(DE_R)": {
"key": "DE_REGD",
"label": "®",
}
"A(DE_T)": {
"key": "DE_DAGG",
"label": "†",
}
"A(DE_Z)": {
"key": "DE_OMEG",
"label": "Ω",
}
"A(DE_U)": {
"key": "DE_DIAE",
"label": "¨ (dead)",
}
"A(DE_I)": {
"key": "DE_FRSL",
"label": "",
}
"A(DE_O)": {
"key": "DE_OSTR",
"label": "Ø",
}
"A(DE_P)": {
"key": "DE_PI",
"label": "π",
}
"A(DE_UDIA)": {
"key": "DE_BULT",
"label": "•",
}
"A(DE_PLUS)": {
"key": "DE_PLMN",
"label": "±",
}
"A(DE_A)": {
"key": "DE_ARNG",
"label": "Å",
}
"A(DE_S)": {
"key": "DE_SLQU",
"label": "",
}
"A(DE_D)": {
"key": "DE_PDIF",
"label": "∂",
}
"A(DE_F)": {
"key": "DE_FHK",
"label": "ƒ",
}
"A(DE_G)": {
"key": "DE_COPY",
"label": "©",
}
"A(DE_H)": {
"key": "DE_FORD",
"label": "ª",
}
"A(DE_J)": {
"key": "DE_MORD",
"label": "º",
}
"A(DE_K)": {
"key": "DE_INCR",
"label": "∆",
}
"A(DE_L)": {
"key": "DE_AT",
"label": "@",
}
"A(DE_ODIA)": {
"key": "DE_OE",
"label": "Œ",
}
"A(DE_ADIA)": {
"key": "DE_AE",
"label": "Æ",
}
"A(DE_HASH)": {
"key": "DE_LSQU",
"label": "",
}
"A(DE_LABK)": {
"key": "DE_LTEQ",
"label": "≤",
}
"A(DE_Y)": {
"key": "DE_YEN",
"label": "¥",
}
"A(DE_X)": {
"key": "DE_AEQL",
"label": "≈",
}
"A(DE_C)": {
"key": "DE_CCCE",
"label": "Ç",
}
"A(DE_V)": {
"key": "DE_SQRT",
"label": "√",
}
"A(DE_B)": {
"key": "DE_INTG",
"label": "∫",
}
"A(DE_N)": {
"key": "DE_TILD",
"label": "~ (dead)",
}
"A(DE_M)": {
"key": "DE_MICR",
"label": "µ",
}
"A(DE_COMM)": {
"key": "DE_INFN",
"label": "∞",
}
"A(DE_DOT)": {
"key": "DE_ELLP",
"label": "…",
}
"A(DE_MINS)": {
"key": "DE_NDSH",
"label": "",
}
/* Shift+Alted symbols
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
* │ │ ¬ │ ” │ │ £ │ fi │ │ \ │ ˜ │ · │ ¯ │ ˙ │ ˚ │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤
* │ │ » │ │ ‰ │ ¸ │ ˝ │ ˇ │ Á │ Û │ │ ∏ │ │  │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
* │ │ │ Í │ ™ │ Ï │ Ì │ Ó │ ı │ │ fl │ │ │ │ │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴──┤
* │ │ ≥ │ ‡ │ Ù │ │ ◊ │ │ ˘ │ ˛ │ ÷ │ — │ │
* ├────┴┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤
* │ │ │ │ │ │ │ │
* └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘
*/
"S(A(DE_1))": {
"key": "DE_NOT",
"label": "¬",
}
"S(A(DE_2))": {
"key": "DE_RDQU",
"label": "”",
}
"S(A(DE_4))": {
"key": "DE_PND",
"label": "£",
}
"S(A(DE_5))": {
"key": "DE_FI",
"label": "fi",
}
"S(A(DE_7))": {
"key": "DE_BSLS",
"label": "\\",
}
"S(A(DE_8))": {
"key": "DE_STIL",
"label": "˜",
}
"S(A(DE_9))": {
"key": "DE_MDDT",
"label": "·",
}
"S(A(DE_0))": {
"key": "DE_MACR",
"label": "¯",
}
"S(A(DE_SS))": {
"key": "DE_DOTA",
"label": "˙",
}
"S(A(DE_ACUT))": {
"key": "DE_RNGA",
"label": "˚",
}
"S(A(DE_Q))": {
"key": "DE_RDAQ",
"label": "»",
}
"S(A(DE_E))": {
"key": "DE_PERM",
"label": "‰",
}
"S(A(DE_R))": {
"key": "DE_CEDL",
"label": "¸",
}
"S(A(DE_T))": {
"key": "DE_DACU",
"label": "˝",
}
"S(A(DE_Z))": {
"key": "DE_CARN",
"label": "ˇ",
}
"S(A(DE_U))": {
"key": "DE_AACU",
"label": "Á",
}
"S(A(DE_I))": {
"key": "DE_UCIR",
"label": "Û",
}
"S(A(DE_P))": {
"key": "DE_NARP",
"label": "∏",
}
"S(A(DE_PLUS))": {
"key": "DE_APPL",
"label": " (Apple logo)",
}
"S(A(DE_S))": {
"key": "DE_IACU",
"label": "Í",
}
"S(A(DE_D))": {
"key": "DE_TM",
"label": "™",
}
"S(A(DE_F))": {
"key": "DE_IDIA",
"label": "Ï",
}
"S(A(DE_G))": {
"key": "DE_IGRV",
"label": "Ì",
}
"S(A(DE_H))": {
"key": "DE_OACU",
"label": "Ó",
}
"S(A(DE_J))": {
"key": "DE_DLSI",
"label": "ı",
}
"S(A(DE_L))": {
"key": "DE_FL",
"label": "fl",
}
"S(A(DE_LABK))": {
"key": "DE_GTEQ",
"label": "≥",
}
"S(A(DE_Y))": {
"key": "DE_DDAG",
"label": "‡",
}
"S(A(DE_X))": {
"key": "DE_UGRV",
"label": "Ù",
}
"S(A(DE_V))": {
"key": "DE_LOZN",
"label": "◊",
}
"S(A(DE_B))": {
"key": "DE_LSAQ",
"label": "",
}
"S(A(DE_N))": {
"key": "DE_RSAQ",
"label": "",
}
"S(A(DE_M))": {
"key": "DE_BREV",
"label": "˘",
}
"S(A(DE_COMM))": {
"key": "DE_OGON",
"label": "˛",
}
"S(A(DE_DOT))": {
"key": "DE_DIV",
"label": "÷",
}
"S(A(DE_MINS))": {
"key": "DE_MDSH",
"label": "—",
}
}
}

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