* Add GKB-M16 Macro Pad
Add GKB-M16 (gkb_m16) Macro Pad under gkeyboard
* Update keyboards/gkeyboard/gkb_m16/config.h
Co-authored-by: Joel Challis <git@zvecr.com>
* Update keyboards/gkeyboard/gkb_m16/keymaps/via/keymap.c
Co-authored-by: Joel Challis <git@zvecr.com>
* Update keyboards/gkeyboard/gkb_m16/info.json
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/gkeyboard/gkb_m16/keymaps/default/keymap.c
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
* Initial commit on new clean branch. Testing out functionality of oled and encoder for default features.
* Cleaned up the initial push and removed the fancy keymap until the extra features and functionality can be tested and made more user friendly.
* Cleaned up the readme some more, compiled and tested both default and via keymaps, and did another round of checks to prepare for starting the PR.
* Cleaning up the keymap to meet expected formatting in a couple places and also adding in the TAP_CODE_DELAY after newly encoutnered encoder issues and inconsistencies.
* Apply suggestions from code review
Co-authored-by: Joel Challis <git@zvecr.com>
* Update keyboards/mechwild/mercutio/readme.md
Co-authored-by: Ryan <fauxpark@gmail.com>
* Fixing json syntax.
* Update keyboards/mechwild/mercutio/rules.mk
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
* Quark PCB for Planck/Preonic
Quark provides alternate bottom row layouts for both the OLKB Planck and Preonic
* Rename rules.mk.txt to rules.mk
* added Tapping Toggle
removed tapping toggle from keymap level
* Update info.json
took out } as requested
* update config.h
added GPL2+ license and #pragma once
* update info.json again
cleaned up syntax
* Apply suggestions from code review
Co-authored-by: Drashna Jaelre <drashna@live.com>
* update config.h
added GPL2+ License
* Update info.json - and again
fixed it - oops
Co-authored-by: Drashna Jaelre <drashna@live.com>
* Add target 'build-for-compare' to `build_keyboard.mk`
The `build-for-compare` target provides an easy way to check the md5 checksum of the generated binary.
You can easily see if there is any change in the generated binaries between the two versions, as in the example below.
```
$ git checkout 0.11.0
M build_keyboard.mk
M tmk_core/rules.mk
Note: checking out '0.11.0'.
HEAD is now at c66df1664 2020 November 28 Breaking Changes Update (#11053)
$ make helix:all:build-for-compare | grep ^MD5
MD5 (.build/helix_rev2_default.hex) = 5c3606562c944bb4d18832e601b45d4a
MD5 (.build/helix_rev2_edvorakjp.hex) = 9e43d13d389d518ba7e99cd7337e28d6
MD5 (.build/helix_rev2_five_rows.hex) = 8bcb61c2fd5d237c2997f2fa007d4934
MD5 (.build/helix_rev2_five_rows_jis.hex) = b97cd818d52f73ca2d4e78c86d90a791
MD5 (.build/helix_rev2_froggy.hex) = c492172364188f4e2918b10bf0f3a0a6
MD5 (.build/helix_rev2_froggy_106.hex) = b0861fd735a8f81881a8c02730641a2b
MD5 (.build/helix_rev2_led_test.hex) = 5c97d982a5da5cfb3dacb28a8934b81d
MD5 (.build/helix_rev2_xulkal.hex) = 01f603dc46bcf9094d7e106831d8f5b1
MD5 (.build/helix_rev2_yshrsmz.hex) = 5a008bca2d0c5790a151c02834c529ba
$ git checkout 0.11.1
M build_keyboard.mk
M tmk_core/rules.mk
Previous HEAD position was c66df1664 2020 November 28 Breaking Changes Update (#11053)
HEAD is now at cc08e3082 nix-shell: add milc dependency (#11086)
$ make helix:all:build-for-compare | grep ^MD5
MD5 (.build/helix_rev2_default.hex) = 5c3606562c944bb4d18832e601b45d4a
MD5 (.build/helix_rev2_edvorakjp.hex) = 9e43d13d389d518ba7e99cd7337e28d6
MD5 (.build/helix_rev2_five_rows.hex) = 8bcb61c2fd5d237c2997f2fa007d4934
MD5 (.build/helix_rev2_five_rows_jis.hex) = b97cd818d52f73ca2d4e78c86d90a791
MD5 (.build/helix_rev2_froggy.hex) = c492172364188f4e2918b10bf0f3a0a6
MD5 (.build/helix_rev2_froggy_106.hex) = b0861fd735a8f81881a8c02730641a2b
MD5 (.build/helix_rev2_led_test.hex) = 5c97d982a5da5cfb3dacb28a8934b81d
MD5 (.build/helix_rev2_xulkal.hex) = d848383adfd7463b138c6da179cf1436
MD5 (.build/helix_rev2_yshrsmz.hex) = 5a008bca2d0c5790a151c02834c529ba
```
* make builds reproducable by default
* update build_keyboard.mk: remove 'build-for-compare' target
* GNU make (3.81) on macOS 10.14(Mojave) does not have the 'undefine' directive.
* Adopted fauxpark's suggestion.
* Update tmk_core/rules.mk
Co-authored-by: Ryan <fauxpark@gmail.com>
* update tmk_core/rules.mk
* fix tmk_core/rules.mk
Co-authored-by: Zach White <skullydazed@gmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
* Make parameters from info.json available to the build system
* move all clueboard settings to info.json
* code formatting
* make flake8 happy
* make flake8 happy
* make qmk lint happy
* Add support for specifying led indicators in json
* move led indicators to the clueboard info.json
* Apply suggestions from code review
Co-authored-by: Erovia <Erovia@users.noreply.github.com>
* add missing docstring
Co-authored-by: Erovia <Erovia@users.noreply.github.com>
* Adding support for the 2 x 2u layout.
This adds a macro to support the 2 x 2u layout which facilitates
a cleaner looking layout configuration for the people using it.
* Update keyboards/kyria/kyria.h
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: swampmonster <>
Co-authored-by: Drashna Jaelre <drashna@live.com>
* Added mac variant of portuguese keymap
This keymap is very similar to the existing portuguese keymap, but
some symbols are moved around.
Apply suggestions from code review
Corrected whitespace and implemented some suggested changes.
Co-authored-by: Ryan <fauxpark@gmail.com>
Converted some spaces to nbsp
Added sendstring ISO version
* Apply suggestions from code review
Added suggestions from code review
Co-authored-by: Ryan <fauxpark@gmail.com>
* Replaced space with nbsp
* Corrected 2 chars in ascii_to_shift_lut
{ and } require shift
Co-authored-by: Ryan <fauxpark@gmail.com>
* My first cut at firmware for te DMQDesign Spin
* Turn off underglow when computer sleeps
* dmqdesigns spin - a little more refined keymap now
* a few more refinements for spin
* missing key up event for CH_CPNL and CH_ASST
* better naming for keymap
* cformat
* Apply suggestions from code review
Co-authored-by: Drashna Jaelre <drashna@live.com>
* Old #include habits die hard... :)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update ADB impelmentation in tmk_core to recent version.
Pcked from tmk_keyboard repository revision: 48d696443857512d45f9a7329e0dd0a76345860f
* Restore convenient ADB functions used in QMK port.
* Do cformat.
To successfully compile bootloadHID, we must have the libusb-config tool, which comes from the libusb-dev package. This package is available in both Ubuntu Groovy and Debian Buster
Co-authored-by: Jonathan Paugh <jpaugh@gmx.com>
* added main keyboard files
* working default and iso maps
* add via config
* made default ansi map
* fixed info.json and made readme
* renamed folders
* reincluding the folders I renamed
* Apply suggestions from code review
Co-authored-by: Ryan <fauxpark@gmail.com>
* I made a change before PR to clean up VIA map that broke it now its fixed
* Apply suggestions from code review
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/boardsource/the_mark/the_mark.h
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>
* Add default mode eighty firmware
* Add via keymap
* Mode80 firmware upgrades
- Removed SPI and PWM drivers from MCU configuration, HAL configuration and Chibi configuration as neither peripherals are being used
- Included second backspace key (row 5, col 14) which should solve the non-appearance of the backspace key on the hotswap PCB
* Add default mode eighty firmware
* Add via keymap
* Update keyboards/mode/eighty/config.h
Remove comment lines from config.h
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/mode/eighty/config.h
Remove comments from config.h
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update eighty.c
Add GPLv2 header
* Update eighty.h
Add GPLv2 license header
* Update readme.md
Update README
* Update keyboards/mode/eighty/config.h
Remove keyboard description
Co-authored-by: Drashna Jaelre <drashna@live.com>
* Delete config.h
Delete config.h in keynap folder
* Update keyboards/mode/eighty/rules.mk
Remove feature disabling in rules.mk
Co-authored-by: Ryan <fauxpark@gmail.com>
* Move rules.mk to VIA folder
* Update keyboards/mode/eighty/keymaps/via/rules.mk
Use LTO_ENABLE as short for LINK_TIME_OPTIMIZATION_ENABLE
Co-authored-by: Drashna Jaelre <drashna@live.com>
* Update keyboards/mode/eighty/readme.md
Puts a single image embedded in the readme, and links to the full gallery
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/mode/eighty/readme.md
Use * for markdown list
Co-authored-by: Ryan <fauxpark@gmail.com>
* Apply suggestions from code review
Correct comment characters
Co-authored-by: Ryan <fauxpark@gmail.com>
* Adjusted copyright name, USB descriptor and removed info.json
* Separate Mode80 S and H firwares into subfolders
* Added info.json files for QMK Configurator
* Lowercase folder and filenames
* Remove config definition macros in M80H
* Remove config definition macros in M80S and root
* Change definitions to lowercase parameters
* Moce chconf and mcuconf chibiOS files to root folder
* Move halconf to root folder, keymaps to subfolders
* Update readme for building/flashing guide
Co-authored-by: Ryan <fauxpark@gmail.com>
* Add layers to VIA keymaps, remove CONSOLE_ENABLE
* Push master changes to lib/
* Retrieve lufa and googletest submodules to previous heads at master
* Disabled LTO in VIA keymaps
* Fix layout declaration to lowercase in m80s default keymap
* Added readme's for each M80S and M80H
Co-authored-by: Jaicob <jaicob@icloud.com>
Co-authored-by: Gondolindrim <alvaro.augusto.volpato@gmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Create Alter folder
* Revert "Create Alter folder"
This reverts commit 361103b821.
* Add octopad folder
* Added a new keyboard, the Octopad
* Edited files based on requested changes
* Moved encoder code in keyboard level
* Updated the readme
* Corrected the rows and columns of encoders on config.h
* Changed the Vendor ID to D812 since the first one was already taken
* Added support for ast1109MLTRQ speakers
* Increased number of layers to 8 on VIA keymap
* Edited files based on comments
* Edited rules.mk as per comment
* Edited readme.md as per comment
* Rewrite APA102 support
The APA102 source was broken by commit 16a15c1cfc as it did not include the
quantum header. This commit addresses that, as well as other issues with
transferring bytes over the SPI interface, i.e. it was not setting the
clock pin back to low after sending a bit.
The deviation when sending the end frame is kept, but updated to the
latest from the referenced project.
Finally, these changes expose the global LED brightness parameter
of the APA102. Brightness values are configurable through
`APA102_DEFAULT_BRIGHTNESS` and `APA102_MAX_BRIGHTNESS`.
* Fix typo in led brightness extern
* Move driver out of AVR directory and add delay for ARM
* Experimental APA102 support on AVR and ARM
Co-authored-by: Alde Rojas <hello@alde.io>
* Refactor apa102_send_byte() calls to a loop
* Implement io_wait function for ARM
* Move APA102 drivers to own directory, fix copyright notice
* Add APA102 keymap to handwired/onekey
* Simplify RGBLIGHT_ENABLE/DRIVER option handling
Co-authored-by: Mikkel Jeppesen <2756925+Duckle29@users.noreply.github.com>
* Update vendor and product info
* Add rev2 for Choco60
* Add keymap for VIA
* Add readme.md for rev1 and rev2
* Use list instead of new line
* Remove DESCRIPTION
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update rev1/readme.md to specify rev1 directly.
Co-authored-by: Ryan <fauxpark@gmail.com>
* Remove some definitions
Co-authored-by: Ryan <fauxpark@gmail.com>
* Remove comments
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
* fix abacus so it works with configurator
* create the keymap path if it doesn't exist
* bpiphany/unloved_bastard: remove the nested macros, move default keymap to json
* readd the unloved_bastard default keymap
* fix clueboard/card
* fixup handwired/2x5keypad
* fixup hub16
* matrix/noah: remove the broken matrix print code to fix compilation
* reinstate matrix_print with the right include
* Revert "create the keymap path if it doesn't exist"
This reverts commit af732776a5.
* Add tabs to getting started page
* Review comments
Co-authored-by: Ryan <fauxpark@gmail.com>
* Align with current theme
* Update docs/newbs_getting_started.md
Co-authored-by: Ryan <fauxpark@gmail.com>
* Apply suggestions from code review
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
* update keyboards/helix/rev2/keymaps/five_rows/rules.mk: oled selection, led animation selection
* add OLED_UPDATE_INTERVAL support into keyboards/helix/rev2/keymaps/five_rows/oled_display.c
Support for OLED_UPDATE_INTERVAL, even for older types of OLED tasks.
* Add 'HELIX=debug/no-debug' option into 'helix/rev2/keymaps/five_rows/rules.mk'
It looks like features.md was deprecated and content was split into other files. This results in a broken link on the main page which, if removed, would have no impact to the remainder of the documentation. This would also:
resolve#9239resolve#10293resolve#10447
* Portico: Initial support for TKC Portico
* Portico: added GPL header to keymap files
* Update keyboards/tkc/portico/rules.mk
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
* add bastyl
* no need to copy the folder anymore
* clean up according to PR rules
* remove via, fix disposition
* add reset button on right half
* Update readme.md
* Update keyboards/hidtech/bastyl/bastyl.h
Co-authored-by: Joel Challis <git@zvecr.com>
* Update keyboards/hidtech/bastyl/rules.mk
Co-authored-by: Joel Challis <git@zvecr.com>
* Update keyboards/hidtech/bastyl/config.h
Co-authored-by: Joel Challis <git@zvecr.com>
* move json, remove via files
* Update keyboards/hidtech/bastyl/keymaps/default/keymap.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/hidtech/bastyl/keymaps/default/keymap.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/hidtech/bastyl/keymaps/default/keymap.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/hidtech/bastyl/keymaps/default/keymap.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* add GPL to c and h files
* Update keyboards/hidtech/bastyl/info.json
Change order to match layout macro
Co-authored-by: Joel Challis <git@zvecr.com>
* Update keyboards/hidtech/bastyl/config.h
Co-authored-by: Drashna Jaelre <drashna@live.com>
* serial define can be ommited, is used by default
* Corrected VENDOR_ID
Incorrect VENDOR_ID has been updated to the correct one.
Co-authored-by: Quentin <qlebastard@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
* 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
Co-authored-by: Joel Challis <git@zvecr.com>
* Update keyboards/draytronics/scarlet/rules.mk
Co-authored-by: Joel Challis <git@zvecr.com>
* Update keyboards/draytronics/scarlet/readme.md
Co-authored-by: Joel Challis <git@zvecr.com>
* Update keyboards/draytronics/scarlet/keymaps/default/keymap.c
Co-authored-by: Joel Challis <git@zvecr.com>
* Update keyboards/draytronics/scarlet/config.h
Co-authored-by: Joel Challis <git@zvecr.com>
* Update keymap.c
* Update config.h
* Update scarlet.h
* Update keyboards/draytronics/scarlet/config.h
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/draytronics/scarlet/config.h
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/draytronics/scarlet/scarlet.h
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/draytronics/scarlet/keymaps/default/keymap.c
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* provide info.json layout to fix qmk configurator
* Correctly name keyboard in info.json
* Added website and layout key labels to info.json
* VIA support. Thanks sirdicholas
* Readme change, link to VIA design file.
Co-authored-by: Blake Drayson <blake@Euclid.ghost7.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update feature_rgb_matrix.md
Added more clarification on how to use a newly created rgb effect as it was unclear that the prefix 'RGB_MATRIX_CUSTOM_' had to be added.
Also included an example consistent with the documentation example.
* Update docs/feature_rgb_matrix.md
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update docs/feature_rgb_matrix.md
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
* [Keymap] fix and update helix/rev3_5rows:five_rows
* fix rgblight animation selection
* use `DEBUG_MATRIX_SCAN_RATE_ENABLE` insted of keyboard_post_init_user_scan.c
* Change the initial value of the ENCODER_ENABLE to 'no' in 'keymaps/five_rows/rules.mk'
* Add 'HELIX=debug/no-debug' option into 'rev3_5rows/keymaps/five_rows/rules.mk'
* Add '#define OLED_UPDATE_INTERVAL 100' 'rev3_5rows/keymaps/five_rows/config.h'
* add LED_ANIMATIONS_LEVEL macro into rev3_5rows/keymaps/five_rows/
* Change OLED_UPDATE_INTERVAL value in rev3_5rows/keymaps/five_rows/config.h
* YMD75 rev 3: fix BACKLIGHT_PIN
Update backlight LED pin used by QMK to control the per-key backlight for YMD75 rev 3
* YMD75 rev 3: fix BACKLIGHT_PIN - fix comments
* YMD75: move BACKLIGHT_PIN definitions to the respective versions
Signed-off-by: Nathan13888 <29968201+Nathan13888@users.noreply.github.com>
* Add VIA keymap for reviung41
* Change VID for compatibility
* Add GPL header to config.h
* Enable link time optimization
* Remove config since it might not be needed
* add the ability to exclude keyboards from travis builds
* add filtering to make all:
* only skip keyboards during make all:
* working implementation
* forego a CI_KEYBOARDS variable
* optimize the startup by only listing keyboards once
* add sort -u to all list_keyboard invocations
* move the if else if tree back to 1 level
* Add pos78 keyboard
* tidy up links
* Added missing commas
The missing commas were causing a compile error (Travis CI, #41934 failed).
* Added trailing commas
On lines 10-14, just missed last line (15).
* Travis CI errors
Trying to correct errors from Travis CI #41951 failed
* Corrected(?) TG(_FN) from Travis CI failure
* Revert readme.md to original format
Fauxpark
Co-authored-by: Ryan <fauxpark@gmail.com>
* Remove trailing \ from keymap.c
Fauxpark
Co-authored-by: Ryan <fauxpark@gmail.com>
* Change Vendor and Product ID
How do I update the Product ID search tool if 0x7878 is used/good?
* Add LAYOUT_ortho_6x13 Update keyboards/pos78/pos78.h
Co-authored-by: Drashna Jaelre <drashna@live.com>
* I bow to drashna's superior knowledge. Update keyboards/pos78/info.json
Co-authored-by: Drashna Jaelre <drashna@live.com>
* I bow to drashna's superior knowledge. Update keyboards/pos78/keymaps/default/keymap.c
Co-authored-by: Drashna Jaelre <drashna@live.com>
* I bow to drashna's superior knowledge. Update keyboards/pos78/keymaps/default/keymap.c
Co-authored-by: Drashna Jaelre <drashna@live.com>
* Added pic
* Add picture properly. Update keyboards/pos78/readme.md
Co-authored-by: Ryan <fauxpark@gmail.com>
* Remove Bootmagic_enable (fauxpark)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
* Initial BOX75 PCB v1.0.6 PCB support
* New prototype firmware
* Correct column pin assignment
* Update README
* Update keyboards/box75/config.h
Remove USB description
Co-authored-by: Drashna Jaelre <drashna@live.com>
* Update keyboards/box75/rules.mk
Remove comment lines from BLUETOOTH_ENABLE and AUDIO_ENABLE
Co-authored-by: Ryan <fauxpark@gmail.com>
* Add VIA support
* Remove KC_NO define and use traditional one
* Update keyboards/box75/keymaps/default/keymap.c
Move KC_HOME location on keymap.c
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/box75/box75.h
Move HOME key location on keymap.c
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Changed F13 to print screen in default VIA firmware
Co-authored-by: Gondolindrim <alvaro.augusto.volpato@gmail.com>
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>
* Initial CK60i support
* Initial Iron180 support
* Add PWM support
* Feedback from PCB protos
* Update README
* Remove CK60i references
* Remove KC_NO ____ definition and replaced with predefined
* Remove description field in USD descriptors
* Shorten bluetooth enable and audio output comments on rules.mk
* Initial VIA support
Co-authored-by: Gondolindrim <alvaro.augusto.volpato@gmail.com>
* Initial technika support
* Updated README
* Update keyboards/technika/config.h
Remove DESCRIPTION from usb desciptor fields
Co-authored-by: Drashna Jaelre <drashna@live.com>
* Update keyboards/technika/rules.mk
Remove words from comments in rules.mk
Co-authored-by: Ryan <fauxpark@gmail.com>
* Remove old KC_NO definitions and used default one
* Use defines for num, caps and scroll lock LED pins
* Fix underscore KC_NO substitution in keymap
Co-authored-by: Gondolindrim <alvaro.augusto.volpato@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
* Add modifier state to the split transport
This adds modifier state to the i2c and serial transport for split
keyboards. The purpose of this is to allow e.g. displaying modifier
state on the slave side of a split keyboard on an oled. This adds one
byte to the data transferred between halves.
This also fixes a missing ifdef guard for BLACKLIGHT_ENABLE.
Break modifiers into real/weak/oneshot
Fix incorrect slave serial mod setting
Fix typo in serial weal mod setter
Fix build errors for the I2C code that I introduced
Code cleanup and formatting per project preferences
Correctly get oneshot mods
Fix missing braces
Remove unneeded ifdef guard
Make the added state transport optional
Add documentation for the new define to enable this feature
Fix stray grave mark
* Fix error introduced in conflict resolution
* update keyboards/helix/rev2/local_features.mk - Improved parsing of the `HELIX =` option
* add 'is_mac_mode()' into keyboards/helix/rev2/rev2.c
* update helix/rev2/keymaps/default/keymap.c: use rgblight query functions
* Makes the OLED driver used by the helix:default keymap switchable.
* use TOP/drivers/oled/oled_driver.c
`make helix:default`
or
`make OLED_SELECT=core helix:default`
* use helix/local_drivers/ssd1306.c
`make OLED_SELECT=local helix:default`
* Separated the OLED related code from keymap.c and moved it to oled_display.c.
* Change the 'led_test' keymap to follow the changes in the 'default' keymap.
* update helix/rev2/keymaps/default/oled_display.c
* add '#define OLED_UPDATE_INTERVAL 50' into keyboards/helix/rev2/config.h
* Support for OLED_UPDATE_INTERVAL, even for older types of OLED tasks
* add readme.md for helix/rev2
* Apply drashna's suggestions to rev2.c.
* Apply drashna's suggestions to rev3_4rows.c, rev3_5rows.c.
Co-authored-by: mtei <2170248+mtei@users.noreply.github.com>
* Remove command and console
- these options prevent community layouts from being built on other
keyboards. Selectively enable it on keyboards I own rather than on
everything.
* Update users/yanfali/rules.mk
When `rgblight.c` includes `rgblight_breathe_table.h`, the search order should be as follows.
* `keyboards/KEYBOARD/keymaps/USER/rgblight_breathe_table.h`
* `users/USER/rgblight_breathe_table.h`
* `quantum/rgblight_breathe_table.h`
However, the current implementation was wrong, so I fixed it.
* Initial commit of Geekboards Macropad V2 keyboard
* Apply suggestions from code review
Co-authored-by: Joel Challis <git@zvecr.com>
* Apply suggestions from code review: delete unnecessary files
* Fixed typos
* Apply suggestions from code review
Co-authored-by: Ryan <fauxpark@gmail.com>
* Change RGB_MATRIX config syntax following recent core changes
* Apply suggestions from drashna code review
* Remove unnecessary file (it is now defined in the core)
* Remove unnecessary code, due to PR 11084 approve
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
* [Keyboard] New Keyboard - BDE
Added the Big Dill Extended by MechWild
* Corrected pinout for righty config
Corrected the copied line from the lefty config that had not been updated prior to this commit.
* Corrected the files that had been overwritten with old versions during testing.
* Update keyboards/mechwild/bde/lefty/config.h
* Made changes based on suggestions. Added GPL and split preference config.h lines into keymap level.
* Apply suggestions from code review
Readme cleanup
* Update keyboards/mechwild/bde/lefty/keymaps/fancy/config.h
* Update keyboards/mechwild/bde/lefty/keymaps/via/config.h
* Apply suggestions from code review
Corrects a stray style line in one of the readme files as well as correcting the name of the keymap layout from the inaccurate 3x14 name to just "layout"
* add bastyl
* no need to copy the folder anymore
* clean up according to PR rules
* remove via, fix disposition
* add reset button on right half
* Update readme.md
* Update keyboards/hidtech/bastyl/bastyl.h
Co-authored-by: Joel Challis <git@zvecr.com>
* Update keyboards/hidtech/bastyl/rules.mk
Co-authored-by: Joel Challis <git@zvecr.com>
* Update keyboards/hidtech/bastyl/config.h
Co-authored-by: Joel Challis <git@zvecr.com>
* move json, remove via files
* Update keyboards/hidtech/bastyl/keymaps/default/keymap.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/hidtech/bastyl/keymaps/default/keymap.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/hidtech/bastyl/keymaps/default/keymap.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/hidtech/bastyl/keymaps/default/keymap.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* add GPL to c and h files
* Update keyboards/hidtech/bastyl/info.json
Change order to match layout macro
Co-authored-by: Joel Challis <git@zvecr.com>
* Update keyboards/hidtech/bastyl/config.h
Co-authored-by: Drashna Jaelre <drashna@live.com>
* serial define can be ommited, is used by default
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
* Adding customMK Genesis keyboard and keymap files
* Updated readme.md
fixed a typo
* Fixed code for QMK PR
* Updated syntax in config.h and changed dfu to flash in readme
Co-authored-by: Ray <ray@custommk.com>
* Add support for LAYOUT_alice to sneakbox pcb
* define variables for sneakbox led pins
* set rules for sneakbox pcb
* add rotary encoder to userspace
* fix rotary function
* add custom layer indicators for sneakbox
* Revert "Add support for LAYOUT_alice to sneakbox pcb"
This reverts commit 5ed94d8d89.
* add license header
* Use KEYBOARD_sneakbox_aliceclone
* cleaned up indicator code
* Added a dactyl promicro with a slightly different 6x6 layout
* updated keyboard layout
* Removed description as per code review
* refactored as per code review
* removed redundant config.h file
* removed and updated a couple of lines in rules.mk
* replaced symlink with copy of file
* removed lines in readme
* Update readme.md
Co-authored-by: ralphie02 <ralph.azucena@carbon60.com>
* Reset everything to upstream, reapply Bocaj changes
* Bocaj - address PR comments
* Just in time changes
* Bocaj - Several adjustments after using the layout for a while
* Split dmac_desc declaration and definition
According to the official documentation[1] gcc 10 is more strict about
correct extern usage.
I've had to move the definition of dmac_desc and dmac_desc_wb from
i2c_master.h to the corresponding .c file. This could be an issue if
anyone includes the i2c_master.h file without liking with the object
file.
[1]: https://gcc.gnu.org/gcc-10/porting_to.html
* Remove the keymap_config definition from keymaps
The keymap_config def was conflicting with the one found in
tmk_core/common/magic.c. Declaring it extern in magic.c breaks a bunch
of keyboard that rely on that declaration (like the ergodox). Instead
I've removed the one found in the keymap.c of the massdrop alt.
The same change will have to be made to other keyboards.
* Allow APM32 MCUs on certain CannonKeys PCBs
* another one
* Update DFU suffix args
* missed one
* Apply suggestions from code review
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Joel Challis <git@zvecr.com>
* Hotfix for #11106: Rework LAYOUT_alice support; add LAYOUT_alice_split_bs
Accidentally missed backwards compatibility on the sneakbox/aliceclone in #11106, which broke stanrc85's Community Layout keymap.
* sneakbox/aliceclone: move 2u Backspace to column 6
* add new keyboard scatter42 by bbrfkr
* mod info.json to work
* mod info.json
* mod readme
* Update keyboards/scatter42/keymaps/default/keymap.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/scatter42/keymaps/default/keymap.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/scatter42/scatter42.h
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/scatter42/config.h
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
* Disable almost all ChibiOS subsystems.
* Modify ChibiOS config updater script to fixup mcuconf include, use develop as base instead of master.
* Add default early-init bootloader to F042/F072.
* Back to 100k freq.
* Add LAYOUT_alice support: fallacy
* Add LAYOUT_alice support: kb_elmo/sesame
* Add LAYOUT_alice support: cheshire/curiosity
* Add LAYOUT_alice support: evyd13/wonderland
* Add LAYOUT_alice support: mechlovin/adelais
* Update LAYOUT_alice support: projectkb/alice
The PR that added Alice community layout support for the projectkb/alice/rev2 simultaneously broke support for every other keyboard that supported LAYOUT_alice.
This commit partially reverts the offending PR. `LAYOUT_alice` for the projectkb/alice has been renamed to `LAYOUT_alice_split_bs`, and a correct 65-key `LAYOUT_alice` has been added.
Additionally, the `LAYOUTS` rule has been moved to keyboard level as the layout macros are shared between rev1 and rev2 boards, which means the layout options are the same for both revisions.
* Update ramonimbao/aelith info.json
Keyboard source was already correct to support LAYOUT_alice, but the layout tree was missing from info.json.
* Fork `alice` Community Layout...
... into Standard and Split Backspace versions
Also updates stanrc85's layout keymap to use 65 keys instead of the Split Backspace 66-key version.
* Update LAYOUT_alice support: sneakbox/aliceclone
Rework the sneakbox/aliceclone to use the Split Backspace Alice layout.
* Update LAYOUT_alice support: zoo/wampus
The layout macro that was `LAYOUT_alice` was 66 keys. This layout macro has been renamed to `LAYOUT_alice_split_bs`, and a 65-key `LAYOUT_alice` has been added.
Additionally, the 66-key macro has been rearranged to accept its keycodes in the intended order for Community Layout support.
* Update keyboards for `LAYOUT_alice_split_bs` support
* LAYOUT_alice_split_bs support: ergosaurus
* LAYOUT_alice_split_bs support: handwired/colorlice
* LAYOUT_alice(_split_bs) support: handwired/owlet60
* LAYOUT_alice_split_bs support: nightly_boards/alter/rev1
* LAYOUT_alice(_split_bs) support: sck/osa
* LAYOUT_alice_split_bs support: tgr/alice
* LAYOUT_alice(_split_bs) support: tkc/osav2
* LAYOUT_alice_split_bs support: xelus/valor/rev1
* Add Via keymap
* Via Enable in Rules.mk
* Update config.h
added nasp before Plexus75 in PRODUCT to better follow Via naming convention
* Update keymap.c
changed KC_CTRL to KC_LCTL
* Update config.h
took out the manu repeat
* Update rules.mk
* Create rules.mk
changed location of rules.mk for supporting Via
* Apply suggestions from code review
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/plexus75/keymaps/via/rules.mk
Co-authored-by: Ryan <fauxpark@gmail.com>
* Apply suggestions from code review
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
- Set all other ChibiOS defaults to 'off', when not targeting Proton-C
- Modified all existing F303 boards to point at the QMK_PROTON_C to ensure repeatable binary output
- Modified version.h generation so that SKIP_VERSION=yes generates the same output
@@ -24,7 +24,7 @@ Totally new to QMK? There are two ways to get started:
## Make It Yours
QMK has lots of [features](features.md) to explore, and a good deal of reference documentation to dig through. Most features are taken advantage of by modifying your [keymap](keymap.md), and changing the [keycodes](keycodes.md).
QMK has lots of features to explore, and a good deal of reference documentation to dig through. Most features are taken advantage of by modifying your [keymap](keymap.md), and changing the [keycodes](keycodes.md).
@@ -296,26 +296,44 @@ This command allows you to generate QMK documentation locally. It can be uses fo
qmk generate-docs
```
## `qmk kle2json`
## `qmk generate-rgb-breathe-table`
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.
This command generates a lookup table (LUT) header file for the [RGB Lighting](feature_rgblight.md) feature's breathing animation. Place this file in your keyboard or keymap directory as `rgblight_breathe_table.h` to override the default LUT in `quantum/`.
This command allows you to convert [Keyboard-Layout-Editor.com](http://keyboard-layout-editor.com) layouts into `info.json` layouts. It will also create a `keymap.json` file for your layout. This saves a lot of time when setting up a new keyboard.
To use this command your KLE will need to follow a specific format. See [KLE To info.json](kle2json_guide.md) for more details.
@@ -29,7 +29,9 @@ This level contains all of the options for that particular keymap. If you wish t
This is a C header file that is one of the first things included, and will persist over the whole project (if included). Lots of variables can be set here and accessed elsewhere. The `config.h` file shouldn't be including other `config.h` files, or anything besides this:
@@ -41,7 +41,9 @@ Bevorzugst Du es lieber auf der Befehlszeile zu debuggen? Dafür eignet sich das
Manchmal ist es hilfreich Debug-Nachrichten innerhalb deines eigenen [Custom Codes](de/custom_quantum_functions.md) zu drucken. Das ist ziemlich einfach. Beginne damit `print.h` am Anfang deiner Datei zu inkludieren:
#include<print.h>
```c
#include"print.h"
```
Danach stehen dir verschiedene Druck-Funktionen zur Verfügung:
@@ -14,16 +14,11 @@ Some keyboards may have specific instructions for entering the bootloader. For e
To put a device in bootloader mode with USBaspLoader, tap the `RESET` button while holding down the `BOOT` button.
Alternatively, hold `BOOT` while inserting the USB cable.
Zadig will automatically detect the bootloader device. You may sometimes need to check **Options → List All Devices**.
- For keyboards with Atmel AVR MCUs, the bootloader will be named something similar to `ATm32U4DFU`, and have a Vendor ID of `03EB`.
- USBasp bootloaders will appear as `USBasp`, with a VID/PID of `16C0:05DC`.
- AVR keyboards flashed with the QMK-DFU bootloader will be named `<keyboard name> Bootloader` and will also have the VID `03EB`.
- For most ARM keyboards, it will be called `STM32 BOOTLOADER`, and have a VID/PID of `0483:DF11`.
Zadig should automatically detect the bootloader device, but you may sometimes need to check **Options → List All Devices** and select the device from the dropdown instead.
!> If Zadig lists one or more devices with the `HidUsb` driver, your keyboard is probably not in bootloader mode. The arrow will be colored orange and you will be asked to confirm modifying a system driver. **Do not** proceed if this is the case!
If the arrow appears green, select the driver, and click **Install Driver**. The `libusb-win32` driver will usually work for AVR, and `WinUSB` for ARM, but if you still cannot flash the board, try installing a different driver from the list. USBAspLoader devices must use the `libusbK` driver.
If the arrow appears green, select the driver, and click **Install Driver**. See the [list of known bootloaders](#list-of-known-bootloaders) for the correct driver to install.

@@ -43,6 +38,40 @@ Right-click it and hit **Uninstall device**. Make sure to tick **Delete the driv

Click **Action → Scan for hardware changes**. At this point, you should be able to type again. Double check in Zadig that the keyboard device(s) are using the `HidUsb` driver. If so, you're all done, and your board should be functional again!
Click **Action → Scan for hardware changes**. At this point, you should be able to type again. Double check in Zadig that the keyboard device(s) are using the `HidUsb` driver. If so, you're all done, and your board should be functional again! Otherwise, repeat the process until Zadig reports the correct driver.
?> A full reboot of your computer may sometimes be necessary at this point, to get Windows to pick up the new driver.
## List of Known Bootloaders
This is a list of known bootloader devices and their USB vendor and product IDs, as well as the correct driver to assign for flashing with QMK. Note that the usbser and HidUsb drivers are built in to Windows, and cannot be assigned with Zadig - if your device has an incorrect driver, you must use the Device Manager to uninstall it as described in the previous section.
The device name here is the name that appears in Zadig, and may not be what the Device Manager or QMK Toolbox displays.
@@ -33,4 +33,3 @@ Soporte para hasta 2 controladores. Cada controlador implementa 2 matrices charl
## IS31FL3733
Soporte para hasta un solo controlador con espacio para expansión. Cada controlador puede controlar 192 LEDs individuales o 64 LEDs RGB. Para obtener más información sobre cómo configurar el controlador, consulta la página de [Matriz RGB](feature_rgb_matrix.md).
@@ -41,7 +41,9 @@ Para plataformas compatibles, [QMK Toolbox](https://github.com/qmk/qmk_toolbox)
A veces, es útil imprimir mensajes de depuración desde tu [código personalizado](custom_quantum_functions.md). Hacerlo es bastante simple. Comienza incluyendo `print.h` al principio de tu fichero:
#include<print.h>
```c
#include"print.h"
```
Después de eso puedes utilzar algunas funciones print diferentes:
@@ -182,7 +182,9 @@ Which would send Left Control+`a` (Left Control down, `a`, Left Control up) - no
By default, it assumes a US keymap with a QWERTY layout; if you want to change that (e.g. if your OS uses software Colemak), include this somewhere in your keymap:
There are some functions you may find useful in macro-writing. Keep in mind that while you can write some fairly advanced code within a macro, if your functionality gets too complex you may want to define a custom keycode instead. Macros are meant to be simple.
?> You can also use the functions described in [Useful function](ref_functions.md) for additional functionality. For example `reset_keyboard()` allows you to reset the keyboard as part of a macro.
?> You can also use the functions described in [Useful functions](ref_functions.md) for additional functionality. For example `reset_keyboard()` allows you to reset the keyboard as part of a macro.
@@ -42,6 +42,7 @@ In your keymap you can use the following keycodes to map key presses to mouse ac
Mouse keys supports three different modes to move the cursor:
* **Accelerated (default):** Holding movement keys accelerates the cursor until it reaches its maximum speed.
* **Kinetic:** Holding movement keys accelerates the cursor with its speed following a quadratic curve until it reaches its maximum speed.
* **Constant:** Holding movement keys moves the cursor at constant speeds.
* **Combined:** Holding movement keys accelerates the cursor until it reaches its maximum speed, but holding acceleration and movement keys simultaneously moves the cursor at constant speeds.
@@ -56,7 +57,8 @@ This is the default mode. You can adjust the cursor and scrolling acceleration u
|`MOUSEKEY_DELAY` |300 |Delay between pressing a movement key and cursor movement|
|`MOUSEKEY_INTERVAL` |50 |Time between cursor movements |
|`MOUSEKEY_INTERVAL` |50 |Time between cursor movements in milliseconds |
|`MOUSEKEY_MOVE_DELTA` |5 |Step size |
|`MOUSEKEY_MAX_SPEED` |10 |Maximum cursor speed at which acceleration stops |
|`MOUSEKEY_TIME_TO_MAX` |20 |Time until maximum cursor speed is reached |
|`MOUSEKEY_WHEEL_DELAY` |300 |Delay between pressing a wheel key and wheel movement |
@@ -73,6 +75,30 @@ Tips:
Cursor acceleration uses the same algorithm as the X Window System MouseKeysAccel feature. You can read more about it [on Wikipedia](https://en.wikipedia.org/wiki/Mouse_keys).
### Kinetic Mode
This is an extension of the accelerated mode. The kinetic mode uses a quadratic curve on the cursor speed which allows precise movements at the beginning and allows to cover large distances by increasing cursor speed quickly thereafter. You can adjust the cursor and scrolling acceleration using the following settings in your keymap’s `config.h` file:
* The smoothness of the cursor movement depends on the `MOUSEKEY_INTERVAL` setting. The shorter the interval is set the smoother the movement will be. Setting the value too low makes the cursor unresponsive. Lower settings are possible if the micro processor is fast enough. For example: At an interval of `8` milliseconds, `125` movements per second will be initiated. With a base speed of `1000` each movement will move the cursor by `8` pixels.
* Mouse wheel movements are implemented differently from cursor movements. While it's okay for the cursor to move multiple pixels at once for the mouse wheel this would lead to jerky movements. Instead, the mouse wheel operates at step size `1`. Setting mouse wheel speed is done by adjusting the number of wheel movements per second.
### Constant mode
In this mode you can define multiple different speeds for both the cursor and the mouse wheel. There is no acceleration. `KC_ACL0`, `KC_ACL1` and `KC_ACL2` change the cursor and scroll speed to their respective setting.
`raw_hid_receive` can receive variable size packets from host with maximum length `RAW_EPSIZE`. `raw_hid_send` on the other hand can send packets to host of exactly `RAW_EPSIZE` length, therefore it should be used with data of length `RAW_EPSIZE`.
These two functions send and receive packets of length `RAW_EPSIZE` bytes to and from the host (32 on LUFA/ChibiOS/V-USB, 64 on ATSAM).
Make sure to flash raw enabled firmware before proceeding with working on the host side.
@@ -129,6 +129,28 @@ Configure the hardware via your `config.h`:
---
### APA102 :id=apa102
There is basic support for APA102 based addressable LED strands. To enable it, add this to your `rules.mk`:
```makefile
RGB_MATRIX_ENABLE= yes
RGB_MATRIX_DRIVER= APA102
```
Configure the hardware via your `config.h`:
```c
// The pin connected to the data pin of the LEDs
#define RGB_DI_PIN D7
// The pin connected to the clock pin of the LEDs
#define RGB_CI_PIN D6
// The number of LEDs connected
#define DRIVER_LED_TOTAL 70
```
---
From this point forward the configuration is the same for all the drivers. The `led_config_t` struct provides a key electrical matrix to led index lookup table, what the physical position of each LED is on the board, and what type of key or usage the LED if the LED represents. Here is a brief example:
```c
@@ -306,6 +328,12 @@ To declare new effects, create a new `rgb_matrix_user/kb.inc` that looks somethi
`rgb_matrix_user.inc` should go in the root of the keymap directory.
`rgb_matrix_kb.inc` should go in the root of the keyboard directory.
To use custom effects in your code, simply prepend `RGB_MATRIX_CUSTOM_` to the effect name specified in `RGB_MATRIX_EFFECT()`. For example, an effect declared as `RGB_MATRIX_EFFECT(my_cool_effect)` would be referenced with:
@@ -10,6 +10,7 @@ Currently QMK supports the following addressable LEDs (however, the white LED in
* WS2811, WS2812, WS2812B, WS2812C, etc.
* SK6812, SK6812MINI, SK6805
* APA102
These LEDs are called "addressable" because instead of using a wire per color, each LED contains a small microchip that understands a special protocol sent over a single wire. The chip passes on the remaining data to the next LED, allowing them to be chained together. In this way, you can easily control the color of the individual LEDs.
@@ -21,11 +22,19 @@ On keyboards with onboard RGB LEDs, it is usually enabled by default. If it is n
RGBLIGHT_ENABLE= yes
```
At minimum you must define the data pin your LED strip is connected to, and the number of LEDs in the strip, in your `config.h`. If your keyboard has onboard RGB LEDs, and you are simply creating a keymap, you usually won't need to modify these.
For APA102 LEDs, add the following to your `rules.mk`:
```make
RGBLIGHT_ENABLE= yes
RGBLIGHT_DRIVER= APA102
```
At minimum you must define the data pin your LED strip is connected to, and the number of LEDs in the strip, in your `config.h`. For APA102 LEDs, you must also define the clock pin. If your keyboard has onboard RGB LEDs, and you are simply creating a keymap, you usually won't need to modify these.
@@ -184,7 +184,7 @@ If you wanted to consolidate macros and other functions into your userspace for
First, you'd want to go through all of your `keymap.c` files and replace `process_record_user` with `process_record_keymap` instead. This way, you can still use keyboard specific codes on those boards, and use your custom "global" keycodes as well. You'll also want to replace `SAFE_RANGE` with `NEW_SAFE_RANGE` so that you wont have any overlapping keycodes
Then add `#include <name.h>` to all of your keymap.c files. This allows you to use these new keycodes without having to redefine them in each keymap.
Then add `#include "<name>.h"` to all of your keymap.c files. This allows you to use these new keycodes without having to redefine them in each keymap.
Once you've done that, you'll want to set the keycode definitions that you need to the `<name>.h` file. For instance:
@@ -42,7 +42,9 @@ Vous préférez une solution basée sur le terminal? [hid_listen](https://www.pj
Parfois, il est utile d'afficher des messages de débugage depuis votre [code custom](custom_quantum_functions.md). Le faire est assez simple. Commencez par ajouter `print.h` au début de votre fichier:
#include<print.h>
```c
#include"print.h"
```
Une fois fait, vous pouvez utiliser les fonctions print suivantes:
@@ -78,7 +78,7 @@ Established materials and techniques include:
| Short lengths of wire | [u/xicolinguada's ortho build](https://www.reddit.com/r/MechanicalKeyboards/comments/c39k4f/my_first_hand_wired_keyboard_its_not_perfect_but/) | Easier to strip the wire | More difficult to place | 
| Magnet/Enamelled wire | [Brett Kosinski's handwired alpha](http://blog.b-ark.ca/Blog-2019-01-27) and [fknraiden's custom board](https://geekhack.org/index.php?topic=74223.0) | Can be directly soldered onto (insulation burns off with heat) | Appearance? | 
| Bending the legs of the diodes for the rows | [Matt3o's Brownfox](https://deskthority.net/viewtopic.php?f=7&t=6050) | Fewer solder joints required | Uninsulated | 
| Using ridid wiring (e.g. brass tube) | [u/d_stilgar's invisible hardline](https://www.reddit.com/r/MechanicalKeyboards/comments/8aw5j2/invisible_hardline_keyboard_progress_update_april/) and [u/jonasfasler's first attempt](https://www.reddit.com/r/MechanicalKeyboards/comments/de1jyv/my_first_attempt_at_handwiring_a_keyboard/) | Very pretty | More difficult. No physical insulation | 
| Using rigid wiring (e.g. brass tube) | [u/d_stilgar's invisible hardline](https://www.reddit.com/r/MechanicalKeyboards/comments/8aw5j2/invisible_hardline_keyboard_progress_update_april/) and [u/jonasfasler's first attempt](https://www.reddit.com/r/MechanicalKeyboards/comments/de1jyv/my_first_attempt_at_handwiring_a_keyboard/) | Very pretty | More difficult. No physical insulation | 
| Bare wire with insulation added after (e.g. kapton tape) | [Matt3o's 65% on his website](https://matt3o.com/hand-wiring-a-custom-keyboard/) | Easier (no wire stripping required) | Not as attractive | 
| Copper tape | [ManuForm Dactyl](https://github.com/tshort/dactyl-keyboard) | Very easy | Only really works when your plate/case aligns with the bottom of your switches | 
@@ -121,7 +121,7 @@ Letting the diode rest, grab your solder, and touch both it and the soldering ir
The smoke that the rosin releases is harmful, so be careful not to breath it or get it in your eyes/face.
After soldering things in place, it may be helpful to blow on the joint to push the smoke away from your face, and cool the solder quicker. You should see the solder develop a matte (not shiny) surface as it solidifies. Keep in mind that it will still be very hot afterwards, and will take a couple minutes to be cool to touch. Blow on it will accelerate this process.
After soldering things in place, it may be helpful to blow on the joint to push the smoke away from your face, and cool the solder quicker. You should see the solder develop a matte (not shiny) surface as it solidifies. Keep in mind that it will still be very hot afterwards, and will take a couple minutes to be cool to touch. Blowing on it will accelerate this process.
When the first diode is complete, the next one will need to be soldered to both the keyswitch, and the previous diode at the new elbow. That will look something like this:
מקמו את התיעוד שלכם בתוך `docs/feature_<my_cool_feature>.md`, והוסיפו קישור לקובץ זה במקום המתאים ב `docs/_sidebar.md`. אם הוספתם קודי מקשים נוספים, תקפידו להוסיף אותם ל- `docs/keycodes.md` עם לינק לעמוד היכולת שלכם.
מנק׳ מבט של הפרוייקט וניהול הקהילה, TMK מנהל את כל המקלדות הנתמכות בעצמו, עם מעט תמיכה מהקהילה. כל אחד יכול לעשות פורק מהפרוייקט עבור מקלדות אחרות. רק מס׳ מיפויי מקשים נמצאים בברירת המחדל כך שאנשים בד״כ לא משתפים מיפויי מקשים זה עם זה. QMK מעודד את השיתוף של המקלדות וקודי המקשים דרך רפוזיטורי בניהול מרכזי, אשר מקבל את כל בקשות ה- Pull Requests שעומדות בסטנדרט האיכות. רובם מנוהלות ע״י הקהילה, אבל הצוות של QMK עוזר כשנדרש.
לשתי הגישות יש יתרונות וחסרונות וקוד עובר בחופשיות בין TMK ל- QMK כשצריך.
これは最初に include されるものの 1 つである C ヘッダファイルで、プロジェクト全体(もし含まれる場合)にわたって持続します。多くの変数をここで設定し、他の場所からアクセスすることができます。`config.h` ファイルでは、以下のもの以外の、他の `config.h` ファイルやその他のファイルの include をしないでください:
|`KC_PAUSE` |`KC_PAUS`, `KC_BRK`, `KC_BRMU`|Pause, Brightness Up (macOS) |
|`KC_INSERT` |`KC_INS` |Insert |
|`KC_HOME` | |Home |
|`KC_PGUP` | |Page Up |
|`KC_DELETE` |`KC_DEL` |Forward Delete |
|`KC_END` | |End |
|`KC_PGDOWN` |`KC_PGDN` |Page Down |
|`KC_RIGHT` |`KC_RGHT` |Right Arrow |
|`KC_LEFT` | |Left Arrow |
|`KC_DOWN` | |Down Arrow |
|`KC_UP` | |Up Arrow |
|`KC_APPLICATION` |`KC_APP` |Application (Windows Context Menu Key)|
|`KC_POWER` | |System Power |
|`KC_EXECUTE` |`KC_EXEC` |Execute |
|`KC_HELP` | |Help |
|`KC_MENU` | |Menu |
|`KC_SELECT` |`KC_SLCT` |Select |
|`KC_STOP` | |Stop |
|`KC_AGAIN` |`KC_AGIN` |Again |
|`KC_UNDO` | |Undo |
|`KC_CUT` | |Cut |
|`KC_COPY` | |Copy |
|`KC_PASTE` |`KC_PSTE` |Paste |
|`KC_FIND` | |Find |
|`KC__MUTE` | |Mute |
|`KC__VOLUP` | |Volume Up |
|`KC__VOLDOWN` | |Volume Down |
|`KC_ALT_ERASE` |`KC_ERAS` |Alternate Erase |
|`KC_SYSREQ` | |SysReq/Attention |
|`KC_CANCEL` | |Cancel |
|`KC_CLEAR` |`KC_CLR` |Clear |
|`KC_PRIOR` | |Prior |
|`KC_RETURN` | |Return |
|`KC_SEPARATOR` | |Separator |
|`KC_OUT` | |Out |
|`KC_OPER` | |Oper |
|`KC_CLEAR_AGAIN` | |Clear/Again |
|`KC_CRSEL` | |CrSel/Props |
|`KC_EXSEL` | |ExSel |
## Media Keys
@@ -193,34 +193,34 @@ These keycodes are not part of the Keyboard/Keypad usage page. The `SYSTEM_` key
?> Some of these keycodes may behave differently depending on the OS. For example, on macOS, the keycodes `KC_MEDIA_FAST_FORWARD`, `KC_MEDIA_REWIND`, `KC_MEDIA_NEXT_TRACK` and `KC_MEDIA_PREV_TRACK` skip within the current track when held, but skip the entire track when tapped.
This page describes how to create a [Keyboard Layout Editor](http://keyboard-layout-editor.com) layout that works with `qmk kle2json`. You will also be able to use the same KLE layout to create VIA support for your keyboard.
## Overview
QMK uses `info.json` to store metadata about the keyboard including the matrix pins, row and column configuration, and keyboard layout. You can encode some of this data into a KLE layout and then convert that to `info.json`, which saves you time and headaches creating files from scratch.
Our reference layout is here: <http://www.keyboard-layout-editor.com/#/gists/70aaa4bed76d0b2f67fd165641239552>
Keep that open in a separate window so that you can refer to it while reading this document.
## Layout Structure
The first thing you should notice is that the main layout for the keyboard is in the middle. This is the default layout. Around the sides you'll find layout options. These are groups of keys that can replace specific keys in the default layout. More on that later.
## Anatomy of a Key
Every key in KLE has 12 labels- top left, top center, top right, center left, center, center right, bottom left, bottom center, bottom right, front left, front center, front right. We do not use all 12 labels, but we do some of them.
The labels we use are below:
| | | |
|-|-|-|
| **Matrix** | (unused) | (unused) |
| **Keycode** | (unused) | (unused) |
| (unused) | (unused) | **Option Group** |
| **Option Name** | (unused) | (unused) |
### Matrix
This is the location of the key in the keyboard matrix. It should be two whole numbers separated by a comma representing row and column. For example, the top left location of the keyboard is usually `0,0`, to the right of that key is `0,1`, below that key is `1,0`, and so on.
### Keycode
This is the default keycode for layer 0. You should supply this now even if you won't use the generated keymap because QMK will make greater use of it in the future.
### Option Group
This identifies what Layout Options (if any) this key is part of. If this value is empty the key is not part of any Layout Options.
The value is two whole numbers separated by a comma. The first number is the Layout Option Group Number, which identifies the specific Layout Option this key is associated with. The second number is the specific Layout Option Choice this key is associated with.
### Option Name
This identifies the name for each Option Group Choice. This will be used in the future to automatically build layouts from each option. All keys with the same Option Group identifier should have the same Option Name.
## Running qmk kle2json
Once you have built your KLE layout you are ready to convert it to `info.json`. Start by clicking `Sign In with GitHub` on Keyboard Layout Editor. Once you have signed in you can click `Save` to save your KLE. Once it's saved grab the URL from the bar, it should end end in `/#/gists/<long_number>`.
To use the reference layout as an example, I could update the keyboard `clueboard/60` from that KLE using this command:
It will fetch the KLE, generate a new `LAYOUT_60_ansi`, and either add a new layout or change the existing layout to match.
## Adding more layouts
At the current time QMK only supports the base layout. Layout Options are allowed for VIA compatibility purposes and will be implemented in QMK at a later date. For now we recommend you create a KLE for each layout you want to support in QMK and call `qmk kle2json` once per layout to set up the info.json.
You will need to install MSYS2, Git, and the QMK CLI.
### ** Windows **
Follow the installation instructions on the [MSYS2 homepage](http://www.msys2.org). Close any open MSYS terminals and open a new MinGW 64-bit terminal. **NOTE: This is *not* the same as the MSYS terminal that opens when installation is completed.**
#### Prerequisites
Then, run the following:
You will need to install MSYS2, Git and Python. Follow the installation instructions on https://www.msys2.org.
Once MSYS2 is installed, close any open MSYS terminals and open a new MinGW 64-bit terminal.
!> **NOTE:** The MinGW 64-bit terminal is *not* the same as the MSYS terminal that opens when installation is completed. Your prompt should say "MINGW64" in purple text, rather than "MSYS". See [this page](https://www.msys2.org/wiki/MSYS2-introduction/#subsystems) for more information on the differences.
`python3 -m pip install --user qmk` (on Arch-based distros you can also try the `qmk` package from AUR (**note**: it's maintained by a community member): `yay -S qmk`)
Install the QMK CLI by running:
### FreeBSD
python3 -m pip install --user qmk
#### Community Packages
These packages are maintained by community members, so may not be up to date or completely functional. If you encounter problems, please report them to their respective maintainers.
On Arch-based distros you can install the CLI from the official repositories (NOTE: at the time of writing this package marks some dependencies as optional that should not be):
sudo pacman -S qmk
You can also try the `qmk` package from AUR:
yay -S qmk
### ** FreeBSD **
#### Prerequisites
You will need to install Git and Python. It's possible that you already have both, but if not, run the following commands to install them:
pkg install git python3
Make sure that `$HOME/.local/bin` is added to your `$PATH` so that locally install Python packages are available.
Make sure that `$HOME/.local/bin` is added to your `$PATH` so that locally installed Python packages are available.
Once installed, you can install QMK CLI:
#### Installation
Install the QMK CLI by running:
python3 -m pip install --user qmk
<!-- tabs:end -->
## 3. Run QMK Setup :id=set-up-qmk
<!-- tabs:start -->
### ** Windows **
After installing QMK you can set it up with this command:
qmk setup
In most situations you will want to answer Yes to all of the prompts.
In most situations you will want to answer `y` to all of the prompts.
### ** macOS **
After installing QMK you can set it up with this command:
qmk setup
In most situations you will want to answer `y` to all of the prompts.
### ** Linux/WSL **
After installing QMK you can set it up with this command:
qmk setup
In most situations you will want to answer `y` to all of the prompts.
?>**Note on Debian, Ubuntu and their derivatives**:
It's possible, that you will get an error saying something like: `bash: qmk: command not found`.
@@ -97,12 +157,22 @@ This is due to a [bug](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=839155)
Sadly, Ubuntu reitroduced this bug and is [yet to fix it](https://bugs.launchpad.net/ubuntu/+source/bash/+bug/1588562).
Luckily, the fix is easy. Run this as your user: `echo 'PATH="$HOME/.local/bin:$PATH"' >> $HOME/.bashrc && source $HOME/.bashrc`
### ** FreeBSD **
After installing QMK you can set it up with this command:
qmk setup
In most situations you will want to answer `y` to all of the prompts.
?>**Note on FreeBSD**:
It is suggested to run `qmk setup` as a non-`root` user to start with, but this will likely identify packages that need to be installed to your
base system using `pkg`. However the installation will probably fail when run as an unprivileged user.
To manually install the base dependencies, run `./util/qmk_install.sh` either as `root`, or with `sudo`.
Once that completes, re-run `qmk setup` to complete the setup and checks.
<!-- tabs:end -->
?> If you already know [how to use GitHub](getting_started_github.md), we recommend that you create your own fork and use `qmk setup <github_username>/qmk_firmware` to clone your personal fork. If you don't know what that means you can safely ignore this message.
@@ -36,7 +36,9 @@ Prefer a terminal based solution? [hid_listen](https://www.pjrc.com/teensy/hid_l
Sometimes it's useful to print debug messages from within your [custom code](custom_quantum_functions.md). Doing so is pretty simple. Start by including `print.h` at the top of your file:
#include<print.h>
```c
#include"print.h"
```
After that you can use a few different print functions:
@@ -19,8 +19,20 @@ The `info.json` file is a JSON formatted dictionary with the following keys avai
* Width of the board in Key Units
*`height`
* Height of the board in Key Units
*`debounce`
* How many milliseconds (ms) to wait for debounce to happen. (Default: 5)
*`diode_direction`
* The direction diodes face. See [`DIRECT_PINS` in the hardware configuration](https://docs.qmk.fm/#/config_options?id=hardware-options) for more details.
*`layout_aliases`
* A dictionary containing layout aliases. The key is the alias and the value is a layout in `layouts` it maps to.
*`layouts`
* Physical Layout representations. See the next section for more detail.
* Physical Layout representations. See the [Layout Format](#layout_format) section for more detail.
*`matrix_pins`
* Configure the pins corresponding to columns and rows, or direct pins. See [Matrix Pins](#matrix_pins) for more detail.
*`rgblight`
* Configure the [RGB Lighting feature](feature_rgblight.md). See the [RGB Lighting](#rgb_lighting) section for more detail.
*`usb`
* Configure USB VID, PID, and other parameters. See [USB](#USB) for more detail.
### Layout Format
@@ -49,25 +61,128 @@ All key positions and rotations are specified in relation to the top-left corner
* The width of the key, in Key Units. Ignored if `ks` is provided. Default: `1`
*`h`
* The height of the key, in Key Units. Ignored if `ks` is provided. Default: `1`
*`r`
* How many degrees clockwise to rotate the key.
*`rx`
* The absolute position of the point to rotate the key around in the horizontal axis. Default: `x`
*`ry`
* The absolute position of the point to rotate the key around in the vertical axis. Default: `y`
*`ks`
* Key Shape: define a polygon by providing a list of points, in Key Units.
* **Important**: These are relative to the top-left of the key, not absolute.
* Example ISO Enter: `[ [0,0], [1.5,0], [1.5,2], [0.25,2], [0.25,1], [0,1], [0,0] ]`
*`label`
* What to name this position in the matrix.
* This should usually be the same name as what is silkscreened on the PCB at this location.
* This should usually correspond to the keycode for the first layer of the default keymap.
*`matrix`
* A 2 item list describing the row and column location for this key.
## How is the Metadata Exposed?
### Matrix Pins
This metadata is primarily used in two ways:
Currently QMK supports connecting switches either directly to GPIO pins or via a switch matrix. At this time you can not combine these, they are mutually exclusive.
* To allow web-based configurators to dynamically generate UI
* To support the new `make keyboard:keymap:qmk` target, which bundles this metadata up with the firmware to allow QMK Toolbox to be smarter.
#### Switch Matrix
Configurator authors can see the [QMK Compiler](https://docs.api.qmk.fm/using-the-api) docs for more information on using the JSON API.
Most keyboards use a switch matrix to connect keyswitches to the MCU. You can define your pin columns and rows to configure your switch matrix. When defining switch matrices you should also define your `diode_direction`.
Example:
```json
{
"diode_direction":"COL2ROW",
"matrix_pins":{
"cols":["F4","E6","B1","D2"],
"rows":["B0","D3","D5","D4","D6"]
}
}
```
#### Direct Pins
Direct pins are when you connect one side of the switch to GND and the other side to a GPIO pin on your MCU. No diode is required, but there is a 1:1 mapping between switches and pins.
When specifying direct pins you need to arrange them in nested arrays. The outer array consists of rows, while the inner array is a text string corresponding to a pin. You can use `null` to indicate an empty spot in the matrix.
Example:
```json
{
"matrix_pins":{
"direct":[
["A10","A9"],
["A0","B8"],
[null,"B11"],
["B9","A8"],
["A7","B1"],
[null,"B2"]
]
}
```
### RGB Lighting
This section controls the legacy WS2812 support in QMK. This should not be confused with the RGB Matrix feature, which can be used to control both WS2812 and ISSI RGB LEDs.
The following items can be set. Not every value is required.
*`led_count`
* The number of LEDs in your strip
*`pin`
* The GPIO pin that your LED strip is connected to
*`animations`
* A dictionary that lists enabled and disabled animations. See [RGB Light Animations](#rgb_light_animations) below.
*`sleep`
* Set to `true` to enable lighting during host sleep
*`split`
* Set to `true` to enable synchronization functionality between split halves
*`split_count`
* For split keyboards, the number of LEDs on each side
*`max_brightness`
* (0-255) What the maxmimum brightness (value) level is
*`hue_steps`
* How many steps of adjustment to have for hue
*`saturation_steps`
* How many steps of adjustment to have for saturation
*`brightness_steps`
* How many steps of adjustment to have for brightness (value)
Example:
```json
{
"rgblight":{
"led_count":4,
"pin":"F6",
"hue_steps":10,
"saturation_steps":17,
"brightness_steps":17,
"animations":{
"all":true
}
}
}
```
#### RGB Light Animations
The following animations can be enabled:
| Key | Description |
|-----|-------------|
| `all` | Enable all additional animation modes. |
@@ -28,6 +28,17 @@ The default setting is 280 µs, which should work for most cases, but this can b
#define WS2812_TRST_US 80
```
#### Byte Order
Some variants of the WS2812 may have their color components in a different physical or logical order. For example, the WS2812B-2020 has physically swapped red and green LEDs, which causes the wrong color to be displayed, because the default order of the bytes sent over the wire is defined as GRB.
In this case, you can change the byte order by defining `WS2812_BYTE_ORDER` as one of the following values:
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.