Compare commits

...

274 Commits

Author SHA1 Message Date
André Silva
cc08e3082e nix-shell: add milc dependency (#11086) 2020-11-30 21:03:03 +00:00
Desp-Key
02fb0de59b Added VIA keymap to YMDK bface keyboard (#11002)
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-11-30 20:19:21 +00:00
Zach White
8724a70c4c Reduce travis load by replacing an exclusive grep with an inclusive grep (#10964)
* add -n to avoid compiling

* switch to an include rather than exclude strategy
2020-11-30 11:19:44 -08:00
XScorpion2
485e4524f4 Fix int wrapping for timer_expired macros and use MAX defines for consistency and clarity (#10996) 2020-11-30 21:18:19 +11:00
ojthetiny
ce91dd4bf3 [Keyboard] Add edc40 keyboard (#11021)
* Re-adding edc40 keyboard branch/files

* Update keymap.c

* add default keymap for edc40

* removed redundant keymap

* added custom keymap for edc40

* fixed false update to settings.json

* fixed false update to settings.json

* added newline to info.json

* Update keyboards/edc40/config.h

* Update keyboards/edc40/readme.md

* Update keyboards/edc40/rules.mk

* Update rules.mk

* Update keyboards/edc40/info.json

* Update info.json

* Update info.json

* Update keyboards/edc40/config.h

* Update keyboards/edc40/info.json

* Update keyboards/edc40/readme.md

* Update keyboards/edc40/keymaps/default/keymap.c
2020-11-30 02:00:55 -08:00
MechMerlin
5909c243d4 KBD67 Rev2 VIA: Increase layer count from 2 to 4 (#11039) 2020-11-30 05:05:46 +11:00
Anand Babu (AB) Periasamy
67976da039 map reset key to the correct location (#11037)
Co-authored-by: Anand Babu (AB) Periasamy <twitter.com/abperiasamy>
2020-11-30 05:04:52 +11:00
Felix Jen
05ac139a29 Updated README name (#11033) 2020-11-29 17:52:22 +00:00
James Young
81164c1663 Cozykeys Speedo Configurator fix (#11058)
* Cozykeys Speedo Configurator fix

Outgoing codebase worked when compiled locally, but not from QMK Configurator because its API requires an exact directory structure.

* fix make commands in the readme
2020-11-29 00:59:25 +00:00
James Young
c66df16644 2020 November 28 Breaking Changes Update (#11053)
* Branch point for 2020 November 28 Breaking Change                                                

* Remove matrix_col_t to allow MATRIX_ROWS > 32 (#10183)                                           

* Add support for soft serial to ATmega32U2 (#10204)                                               

* Change MIDI velocity implementation to allow direct control of velocity value (#9940)            

* Add ability to build a subset of all keyboards based on platform.                                

* Actually use eeprom_driver_init().                                                               

* Make bootloader_jump weak for ChibiOS. (#10417)                                                  

* Joystick 16-bit support (#10439)                                                                 

* Per-encoder resolutions (#10259)                                                                 

* Share button state from mousekey to pointing_device (#10179)                                     

* Add hotfix for chibios keyboards not wake (#10088)                                               

* Add advanced/efficient RGB Matrix Indicators (#8564)                                             

* Naming change.                                                                                   

* Support for STM32 GPIOF,G,H,I,J,K (#10206)                                                       

* Add milc as a dependency and remove the installed milc (#10563)                                  

* ChibiOS upgrade: early init conversions (#10214)                                                 

* ChibiOS upgrade: configuration file migrator (#9952)                                             

* Haptic and solenoid cleanup (#9700)                                                              

* XD75 cleanup (#10524)                                                                            

* OLED display update interval support (#10388)                                                    

* Add definition based on currently-selected serial driver. (#10716)                               

* New feature: Retro Tapping per key (#10622)                                                      

* Allow for modification of output RGB values when using rgblight/rgb_matrix. (#10638)             

* Add housekeeping task callbacks so that keyboards/keymaps are capable of executing code for each main loop iteration. (#10530)

* Rescale both ChibiOS and AVR backlighting.                                                       

* Reduce Helix keyboard build variation (#8669)                                                    

* Minor change to behavior allowing display updates to continue between task ticks (#10750)        

* Some GPIO manipulations in matrix.c change to atomic. (#10491)                                   

* qmk cformat (#10767)                                                                             

* [Keyboard] Update the Speedo firmware for v3.0 (#10657)                                          

* Maartenwut/Maarten namechange to evyd13/Evy (#10274)                                             

* [quantum] combine repeated lines of code (#10837)                                                

* Add step sequencer feature (#9703)                                                               

* aeboards/ext65 refactor (#10820)                                                                 

* Refactor xelus/dawn60 for Rev2 later (#10584)                                                    

* add DEBUG_MATRIX_SCAN_RATE_ENABLE to common_features.mk (#10824)                                 

* [Core] Added `add_oneshot_mods` & `del_oneshot_mods` (#10549)                                    

* update chibios os usb for the otg driver (#8893)                                                 

* Remove HD44780 References, Part 4 (#10735)                                                       

* [Keyboard] Add Valor FRL TKL (+refactor) (#10512)                                                

* Fix cursor position bug in oled_write_raw functions (#10800)                                     

* Fixup version.h writing when using SKIP_VERSION=yes (#10972)                                     

* Allow for certain code in the codebase assuming length of string. (#10974)                       

* Add AT90USB support for serial.c (#10706)                                                        

* Auto shift: support repeats and early registration (#9826)                                       

* Rename ledmatrix.h to match .c file (#7949)                                                      

* Split RGB_MATRIX_ENABLE into _ENABLE and _DRIVER (#10231)                                        

* Split LED_MATRIX_ENABLE into _ENABLE and _DRIVER (#10840)                                        

* Merge point for 2020 Nov 28 Breaking Change
2020-11-28 12:02:18 -08:00
rainsff
15385d4113 rainkeeb info.json fix (#11048) 2020-11-27 21:10:10 -08:00
Drashna Jaelre
16d55b14b7 [Docs] Add VBUS hack for teensys (#10986) 2020-11-27 21:03:31 -08:00
rainsff
c41c8ff780 Add rainkeeb keyboard (#10875)
* Add rainkeeb

Add support for rainkeeb

* gpl license added

* updated

* Apply suggestions from code review

Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>

* Apply suggestions from code review

Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>

* Update info.json

* via keymap added

* updated keymap and .h to work properly

* fixed oled code oops

Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>
2020-11-27 13:04:56 -05:00
Ryan
c21d5a0973 Refactor qmk_install.sh (#10681) 2020-11-26 14:37:54 +00:00
Ryan
3afe0ea9b9 ST7565 tidyup (#10907) 2020-11-26 23:44:17 +11:00
rate
1c0e8a6bb4 Add keyboard PistachioMacroPad (#10980)
Co-authored-by: Joel Challis <git@zvecr.com>
2020-11-26 23:16:34 +11:00
jackytrabbit
10d9e8ed37 Add VIA Support for Dimple Plus (#11026)
Add VIA Support for Dimple Plus
2020-11-26 12:15:33 +00:00
Rys Sommefeldt
d9613e6a33 [Keyboard] CapsUnlocked CU65 (#11006)
* CapsUnlocked CU65

* Remove spurious in 65_ansi keymap

* Fix key next to Enter in 65_iso

* Reviewed fixes for CU65

Config, layout, copyright, build rules and documentation tweaks

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

* KC_NUBS not KC_NUSH on the bottom row

* K104 is 2U backspace

* Small info.json and config.h tweaks

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

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-11-25 14:08:38 -08:00
Wilba
9c2cfe5c27 [Keyboard] Add wilba.tech WT65-H1 (#10880)
* Added WT65-H1

* Fixed LAYOUT_all()

* Update keyboards/wilba_tech/wt65_h1/info.json

* Update keyboards/wilba_tech/wt65_h1/keymaps/default/keymap.c

* Update keyboards/wilba_tech/wt65_h1/keymaps/default/keymap.c

* Update keyboards/wilba_tech/wt65_h1/keymaps/default/keymap.c

* Update keyboards/wilba_tech/wt65_h1/keymaps/default/keymap.c

* Update keyboards/wilba_tech/wt65_h1/rules.mk

* Update keyboards/wilba_tech/wt65_h1/wt65_h1.h
2020-11-25 13:26:58 -08:00
pcurt854
f98e983141 Added pcurt854 keymap to Preonic keyboard (#10911) 2020-11-25 19:04:55 +00:00
Yoichiro Tanaka
feae8f2980 VIA support for Lunakey Mini keyboard. (#11014) 2020-11-25 18:55:54 +00:00
J.Flanagan
35b329052c [Keyboard] Add Viktus Styrka (#10982)
* Initial Styrka Commit

Initial commit of basic working firmware.

- has basic 6.25u spacebar and fullsize backspace support in default keymap
- has basic 6.25u spacebar and split backspace support in split_bs keymap
- beginning work for via keymap (not complete)

* Viktus Styrka Update 1

First edit update for Viktus Styrka

- Corrected LAYOUT macros
- Updated keymaps
- Updated info.json to match LAYOUT macros
- Added and updated VIA keymap
- Added and updated ALL keymap
- Removed unused features from config
- Added more detailed board info to main readme

* Update info.json

Update info.json - missing end }

* Update to files in initial commit

As requested, changes made to:

- styrka.c
- rules.mk
- split_bs/keymap.c
- all/keymap.c
- info.json
- config.h

* Update keyboards/viktus/styrka/rules.mk

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

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-11-25 10:48:12 -08:00
Felix Jen
e8a65baf41 [Keyboard] Added Phantom Keyboard by Lucid (#10988)
* Added upcoming Phantom keyboard from Lucid

* syntax error

* updated layout name
2020-11-25 10:36:49 -08:00
dsanchezseco
d82e002737 Added VIA keymap to punk75 keyboard (#10927)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2020-11-25 18:27:17 +00:00
nopunin10did
c78ef391dc Boardrun Classic & Bizarre layouts (replaces PR 10934) (#10990)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Erovia <Erovia@users.noreply.github.com>
Co-authored-by: Rossman360 <rmontsinger@gmail.com>
Co-authored-by: Luke <golichowski.to@gmail.com>
2020-11-25 18:24:58 +00:00
Sid Carter
1bf657be41 [Keymap] Updates - Unikorn/Curiosity/Prime_E/Ferris/Corne (#10925)
* update keymap for unikorn

* add new map

* update keymap

* update keymap

* update map

* update the current keymap

* update keymap so it accounts for mouse keys as well

* add extra control and shift, for when we need to use the other keys

* get me square and curly braces

* remove unused macros

* update these changes so far

* update ilpse keymap

* rmove a layer and simplify my layers a bit

* I think there's a working keymap now for the corne. let's leave this here.

* I thought maybe that helped? but who knows

* save changes made so far

* update madhatter keymap to match what I want

* switch to use lcmd for main alt

* update my curiosity keymap

* make curiosity via enabled

* add via keymap

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

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

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

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

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

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

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

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

* Update keyboards/primekb/prime_e/keymaps/madhatter/keymap.c

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

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

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

* stick to enum

* add bootmagic stuff and update keymap

* switch to bootmagic lite

* fix typo

* cleanup for writing to LED

* consistency

* fix led pins

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

* fix build issue

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Co-authored-by: Khader Syed <khader.syed@aicure.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-11-25 10:09:15 -08:00
r-pufky
8897ab9b11 [Keymap] Add personal massdrop/ctrl:r-pufky keymap. (#10887)
* Add personal massdrop/ctrl:r-pufky keymap.

* Added personal keymap per: https://docs.qmk.fm/#/contributing?id=keymaps

* Update massdrop/ctrl:r-pufky per review.

* Trimmed config.h
* Remove rules.mk
* Add copyright header to keymap.c
* Rename README.md to readme.md

* Remove files/lines per review.

* Removed keyboard-layout-editor.com json layouts.
* Removed keymap_config line.
2020-11-25 10:05:01 -08:00
Thorben
50611bd814 [Keyboard] Fixes fox idb_60 keyboard (#10827)
* Fixed VIA keymap build warning on gcc 10.2.0, Fixed misleading LED function names, Fixed formatting

* Fix: Allow layer LED indicators to be overriden on the keymap level

* Implemented suggested change from led_set_kb callback to led_update_kb callback

* Apply suggestions from code review

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

* Update keyboards/idb/idb_60/idb_60.c

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

Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2020-11-25 09:10:42 -08:00
bt66tech
86b0acbae0 [Keyboard] add bt66tech60 handwired (#10867)
* Add files via upload

add handwired bt66tech keyboard

* Update info.json

* Update rules.mk

* Update info.json

* Update config.h

change #define DESCRIPTION

* Update bt66tech60.c

remove #include "bt66tech.h"

* Update config.h

remove #define DESCRIPTION A handwired 60% keyboard.

* Update keymap.c

remove \ and 
// Defines the keycodes used by our macros in process_record_user
enum custom_keycodes {
    QMKBEST = SAFE_RANGE,
    QMKURL
};

* Update readme.md

fill description

* Update rules.mk

apply suggestion

* Update keymap.c

remove bool process_record_user(uint16_t keycode, keyrecord_t *record) .....

* Update keymap.c

remove enter inline 25

* Update readme.md

remove *

* Update bt66tech60.c

remove all and add #include "bt66tech60.h"

* Update keymap.c

* Update rules.mk

remove enter

* Update info.json

chenge LAYOUT to LAYOUT_60_ansi

* Update readme.md

* Update rules.mk

add LAYOUTS = 60_ansi

* Update rules.mk

when add LAYOUTS = 60_ansi the pullrequest check say error so i'm remove it

* Update rules.mk

add LAYOUTS = 60_ansi

* Update rules.mk
2020-11-25 09:00:03 -08:00
Matthew Dias
24a741649d [Keyboard] Add minim keyboard (#10970)
* Create minim firmware

* Cleanup and add configurator support

* PR Checklist Items

* Delete keymap.c

* Apply suggestions from code review

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

Co-authored-by: Joel Challis <git@zvecr.com>
2020-11-25 08:57:58 -08:00
Felix Jen
0a9476bc2a [Keyboard] Added BKS65 Bolsa Supply PCB (#10933)
* Copied B65 and updated matrix

* Updated Caps LED Pin

* Updated most of the FW

* Updated errant names from Bolsa65 copy

* Keymap updates

* Moved to config.h LED indicators. Tested on PCB for functionality
2020-11-25 08:53:06 -08:00
Dan
3fadfb565d add dcompact layout for minivan (#10951)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Dan Herrera <sonarius@shew.io>
2020-11-24 20:11:28 +00:00
Max Bridgland
66b5c5eff2 Add M4cs Keymap for dekunukem/duckyPad (#10900)
* Add Keymap

* Fix Media Keys

* Add Keymap ASCII and Clean Up

* Add Readme

* Add GPL Headers, Clean Up Code Based on @drashna Suggestions

* Remove unnecessary include

* Add Layout for info.json and Readme.md

* Fix Layout for info.json

* Fix #endif Error

* Remove Tapping Term

* Add Default Keymap

* Add comments, fix readmes, clean up

* Fix README formatting

* Fix Timeout

* Fix I2C Rules

* Fix Comment Formatting, Multiline Breaks

* Add Sleep/Backlight Rules

* Clean Up README

* Clean Up Rules

* Fix Comments

* Add Pragmas

Co-authored-by: M4cs <mabridgland@protonmail.com>
Co-authored-by: Max <max@Maxs-MacBook-Pro.local>
2020-11-24 13:46:23 +00:00
nopunin10did
6e97a4c8b9 Railroad fix (#10935)
* Fix Railroad build issues

* Update keyboards/nopunin10did/railroad/rev0/rules.mk

* Update keyboards/nopunin10did/railroad/rev0/rev0.h

* Add extra copy of readme to the rev0 folder

* Update keyboards/nopunin10did/railroad/rev0/readme.md
2020-11-24 01:59:22 -08:00
mechlovin
429474d1c3 refactor adelais en ciel rev.2, mechlovin9 (#10930)
Co-authored-by: vuhopkep <boy9x0@gmail.com>
2020-11-23 19:47:01 +00:00
Danilo de Klerk
6f9934c669 Add rules.mk for ddeklerk split_3x6_3 keymap (#11008)
* Add rules.mk

In order for the media controls to work, a rules.mk file was necessary.
2020-11-22 23:57:32 -08:00
Yoichiro Tanaka
c84650a147 Add a new keyboard: yoichiro/lunakey_mini (#10958)
* Add a new keyboard: yoichiro/lunakey_mini

* Modify the VENDOR and PRODUCT IDs.

* Remove unnecessary EOL characters.

* Remove unnecessary modified characters.

* Update the layer definition more simple.

* Change the product name.

* Change the LAYOUT name (append `_split_3x6_4`) and change keys order in info.json file.
2020-11-22 21:25:17 +00:00
0z00
30afa1ccd3 [Keyboard] Add Wampus (#10991)
* Configure new keyboard zoo/wampus

* Apply suggestions from code review

Update LED pins to defined defaults

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

* Apply suggestions from code review

- Remove unused layers from default.
- Remove chibios patch comment

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

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-11-22 21:21:51 +00:00
Joel Challis
b8443863c0 Remove references to ch-bootloader-jump.patch (#10998) 2020-11-22 21:12:30 +00:00
Zach White
c731628946 identify the qmk-bot 2020-11-22 08:07:45 -08:00
Joel Challis
ca9edc5fe3 Fix failed develop updates within CI (#11001)
* Fix inverted logic

* skip locked instead of fail
2020-11-22 07:50:14 -08:00
Mateusz Urbanek
a952bf2d31 [Keyboard] Added Vagrant-10 keyboard (#10048)
* Initial commit for Vagrant-10

* Initial commit for Vagrant-10

* customized layout

* Fully working QMK config with default keymap

* Update info.json

* Update info.json

* Update readme.md

* prep

* fixed pull request issues

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

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

* Update keyboards/vagrant_10/vagrant_10.h

* Update keyboards/vagrant_10/vagrant_10.h

* Update keyboards/vagrant_10/config.h

* Update keyboards/vagrant_10/config.h

* Update keyboards/vagrant_10/rules.mk

* Update keyboards/vagrant_10/readme.md

* Update keyboards/vagrant_10/config.h

* Update keyboards/vagrant_10/info.json

* Update keyboards/vagrant_10/info.json

* Update keyboards/vagrant_10/vagrant_10.h

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

* Update keyboards/vagrant_10/config.h

* Update keyboards/vagrant_10/config.h

* Update keyboards/vagrant_10/readme.md

* Update keyboards/vagrant_10/config.h

* License header

* License header

* License header

* License header.

* Update keyboards/vagrant_10/config.h

* Update keyboards/vagrant_10/config.h

* Update keyboards/vagrant_10/config.h

* Update keyboards/vagrant_10/config.h

* Update keyboards/vagrant_10/vagrant_10.h
2020-11-21 23:42:58 -08:00
Zach White
44d1b2e717 push the API data for develop as well (#10852) 2020-11-21 20:06:33 +00:00
Zach White
8ddbb19df1 Rebase develop after a master push (#10812)
* rebase develop after a master push

* limit this to qmk/qmk_firmware

* change to a merge strategy

* GITHUB_TOKEN isn't needed

* check for .locked in develop

* break up into more steps
2020-11-21 11:48:13 -08:00
Joel Challis
95fd2ce81a Refactor to use led config - Part 4 (#10967)
* Refactor to use led config

* Refactor to use led_update_kb
2020-11-21 19:11:50 +00:00
Joel Challis
23222625c2 Refactor to use led config - Part 5 (#10975)
* Refactor to use led config

* Refactor to use led config

* Refactor to use led config
2020-11-21 19:11:24 +00:00
jonathan
4368611bfd Add layout_all to xd96 (#10913)
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-11-21 19:06:55 +00:00
Wilba
ccb15c2d29 [Keyboard] Added wilba.tech WT60-H1 (#10879)
* Added WT60-H1

* Update keyboards/wilba_tech/wt60_h1/info.json

* Update keyboards/wilba_tech/wt60_h1/keymaps/default/keymap.c

* Update keyboards/wilba_tech/wt60_h1/keymaps/default/keymap.c

* Update keyboards/wilba_tech/wt60_h1/keymaps/default/keymap.c

* Update keyboards/wilba_tech/wt60_h1/keymaps/default/keymap.c

* Update keyboards/wilba_tech/wt60_h1/rules.mk

* Update keyboards/wilba_tech/wt60_h1/wt60_h1.h
2020-11-20 01:42:34 -08:00
Matthew Dias
628d4a91b9 Add JNAO Via keymap (#9917)
* Add JNAO Via keymap

* Enable more layouts for via

* Apply suggestions from code review

* Remove extra layer

* Add license
2020-11-19 14:04:55 -08:00
X-Bows Tech
9454f98099 [Keyboard]Add X-Bows Nature Keyboard (#10869)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Erovia <Erovia@users.noreply.github.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-11-19 19:32:57 +00:00
Luis Godinez
64572b5c4b Add Nines by Ungodly Design (#10931)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Erovia <Erovia@users.noreply.github.com>
Co-authored-by: Joel Challis <git@zvecr.com>
2020-11-19 19:30:52 +00:00
Brandon Claveria
776d1adc76 add unsplit (#10892)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Erovia <Erovia@users.noreply.github.com>
Co-authored-by: Swiftrax <swiftrax@gmail.com>
2020-11-19 19:29:43 +00:00
Luis Godinez
386cff8cf5 Add Launch Pad by Ungodly Design (#10952)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Erovia <Erovia@users.noreply.github.com>
2020-11-19 19:28:53 +00:00
Drashna Jaelre
e7497b3fba Add references for is_keyboard_left() (#10850)
* Add references for is_keyboard_left()

* Remove proto from bootmagic_lite.c
2020-11-18 16:50:32 -08:00
elijahblake
6dc2d5956f [Keymap] add massdrop/alt:pregame (#8953)
Pulled some functionality from the endgame keymap for the Drop Ctrl.

* very shortened version of the Endgame keymap

* fixed pictures

* fixed link

* fixed link

* fix files

* add GREEN RGB

* fixed GREEN RGB

* not supposed to be in my fork...

* wasn't supposed to be in my fork.

* I have fixed the layer 0 RGB Settings; you can now apply layer using "COLOR" in the layout template.

* I've renamed to pregame, fixed several files

* added Underglow RGB layout, changed def
ault RGB color

* fixed the color of the default profile like i want it

* Added IRL Photo

* Update keymap.c

disabled debugging.

* Update keymap.c

* Update config.h

* Update README.md

* Update keymap.h

* Changed some settings on rules for clean up.

* Changed some settings on rules for clean up.

* fixed some errors, cleaned things up

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Fixed changes recommended by Fauxpark

* Added changes recommended by fauxpark

* trying to fix my repo

* Still trying to fix merge issues

* changed to lowercase

* Delete reading.md

* Trying to rebase my repo

* stuck in rebase loop trying to fix local files and update

* updating readme file
2020-11-18 15:54:53 -08:00
Drashna Jaelre
88a783a8a7 [Keyboard] PloopyCo update and fixes (#10936)
This is based on feedback talking with crop_octagon about the device.  Future trackballs will ship with ATMEL DFU for simplicity.  This also includes some fixes and optimizations based on code review and tinkering on my own devices.
2020-11-18 23:20:29 +01:00
Ari Madian
3aef2bef8f Add basic OLED keymap for nullbitsco/nibble (#10912) 2020-11-18 21:33:49 +00:00
j-zero
078586b21a Update one_shot_keys.md (#10917)
MOD_RSFT doesn't work. See: https://github.com/qmk/qmk_firmware/issues/10901
2020-11-18 21:31:21 +00:00
dsanchezseco
7bdc41b025 Changed personal keymap punk75:dsanchezseco (#10928)
added a dvorak layer with a numpad in the center
2020-11-18 21:29:35 +00:00
yonatanzunger
66d52d8cd2 Update the melody96:zunger keymap (#10888)
* Update the melody96/zunger layout to make typing Romance languages easier.

Move the combining accents to fn + (keys used by Mac OS for that purpose),
and move the fn key to be the one adjacent to the space bar, since one needs
to type combinations of that a lot more than one needs to type Greek letters
in normal use. (As determined by experiment)

Also clean up the comments.

Co-authored-by: Yonatan  Zunger <zunger@desiderata.lan>
2020-11-18 13:03:40 -08:00
MechMerlin
0f8b0d971f VIA Support: E6V2 BMC editions (#10969)
* update readme with relevant PCB versioning

* Add VIA keymap to e6v2 LE BMC

* add via keymap

* Update keyboards/exclusive/e6v2/le_bmc/keymaps/via/keymap.c

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

* Update keyboards/exclusive/e6v2/oe_bmc/keymaps/via/keymap.c

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

Co-authored-by: Joel Challis <git@zvecr.com>
2020-11-18 20:16:18 +00:00
gtips
3270cbeb46 [Keymap]Add and Update keymap for reviung34 (#10915) 2020-11-18 19:47:29 +00:00
Wilba
ad9674c5af [Keyboard] Add wilba.tech WT80-G (#10878)
* Added WT80-G

* Fixed keyboard name in info.json
2020-11-18 11:45:44 -08:00
Wilba
e4aadf2c05 [Keyboard] Add wilba.tech WT65-G (#10877) 2020-11-18 11:35:55 -08:00
Joel Challis
f00402a2f3 Refactor to use led config - Part 3 (#10966)
* Refactor to use led config

* Refactor to use led config

* Refactor to use led config

* Refactor to use led config
2020-11-18 17:51:53 +00:00
stanrc85
e1e13c53ac Add support for LAYOUT_alice to sneakbox pcb (#10914)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2020-11-18 17:47:45 +00:00
jackytrabbit
1512e07817 Add support for keyboard 'DimplePlus' (#10881)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-11-18 17:43:44 +00:00
pastapojken
ad5cbe5982 Added new keyboard - nack (#10940)
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-11-18 16:56:59 +00:00
Jack
58f2e0439e Add VIA Keymap for boardsource/microdox (#10932) 2020-11-17 19:23:27 +00:00
Joel Challis
ddcb1794fa Refactor to use led config - Part 1 (#10905)
* Refactor to use led config

* Refactor to use led config

* Refactor to use led config

* Refactor to use led config

* Refactor to use led config
2020-11-17 17:06:30 +00:00
Joel Challis
adfd34c451 Refactor to use led config - Part 2 (#10906)
* Refactor to use led config

* Refactor to use led config

* Refactor to use led config
2020-11-17 17:06:23 +00:00
Leon Anavi
3c156e130b [Keymap] ANAVI Macro Pad 8 fix kodi and default (#10727)
Improvements and bug fixes for the keymaps kodi and default for
ANAVI Macro Pad 8:

- Add space to the end of string "Active layer: " for better
  visibility on the mini I2C OLED display for both keymaps
- Replace "Main" with "Kodi" for the Kodi keymap
- Add comment with reference to Kodi documentation for the
  available shortcuts in this keymap

Signed-off-by: Leon Anavi <leon@anavi.org>
2020-11-16 21:35:23 -08:00
Salicylic-acid3
10782789be [Keymap] Update for jisplit89 (#10859)
Some symbols were not as intended, so they were corrected.
2020-11-16 21:25:53 -08:00
Relocks
cf3b683232 [Keyboard] bm16s - Added Via Support (#10863)
* Added Via Support and Keymap

Via Specific Keymap for BM16s along with correction of the Vendor and Product ID.

* Made adjustments for PR 10863

Made adjustments based on feedback from Pull request 10853 for qmk master pull request

* Additional update for PR 10853

Same description as previous commit.

* Update .vscode/settings.json

Updating based on commit suggestion.

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

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-11-16 21:25:00 -08:00
bghull
a8967778d4 [Keymap] Add user keymaps to qmk master (#10870)
* Create user keymaps

* Prepare user keymaps for PR

Co-authored-by: bghull <35785950+BaneJammin@users.noreply.github.com>
2020-11-16 21:21:24 -08:00
Kosuke Adachi
503b762538 Refactor the crkbd/via keymap and fix OLED bugs (#10354)
* Refactor the crkbd/via keymap and fix OLED bugs

* Revert "Refactor the crkbd/via keymap and fix OLED bugs"

This reverts commit dc9db029fc.

* Fix OLED display bugs

* Remove unused functions

* Remove uncessary the key logger

* Add new lines at end of file

* Remove unnecesary extern for is_master

* Remove extern is_master from rev1.h

* Remove ssd1306 from common dir because its the legacy lib

* Update default keymap based the via keymap

* Remove foostan keymap because it will be legacy

* Revert Remove unnecesary extern for is_master

* Remove unnecessary backslashes.
2020-11-16 21:18:45 -08:00
MechMerlin
88c09aa892 [Keyboard] Add Titan 60 (#10886)
* initial commit

* fix up some documentation

* titan60 firmware

* add supported layouts

* fixup default keymap

* fixup via keymap

* fixup default keymap

* some code cleanups
2020-11-16 21:14:59 -08:00
James Young
69bb9b7386 Fox Lab Time80: add Configurator layout data (#10950) 2020-11-16 19:21:52 -08:00
ojthetiny
f3394139de [Keyboard] Add Beatervan keyboard (#10939)
* Added Beatervan Keyboard

* added files for beatervan

* Update keyboards/beatervan/beatervan.h

Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>

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

Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/beatervan/beatervan.h

Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/beatervan/info.json

Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>

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

Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/beatervan/keymaps/oj/keymap.c

Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/beatervan/config.h

Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>

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

Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>

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

Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>

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

Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>

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

Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/beatervan/rules.mk

Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/beatervan/keymaps/oj/keymap.c

Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/beatervan/keymaps/oj/keymap.c

Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/beatervan/keymaps/oj/keymap.c

Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/beatervan/keymaps/oj/keymap.c

Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>

* Delete config.h

* Delete config.h

* Update keymap.c

* Update beatervan.c

* Update beatervan.h

* Update config.h

* Update keymap.c

* Update keymap.c

Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>
2020-11-16 18:12:10 -08:00
Danny
3e0789c961 BDN9: Fix encoder direction, add 3rd encoder for Rev. 1.3 support (#10883) 2020-11-16 19:02:43 -05:00
Geoffrey BOTIN
2ffac90c99 Fix typo causing redefined error in keymap_french_osx (#10962)
Co-authored-by: gbotin <geoffrey.botin@gmail.com>
2020-11-17 09:27:09 +11:00
Takeshi ISHII
e6a13e0b1c [Keymap] clean up helix:five_rows keymap (#10866)
* Makes the OLED driver used by the helix:five_rows keymap switchable.

* use TOP/drivers/oled/oled_driver.c
  `make HELIX=stdole helix:five_rows`
* use helix/local_drivers/ssd1306.c
  `make HELIX=oled helix:five_rows`

* Separated the OLED related code from keymap.c and moved it to oled_display.c.

* scan rate without OLED
  * make HELIX=verbose,dispoff,scan helix/rev2:five_rows
    use Helix original code
    text   data    bss    dec    hex   filename
    18880    58    235  19173   4ae5   .build/helix_rev2_five_rows.elf
    matrix scan frequency: 1590

  * make HELIX=verbose,dispoff,scan,sc helix/rev2:five_rows
    use split_common code
    text   data    bss    dec    hex   filename
    18554    40    231  18825   4989   .build/helix_rev2_five_rows.elf
    matrix scan frequency: 1202

* scan rate with helix/local_drivers/ssd1306.c
  * make HELIX=verbose,dispoff,scan,oled helix/rev2:five_rows
    use Helix original code
    text   data    bss    dec    hex   filename
    24048   196    342  24586   600a   .build/helix_rev2_five_rows.elf
    matrix scan frequency: 739

  * make HELIX=verbose,dispoff,scan,sc,oled helix/rev2:five_rows
    use split_common code
    text   data    bss    dec    hex   filename
    23750   176    338  24264   5ec8   .build/helix_rev2_five_rows.elf
    matrix scan frequency: 642

* scan rate with drivers/oled/oled_driver.c
  * make HELIX=verbose,dispoff,scan,stdole helix/rev2:five_rows
    use Helix original code
    text   data    bss    dec    hex   filename
    24590   210    798  25598   63fe   .build/helix_rev2_five_rows.elf
    matrix scan frequency: 293

  * make HELIX=verbose,dispoff,scan,sc,stdole helix/rev2:five_rows
    use split_common code
    text   data    bss    dec    hex   filename
    24290   190    794  25274   62ba   .build/helix_rev2_five_rows.elf
    matrix scan frequency: 277

* clean up helix/rev2/keymaps/five_rows/keymap.c

* update five_rows/oled_display.c

* update helix/rev2/keymaps/five_rows/keymap.c: remove LAYOUT_kc()

* Ported the keymap from helix/rev2:five_rows to helix/rev3_5rows:five_rows.

* update five_rows/oled_display.c

* add License comment
2020-11-17 07:26:44 +09:00
Cole Helbling
aaea5e24b6 [Keyboard] YMDK NP21: correct numpad layout matrix (#10874)
I noticed that my KC_PPLS and KC_PENT keys weren't actually doing
anything. By looking at the ortho_6x4 layout, I guessed that maybe the
pins were incorrect and guessed the proper ones. Now, my numpad is fully
functional.
2020-11-16 13:45:45 -08:00
Erovia
b337ba798e CLI: Udev related fixes and improvements (#10736) 2020-11-16 21:09:32 +00:00
Joel Challis
94e94ffb5b Recommend use of LED Indicator config (#10895)
* Recommend use of LED Indicator config

* Recommend use of LED Indicator config - update link

* Update quantum/template/ps2avrgb/config.h

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

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-11-16 14:16:42 +11:00
jvbroek
cfc9a358c5 [Keyboard] Add "Uno" (#10579)
* Add all files

* Update keyboards/uno/config.h

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

* Update keyboards/uno/config.h

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

* Update keyboards/uno/rules.mk

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

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

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

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

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

* Update keyboards/uno/info.json

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

* Update keyboards/uno/readme.md

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

* Update readme.md

Co-authored-by: Joshua Broekhuijsen <j.broekhuijsen@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-11-16 00:43:20 +00:00
Ikta
e4236278b5 [Keyboard] added Pill60 to handwired/pill60 (#10798)
* added to handwired pill60

* Update keyboards/handwired/pill60/config.h and all other PR suggested changes

Deleted DESCRIPTION

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

Update keyboards/handwired/pill60/readme.md

Smaller image in readme

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

Update keyboards/handwired/pill60/info.json

Deleted key_count

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

Update keyboards/handwired/pill60/keymaps/default/keymap.c

Deleted backslash on keymap.c

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

Update keyboards/handwired/pill60/pill60.h

Deleted led.h

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

Update keyboards/handwired/pill60/blackpill_f401/rules.mk

Update stm32f401 rules.mk

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

Update keyboards/handwired/pill60/blackpill_f411/rules.mk

Update stm32f411 rules.mk

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

Update keyboards/handwired/pill60/bluepill/rules.mk

Update bluepill rules.mk

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

Update keyboards/handwired/pill60/rules.mk

Added comment on rules.mk to help ]

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

deleted bootloader_defs.h

added GPL2 + compatible license header

updated keymap readme

updated those that don't need common_config.h and deleted some unnecessary spaces in f411/rules.mk

updated default folder in rules.mk

* fix and simplify build files according to onekey example

* Added GPL2+ Compatible license header
2020-11-15 11:40:55 -08:00
Takeshi ISHII
81a17f4270 [Keyboard] add Symmetric70 keyboard prototype (#10780)
* proto_symmetric70 作成中

74hc157 無しで 片手動作は、右と左でそれぞれうごいた。

* add 74HC157 support

* add keymaps/default_mac

* update proto_symmetric70/keymaps/default_mac/readme.md

* update 74HC157 support

* add keyboards/handwired/proto_symmetric70/matrix.c.patch

* update keyboards/handwired/proto_symmetric70/readme.md

* rename proto_symmetric70 to symmetric70_proto

* Update keyboards/handwired/symmetric70_proto/config.h

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

* Update keyboards/handwired/symmetric70_proto/symmetric70_proto.c

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

* Update keyboards/handwired/symmetric70_proto/readme.md

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

* update readme.md

* update keyboards/handwired/symmetric70_proto/config.h

* remove keyboards/handwired/symmetric70_proto/matrix.c.patch

* Update keyboards/handwired/symmetric70_proto/matrix.c

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

* Update keyboards/handwired/symmetric70_proto/matrix.c

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

* use KC_NO, _______

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-11-15 11:31:23 -08:00
Nathan Friend
bb9fbd66e9 [Keymap] Add nfriend's ErgoDox EZ keymap (#10545) 2020-11-15 10:57:34 -08:00
Naoki Katahira
5edce6ba26 [Keyboard] Add Lily58 via keymap (#10178)
* Add Lily58 VIA keymap

* Update keyboards/lily58/keymaps/via/keymap.c

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

* Update keyboards/lily58/keymaps/via/keymap.c

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

* Update keyboards/lily58/keymaps/via/keymap.c

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

* Update keyboards/lily58/keymaps/via/rules.mk

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

* update via keymap

* fix keymap.c

* add licence to keymap.c

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-11-15 09:36:05 -08:00
Philip (Han) Suh
91b44016f9 ZTBoards Updated keymap and updated info.json (#10926)
* Updated information on info.json and hopefully de-cluttered branch

* Updated default encoder settings

* Updated info.json for after to be in the proper order

* Fixed maintainer name
2020-11-14 22:17:16 -08:00
Josh Hinnebusch
45e16fd543 [Keyboard] h660s by hineybush (#10221)
* add h660s

* add via support to h660s

* update readme

* Update keyboards/hineybush/h660s/keymaps/via/readme.md

* Update keyboards/hineybush/h660s/keymaps/via/keymap.c

* Update keyboards/hineybush/h660s/keymaps/via/keymap.c

* Update keyboards/hineybush/h660s/h660s.h

* Update keyboards/hineybush/h660s/h660s.h

* Update keyboards/hineybush/h660s/h660s.h

* Update keyboards/hineybush/h660s/h660s.h

* Update keyboards/hineybush/h660s/h660s.h

* Update keyboards/hineybush/h660s/keymaps/default/keymap.c

* Update keyboards/hineybush/h660s/keymaps/default/keymap.c

* Update keyboards/hineybush/h660s/keymaps/via/keymap.c

* Update keyboards/hineybush/h660s/keymaps/via/keymap.c

* Update keyboards/hineybush/h660s/readme.md

* Update keyboards/hineybush/h660s/readme.md

* Update keyboards/hineybush/h660s/keymaps/default/keymap.c

* Update keyboards/hineybush/h660s/keymaps/default/keymap.c

* Update keyboards/hineybush/h660s/info.json

* Update keyboards/hineybush/h660s/h660s.h

* Update keyboards/hineybush/h660s/h660s.h

* Update keyboards/hineybush/h660s/h660s.h
2020-11-14 19:23:58 -08:00
Lukas Alexandre
a7afaa36a1 [Keyboard] Time 80 TKL by Fox Lab (#10851)
* Porting Time 80 TKL

* Update keyboards/foxlab/key65/hotswap/readme.md

* Update keyboards/foxlab/time80/rules.mk

* Update keyboards/foxlab/time80/config.h

* Update keyboards/foxlab/time80/readme.md

* Update keyboards/foxlab/time80/readme.md

* Update keyboards/foxlab/time80/config.h

* Use LAYOUT_all

* Fixing placement of shortcuts
2020-11-14 14:33:51 -08:00
gooberpsycho
d7c1b890f1 [Keyboard] Southpaw66 by rpiguy9907 (#10782)
* added Keyboard Southpaw66

* Housekeeping, shorten urls

* Housekeeping

* Row matrix pins were flipped, fixed

* housekeeping, extraneous punctuation

* bug-fixing

* bug-fixing

* Layout macro fixed

* Layout macro fixed again

* Update and rename Southpaw66,c to southpaw66.c

* Rename Southpaw66.h to southpaw66.h

* Update config.h

* Update info.json

* Change Southpaw66 to southpaw66

made change to case in all instances in code except where critical, such as in url's.

* Rename parent folder from Southpaw66 to southpaw66

* Rename parent folder from Southpaw66 to southpaw66

* Update info.json

* Update keyboards/rpiguy9907/Southpaw66/readme.md

updated image url to point to lower resolution image.

* Update config.h

re-capitalized Southpaw66 in product name.

* Rename Southpaw66 parent folder to southpaw66

* Rename parent folder from Southpaw66 to southpaw66

* rename parent folder from Southpaw66 to southpaw66

* rename parent folder from Southpaw66 to southpaw66

* Rename parent folder from Southpaw66 to southpaw66

* rename parent folder from Southpaw66 to southpaw66

* rename parent folder from Southpaw66 to southpaw66

* Update keyboards/rpiguy9907/southpaw66/readme.md

* Update keyboards/rpiguy9907/southpaw66/config.h
2020-11-13 22:23:22 -08:00
Sergey Vlasov
0dee334bce handwired/onekey/blackpill_f401: Fix I2C pin config mismatch (#10322)
By default the `i2c_master` driver for ChibiOS uses the B6 pin for
`I2C1_SCL` and the B7 pin for `I2C1_SDA`.  However, the ChibiOS board
file used for the F401 Blackpill board (`ST_STM32F401C_DISCOVERY`)
configures B6 as `I2C1_SCL` and B9 as `I2C1_SDA`, and if that
configuration is left unchanged, enabling the `i2c_master` driver
results in having two pins (B7 and B9) configured as `I2C1_SDA` at the
same time, which does not work properly (experimental results show that
the B9 pin still works as `I2C1_SDA` in that case, and the B7 pin does
not work).

Configure the B9 pin as an input with pull-up in `board_init()`, so that
the B7 pin can be configured as `I2C1_SDA` by the I2C driver.
2020-11-12 20:00:35 +11:00
KemoNine
a422309354 Bring up Qvex Lynepad (#10826) 2020-11-12 09:24:00 +11:00
Zach White
683ba8b8d4 Improve the QMK Lint workflow (#10909)
* properly set the exit_code

* handle the case where exit_code is greater than 255
2020-11-10 15:21:59 +00:00
Joel Challis
aae3b35c0f CI: Add docs build and deploy workflow (#7448)
* Add docs build and deploy workflow

* Remove old travis docs workflow

* update to cli command

* Tidy up for review

* formatting

* Update to pass style checks

* Update lib/python/qmk/cli/docs.py

Co-Authored-By: skullydazed <skullydazed@users.noreply.github.com>

* Review comments - build->generate, use of verbose

* Add docs

* Update to match recent actions

* Run within base_container

* Convert cli to generate-docs

* Convert cli to generate-docs - restore old file

* Convert cli to generate-docs

* Update docs

Co-authored-by: skullydazed <skullydazed@users.noreply.github.com>
2020-11-10 07:00:40 -08:00
Legonut
abf1902ff5 [Keyboard] RGBKB Pan (#9587)
* Add new keyboard Pan

Encoder switches still need work

* New keyboard Pan

Should be complete

* Split MCU selection into 2 revision folders

* [rgbkb/pan] Make requested changes for PR

Additionally, set DEFAULT_FOLDER to rev1, and default rev1
 to atmega32a (as all shipped kits include an atmega32a)

* Apply suggestions from code review

* Fix default keymap typo

* add usb max power define

* Commit suggested changes

* Update keyboards/rgbkb/pan/config.h

* Apply suggestions from code review

Small copyright updates

* Apply suggestions from code review
2020-11-09 22:22:22 -08:00
Ole Westendorff
aa90cf1da8 XD68: add 65_ansi_split_bs layout (#10835)
* XD68: add 65_ansi_split_bs layuout

* change number of keys in info.json

* Apply suggestions from code review
2020-11-09 21:26:16 -08:00
yfuku
7595f53856 refactor SPLIT_KEYBOARD, OLED_DRIVER_ENABLE (#10405) 2020-11-10 16:07:12 +11:00
chent7
8af767cb1d [Keyboard] Crazy Keyboard 68 (#10693)
* Entry and readme for crazy keyboard 68

* Defined layout in keyboard.h

* Basic setup done

* Working config, keymaps, rgb confirmed. Caps lock led untested

* Update readme.md

Image links

* Update config.h

* Update crazy_keyboard_68.c

#include "quantum.h"

* Match PR

* Update keyboards/crazy_keyboard_68/crazy_keyboard_68.c

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

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

* Update keyboards/crazy_keyboard_68/info.json

* Update keyboards/crazy_keyboard_68/crazy_keyboard_68.h

* Update keyboards/crazy_keyboard_68/rules.mk

* Update keyboards/crazy_keyboard_68/rules.mk

* Update keyboards/crazy_keyboard_68/config.h
2020-11-09 21:06:55 -08:00
rupa
a9f65b760a userspace and keymap changes for rupa (#10489)
* userspace and keymap changes for rupa

* remove layout wrappers and blocker rows from wrappers

handle this in keymaps for now
2020-11-10 16:04:46 +11:00
Garret G
53f11668a3 [Keyboard] kingly_keys/ave (#10042)
* Add configurator support for "The Ave." keyboard

* Update readme.md

* update misc nomenclature

* add punctuation

* fix miss-placed "0"

* update README.md

* del. duplicate "F11" in visual layout information

* Split PCB configurations into subfolders

* update layer template to new matrix title

* rm primary <keyboard>.c / <keyboard>.h files

* add new end line to both .h subfolder fiels

* Apply suggestions from code review

* tested update to RGB code

* update rgb code

* Apply suggestions from code review

* Apply suggestions from code review

* Apply suggestions from code review

* Update rules.mk

* Update rules.mk

* Delete rules.mk

* Delete rules.mk

* Update rules.mk

* Update config.h

* Update config.h

* Update keymap.c

* Update ortho.c

* Update ortho.h

* Update config.h

* Update keymap.c

* Update staggered.c

* Update staggered.h

* Apply suggestions from code review

* Update config.h

* Update keymap.c

* move and duplicate rules.mk file

* Update keyboards/kingly_keys/ave/readme.md

* Update config.h

* Update keyboards/kingly_keys/ave/config.h
2020-11-09 21:03:12 -08:00
elijahblake81
2ef68a84b6 Added color wheel that have QMK HSV values. (#8997)
I've converted the 360 color wheel to the 255 color wheel for QMK HSV values.
2020-11-10 15:57:43 +11:00
Mikkel Jeppesen
489bee0ee4 [Docs] redirect from /tutorial to /newbs (#10718)
* Added redirect from /tutorial to /newbs

* Fixed indentation

* Changed title of tutorial page
2020-11-09 20:33:15 -08:00
Nate Stein
ed8d1d1ae7 Add VIA Keymap for Worldspawn Gothic70. (#10617)
* Add VIA Keymap for Worldspawn Gothic70.

* Prevent LEDs from turning on at startup.

* Add license header to keymap.

* Fix Keymap Formatting.
2020-11-09 16:30:31 -08:00
Yan-Fa Li
f38a3b7408 [Keymap] little foot (#7305)
* Personal keymap

 - fix quoting in description

fix issue with userspace disabling audio

wip

Update keyboards/kingly_keys/little_foot/keymaps/yanfali/rules.mk

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

* Update keyboards/kingly_keys/little_foot/config.h

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

Co-authored-by: Yan-Fa Li <yanfa.li@fireeye.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Nick Brassel <nick@tzarc.org>
2020-11-10 09:44:22 +11:00
Chris Merrill
16fe4b8b77 Update massdrop/alt and arm_atsam/led_matrix to fix #10813 (#10818)
* Update massdrop/alt keyboard to fix Caps Lock LED flickering.

* Fix Caps-lock LED during underglow-only for massdrop/ctrl

* Update keyboards/massdrop/ctrl/keymaps/default/keymap.c
2020-11-09 13:33:40 -08:00
Jordan Egstad
84ca67f158 [Keymap] idobo:egstad (#10783)
* feat: new keymapping for idobo

* fix: added licenses. converted int to uint8_t where applicable

* fix: addressed zvecr stylistic enhancements

* fix: replaced rgblight_sethsv with rgblight_sethsv_noeeprom
2020-11-09 11:54:15 -08:00
SeungheonOh
cb80b59e93 Adding few Korean translated files (#5895)
* Korean Translation

Korean Translation

* Korean translation

* more Korean translations
2020-11-10 06:11:04 +11:00
yiancar
95bbd799a4 [Keyboard] Keebwerk MEGA Initial commit (#10777)
* Initial commit

- Add Keebwerk Mega pcb
- Update wilba rgb code

* Update keyboards/keebwerk/mega/ansi/keymaps/default/keymap.c

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

* Update keyboards/keebwerk/mega/ansi/keymaps/via/readme.md

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

* Update keyboards/keebwerk/mega/ansi/rules.mk

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

* Update keyboards/keebwerk/mega/ansi/keymaps/via/keymap.c

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

* Update keyboards/keebwerk/mega/ansi/keymaps/default/readme.md

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

* Update keyboards/keebwerk/mega/ansi/ansi.c

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

* Update keyboards/keebwerk/mega/ansi/ansi.c

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

* Update keyboards/keebwerk/mega/ansi/ansi.c

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

* Update keyboards/keebwerk/mega/ansi/ansi.c

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

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-11-09 10:39:25 -08:00
Joel Challis
1ff5ee255f Indicator LEDs as config (#10816)
* First pass

* Add config options to docs

* Update some wording

* Slight tidy up of backlight caps logic

* Init pin to correct state

* Move init location

* Reverse default state
2020-11-08 22:31:16 +00:00
kb-elmo
9cd3ffa5ba add missing physical layout options and VIA support for Sesame (#10471)
* add missing physical layout options and VIA support for Sesame

* Apply suggestions from code review

* make split rshift standard again
2020-11-08 01:07:53 -08:00
Drashna Jaelre
ff7f70314e [Keyboard] Fix unused variables in mschwingen modelm (#10811)
Specifically, the lgreen variable isn't used, and avr-gcc 8.x complains about this. To prevent it from being an issue, just set all of these led variables to be unused.
2020-11-07 21:35:21 -08:00
TJ
db829c9453 Add big spacebar defaults to Underscore33 (#10731)
* add big spacebar default

* add rev1 big space

* add big spacebar default

* add rev1 big space

* Fixed copyright statements
Removed unused RGBRST keycode and bootmagic swaps
2020-11-07 20:04:32 -08:00
Zach White
bd1c048a76 Add qmk info -l to show the layouts too (#10882) 2020-11-07 19:36:47 +00:00
Zach White
4d33d72975 New command: qmk lint (#10761)
* Basic qmk lint command

* check for keymap readme

* change the workflow from qmk info to qmk lint

* add a strict mode

* parsing -> parse

* document qmk lint

* small info logging cleanup

* Apply suggestions from code review

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

* honor --strict in more places

* change the job name to lint

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-11-07 09:56:08 -08:00
Joe Wasson
7ce5402417 Updates to Talljoe's Keymaps (#10115)
* Minor Tweak

* Refactor spacebar defines.

* Add TMO50 layout

* Rename Atreus keymap.

* Refactor Atreus for readability.

* Eliminate tapdance quote and tweak maltroff.

* Factor out tapdance.

* Add some fancy combos and keys.

* Remove combos for now because they cause pain.

* WIP visualizer

* Alternate method for reset

* WIP2 visualizer

* Layer text tweak.

* Add made-up layout Nortron as a combination of Norman and Maltron.

* Add backspace.

* Add Talljoe keymap to Prime E.

* Fix double-colon so it doesn't press enter if shift is released early.

* Use new make command.

* Bring some modern standards into code and add licenses.

* Remove QMK_KEYBOARD_CONFIG_H and fixup QMK_KEYBOARD_H.

* Move from `biton32` to `get_highest_layer`.

* Remove PREVENT_STUCK_MODIFIERS

* Update keyboards/thevankeyboards/minivan/keymaps/talljoe-minivan/config.h
2020-11-06 17:16:22 -08:00
Jonathan Rascher
b5ebdf1b3a [Keymap] bcat keymaps and userspace (#10705)
Add Eco keymap, factor Crkbd keymap to community layout, other minor tweaks

* Remove outdated Crkbd Ctrl key positioning info

* Add Left Alt key to Lily58 keymap

* Lily58 no longer overrides default TAPPING_TERM

* Refactor Crkbd keymap to use new community layout

* Fix underglow animations for Crkbd w/ Split Common

* Add initial Eco keymap

* Update outdated reference to Crkbd layout

* Add keymap links to userspace readme

* Add copyright notices to files changed in this PR
2020-11-05 22:41:06 -08:00
yulei
d7c90d805f add dp60 indicator mode (#8801)
* add dp60 indicator mode

* update according to #7720

* added license header and move the ws2812 codes to a seperate c file

* fixed conflict with master
2020-11-05 21:36:04 -08:00
kaylanm
5f2c434954 E85 backlight & LED indicator updates (#10678)
* Enable in-switch backlight on e85 for VIA keymaps.

Update LED indicator code for e85 hotswap/soldered PCBs.
2020-11-05 20:58:00 -08:00
X-Bows Tech
f2eb080aa2 Add support for 4 IS31FL3731 devices (#10860)
This is a simple change.Support for IS31FL3731 has been changed from 2 to 4.
2020-11-05 19:58:46 +00:00
Brandon Schlack
f12dcb0659 [Keymap] add brandonschlack userspace and keymaps (#10411) 2020-11-04 21:55:03 -08:00
Endemoniada
262a607334 [Keymap] add ai03/polaris:mekberg (#10508)
* Add keymap for Polaris

* Change back to KC_NUBS for <> key

* Add GPL header from default files

* Change to new way of flashing in readme
2020-11-04 13:49:49 -08:00
Ryan
7ef98e7f61 CLI: Add qmk clean (#10785) 2020-11-04 19:18:47 +00:00
katawajojo
d46fa2274c Adds support for XD84 Pro (#9750)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: katawajojo <vibri@localhost>
Co-authored-by: katawajojo <katawajojo@vibri.local>
2020-11-04 11:39:12 +11:00
Ryan
e024147ce5 Freyr refactor (#10833) 2020-11-04 10:39:11 +11:00
Ryan
c60cafae41 KC60 refactor (#10834) 2020-11-02 16:55:22 -08:00
Drashna Jaelre
38162af5a7 [Keyboard] Fixes for PloopyCo mouse and readmes (#10841) 2020-11-03 00:17:05 +00:00
kaylanm
e680af98d2 Enable extrakeys, mousekeys for all VIA keymaps. (#10740) 2020-11-02 21:23:05 +00:00
Reibl János Dániel
4ba0cb7ebc Add OLED support for Riblee F411 (#10778)
* Add OLED support for Riblee F422

* Fix typo
2020-11-02 21:20:22 +00:00
yiancar
4b839db384 NK65 eeprom compatibility with 128KB and 256KB (#10804)
* NK65 define hack for 128kb 256kb versions of F303

* Updated to chibios define
2020-11-03 06:09:48 +11:00
ai03
e041ec1655 Add support for Noxary Vulcan (#10822)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: ai03 <sarcaphx510@gmail.com>
2020-11-03 00:45:02 +11:00
Frothy
75201c73a0 Enable media keys support for Canoe VIA keymap (#10829) 2020-11-03 00:35:38 +11:00
Ryan
8e71d3d053 Phantom refactor (#10805) 2020-11-02 20:23:54 +11:00
Ryan
e69da2db2c qmk info: Add --ascii flag (#10793)
* `qmk info`: Add `--ascii` flag

* Fix typo

* Force ASCII for Windows/MSYS2

* Make it gooder

* Remove redundant windows check

* ...And this too

* Make pytest work on Windows
2020-11-02 00:41:01 -08:00
Rich Saunders
dc40f00aaf [Keymap] Corrected the dvorak layout for kinesis advantage (#10808) 2020-11-01 17:25:50 -08:00
Xelus22
c1481629fd [Keyboard] Fix keyboard matrix scan rate with F072 (#10226)
* fix matrix scan rate

* Update trinityxttkl.c

* Update rev2.c
2020-11-01 16:44:38 -08:00
James Young
83eecdce22 [Keyboard] nullbitsco/nibble Configurator rework (#10814)
* nullbitsco/nibble: rework LAYOUT_all

... and update via keymap accordingly.

* compress info.json LAYOUT_all tree

Only changes the white space.

* rebuild info.json LAYOUT_all tree

Note: this commit makes the visual layout the ANSI layout with a split left Shift, instead of being the same as the ISO layout.

* unify code styles

Make logically-unchanged code blocks similar in appearance to logically-changed blocks.

* correct LAYOUT_iso key sequence

Move ISO Enter's object to its proper place.
2020-11-01 12:42:50 -08:00
MechMerlin
780b7722fb [Keyboard] VIA Support: Exent 65% (#10797)
* exent VIA support

* minor cleanups

* Update keyboards/exent/config.h

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

* Update keyboards/exent/config.h

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

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-11-01 11:50:23 -08:00
KnoblesseOblige
86ac56cd7f [Keyboard] Add keebsforall/freebird60 (#10774)
* Added ad/freebird60.

* Moved freebird60 keyboard. Added VIA keymap.

* Updated `keebsforall/freebird60` README to include image.

* Update keyboards/keebsforall/freebird60/readme.md

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

* Update keyboards/keebsforall/freebird60/readme.md

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

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-11-01 11:13:34 -08:00
Ole Westendorff
c1e69bcef0 add 65_ansi_split_bs to default community layouts (#10770)
* add 65_ansi_split_bs to default community layouts

* Update layouts/default/65_ansi_split_bs/layout.json

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

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-11-01 11:09:32 -08:00
Brandon Claveria
78019c3e21 [Keyboard] add bebol keyboard (#10763)
* add bebol keyboard

* Change PID

* Update keyboards/handwired/swiftrax/bebol/rules.mk

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

Co-authored-by: Swiftrax <swiftrax@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2020-11-01 10:57:30 -08:00
Keys of Kings
76bc235508 [Keyboard] Add keysofkings folder and twokey keyboard (#10754)
* Add keysofkings folder and twokey keyboard

* Update readme.md

* Update readme.md

* Update config.h

* Update config.h

* Update keymap.c

* Update twokey.c

* Update twokey.h

* Update keyboards/keysofkings/twokey/config.h

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

* Update keyboards/keysofkings/twokey/readme.md

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

* Update keyboards/keysofkings/twokey/rules.mk

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

* Update keyboards/keysofkings/twokey/rules.mk

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

* Update keyboards/keysofkings/twokey/readme.md

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

* Update info.json

* Update keymap.c

* Update keyboards/keysofkings/twokey/info.json

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

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-11-01 10:53:17 -08:00
Xyverz
fed9c97ddb [Keymap] Added layout for my Keyboardio Atreus (#10726)
* Adding Evan Travers' Keyboardio Atreus branch.

Initial commit of my KeyboardIO Atreus layout.
This is a direct copy of my default Atreus layout, with blank spaces
for the two additional keys.

* Added MACLOCK macro to keymap.c

* Updates to Keyboardio Atreus keymap and readme.

* Adding arrows to bottom row of RAISE and LOWER layers

* bringing the rest of the master branch to my working branch.

* Changes to my KeyboardIO Atreus keymap & readme

* Changes to keymap.

* Adding Evan Travers' Keyboardio Atreus branch.

Initial commit of my KeyboardIO Atreus layout.
This is a direct copy of my default Atreus layout, with blank spaces
for the two additional keys.

* Added MACLOCK macro to keymap.c

* Updates to Keyboardio Atreus keymap and readme.

* Adding arrows to bottom row of RAISE and LOWER layers

* bringing the rest of the master branch to my working branch.

* Changes to my KeyboardIO Atreus keymap & readme

* Changes to keymap.

* Added GPL2+ compatible license header.

Co-authored-by: Ian Sterling <503326@MC02YT9K9LVCF.tld>
2020-11-01 10:50:12 -08:00
Seth
9f0dbc21a3 [Keyboard] beta support for the Rocketboard-16 macro/num pad (#10688)
* Firmware initial commit, still has a few bugs - mainly rotary encoders do not work and needs cleaning up

* Fixed the volume control issue and limited the RGB brightness (can be really bright), added the ability to switch LED mode with left encoder click, and added via support (untested)

* Remove define that should go in config.h

* Removed define that should be in config.h

* Removed LTO_ENABLE as suggested - has issues on ARM

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

* Added the correct define for OLED screen size

* Applied suggested change to remove description

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

* Made suggested change to remove backslashes

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

* Suggested change made to rgblight

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

* Suggested change made to rgblight

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

* Suggested change made to remove backslashes

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

* Suggested change made to rgblight

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

* Update keyboards/rocketboard_16/rocketboard_16.c

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

* Added suggested comments

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

* Made suggested changes to rules file

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

* Added suggested change to rgblight

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

* Added info.json for QMK configurator

* Update readme.md

* This change makes the firmware work... through magic... seriously, no idea - but it works!

* Updated dimming step, OLED functionality, and rules for formatting

- Changed the dimming step size for smoother dimming with the reduced range
- Added lots of OLED functionality - QMK logo and title at top, num/caps/scroll lock status, and backlight brightness level
- Updated the rules.mk file to comply more closely with the formatting guidelines

* Fixed tab issues

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

* Updated to use bootmagic lite with the key that usually turns rgb on/off

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-11-01 10:46:00 -08:00
MelGeek
c731432765 [Keyboard] Fix IIC stall bug (#10700)
* Add Z70Ultra which is a Hotsawp RGB 65% keyboard

* Update keyboards/melgeek/z70ultra/z70ultra.h

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

* Update keyboards/melgeek/z70ultra/keymaps/default/keymap.c

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

* Update keyboards/melgeek/z70ultra/keymaps/via/keymap.c

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

* Update keyboards/melgeek/z70ultra/z70ultra.c

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

* Update keyboards/melgeek/z70ultra/readme.md

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

* Update keyboards/melgeek/z70ultra/rev1/rules.mk

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

* Update keyboards/melgeek/z70ultra/z70ultra.c

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

* Update keyboards/melgeek/z70ultra/z70ultra.c

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

* Update keyboards/melgeek/z70ultra/z70ultra.c

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

* Update keyboards/melgeek/z70ultra/z70ultra.h

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

* Update readme.md

* Update info.json

update the name of layout to consistent the keyboard.

* Update keyboards/melgeek/z70ultra/z70ultra.c

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

* Update keyboards/melgeek/z70ultra/z70ultra.c

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

* Update keyboards/melgeek/z70ultra/info.json

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

* Update keyboards/melgeek/z70ultra/keymaps/default/keymap.c

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

* Update keyboards/melgeek/z70ultra/keymaps/via/keymap.c

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

* Add Z70Ultra

* Support Z70Ultra
  [Modified] info.json to support two different layouts
  [Add]      rules.mk to support default folder

* Update keyboards/melgeek/z70ultra/rev1/rules.mk

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

* Update keyboards/melgeek/z70ultra/config.h

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

* remove excessive arguments from LAYOUT_split_space

* Update keyboards/melgeek/z70ultra/info.json

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/melgeek/z70ultra/info.json

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/melgeek/z70ultra/keymaps/default/keymap.c

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/melgeek/z70ultra/z70ultra.h

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/melgeek/z70ultra/z70ultra.h

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/melgeek/z70ultra/keymaps/via/keymap.c

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/melgeek/z70ultra/keymaps/default/keymap.c

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/melgeek/z70ultra/rev1/rules.mk

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/melgeek/z70ultra/keymaps/via/keymap.c

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/melgeek/z70ultra/keymaps/default/keymap.c

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/melgeek/z70ultra/keymaps/via/keymap.c

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/melgeek/z70ultra/keymaps/via/keymap.c

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>

* Use macro replace with the literal for CS & SW

* Update keyboards/melgeek/z70ultra/z70ultra.c

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

* [Keyboard]  Support MJ61 which is a 60% ANSI STD Hotswap RGB keyboard

* Update keyboards/melgeek/mj61/mj61.c

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

* Update keyboards/melgeek/mj61/mj61.c

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

* [Keyboard] MJ61 Add license header for files and the link for readme

* Update keyboards/melgeek/mj61/readme.md

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

* Update keyboards/melgeek/mj61/rev1/config.h

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

* Update keyboards/melgeek/mj61/rev1/rules.mk

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

* Update keyboards/melgeek/mj61/mj61.c

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

* Update keyboards/melgeek/mj61/mj61.c

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

* Add GPL for files

* Update keymaps/default/keymap.c

* Update keymaps/via/keymap.c

* Update keyboards/melgeek/z70ultra/z70ultra.c

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

* Update keyboards/melgeek/z70ultra/z70ultra.c

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

* [Fixed] remove this code cause it's useless.

Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2020-11-01 10:38:08 -08:00
nopunin10did
f450bdbb41 [Keyboard] Add The Railroad (rev 0) (#10474)
* Add The Railroad keyboard, rev 0

* Update keyboards/nopunin10did/railroad/config.h

Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/nopunin10did/railroad/config.h

Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>

* Update config.h

* Update keyboards/nopunin10did/railroad/rules.mk

Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/nopunin10did/railroad/config.h

Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/nopunin10did/railroad/keymaps/nopunin10did/keymap.c

Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/nopunin10did/railroad/keymaps/nopunin10did/keymap.c

Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/nopunin10did/railroad/keymaps/nopunin10did/keymap.c

Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/nopunin10did/railroad/keymaps/default/keymap.c

Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/nopunin10did/railroad/keymaps/default/keymap.c

Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/nopunin10did/railroad/rules.mk

Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>

* Update rules.mk

* Update config.h

* Update keymap.c

* Update keyboards/nopunin10did/railroad/railroad.h

Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>

* Update railroad.h

* Update keyboards/nopunin10did/railroad/railroad.c

Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/nopunin10did/railroad/keymaps/default/keymap.c

Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>

* Update keyboards/nopunin10did/railroad/rules.mk

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

* Update keyboards/nopunin10did/railroad/config.h

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/nopunin10did/railroad/readme.md

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>

* Updates from peer review to correct render

* Update keyboards/nopunin10did/railroad/info.json

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/nopunin10did/railroad/readme.md

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

* Update keyboards/nopunin10did/railroad/info.json

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>

* Relocate most files inside rev0

Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-11-01 10:21:09 -08:00
Brandon Claveria
4fa1924bd7 add beegboy keyboard (#10762)
* add layout macro

* add beegboy keymaps

* fix matrix pins

* Change PID

* Update keyboards/handwired/swiftrax/beegboy/config.h

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

Co-authored-by: Swiftrax <swiftrax@gmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-11-01 00:13:06 +00:00
Joel Challis
7b33897b97 protect against those who develop with their fork on master (#10815) 2020-10-31 22:50:53 +00:00
Ryan
d705918f50 Efreet refactor (#10806) 2020-11-01 06:56:08 +11:00
Drashna Jaelre
a3f1defcd4 [Keyboard] Fix function references IDB 60 (#10810)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Thorben <34752364+itspngu@users.noreply.github.com>
2020-10-31 23:15:26 +11:00
Ryan
fb579aae49 Fix implicit declaration of function 'get_host_led_state' (#10803) 2020-10-30 13:29:19 +00:00
Ryan
67654e4a82 DK60 refactor (#10791) 2020-10-31 00:14:13 +11:00
Ryan
952a4c8312 Hnah108 refactor (#10787)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2020-10-30 22:06:47 +11:00
Ryan
b9ea10a80d YMD75 rev3: fix swapped backslash and enter (#10801) 2020-10-30 01:32:24 -07:00
Jay Greco
4e72224aa3 [Keyboard] Adding info.json files for NIBBLE 65% keyboard (#10769) 2020-10-29 01:29:31 -07:00
Leon Anavi
1bfec6ddd9 [Keymap] Add KiCad keymap for ANAVI Macro Pad 8 (#10766)
KiCad is a cross platform, free and open source electronics design
automation (EDA) suite. It was used to create ANAVI Macro Pad 8.

This keymap contains 2 layers for KiCad hotkeys and a 3rd layer
for controlling the backlighting and the underlighting.

- Layer for KiCad Schematic hotkeys:
  m - to move selected component
  r - to rotate selected component
  w - to wire components
  v - to edit component value
  F1 - zoom in
  F2 - zoom out
  F4 - zoom center

- Layer for KiCad PCB layout hotkets:
  m - to move selected component
  r - to rotate selected component
  x - to route a new track
  v - to add a via
  F1 - zoom in
  F2 - zoom out
  F4 - zoom center

Signed-off-by: Leon Anavi <leon@anavi.org>
2020-10-29 01:28:13 -07:00
Benjamin Grosse
db9204c7e1 [Keymap] add an autoclicker to my plaid keymap (#10743) 2020-10-29 01:26:15 -07:00
Drashna Jaelre
27b8046867 [Keymap] Add OBS keymap for ANAVI Macro Pad 8 (#10742)
OBS keymap for ANAVI Macro Pad 8 with the following shortcuts:

- Shortcuts useful for switching scenes on the 1st row:
  Hold Left Control, Shift, Alt and GUI and press F9
  Hold Left Control, Shift, Alt and GUI and press F10
  Hold Left Control, Shift, Alt and GUI and press F11
  Hold Left Control, Shift, Alt and GUI and press F12
- Center to screen: Ctrl+D
- Fit to screen: Ctrl+F
- Move source to top of sources list: Ctrl+Home

Signed-off-by: Leon Anavi <leon@anavi.org>
2020-10-29 01:22:34 -07:00
AlisGraveNil
359aff6c49 Roadster Edit (#10784) 2020-10-29 19:22:26 +11:00
Harshit Goel
36f4f1e9b8 [Keyboard] Redox via support added (#10710)
* add via config for Redox OG

* Fix name typo

* clean up via file and move to via pull

* fix typo in readme, align config.h properly
2020-10-29 01:16:51 -07:00
Alby Barber
f487b726cd [Keyboard] Adding Little Alby the Arduino Keyboard (#10713)
* Adding little Alby keyboard

* Adding readme and expanding programs

* Updating readme

* adding spirit guide

* changes based on review

* Updating config name and readme

* Update keyboards/littlealby/mute/rules.mk

Update tabbing

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

* Update keyboards/littlealby/mute/rules.mk

Remove other boards

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

* Changes based on review

* Update keyboards/littlealby/mute/config.h

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

* Update keyboards/littlealby/mute/rules.mk

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

* Update keyboards/littlealby/readme.md

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

* Update keyboards/littlealby/readme.md

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

* Update keyboards/littlealby/mute/config.h

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

* Adding unique vendor and Product IDs

* Update keyboards/littlealby/mute/config.h

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

* 0x4D55 = MU

* Adding default map

Co-authored-by: Alby Barber <albybarber@gmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-10-29 01:15:38 -07:00
Ryan
5cecc1ea1e Add brightness level API to OLED driver (#10772)
* Add brightness level API to OLED driver

* Set default brightness to 255
2020-10-29 00:12:50 -07:00
bintobean
b9ed9d33d3 [Keyboard] Add via keymap to E6.5 (#10771)
* Added basic via keymap

* Added via keymaps and changed config Product and Vendor ID

* Update keyboards/exclusive/e65/keymaps/via/keymap.c

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

* Update keyboards/exclusive/e65/config.h

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

* Refactored via/keymap.c to use LAYOUT_all

* Refactored e65.h to remove nested matrix layouts

* Previous commit missed LAYOUT_65_ansi_blocker. Fixed

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-10-29 00:00:38 -07:00
kaylanm
2ac0927fd7 [Keyboard] Add via keymap for percent booster (#10768) 2020-10-28 23:53:27 -07:00
James Young
9dad914841 xelus/kangaroo: fix info.json layout macro reference (#10765) 2020-10-28 23:20:45 -07:00
Adrian
50481ce7ed [Keyboard] Added polilla keyboard (squashed) (#10686) 2020-10-28 22:35:37 -07:00
Cameron Moon
74a2edd903 docs(massdrop alt/ctrl): update link to loader releases (#10781)
* docs(massdrop alt): update link to loader releases

Update the link to the Massdrop Loader releases page to point to the releases index rather than release 0.0.1

* docs(massdrop ctrl): update link to loader releases
2020-10-29 14:35:11 +11:00
James Young
805e13a6d0 [Keyboard] KBDfans Bella Soldered tidy-up (#10753)
* KBDfans Bella Soldered: add readme

* add image to readme

* tidy-up Configurator layout data

Key positioning was not true to the assembled board.

* reduce readme redundancy
2020-10-28 18:45:10 -07:00
Yasha Mostofi
fcd55e2f04 [Keyboard] Add Via support for TG4x (#10571)
* Update vendor ID

* New default layout with RESET mapped

* Add Via keymap

* Update README

* Update keyboards/tg4x/keymaps/via/rules.mk

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

* Update keyboards/tg4x/config.h

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

* Delete config.h

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

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

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-10-28 18:04:47 -07:00
Angel Rojas
8685409784 GEN ONE Eclipse_65 keyboard addition (#10669)
* Add files via upload

* Add files via upload

* Add files via upload

* Update config.h

* Update rules.mk

* Update config.h

* Update config.h

* Update config.h

* Update config.h

* Add files via upload

* Removing duplicate files

* Resolve VID and PID collisions as requested

Taken the 0xFEED for vendor ID as suggested in vendor documentation and an available PID

* add a GPL2+ compatible license header as requested

Added the GPL2+ header to keymap.c file

* Update keyboards/genone/eclipse_65/config.h

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

* Update keyboards/genone/eclipse_65/readme.md

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

* Update keyboards/genone/eclipse_65/eclipse_65.c

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

* Update keyboards/genone/eclipse_65/rules.mk

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

* Update keyboards/genone/eclipse_65/keymaps/default/keymap.c

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

* Update keyboards/genone/eclipse_65/keymaps/default/keymap.c

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

* Update keyboards/genone/eclipse_65/eclipse_65.h

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

* Corrected items on rules.mk as suggested 

Thanks for the comment
I removed suggested items, corrected some spacing issues, and added suggested items.

* Deleted genone_main.c file

Thanks for the comment.
Deleted genone_main.c file as requested

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-10-28 15:45:36 -07:00
Ryan
1d85fe176a VN66 refactor (#10776) 2020-10-29 06:14:11 +11:00
Ryan
a42e3ba2cb Stella refactor (#10775) 2020-10-29 06:13:52 +11:00
Guillaume Gérard
c745cbb77a [Keymap] greatwizard userspace and ortho 4x12 and 5x12 keymaps (#9584) 2020-10-28 10:20:06 -07:00
Zach White
6b1ae7e6aa add rsync to the api update process 2020-10-27 10:48:55 -07:00
stanrc85
a602ef75fb [Keyboard] Add Projectkb/alice/rev2 LAYOUT_alice support (#10697)
* my alice community layout

* add LAYOUT_alice support to projectkb/alice/rev2

* add addition BSPC key to default layout

* add define to support LAYOUT_default
2020-10-27 10:35:38 -07:00
Reibl János Dániel
1ba93875ba [Keyboard] Add handwired F411 (#10504)
Co-authored-by: Janos Daniel Reibl <janos.daniel.reibl@protonmail.com>
2020-10-28 01:39:51 +11:00
Drashna Jaelre
33074bcbad [Keyboard] Bug fixes and improvements to PloopyCo devices (#10573)
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-10-27 17:09:11 +11:00
Ryan
555b1640b2 Add layout: 65_iso_blocker_split_bs (#10733)
* Add layout: 65_iso_blocker_split_bs

* Add layout to readme
2020-10-26 16:56:34 -07:00
Sergey Vlasov
f149c07d68 Fix KEYBOARD_SHARED_EP incompatibility with VIA (#9930)
The `KEYBOARD_SHARED_EP=yes` option was breaking the VIA support,
because the raw HID interface number in this case was 0 instead of 1,
and the VIA app depends on the exact interface number for raw HID.
Change the interface ordering to put the shared interface before the raw
HID interface if `KEYBOARD_SHARED_EP` is enabled, so that the raw HID
interface can keep its number.
2020-10-27 10:40:59 +11:00
Ryan
2c92ee1f56 Allow modified keycodes in Unicode input (#10658) 2020-10-27 06:14:56 +11:00
Zach White
0c42f91f4c Generate api data on each push (#10609)
* add new qmk generate-api command, to generate a complete set of API data.

* Generate api data and push it to the keyboard repo

* fix typo

* Apply suggestions from code review

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

* fixup api workflow

* remove file-changes-action

* use a more mainstream github action

* fix yaml error

* Apply suggestions from code review

Co-authored-by: Erovia <Erovia@users.noreply.github.com>

* more uniform date handling

* make flake8 happy

* Update lib/python/qmk/decorators.py

Co-authored-by: Erovia <Erovia@users.noreply.github.com>

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Erovia <Erovia@users.noreply.github.com>
2020-10-25 14:48:44 -07:00
James Young
8ef82c466e manta60: update Configurator layout data (#10756) 2020-10-25 18:07:02 +00:00
Erovia
ad86894ae7 Rename keyboard-level readmes to lower-case (#10759)
This is the recommendation in the [PR
Checklist](https://docs.qmk.fm/#/pr_checklist?id=keyboard-prs) and it
will make working with them easier in the CLI/API/etc.
2020-10-25 15:23:42 +00:00
Filip Paryż
af455a8368 [Keyboard] Freoduo - handwired split ortho keyboard. (#10724)
* Freoduo v1 - with fixes from @fauxpark and rebased to master branch of QMK.

* One more suggested fix from @fauxpark

* Fixes after @drashna review.
2020-10-24 16:54:38 -07:00
James Young
ac37a94e49 emajesty/eiri: fix info.json key sequence (#10751)
* emajesty/eiri: info.json debug linting

* fix info.json key sequence
2020-10-25 00:07:30 +01:00
Blake
24ae9232e2 draytronics/scarlet: add website and key labels to info.json (#10747)
* Correctly name keyboard in info.json

* Added website and layout key labels to info.json
2020-10-24 12:28:34 -07:00
AlisGraveNil
14cb662280 [keyboard] Add Roadster support (#10698)
* Roadster

* Update keyboards/clawsome/roadster/rules.mk

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

* Update keyboards/clawsome/roadster/config.h

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

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-10-24 19:17:07 +01:00
James Young
3d183ed7a0 draytronics/scarlet: fix info.json data (#10746) 2020-10-24 13:09:28 +01:00
James Young
4e30f4d102 doodboard/duckboard: fix info.json data (#10745) 2020-10-24 13:07:10 +01:00
Leon Anavi
329eb4b8df [Keymap] Add OBS keymap for ANAVI Macro Pad 8
OBS keymap for ANAVI Macro Pad 8 with the following shortcuts:

- Shortcuts useful for switching scenes on the 1st row:
  Hold Left Control, Shift, Alt and GUI and press F9
  Hold Left Control, Shift, Alt and GUI and press F10
  Hold Left Control, Shift, Alt and GUI and press F11
  Hold Left Control, Shift, Alt and GUI and press F12
- Center to screen: Ctrl+D
- Fit to screen: Ctrl+F
- Move source to top of sources list: Ctrl+Home

Signed-off-by: Leon Anavi <leon@anavi.org>
2020-10-24 10:00:47 +03:00
Joel Challis
bf92957ff2 Add additional auto labeler rules (#10704)
* Auto label all the things

* Makefiles are core changes

* Add label to submodule changes
2020-10-24 01:29:17 +01:00
stanrc85
33bd17a68a [Keymap] my alice community layout (#10696) 2020-10-23 17:11:52 -07:00
Benjamin Grosse
7daad08a91 [Keymap] plaid keymap with custm LED animation (#10701) 2020-10-23 17:10:45 -07:00
Anne Demey
d689f76110 [Keyboard] Add Terrazzo Keyboard (#10408)
* Ciao Terrazzo!

* Keymap updates

* Adding info json
Cleaning up keymap files
Readme updates with template

* Coding style updates

* Removing vscode files

* PR feedback updates

* biton32 -> get_highest_layer update
Adding license headers
2020-10-23 15:14:17 -07:00
Alabahuy
5d2deaca06 [Keyboard] add via support and fix info.json for rartlice (#10690)
* Update info.json

* Create keymap.c

* Create config.h

* Create rules.mk

* Update keymap.c

* Update keymap.c
2020-10-23 14:58:54 -07:00
Fidel Coria
8e7517aebc [Keyboard] Add pteron44 keyboard (#10708)
* Add pteron44

* Apply suggestions from code review

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

* Apply suggestions from code review part 2

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

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-10-23 14:31:24 -07:00
null-ll
b5f425b275 [Keyboard] add Basketweave keyboard (#10729)
* add basketweave keyboard

* Fixed missing key in info.json layout

* Update keyboards/basketweave/rules.mk

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

* Update keyboards/basketweave/readme.md

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

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-10-23 14:18:55 -07:00
kb-elmo
47ce1a9ed0 [Keyboard] make Canoe Gen2 indicator configurable (#10722) 2020-10-23 14:12:03 -07:00
Leon Anavi
85f344db49 [Keymap] Add Zoom keymap for ANAVI Macro Pad 8 (#10715)
Zoom keymap for ANAVI Macro Pad 8 with the following shortcuts:

* Alt+V: Start/stop video
* Alt+A: Mute/unmute my audio
* Alt+M: Mute/unmute audio for everyone except the host
* Alt+S: Start/stop screen sharing
* Alt+R: Start/stop local recording
* Alt+P: Pause/resume recording
* Alt+C: Start/stop cloud recording
* Switch to 2nd layout to control backlighting and underlighting

Signed-off-by: Leon Anavi <leon@anavi.org>
2020-10-23 14:11:17 -07:00
coarse
225af5d161 [Keyboard] Add Cordillera PCB (#10711)
* Add initial Cordillera config

* Update readme

* Update info.json layouts

* Update preview image

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

* Remove extra rules

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

* Update bootmagic rule

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

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-10-23 14:10:04 -07:00
Ryan
870cc37365 Fix two qmk info complaints (#10737)
* Fix two `qmk info` complaints

* Oops
2020-10-23 21:03:06 +01:00
Drashna Jaelre
9093f877a2 [Keyboard] Fix Moonlander indicator LEDs during sleep (#10683) 2020-10-23 20:13:14 +11:00
Xelus22
5e9c078c78 [Core] IS31FL3731/36/37 bug fix (#10612)
* 3731 bug fix

* bug fixes
2020-10-23 18:08:17 +11:00
André Silva
fe50bee988 Update shell.nix (#10712)
* nix-shell: update nixpkgs reference

* nix-shell: add missing python dependency
2020-10-23 17:50:05 +11:00
Jay Greco
999326acc8 Add nullbits nibble (#9250)
* Add NIBBLE keyboard

* Update VID for VIA compatibility

* Add QMK PR feedback

* Update matrix_init_remote_kb()

* Update with requested changes

Clean up config, makefile rules, and keymap files

* Update with changes for unified ANSI/ISO layout

* Add NO_USB_STARTUP_CHECK note in readme

* Add license info, update with PR changes

-Refactor encoder, via_extras code
-Refactor VIA specific code to live in keymap folder
-Remove non-inclusive naming in remote keyboard.c/h
-Add documentation to remote_keyboard.c
-Add compiler check for vusb_detect for non-avr micros

* Fix print formatter in encoder handler

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

* Small PR updates

-Remove unneded matrix code from nibble.c
-Clean up include code in nibble_encoder.h

* Update Big LED headerfile

-Declare Big LED functions in header file (derp)

* Update keyboards/nullbitsco/nibble/nibble.c

-Update with drashna's suggested CAPS LED code change

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

* Update keyboards/nullbitsco/nibble/rules.mk

-Update with drasha's suggested makefile formatting changes

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

* Fix caps_lock typo

Co-authored-by: Nick Brassel <nick@tzarc.org>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2020-10-23 17:47:14 +11:00
KgOfHedgehogs
8cbaea9e8d [Keyboard] Fix jian backlight related ifdefs (#10679)
* Add jian backlight enabled ifdefs

* Fix adavnced layout LAYOUT_dips usage
2020-10-22 20:16:33 -07:00
Mika Kuitunen
e7d8ccdbb2 [Keyboard] Add support for Tunks Ergo33 keyboard (#10665)
* [Keyboard] Add support for Tunks Ergo33

* [Keyboard] Ergo33: Code style fixes

* [Keyboard] Ergo33: Add GPL license headers

* [Keyboard] Ergo33: remove keymap_config declarations

* Apply suggestions from code review

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

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-10-22 20:08:56 -07:00
mechlovin
c45d7e526c Add Cospad VIA support (#10642)
* Add Cospad VIA support

* Update keymap.c
2020-10-22 20:06:50 -07:00
mechlovin
f078980fb1 [Keyboard] Add infinity88 PCB, add VIA support for Kanu (#10531)
* add infinity88 PCB

* Update rules.mk

* Update info.json

* Add VIA support Kanu PCB

* Update keyboards/mechlovin/infinity88/rules.mk

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

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-10-22 19:55:32 -07:00
Draevin
619eb0071e [Keymap] Add Draevin userspace and maps (#10581)
* Initial userspace

* DZ60 map

* Quefrency map

* Sinc map

* Set up MAKE key for all personal maps

* Light userspace cleanup

* Formatting and comments zzz...

* Licensing and userspace README

* Swap: EXTRAFLAGS -> LTO_ENABLE in userspace rules.mk

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

* Improve KC_MAKE: KC_ENT -> \n

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

* Swap left grouping on _FN for pairs

* Add '?' -> backslash on _FN

* Remove commented code

* Organize lines in rules.mk

* Add left hand scroll keys

* Move configs to config.h

* License blitz

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-10-22 19:46:46 -07:00
Ryan
2b9b267e8e Fix RGB matrix for ATmegaxxU2 (#10723) 2020-10-23 12:21:56 +11:00
Ryan
f9bd9d3b26 c2json: Fix TypeError on MSYS2 (#10709) 2020-10-23 12:21:32 +11:00
Félix Sanz
168ce1a743 Update keymap_spanish_dvorak.h (#10213)
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-10-23 04:42:34 +11:00
Adrian
120c42255b Added EEPROM emulation for STM32F042x6 series processors (#10685)
* Added STM32F042x6 support for EEPROM emulation

* Default to lower stack size on STM32F042

* Moved stack setting

* Re-moved stack definition

* Removed unnecessary check
2020-10-22 21:05:01 +11:00
csc027
f9853433c1 csc027/keymap-updates (#10250) 2020-10-22 20:12:55 +11:00
James Young
caf61a19c6 GH60 v1.3: update default keymap (#10703) 2020-10-21 15:52:56 -07:00
Ramon Imbao
ca6a3e0832 Add the Mona keyboard (#10702) 2020-10-21 10:04:39 +01:00
Joel Challis
4b2da8daf4 Update PR labeler to use pull_request_target (#10695)
* Update labeler to use pull_request_target

* Add back whitespace

* Add CI label
2020-10-20 14:01:53 +01:00
Ryan
c3ce06c2e7 Fix CLI warning for Massdrop udev rule (#10691) 2020-10-20 04:36:18 +11:00
M-AS
9f1f43bb86 [Keymap] Updated personal Massdrop CTRL keymap (#10649)
* initial port of keymap to latest qmk version

* forgot to add space cadet shift, fixed

* corrected colors and added color macros

* added custom rgb matrix effects

* enabled extrakey

* updated readme

* Added GPL3 License Headers

* Added images to readme

* clang-format

* Apply suggestions from code review

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

* renamed README.md to readme.md

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-10-18 16:30:24 -07:00
AnthonyL
c4d87f3073 [Keyboard] Add IDOBAO ID87 (#10577)
* Add IDOBAO ID87.

* Layout changes.

 * Updated rules.mk
 * Implemented capslock led.
 * Updated readme to new version.
 * Fixed the info.info.json for the new layout.
 * Updated RGB number config.h.
 * Update rules.mk to try and line up nicely.

* Fix via keymap.keymap.c

* Fix all the auto-created labels.

 * Update keymaps again.

* Add additional RGB commands.

* Update keyboards/id87/info.json

Format update.

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

* Update keyboards/id87/readme.md

Remove quotations.

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

* Update keyboards/id87/readme.md

Change Flash to Flashing

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

* Update keyboards/id87/rules.mk

Alignment Fix

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

* Update keyboards/id87/info.json

Remove qmk_converter link meta.

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>

Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2020-10-18 16:16:42 -07:00
Casey Webster
8bb2eeaabb [Keymap] add cwebster2 userspace and keymaps (#10541)
* Adding my keymap

* Add a starter keymap for kyria

* Updated keymap

* Add auto shift, tapping modifications and gravatar oled bitmap

* Add flashing helper scripts

* Updates to my keymap

* Enable raw hid and rgblight sleep

* Cleanup

* Updated keymap and board features

* Remove some RGB modes for space

* Start working on a miryoku-like keymap.

This adds homerow mods to my keymap on the base layer and adds
a game layer that doesnt have them

* more work on keymaps

* Fine tuning home row mods

* update keymap

* Keymap update

* add split transport

* keymap

* cherry pick from develop

* merge develop

* fix

* keymap iterations

* Refactoring

* continued refactoring

* messing with rgb

* update layer coloring

* continued refactoring

* more features

* modifier color

* Move stuff to userspace

* Moving stuff out to userspace

* refactoring into userspace

* More refactoring

* Fixing some errors in the keymap and changing the oled output

* Sync zen1 keymap to my userspace config

* Update copyright notices and revert transport.c to master

* Swap tab and esc

* Remove a file accidentally created

* Use LTO_ENABLE to turn on Link_Time_Optimization

* Drop modtap thumbs on game layout

* Update game keymap

* More iteration on the game keymap

* Add oled indications of kitty and i3 mod

* Promote colemak to default

* Update tapping term for modtap keys

* Add per key tapping term

* Use left modifiers on right side
2020-10-18 13:55:38 -07:00
GG
c492dd7912 [Keyboard] Add support for ikki68 (#10576)
* ikki68 from wuquestudio

* NEW ikki68

* Add support for ikki68

* Update readme.md

Co-authored-by: root <root@LAPTOP-GZH.localdomain>
2020-10-18 13:52:03 -07:00
Jack Humbert
7622678bd0 [Keymap] Adds Jack's 4x12 grid keymap (#10586)
* add jack's planck keymap

* move to community layouts

* add image to readme

* fix imgae

* fix image for real

* Update layouts/community/ortho_4x12/jackhumbert/config.h

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

Co-authored-by: Drashna Jaelre <drashna@live.com>
2020-10-18 13:51:15 -07:00
mexsistor
0728a6b753 [Keyboard] Add mexsistor/ludmila (#10506)
* Add files via upload

* Update keyboards/mexsistor/ludmila/config.h

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

* Update keyboards/mexsistor/ludmila/ludmila.h

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

* Update ludmila.h

* Update keymap.c

Disable unnecessary code

* Update rules.mk

* Update matrix.c

* Update keyboards/mexsistor/ludmila/rules.mk

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

* Update keymap.c

* Update keyboards/mexsistor/ludmila/readme.md

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

* Update keymap.c

* Update keymap.c

* Update ludmila.h

* Update keyboards/mexsistor/ludmila/readme.md

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

* Update keyboards/mexsistor/ludmila/rules.mk

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

* Update keyboards/mexsistor/ludmila/rules.mk

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

* Update keyboards/mexsistor/ludmila/rules.mk

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

* Update keyboards/mexsistor/ludmila/keymaps/default/keymap.c

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

* Update keyboards/mexsistor/ludmila/readme.md

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

* Add files via upload

* Add files via upload

* Delete config.h

* Delete

* Update readme.md

* Update readme.md

* Delete tapdance timing

* Delete matrix.c

* Create matrix.c

* Deleted ludmila, add ludmila_v1

* Update readme.md

* add ludmila

* delete ludmila_v1, create ludmila

* Create matrix.c

* Change in matrix.c code and sustitute yes/lite custom_matrix in rules.mk

* Update keymap.c

* Add description; Change on RGB PIN

* Revert "Add description; Change on RGB PIN"

This reverts commit cfbe534925.

* config.h and rules.mk update

* Update keyboards/mexsistor/ludmila/info.json

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/mexsistor/ludmila/info.json

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/mexsistor/ludmila/rules.mk

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: U-MEXSISTOR\Macropads <Kevin M>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2020-10-18 13:45:47 -07:00
Alabahuy
e468380be6 [Keyboard] add rartlice (#10495)
* Create bootloader_defs.h

* Create chconf.h

* Create config.h

* Create halconf.h

* Create info.json

* Create mcuconf.h

* Create rartlice.c

* Create rartlice.h

* Create readme.md

* Update readme.md

* Create rules.mk

* Create keymap.c

* Update config.h

* Update rules.mk

* Update config.h

* Update keymap.c

* Update rules.mk

* Delete bootloader_defs.h

* Update rules.mk
2020-10-18 13:41:53 -07:00
Joel Challis
8456625655 Initial auto PR labeler config (#9814)
* Initial auto PR labeler config

* Update .github/labeler.yml

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>

* Update since develop merged

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

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Nick Brassel <nick@tzarc.org>
2020-10-18 20:40:37 +01:00
npspears
6ad813e811 [Keyboard] Plexus75 (#10668)
* Added Plexus75 PCB

* Update keyboards/plexus75/readme.md

* Update keyboards/plexus75/rules.mk

* Update config.h

* Update config.h

* Update keyboards/plexus75/readme.md

* Update keyboards/plexus75/rules.mk

* Update keyboards/plexus75/config.h

* Update keyboards/plexus75/readme.md

* Update keyboards/plexus75/info.json

* Update keyboards/plexus75/info.json

* Update keyboards/plexus75/info.json

* Added License Header

* Update plexus75.h

added license header
2020-10-18 11:07:22 -07:00
MelGeek
4d22bc9de0 [Keyboard] Melgeek Mojo75 (#10426)
* [Keyboard]  Support MJ61 which is a 60% ANSI STD Hotswap RGB keyboard

* Update keyboards/melgeek/mj61/mj61.c

* Update keyboards/melgeek/mj61/mj61.c

* [Keyboard] MJ61 Add license header for files and the link for readme

* Update keyboards/melgeek/mj61/readme.md

* Update keyboards/melgeek/mj61/rev1/config.h

* Update keyboards/melgeek/mj61/rev1/rules.mk

* Update keyboards/melgeek/mj61/mj61.c

* Update keyboards/melgeek/mj61/mj61.c

* [Keyboard] Support MoJo75 which is a 75% Hotswap RGB keyboard

* Update melgeek/mojo75 vid and pid
Add    melgeek/mojo75/rev1/rev1.c

* Update MelGeek mojo75 VIA layout
2020-10-18 11:05:01 -07:00
yiancar
d49dcdd667 Nebula12 RGBLIGHT buffer workaround (#10555)
* Work around for rgblight buffer

* Update config.h

* Prettify

* Clip led range
2020-10-19 00:37:33 +11:00
Cmdr. Emily
f952d4f7b7 Support OpenDeck 32 keyboard (#10305)
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-10-18 18:37:02 +11:00
Dylan Straw
8be058d55d Enabled the use of VIA for KPRepublic BM40 (#10677)
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-10-18 18:36:43 +11:00
Drashna Jaelre
40e694ea0d Add last breaking changes log to sidebar (#10680)
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-10-18 15:46:47 +11:00
Zach White
445cd95d17 Improve ANSI support and --no-color (#10537)
* Improve ANSI support and --no-color

* tweak when levelname gets stripped of ansi

* sync with latest milc

* make questions work with both milc versions

* pyformat
2020-10-17 21:01:11 -07:00
Morten Linderud
7d5ba88e6f 50-qmk.rules: Move udev rules from documentation into a file (#10664)
This makes it overall easier to package for downstream distributions
instead of keeping tabs with inline documentation.

Signed-off-by: Morten Linderud <morten@linderud.pw>
2020-10-17 20:30:18 +01:00
Pierre Chevalier
704934c427 Ferris reorganization (#10564)
* Add my own keymap

* Layer 0: Workman
* Layer 1: RSTHD (my own take on it)
* Layer 2: Mouse
* Layer 3: Navigation
* Layer 4: Symbols right
* Layer 5: Symbols left
* Layer 6: Fn keys
* Layer 7: Numbers
* Layer 8: Vim and misceallaneaous accessible from any other layer

* Move the current code to a 0.1 folder in preparation for upcoming changes

Version 0.2 is currently being prototyped and uses an arm chip which
will need its own firmware.

There is also the Ferris sweep which uses a pro-micro compatible board
which will need its own directory.

* Move Ferris out of handwired and into the light

The keyboard is now well out of the prototype phase as tens of them have
been produced and acquired by various people.

With 0.2 coming out, adoption is going to increase again as the board
will be available for sale at some recognized vendors.

Now is probably a good time to recognize its status as more than a
prototype :)

* Add code for the Ferris Sweep (a.k.a cradio)

The Ferris Sweep is a creation of the talented @davidphilipbarr, a.k.a DPB.
It has the key layout of a Ferris and uses a pro-micro connected to the
switches via direct pins so that diodes are not needed and the soldering
is minimal.

With their blessing, I took the code for it from DPB's own repo:
https://github.com/davidphilipbarr/36keys/tree/master/qmk/cradio
and did some adaptations such as removing commented out code, enabling
EE_HANDS and mouse keys for consistency with my existing Ferris code.

* Fix indentation in rules.mk

* Fix indentation in sweep's config

* Remove unnecessary lines from sweep's rules.mk

* Remove unnecessary lines from sweep's rules.mk

* Rename 0.1 to 0_1

This avoids the dot looking like the separation between a filename and
its extension.

In the same commit, bring matrix.c to the 0_1 folder as this was needed
for the code to compile properly (matrix.c is referred to in the readme
under `0_1` and is specific to that revision of the firmware).

* Update copyright statements for Sweep
2020-10-17 12:20:34 -07:00
dezli
47ea522e79 [Keymap] Add miniMACRO5 User Keymaps (#10595)
* add kabraxcis keymap

this is a user keymap for a member of my group-buy. this is the creation commit

* add voaraq keymap

this is a user keymap for a member of my group-buy

* update kabraxcis keymap

* add licenses
2020-10-17 12:16:28 -07:00
Sendy YK
f663ba5ed0 mrsendyyk Keymap Cleanup (#10539)
* Cleanup

* Update info.json

* Update license notice

* Fix license notice

* Update keymap.c

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Add RGB Light Mode Static Gradient 26

* Update
2020-10-17 12:14:02 -07:00
Sönke Hahn
de0153f339 [Keymap] moonlander:shahn-neo (#10667)
* basic keys working

* more stuff

* more stuff

* empty upper layers

* more stuff

* cleanup

* more stuff

* add the letter 'j'

* add '0' to layer 4

* implement umlauts and eszett with menu key as compose key

* add comment

* renamed layout

* change copyright notice

* add separate readme file
2020-10-17 12:09:03 -07:00
yulei
3633330e1a Fix iNETT Studio SQUARE.X overcurrent issue (#10660) 2020-10-17 12:05:21 -07:00
Drashna Jaelre
855dd2d218 [Keymap] Drashna Code Cleanup (#10656)
* Add Launchpad keymap

Note: RGB and Audio won't work when using B pins for audio

* Add support for rgb matrix on launchpad

* Update config for launchpag

* Disable wait on layer change

* Update config for ErgoDox EZ

* Fixup rgb light userspace code

* Move Corne layout to community layouts folder

* Update config for corne to support community layouts

* Add license header to files

* Minor cleanup of userspace config

* Update Pimironi Trackball code

* Increase debounce time on ergodox

* Fix keymap handling

* Enable wait for USB for moonlander

* Update/add license headers

* fix review issues
2020-10-17 11:46:57 -07:00
Ramon Imbao
aa1c1c3865 [Keyboard] AELITH (#10652)
* Add AELITH keyboard

* Add AELITH keyboard

* Update keyboards/ramonimbao/aelith/rules.mk

* Update keyboards/ramonimbao/aelith/config.h

* Update keyboards/ramonimbao/aelith/keymaps/via/rules.mk

* Update keyboards/ramonimbao/aelith/readme.md

* Update keyboards/ramonimbao/aelith/readme.md

* Update keyboards/ramonimbao/aelith/config.h

* Update keyboards/ramonimbao/aelith/config.h

* Change layouts based on suggestions

* Add LAYOUT_alice macro
2020-10-17 11:40:30 -07:00
James Young
de68d294ec [Docs] add "Adding Default Keymaps to QMK Configurator" doc (#10049) 2020-10-18 03:50:32 +11:00
Ryan
f0a1ab5488 MSYS and WSL installation improvements (#10593) 2020-10-18 02:45:21 +11:00
Ryan
1a2a838bc2 [CLI] Remove check for Input Club boards (#10636) 2020-10-18 02:44:38 +11:00
Blake
67474f7e3f [Keyboard] Draytronics Scarlet (#10655)
* Initial test version of Scarlet keyboard

* First commit of DElec Scarlet

* Change to new Draytronics branding

* Update to keyboard details

Update to keyboard details and link to Draytronics website.

* Update keyboards/draytronics/scarlet/scarlet.h

* Update keyboards/draytronics/scarlet/rules.mk

* Update keyboards/draytronics/scarlet/readme.md

* Update keyboards/draytronics/scarlet/keymaps/default/keymap.c

* Update keyboards/draytronics/scarlet/config.h

* Update keymap.c

* Update config.h

* Update scarlet.h

* Update keyboards/draytronics/scarlet/config.h

* Update keyboards/draytronics/scarlet/config.h

* Update keyboards/draytronics/scarlet/scarlet.h

* Update keyboards/draytronics/scarlet/keymaps/default/keymap.c
2020-10-17 03:58:51 -07:00
shela
39c473a639 [Docs] Update feature_combo.md of Japanese document (#10671) 2020-10-17 03:19:06 -07:00
cole smith
f871f7a56f [Keyboard] Boardsource spooky (#10521)
* added spooky keyboard t
o boardsouce folder

* restoring to clean start I think

* added back in my files for this keyboard

* Update keyboards/boardsource/holiday/spooky/config.h

* Update keyboards/boardsource/holiday/spooky/keymaps/rip_mx/keymap.c

* Update keyboards/boardsource/holiday/spooky/readme.md

* Update keyboards/boardsource/holiday/spooky/spooky.h

* updated all keymaps to support 2x3 ortho

* Apply suggestions from code review
2020-10-17 03:17:44 -07:00
Reid Sox-Harris
e0bdd51177 [Keymap] add keyhive/maypad:eosti (#10663)
* adds eosti/maypad keymap

* remove empty function calls
2020-10-17 02:31:21 -07:00
JagdPietr Reneksson
fba7d4e32f Move Drakon to jagdpietr directory (#10155)
* move drakon to jagdpietr directory

* Updates

Recommended changes implemented in this commit due to progress loss in last commit

* Update vusb

* Update keyboards/jagdpietr/drakon/drakon.c
2020-10-17 02:11:51 -07:00
Danny
cab49809ad Add Levinson VIA support (#10631)
* Add Levinson VIA keymap

* Update product IDs for Levinson to embed version number

* Add layer 3 access

* Apply suggestions from code review
2020-10-17 00:38:35 -07:00
Danny
42696a4f8c Update Nyquist VIA support and default keymap (#10632)
* Update default and via keymaps

* Update PID and enabled build options

* Update keyboards/keebio/nyquist/keymaps/via/keymap.c

* Update keyboards/keebio/nyquist/rev3/rules.mk

* Update keyboards/keebio/nyquist/rev2/rules.mk
2020-10-17 00:30:26 -07:00
Xelus22
a4dfa45f37 [Keyboard] Add Kangaroo (#10511)
* roo initial

* update scannign t imes

* enable dma

* rename kangaroo

* updates

* update rules.mk

* keymap

* fix up config

* fix reamde

* fix up config

* update license headers

* rules.mk update

* info json

* Update keyboards/xelus/kangaroo/rules.mk
2020-10-17 00:18:50 -07:00
Garret G
616dc7dd5d [Keyboard] 45-ATS (#10104)
* add ats folder

* fix duplicate matrix key

* fix matrix issues

* fix missing comma in info.json

* clean up info.json

* rm game layer toggle in via keymap

* update via keymap rules.mk

* Update info.json

* clear up layout graphics

* Apply suggestions from code review

* Update 45_ats.c

* Update 45_ats.h

* Update config.h

* Update config.h

* Update keyboards/45_ats/keymaps/default/config.h

* Update keymap.c

* Update keyboards/45_ats/keymaps/default/keymap.c

* Update keymap.c

* Update keyboards/45_ats/keymaps/via/keymap.c

* Apply suggestions from code review

* Update keyboards/45_ats/config.h
2020-10-16 22:19:55 -07:00
Jakob Stendahl
44f9017cb8 Bm60rgb iso nordic keymap with sleepmode functional (#10510)
* Add nordic keymap

Changes from default:
- Change button right of `LSHIFT` to `KC_NUBS`
- Add some more keys to the second layer.

* Add sleepmode functionality

Added a sleepmode, this turns of the rgb_matrix if no key was pressed for x minutes. Not default on, so you have to enable it by defining `SLEEPMODE_ENABLED`.

* Move all sleepmode config to config.h, rename keymap

- Move all configurations for sleepmode to keymap config.h
- rename keymap to include reference to it having sleepmode (suggestion from guy the discord-server)
- add copyright in config.h

* Update keyboards/bm60rgb_iso/keymaps/iso_nordic_sleepmode/config.h

* Update keyboards/bm60rgb_iso/keymaps/iso_nordic_sleepmode/keymap.c

* Update keyboards/bm60rgb_iso/keymaps/iso_nordic_sleepmode/keymap.c

* Update keyboards/bm60rgb_iso/keymaps/iso_nordic_sleepmode/keymap.c

* Update keyboards/bm60rgb_iso/keymaps/iso_nordic_sleepmode/keymap.c

* Update keyboards/bm60rgb_iso/keymaps/iso_nordic_sleepmode/keymap.c
2020-10-16 21:29:15 -07:00
Harshit Goel
3c4fa68000 Make VIA config for redox_w (#10578)
* Make via config for redox_w

* Add missing layer function back, fixed typo and maintainer name
2020-10-16 16:01:19 -07:00
MelGeek
cb556b7a16 [Keyboard] Melgeek MJ64 (#10425)
* [Keyboard] Support MJ64 which is a 60% Hotswap RGB keyboard with arrows
and the size of left shift is 2.25U

* Update keyboards/melgeek/mj64/mj64.h

* Update keyboards/melgeek/mj64/keymaps/default/keymap.c

* Update keyboards/melgeek/mj64/keymaps/via/keymap.c

* Update keyboards/melgeek/mj64/keymaps/via/keymap.c

* Update keyboards/melgeek/mj64/keymaps/default/keymap.c

* Update keyboards/melgeek/mj64/keymaps/via/keymap.c

* Update keyboards/melgeek/mj64/rev2/rules.mk

* Update keyboards/melgeek/mj64/rev1/rules.mk

* Update keyboards/melgeek/mj64/keymaps/via/keymap.c

* Update keyboards/melgeek/mj64/info.json

* Update keyboards/melgeek/mj64/info.json

* Update keyboards/melgeek/mj64/rev1/config.h

* Update keyboards/melgeek/mj64/rev2/config.h

* Update the VID and PID in mj64/config.h
add the rev1/rev1.c
add the rev2/rev2.c
2020-10-16 15:18:06 -07:00
James Young
87317a3af6 [Keyboard] GH60 v1.3 (#10575)
* [Keyboard] GH60 v1.3 Support

* clean up info.json

Update key sizes and positioning.

* add readme

* add image to readme

* fix up info.json LAYOUT_all

* add LAYOUT_60_ansi

I'm guessing at this based on a photo of the PCB. Chances are high that this isn't fully functional.

* add matrix block comment to v1p3.h

* add default_ansi keymap

* add keymap readme files

* fix LAYOUT_60_ansi macro

* enable 60_ansi Community Layout support

* add layouts for 60_ansi_arrow

Add LAYOUT_60_ansi_arrow and LAYOUT_60_ansi_arrow_split_bs macros. (The user helping me test runs the split Backspace variant.)

* add Tsangan, HHKB, and 64_ansi layout macros

* add factory keymaps and layout info

* update copyright headers

I mean... if someone's gotta "own" this code...

* fix broken factory_* keymaps
2020-10-16 22:23:32 +01:00
jotix
92b7dff3ae Jotix ortho_4x12_layout (#10647)
* back_to_the_roots

* mouse layer is gone

* mouse layer is gone
2020-10-16 11:09:57 -07:00
MelGeek
0dc74dd8c4 [Keyboard] Add Z70Ultra - a Hotsawp RGB 65% keyboard (#9202)
* Add Z70Ultra which is a Hotsawp RGB 65% keyboard

* Update keyboards/melgeek/z70ultra/z70ultra.h

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

* Update keyboards/melgeek/z70ultra/keymaps/default/keymap.c

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

* Update keyboards/melgeek/z70ultra/keymaps/via/keymap.c

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

* Update keyboards/melgeek/z70ultra/z70ultra.c

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

* Update keyboards/melgeek/z70ultra/readme.md

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

* Update keyboards/melgeek/z70ultra/rev1/rules.mk

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

* Update keyboards/melgeek/z70ultra/z70ultra.c

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

* Update keyboards/melgeek/z70ultra/z70ultra.c

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

* Update keyboards/melgeek/z70ultra/z70ultra.c

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

* Update keyboards/melgeek/z70ultra/z70ultra.h

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

* Update readme.md

* Update info.json

update the name of layout to consistent the keyboard.

* Update keyboards/melgeek/z70ultra/z70ultra.c

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

* Update keyboards/melgeek/z70ultra/z70ultra.c

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

* Update keyboards/melgeek/z70ultra/info.json

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

* Update keyboards/melgeek/z70ultra/keymaps/default/keymap.c

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

* Update keyboards/melgeek/z70ultra/keymaps/via/keymap.c

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

* Add Z70Ultra

* Support Z70Ultra
  [Modified] info.json to support two different layouts
  [Add]      rules.mk to support default folder

* Update keyboards/melgeek/z70ultra/rev1/rules.mk

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

* Update keyboards/melgeek/z70ultra/config.h

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

* remove excessive arguments from LAYOUT_split_space

* Update keyboards/melgeek/z70ultra/info.json

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/melgeek/z70ultra/info.json

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/melgeek/z70ultra/keymaps/default/keymap.c

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/melgeek/z70ultra/z70ultra.h

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/melgeek/z70ultra/z70ultra.h

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/melgeek/z70ultra/keymaps/via/keymap.c

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/melgeek/z70ultra/keymaps/default/keymap.c

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/melgeek/z70ultra/rev1/rules.mk

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/melgeek/z70ultra/keymaps/via/keymap.c

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/melgeek/z70ultra/keymaps/default/keymap.c

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/melgeek/z70ultra/keymaps/via/keymap.c

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/melgeek/z70ultra/keymaps/via/keymap.c

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>

* Use macro replace with the literal for CS & SW

* Update keyboards/melgeek/z70ultra/z70ultra.c

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

* [Keyboard]  Support MJ61 which is a 60% ANSI STD Hotswap RGB keyboard

* Update keyboards/melgeek/mj61/mj61.c

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

* Update keyboards/melgeek/mj61/mj61.c

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

* [Keyboard] MJ61 Add license header for files and the link for readme

* Update keyboards/melgeek/mj61/readme.md

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

* Update keyboards/melgeek/mj61/rev1/config.h

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

* Update keyboards/melgeek/mj61/rev1/rules.mk

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

* Update keyboards/melgeek/mj61/mj61.c

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

* Update keyboards/melgeek/mj61/mj61.c

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

* Add GPL for files

* Update keymaps/default/keymap.c

* Update keymaps/via/keymap.c

* Update keyboards/melgeek/z70ultra/z70ultra.c

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

* Update keyboards/melgeek/z70ultra/z70ultra.c

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

Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2020-10-16 09:11:17 -07:00
holtenc
6529cbac0d [Keyboard] Add Prime_E RGB PCB (#10615)
* add Prime_E RGB PCB

* Update keyboards/primekb/prime_e/config.h

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

* Update keyboards/primekb/prime_e/std/config.h

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

* Update keyboards/primekb/prime_e/config.h

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

* Update keyboards/primekb/prime_e/rgb/readme.md

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

* Update keyboards/primekb/prime_e/rgb/readme.md

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

* Update keyboards/primekb/prime_e/rgb/rules.mk

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

* Update keyboards/primekb/prime_e/rules.mk

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

* Update keyboards/primekb/prime_e/std/readme.md

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

* Update keyboards/primekb/prime_e/std/readme.md

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

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-10-15 22:41:44 -07:00
Andre Azzolini
139d28eaae [Docs] Add link to Tap-Hold Configuration Options from Mod-Tap (#10548) 2020-10-15 21:23:24 -07:00
Salicylic-acid3
a1f129edd5 [Keyboard] Added via support for JISplit89 (#10547)
-Changing the VID
-Add a keymap via
-Keymap and copyright fixes
2020-10-15 21:22:25 -07:00
Salicylic-acid3
73699cccbc [Keyboard] Add 7splus keyboard (#10538)
* Add 7splus keyboard.

A 85 keys ANSI Layout split keyboard.
Salicylic-acid3

* Update keyboards/7splus/keymaps/default/keymap.c

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

* Update keyboards/7splus/keymaps/salicylic/keymap.c

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

* Update keyboards/7splus/rules.mk

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

* Added VIA keymap and a few updates

Adding a VIA Keymap
Updating the key layout diagram
Copywrite added for salicylic keymap

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-10-15 21:12:09 -07:00
Spaceman
229dbcc547 Add via keymap for pancake (#10551)
* Add via keymap for pancake

* Add license to keymap

* Update rules.mk

* Update rules.mk

* Update keyboards/spaceman/pancake/config.h

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

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-10-15 22:11:33 +01:00
Joel Challis
c738ce2f65 Move SP-111 to vendor folder (#10633)
* Move SP-111 to vendor folder

* Fix space indentation
2020-10-15 12:05:44 -07:00
George Mao
c0b3034721 Add alice community layout (#10518)
* Added LAYOUT_alice

* Added fauxpark's suggestions as well as updating keymap graphic

* Added file header and used noroadleft's fix to the info.json for fast input mode
2020-10-15 19:23:35 +01:00
Raleigh Wayland
f90688e550 Adding Opus keyboard (#10628)
* Adding opus keyboard

* Preparing keyboard for PR

* Adding images to default keymap readme

* Changing VENDOR_ID

* Minor changes

* Changing PRODUCT_ID

* Removing comment

* Fixing tap dance issue

* #pragma once instead of #ifndef

* Resolving PR suggestions

* Removing ifndef

* Using lower resolution image

* Formatting comments

* Adjusting copyright year

Co-authored-by: Raleigh Wayland <raleigh.wayland@stormapp.com>
2020-10-15 19:19:51 +01:00
Harshit Goel
0f453bc5f7 Add VIA code to ergoTravel (#10493)
* Add VIA code to ergoTravel, VendorId changed to allow via

* Update LTO_ENABLE for via

* Accept comments from the QMK PR discussion

* Restore original rules.mk from qmk master, update via rules to remove redundant bootmagic

* rules update

* find and use unique VID without qmk. Used 0x4A50, did not find clash

* Removed unused via layer

* Reset hard to last clean commit, redo changes for Hex Translation and Enum
2020-10-15 11:11:23 -07:00
Reid Sox-Harris
21357b658a [keyboard] Maypad: Add additional layout (#10643)
* add split plus layout

* update README

* rename splitPlus to split_plus

* Update keyboards/keyhive/maypad/rules.mk

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

Co-authored-by: Joel Challis <git@zvecr.com>
2020-10-15 18:41:04 +01:00
Reid Sox-Harris
2c5ad9189c update eosti keymaps (#10610)
* adds eosti/planck keymaps

* updates eosti keymaps

* add header guard to bdn9 config.h

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

* reduce file size of compiled firmware

* move console disable to rules.mk

Co-authored-by: Joel Challis <git@zvecr.com>
2020-10-15 03:08:28 +01:00
2834 changed files with 93008 additions and 29734 deletions

42
.github/labeler.yml vendored Normal file
View File

@@ -0,0 +1,42 @@
core:
- quantum/**/*
- tmk_core/**/*
- drivers/**/*
- tests/**/*
- util/**/*
- platforms/**/*
- Makefile
- '*.mk'
dependencies:
- any:
- 'lib/**/*'
- '!lib/python/**/*'
keyboard:
- any:
- 'keyboards/**/*'
- '!keyboards/**/keymaps/**/*'
keymap:
- users/**/*
- layouts/**/*
- keyboards/**/keymaps/**/*
via:
- keyboards/**/keymaps/via/*
cli:
- bin/qmk
- requirements.txt
- lib/python/**/*
python:
- '**/*.py'
documentation:
- docs/**/*
translation:
- docs/fr-fr/**/*
- docs/es/**/*
- docs/ja/**/*
- docs/he-il/**/*
- docs/pt-br/**/*
- docs/zh-cn/**/*
- docs/de/**/*
- docs/ru-ru/**/*
CI:
- .github/**/*

42
.github/workflows/api.yml vendored Normal file
View File

@@ -0,0 +1,42 @@
name: Update API Data
on:
push:
branches:
- master
paths:
- 'keyboards/**'
- 'layouts/community/**'
jobs:
api_data:
runs-on: ubuntu-latest
container: qmkfm/base_container
# protect against those who develop with their fork on master
if: github.repository == 'qmk/qmk_firmware'
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 1
persist-credentials: false
- name: Generate API Data
run: qmk generate-api
- name: Install rsync
run: |
apt-get update && apt-get install -y rsync
- name: Upload API Data
uses: JamesIves/github-pages-deploy-action@3.7.1
with:
ACCESS_TOKEN: ${{ secrets.API_TOKEN_GITHUB }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
BRANCH: main
FOLDER: api_data/v1
CLEAN: true
GIT_CONFIG_EMAIL: hello@qmk.fm
REPOSITORY_NAME: qmk/qmk_keyboards
TARGET_FOLDER: v1

42
.github/workflows/develop_api.yml vendored Normal file
View File

@@ -0,0 +1,42 @@
name: Update Develop API Data
on:
push:
branches:
- develop
paths:
- 'keyboards/**'
- 'layouts/community/**'
jobs:
api_data:
runs-on: ubuntu-latest
container: qmkfm/base_container
# protect against those who work in their fork on develop
if: github.repository == 'qmk/qmk_firmware'
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 1
persist-credentials: false
- name: Generate API Data
run: qmk generate-api
- name: Install rsync
run: |
apt-get update && apt-get install -y rsync
- name: Upload API Data
uses: JamesIves/github-pages-deploy-action@3.7.1
with:
ACCESS_TOKEN: ${{ secrets.API_TOKEN_GITHUB }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
BRANCH: main
FOLDER: api_data/v1
CLEAN: true
GIT_CONFIG_EMAIL: hello@qmk.fm
REPOSITORY_NAME: qmk/qmk_keyboards_devel
TARGET_FOLDER: v1

37
.github/workflows/develop_update.yml vendored Normal file
View File

@@ -0,0 +1,37 @@
name: Update develop after master merge
on:
push:
branches:
- master
jobs:
develop_update:
runs-on: ubuntu-latest
if: github.repository == 'qmk/qmk_firmware'
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Checkout develop
run: |
git fetch origin master develop
git checkout develop
- name: Check if branch locked
id: check_locked
uses: andstor/file-existence-action@v1
with:
files: ".locked"
- name: Update develop from master
if: steps.check_locked.outputs.files_exists == 'false'
run: |
git config --global user.name "QMK Bot"
git config --global user.email "hello@qmk.fm"
git merge origin/master
git push origin develop

43
.github/workflows/docs.yml vendored Normal file
View File

@@ -0,0 +1,43 @@
name: Generate Docs
on:
push:
branches:
- master
paths:
- 'tmk_core/**'
- 'quantum/**'
- 'platforms/**'
- 'docs/**'
- '.github/workflows/docs.yml'
jobs:
generate:
runs-on: ubuntu-latest
container: qmkfm/base_container
# protect against those who develop with their fork on master
if: github.repository == 'qmk/qmk_firmware'
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 1
- name: Install dependencies
run: |
apt-get update && apt-get install -y rsync nodejs npm doxygen
npm install -g moxygen
- name: Build docs
run: |
qmk --verbose generate-docs
- name: Deploy
uses: JamesIves/github-pages-deploy-action@3.7.1
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
BASE_BRANCH: master
BRANCH: gh-pages
FOLDER: .build/docs
GIT_CONFIG_EMAIL: hello@qmk.fm

14
.github/workflows/labeler.yml vendored Normal file
View File

@@ -0,0 +1,14 @@
name: "Pull Request Labeler"
on:
pull_request_target:
types: [opened, synchronize, reopened, ready_for_review, locked]
jobs:
triage:
runs-on: ubuntu-latest
steps:
- uses: actions/labeler@main
with:
repo-token: "${{ secrets.GITHUB_TOKEN }}"
configuration-path: '.github/labeler.yml'

View File

@@ -6,7 +6,7 @@ on:
- 'keyboards/**'
jobs:
info:
lint:
runs-on: ubuntu-latest
container: qmkfm/base_container
@@ -27,7 +27,7 @@ jobs:
echo ${{ github.event.pull_request.base.sha }}
echo '${{ steps.file_changes.outputs.files}}'
- name: Run qmk info
- name: Run qmk lint
shell: 'bash {0}'
run: |
QMK_CHANGES=$(echo -e '${{ steps.file_changes.outputs.files}}')
@@ -45,10 +45,11 @@ jobs:
if [[ $KEYMAP_ONLY -gt 0 ]]; then
echo "linting ${KB}"
# TODO: info info always returns 0 - right now the only way to know failure is to inspect log lines
qmk info -l -kb ${KB} 2>&1 | tee /tmp/$$
!(grep -cq ☒ /tmp/$$)
: $((exit_code = $exit_code + $?))
qmk lint --keyboard ${KB} && qmk info -l --keyboard ${KB}
exit_code=$(($exit_code + $?))
fi
done
if [[ $exit_code -gt 255 ]]; then
exit 255
fi
exit $exit_code

1
.gitignore vendored
View File

@@ -16,6 +16,7 @@
*.swp
tags
*~
api_data/v1
build/
.build/
*.bak

View File

@@ -18,21 +18,16 @@ addons:
- ubuntu-toolchain-r-test
- llvm-toolchain-trusty-7
packages:
- pandoc
- diffutils
- dos2unix
- doxygen
- clang-format-7
- libstdc++-7-dev
install:
- npm install -g moxygen
script:
- git fetch --depth=50 origin $TRAVIS_BRANCH:$TRAVIS_BRANCH
- git rev-parse --short HEAD
- git diff --name-only HEAD $TRAVIS_BRANCH
- bash util/travis_test.sh
- bash util/travis_build.sh
- bash util/travis_docs.sh
after_script:
bash util/travis_compiled_push.sh
notifications:

View File

@@ -272,11 +272,24 @@ 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
@@ -447,7 +460,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)
MAKE_VARS := KEYBOARD=$$(CURRENT_KB) KEYMAP=$$(CURRENT_KM) REQUIRE_PLATFORM_KEY=$$(REQUIRE_PLATFORM_KEY)
# And the first part of the make command
MAKE_CMD := $$(MAKE) -r -R -C $(ROOT_DIR) -f build_keyboard.mk $$(MAKE_TARGET)
# The message to display
@@ -466,6 +479,8 @@ define BUILD
LOG=$$$$($$(MAKE_CMD) $$(MAKE_VARS) SILENT=true 2>&1) ; \
if [ $$$$? -gt 0 ]; \
then $$(PRINT_ERROR_PLAIN); \
elif [ "$$$$LOG" = "skipped" ] ; \
then $$(PRINT_SKIPPED_PLAIN); \
elif [ "$$$$LOG" != "" ] ; \
then $$(PRINT_WARNING_PLAIN); \
else \
@@ -637,12 +652,13 @@ else
endif
ifndef SKIP_VERSION
BUILD_DATE := $(shell date +"%Y-%m-%d-%H:%M:%S")
else
BUILD_DATE := 2020-01-01-00:00:00
endif
$(shell echo '#define QMK_VERSION "$(GIT_VERSION)"' > $(ROOT_DIR)/quantum/version.h)
$(shell echo '#define QMK_BUILDDATE "$(BUILD_DATE)"' >> $(ROOT_DIR)/quantum/version.h)
$(shell echo '#define CHIBIOS_VERSION "$(CHIBIOS_VERSION)"' >> $(ROOT_DIR)/quantum/version.h)
$(shell echo '#define CHIBIOS_CONTRIB_VERSION "$(CHIBIOS_CONTRIB_VERSION)"' >> $(ROOT_DIR)/quantum/version.h)
else
BUILD_DATE := NA
endif
include $(ROOT_DIR)/testlist.mk

1
api_data/_config.yml Normal file
View File

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

5
api_data/readme.md Normal file
View File

@@ -0,0 +1,5 @@
# QMK Keyboard Metadata
This directory contains machine parsable data about keyboards supported by QMK. The latest version is always available online at <https://keyboards.qmk.fm>.
Do not edit anything here by hand. It is generated with the `qmk generate-api` command.

View File

@@ -317,6 +317,13 @@ 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 $(TMK_PATH)/$(PLATFORM_KEY).mk
ifneq ($(strip $(PROTOCOL)),)
include $(TMK_PATH)/protocol/$(strip $(shell echo $(PROTOCOL) | tr '[:upper:]' '[:lower:]')).mk
@@ -352,7 +359,13 @@ $(KEYBOARD_OUTPUT)_INC := $(PROJECT_INC) $(GFXINC)
$(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
objs-size: build

View File

@@ -49,6 +49,7 @@ endif
include common_features.mk
include $(TMK_PATH)/common.mk
include $(QUANTUM_PATH)/sequencer/tests/rules.mk
include $(QUANTUM_PATH)/serial_link/tests/rules.mk
ifneq ($(filter $(FULL_TESTS),$(TEST)),)
include build_full_test.mk

View File

@@ -21,4 +21,5 @@ COMMON_VPATH += $(QUANTUM_PATH)/keymap_extras
COMMON_VPATH += $(QUANTUM_PATH)/audio
COMMON_VPATH += $(QUANTUM_PATH)/process_keycode
COMMON_VPATH += $(QUANTUM_PATH)/api
COMMON_VPATH += $(QUANTUM_PATH)/sequencer
COMMON_VPATH += $(DRIVER_PATH)

View File

@@ -17,9 +17,15 @@ SERIAL_PATH := $(QUANTUM_PATH)/serial_link
QUANTUM_SRC += \
$(QUANTUM_DIR)/quantum.c \
$(QUANTUM_DIR)/led.c \
$(QUANTUM_DIR)/keymap_common.c \
$(QUANTUM_DIR)/keycode_config.c
ifeq ($(strip $(DEBUG_MATRIX_SCAN_RATE_ENABLE)), yes)
OPT_DEFS += -DDEBUG_MATRIX_SCAN_RATE
CONSOLE_ENABLE = yes
endif
ifeq ($(strip $(API_SYSEX_ENABLE)), yes)
OPT_DEFS += -DAPI_SYSEX_ENABLE
OPT_DEFS += -DAPI_ENABLE
@@ -38,6 +44,13 @@ ifeq ($(strip $(AUDIO_ENABLE)), yes)
SRC += $(QUANTUM_DIR)/audio/luts.c
endif
ifeq ($(strip $(SEQUENCER_ENABLE)), yes)
OPT_DEFS += -DSEQUENCER_ENABLE
MUSIC_ENABLE = yes
SRC += $(QUANTUM_DIR)/sequencer/sequencer.c
SRC += $(QUANTUM_DIR)/process_keycode/process_sequencer.c
endif
ifeq ($(strip $(MIDI_ENABLE)), yes)
OPT_DEFS += -DMIDI_ENABLE
MUSIC_ENABLE = yes
@@ -114,6 +127,17 @@ else
SRC += $(PLATFORM_COMMON_DIR)/flash_stm32.c
OPT_DEFS += -DEEPROM_EMU_STM32F072xB
OPT_DEFS += -DSTM32_EEPROM_ENABLE
else ifeq ($(MCU_SERIES)_$(MCU_LDSCRIPT), STM32F0xx_STM32F042x6)
# 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
SRC += $(PLATFORM_COMMON_DIR)/eeprom_stm32.c
SRC += $(PLATFORM_COMMON_DIR)/flash_stm32.c
OPT_DEFS += -DEEPROM_EMU_STM32F042x6
OPT_DEFS += -DSTM32_EEPROM_ENABLE
else ifneq ($(filter $(MCU_SERIES),STM32L0xx STM32L1xx),)
OPT_DEFS += -DEEPROM_DRIVER
COMMON_VPATH += $(DRIVER_PATH)/eeprom
@@ -144,12 +168,14 @@ ifeq ($(strip $(RGBLIGHT_ENABLE)), yes)
endif
endif
VALID_MATRIX_TYPES := yes IS31FL3731 IS31FL3733 IS31FL3737 IS31FL3741 WS2812 custom
LED_MATRIX_ENABLE ?= no
ifneq ($(strip $(LED_MATRIX_ENABLE)), no)
ifeq ($(filter $(LED_MATRIX_ENABLE),$(VALID_MATRIX_TYPES)),)
$(error LED_MATRIX_ENABLE="$(LED_MATRIX_ENABLE)" is not a valid matrix type)
VALID_LED_MATRIX_TYPES := IS31FL3731 custom
# TODO: IS31FL3733 IS31FL3737 IS31FL3741
ifeq ($(strip $(LED_MATRIX_ENABLE)), yes)
ifeq ($(filter $(LED_MATRIX_DRIVER),$(VALID_LED_MATRIX_TYPES)),)
$(error LED_MATRIX_DRIVER="$(LED_MATRIX_DRIVER)" is not a valid matrix type)
else
BACKLIGHT_ENABLE = yes
BACKLIGHT_DRIVER = custom
@@ -157,72 +183,73 @@ ifneq ($(strip $(LED_MATRIX_ENABLE)), no)
SRC += $(QUANTUM_DIR)/led_matrix.c
SRC += $(QUANTUM_DIR)/led_matrix_drivers.c
endif
endif
ifeq ($(strip $(LED_MATRIX_ENABLE)), IS31FL3731)
OPT_DEFS += -DIS31FL3731
COMMON_VPATH += $(DRIVER_PATH)/issi
SRC += is31fl3731-simple.c
QUANTUM_LIB_SRC += i2c_master.c
ifeq ($(strip $(LED_MATRIX_DRIVER)), IS31FL3731)
OPT_DEFS += -DIS31FL3731 -DSTM32_I2C -DHAL_USE_I2C=TRUE
COMMON_VPATH += $(DRIVER_PATH)/issi
SRC += is31fl3731-simple.c
QUANTUM_LIB_SRC += i2c_master.c
endif
endif
RGB_MATRIX_ENABLE ?= no
VALID_RGB_MATRIX_TYPES := IS31FL3731 IS31FL3733 IS31FL3737 IS31FL3741 WS2812 custom
ifneq ($(strip $(RGB_MATRIX_ENABLE)), no)
ifeq ($(filter $(RGB_MATRIX_ENABLE),$(VALID_MATRIX_TYPES)),)
$(error RGB_MATRIX_ENABLE="$(RGB_MATRIX_ENABLE)" is not a valid matrix type)
endif
ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes)
ifeq ($(filter $(RGB_MATRIX_DRIVER),$(VALID_RGB_MATRIX_TYPES)),)
$(error "$(RGB_MATRIX_DRIVER)" is not a valid matrix type)
endif
OPT_DEFS += -DRGB_MATRIX_ENABLE
ifneq (,$(filter $(MCU), atmega16u2 atmega32u2))
# ATmegaxxU2 does not have hardware MUL instruction - lib8tion must be told to use software multiplication routines
OPT_DEFS += -DLIB8_ATTINY
endif
SRC += $(QUANTUM_DIR)/color.c
SRC += $(QUANTUM_DIR)/rgb_matrix.c
SRC += $(QUANTUM_DIR)/rgb_matrix_drivers.c
CIE1931_CURVE := yes
RGB_KEYCODES_ENABLE := yes
endif
ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes)
RGB_MATRIX_ENABLE := IS31FL3731
endif
ifeq ($(strip $(RGB_MATRIX_DRIVER)), IS31FL3731)
OPT_DEFS += -DIS31FL3731 -DSTM32_I2C -DHAL_USE_I2C=TRUE
COMMON_VPATH += $(DRIVER_PATH)/issi
SRC += is31fl3731.c
QUANTUM_LIB_SRC += i2c_master.c
endif
ifeq ($(strip $(RGB_MATRIX_ENABLE)), IS31FL3731)
OPT_DEFS += -DIS31FL3731 -DSTM32_I2C -DHAL_USE_I2C=TRUE
COMMON_VPATH += $(DRIVER_PATH)/issi
SRC += is31fl3731.c
QUANTUM_LIB_SRC += i2c_master.c
endif
ifeq ($(strip $(RGB_MATRIX_DRIVER)), IS31FL3733)
OPT_DEFS += -DIS31FL3733 -DSTM32_I2C -DHAL_USE_I2C=TRUE
COMMON_VPATH += $(DRIVER_PATH)/issi
SRC += is31fl3733.c
QUANTUM_LIB_SRC += i2c_master.c
endif
ifeq ($(strip $(RGB_MATRIX_ENABLE)), IS31FL3733)
OPT_DEFS += -DIS31FL3733 -DSTM32_I2C -DHAL_USE_I2C=TRUE
COMMON_VPATH += $(DRIVER_PATH)/issi
SRC += is31fl3733.c
QUANTUM_LIB_SRC += i2c_master.c
endif
ifeq ($(strip $(RGB_MATRIX_DRIVER)), IS31FL3737)
OPT_DEFS += -DIS31FL3737 -DSTM32_I2C -DHAL_USE_I2C=TRUE
COMMON_VPATH += $(DRIVER_PATH)/issi
SRC += is31fl3737.c
QUANTUM_LIB_SRC += i2c_master.c
endif
ifeq ($(strip $(RGB_MATRIX_ENABLE)), IS31FL3737)
OPT_DEFS += -DIS31FL3737 -DSTM32_I2C -DHAL_USE_I2C=TRUE
COMMON_VPATH += $(DRIVER_PATH)/issi
SRC += is31fl3737.c
QUANTUM_LIB_SRC += i2c_master.c
endif
ifeq ($(strip $(RGB_MATRIX_DRIVER)), IS31FL3741)
OPT_DEFS += -DIS31FL3741 -DSTM32_I2C -DHAL_USE_I2C=TRUE
COMMON_VPATH += $(DRIVER_PATH)/issi
SRC += is31fl3741.c
QUANTUM_LIB_SRC += i2c_master.c
endif
ifeq ($(strip $(RGB_MATRIX_ENABLE)), IS31FL3741)
OPT_DEFS += -DIS31FL3741 -DSTM32_I2C -DHAL_USE_I2C=TRUE
COMMON_VPATH += $(DRIVER_PATH)/issi
SRC += is31fl3741.c
QUANTUM_LIB_SRC += i2c_master.c
endif
ifeq ($(strip $(RGB_MATRIX_DRIVER)), WS2812)
OPT_DEFS += -DWS2812
WS2812_DRIVER_REQUIRED := yes
endif
ifeq ($(strip $(RGB_MATRIX_ENABLE)), WS2812)
OPT_DEFS += -DWS2812
WS2812_DRIVER_REQUIRED := yes
endif
ifeq ($(strip $(RGB_MATRIX_CUSTOM_KB)), yes)
OPT_DEFS += -DRGB_MATRIX_CUSTOM_KB
endif
ifeq ($(strip $(RGB_MATRIX_CUSTOM_KB)), yes)
OPT_DEFS += -DRGB_MATRIX_CUSTOM_KB
endif
ifeq ($(strip $(RGB_MATRIX_CUSTOM_USER)), yes)
OPT_DEFS += -DRGB_MATRIX_CUSTOM_USER
ifeq ($(strip $(RGB_MATRIX_CUSTOM_USER)), yes)
OPT_DEFS += -DRGB_MATRIX_CUSTOM_USER
endif
endif
ifeq ($(strip $(RGB_KEYCODES_ENABLE)), yes)
@@ -428,11 +455,14 @@ ifeq ($(strip $(SPLIT_KEYBOARD)), yes)
# Functions added via QUANTUM_LIB_SRC are only included in the final binary if they're called.
# Unused functions are pruned away, which is why we can add multiple drivers here without bloat.
ifeq ($(PLATFORM),AVR)
QUANTUM_LIB_SRC += i2c_master.c \
i2c_slave.c
ifneq ($(NO_I2C),yes)
QUANTUM_LIB_SRC += i2c_master.c \
i2c_slave.c
endif
endif
SERIAL_DRIVER ?= bitbang
OPT_DEFS += -DSERIAL_DRIVER_$(strip $(shell echo $(SERIAL_DRIVER) | tr '[:lower:]' '[:upper:]'))
ifeq ($(strip $(SERIAL_DRIVER)), bitbang)
QUANTUM_LIB_SRC += serial.c
else

150
docs/ChangeLog/20201128.md Normal file
View File

@@ -0,0 +1,150 @@
# QMK Breaking Change - 2020 Nov 28 Changelog
Four times a year QMK runs a process for merging Breaking Changes. A Breaking Change is any change which modifies how QMK behaves in a way that is incompatible or potentially dangerous. We limit these changes to 4 times per year so that users can have confidence that updating their QMK tree will not break their keymaps.
## Changes Requiring User Action :id=changes-requiring-user-action
### Relocated Keyboards :id-relocated-keyboards
#### Reduce Helix keyboard build variation ([#8669](https://github.com/qmk/qmk_firmware/pull/8669))
The build commands for the Helix keyboard are:
```
make <helix_build_name>:<keymap_name>
```
For `<helix_build_name>`, specify the one in the rightmost column of the table below, such as `helix`,` helix/pico`.
| before Oct 17 2019 | Oct 17 2019 | Mar 10 2020 | Nov 28 2020 |
| ---------------------|-------------------------|-------------------------| ------------------------|
| helix/rev1 | helix/rev1 | helix/rev1 | helix/rev1 |
| helix/pico | helix/pico | helix/pico | helix/pico |
| | helix/pico/back | helix/pico/back | helix/pico/back |
| | helix/pico/under | helix/pico/under | helix/pico/under |
| | | helix/pico/sc | -- |
| | | helix/pico/sc/back | helix/pico/sc |
| | | helix/pico/sc/under | -- |
| helix/rev2 (=helix) | helix/rev2 (=helix) | helix/rev2 (=helix) | -- |
| | helix/rev2/back | helix/rev2/back | -- |
| | helix/rev2/back/oled | helix/rev2/back/oled | ( --> helix/rev2/back) |
| | helix/rev2/oled | helix/rev2/oled | helix/rev2 (=helix) |
| | helix/rev2/oled/back | helix/rev2/oled/back | helix/rev2/back |
| | helix/rev2/oled/under | helix/rev2/oled/under | helix/rev2/under |
| | | helix/rev2/sc | -- |
| | | helix/rev2/sc/back | -- |
| | | helix/rev2/sc/oled | -- |
| | | helix/rev2/sc/oledback | helix/rev2/sc |
| | | helix/rev2/sc/oledunder | -- |
| | | helix/rev2/sc/under | -- |
| | helix/rev2/under | helix/rev2/under | -- |
| | helix/rev2/under/oled | helix/rev2/under/oled | ( --> helix/rev2/under) |
#### Update the Speedo firmware for v3.0 ([#10657](https://github.com/qmk/qmk_firmware/pull/10657))
The Speedo keyboard has moved to `cozykeys/speedo/v2` as the designer prepares to release the Speedo v3.0.
| Previous Name | New Name |
| :------------ | :------------------------- |
| speedo | cozykeys/speedo/v2 |
| -- | cozykeys/speedo/v3 **new** |
#### Maartenwut/Maarten name change to evyd13/Evy ([#10274](https://github.com/qmk/qmk_firmware/pull/10274))
Maartenwut has rebranded as @evyd13, and all released Maartenwut boards have moved.
| Previous Name | New Name |
| :--------------------- | :----------------- |
| maartenwut/atom47/rev2 | evyd13/atom47/rev2 |
| maartenwut/atom47/rev3 | evyd13/atom47/rev3 |
| maartenwut/eon40 | evyd13/eon40 |
| maartenwut/eon65 | evyd13/eon65 |
| maartenwut/eon75 | evyd13/eon75 |
| maartenwut/eon87 | evyd13/eon87 |
| maartenwut/eon95 | evyd13/eon95 |
| maartenwut/gh80_1800 | evyd13/gh80_1800 |
| maartenwut/gh80_3700 | evyd13/gh80_3700 |
| maartenwut/minitomic | evyd13/minitomic |
| maartenwut/mx5160 | evyd13/mx5160 |
| maartenwut/nt660 | evyd13/nt660 |
| maartenwut/omrontkl | evyd13/omrontkl |
| maartenwut/plain60 | evyd13/plain60 |
| maartenwut/pockettype | evyd13/pockettype |
| maartenwut/quackfire | evyd13/quackfire |
| maartenwut/solheim68 | evyd13/solheim68 |
| maartenwut/ta65 | evyd13/ta65 |
| maartenwut/wasdat | evyd13/wasdat |
| maartenwut/wasdat_code | evyd13/wasdat_code |
| maartenwut/wonderland | evyd13/wonderland |
#### Xelus Valor and Dawn60 Refactors ([#10512](https://github.com/qmk/qmk_firmware/pull/10512), [#10584](https://github.com/qmk/qmk_firmware/pull/10584))
The Valor and Dawn60 keyboards by Xelus22 both now require their revisions to be specified when compiling.
| Previous Name | New Name |
| :------------ | :---------------- |
| xelus/dawn60 | xelus/dawn60/rev1 |
| xelus/valor | xelus/valor/rev1 |
### Updated Keyboard Codebases :id=keyboard-updates
#### AEboards EXT65 Refactor ([#10820](https://github.com/qmk/qmk_firmware/pull/10820))
The EXT65 codebase has been reworked so keymaps can be used with either revision.
## Core Changes :id=core-changes
### Fixes :id=core-fixes
* Reconnect the USB if users wake up a computer from the keyboard to restore the USB state ([#10088](https://github.com/qmk/qmk_firmware/pull/10088))
* Fix cursor position bug in oled_write_raw functions ([#10800](https://github.com/qmk/qmk_firmware/pull/10800))
### Additions and Enhancements :id=core-additions
* Allow MATRIX_ROWS to be greater than 32 ([#10183](https://github.com/qmk/qmk_firmware/pull/10183))
* Add support for soft serial to ATmega32U2 ([#10204](https://github.com/qmk/qmk_firmware/pull/10204))
* Allow direct control of MIDI velocity value ([#9940](https://github.com/qmk/qmk_firmware/pull/9940))
* Joystick 16-bit support ([#10439](https://github.com/qmk/qmk_firmware/pull/10439))
* Allow encoder resolutions to be set per encoder ([#10259](https://github.com/qmk/qmk_firmware/pull/10259))
* Share button state from mousekey to pointing_device ([#10179](https://github.com/qmk/qmk_firmware/pull/10179))
* Add advanced/efficient RGB Matrix Indicators ([#8564](https://github.com/qmk/qmk_firmware/pull/8564))
* OLED display update interval support ([#10388](https://github.com/qmk/qmk_firmware/pull/10388))
* Per-Key Retro Tapping ([#10622](https://github.com/qmk/qmk_firmware/pull/10622))
* Allow backlight duty cycle limit ([#10260](https://github.com/qmk/qmk_firmware/pull/10260))
* Add step sequencer feature ([#9703](https://github.com/qmk/qmk_firmware/pull/9703))
* Added `add_oneshot_mods` & `del_oneshot_mods` ([#10549](https://github.com/qmk/qmk_firmware/pull/10549))
* Add AT90USB support for serial.c ([#10706](https://github.com/qmk/qmk_firmware/pull/10706))
* Auto shift: support repeats and early registration (#9826)
### Clean-ups and Optimizations :id=core-optimizations
* Haptic and solenoid cleanup ([#9700](https://github.com/qmk/qmk_firmware/pull/9700))
* XD75 cleanup ([#10524](https://github.com/qmk/qmk_firmware/pull/10524))
* Minor change to behavior allowing display updates to continue between task ticks ([#10750](https://github.com/qmk/qmk_firmware/pull/10750))
* Change some GPIO manipulations in matrix.c to be atomic ([#10491](https://github.com/qmk/qmk_firmware/pull/10491))
* combine repeated lines of code for ATmega32U2, ATmega16U2, ATmega328 and ATmega328P ([#10837](https://github.com/qmk/qmk_firmware/pull/10837))
* Remove references to HD44780 ([#10735](https://github.com/qmk/qmk_firmware/pull/10735))
## QMK Infrastructure and Internals :id=qmk-internals
* Add ability to build a subset of all keyboards based on platform. ([#10420](https://github.com/qmk/qmk_firmware/pull/10420))
* Initialise EEPROM drivers at startup, instead of upon first execution ([#10438](https://github.com/qmk/qmk_firmware/pull/10438))
* Make bootloader_jump weak for ChibiOS ([#10417](https://github.com/qmk/qmk_firmware/pull/10417))
* Support for STM32 GPIOF,G,H,I,J,K ([#10206](https://github.com/qmk/qmk_firmware/pull/10206))
* Add milc as a dependency and remove the installed milc ([#10563](https://github.com/qmk/qmk_firmware/pull/10563))
* ChibiOS upgrade: early init conversions ([#10214](https://github.com/qmk/qmk_firmware/pull/10214))
* ChibiOS upgrade: configuration file migrator ([#9952](https://github.com/qmk/qmk_firmware/pull/9952))
* Add definition based on currently-selected serial driver. ([#10716](https://github.com/qmk/qmk_firmware/pull/10716))
* Allow for modification of output RGB values when using rgblight/rgb_matrix. ([#10638](https://github.com/qmk/qmk_firmware/pull/10638))
* Allow keyboards/keymaps to execute code at each main loop iteration ([#10530](https://github.com/qmk/qmk_firmware/pull/10530))
* qmk cformat ([#10767](https://github.com/qmk/qmk_firmware/pull/10767))
* Add a Make variable to easily enable DEBUG_MATRIX_SCAN_RATE on the command line ([#10824](https://github.com/qmk/qmk_firmware/pull/10824))
* update Chibios OS USB for the OTG driver ([#8893](https://github.com/qmk/qmk_firmware/pull/8893))
* Fixup version.h writing when using `SKIP_VERSION=yes` ([#10972](https://github.com/qmk/qmk_firmware/pull/10972), [#10974](https://github.com/qmk/qmk_firmware/pull/10974))
* Rename ledmatrix.h to match .c file ([#7949](https://github.com/qmk/qmk_firmware/pull/7949))
* Split RGB_MATRIX_ENABLE into _ENABLE and _DRIVER ([#10231](https://github.com/qmk/qmk_firmware/pull/10231))
* Split LED_MATRIX_ENABLE into _ENABLE and _DRIVER ([#10840](https://github.com/qmk/qmk_firmware/pull/10840))

View File

@@ -23,6 +23,7 @@
* [Overview](api_overview.md)
* [API Documentation](api_docs.md)
* [Keyboard Support](reference_configurator_support.md)
* [Adding Default Keymaps](configurator_default_keymaps.md)
* CLI
* [Overview](cli.md)
@@ -79,6 +80,7 @@
* [One Shot Keys](one_shot_keys.md)
* [Pointing Device](feature_pointing_device.md)
* [Raw HID](feature_rawhid.md)
* [Sequencer](feature_sequencer.md)
* [Swap Hands](feature_swap_hands.md)
* [Tap Dance](feature_tap_dance.md)
* [Tap-Hold Configuration](tap_hold.md)
@@ -104,6 +106,7 @@
* [Encoders](feature_encoders.md)
* [Haptic Feedback](feature_haptic_feedback.md)
* [Joystick](feature_joystick.md)
* [LED Indicators](feature_led_indicators.md)
* [Proton C Conversion](proton_c_conversion.md)
* [PS/2 Mouse](feature_ps2_mouse.md)
* [Split Keyboard](feature_split_keyboard.md)
@@ -117,6 +120,8 @@
* [Overview](breaking_changes.md)
* [My Pull Request Was Flagged](breaking_changes_instructions.md)
* History
* [2020 Nov 28](ChangeLog/20201128.md)
* [2020 Aug 29](ChangeLog/20200829.md)
* [2020 May 30](ChangeLog/20200530.md)
* [2020 Feb 29](ChangeLog/20200229.md)
* [2019 Aug 30](ChangeLog/20190830.md)

View File

@@ -6,6 +6,7 @@ The breaking change period is when we will merge PR's that change QMK in dangero
## What has been included in past Breaking Changes?
* [2020 Nov 28](ChangeLog/20201128.md)
* [2020 Aug 29](ChangeLog/20200829.md)
* [2020 May 30](ChangeLog/20200530.md)
* [2020 Feb 29](ChangeLog/20200229.md)
@@ -13,16 +14,16 @@ The breaking change period is when we will merge PR's that change QMK in dangero
## When is the next Breaking Change?
The next Breaking Change is scheduled for November 28, 2020.
The next Breaking Change is scheduled for February 27, 2021.
### Important Dates
* [x] 2020 Aug 29 - `develop` is created. It will be rebased weekly.
* [ ] 2020 Oct 31 - `develop` closed to new PR's.
* [ ] 2020 Oct 31 - Call for testers.
* [ ] 2020 Nov 26 - `master` is locked, no PR's merged.
* [ ] 2020 Nov 28 - Merge `develop` to `master`.
* [ ] 2020 Nov 28 - `master` is unlocked. PR's can be merged again.
* [x] 2020 Nov 28 - `develop` is created. Each push to `master` is subsequently merged to `develop`
* [ ] 2021 Jan 30 - `develop` closed to new PR's.
* [ ] 2021 Jan 30 - Call for testers.
* [ ] 2021 Feb 25 - `master` is locked, no PR's merged.
* [ ] 2021 Feb 27 - Merge `develop` to `master`.
* [ ] 2021 Feb 27 - `master` is unlocked. PR's can be merged again.
## What changes will be included?
@@ -39,21 +40,6 @@ Criteria for acceptance:
This section documents various processes we use when running the Breaking Changes process.
## Rebase `develop` from `master`
This is run every Friday while `develop` is open.
Process:
```
cd qmk_firmware
git checkout master
git pull --ff-only
git checkout develop
git rebase master
git push --force
```
## Creating the `develop` branch
This happens immediately after the previous `develop` branch is merged.

View File

@@ -178,6 +178,24 @@ Creates a keymap.json from a keymap.c.
qmk c2json [--no-cpp] [-o OUTPUT] filename
```
## `qmk lint`
Checks over a keyboard and/or keymap and highlights common errors, problems, and anti-patterns.
**Usage**:
```
qmk lint [-km KEYMAP] [-kb KEYBOARD] [--strict]
```
This command is directory aware. It will automatically fill in KEYBOARD and/or KEYMAP if you are in a keyboard or keymap directory.
**Examples**:
Do a basic lint check:
qmk lint -kb rominronin/katana60/rev2
## `qmk list-keyboards`
This command lists all the keyboards currently defined in `qmk_firmware`
@@ -212,6 +230,16 @@ This command is directory aware. It will automatically fill in KEYBOARD and/or K
qmk new-keymap [-kb KEYBOARD] [-km KEYMAP]
```
## `qmk clean`
This command cleans up the `.build` folder. If `--all` is passed, any .hex or .bin files present in the `qmk_firmware` directory will also be deleted.
**Usage**:
```
qmk clean [-a]
```
---
# Developer Commands
@@ -258,6 +286,16 @@ This command starts a local HTTP server which you can use for browsing or improv
qmk docs [-p PORT]
```
## `qmk generate-docs`
This command allows you to generate QMK documentation locally. It can be uses for general browsing or improving the docs. External tools such as [serve](https://www.npmjs.com/package/serve) can be used to browse the generated files.
**Usage**:
```
qmk generate-docs
```
## `qmk kle2json`
This command allows you to convert from raw KLE data to QMK Configurator JSON. It accepts either an absolute file path, or a file name in the current directory. By default it will not overwrite `info.json` if it is already present. Use the `-f` or `--force` flag to overwrite.
@@ -299,4 +337,3 @@ This command runs the python test suite. If you make changes to python code you
```
qmk pytest
```

View File

@@ -135,6 +135,8 @@ If you define these options you will enable the associated feature, which may in
* `#define RETRO_TAPPING`
* tap anyway, even after TAPPING_TERM, if there was no other key interruption between press and release
* See [Retro Tapping](tap_hold.md#retro-tapping) for details
* `#define RETRO_TAPPING_PER_KEY`
* enables handling for per key `RETRO_TAPPING` settings
* `#define TAPPING_TOGGLE 2`
* how many taps before triggering the toggle
* `#define PERMISSIVE_HOLD`

View File

@@ -0,0 +1,193 @@
# Adding Default Keymaps to QMK Configurator :id=adding-default-keymaps
This page covers how to add a default keymap for a keyboard to QMK Configurator.
## Technical Information :id=technical-information
QMK Configurator uses JSON as its native file format for keymaps. As much as possible, these should be kept such that they behave the same as running `make <keyboard>:default` from `qmk_firmware`.
Keymaps in this directory require four key-value pairs:
* `keyboard` (string)
* This is the name of the keyboard, the same as would be used when running a compile job through `make` (e.g. `make 1upkeyboards/1up60rgb:default`).
* `keymap` (string)
* Should be set to `default`.
* `layout` (string)
* This is the layout macro used by the default keymap.
* `layers` (array)
* The keymap itself. This key should contain one array per layer, which themselves should contain the keycodes that make up that layer.
Additionally, most keymaps contain a `commit` key. This key is not consumed by the API that back-stops QMK Configurator, but is used by Configurator's maintainers to tell which version of a keymap was used to create the JSON keymap in this repository. The value is the SHA of the last commit to modify a board's default `keymap.c` in the `qmk_firmware` repository. The SHA is found by checking out [the `master` branch of the `qmk/qmk_firmware` repository](https://github.com/qmk/qmk_firmware/tree/master/) and running `git log -1 --pretty=oneline -- keyboards/<keyboard>/keymaps/default/keymap.c` (use `keymap.json` if the keyboard in question has this file instead), which should return something similar to:
```shell
f14629ed1cd7c7ec9089604d64f29a99981558e8 Remove/migrate action_get_macro()s from default keymaps (#5625)
```
In this example, `f14629ed1cd7c7ec9089604d64f29a99981558e8` is the value that should be used for `commit`.
## Example :id=example
If one wished to add a default keymap for the H87a by Hineybush, one would run the `git log` command above against the H87a's default keymap in `qmk_firmware`:
```shell
user ~/qmk_firmware (master)
$ git log -1 --pretty=oneline master -- keyboards/hineybush/h87a/keymaps/default/keymap.c
ef8878fba5d3786e3f9c66436da63a560cd36ac9 Hineybush h87a lock indicators (#8237)
```
Now that we have the commit hash, we need the keymap (edited for readability):
```c
...
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_all(
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS,
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT,
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_TRNS, KC_UP,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
[1] = LAYOUT_all(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, BL_TOGG, BL_DEC, BL_INC,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_MNXT, KC_VOLD,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
};
```
The default keymap uses the `LAYOUT_all` macro, so that will be the value of the `layout` key. Compiled to a QMK Configurator JSON keymap, our resulting file should be:
```json
{
"keyboard": "hineybush/h87a",
"keymap": "default",
"commit": "ef8878fba5d3786e3f9c66436da63a560cd36ac9",
"layout": "LAYOUT_all",
"layers": [
[
"KC_ESC", "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5", "KC_F6", "KC_F7", "KC_F8", "KC_F9", "KC_F10", "KC_F11", "KC_F12", "KC_PSCR", "KC_SLCK", "KC_PAUS",
"KC_GRV", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "KC_MINS", "KC_EQL", "KC_BSPC", "KC_BSPC", "KC_INS", "KC_HOME", "KC_PGUP",
"KC_TAB", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", "KC_LBRC", "KC_RBRC", "KC_BSLS", "KC_DEL", "KC_END", "KC_PGDN",
"KC_CAPS", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "KC_SCLN", "KC_QUOT", "KC_NUHS", "KC_ENT",
"KC_LSFT", "KC_NUBS", "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH", "KC_RSFT", "KC_TRNS", "KC_UP",
"KC_LCTL", "KC_LGUI", "KC_LALT", "KC_SPC", "KC_RALT", "MO(1)", "KC_RGUI", "KC_RCTL", "KC_LEFT", "KC_DOWN", "KC_RGHT"
],
[
"KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RGB_TOG", "RGB_MOD", "RGB_HUD", "RGB_HUI", "RGB_SAD", "RGB_SAI", "RGB_VAD", "RGB_VAI", "BL_TOGG", "BL_DEC", "BL_INC",
"KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_VOLU",
"KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RESET", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_MPLY", "KC_MNXT", "KC_VOLD",
"KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS",
"KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS",
"KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS"
]
]
}
```
The white space in the `layers` arrays have no effect on the functionality of the keymap, but are used to make these files easier for humans to read.
## Caveats :id=caveats
### Layers can only be referenced by number :id=layer-references
A common QMK convention is to name layers using a series of `#define`s, or an `enum` statement:
```c
enum layer_names {
_BASE,
_MEDIA,
_FN
};
```
This works in C, but for Configurator, you *must* use the layer's numeric index `MO(_FN)` would need to be `MO(2)` in the above example.
### No support for custom code of any kind :id=custom-code
Features that require adding functions to the keymap.c file, such as Tap Dance or Unicode, can not be compiled in Configurator **at all**. Even setting `TAP_DANCE_ENABLE = yes` in the `qmk_firmware` repository at the keyboard level will prevent Configurator from compiling **any** firmware for that keyboard. This is limited both by the API and the current spec of our JSON keymap format.
### Limited Support for Custom keycodes :id=custom-keycodes
There is a way to support custom keycodes: if the logic for a custom keycode is implemented at the keyboard level instead of the keymap level in qmk_firmware, that keycode *can* be used in Configurator and it *will* compile and work. Instead of using the following in your `keymap.c`:
```c
enum custom_keycodes {
MACRO_1 = SAFE_RANGE,
MACRO_2,
MACRO_3
};
...
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch(keycode) {
case MACRO_1:
if (record->event.pressed) {
SEND_STRING("This is macro #1.");
}
return false;
case MACRO_2:
if (record->event.pressed) {
SEND_STRING("This is macro #2.");
}
return false;
case MACRO_3:
if (record->event.pressed) {
SEND_STRING("This is macro #3.");
}
return false;
}
return true;
};
```
... add the keycode `enum` block to your keyboard's header file (`<keyboard>.h`) as follows (note that the `enum` is named `keyboard_keycodes` here):
```c
enum keyboard_keycodes {
MACRO_1 = SAFE_RANGE,
MACRO_2,
MACRO_3,
NEW_SAFE_RANGE // Important!
};
```
... then the logic to your `<keyboard>.c` through `process_record_kb()`:
```c
bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
switch(keycode) {
case MACRO_1:
if (record->event.pressed) {
SEND_STRING("This is macro #1.");
}
return false;
case MACRO_2:
if (record->event.pressed) {
SEND_STRING("This is macro #2.");
}
return false;
case MACRO_3:
if (record->event.pressed) {
SEND_STRING("This is macro #3.");
}
return false;
}
return process_record_user(keycode, record);
};
```
Note the call to `process_record_user()` at the end. Additionally, users of the keyboard will need to use `NEW_SAFE_RANGE` instead of `SAFE_RANGE` if they wish to add their own custom keycodes at keymap level, beyond what is provided by the keyboard.
## Additional Reading :id=additional-reading
For QMK Configurator to support your keyboard, your keyboard must be present in the `master` branch of the `qmk_firmware` repository. For instructions on this, please see [Supporting Your Keyboard in QMK Configurator](reference_configurator_support.md).

View File

@@ -88,108 +88,6 @@ keyrecord_t record {
}
```
# LED Control
QMK provides methods to read 5 of the LEDs defined in the HID spec:
* Num Lock
* Caps Lock
* Scroll Lock
* Compose
* Kana
There are two ways to get the lock LED state:
* by implementing `bool led_update_kb(led_t led_state)` or `_user(led_t led_state)`; or
* by calling `led_t host_keyboard_led_state()`
!> `host_keyboard_led_state()` may already reflect a new value before `led_update_user()` is called.
Two more deprecated functions exist that provide the LED state as a `uint8_t`:
* `uint8_t led_set_kb(uint8_t usb_led)` and `_user(uint8_t usb_led)`
* `uint8_t host_keyboard_leds()`
## `led_update_user()`
This function will be called when the state of one of those 5 LEDs changes. It receives the LED state as a struct parameter.
By convention, return `true` from `led_update_user()` to get the `led_update_kb()` hook to run its code, and
return `false` when you would prefer not to run the code in `led_update_kb()`.
Some examples include:
- overriding the LEDs to use them for something else like layer indication
- return `false` because you do not want the `_kb()` function to run, as it would override your layer behavior.
- play a sound when an LED turns on or off.
- return `true` because you want the `_kb` function to run, and this is in addition to the default LED behavior.
?> Because the `led_set_*` functions return `void` instead of `bool`, they do not allow for overriding the keyboard LED control, and thus it's recommended to use `led_update_*` instead.
### Example `led_update_kb()` Implementation
```c
bool led_update_kb(led_t led_state) {
bool res = led_update_user(led_state);
if(res) {
// writePin sets the pin high for 1 and low for 0.
// In this example the pins are inverted, setting
// it low/0 turns it on, and high/1 turns the LED off.
// This behavior depends on whether the LED is between the pin
// and VCC or the pin and GND.
writePin(B0, !led_state.num_lock);
writePin(B1, !led_state.caps_lock);
writePin(B2, !led_state.scroll_lock);
writePin(B3, !led_state.compose);
writePin(B4, !led_state.kana);
}
return res;
}
```
### Example `led_update_user()` Implementation
This incomplete example would play a sound if Caps Lock is turned on or off. It returns `true`, because you also want the LEDs to maintain their state.
```c
#ifdef AUDIO_ENABLE
float caps_on[][2] = SONG(CAPS_LOCK_ON_SOUND);
float caps_off[][2] = SONG(CAPS_LOCK_OFF_SOUND);
#endif
bool led_update_user(led_t led_state) {
#ifdef AUDIO_ENABLE
static uint8_t caps_state = 0;
if (caps_state != led_state.caps_lock) {
led_state.caps_lock ? PLAY_SONG(caps_on) : PLAY_SONG(caps_off);
caps_state = led_state.caps_lock;
}
#endif
return true;
}
```
### `led_update_*` Function Documentation
* Keyboard/Revision: `bool led_update_kb(led_t led_state)`
* Keymap: `bool led_update_user(led_t led_state)`
## `host_keyboard_led_state()`
Call this function to get the last received LED state as a `led_t`. This is useful for reading the LED state outside `led_update_*`, e.g. in [`matrix_scan_user()`](#matrix-scanning-code).
## Setting Physical LED State
Some keyboard implementations provide convenience methods for setting the state of the physical LEDs.
### Ergodox Boards
The Ergodox implementations provide `ergodox_right_led_1`/`2`/`3_on`/`off()` to turn individual LEDs on or off, as well as `ergodox_right_led_on`/`off(uint8_t led)` to turn them on or off by their index.
In addition, it is possible to specify the brightness level of all LEDs with `ergodox_led_all_set(uint8_t n)`; of individual LEDs with `ergodox_right_led_1`/`2`/`3_set(uint8_t n)`; or by index with `ergodox_right_led_set(uint8_t led, uint8_t n)`.
Ergodox boards also define `LED_BRIGHTNESS_LO` for the lowest brightness and `LED_BRIGHTNESS_HI` for the highest brightness (which is the default).
# Keyboard Initialization Code
There are several steps in the keyboard initialization process. Depending on what you want to do, it will influence which function you should use.
@@ -287,6 +185,14 @@ This function gets called at every matrix scan, which is basically as often as t
You should use this function if you need custom matrix scanning code. It can also be used for custom status output (such as LEDs or a display) or other functionality that you want to trigger regularly even when the user isn't typing.
# Keyboard housekeeping
* Keyboard/Revision: `void housekeeping_task_kb(void)`
* Keymap: `void housekeeping_task_user(void)`
This function gets called at the end of all QMK processing, before starting the next iteration. You can safely assume that QMK has dealt with the last matrix scan at the time that these functions are invoked -- layer states have been updated, USB reports have been sent, LEDs have been updated, and displays have been drawn.
Similar to `matrix_scan_*`, these are called as often as the MCU can handle. To keep your board responsive, it's suggested to do as little as possible during these function calls, potentially throtting their behaviour if you do indeed require implementing something special.
# Keyboard Idling/Wake Code

View File

@@ -4,7 +4,7 @@ QMK presents itself to the host as a regular HID keyboard device, and as such re
There are two notable exceptions: the Caterina bootloader, usually seen on Pro Micros, and the HalfKay bootloader shipped with PJRC Teensys, appear as a serial port and a generic HID device respectively, and so do not require a driver.
We recommend the use of the [Zadig](https://zadig.akeo.ie/) utility. If you have set up the development environment with MSYS2 or WSL, the `qmk_install.sh` script will have asked if you want it to install the drivers for you.
We recommend the use of the [Zadig](https://zadig.akeo.ie/) utility. If you have set up the development environment with MSYS2, the `qmk_install.sh` script will have already installed the drivers for you.
## Installation

View File

@@ -19,71 +19,7 @@ Note that running `make` with `sudo` is generally ***not*** a good idea, and you
### Linux `udev` Rules
On Linux, you'll need proper privileges to communicate with the bootloader device. You can either use `sudo` when flashing firmware, or place this file in `/etc/udev/rules.d/`:
**/etc/udev/rules.d/50-qmk.rules:**
```
# Atmel DFU
### ATmega16U2
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03EB", ATTRS{idProduct}=="2FEF", TAG+="uaccess", RUN{builtin}+="uaccess"
### ATmega32U2
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03EB", ATTRS{idProduct}=="2FF0", TAG+="uaccess", RUN{builtin}+="uaccess"
### ATmega16U4
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03EB", ATTRS{idProduct}=="2FF3", TAG+="uaccess", RUN{builtin}+="uaccess"
### ATmega32U4
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03EB", ATTRS{idProduct}=="2FF4", TAG+="uaccess", RUN{builtin}+="uaccess"
### AT90USB64
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03EB", ATTRS{idProduct}=="2FF9", TAG+="uaccess", RUN{builtin}+="uaccess"
### AT90USB128
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03EB", ATTRS{idProduct}=="2FFB", TAG+="uaccess", RUN{builtin}+="uaccess"
# Input Club
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1C11", ATTRS{idProduct}=="B007", TAG+="uaccess", RUN{builtin}+="uaccess"
# STM32duino
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1EAF", ATTRS{idProduct}=="0003", TAG+="uaccess", RUN{builtin}+="uaccess"
# STM32 DFU
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="DF11", TAG+="uaccess", RUN{builtin}+="uaccess"
# BootloadHID
SUBSYSTEMS=="usb", ATTRS{idVendor}=="16C0", ATTRS{idProduct}=="05DF", TAG+="uaccess", RUN{builtin}+="uaccess"
# USBAspLoader
SUBSYSTEMS=="usb", ATTRS{idVendor}=="16C0", ATTRS{idProduct}=="05DC", TAG+="uaccess", RUN{builtin}+="uaccess"
# ModemManager should ignore the following devices
# Atmel SAM-BA (Massdrop)
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03EB", ATTRS{idProduct}=="6124", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
# Caterina (Pro Micro)
## Spark Fun Electronics
### Pro Micro 3V3/8MHz
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1B4F", ATTRS{idProduct}=="9203", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
### Pro Micro 5V/16MHz
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1B4F", ATTRS{idProduct}=="9205", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
### LilyPad 3V3/8MHz (and some Pro Micro clones)
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1B4F", ATTRS{idProduct}=="9207", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
## Pololu Electronics
### A-Star 32U4
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1FFB", ATTRS{idProduct}=="0101", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
## Arduino SA
### Leonardo
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="0036", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
### Micro
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="0037", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
## Adafruit Industries LLC
### Feather 32U4
SUBSYSTEMS=="usb", ATTRS{idVendor}=="239A", ATTRS{idProduct}=="000C", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
### ItsyBitsy 32U4 3V3/8MHz
SUBSYSTEMS=="usb", ATTRS{idVendor}=="239A", ATTRS{idProduct}=="000D", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
### ItsyBitsy 32U4 5V/16MHz
SUBSYSTEMS=="usb", ATTRS{idVendor}=="239A", ATTRS{idProduct}=="000E", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
## dog hunter AG
### Leonardo
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2A03", ATTRS{idProduct}=="0036", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
### Micro
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2A03", ATTRS{idProduct}=="0037", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
```
On Linux, you'll need proper privileges to communicate with the bootloader device. You can either use `sudo` when flashing firmware (not recommended), or place [this file](https://github.com/qmk/qmk_firmware/tree/master/util/udev/50-qmk.rules) into `/etc/udev/rules.d/`.
Once added, run the following:

View File

@@ -15,25 +15,31 @@ problem.
When you tap a key, it stays depressed for a short period of time before it is
then released. This depressed time is a different length for everyone. Auto Shift
defines a constant `AUTO_SHIFT_TIMEOUT` which is typically set to twice your
normal pressed state time. When you press a key, a timer starts and then stops
when you release the key. If the time depressed is greater than or equal to the
`AUTO_SHIFT_TIMEOUT`, then a shifted version of the key is emitted. If the time
is less than the `AUTO_SHIFT_TIMEOUT` time, then the normal state is emitted.
normal pressed state time. When you press a key, a timer starts, and if you
have not released the key after the `AUTO_SHIFT_TIMEOUT` period, then a shifted
version of the key is emitted. If the time is less than the `AUTO_SHIFT_TIMEOUT`
time, or you press another key, then the normal state is emitted.
If `AUTO_SHIFT_REPEAT` is defined, there is keyrepeat support. Holding the key
down will repeat the shifted key, though this can be disabled with
`AUTO_SHIFT_NO_AUTO_REPEAT`. If you want to repeat the normal key, then tap it
once then immediately (within `TAPPING_TERM`) hold it down again (this works
with the shifted value as well if auto-repeat is disabled).
## Are There Limitations to Auto Shift?
Yes, unfortunately.
1. Key repeat will cease to work. For example, before if you wanted 20 'a'
characters, you could press and hold the 'a' key for a second or two. This no
longer works with Auto Shift because it is timing your depressed time instead
of emitting a depressed key state to your operating system.
2. You will have characters that are shifted when you did not intend on shifting, and
other characters you wanted shifted, but were not. This simply comes down to
practice. As we get in a hurry, we think we have hit the key long enough
for a shifted version, but we did not. On the other hand, we may think we are
tapping the keys, but really we have held it for a little longer than
anticipated.
You will have characters that are shifted when you did not intend on shifting, and
other characters you wanted shifted, but were not. This simply comes down to
practice. As we get in a hurry, we think we have hit the key long enough for a
shifted version, but we did not. On the other hand, we may think we are tapping
the keys, but really we have held it for a little longer than anticipated.
Additionally, with keyrepeat the desired shift state can get mixed up. It will
always 'belong' to the last key pressed. For example, keyrepeating a capital
and then tapping something lowercase (whether or not it's an Auto Shift key)
will result in the capital's *key* still being held, but shift not.
## How Do I Enable Auto Shift?
@@ -103,6 +109,14 @@ Do not Auto Shift numeric keys, zero through nine.
Do not Auto Shift alpha characters, which include A through Z.
### AUTO_SHIFT_REPEAT (simple define)
Enables keyrepeat.
### AUTO_SHIFT_NO_AUTO_REPEAT (simple define)
Disables automatically keyrepeating when `AUTO_SHIFT_TIMEOUT` is exceeded.
## Using Auto Shift Setup
This will enable you to define three keys temporarily to increase, decrease and report your `AUTO_SHIFT_TIMEOUT`.

View File

@@ -62,14 +62,15 @@ Valid driver values are `pwm`, `software`, `custom` or `no`. See below for help
To configure the backlighting, `#define` these in your `config.h`:
|Define |Default |Description |
|---------------------|-------------|-------------------------------------------------------------------------------------|
|`BACKLIGHT_PIN` |*Not defined*|The pin that controls the LED(s) |
|`BACKLIGHT_LEVELS` |`3` |The number of brightness levels (maximum 31 excluding off) |
|`BACKLIGHT_CAPS_LOCK`|*Not defined*|Enable Caps Lock indicator using backlight (for keyboards without dedicated LED) |
|`BACKLIGHT_BREATHING`|*Not defined*|Enable backlight breathing, if supported |
|`BREATHING_PERIOD` |`6` |The length of one backlight "breath" in seconds |
|`BACKLIGHT_ON_STATE` |`1` |The state of the backlight pin when the backlight is "on" - `1` for high, `0` for low|
| Define | Default | Description |
|------------------------|---------------|-------------------------------------------------------------------------------------------------------------------|
| `BACKLIGHT_PIN` | *Not defined* | The pin that controls the LED(s) |
| `BACKLIGHT_LEVELS` | `3` | The number of brightness levels (maximum 31 excluding off) |
| `BACKLIGHT_CAPS_LOCK` | *Not defined* | Enable Caps Lock indicator using backlight (for keyboards without dedicated LED) |
| `BACKLIGHT_BREATHING` | *Not defined* | Enable backlight breathing, if supported |
| `BREATHING_PERIOD` | `6` | The length of one backlight "breath" in seconds |
| `BACKLIGHT_ON_STATE` | `1` | The state of the backlight pin when the backlight is "on" - `1` for high, `0` for low |
| `BACKLIGHT_LIMIT_VAL ` | `255` | The maximum duty cycle of the backlight -- `255` allows for full brightness, any lower will decrease the maximum. |
Unless you are designing your own keyboard, you generally should not need to change the `BACKLIGHT_PIN` or `BACKLIGHT_ON_STATE`.

View File

@@ -32,13 +32,20 @@ Additionally, the resolution, which defines how many pulses the encoder register
#define ENCODER_RESOLUTION 4
```
It can also be defined per-encoder, by instead defining:
```c
#define ENCODER_RESOLUTIONS { 4, 2 }
```
## Split Keyboards
If you are using different pinouts for the encoders on each half of a split keyboard, you can define the pinout for the right half like this:
If you are using different pinouts for the encoders on each half of a split keyboard, you can define the pinout (and optionally, resolutions) for the right half like this:
```c
#define ENCODERS_PAD_A_RIGHT { encoder1a, encoder2a }
#define ENCODERS_PAD_B_RIGHT { encoder1b, encoder2b }
#define ENCODER_RESOLUTIONS_RIGHT { 2, 4 }
```
## Callbacks

View File

@@ -42,14 +42,21 @@ First you will need a build a circuit to drive the solenoid through a mosfet as
[Wiring diagram provided by Adafruit](https://playground.arduino.cc/uploads/Learning/solenoid_driver.pdf)
| Settings | Default | Description |
|--------------------------|---------------|-------------------------------------------------------|
|`SOLENOID_PIN` | *Not defined* |Configures the pin that the Solenoid is connected to. |
|`SOLENOID_DEFAULT_DWELL` | `12` ms |Configures the default dwell time for the solenoid. |
|`SOLENOID_MIN_DWELL` | `4` ms |Sets the lower limit for the dwell. |
|`SOLENOID_MAX_DWELL` | `100` ms |Sets the upper limit for the dwell. |
| Settings | Default | Description |
|----------------------------|----------------------|-------------------------------------------------------|
|`SOLENOID_PIN` | *Not defined* |Configures the pin that the Solenoid is connected to. |
|`SOLENOID_DEFAULT_DWELL` | `12` ms |Configures the default dwell time for the solenoid. |
|`SOLENOID_MIN_DWELL` | `4` ms |Sets the lower limit for the dwell. |
|`SOLENOID_MAX_DWELL` | `100` ms |Sets the upper limit for the dwell. |
|`SOLENOID_DWELL_STEP_SIZE` | `1` ms |The step size to use when `HPT_DWL*` keycodes are sent |
|`SOLENOID_DEFAULT_BUZZ` | `0` (disabled) |On HPT_RST buzz is set "on" if this is "1" |
|`SOLENOID_BUZZ_ACTUATED` | `SOLENOID_MIN_DWELL` |Actuated-time when the solenoid is in buzz mode |
|`SOLENOID_BUZZ_NONACTUATED` | `SOLENOID_MIN_DWELL` |Non-Actuated-time when the solenoid is in buzz mode |
?> Dwell time is how long the "plunger" stays activated. The dwell time changes how the solenoid sounds.
* If solenoid buzz is off, then dwell time is how long the "plunger" stays activated. The dwell time changes how the solenoid sounds.
* If solenoid buzz is on, then dwell time sets the length of the buzz, while `SOLENOID_BUZZ_ACTUATED` and `SOLENOID_BUZZ_NONACTUATED` set the (non-)actuation times withing the buzz period.
* With the current implementation, for any of the above time settings, the precision of these settings may be affected by how fast the keyboard is able to scan the matrix.
Therefore, if the keyboards scanning routine is slow, it may be preferable to set `SOLENOID_DWELL_STEP_SIZE` to a value slightly smaller than the time it takes to scan the keyboard.
Beware that some pins may be powered during bootloader (ie. A13 on the STM32F303 chip) and will result in the solenoid kept in the on state through the whole flashing process. This may overheat and damage the solenoid. If you find that the pin the solenoid is connected to is triggering the solenoid during bootloader/DFU, select another pin.

View File

@@ -141,6 +141,12 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
}
```
### Axis Resolution
By default, the resolution of each axis is 8 bit, giving a range of -127 to +127. If you need higher precision, you can increase it by defining eg. `JOYSTICK_AXES_RESOLUTION 12` in your `config.h`. The resolution must be between 8 and 16.
Note that the supported AVR MCUs have a 10-bit ADC, and 12-bit for most STM32 MCUs.
### Triggering Joystick Buttons
Joystick buttons are normal Quantum keycodes, defined as `JS_BUTTON0` to `JS_BUTTON31`, depending on the number of buttons you have configured.

View File

@@ -0,0 +1,116 @@
# LED Indicators
QMK provides methods to read 5 of the LEDs defined in the HID spec:
* Num Lock
* Caps Lock
* Scroll Lock
* Compose
* Kana
There are three ways to get the lock LED state:
* by specifying configuration options within `config.h`
* by implementing `bool led_update_kb(led_t led_state)` or `_user(led_t led_state)`; or
* by calling `led_t host_keyboard_led_state()`
!> `host_keyboard_led_state()` may already reflect a new value before `led_update_user()` is called.
Two more deprecated functions exist that provide the LED state as a `uint8_t`:
* `uint8_t led_set_kb(uint8_t usb_led)` and `_user(uint8_t usb_led)`
* `uint8_t host_keyboard_leds()`
## Configuration Options
To configure the indicators, `#define` these in your `config.h`:
|Define |Default |Description |
|---------------------|-------------|-------------------------------------------|
|`LED_NUM_LOCK_PIN` |*Not defined*|The pin that controls the `Num Lock` LED |
|`LED_CAPS_LOCK_PIN` |*Not defined*|The pin that controls the `Caps Lock` LED |
|`LED_SCROLL_LOCK_PIN`|*Not defined*|The pin that controls the `Scroll Lock` LED|
|`LED_COMPOSE_PIN` |*Not defined*|The pin that controls the `Compose` LED |
|`LED_KANA_PIN` |*Not defined*|The pin that controls the `Kana` LED |
|`LED_PIN_ON_STATE` |`1` |The state of the indicator pins when the LED is "on" - `1` for high, `0` for low|
Unless you are designing your own keyboard, you generally should not need to change the above config options.
## `led_update_*()`
When the configuration options do not provide enough flexibility, the API hooks provided allow custom control of the LED behavior. These functions will be called when the state of one of those 5 LEDs changes. It receives the LED state as a struct parameter.
By convention, return `true` from `led_update_user()` to get the `led_update_kb()` hook to run its code, and
return `false` when you would prefer not to run the code in `led_update_kb()`.
Some examples include:
- overriding the LEDs to use them for something else like layer indication
- return `false` because you do not want the `_kb()` function to run, as it would override your layer behavior.
- play a sound when an LED turns on or off.
- return `true` because you want the `_kb` function to run, and this is in addition to the default LED behavior.
?> Because the `led_set_*` functions return `void` instead of `bool`, they do not allow for overriding the keyboard LED control, and thus it's recommended to use `led_update_*` instead.
### Example `led_update_kb()` Implementation
```c
bool led_update_kb(led_t led_state) {
bool res = led_update_user(led_state);
if(res) {
// writePin sets the pin high for 1 and low for 0.
// In this example the pins are inverted, setting
// it low/0 turns it on, and high/1 turns the LED off.
// This behavior depends on whether the LED is between the pin
// and VCC or the pin and GND.
writePin(B0, !led_state.num_lock);
writePin(B1, !led_state.caps_lock);
writePin(B2, !led_state.scroll_lock);
writePin(B3, !led_state.compose);
writePin(B4, !led_state.kana);
}
return res;
}
```
### Example `led_update_user()` Implementation
This incomplete example would play a sound if Caps Lock is turned on or off. It returns `true`, because you also want the LEDs to maintain their state.
```c
#ifdef AUDIO_ENABLE
float caps_on[][2] = SONG(CAPS_LOCK_ON_SOUND);
float caps_off[][2] = SONG(CAPS_LOCK_OFF_SOUND);
#endif
bool led_update_user(led_t led_state) {
#ifdef AUDIO_ENABLE
static uint8_t caps_state = 0;
if (caps_state != led_state.caps_lock) {
led_state.caps_lock ? PLAY_SONG(caps_on) : PLAY_SONG(caps_off);
caps_state = led_state.caps_lock;
}
#endif
return true;
}
```
### `led_update_*` Function Documentation
* Keyboard/Revision: `bool led_update_kb(led_t led_state)`
* Keymap: `bool led_update_user(led_t led_state)`
## `host_keyboard_led_state()`
Call this function to get the last received LED state as a `led_t`. This is useful for reading the LED state outside `led_update_*`, e.g. in [`matrix_scan_user()`](#matrix-scanning-code).
## Setting Physical LED State
Some keyboard implementations provide convenience methods for setting the state of the physical LEDs.
### Ergodox Boards
The Ergodox implementations provide `ergodox_right_led_1`/`2`/`3_on`/`off()` to turn individual LEDs on or off, as well as `ergodox_right_led_on`/`off(uint8_t led)` to turn them on or off by their index.
In addition, it is possible to specify the brightness level of all LEDs with `ergodox_led_all_set(uint8_t n)`; of individual LEDs with `ergodox_right_led_1`/`2`/`3_set(uint8_t n)`; or by index with `ergodox_right_led_set(uint8_t led, uint8_t n)`.
Ergodox boards also define `LED_BRIGHTNESS_LO` for the lowest brightness and `LED_BRIGHTNESS_HI` for the highest brightness (which is the default).

View File

@@ -10,7 +10,8 @@ If you want to use RGB LED's you should use the [RGB Matrix Subsystem](feature_r
There is basic support for addressable LED matrix lighting with the I2C IS31FL3731 RGB controller. To enable it, add this to your `rules.mk`:
LED_MATRIX_ENABLE = IS31FL3731
LED_MATRIX_ENABLE = yes
LED_MATRIX_DRIVER = IS31FL3731
You can use between 1 and 4 IS31FL3731 IC's. Do not specify `LED_DRIVER_ADDR_<N>` defines for IC's that are not present on your keyboard. You can define the following items in `config.h`:

View File

@@ -140,3 +140,7 @@ To use constant speed mode, you must at least define `MK_COMBINED` in your keyma
```c
#define MK_COMBINED
```
## Use with PS/2 Mouse and Pointing Device
Mouse keys button state is shared with [PS/2 mouse](feature_ps2_mouse.md) and [pointing device](feature_pointing_device.md) so mouse keys button presses can be used for clicks and drags.

View File

@@ -140,8 +140,8 @@ void oled_task_user(void) {
|---------------------------|-----------------|--------------------------------------------------------------------------------------------------------------------------|
|`OLED_DISPLAY_ADDRESS` |`0x3C` |The i2c address of the OLED Display |
|`OLED_FONT_H` |`"glcdfont.c"` |The font code file to use for custom fonts |
|`OLED_FONT_START` |`0` |The starting characer index for custom fonts |
|`OLED_FONT_END` |`223` |The ending characer index for custom fonts |
|`OLED_FONT_START` |`0` |The starting character index for custom fonts |
|`OLED_FONT_END` |`223` |The ending character index for custom fonts |
|`OLED_FONT_WIDTH` |`6` |The font width |
|`OLED_FONT_HEIGHT` |`8` |The font height (untested) |
|`OLED_TIMEOUT` |`60000` |Turns off the OLED screen after 60000ms of keyboard inactivity. Helps reduce OLED Burn-in. Set to 0 to disable. |
@@ -149,6 +149,8 @@ void oled_task_user(void) {
|`OLED_SCROLL_TIMEOUT_RIGHT`|*Not defined* |Scroll timeout direction is right when defined, left when undefined. |
|`OLED_IC` |`OLED_IC_SSD1306`|Set to `OLED_IC_SH1106` if you're using the SH1106 OLED controller. |
|`OLED_COLUMN_OFFSET` |`0` |(SH1106 only.) Shift output to the right this many pixels.<br />Useful for 128x64 displays centered on a 132x64 SH1106 IC.|
|`OLED_BRIGHTNESS` |`255` |The default brightness level of the OLED, from 0 to 255. |
|`OLED_UPDATE_INTERVAL` |`0` |Set the time interval for updating the OLED display in ms. This will improve the matrix scan rate. |
## 128x64 & Custom sized OLED Displays
@@ -304,6 +306,12 @@ bool oled_off(void);
// not
bool is_oled_on(void);
// Sets the brightness level of the display
uint8_t oled_set_brightness(uint8_t level);
// Gets the current brightness level of the display
uint8_t oled_get_brightness(void);
// Basically it's oled_render, but with timeout management and oled_task_user calling!
void oled_task(void);

View File

@@ -11,7 +11,8 @@ If you want to use single color LED's you should use the [LED Matrix Subsystem](
There is basic support for addressable RGB matrix lighting with the I2C IS31FL3731 RGB controller. To enable it, add this to your `rules.mk`:
```makefile
RGB_MATRIX_ENABLE = IS31FL3731
RGB_MATRIX_ENABLE = yes
RGB_MATRIX_DRIVER = IS31FL3731
```
Configure the hardware via your `config.h`:
@@ -62,7 +63,8 @@ Where `Cx_y` is the location of the LED in the matrix defined by [the datasheet]
There is basic support for addressable RGB matrix lighting with the I2C IS31FL3733 RGB controller. To enable it, add this to your `rules.mk`:
```makefile
RGB_MATRIX_ENABLE = IS31FL3733
RGB_MATRIX_ENABLE = yes
RGB_MATRIX_DRIVER = IS31FL3733
```
Configure the hardware via your `config.h`:
@@ -112,7 +114,8 @@ Where `X_Y` is the location of the LED in the matrix defined by [the datasheet](
There is basic support for addressable RGB matrix lighting with a WS2811/WS2812{a,b,c} addressable LED strand. To enable it, add this to your `rules.mk`:
```makefile
RGB_MATRIX_ENABLE = WS2812
RGB_MATRIX_ENABLE = yes
RGB_MATRIX_DRIVER = WS2812
```
Configure the hardware via your `config.h`:
@@ -482,6 +485,14 @@ void rgb_matrix_indicators_kb(void) {
}
```
In addition, there are the advanced indicator functions. These are aimed at those with heavily customized displays, where rendering every LED per cycle is expensive. Such as some of the "drashna" layouts. This includes a special macro to help make this easier to use: `RGB_MATRIX_INDICATOR_SET_COLOR(i, r, g, b)`.
```c
void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
RGB_MATRIX_INDICATOR_SET_COLOR(index, red, green, blue);
}
```
### Suspended state :id=suspended-state
To use the suspend feature, make sure that `#define RGB_DISABLE_WHEN_USB_SUSPENDED true` is added to the `config.h` file.

View File

@@ -41,6 +41,8 @@ Changing the **Hue** cycles around the circle.<br>
Changing the **Saturation** moves between the inner and outer sections of the wheel, affecting the intensity of the color.<br>
Changing the **Value** sets the overall brightness.<br>
![QMK Color Wheel with HSV Values](https://i.imgur.com/vkYVo66.jpg)
## Keycodes
|Key |Aliases |Description |

88
docs/feature_sequencer.md Normal file
View File

@@ -0,0 +1,88 @@
# Sequencer
Since QMK has experimental support for MIDI, you can now turn your keyboard into a [step sequencer](https://en.wikipedia.org/wiki/Music_sequencer#Step_sequencers)!
!> **IMPORTANT:** This feature is highly experimental, it has only been tested on a Planck EZ so far. Also, the scope will be limited to support the drum machine use-case to start with.
## Enable the step sequencer
Add the following line to your `rules.mk`:
```make
SEQUENCER_ENABLE = yes
```
By default the sequencer has 16 steps, but you can override this setting in your `config.h`:
```c
#define SEQUENCER_STEPS 32
```
## Tracks
You can program up to 8 independent tracks with the step sequencer. Select the tracks you want to edit, enable or disable some steps, and start the sequence!
## Resolutions
While the tempo defines the absolute speed at which the sequencer goes through the steps, the resolution defines the granularity of these steps (from coarser to finer).
|Resolution |Description |
|---------- |----------- |
|`SQ_RES_2` |Every other beat |
|`SQ_RES_2T` |Every 1.5 beats |
|`SQ_RES_4` |Every beat |
|`SQ_RES_4T` |Three times per 2 beats|
|`SQ_RES_8` |Twice per beat |
|`SQ_RES_8T` |Three times per beat |
|`SQ_RES_16` |Four times per beat |
|`SQ_RES_16T` |Six times per beat |
|`SQ_RES_32` |Eight times per beat |
## Keycodes
|Keycode |Description |
|------- |----------- |
|`SQ_ON` |Start the step sequencer |
|`SQ_OFF` |Stop the step sequencer |
|`SQ_TOG` |Toggle the step sequencer playback |
|`SQ_SALL`|Enable all the steps |
|`SQ_SCLR`|Disable all the steps |
|`SQ_S(n)`|Toggle the step `n` |
|`SQ_TMPD`|Decrease the tempo |
|`SQ_TMPU`|Increase the tempo |
|`SQ_R(n)`|Set the resolution to n |
|`SQ_RESD`|Change to the slower resolution |
|`SQ_RESU`|Change to the faster resolution |
|`SQ_T(n)`|Set `n` as the only active track or deactivate all |
## Functions
|Function |Description |
|-------- |----------- |
|`bool is_sequencer_on(void);` |Return whether the sequencer is playing |
|`void sequencer_toggle(void);` |Toggle the step sequencer playback |
|`void sequencer_on(void);` |Start the step sequencer |
|`void sequencer_off(void);` |Stop the step sequencer |
|`bool is_sequencer_step_on(uint8_t step);` |Return whether the step is currently enabled |
|`void sequencer_set_step(uint8_t step, bool value);` |Enable or disable the step |
|`void sequencer_set_step_on();` |Enable the step |
|`void sequencer_set_step_off();` |Disable the step |
|`void sequencer_toggle_step(uint8_t step);` |Toggle the step |
|`void sequencer_set_all_steps(bool value);` |Enable or disable all the steps |
|`void sequencer_set_all_steps_on();` |Enable all the steps |
|`void sequencer_set_all_steps_off();` |Disable all the steps |
|`uint8_t sequencer_get_tempo(void);` |Return the current tempo |
|`void sequencer_set_tempo(uint8_t tempo);` |Set the tempo to `tempo` (between 1 and 255) |
|`void sequencer_increase_tempo(void);` |Increase the tempo |
|`void sequencer_decrease_tempo(void);` |Decrease the tempo |
|`sequencer_resolution_t sequencer_get_resolution(void);` |Return the current resolution |
|`void sequencer_set_resolution(sequencer_resolution_t resolution);` |Set the resolution to `resolution` |
|`void sequencer_increase_resolution(void);` |Change to the faster resolution |
|`void sequencer_decrease_resolution(void);` |Change to the slower resolution |
|`bool is_sequencer_track_active(uint8_t track);` |Return whether the track is active |
|`void sequencer_set_track_activation(uint8_t track, bool value);` |Activate or deactivate the `track` |
|`void sequencer_toggle_track_activation(uint8_t track);` |Toggle the `track` |
|`void sequencer_activate_track(uint8_t track);` |Activate the `track` |
|`void sequencer_deactivate_track(uint8_t track);` |Deactivate the `track` |
|`void sequencer_toggle_single_active_track(uint8_t track);` |Set `track` as the only active track or deactivate all |

View File

@@ -237,6 +237,26 @@ This sets the maximum timeout when detecting master/slave when using `SPLIT_USB_
```
This sets the poll frequency when detecting master/slave when using `SPLIT_USB_DETECT`
## Hardware Considerations and Mods
While most any Pro Micro can be used, micro controllers like the AVR Teensys and most (if not all) ARM boards require the Split USB Detect.
However, with the Teensy 2.0 and Teensy++ 2.0, there is a simple hardware mod that you can perform to add VBUS detection, so you don't need the Split USB detection option.
You'll only need a few things:
* A knife (x-acto knife, ideally)
* A solder station or hot air station
* An appropriate Schottky diode, such as the [PMEG2005EH](https://www.digikey.com/en/products/detail/nexperia-usa-inc/PMEG2005EH,115/1589924)
You'll need to cut the small trace between the 5V and center pads on the back of the Teensy.
Once you have done that, you will want to solder the diode from the 5V pad to the center pad.
You may need to use the 5V pad from the regulator block above as the pads were too small and placed too closely together to place the Schottky diode properly.
![Teensy++ 2.0](https://i.imgur.com/BPEC5n5.png)
## Additional Resources
Nicinabox has a [very nice and detailed guide](https://github.com/nicinabox/lets-split-guide) for the Let's Split keyboard, that covers most everything you need to know, including troubleshooting information.

View File

@@ -3,6 +3,25 @@
Since starting, QMK has grown by leaps and bounds thanks to people like you who contribute to creating and maintaining our community keyboards. As we've grown we've discovered some patterns that work well, and ask that you conform to them to make it easier for other people to benefit from your hard work.
## Use QMK Lint
We have provided a tool, `qmk lint`, which will let you check over your keyboard for problems. We suggest using it frequently while working on your keyboard and keymap.
Example passing check:
```
$ qmk lint -kb rominronin/katana60/rev2
Ψ Lint check passed!
```
Example failing check:
```
$ qmk lint -kb clueboard/66/rev3
☒ Missing keyboards/clueboard/66/rev3/readme.md
☒ Lint check failed!
```
## Naming Your Keyboard/Project
All keyboard names are in lower case, consisting only of letters, numbers, and underscore (`_`). Names may not begin with an underscore. Forward slash (`/`) is used as a sub-folder separation character.

View File

@@ -46,6 +46,7 @@
'/unicode': '/feature_unicode',
'/python_development': '/cli_development',
'/getting_started_build_tools':'/newbs_getting_started',
'/tutorial':'/newbs',
},
basePath: '/',
name: 'QMK Firmware',

View File

@@ -21,3 +21,22 @@ The following functions can provide basic control of GPIOs and are found in `qua
## Advanced Settings :id=advanced-settings
Each microcontroller can have multiple advanced settings regarding its GPIO. This abstraction layer does not limit the use of architecture-specific functions. Advanced users should consult the datasheet of their desired device and include any needed libraries. For AVR, the standard avr/io.h library is used; for STM32, the ChibiOS [PAL library](http://chibios.sourceforge.net/docs3/hal/group___p_a_l.html) is used.
## Atomic Operation
The above functions are not always guaranteed to work atomically. Therefore, if you want to prevent interruptions in the middle of operations when using multiple combinations of the above functions, use the following `ATOMIC_BLOCK_FORCEON` macro.
eg.
```c
void some_function() {
// some process
ATOMIC_BLOCK_FORCEON {
// Atomic Processing
}
// some process
}
```
`ATOMIC_BLOCK_FORCEON` forces interrupts to be disabled before the block is executed, without regard to whether they are enabled or disabled. Then, after the block is executed, the interrupt is enabled.
Note that `ATOMIC_BLOCK_FORCEON` can therefore be used if you know that interrupts are enabled before the execution of the block, or if you know that it is OK to enable interrupts at the completion of the block.

View File

@@ -116,6 +116,7 @@
* [概要](ja/breaking_changes.md)
* [プルリクエストにフラグが付けられた](ja/breaking_changes_instructions.md)
* 履歴
* [2020年8月29日](ja/ChangeLog/20200829.md)
* [2020年5月30日](ja/ChangeLog/20200530.md)
* [2020年2月29日](ja/ChangeLog/20200229.md)
* [2019年8月30日](ja/ChangeLog/20190830.md)

View File

@@ -1,8 +1,8 @@
# コンボ
<!---
original document: 0.8.94:docs/feature_combo.md
git diff 0.8.94 HEAD -- docs/feature_combo.md | cat
original document: 0.10.36:docs/feature_combo.md
git diff 0.10.36 HEAD -- docs/feature_combo.md | cat
-->
コンボ機能は、同時押し方式でのカスタムアクション追加機能です。同時に複数のキーを押して、異なる効果を生み出すことができます。例えば、タッピング時間内で `A``S` を押すと、代わりに `ESC` が押されます。もっと複雑なタスクを実行させることもできます。
@@ -60,7 +60,7 @@ combo_t key_combos[COMBO_COUNT] = {
[XV_PASTE] = COMBO_ACTION(paste_combo),
};
void process_combo_event(uint8_t combo_index, bool pressed) {
void process_combo_event(uint16_t combo_index, bool pressed) {
switch(combo_index) {
case ZC_COPY:
if (pressed) {

View File

@@ -15,7 +15,8 @@ RGB LED を使いたい場合は、代わりに [RGB マトリックスサブシ
I2C IS31FL3731 RGB コントローラを使ったアドレス指定可能な LED マトリックスライトのための基本的なサポートがあります:有効にするには、`rules.mk` に以下を追加します:
LED_MATRIX_ENABLE = IS31FL3731
LED_MATRIX_ENABLE = yes
LED_MATRIX_DRIVER = IS31FL3731
1から4個の IS31FL3731 IC を使うことができます。キーボード上に存在しない IC の `LED_DRIVER_ADDR_<N>` 定義を指定しないでください。`config.h` に以下の項目を定義することができます:

33
docs/ko-kr/README.md Normal file
View File

@@ -0,0 +1,33 @@
# Quantum Mechanical Keyboard Firmware
[![Current Version](https://img.shields.io/github/tag/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/tags)
[![Build Status](https://travis-ci.org/qmk/qmk_firmware.svg?branch=master)](https://travis-ci.org/qmk/qmk_firmware)
[![Discord](https://img.shields.io/discord/440868230475677696.svg)](https://discord.gg/Uq7gcHh)
[![Docs Status](https://img.shields.io/badge/docs-ready-orange.svg)](https://docs.qmk.fm)
[![GitHub contributors](https://img.shields.io/github/contributors/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/pulse/monthly)
[![GitHub forks](https://img.shields.io/github/forks/qmk/qmk_firmware.svg?style=social&label=Fork)](https://github.com/qmk/qmk_firmware/)
## QMK Firmware 란?
QMK(*Quantum Mechanical Keyboard 양자 기계식 키보드*)란 QMK 컴워어, QMK 툴박스, qmk.fm 를 관리하고 있는 오픈소스 커뮤니티 입니다. QMK펌웨어는 [tmk\_keyboard](http://github.com/tmk/tmk_keyboard)를 바탕으로 만들어진 키보드펌웨어이며, Atmel AVR컨트롤러와 [OLKB 제품군](http://olkb.com) [ErgoDox EZ](http://www.ergodox-ez.com), 그리고 [Clueboard 제품군](http://clueboard.co/) 이용할때 매우 편리합니다. 또한 QMK는 ChibiOS를 사용하여 ARM기반의 컨트롤러로도 사용할수 있습니다. 마지막으로 QMK는 커스텀회로와 핸드와이어드 키보드을 작동시키는데에도 사용가능합니다.
## 설치하기
만약 당신이 QMK에 키보드, 키맵, 또는 새로운 기능을 추가하고싶다면, 가장쉬운 방법은 Github를 통해 [저장소(REPO)를 추가하고]((https://github.com/qmk/qmk_firmware#fork-destination-box)) 로컬에서 변화 또는 수정하고, [PULL REQUEST](https://github.com/qmk/qmk_firmware/pulls)을 통해 업로드 할수 있습니다.
또다른 방법으로는, 직접 파일들 로컬로 다운로드 하거나([zip](https://github.com/qmk/qmk_firmware/zipball/master), [tar](https://github.com/qmk/qmk_firmware/tarball/master)), git (`git@github.com:qmk/qmk_firmware.git`), https (`https://github.com/qmk/qmk_firmware.git`)을 통해 클론을 만들수 있습니다.
## 컴파일
먼저 컴파일을 하기전 AVR 이나 ARM [개발환경](getting_started_build_tools.md)을 구축해야 합니다. 모든준비가 끝났다면 `make`를 다음과 같이 키보드와 키맵을 선택하여 컴파일 할 수 있습니다.
make planck/rev4:default
이 커맨드는 `rev4`버전의 `planck``default`키맵으로 컴파일 할것입니다. 다만 모든 키보드는 파일, 수정본 또는 세부프로젝트를 가지고있지 않음으로 수정본 부분을 생략될수 있습니다.
make preonic:default
## 커스터마이징
QMK는 사용할 수 있는 매우 다양한 [기능](features.md)과 체계화된 [참고자료](http://docs.qmk.fm)들이 있습니다. 그중 대부분은 [키맵](keymap.md)을 수정하거나 [키코드](keycodes.md)를 변경하는데에 특화되어 있습니다.

View File

@@ -0,0 +1,156 @@
# 컴파일 도구 설치
이 페이지는 QMK 컴파일 환경을 설치하는 방법을 설명합니다. 이 페이지는 AVR 프로세서들(예를 들면 atmega32u4와 비슷한)을 위한 가이드를 제공합니다
<!-- FIXME: We should have ARM instructions somewhere. -->
**노트:** 만약 당신이 처음 시작한다면 [입문자를 위한 가이드](newbs.md)페이지를 확인하세요.
계속하기전에 당신의 서브모듈(외부라이브러리)이 최신인지 `make git-submodule`을 사용하여 확인하세요.
## 리눅스
당신이 항상 최신 파일을 가지고 있는지는 `sudo util/qmk_install.sh`을 이용하여 간단히 확인할 수 있습니다. 이 명령어는 당신이 필요한 모든 속성물(dependencies)를 설치할 것입니다. **이 명령어는 `apt-get upgrade`를 사용합니다**
또한 당신의 직접 필요한 것들을 설치할 수도 있습니다. 하지만 이 자료는 항상 최신의 자료을 가지고 있지 않습니다.
현재로써 필요한 것은 다음과 같습니다. 하지만 당신이 하는 작업에 따라 당신은 다음 패키지를 다 쓰지 않을 수도 있습니다. 또한 환경에 따라 모든 다음 패키지는 다른이름으로 존재하거나, 없을 수도 있습니다.
```
build-essential
gcc
unzip
wget
zip
gcc-avr
binutils-avr
avr-libc
dfu-programmer
dfu-util
gcc-arm-none-eabi
binutils-arm-none-eabi
libnewlib-arm-none-eabi
git
```
당신이 사용하는 패키지 매니져에서 이러한 방법으로 설치하십시요.
데비안 / 우분투 예시:
sudo apt-get update
sudo apt-get install gcc unzip wget zip gcc-avr binutils-avr avr-libc dfu-programmer dfu-util gcc-arm-none-eabi binutils-arm-none-eabi libnewlib-arm-none-eabi
페도라 / 레드햇 예시:
sudo dnf install gcc unzip wget zip dfu-util dfu-programmer avr-gcc avr-libc binutils-avr32-linux-gnu arm-none-eabi-gcc-cs arm-none-eabi-binutils-cs arm-none-eabi-newlib
아치 / 맨자로(Manjaro) 예시:
pacman -S base-devel gcc unzip wget zip avr-gcc avr-binutils avr-libc dfu-util arm-none-eabi-gcc arm-none-eabi-binutils arm-none-eabi-newlib git dfu-programmer dfu-util
## 닉스 (NIX)
만약 당신이 [NixOS](https://nixos.org/)를 사용중이거나 NIX를 리눅스 또는 맥에서 사용중이라면 `nix-shell`를 root 디렉토리에서 사용하여 컴파일 환경의 구축할 수 있습니다.
기본적으로 다음 커맨드는 AVR과 ARM 컴파일러를 설치할것입니다. 만약 필요 없다면 `avr` 또는 `arm`을 인수에서 해제할 수 있습니다.
nix-shell --arg arm false
## 맥
당신이 홈브루([homebrew](http://brew.sh/))를 사용한다면, 다음을 입력하세요.
brew tap osx-cross/avr
brew tap PX4/homebrew-px4
brew update
brew install avr-gcc@7
brew link --force avr-gcc@7
brew install dfu-programmer
brew install dfu-util
brew install gcc-arm-none-eabi
brew install avrdude
이 방법을 가장 추천합니다. 만약 홈브루가 없다면 커맨드라인 환경에서 매우 편한 [Homebrew](http://brew.sh/)를 다운받는 것을 추천합니다. 참고로 `avr-gcc@7`를 설치하는 중 `make``make install`는 대개 20분 넘게 걸리고 CPU 사용량이 높아집니다.
## msys2를 사용하는 윈도우 (추천)
윈도우 비스타 부터 최신버젼까지 가장추천되는 환경은 [msys2](http://www.msys2.org)를 이용하는 것입니다. (윈도우 7과 윈도우 10에서 모두 테스트되었음)
* 이 사이트에 있는 설명을 이용해 msys2를 설치하세요: http://www.msys2.org
* ``MSYS2 MingGW 64-bit`` 를 여세요
* QMK폴더로 이동하세요. c드라이브 루트에 있는경우:
* `$ cd /c/qmk_firmware`
* `util/qmk_install.sh`을 실행시키고 나오는데요 따라하세요
### 크리에이터 업데이트
만약 당신의 윈도우 10이 크리에이터 업데이트 버전 또는 더 높은 버전이라면 바로 컴파일과 프로그램 업로드(flashing)를 할 수 있습니다. 크리에이터 업데이트 전 버전이라면 컴파일만 가능합니다. 만약 당신이 잘 모르겠거나 업데이트된 버전이 아니라면 [이 링크](https://support.microsoft.com/en-us/instantanswers/d4efb316-79f0-1aa1-9ef3-dcada78f3fa0/get-the-windows-10-creators-update)를 확인해 보십시오.
### 리눅스용 윈도우 하위 시스템 사용 (Windows10 Subsystem for Linux)
크리에이터 업데이트에 추가로 만약 당신이 리눅스용 윈도우 하위 시스템이 필요하다면 이 링크에서 다운받으십시오: [설명](http://www.howtogeek.com/249966/how-to-install-and-use-the-linux-bash-shell-on-windows-10/)
만약 당신이 이미 리눅스용 윈도우 하위 시스템을 Anniversary업데이트를 통해 받았다면 이 링크에서 16.04LTS로 업데이트 하는것을 추천합니다. 왜냐하면 업데이트 없이는 일부키보드가 14.04LTS에 포함되있는 도구들로 컴파일되지 않을수 있기때문입니다 : [WSL 업데이트](https://betanews.com/2017/04/14/upgrade-windows-subsystem-for-linux/)
### Git
만약 당신이 이미 파일을 로컬로 복제하였다면 이 섹션을 무시하십시요.
당신은 파일을 기본적인 git을 사용하여 로컬로 복제해야 합니다. **주의, WSL Git을 사용하면 안됩니다** [Git](https://git-scm.com/download/win) 이 링크에서 git을 다운받고 설치하십시오.
그리고 [기본설정](https://git-scm.com/book/en/v2/Getting-Started-First-Time-Git-Setup), 유저네임과 이메일을 설정하는 것은 만약 당신이 온라인에 기여할 계획이라면 매우 중요합니다.
Git의 설치가 완료되었다면 Git Bash커맨드을 열고 당신의 복제 QMK파일이 있는 위치로 이동하고 `git clone --recurse-submodules https://github.com/qmk/qmk_firmware`를 실행 시키십니오. 이 커맨드는 새로운 `qmk_firmware`폴더를 이미 존재하는 것의 하위 폴더설정으로 생성할 것입니다.
### 도구(Toolchain) 설정
기본적으로 도구설정은 리눅스용 윈도우 하위 시스템이 설치될때 자동으로 설정됩니다. 하지만 수동적으로 하고 싶다면 여기 설명이 있습니다. (If you want to do everything manually, there are no other instructions than the scripts themselves, but you can always open issues and ask for more information. )
1. "Bash On Ubuntu On Windows" 을 실행시키십시오.
2. 당신이 `qmk_firmware`를 복제한 위치로 가십시오. WSL(리눅스용 윈도우 하위 시스템 사용)에서 `/mnt/`로 시작되는 패스를 찾으십시오. 즉 당신은 다음과 같은 형식으로 입력해야 합니다. `cd /mnt/c/path/to/qmk_firmware` (Note that the paths start with `/mnt/`in the WSL, so you have to write for example `cd /mnt/c/path/to/qmk_firmware`.)
3. `util/wsl_install.sh`를 실행시키고 화면에 나오는 지시를 따르십니오.
4. Bash command window를 재실행 시키십시오.
5. 이로써 당신은 컴파일과 프로그램 업로드(flashing)을 위한 준비가 모두 끝났습니다.
### 중요한 참고사항
*`util/wsl_install.sh` 명령어를 다시 실행시켜 최신 업데이트를 다운받을 수 있습니다.
* QMK 폴더의 위치는 윈도우 파일시스템을 기반으로 해야 됩니다. WSL는 외부실행파일를 작동 시킬수 없기 때문이죠.
* WSL의 Git은 윈도우용 Git과 **호환되지 않습니다**
* 파일을 수정하는 것은 WSL안과 밖에서 모두 가능합니다 하지만 만약 .makefile 혹은 .sh를 수정한다면 유닉스 라인엔딩(Unix line endings)을 지원하는 에디터를 사용하는지 확인하십이오. 그렇지 않다면 컴파일이 되지않을 수도 있습니다.
## 윈두우 (비스타 혹은 더 최신) (비추천)
이 섹션은 윈도우 비스타 혹은 더 최신버젼을 위한 오래된 설명입니다. [MSYS2](#windows-with-msys2-recommended)를 사용하는 것을 더 추천합니다.
1. WinAVR을 설치하였다면 먼저 삭제하십시오.
2. [MHV AVR Tools](https://infernoembedded.com/sites/default/files/project/MHV_AVR_Tools_20131101.exe)을 설치하십시오. (Disable smatch, but **be sure to leave the option to add the tools to the PATH checked**)
3. 만약 당신이 Infinity을 기반으로 하는 키보드에 프로그램 업로드를(flashing) 할거라면 dfu-util을 설치해야 합니다, [Input Club](https://github.com/kiibohd/controller/wiki/Loading-DFU-Firmware) 를 참고 하십시오.
4. [MinGW](https://sourceforge.net/projects/mingw/files/Installer/mingw-get-setup.exe/download)를 설치하십시오. 설치중 윈도우화면에서 GUI 추가 설치 옵션을 해재하십니오. **기본 설치 위치를 바꾸지 마십시오.** 이 명령어는 기본위치를 기반으로 하고 있습니다.
5. 레파지토리를 복제하십시오. [이 링크로 압축파일을 받고 앞축해제 하십시오.](https://github.com/qmk/qmk_firmware/archive/master.zip) 윈도우 탐색기에서 다운받은 파일을 여십시오.
6. `\util` 폴더를 여십시오.
7. `1-setup-path-win` .bat파일을 더블클릭해서 실행시키시오. 유저 계정 설정 변경을 허용해야될 수도 있습니다. 스페이스바를 눌러 설치가 성공적으로 완료되었다는 메세지를 닫을 수 있습니다.
8. `2-setup-environment-win` .bat파일에 우클릭해서 '관리자 권한으로 실행'으로 실행시키십시오. 이 작업을 꽤 오래 걸릴 수도 있습니다. 또한 드라이버 설정을 승인해야 될 수도 있습니다. 하지만 이 모든것이 끝나면 당신의 시스템의 설정이 모두 끝났습니다.
만약 이 작업을 하는데에 문제가 있어 도움받고 싶다면 *Win_Check_Output.txt*을 생성하는 것이 도움이 될것입니다. 이 파일은 `Win_Check.bat``\util`폴더에서 실행시켜 생성할 수 있습니다.
## 도커(Docker)
만약 위작업들이 당신에게 좀 어렵게 느껴졌다면 도커(Docker)가 당신을 위한 최선일 수도 있습니다(의역). [Docker CE](https://docs.docker.com/install/#supported-platforms)를 설치한뒤 아래 커맨드를 `qmk_firmware` 디랙토리에서 실행시켜 키보드 또는 키맵을 생성시킵니다.
```bash
util/docker_build.sh keyboard:keymap
# 예: util/docker_build.sh ergodox_ez:steno
```
이 커맨드는 원하는 키보드 또는 키맵을 컴파일하고 `.hex`또는 `.bin`파일을 프로그램 업로드를(flashing) 위해 QMK디랙토리에 생성할것입니다. 만약 `:keymap`이 생략된다면 `default`이 기본을로 사용됩니다. 참고로 여기서 사용되는 인수는 `make` 커맨드를 사용하여 컴파일할때와 동일합니다.
또한 스크립트를 그냥 아무 인수 없이도 사용가능합니다. 그렇게 된다면 프로그램은 하나씩 자동으로 인수입력을 요구 할것입니다. 어쩌면 이방법이 더 쉬울 수도 있습니다.
```bash
util/docker_build.sh
# 인수을 입력받습니다.(아무것도 쓰지 않고 놔두는면 기본값으로 설정됩니다)
```
다음과 같이 `target`를 사용하여 컴파일과 프로그램 업로드(flashing)을 동시에 할수도 있습니다.
```bash
util/docker_build.sh keyboard:keymap:target
# 예: util/docker_build.sh planck/rev6:default:dfu-util
```
만약 당시이 리눅스를 사용한다면 이 커맨드들은 추가 설정 없이 바로 작동할 것입니다. 하지만 위도우 또는 맥 환경에서는 [Docker Machine](http://gw.tnode.com/docker/docker-machine-with-usb-support-on-windows-macos/)를 사용하여야 이 커맨드들을 사용가능합니다. Docker Machine설정은 꽤 지루하고 짜증남으로 추천하지 않고 [QMK Toolbox](https://github.com/qmk/qmk_toolbox)를 사용하는 것을 추천합니다.
!> 윈도우에서 독커는 [Hyper-V](https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/quick-start/enable-hyper-v)을 활성화 설정하여야 사용가능합니다. 즉, 도커는 Hyper-V를 지원하지 않는 윈도우 7, 윈도우 8, 그리고 **윈도우 10 홈**과 같은 윈도우 버전에서 사용할수 없다는 것을 의미합니다.
## Vagrant
만약 컴웨어를 사용하는데 문제가 있다면 Vagrant라는 이름의 툴을 사용해 볼 수 있습니다. 이 툴은 가상환경을 세팅해줌과 동시에 컴웨어를 사용하는데에 필요한 모든 설정을 해줄 것입니다. OLKB는 가상환경에 파일을 호스팅하지 않습니다. [Vagrant 가이드](getting_started_vagrant.md)에서 더 많은 정보를 확인할 수 있습니다.

View File

@@ -0,0 +1,17 @@
# 도움 받기
QMK에서 도움을 받는 방법은 다양합니다.
**주의, 아래 링크들은 영어로 이루어져 있으며 영어 사용이 가능해야 편리하게 이용할 수 있습니다.**
## 디스코드 실시간 채팅
[QMK 디스코드 서버](https://discord.gg/Uq7gcHh)에서 QMK 개발자들과 실시간으로 대화를 나눌수있습니다. 이 디스코드에는 펌웨어, 툴박스, 하드웨어, 그리고 컨피겨레이터(configurator)에 관한 특별화된 채널이 운영되고 있습니다.
## OLKB 서브레딧
공식 QMK 포럼은 [reddit.com](https://reddit.com) 에 [/r/olkb](https://reddit.com/r/olkb)입니다.
## Github 이슈
[issue on GitHub](https://github.com/qmk/qmk_firmware/issues)에서 문제를 보고 할 수 있습니다. 이 링크는 문제가 오랜 시간을 필요로하거나 디버깅를 요구 할때 매우 유용합니다.

View File

@@ -0,0 +1,67 @@
# QMK와 함께 Github를 사용하는 방법
Github can be a little tricky to those that aren't familiar with it - this guide will walk through each step of forking, cloning, and submitting a pull request with QMK.
Github는 자주 사용하는 사람이 아니면 좀 여려울수도 있습니다. 이 문서는 Github를 사용하는데 필요한 forking, cloning 그리고 submitting a pull request with QMK를 설명할 것입니다.
?> 이 가이드는 당신이 git커맨드를 사용하는데 익숙하고 git환경을 당신의 시스템이 설치하였다는 전제하에 작성되었습니다.
아래와 같이 [QMK Github 페이지](https://github.com/qmk/qmk_firmware)에서 당신은 "Fork"라고 쓰여있는 버튼을 볼 수 있습니다
![Fork on Github](http://i.imgur.com/8Toomz4.jpg)
만약 당신이 어느기관 소속이고, 무슨 계정을 사용할것인지 골라야 한다면 개인 계정을 사용하는 것을 추천합니다.
"Fork"가 성공적으로 끝났다면 아래 보이는 "Clone or Download"를 눌러야 합니다.
![Download from Github](http://i.imgur.com/N1NYcSz.jpg)
"HTTPS"채크 했는지 확인하고 나와 있는 링크를 복사하세요.
![HTTPS link](http://i.imgur.com/eGO0ohO.jpg)
여기거 부터 커맨드라인을 사용합니다. 커맨드 라인에서 `git clone `을 치고 복사한 링크를 붙여넣은후 실행시키세요.
```
user@computer:~$ git clone https://github.com/whoeveryouare/qmk_firmware.git
Cloning into 'qmk_firmware'...
remote: Counting objects: 46625, done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 46625 (delta 0), reused 0 (delta 0), pack-reused 46623
Receiving objects: 100% (46625/46625), 84.47 MiB | 3.14 MiB/s, done.
Resolving deltas: 100% (29362/29362), done.
Checking out files: 100% (2799/2799), done.
```
당신은 이제 모든파일이 로컬시스템이 추가 되었습니다 그리고 이제 키맵을 추가하거나 컴파일, 프로그램 업로드(flashing)를 할 수 있습니다.
모든 추가 변경을 만든 뒤에는 add, commit, and push를 사용하여 당신의 Folk에 추가 할 수 있습니다.
```
user@computer:~$ git add .
user@computer:~$ git commit -m "adding my keymap"
[master cccb1608] adding my keymap
1 file changed, 1 insertion(+)
create mode 100644 keyboards/planck/keymaps/mine/keymap.c
user@computer:~$ git push
Counting objects: 1, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (1/1), done.
Writing objects: 100% (1/1), 1.64 KiB | 0 bytes/s, done.
Total 1 (delta 1), reused 0 (delta 0)
remote: Resolving deltas: 100% (1/1), completed with 1 local objects.
To https://github.com/whoeveryouare/qmk_firmware.git
+ 20043e64...7da94ac5 master -> master
```
이로써 당신이 만든 모든 변경들이 당신의 Github의 Folk에 추가 되었습니다. (`https://github.com/<whoeveryouare>/qmk_firmware`)에서 확인하고 "New Pull Request"를 눌러 변경사항을 QMK에 업로드할수 있습니다.
![New Pull Request](http://i.imgur.com/DxMHpJ8.jpg)
이 버튼을 누르면 당신이 만든 모든 변경사항들이 보여질 것입니다. 만약 모든 변경사항이 맘에 든다면 "Create Pull Request"를 눌러 요청을 확정할수 있습니다.
**요청사항이 확정된다고 변경사항이 바로 적용되는 것은 아닙니다.**
![Create Pull Request](http://i.imgur.com/Ojydlaj.jpg)
요청을 한뒤 QMK개발자들은 댓글로 무엇이 변경되었는지 등을 물어 볼수있지만 끝에는 매인 디랙토리로 업로드 될것입니다.
**"Thanks for contributing to QMK :)"**

View File

@@ -55,3 +55,7 @@ Unfortunately, these keycodes cannot be used in Mod-Taps or Layer-Taps, since an
Additionally, you may run into issues when using Remote Desktop Connection on Windows. Because these codes send shift very fast, Remote Desktop may miss the codes.
To fix this, open Remote Desktop Connection, click on "Show Options", open the the "Local Resources" tab. In the keyboard section, change the drop down to "On this Computer". This will fix the issue, and allow the characters to work correctly.
## Other Resources
See the [Tap-Hold Configuration Options](tap_hold.md) for additional flags that tweak Mod-Tap behavior.

View File

@@ -1,4 +1,4 @@
# The Complete Newbs Guide To QMK
# The QMK Tutorial
Your computer keyboard has a processor inside of it, similar to the one inside your computer. This processor runs software that is responsible for detecting button presses and informing the computer when keys are pressed. QMK Firmware fills the role of that software, detecting button presses and passing that information on to the host computer. When you build your custom keymap, you are creating an executable program for your keyboard.

View File

@@ -60,9 +60,12 @@ After Homebrew is installed run this command:
You will need to install Git and Python. It's very likely that you already have both, but if not, one of the following commands should install them:
* Debian / Ubuntu / Devuan: `sudo apt install git python3 python3-pip`
* Fedora / Red Hat / CentOS: `sudo yum install git python3 python3-pip`
* Arch / Manjaro: `sudo pacman -S git python python-pip python-setuptools libffi`
* Debian / Ubuntu / Devuan: `sudo apt install -y git python3-pip`
* Fedora / Red Hat / CentOS: `sudo yum -y install git python3-pip`
* Arch / Manjaro: `sudo pacman --needed --noconfirm -S git python-pip libffi`
* Void: `sudo xbps-install -y git python3-pip`
* Solus: `sudo eopkg -y install git python3`
* Sabayon: `sudo equo install dev-vcs/git dev-python/pip`
Install the global CLI to bootstrap your system:

View File

@@ -22,7 +22,7 @@ Sometimes, you want to activate a one-shot key as part of a macro or tap dance r
For one shot layers, you need to call `set_oneshot_layer(LAYER, ONESHOT_START)` on key down, and `clear_oneshot_layer_state(ONESHOT_OTHER_KEY_PRESSED)` on key up. If you want to cancel the oneshot, call `reset_oneshot_layer()`.
For one shot mods, you need to call `set_oneshot_mods(MOD)` to set it, or `clear_oneshot_mods()` to cancel it.
For one shot mods, you need to call `set_oneshot_mods(MOD_BIT(KC_*))` to set it, or `clear_oneshot_mods()` to cancel it.
!> If you're having issues with OSM translating over Remote Desktop Connection, this can be fixed by opening the settings, going to the "Local Resources" tap, and in the keyboard section, change the drop down to "On this Computer". This will fix the issue and allow OSM to function properly over Remote Desktop.

View File

@@ -73,6 +73,7 @@ https://github.com/qmk/qmk_firmware/pulls?q=is%3Apr+is%3Aclosed+label%3Akeyboard
- commented-out functions removed too
- `matrix_init_board()` etc. migrated to `keyboard_pre_init_kb()`, see: [keyboard_pre_init*](https://docs.qmk.fm/#/custom_quantum_functions?id=keyboard_pre_init_-function-documentation)
- prefer `CUSTOM_MATRIX = lite` if custom matrix used, allows for standard debounce, see [custom matrix 'lite'](https://docs.qmk.fm/#/custom_matrix?id=lite)
- prefer LED indicator [Configuration Options](https://docs.qmk.fm/#/feature_led_indicators?id=configuration-options) to custom `led_update_*()` implementations where possible
- `keyboard.h`
- `#include "quantum.h"` appears at the top
- `LAYOUT` macros should use standard definitions if applicable

View File

@@ -179,6 +179,25 @@ Holding and releasing a dual function key without pressing another key will resu
For instance, holding and releasing `LT(2, KC_SPACE)` without hitting another key will result in nothing happening. With this enabled, it will send `KC_SPACE` instead.
For more granular control of this feature, you can add the following to your `config.h`:
```c
#define RETRO_TAPPING_PER_KEY
```
You can then add the following function to your keymap:
```c
bool get_retro_tapping(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case LT(2, KC_SPACE):
return true;
default:
return false;
}
}
```
## Why do we include the key record for the per key functions?
One thing that you may notice is that we include the key record for all of the "per key" functions, and may be wondering why we do that.

View File

@@ -20,50 +20,111 @@
#ifdef SOFT_SERIAL_PIN
# ifdef __AVR_ATmega32U4__
// if using ATmega32U4 I2C, can not use PD0 and PD1 in soft serial.
# ifdef USE_AVR_I2C
# if SOFT_SERIAL_PIN == D0 || SOFT_SERIAL_PIN == D1
# error Using ATmega32U4 I2C, so can not use PD0, PD1
# endif
# if !(defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB647__) || defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB1287__) || defined(__AVR_ATmega16U2__) || defined(__AVR_ATmega32U2__) || defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__))
# error serial.c is not supported for the currently selected MCU
# endif
// if using ATmega32U4/2, AT90USBxxx I2C, can not use PD0 and PD1 in soft serial.
# if defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__) || defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB647__) || defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB1287__)
# if defined(USE_AVR_I2C) && (SOFT_SERIAL_PIN == D0 || SOFT_SERIAL_PIN == D1)
# error Using I2C, so can not use PD0, PD1
# endif
# endif
// PD0..PD3, common config
# if SOFT_SERIAL_PIN == D0
# define EIMSK_BIT _BV(INT0)
# define EICRx_BIT (~(_BV(ISC00) | _BV(ISC01)))
# define SERIAL_PIN_INTERRUPT INT0_vect
# define EICRx EICRA
# elif SOFT_SERIAL_PIN == D1
# define EIMSK_BIT _BV(INT1)
# define EICRx_BIT (~(_BV(ISC10) | _BV(ISC11)))
# define SERIAL_PIN_INTERRUPT INT1_vect
# define EICRx EICRA
# elif SOFT_SERIAL_PIN == D2
# define EIMSK_BIT _BV(INT2)
# define EICRx_BIT (~(_BV(ISC20) | _BV(ISC21)))
# define SERIAL_PIN_INTERRUPT INT2_vect
# define EICRx EICRA
# elif SOFT_SERIAL_PIN == D3
# define EIMSK_BIT _BV(INT3)
# define EICRx_BIT (~(_BV(ISC30) | _BV(ISC31)))
# define SERIAL_PIN_INTERRUPT INT3_vect
# define EICRx EICRA
# endif
# define setPinInputHigh(pin) (DDRx_ADDRESS(pin) &= ~_BV((pin)&0xF), PORTx_ADDRESS(pin) |= _BV((pin)&0xF))
# define setPinOutput(pin) (DDRx_ADDRESS(pin) |= _BV((pin)&0xF))
# define writePinHigh(pin) (PORTx_ADDRESS(pin) |= _BV((pin)&0xF))
# define writePinLow(pin) (PORTx_ADDRESS(pin) &= ~_BV((pin)&0xF))
# define readPin(pin) ((bool)(PINx_ADDRESS(pin) & _BV((pin)&0xF)))
// ATmegaxxU2 specific config
# if defined(__AVR_ATmega16U2__) || defined(__AVR_ATmega32U2__)
// PD4(INT5), PD6(INT6), PD7(INT7), PC7(INT4)
# if SOFT_SERIAL_PIN == D4
# define EIMSK_BIT _BV(INT5)
# define EICRx_BIT (~(_BV(ISC50) | _BV(ISC51)))
# define SERIAL_PIN_INTERRUPT INT5_vect
# define EICRx EICRB
# elif SOFT_SERIAL_PIN == D6
# define EIMSK_BIT _BV(INT6)
# define EICRx_BIT (~(_BV(ISC60) | _BV(ISC61)))
# define SERIAL_PIN_INTERRUPT INT6_vect
# define EICRx EICRB
# elif SOFT_SERIAL_PIN == D7
# define EIMSK_BIT _BV(INT7)
# define EICRx_BIT (~(_BV(ISC70) | _BV(ISC71)))
# define SERIAL_PIN_INTERRUPT INT7_vect
# define EICRx EICRB
# elif SOFT_SERIAL_PIN == C7
# define EIMSK_BIT _BV(INT4)
# define EICRx_BIT (~(_BV(ISC40) | _BV(ISC41)))
# define SERIAL_PIN_INTERRUPT INT4_vect
# define EICRx EICRB
# endif
# endif
# if SOFT_SERIAL_PIN >= D0 && SOFT_SERIAL_PIN <= D3
# if SOFT_SERIAL_PIN == D0
# define EIMSK_BIT _BV(INT0)
# define EICRx_BIT (~(_BV(ISC00) | _BV(ISC01)))
# define SERIAL_PIN_INTERRUPT INT0_vect
# elif SOFT_SERIAL_PIN == D1
# define EIMSK_BIT _BV(INT1)
# define EICRx_BIT (~(_BV(ISC10) | _BV(ISC11)))
# define SERIAL_PIN_INTERRUPT INT1_vect
# elif SOFT_SERIAL_PIN == D2
# define EIMSK_BIT _BV(INT2)
# define EICRx_BIT (~(_BV(ISC20) | _BV(ISC21)))
# define SERIAL_PIN_INTERRUPT INT2_vect
# elif SOFT_SERIAL_PIN == D3
# define EIMSK_BIT _BV(INT3)
# define EICRx_BIT (~(_BV(ISC30) | _BV(ISC31)))
# define SERIAL_PIN_INTERRUPT INT3_vect
# endif
// ATmegaxxU4 specific config
# if defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__)
// PE6(INT6)
# if SOFT_SERIAL_PIN == E6
# define EIMSK_BIT _BV(INT6)
# define EICRx_BIT (~(_BV(ISC60) | _BV(ISC61)))
# define SERIAL_PIN_INTERRUPT INT6_vect
# define EICRx EICRB
# endif
# endif
// AT90USBxxx specific config
# if defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB647__) || defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB1287__)
// PE4..PE7(INT4..INT7)
# if SOFT_SERIAL_PIN == E4
# define EIMSK_BIT _BV(INT4)
# define EICRx_BIT (~(_BV(ISC40) | _BV(ISC41)))
# define SERIAL_PIN_INTERRUPT INT4_vect
# define EICRx EICRB
# elif SOFT_SERIAL_PIN == E5
# define EIMSK_BIT _BV(INT5)
# define EICRx_BIT (~(_BV(ISC50) | _BV(ISC51)))
# define SERIAL_PIN_INTERRUPT INT5_vect
# define EICRx EICRB
# elif SOFT_SERIAL_PIN == E6
# define EIMSK_BIT _BV(INT6)
# define EICRx_BIT (~(_BV(ISC60) | _BV(ISC61)))
# define SERIAL_PIN_INTERRUPT INT6_vect
# else
# error invalid SOFT_SERIAL_PIN value
# define EICRx EICRB
# elif SOFT_SERIAL_PIN == E7
# define EIMSK_BIT _BV(INT7)
# define EICRx_BIT (~(_BV(ISC70) | _BV(ISC71)))
# define SERIAL_PIN_INTERRUPT INT7_vect
# define EICRx EICRB
# endif
# else
# error serial.c now support ATmega32U4 only
# endif
# ifndef SERIAL_PIN_INTERRUPT
# error invalid SOFT_SERIAL_PIN value
# endif
# define setPinInputHigh(pin) (DDRx_ADDRESS(pin) &= ~_BV((pin)&0xF), PORTx_ADDRESS(pin) |= _BV((pin)&0xF))
# define setPinOutput(pin) (DDRx_ADDRESS(pin) |= _BV((pin)&0xF))
# define writePinHigh(pin) (PORTx_ADDRESS(pin) |= _BV((pin)&0xF))
# define writePinLow(pin) (PORTx_ADDRESS(pin) &= ~_BV((pin)&0xF))
# define readPin(pin) ((bool)(PINx_ADDRESS(pin) & _BV((pin)&0xF)))
# define ALWAYS_INLINE __attribute__((always_inline))
# define NO_INLINE __attribute__((noinline))
# define _delay_sub_us(x) __builtin_avr_delay_cycles(x)
@@ -210,15 +271,9 @@ void soft_serial_target_init(SSTD_t *sstd_table, int sstd_table_size) {
Transaction_table_size = (uint8_t)sstd_table_size;
serial_input_with_pullup();
// Enable INT0-INT3,INT6
// Enable INT0-INT7
EIMSK |= EIMSK_BIT;
# if SOFT_SERIAL_PIN == E6
// Trigger on falling edge of INT6
EICRB &= EICRx_BIT;
# else
// Trigger on falling edge of INT0-INT3
EICRA &= EICRx_BIT;
# endif
EICRx &= EICRx_BIT;
}
// Used by the sender to synchronize timing with the reciver.

View File

@@ -58,18 +58,23 @@ static i2c_status_t chibios_to_qmk(const msg_t* status) {
}
__attribute__((weak)) void i2c_init(void) {
// Try releasing special pins for a short time
palSetPadMode(I2C1_SCL_BANK, I2C1_SCL, PAL_MODE_INPUT);
palSetPadMode(I2C1_SDA_BANK, I2C1_SDA, PAL_MODE_INPUT);
static bool is_initialised = false;
if (!is_initialised) {
is_initialised = true;
chThdSleepMilliseconds(10);
// Try releasing special pins for a short time
palSetPadMode(I2C1_SCL_BANK, I2C1_SCL, PAL_MODE_INPUT);
palSetPadMode(I2C1_SDA_BANK, I2C1_SDA, PAL_MODE_INPUT);
chThdSleepMilliseconds(10);
#if defined(USE_GPIOV1)
palSetPadMode(I2C1_SCL_BANK, I2C1_SCL, I2C1_SCL_PAL_MODE);
palSetPadMode(I2C1_SDA_BANK, I2C1_SDA, I2C1_SDA_PAL_MODE);
palSetPadMode(I2C1_SCL_BANK, I2C1_SCL, I2C1_SCL_PAL_MODE);
palSetPadMode(I2C1_SDA_BANK, I2C1_SDA, I2C1_SDA_PAL_MODE);
#else
palSetPadMode(I2C1_SCL_BANK, I2C1_SCL, PAL_MODE_ALTERNATE(I2C1_SCL_PAL_MODE) | PAL_STM32_OTYPE_OPENDRAIN);
palSetPadMode(I2C1_SDA_BANK, I2C1_SDA, PAL_MODE_ALTERNATE(I2C1_SDA_PAL_MODE) | PAL_STM32_OTYPE_OPENDRAIN);
palSetPadMode(I2C1_SCL_BANK, I2C1_SCL, PAL_MODE_ALTERNATE(I2C1_SCL_PAL_MODE) | PAL_STM32_OTYPE_OPENDRAIN);
palSetPadMode(I2C1_SDA_BANK, I2C1_SDA, PAL_MODE_ALTERNATE(I2C1_SDA_PAL_MODE) | PAL_STM32_OTYPE_OPENDRAIN);
#endif
}
}
i2c_status_t i2c_start(uint8_t address) {

View File

@@ -22,21 +22,26 @@ static pin_t currentSlavePin = NO_PIN;
static SPIConfig spiConfig = {false, NULL, 0, 0, 0, 0};
__attribute__((weak)) void spi_init(void) {
// Try releasing special pins for a short time
palSetPadMode(PAL_PORT(SPI_SCK_PIN), PAL_PAD(SPI_SCK_PIN), PAL_MODE_INPUT);
palSetPadMode(PAL_PORT(SPI_MOSI_PIN), PAL_PAD(SPI_MOSI_PIN), PAL_MODE_INPUT);
palSetPadMode(PAL_PORT(SPI_MISO_PIN), PAL_PAD(SPI_MISO_PIN), PAL_MODE_INPUT);
static bool is_initialised = false;
if (!is_initialised) {
is_initialised = true;
chThdSleepMilliseconds(10);
// Try releasing special pins for a short time
palSetPadMode(PAL_PORT(SPI_SCK_PIN), PAL_PAD(SPI_SCK_PIN), PAL_MODE_INPUT);
palSetPadMode(PAL_PORT(SPI_MOSI_PIN), PAL_PAD(SPI_MOSI_PIN), PAL_MODE_INPUT);
palSetPadMode(PAL_PORT(SPI_MISO_PIN), PAL_PAD(SPI_MISO_PIN), PAL_MODE_INPUT);
chThdSleepMilliseconds(10);
#if defined(USE_GPIOV1)
palSetPadMode(PAL_PORT(SPI_SCK_PIN), PAL_PAD(SPI_SCK_PIN), PAL_MODE_STM32_ALTERNATE_PUSHPULL);
palSetPadMode(PAL_PORT(SPI_MOSI_PIN), PAL_PAD(SPI_MOSI_PIN), PAL_MODE_STM32_ALTERNATE_PUSHPULL);
palSetPadMode(PAL_PORT(SPI_MISO_PIN), PAL_PAD(SPI_MISO_PIN), PAL_MODE_STM32_ALTERNATE_PUSHPULL);
palSetPadMode(PAL_PORT(SPI_SCK_PIN), PAL_PAD(SPI_SCK_PIN), PAL_MODE_STM32_ALTERNATE_PUSHPULL);
palSetPadMode(PAL_PORT(SPI_MOSI_PIN), PAL_PAD(SPI_MOSI_PIN), PAL_MODE_STM32_ALTERNATE_PUSHPULL);
palSetPadMode(PAL_PORT(SPI_MISO_PIN), PAL_PAD(SPI_MISO_PIN), PAL_MODE_STM32_ALTERNATE_PUSHPULL);
#else
palSetPadMode(PAL_PORT(SPI_SCK_PIN), PAL_PAD(SPI_SCK_PIN), PAL_MODE_ALTERNATE(SPI_SCK_PAL_MODE) | PAL_STM32_OTYPE_PUSHPULL | PAL_STM32_OSPEED_HIGHEST);
palSetPadMode(PAL_PORT(SPI_MOSI_PIN), PAL_PAD(SPI_MOSI_PIN), PAL_MODE_ALTERNATE(SPI_MOSI_PAL_MODE) | PAL_STM32_OTYPE_PUSHPULL | PAL_STM32_OSPEED_HIGHEST);
palSetPadMode(PAL_PORT(SPI_MISO_PIN), PAL_PAD(SPI_MISO_PIN), PAL_MODE_ALTERNATE(SPI_MISO_PAL_MODE) | PAL_STM32_OTYPE_PUSHPULL | PAL_STM32_OSPEED_HIGHEST);
palSetPadMode(PAL_PORT(SPI_SCK_PIN), PAL_PAD(SPI_SCK_PIN), PAL_MODE_ALTERNATE(SPI_SCK_PAL_MODE) | PAL_STM32_OTYPE_PUSHPULL | PAL_STM32_OSPEED_HIGHEST);
palSetPadMode(PAL_PORT(SPI_MOSI_PIN), PAL_PAD(SPI_MOSI_PIN), PAL_MODE_ALTERNATE(SPI_MOSI_PAL_MODE) | PAL_STM32_OTYPE_PUSHPULL | PAL_STM32_OSPEED_HIGHEST);
palSetPadMode(PAL_PORT(SPI_MISO_PIN), PAL_PAD(SPI_MISO_PIN), PAL_MODE_ALTERNATE(SPI_MISO_PAL_MODE) | PAL_STM32_OTYPE_PUSHPULL | PAL_STM32_OSPEED_HIGHEST);
#endif
}
}
bool spi_start(pin_t slavePin, bool lsbFirst, uint8_t mode, uint16_t divisor) {

View File

@@ -42,14 +42,6 @@
# include "debug.h"
#endif // DEBUG_EEPROM_OUTPUT
static inline void init_i2c_if_required(void) {
static int done = 0;
if (!done) {
i2c_init();
done = 1;
}
}
static inline void fill_target_address(uint8_t *buffer, const void *addr) {
uintptr_t p = (uintptr_t)addr;
for (int i = 0; i < EXTERNAL_EEPROM_ADDRESS_SIZE; ++i) {
@@ -58,7 +50,7 @@ static inline void fill_target_address(uint8_t *buffer, const void *addr) {
}
}
void eeprom_driver_init(void) {}
void eeprom_driver_init(void) { i2c_init(); }
void eeprom_driver_erase(void) {
#if defined(CONSOLE_ENABLE) && defined(DEBUG_EEPROM_OUTPUT)
@@ -80,7 +72,6 @@ void eeprom_read_block(void *buf, const void *addr, size_t len) {
uint8_t complete_packet[EXTERNAL_EEPROM_ADDRESS_SIZE];
fill_target_address(complete_packet, addr);
init_i2c_if_required();
i2c_transmit(EXTERNAL_EEPROM_I2C_ADDRESS((uintptr_t)addr), complete_packet, EXTERNAL_EEPROM_ADDRESS_SIZE, 100);
i2c_receive(EXTERNAL_EEPROM_I2C_ADDRESS((uintptr_t)addr), buf, len, 100);
@@ -98,7 +89,6 @@ void eeprom_write_block(const void *buf, void *addr, size_t len) {
uint8_t * read_buf = (uint8_t *)buf;
uintptr_t target_addr = (uintptr_t)addr;
init_i2c_if_required();
while (len > 0) {
uintptr_t page_offset = target_addr % EXTERNAL_EEPROM_PAGE_SIZE;
int write_length = EXTERNAL_EEPROM_PAGE_SIZE - page_offset;

View File

@@ -55,14 +55,6 @@
# include "debug.h"
#endif // CONSOLE_ENABLE
static void init_spi_if_required(void) {
static int done = 0;
if (!done) {
spi_init();
done = 1;
}
}
static bool spi_eeprom_start(void) { return spi_start(EXTERNAL_EEPROM_SPI_SLAVE_SELECT_PIN, EXTERNAL_EEPROM_SPI_LSBFIRST, EXTERNAL_EEPROM_SPI_MODE, EXTERNAL_EEPROM_SPI_CLOCK_DIVISOR); }
static spi_status_t spi_eeprom_wait_while_busy(int timeout) {
@@ -91,7 +83,7 @@ static void spi_eeprom_transmit_address(uintptr_t addr) {
//----------------------------------------------------------------------------------------------------------------------
void eeprom_driver_init(void) {}
void eeprom_driver_init(void) { spi_init(); }
void eeprom_driver_erase(void) {
#if defined(CONSOLE_ENABLE) && defined(DEBUG_EEPROM_OUTPUT)
@@ -110,8 +102,6 @@ void eeprom_driver_erase(void) {
}
void eeprom_read_block(void *buf, const void *addr, size_t len) {
init_spi_if_required();
//-------------------------------------------------
// Wait for the write-in-progress bit to be cleared
bool res = spi_eeprom_start();
@@ -154,8 +144,6 @@ void eeprom_read_block(void *buf, const void *addr, size_t len) {
}
void eeprom_write_block(const void *buf, void *addr, size_t len) {
init_spi_if_required();
bool res;
uint8_t * read_buf = (uint8_t *)buf;
uintptr_t target_addr = (uintptr_t)addr;

View File

@@ -33,11 +33,18 @@ void haptic_init(void) {
eeconfig_init();
}
haptic_config.raw = eeconfig_read_haptic();
if (haptic_config.mode < 1) {
haptic_config.mode = 1;
}
if (!haptic_config.mode) {
dprintf("No haptic config found in eeprom, setting default configs\n");
#ifdef SOLENOID_ENABLE
solenoid_set_dwell(haptic_config.dwell);
#endif
if ((haptic_config.raw == 0)
#ifdef SOLENOID_ENABLE
|| (haptic_config.dwell == 0)
#endif
) {
// this will be called, if the eeprom is not corrupt,
// but the previous firmware didn't have haptic enabled,
// or the previous firmware didn't have solenoid enabled,
// and the current one has solenoid enabled.
haptic_reset();
}
#ifdef SOLENOID_ENABLE
@@ -118,25 +125,37 @@ void haptic_mode_decrease(void) {
}
void haptic_dwell_increase(void) {
uint8_t dwell = haptic_config.dwell + 1;
#ifdef SOLENOID_ENABLE
int16_t next_dwell = ((int16_t)haptic_config.dwell) + SOLENOID_DWELL_STEP_SIZE;
if (haptic_config.dwell >= SOLENOID_MAX_DWELL) {
dwell = 1;
// if it's already at max, we wrap back to min
next_dwell = SOLENOID_MIN_DWELL;
} else if (next_dwell > SOLENOID_MAX_DWELL) {
// if we overshoot the max, then cap at max
next_dwell = SOLENOID_MAX_DWELL;
}
solenoid_set_dwell(dwell);
solenoid_set_dwell(next_dwell);
#else
int16_t next_dwell = ((int16_t)haptic_config.dwell) + 1;
#endif
haptic_set_dwell(dwell);
haptic_set_dwell(next_dwell);
}
void haptic_dwell_decrease(void) {
uint8_t dwell = haptic_config.dwell - 1;
#ifdef SOLENOID_ENABLE
if (haptic_config.dwell < SOLENOID_MIN_DWELL) {
dwell = SOLENOID_MAX_DWELL;
int16_t next_dwell = ((int16_t)haptic_config.dwell) - SOLENOID_DWELL_STEP_SIZE;
if (haptic_config.dwell <= SOLENOID_MIN_DWELL) {
// if it's already at min, we wrap to max
next_dwell = SOLENOID_MAX_DWELL;
} else if (next_dwell < SOLENOID_MIN_DWELL) {
// if we go below min, then we cap to min
next_dwell = SOLENOID_MIN_DWELL;
}
solenoid_set_dwell(dwell);
solenoid_set_dwell(next_dwell);
#else
int16_t next_dwell = ((int16_t)haptic_config.dwell) - 1;
#endif
haptic_set_dwell(dwell);
haptic_set_dwell(next_dwell);
}
void haptic_reset(void) {
@@ -150,6 +169,12 @@ void haptic_reset(void) {
#ifdef SOLENOID_ENABLE
uint8_t dwell = SOLENOID_DEFAULT_DWELL;
haptic_config.dwell = dwell;
haptic_config.buzz = SOLENOID_DEFAULT_BUZZ;
solenoid_set_dwell(dwell);
#else
// This is to trigger haptic_reset again, if solenoid is enabled in the future.
haptic_config.dwell = 0;
haptic_config.buzz = 0;
#endif
eeconfig_update_haptic(haptic_config.raw);
xprintf("haptic_config.feedback = %u\n", haptic_config.feedback);

View File

@@ -32,14 +32,6 @@ void solenoid_buzz_off(void) { haptic_set_buzz(0); }
void solenoid_set_buzz(int buzz) { haptic_set_buzz(buzz); }
void solenoid_dwell_minus(uint8_t solenoid_dwell) {
if (solenoid_dwell > 0) solenoid_dwell--;
}
void solenoid_dwell_plus(uint8_t solenoid_dwell) {
if (solenoid_dwell < SOLENOID_MAX_DWELL) solenoid_dwell++;
}
void solenoid_set_dwell(uint8_t dwell) { solenoid_dwell = dwell; }
void solenoid_stop(void) {
@@ -73,7 +65,7 @@ void solenoid_check(void) {
// Check whether to buzz the solenoid on and off
if (haptic_config.buzz) {
if (elapsed / SOLENOID_MIN_DWELL % 2 == 0) {
if ((elapsed % (SOLENOID_BUZZ_ACTUATED + SOLENOID_BUZZ_NONACTUATED)) < SOLENOID_BUZZ_ACTUATED) {
if (!solenoid_buzzing) {
solenoid_buzzing = true;
writePinHigh(SOLENOID_PIN);

View File

@@ -29,6 +29,22 @@
# define SOLENOID_MIN_DWELL 4
#endif
#ifndef SOLENOID_DWELL_STEP_SIZE
# define SOLENOID_DWELL_STEP_SIZE 1
#endif
#ifndef SOLENOID_DEFAULT_BUZZ
# define SOLENOID_DEFAULT_BUZZ 0
#endif
#ifndef SOLENOID_BUZZ_ACTUATED
# define SOLENOID_BUZZ_ACTUATED SOLENOID_MIN_DWELL
#endif
#ifndef SOLENOID_BUZZ_NONACTUATED
# define SOLENOID_BUZZ_NONACTUATED SOLENOID_MIN_DWELL
#endif
#ifndef SOLENOID_PIN
# error SOLENOID_PIN not defined
#endif
@@ -37,8 +53,6 @@ void solenoid_buzz_on(void);
void solenoid_buzz_off(void);
void solenoid_set_buzz(int buzz);
void solenoid_dwell_minus(uint8_t solenoid_dwell);
void solenoid_dwell_plus(uint8_t solenoid_dwell);
void solenoid_set_dwell(uint8_t dwell);
void solenoid_stop(void);

View File

@@ -233,4 +233,5 @@ void IS31FL3731_update_led_control_registers(uint8_t addr, uint8_t index) {
IS31FL3731_write_register(addr, i, g_led_control_registers[index][i]);
}
}
g_led_control_registers_update_required[index] = false;
}

View File

@@ -264,5 +264,6 @@ void IS31FL3736_update_led_control_registers(uint8_t addr1, uint8_t addr2) {
IS31FL3736_write_register(addr1, i, g_led_control_registers[0][i]);
// IS31FL3736_write_register(addr2, i, g_led_control_registers[1][i]);
}
g_led_control_registers_update_required = false;
}
}

View File

@@ -218,5 +218,6 @@ void IS31FL3737_update_led_control_registers(uint8_t addr1, uint8_t addr2) {
IS31FL3737_write_register(addr1, i, g_led_control_registers[0][i]);
// IS31FL3737_write_register(addr2, i, g_led_control_registers[1][i]);
}
g_led_control_registers_update_required = false;
}
}

View File

@@ -107,6 +107,7 @@ OLED_BLOCK_TYPE oled_dirty = 0;
bool oled_initialized = false;
bool oled_active = false;
bool oled_scrolling = false;
uint8_t oled_brightness = OLED_BRIGHTNESS;
uint8_t oled_rotation = 0;
uint8_t oled_rotation_width = 0;
uint8_t oled_scroll_speed = 0; // this holds the speed after being remapped to ssd1306 internal values
@@ -118,6 +119,9 @@ uint32_t oled_timeout;
#if OLED_SCROLL_TIMEOUT > 0
uint32_t oled_scroll_timeout;
#endif
#if OLED_UPDATE_INTERVAL > 0
uint16_t oled_update_timeout;
#endif
// Internal variables to reduce math instructions
@@ -193,7 +197,7 @@ bool oled_init(uint8_t rotation) {
}
}
static const uint8_t PROGMEM display_setup2[] = {I2C_CMD, COM_PINS, OLED_COM_PINS, CONTRAST, 0x8F, PRE_CHARGE_PERIOD, 0xF1, VCOM_DETECT, 0x40, DISPLAY_ALL_ON_RESUME, NORMAL_DISPLAY, DEACTIVATE_SCROLL, DISPLAY_ON};
static const uint8_t PROGMEM display_setup2[] = {I2C_CMD, COM_PINS, OLED_COM_PINS, CONTRAST, OLED_BRIGHTNESS, PRE_CHARGE_PERIOD, 0xF1, VCOM_DETECT, 0x20, DISPLAY_ALL_ON_RESUME, NORMAL_DISPLAY, DEACTIVATE_SCROLL, DISPLAY_ON};
if (I2C_TRANSMIT_P(display_setup2) != I2C_STATUS_SUCCESS) {
print("display_setup2 failed\n");
return false;
@@ -467,8 +471,9 @@ void oled_write_raw_byte(const char data, uint16_t index) {
}
void oled_write_raw(const char *data, uint16_t size) {
if (size > OLED_MATRIX_SIZE) size = OLED_MATRIX_SIZE;
for (uint16_t i = 0; i < size; i++) {
uint16_t cursor_start_index = oled_cursor - &oled_buffer[0];
if ((size + cursor_start_index) > OLED_MATRIX_SIZE) size = OLED_MATRIX_SIZE - cursor_start_index;
for (uint16_t i = cursor_start_index; i < cursor_start_index + size; i++) {
if (oled_buffer[i] == data[i]) continue;
oled_buffer[i] = data[i];
oled_dirty |= ((OLED_BLOCK_TYPE)1 << (i / OLED_BLOCK_SIZE));
@@ -510,8 +515,9 @@ void oled_write_ln_P(const char *data, bool invert) {
}
void oled_write_raw_P(const char *data, uint16_t size) {
if (size > OLED_MATRIX_SIZE) size = OLED_MATRIX_SIZE;
for (uint16_t i = 0; i < size; i++) {
uint16_t cursor_start_index = oled_cursor - &oled_buffer[0];
if ((size + cursor_start_index) > OLED_MATRIX_SIZE) size = OLED_MATRIX_SIZE - cursor_start_index;
for (uint16_t i = cursor_start_index; i < cursor_start_index + size; i++) {
uint8_t c = pgm_read_byte(data++);
if (oled_buffer[i] == c) continue;
oled_buffer[i] = c;
@@ -550,6 +556,20 @@ bool oled_off(void) {
bool is_oled_on(void) { return oled_active; }
uint8_t oled_set_brightness(uint8_t level) {
uint8_t set_contrast[] = {I2C_CMD, CONTRAST, level};
if (oled_brightness != level) {
if (I2C_TRANSMIT(set_contrast) != I2C_STATUS_SUCCESS) {
print("set_brightness cmd failed\n");
return oled_brightness;
}
oled_brightness = level;
}
return oled_brightness;
}
uint8_t oled_get_brightness(void) { return oled_brightness; }
// Set the specific 8 lines rows of the screen to scroll.
// 0 is the default for start, and 7 for end, which is the entire
// height of the screen. For 128x32 screens, rows 4-7 are not used.
@@ -635,9 +655,16 @@ void oled_task(void) {
return;
}
#if OLED_UPDATE_INTERVAL > 0
if (timer_elapsed(oled_update_timeout) >= OLED_UPDATE_INTERVAL) {
oled_update_timeout = timer_read();
oled_set_cursor(0, 0);
oled_task_user();
}
#else
oled_set_cursor(0, 0);
oled_task_user();
#endif
#if OLED_SCROLL_TIMEOUT > 0
if (oled_dirty && oled_scrolling) {

View File

@@ -141,6 +141,10 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#if !defined(OLED_FONT_HEIGHT)
# define OLED_FONT_HEIGHT 8
#endif
// Default brightness level
#if !defined(OLED_BRIGHTNESS)
# define OLED_BRIGHTNESS 255
#endif
#if !defined(OLED_TIMEOUT)
# if defined(OLED_DISABLE_TIMEOUT)
@@ -261,6 +265,12 @@ bool oled_off(void);
// not
bool is_oled_on(void);
// Sets the brightness of the display
uint8_t oled_set_brightness(uint8_t level);
// Gets the current brightness of the display
uint8_t oled_get_brightness(void);
// Basically it's oled_render, but with timeout management and oled_task_user calling!
void oled_task(void);

View File

@@ -8,8 +8,9 @@
#ifndef _GDISP_LLD_BOARD_H
#define _GDISP_LLD_BOARD_H
#define ST7565_LCD_BIAS ST7565_LCD_BIAS_9 // actually 6
#define ST7565_ADC ST7565_ADC_NORMAL
#include "quantum.h"
#define ST7565_LCD_BIAS ST7565_LCD_BIAS_7
#define ST7565_COM_SCAN ST7565_COM_SCAN_DEC
#define ST7565_PAGE_ORDER 0, 1, 2, 3
/*
@@ -17,19 +18,12 @@
* #define ST7565_PAGE_ORDER 4,5,6,7,0,1,2,3
*/
#define ST7565_GPIOPORT GPIOC
#define ST7565_PORT PORTC
#define ST7565_A0_PIN 7
#define ST7565_RST_PIN 8
#define ST7565_MOSI_PIN 6
#define ST7565_SLCK_PIN 5
#define ST7565_SS_PIN 4
#define ST7565_A0_PIN C7
#define ST7565_RST_PIN C8
#define ST7565_MOSI_PIN C6
#define ST7565_SCLK_PIN C5
#define ST7565_SS_PIN C4
#define palSetPadModeRaw(portname, bits) ST7565_PORT->PCR[ST7565_##portname##_PIN] = bits
#define palSetPadModeNamed(portname, portmode) palSetPadMode(ST7565_GPIOPORT, ST7565_##portname##_PIN, portmode)
#define ST7565_SPI_MODE PORTx_PCRn_DSE | PORTx_PCRn_MUX(2)
// DSPI Clock and Transfer Attributes
// Frame Size: 8 bits
// MSB First
@@ -38,9 +32,9 @@ static const SPIConfig spi1config = {
// Operation complete callback or @p NULL.
.end_cb = NULL,
// The chip select line port - when not using pcs.
.ssport = ST7565_GPIOPORT,
.ssport = PAL_PORT(ST7565_SS_PIN),
// brief The chip select line pad number - when not using pcs.
.sspad = ST7565_SS_PIN,
.sspad = PAL_PAD(ST7565_SS_PIN),
// SPI initialization data.
.tar0 = SPIx_CTARn_FMSZ(7) // Frame size = 8 bytes
| SPIx_CTARn_ASC(1) // After SCK Delay Scaler (min 50 ns) = 55.56ns
@@ -66,13 +60,14 @@ static GFXINLINE void release_bus(GDisplay *g) {
static GFXINLINE void init_board(GDisplay *g) {
(void)g;
palSetPadModeNamed(A0, PAL_MODE_OUTPUT_PUSHPULL);
palSetPad(ST7565_GPIOPORT, ST7565_A0_PIN);
palSetPadModeNamed(RST, PAL_MODE_OUTPUT_PUSHPULL);
palSetPad(ST7565_GPIOPORT, ST7565_RST_PIN);
palSetPadModeRaw(MOSI, ST7565_SPI_MODE);
palSetPadModeRaw(SLCK, ST7565_SPI_MODE);
palSetPadModeNamed(SS, PAL_MODE_OUTPUT_PUSHPULL);
setPinOutput(ST7565_A0_PIN);
writePinHigh(ST7565_A0_PIN);
setPinOutput(ST7565_RST_PIN);
writePinHigh(ST7565_RST_PIN);
setPinOutput(ST7565_SS_PIN);
palSetPadMode(PAL_PORT(ST7565_MOSI_PIN), PAL_PAD(ST7565_MOSI_PIN), PAL_MODE_ALTERNATIVE_2);
palSetPadMode(PAL_PORT(ST7565_SCLK_PIN), PAL_PAD(ST7565_SCLK_PIN), PAL_MODE_ALTERNATIVE_2);
spiInit();
spiStart(&SPID1, &spi1config);
@@ -83,19 +78,18 @@ static GFXINLINE void post_init_board(GDisplay *g) { (void)g; }
static GFXINLINE void setpin_reset(GDisplay *g, bool_t state) {
(void)g;
if (state) {
palClearPad(ST7565_GPIOPORT, ST7565_RST_PIN);
} else {
palSetPad(ST7565_GPIOPORT, ST7565_RST_PIN);
}
writePin(ST7565_RST_PIN, !state);
}
static GFXINLINE void enter_data_mode(GDisplay *g) { palSetPad(ST7565_GPIOPORT, ST7565_A0_PIN); }
static GFXINLINE void enter_cmd_mode(GDisplay *g) { palClearPad(ST7565_GPIOPORT, ST7565_A0_PIN); }
static GFXINLINE void write_data(GDisplay *g, uint8_t *data, uint16_t length) {
static GFXINLINE void write_cmd(GDisplay *g, gU8 cmd) {
(void)g;
writePinLow(ST7565_A0_PIN);
spiSend(&SPID1, 1, &cmd);
}
static GFXINLINE void write_data(GDisplay *g, gU8 *data, gU16 length) {
(void)g;
writePinHigh(ST7565_A0_PIN);
spiSend(&SPID1, length, data);
}

View File

@@ -1,3 +1,3 @@
GFXINC += drivers/ugfx/gdisp/st7565
GFXSRC += drivers/ugfx/gdisp/st7565/gdisp_lld_ST7565.c
GDISP_DRIVER_LIST += GDISPVMT_ST7565_QMK
GDISP_DRIVER_LIST += GDISPVMT_ST7565_QMK

View File

@@ -49,31 +49,15 @@
# define ST7565_COM_SCAN ST7565_COM_SCAN_INC
# endif
# ifndef ST7565_PAGE_ORDER
# define ST7565_PAGE_ORDER 0, 1, 2, 3
# define ST7565_PAGE_ORDER 0, 1, 2, 3, 4, 5, 6, 7
# endif
/*===========================================================================*/
/* Driver local functions. */
/*===========================================================================*/
typedef struct {
bool_t buffer2;
uint8_t data_pos;
uint8_t data[16];
uint8_t ram[GDISP_SCREEN_HEIGHT * GDISP_SCREEN_WIDTH / 8];
} PrivData;
// Some common routines and macros
# define PRIV(g) ((PrivData *)g->priv)
# define RAM(g) (PRIV(g)->ram)
static GFXINLINE void write_cmd(GDisplay *g, uint8_t cmd) { PRIV(g)->data[PRIV(g)->data_pos++] = cmd; }
static GFXINLINE void flush_cmd(GDisplay *g) {
write_data(g, PRIV(g)->data, PRIV(g)->data_pos);
PRIV(g)->data_pos = 0;
}
# define RAM(g) ((gU8 *)g->priv)
# define write_cmd2(g, cmd1, cmd2) \
{ \
write_cmd(g, cmd1); \
@@ -106,9 +90,10 @@ static GFXINLINE void flush_cmd(GDisplay *g) {
LLDSPEC bool_t gdisp_lld_init(GDisplay *g) {
// The private area is the display surface.
g->priv = gfxAlloc(sizeof(PrivData));
PRIV(g)->buffer2 = false;
PRIV(g)->data_pos = 0;
g->priv = gfxAlloc(GDISP_SCREEN_HEIGHT * GDISP_SCREEN_WIDTH / 8);
if (!g->priv) {
return gFalse;
}
// Initialise the board interface
init_board(g);
@@ -119,25 +104,33 @@ LLDSPEC bool_t gdisp_lld_init(GDisplay *g) {
setpin_reset(g, FALSE);
gfxSleepMilliseconds(20);
acquire_bus(g);
enter_cmd_mode(g);
write_cmd(g, ST7565_RESET);
write_cmd(g, ST7565_LCD_BIAS);
write_cmd(g, ST7565_ADC);
write_cmd(g, ST7565_COM_SCAN);
write_cmd(g, ST7565_RESISTOR_RATIO | 0x1);
write_cmd2(g, ST7565_CONTRAST, GDISP_INITIAL_CONTRAST);
// turn on internal power supply (VC=1, VR=1, VF=1)
write_cmd(g, ST7565_POWER_CONTROL | 0x07);
write_cmd(g, ST7565_INVERT_DISPLAY);
write_cmd(g, ST7565_ALLON_NORMAL);
write_cmd(g, ST7565_START_LINE | 0);
write_cmd2(g, ST7565_CONTRAST, GDISP_INITIAL_CONTRAST * 64 / 101);
write_cmd(g, ST7565_RESISTOR_RATIO | 0x1);
// turn on voltage converter (VC=1, VR=0, VF=0)
write_cmd(g, ST7565_POWER_CONTROL | 0x04);
delay_ms(50);
// turn on voltage regulator (VC=1, VR=1, VF=0)
write_cmd(g, ST7565_POWER_CONTROL | 0x06);
delay_ms(50);
// turn on voltage follower (VC=1, VR=1, VF=1)
write_cmd(g, ST7565_POWER_CONTROL | 0x07);
delay_ms(50);
write_cmd(g, ST7565_DISPLAY_ON);
write_cmd(g, ST7565_ALLON_NORMAL);
write_cmd(g, ST7565_INVERT_DISPLAY); // Disable Inversion of display.
write_cmd(g, ST7565_RMW);
flush_cmd(g);
// Finish Init
post_init_board(g);
@@ -163,22 +156,14 @@ LLDSPEC void gdisp_lld_flush(GDisplay *g) {
if (!(g->flags & GDISP_FLG_NEEDFLUSH)) return;
acquire_bus(g);
enter_cmd_mode(g);
unsigned dstOffset = (PRIV(g)->buffer2 ? 4 : 0);
for (p = 0; p < 4; p++) {
write_cmd(g, ST7565_PAGE | (p + dstOffset));
gU8 pagemap[] = {ST7565_PAGE_ORDER};
for (p = 0; p < sizeof(pagemap); p++) {
write_cmd(g, ST7565_PAGE | pagemap[p]);
write_cmd(g, ST7565_COLUMN_MSB | 0);
write_cmd(g, ST7565_COLUMN_LSB | 0);
write_cmd(g, ST7565_RMW);
flush_cmd(g);
enter_data_mode(g);
write_data(g, RAM(g) + (p * GDISP_SCREEN_WIDTH), GDISP_SCREEN_WIDTH);
enter_cmd_mode(g);
}
unsigned line = (PRIV(g)->buffer2 ? 32 : 0);
write_cmd(g, ST7565_START_LINE | line);
flush_cmd(g);
PRIV(g)->buffer2 = !PRIV(g)->buffer2;
release_bus(g);
g->flags &= ~GDISP_FLG_NEEDFLUSH;
@@ -243,6 +228,7 @@ LLDSPEC color_t gdisp_lld_get_pixel_color(GDisplay *g) {
}
# endif
# if GDISP_HARDWARE_BITFILLS
LLDSPEC void gdisp_lld_blit_area(GDisplay *g) {
uint8_t *buffer = (uint8_t *)g->p.ptr;
int linelength = g->p.cx;
@@ -268,6 +254,7 @@ LLDSPEC void gdisp_lld_blit_area(GDisplay *g) {
}
g->flags |= GDISP_FLG_NEEDFLUSH;
}
# endif
# if GDISP_NEED_CONTROL && GDISP_HARDWARE_CONTROL
LLDSPEC void gdisp_lld_control(GDisplay *g) {
@@ -279,16 +266,12 @@ LLDSPEC void gdisp_lld_control(GDisplay *g) {
case powerSleep:
case powerDeepSleep:
acquire_bus(g);
enter_cmd_mode(g);
write_cmd(g, ST7565_DISPLAY_OFF);
flush_cmd(g);
release_bus(g);
break;
case powerOn:
acquire_bus(g);
enter_cmd_mode(g);
write_cmd(g, ST7565_DISPLAY_ON);
flush_cmd(g);
release_bus(g);
break;
default:
@@ -318,12 +301,11 @@ LLDSPEC void gdisp_lld_control(GDisplay *g) {
return;
case GDISP_CONTROL_CONTRAST:
g->g.Contrast = (unsigned)g->p.ptr & 63;
if ((unsigned)g->p.ptr > 100) g->p.ptr = (void *)100;
acquire_bus(g);
enter_cmd_mode(g);
write_cmd2(g, ST7565_CONTRAST, g->g.Contrast);
flush_cmd(g);
write_cmd2(g, ST7565_CONTRAST, ((((unsigned)g->p.ptr) << 6) / 101) & 0x3F);
release_bus(g);
g->g.Contrast = (unsigned)g->p.ptr;
return;
}
}

View File

@@ -1,3 +1,4 @@
VIA_ENABLE = yes
LTO_ENABLE = yes
MOUSEKEY_ENABLE = no
CONSOLE_ENABLE = no

View File

@@ -16,19 +16,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "1up60hte.h"
void keyboard_pre_init_kb(void) {
// put your keyboard start-up code here
// runs once when the firmware starts up
setPinOutput(B6);
keyboard_pre_init_user();
}
void led_set_kb(uint8_t usb_led) {
if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) {
writePinLow(B6);
} else {
writePinHigh(B6);
}
led_set_user(usb_led);
}

View File

@@ -40,6 +40,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW
#define LED_CAPS_LOCK_PIN B6
#define LED_PIN_ON_STATE 0
/* number of backlight levels */
#define BACKLIGHT_PIN B7
#ifdef BACKLIGHT_PIN

View File

@@ -1,2 +1 @@
VIA_ENABLE = yes
MOUSEKEY_ENABLE = no

View File

@@ -25,7 +25,8 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
RGB_MATRIX_ENABLE = WS2812
RGB_MATRIX_ENABLE = yes
RGB_MATRIX_DRIVER = WS2812
MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID

View File

@@ -17,6 +17,12 @@
/* Set 0 if debouncing isn't needed */
#define DEBOUNCE 5
#ifndef CONVERT_TO_PROTON_C
# define LED_NUM_LOCK_PIN B0 // RXLED
# define LED_CAPS_LOCK_PIN D5 // TXLED
# define LED_PIN_ON_STATE 0
#endif
/* Underglow options */
#define RGB_DI_PIN B1
#ifdef RGB_DI_PIN

View File

@@ -1,21 +1 @@
#include "v1.h"
void led_set_kb(uint8_t usb_led) {
#ifndef CONVERT_TO_PROTON_C
/* Map RXLED to USB_LED_NUM_LOCK */
if (IS_LED_ON(usb_led, USB_LED_NUM_LOCK)) {
setPinOutput(B0);
writePinLow(B0);
} else {
setPinInput(B0);
}
/* Map TXLED to USB_LED_CAPS_LOCK */
if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) {
setPinOutput(D5);
writePinLow(D5);
} else {
setPinInput(D5);
}
#endif
}

View File

@@ -1,3 +1,19 @@
/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "drashna.h"
#include "analog.h"
#include "pointing_device.h"

19
keyboards/45_ats/45_ats.c Normal file
View File

@@ -0,0 +1,19 @@
/*
Copyright 2020 Alec Penland
Copyright 2020 Garret Gartner
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "45_ats.h"

59
keyboards/45_ats/45_ats.h Normal file
View File

@@ -0,0 +1,59 @@
/*
Copyright 2020 Alec Penland
Copyright 2020 Garret Gartner
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#include "quantum.h"
#define xxx KC_NO
#define LAYOUT_split_space( \
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, \
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1D, \
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2D, \
k30, k31, k32, k33, k36, k38, k39, k3A, k3B, k3D \
) { \
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D }, \
{ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, xxx, k1D }, \
{ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, xxx, k2D }, \
{ k30, k31, k32, k33, xxx, xxx, k36, xxx, k38, k39, k3A, k3B, xxx, k3D } \
}
#define LAYOUT_625_space( \
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, \
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1D, \
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2D, \
k30, k31, k32, k36, k39, k3A, k3B, k3D \
) { \
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D }, \
{ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, xxx, k1D }, \
{ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, xxx, k2D }, \
{ k30, k31, k32, xxx, xxx, xxx, k36, xxx, xxx, k39, k3A, k3B, xxx, k3D } \
}
#define LAYOUT_600_space( \
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, \
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1D, \
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2D, \
k30, k31, k32, k36, k38, k39, k3A, k3B, k3D \
) { \
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D }, \
{ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, xxx, k1D }, \
{ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, xxx, k2D }, \
{ k30, k31, k32, xxx, xxx, xxx, k36, xxx, k38, k39, k3A, k3B, xxx, k3D } \
}

52
keyboards/45_ats/config.h Normal file
View File

@@ -0,0 +1,52 @@
/*
Copyright 2020 Alec Penland
Copyright 2020 Garret Gartner
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#include "config_common.h"
/* USB Device descriptor parameter */
#define VENDOR_ID 0xAB13
#define PRODUCT_ID 0x4511
#define DEVICE_VER 0x0001
#define MANUFACTURER Abec13
#define PRODUCT 45ATS
/* key matrix size */
#define MATRIX_ROWS 4
#define MATRIX_COLS 14
#define ENCODERS_PAD_A { B4 }
#define ENCODERS_PAD_B { B5 }
/* key matrix pins */
#define MATRIX_ROW_PINS { D3, D5, D7, D6 }
#define MATRIX_COL_PINS { E6, B0, B1, B2, B3, B7, F6, F5, F4, C7, F7, C6, B6, D4 }
#define UNUSED_PINS
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW
/* Set 0 if debouncing isn't needed */
#define DEBOUNCE 5
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE

169
keyboards/45_ats/info.json Normal file
View File

@@ -0,0 +1,169 @@
{
"keyboard_name": "45-ATS",
"url": "",
"maintainer": "The-Royal",
"width": 14.25,
"height": 4.25,
"layouts": {
"LAYOUT_split_space": {
"layout": [
{"label":"", "x":0, "y":0},
{"label":"", "x":1, "y":0},
{"label":"", "x":2, "y":0},
{"label":"", "x":3, "y":0},
{"label":"", "x":4, "y":0},
{"label":"", "x":5, "y":0},
{"label":"", "x":6, "y":0},
{"label":"", "x":7, "y":0},
{"label":"", "x":8, "y":0},
{"label":"", "x":9, "y":0},
{"label":"", "x":10, "y":0},
{"label":"", "x":11, "y":0},
{"label":"", "x":12, "y":0},
{"label":"", "x":13.5, "y":0},
{"label":"", "x":0, "y":1, "w":1.25},
{"label":"", "x":1.25, "y":1},
{"label":"", "x":2.25, "y":1},
{"label":"", "x":3.25, "y":1},
{"label":"", "x":4.25, "y":1},
{"label":"", "x":5.25, "y":1},
{"label":"", "x":6.25, "y":1},
{"label":"", "x":7.25, "y":1},
{"label":"", "x":8.25, "y":1},
{"label":"", "x":9.25, "y":1},
{"label":"", "x":10.25, "y":1},
{"label":"", "x":11.25, "y":1, "w":1.75},
{"label":"", "x":13.5, "y":1},
{"label":"", "x":0, "y":2, "w":1.75},
{"label":"", "x":1.75, "y":2},
{"label":"", "x":2.75, "y":2},
{"label":"", "x":3.75, "y":2},
{"label":"", "x":4.75, "y":2},
{"label":"", "x":5.75, "y":2},
{"label":"", "x":6.75, "y":2},
{"label":"", "x":7.75, "y":2},
{"label":"", "x":8.75, "y":2},
{"label":"", "x":9.75, "y":2},
{"label":"", "x":10.75, "y":2, "w":1.25},
{"label":"", "x":12.25, "y":2.25},
{"label":"", "x":13.5, "y":2},
{"label":"", "x":0, "y":3, "w":1.25},
{"label":"", "x":1.25, "y":3},
{"label":"", "x":2.25, "y":3, "w":1.25},
{"label":"", "x":3.5, "y":3, "w":2.75},
{"label":"", "x":6.25, "y":3, "w":2.25},
{"label":"", "x":8.5, "y":3, "w":1.25},
{"label":"", "x":9.75, "y":3, "w":1.25},
{"label":"", "x":11.25, "y":3.25},
{"label":"", "x":12.25, "y":3.25},
{"label":"", "x":13.25, "y":3.25}
]
},
"LAYOUT_625_space": {
"layout": [
{"label":"", "x":0, "y":0},
{"label":"", "x":1, "y":0},
{"label":"", "x":2, "y":0},
{"label":"", "x":3, "y":0},
{"label":"", "x":4, "y":0},
{"label":"", "x":5, "y":0},
{"label":"", "x":6, "y":0},
{"label":"", "x":7, "y":0},
{"label":"", "x":8, "y":0},
{"label":"", "x":9, "y":0},
{"label":"", "x":10, "y":0},
{"label":"", "x":11, "y":0},
{"label":"", "x":12, "y":0},
{"label":"", "x":13.5, "y":0},
{"label":"", "x":0, "y":1, "w":1.25},
{"label":"", "x":1.25, "y":1},
{"label":"", "x":2.25, "y":1},
{"label":"", "x":3.25, "y":1},
{"label":"", "x":4.25, "y":1},
{"label":"", "x":5.25, "y":1},
{"label":"", "x":6.25, "y":1},
{"label":"", "x":7.25, "y":1},
{"label":"", "x":8.25, "y":1},
{"label":"", "x":9.25, "y":1},
{"label":"", "x":10.25, "y":1},
{"label":"", "x":11.25, "y":1, "w":1.75},
{"label":"", "x":13.5, "y":1},
{"label":"", "x":0, "y":2, "w":1.75},
{"label":"", "x":1.75, "y":2},
{"label":"", "x":2.75, "y":2},
{"label":"", "x":3.75, "y":2},
{"label":"", "x":4.75, "y":2},
{"label":"", "x":5.75, "y":2},
{"label":"", "x":6.75, "y":2},
{"label":"", "x":7.75, "y":2},
{"label":"", "x":8.75, "y":2},
{"label":"", "x":9.75, "y":2},
{"label":"", "x":10.75, "y":2, "w":1.25},
{"label":"", "x":12.25, "y":2.25},
{"label":"K", "x":13.5, "y":2},
{"label":"", "x":0, "y":3, "w":1.25},
{"label":"", "x":1.25, "y":3},
{"label":"", "x":2.25, "y":3, "w":1.25},
{"label":"", "x":3.5, "y":3, "w":6.25},
{"label":"", "x":9.75, "y":3, "w":1.25},
{"label":"", "x":11.25, "y":3.25},
{"label":"", "x":12.25, "y":3.25},
{"label":"", "x":13.25, "y":3.25}
]
},
"LAYOUT_600_space": {
"layout": [
{"label":"", "x":0, "y":0},
{"label":"", "x":1, "y":0},
{"label":"", "x":2, "y":0},
{"label":"", "x":3, "y":0},
{"label":"", "x":4, "y":0},
{"label":"", "x":5, "y":0},
{"label":"", "x":6, "y":0},
{"label":"", "x":7, "y":0},
{"label":"", "x":8, "y":0},
{"label":"", "x":9, "y":0},
{"label":"", "x":10, "y":0},
{"label":"", "x":11, "y":0},
{"label":"", "x":12, "y":0},
{"label":"", "x":13.5, "y":0},
{"label":"", "x":0, "y":1, "w":1.25},
{"label":"", "x":1.25, "y":1},
{"label":"", "x":2.25, "y":1},
{"label":"", "x":3.25, "y":1},
{"label":"", "x":4.25, "y":1},
{"label":"", "x":5.25, "y":1},
{"label":"", "x":6.25, "y":1},
{"label":"", "x":7.25, "y":1},
{"label":"", "x":8.25, "y":1},
{"label":"", "x":9.25, "y":1},
{"label":"", "x":10.25, "y":1},
{"label":"", "x":11.25, "y":1, "w":1.75},
{"label":"", "x":13.5, "y":1},
{"label":"", "x":0, "y":2, "w":1.75},
{"label":"", "x":1.75, "y":2},
{"label":"", "x":2.75, "y":2},
{"label":"", "x":3.75, "y":2},
{"label":"", "x":4.75, "y":2},
{"label":"", "x":5.75, "y":2},
{"label":"", "x":6.75, "y":2},
{"label":"", "x":7.75, "y":2},
{"label":"", "x":8.75, "y":2},
{"label":"", "x":9.75, "y":2},
{"label":"", "x":10.75, "y":2, "w":1.25},
{"label":"", "x":12.25, "y":2.25},
{"label":"", "x":13.5, "y":2},
{"label":"", "x":0, "y":3},
{"label":"", "x":1, "y":3},
{"label":"", "x":2, "y":3},
{"label":"", "x":3, "y":3, "w":6.00},
{"label":"", "x":9, "y":3},
{"label":"", "x":10, "y":3},
{"label":"", "x":11.25, "y":3.25},
{"label":"", "x":12.25, "y":3.25},
{"label":"", "x":13.25, "y":3.25}
]
}
}
}

View File

@@ -0,0 +1,25 @@
/*
Copyright 2020 Alec Penland
Copyright 2020 Garret Gartner
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#define TAPPING_TERM 175
#define PERMISSIVE_HOLD
#define MOD_TAP_INTERUPT

View File

@@ -0,0 +1,107 @@
/*
Copyright 2020 Alec Penland
Copyright 2020 Garret Gartner
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
// Layer names
enum ats_layers{
// - Base layer:
_BASE,
// - Symbols, numbers, and functions:
_FN,
// - Alternate Function layer:
_LN
};
#define RS_SLS RSFT_T(KC_SLSH)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Default QWERTY layer
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┐
* │Esc│ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │Del│BkS│ │PgU│
* ├───┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤ ├───┤
* │Tab │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ' │Enter │ │PgD│
* ├────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──┬───┘ ├───┤
* │LShift│ Z │ X │ C │ V │ B │ N │ M │ , │ . │Sft/│ ┌───┐ │CAP│
* ├────┬─┴─┬─┴──┬┴───┴───┴─┬─┴───┴──┬┴───┼───┴┬───┘ │ ↑ │ └───┘
* │LCtl│OS │LAlt│ Fn │ Space │RAlt│ Ln │ ┌───┼───┼───┐
* └────┴───┴────┴──────────┴────────┴────┴────┘ │ ← │ ↓ │ → │
* └───┴───┴───┘
*/
[_BASE] = LAYOUT_split_space(
KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_BSPC, KC_PGUP,
KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOTE, KC_ENT, KC_PGDN,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, RS_SLS, KC_UP, KC_CAPS,
KC_LCTL, KC_LGUI, KC_LALT, MO(_FN), KC_SPACE, KC_RALT, MO(_LN), KC_LEFT, KC_DOWN, KC_RIGHT
),
/* Main Numbers, Symbols & Function Layer (MOMENTARY)
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┐
* │ │ ! │ @ │ # │ $ │ % │ ^ │ & │ * │ [ │ ] │ \ │ │ │Hme│
* ├───┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤ ├───┤
* │ │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ │ │End│
* ├────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──┬───┘ ├───┤
* │ │ ( │ ) │ ; │ . │ │ - │ + │ * │ / │ = │ ┌───┐ │ │
* ├────┬─┴─┬─┴──┬┴───┴───┴─┬─┴───┴──┬┴───┼───┴┬───┘ │ │ └───┘
* │ │ │ │ │ │ │ │ ┌───┼───┼───┐
* └────┴───┴────┴──────────┴────────┴────┴────┘ │ │ │ │
* └───┴───┴───┘
*/
[_FN] = LAYOUT_split_space(
_______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LBRC, KC_RBRC, KC_BSLS, _______, KC_HOME,
_______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_ENTER, KC_END,
_______, KC_LPRN, KC_RPRN, KC_SCLN, KC_DOT, _______, KC_MINS, KC_PLUS, KC_ASTR, KC_SLSH, KC_EQL, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
),
/* ALTERNATE Function layer (MOMENTARY)
* ┌────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┐
* │ PWR│F1 │F2 │F3 │F4 │F5 │F6 │ │ │ │ │PRV│NXT│ │VL+│
* ├────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤ ├───┤
* │ SLP │F7 │F8 │F9 │F10│F11│F12│ │ │ │ │ PLAY │ │VL-│
* ├─────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──┬───┘ ├───┤
* │ WAKE │ │ │ │ │ │ │ │ │ │ │ ┌───┐ │ │
* ├────┬──┴─┬─┴──┬┴───┴───┴─┬─┴───┴──┬┴───┼───┴┬───┘ │ │ └───┘
* │RSET│ │ │ │ │ │ │ ┌───┼───┼───┐
* └────┴────┴────┴──────────┴────────┴────┴────┘ │ │ │ │
* └───┴───┴───┘
*/
[_LN] = LAYOUT_split_space(
KC_PWR, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, _______, _______, _______, _______, KC_MPRV, KC_MNXT, KC_VOLU,
KC_SLEP, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, KC_MPLY, KC_VOLD,
KC_WAKE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______
)
};
//function for layer indicator LED
layer_state_t layer_state_set_user(layer_state_t state) {
writePin(D0, layer_state_cmp(state, 0));
writePin(D1, layer_state_cmp(state, 1));
writePin(D2, layer_state_cmp(state, 2));
return state;
}
void encoder_update_user(uint8_t index, bool clockwise) {
if (index == 0) {
if (clockwise) {
tap_code(KC_VOLU);
} else {
tap_code(KC_VOLD);
}
}
}

View File

@@ -0,0 +1,107 @@
/*
Copyright 2020 Alec Penland
Copyright 2020 Garret Gartner
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
// Layer names
enum ats_layers{
// - Base layer:
_BASE,
// - Symbols, numbers, and functions:
_FN,
// - Alternate Function layer:
_LN
};
#define RS_SLS RSFT_T(KC_SLSH)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Default QWERTY layer
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┐
* │Esc│ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │Del│BkS│ │PgU│
* ├───┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤ ├───┤
* │Tab │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ' │Enter │ │PgD│
* ├────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──┬───┘ ├───┤
* │LShift│ Z │ X │ C │ V │ B │ N │ M │ , │ . │Sft/│ ┌───┐ │CAP│
* ├────┬─┴─┬─┴──┬┴───┴───┴─┬─┴───┴──┬┴───┼───┴┬───┘ │ ↑ │ └───┘
* │LCtl│OS │LAlt│ Fn │ Space │RAlt│ Ln │ ┌───┼───┼───┐
* └────┴───┴────┴──────────┴────────┴────┴────┘ │ ← │ ↓ │ → │
* └───┴───┴───┘
*/
[_BASE] = LAYOUT_split_space(
KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_BSPC, KC_PGUP,
KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOTE, KC_ENT, KC_PGDN,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, RS_SLS, KC_UP, KC_CAPS,
KC_LCTL, KC_LGUI, KC_LALT, MO(_FN), KC_SPACE, KC_RALT, MO(_LN), KC_LEFT, KC_DOWN, KC_RIGHT
),
/* Main Numbers, Symbols & Function Layer (MOMENTARY)
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┐
* │ │ ! │ @ │ # │ $ │ % │ ^ │ & │ * │ [ │ ] │ \ │ │ │Hme│
* ├───┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤ ├───┤
* │ │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ │ │End│
* ├────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──┬───┘ ├───┤
* │ │ ( │ ) │ ; │ . │ │ - │ + │ * │ / │ = │ ┌───┐ │ │
* ├────┬─┴─┬─┴──┬┴───┴───┴─┬─┴───┴──┬┴───┼───┴┬───┘ │ │ └───┘
* │ │ │ │ │ │ │ │ ┌───┼───┼───┐
* └────┴───┴────┴──────────┴────────┴────┴────┘ │ │ │ │
* └───┴───┴───┘
*/
[_FN] = LAYOUT_split_space(
_______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LBRC, KC_RBRC, KC_BSLS, _______, KC_HOME,
_______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_ENTER, KC_END,
_______, KC_LPRN, KC_RPRN, KC_SCLN, KC_DOT, _______, KC_MINS, KC_PLUS, KC_ASTR, KC_SLSH, KC_EQL, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
),
/* ALTERNATE Function layer (MOMENTARY)
* ┌────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┐
* │ PWR│F1 │F2 │F3 │F4 │F5 │F6 │ │ │ │ │PRV│NXT│ │VL+│
* ├────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤ ├───┤
* │ SLP │F7 │F8 │F9 │F10│F11│F12│ │ │ │ │ PLAY │ │VL-│
* ├─────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──┬───┘ ├───┤
* │ WAKE │ │ │ │ │ │ │ │ │ │ │ ┌───┐ │ │
* ├────┬──┴─┬─┴──┬┴───┴───┴─┬─┴───┴──┬┴───┼───┴┬───┘ │ │ └───┘
* │RSET│ │ │ │ │ │ │ ┌───┼───┼───┐
* └────┴────┴────┴──────────┴────────┴────┴────┘ │ │ │ │
* └───┴───┴───┘
*/
[_LN] = LAYOUT_split_space(
KC_PWR, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, _______, _______, _______, _______, KC_MPRV, KC_MNXT, KC_VOLU,
KC_SLEP, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, KC_MPLY, KC_VOLD,
KC_WAKE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______
)
};
//function for layer indicator LED
layer_state_t layer_state_set_user(layer_state_t state) {
writePin(D0, layer_state_cmp(state, 0));
writePin(D1, layer_state_cmp(state, 1));
writePin(D2, layer_state_cmp(state, 2));
return state;
}
void encoder_update_user(uint8_t index, bool clockwise) {
if (index == 0) {
if (clockwise) {
tap_code(KC_VOLU);
} else {
tap_code(KC_VOLD);
}
}
}

View File

@@ -0,0 +1,3 @@
# 45-ATS VIA Firmware
This keymap is to enable the use of VIA on the 45-ATS Keyboard.

View File

@@ -0,0 +1,16 @@
# 45-ATS
![45ats](https://i.imgur.com/Paqx5zGl.png)
A Premium and Beautiful 45% (And-Then-Some) Keyboard. Concept and Design by [Abec13](https://www.reddit.com/user/abec13).
- Keyboard Designer: [Abec13](https://reddit.com/u/abec13/)
- Keyboard Maintainer: [The-Royal](https://github.com/the-royal)
- Hardware Supported: 45-ATS v1.0 PCB
- Hardware Availability: Through Group Buy - Dec. 2019
Make example for this keyboard (after setting up your build environment):
make 45_ats:default
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).

22
keyboards/45_ats/rules.mk Normal file
View File

@@ -0,0 +1,22 @@
# MCU name
MCU = atmega32u4
# Bootloader selection
BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration
MOUSEKEY_ENABLE = yes # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
BLUETOOTH_ENABLE = no # Enable Bluetooth
AUDIO_ENABLE = no # Audio output

17
keyboards/7splus/7splus.c Normal file
View File

@@ -0,0 +1,17 @@
/*
Copyright 2020 Salicylic_Acid
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "7splus.h"

61
keyboards/7splus/7splus.h Normal file
View File

@@ -0,0 +1,61 @@
/*
Copyright 2020 Salicylic_Acid
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#include "quantum.h"
/*
* ,-------------------------------------- ----------------------------------------------------------.
* | L00 | L01 | L02 | L03 | L04 | L05 | | R00 | R01 | R02 | R03 | R04 | R05 | R06 | R07 | R60 |
* |-------------------------------------- ------------------------------------------------------------+
* | L10 | L11 | L12 | L13 | L14 | L15 | | R10 | R11 | R12 | R13 | R14 | R15 | R16 | R17 | R62 |
* |---------------------------------------------------------------------------------------------------+
* | L20 | L21 | L22 | L23 | L24 | L25 | | R20 | R21 | R22 | R23 | R24 | R25 | R26 | R27 | R63 |
* |---------------------------------------- ---------------------------------------------------------+
* | L30 | L31 | L32 | L33 | L34 | L35 | | R30 | R31 | R32 | R33 | R34 | R35 | R36 | R37 |
* |---------------------------------------------------------------------------------------------------+
* | L40 | L41 | L42 | L43 | L44 | L45 | | R40 | R41 | R42 | R43 | R44 | R45 | R47 | R57 |
* |---------------------------------------------------------------------------------------------------+
* | L50 | L51 | L52 | L53 | L54 | L55 | | R50 | R51 | R53 | R54 | R55 | R56 | R64 |
* |---------------------------------------- ------------------------------------------------------'
*/
#define LAYOUT( \
L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, R06, R07, R60, \
L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, R16, R17, R62, \
L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, R26, R27, R63, \
L30, L31, L32, L33, L34, L35, R30, R31, R32, R33, R34, R35, R36, R37, \
L40, L41, L42, L43, L44, L45, R40, R41, R42, R43, R44, R45, R47, R57, \
L50, L51, L52, L54, L55, R50, R51, R53, R54, R55, R56, R64 \
) \
{ \
{ L00, L01, L02, L03, L04, L05, KC_NO, KC_NO }, \
{ L10, L11, L12, L13, L14, L15, KC_NO, KC_NO }, \
{ L20, L21, L22, L23, L24, L25, KC_NO, KC_NO }, \
{ L30, L31, L32, L33, L34, L35, KC_NO, KC_NO }, \
{ L40, L41, L42, L43, L44, L45, KC_NO, KC_NO }, \
{ L50, L51, L52, KC_NO, L54, L55, KC_NO, KC_NO }, \
{KC_NO,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \
{ R00, R01, R02, R03, R04, R05, R06, R07 }, \
{ R10, R11, R12, R13, R14, R15, R16, R17 }, \
{ R20, R21, R22, R23, R24, R25, R26, R27 }, \
{ R30, R31, R32, R33, R34, R35, R36, R37 }, \
{ R40, R41, R42, R43, R44, R45, KC_NO, R47 }, \
{ R50, R51, KC_NO, R53, R54, R55, R56, R57 }, \
{ R60, KC_NO, R62, R63, R64, KC_NO, KC_NO, KC_NO } \
}

84
keyboards/7splus/config.h Normal file
View File

@@ -0,0 +1,84 @@
/*
Copyright 2020 Salicylic_acid3
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#include "config_common.h"
/* USB Device descriptor parameter */
#define VENDOR_ID 0x04D8
#define PRODUCT_ID 0xEAE7
#define DEVICE_VER 0x0001
#define MANUFACTURER Salicylic_Acid
#define PRODUCT 7splus
/* key matrix size */
#define MATRIX_ROWS 14
#define MATRIX_COLS 8
// wiring of each half
#define MATRIX_ROW_PINS { D1, D0, D4, C6, D7, E6, B4 }
#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2, B5 }
#define DIODE_DIRECTION COL2ROW
/* Set 0 if debouncing isn't needed */
#define DEBOUNCE 5
/* serial.c configuration for split keyboard */
#define SOFT_SERIAL_PIN D2
#define SPLIT_HAND_PIN B6
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
/* ws2812 RGB LED */
#define RGB_DI_PIN D3
#ifndef RGBLED_NUM
#define RGBLED_NUM 31
#define RGBLIGHT_SPLIT
#define RGBLED_SPLIT { 11, 20 }
#endif
#define RGBLIGHT_ANIMATIONS
#ifndef IOS_DEVICE_ENABLE
#define RGBLIGHT_LIMIT_VAL 180
#define RGBLIGHT_VAL_STEP 17
#else
#define RGBLIGHT_LIMIT_VAL 50
#define RGBLIGHT_VAL_STEP 4
#endif
#define RGBLIGHT_HUE_STEP 10
#define RGBLIGHT_SAT_STEP 17
#if defined(RGBLIGHT_ENABLE) && !defined(IOS_DEVICE_ENABLE)
// USB_MAX_POWER_CONSUMPTION value for naked48 keyboard
// 120 RGBoff, OLEDoff
// 120 OLED
// 330 RGB 6
// 300 RGB 32
// 310 OLED & RGB 32
#define USB_MAX_POWER_CONSUMPTION 400
#else
// fix iPhone and iPad power adapter issue
// iOS device need lessthan 100
#define USB_MAX_POWER_CONSUMPTION 100
#endif

View File

@@ -0,0 +1,98 @@
{
"keyboard_name": "7splus",
"url": "https://salicylic-acid3.hatenablog.com/",
"maintainer": "Salicylic_acid3",
"width": 17,
"height": 6.25,
"layouts": {
"LAYOUT": {
"layout": [
{"label":"Esc", "x":0, "y":0},
{"label":"F1", "x":1.25, "y":0},
{"label":"F2", "x":2.25, "y":0},
{"label":"F3", "x":3.25, "y":0},
{"label":"F4", "x":4.25, "y":0},
{"label":"F5", "x":5.5, "y":0},
{"label":"F6", "x":7.5, "y":0},
{"label":"F7", "x":8.5, "y":0},
{"label":"F8", "x":9.5, "y":0},
{"label":"F9", "x":10.75, "y":0},
{"label":"F10", "x":11.75, "y":0},
{"label":"F11", "x":12.75, "y":0},
{"label":"F12", "x":13.75, "y":0},
{"label":"PrtScr", "x":15, "y":0},
{"label":"Delete", "x":16, "y":0},
{"label":"~", "x":0, "y":1.25},
{"label":"1", "x":1, "y":1.25},
{"label":"2", "x":2, "y":1.25},
{"label":"3", "x":3, "y":1.25},
{"label":"4", "x":4, "y":1.25},
{"label":"5", "x":5, "y":1.25},
{"label":"6", "x":7, "y":1.25},
{"label":"7", "x":8, "y":1.25},
{"label":"8", "x":9, "y":1.25},
{"label":"9", "x":10, "y":1.25},
{"label":"0", "x":11, "y":1.25},
{"label":"-", "x":12, "y":1.25},
{"label":"=", "x":13, "y":1.25},
{"label":"Back Space", "x":14, "y":1.25, "w":2},
{"label":"Home", "x":16, "y":1.25},
{"label":"Tab", "x":0, "y":2.25, "w":1.5},
{"label":"Q", "x":1.5, "y":2.25},
{"label":"W", "x":2.5, "y":2.25},
{"label":"E", "x":3.5, "y":2.25},
{"label":"R", "x":4.5, "y":2.25},
{"label":"T", "x":5.5, "y":2.25},
{"label":"Y", "x":7.5, "y":2.25},
{"label":"U", "x":8.5, "y":2.25},
{"label":"I", "x":9.5, "y":2.25},
{"label":"O", "x":10.5, "y":2.25},
{"label":"P", "x":11.5, "y":2.25},
{"label":"[", "x":12.5, "y":2.25},
{"label":"]", "x":13.5, "y":2.25},
{"label":"\"", "x":14.5, "y":2.25, "w":1.5},
{"label":"Page Up", "x":16, "y":2.25},
{"label":"Caps Lock", "x":0, "y":3.25, "w":1.75},
{"label":"A", "x":1.75, "y":3.25},
{"label":"S", "x":2.75, "y":3.25},
{"label":"D", "x":3.75, "y":3.25},
{"label":"F", "x":4.75, "y":3.25},
{"label":"G", "x":5.75, "y":3.25},
{"label":"H", "x":7.75, "y":3.25},
{"label":"J", "x":8.75, "y":3.25},
{"label":"K", "x":9.75, "y":3.25},
{"label":"L", "x":10.75, "y":3.25},
{"label":":", "x":11.75, "y":3.25},
{"label":"'", "x":12.75, "y":3.25},
{"label":"Enter", "x":13.75, "y":3.25, "w":2.25},
{"label":"Page Down", "x":16, "y":3.25},
{"label":"Shift", "x":0, "y":4.25, "w":2.25},
{"label":"Z", "x":2.25, "y":4.25},
{"label":"X", "x":3.25, "y":4.25},
{"label":"C", "x":4.25, "y":4.25},
{"label":"V", "x":5.25, "y":4.25},
{"label":"B", "x":6.25, "y":4.25},
{"label":"N", "x":8.25, "y":4.25},
{"label":"M", "x":9.25, "y":4.25},
{"label":"<", "x":10.25, "y":4.25},
{"label":">", "x":11.25, "y":4.25},
{"label":"?", "x":12.25, "y":4.25},
{"label":"Shift","x":13.25, "y":4.25, "w":1.75},
{"label":"Up", "x":15, "y":4.25},
{"label":"End", "x":16, "y":4.25},
{"label":"Ctrl", "x":0, "y":5.25, "w":1.25},
{"label":"Win", "x":1.25, "y":5.25, "w":1.25},
{"label":"Alt", "x":2.5, "y":5.25, "w":1.25},
{"x":3.75, "y":5.25, "w":2},
{"x":5.75, "y":5.25},
{"x":7.75, "y":5.25},
{"x":8.75, "y":5.25, "w":2.75},
{"label":"Alt", "x":11.5, "y":5.25, "w":1.25},
{"label":"App", "x":12.75, "y":5.25, "w":1.25},
{"label":"Left", "x":14, "y":5.25},
{"label":"Down", "x":15, "y":5.25},
{"label":"Right", "x":16, "y":5.25}
]
}
}
}

View File

@@ -0,0 +1,81 @@
/*
Copyright 2020 Salicylic_Acid
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
// Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
// Layer names don't all need to be of the same length, obviously, and you can also skip them
// entirely and just use numbers.
enum layer_number {
_QWERTY = 0,
_ADJUST,
};
enum custom_keycodes {
RGB_RST = SAFE_RANGE
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = LAYOUT(
//,-----------------------------------------------------| |--------------------------------------------------------------------------------.
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_DEL,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------|
LT(_ADJUST,KC_GRV),KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------|
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------|
KC_LCTRL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_APP, KC_LEFT, KC_DOWN,KC_RIGHT
//`-----------------------------------------------------| |--------------------------------------------------------------------------------'
),
[_ADJUST] = LAYOUT( /* Base */
//,-----------------------------------------------------| |--------------------------------------------------------------------------------.
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------|
MO(_ADJUST), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_RST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, RGB_MOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAD, RGB_VAI, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
//`-----------------------------------------------------| |--------------------------------------------------------------------------------'
)
};
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
#ifdef RGBLIGHT_ENABLE
case RGB_RST:
if (record->event.pressed) {
uint8_t mode = rgblight_get_mode();
eeconfig_update_rgblight_default();
rgblight_enable();
rgblight_mode(mode);
}
break;
#endif
}
return true;
}

View File

@@ -0,0 +1,22 @@
/* Copyright 2020 Salicylic_acid3
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
/* Select hand configuration */
#define TAPPING_FORCE_HOLD
#define TAPPING_TERM 180

View File

@@ -0,0 +1,147 @@
/*
Copyright 2020 Salicylic_Acid
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
#include "keymap_jp.h"
// Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
// Layer names don't all need to be of the same length, obviously, and you can also skip them
// entirely and just use numbers.
enum layer_number {
_QWERTY = 0,
_MOUSE,
_LOWER,
_RAISE,
_ADJUST,
};
enum custom_keycodes {
RGB_RST = SAFE_RANGE
};
enum tapdances{
TD_ESMS = 0,
TD_ESAR,
};
qk_tap_dance_action_t tap_dance_actions[] = {
[TD_ESMS] = ACTION_TAP_DANCE_DUAL_ROLE(KC_ESC, _MOUSE),
[TD_ESAR] = ACTION_TAP_DANCE_DUAL_ROLE(KC_ESC, _QWERTY),
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = LAYOUT(
//,-----------------------------------------------------| |--------------------------------------------------------------------------------.
TD(TD_ESMS), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_DEL,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------|
KC_ZKHK, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, JP_MINS, JP_EQL, KC_BSPC, KC_HOME,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, JP_LBRC, JP_RBRC, JP_BSLS, KC_PGUP,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------|
KC_LCTRL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, JP_MINS, JP_QUOT, KC_ENT, KC_PGDN,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------|
KC_ZKHK, KC_LGUI,ALT_T(KC_MHEN),LT(_LOWER,KC_ENT),KC_BSPC, KC_DEL,LT(_RAISE,KC_SPC), ALT_T(KC_HENK), KC_APP, KC_LEFT, KC_DOWN,KC_RIGHT
//`-----------------------------------------------------| |--------------------------------------------------------------------------------'
),
[_MOUSE] = LAYOUT(
//,-----------------------------------------------------| |--------------------------------------------------------------------------------.
TD(TD_ESAR), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, LCTL(KC_W),
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, LCTL(LSFT(KC_T)),
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_BTN1, KC_MS_U, KC_BTN2,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------|
_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R
//`-----------------------------------------------------| |--------------------------------------------------------------------------------'
),
[_LOWER] = LAYOUT(
//,-----------------------------------------------------| |--------------------------------------------------------------------------------.
KC_ESC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------|
JP_QUOT, JP_EXLM, JP_QUES, JP_LBRC, JP_RBRC, JP_TILD, KC_P6, KC_P7, KC_P8, KC_P9, JP_ASTR, JP_SLSH, _______, _______, KC_HOME,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------|
LCTL_T(JP_QUOT),JP_HASH, JP_DQT, JP_LPRN, JP_RPRN, JP_AT, XXXXXXX, KC_P4, KC_P5, KC_P6, JP_MINS, JP_EQL, _______, KC_END,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------|
SFT_T(JP_CIRC),JP_PERC, JP_AMPR, JP_SCLN, JP_COLN, JP_PIPE, KC_P0, KC_P1, KC_P2, KC_P3, JP_PLUS, _______, KC_UP, KC_PGUP,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------|
_______, _______, _______, MO(_LOWER), _______, _______,MO(_RAISE), _______, _______, KC_LEFT, KC_DOWN,KC_RIGHT
//`-----------------------------------------------------| |--------------------------------------------------------------------------------'
),
[_RAISE] = LAYOUT(
//,-----------------------------------------------------| |--------------------------------------------------------------------------------.
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------|
KC_TAB, KC_1, KC_2, KC_3, KC_4, KC_5, XXXXXXX, XXXXXXX, KC_UP, XXXXXXX, KC_PGUP, XXXXXXX, _______, _______, KC_HOME,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------|
LCTL_T(KC_F11),XXXXXXX, KC_F2, KC_F3, KC_F4, KC_F5, XXXXXXX, KC_LEFT, KC_DOWN,KC_RIGHT, XXXXXXX, XXXXXXX, _______, KC_END,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------|
SFT_T(KC_F12), KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PGDN, _______, KC_UP, KC_PGUP,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------|
_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN,KC_RIGHT
//`-----------------------------------------------------| |--------------------------------------------------------------------------------'
),
[_ADJUST] = LAYOUT( /* Base */
//,-----------------------------------------------------| |--------------------------------------------------------------------------------.
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_RST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, RGB_MOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAD, RGB_VAI, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------|
_______, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX
//`-----------------------------------------------------| |--------------------------------------------------------------------------------'
)
};
//A description for expressing the layer position in LED mode.
layer_state_t layer_state_set_user(layer_state_t state) {
return update_tri_layer_state(state, _RAISE, _LOWER, _ADJUST);
}
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
#ifdef RGBLIGHT_ENABLE
case RGB_RST:
if (record->event.pressed) {
uint8_t mode = rgblight_get_mode();
eeconfig_update_rgblight_default();
rgblight_enable();
rgblight_mode(mode);
}
break;
#endif
}
return true;
}

View File

@@ -0,0 +1,2 @@
TAP_DANCE_ENABLE = yes
MOUSEKEY_ENABLE = yes

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