* Initial attempt at allowing keyboards to indicate what features they do not support
* try to use a for loop instead
* Update disable_features.mk
Co-authored-by: Drashna Jaelre <drashna@live.com>
* add a few more features
* remove my test fixture
* disable things that make all:all suggested"
Co-authored-by: Zach White <skullydazed@users.noreply.github.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
* at90usb162 support
* fix missing bracket
* Apply suggestions from code review
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
* Add support for 8 buttons to mouse report
This includes support for 8 buttons in mousekeys. However, this does move the keys around due to the fact that the last mousekey keycode is already 0xFF, so any past that would not work with register_code and the like, breaking them for tap hold keys, encoders, and other features.
* Update mouse key docs
* Add changes based on feedback
* Fix VUSB report size comment
Because drashna red gud
* Fix typo in action.c
* Fix IS_MOUSE_BUTTON check
* Change start range for mousekeys so that the end is 0xFF properly
* condense mousekeys check
* First version of keymap
* cleaned up code, made some tweaks, added readme
* extended oled timeout
* resolved final issues, all features functional
* added some leader-key combos
* added missing RGB keys to layout diagram
* removed lines for older elite-c v3
* make filename lowercase
* add old update interval
* fix spacing
* Initial support for Durgod K320 with BootMagic Lite
- Adding missing files
- Add Unicode Map Support & new user keymap
- Remove personalized features from Default keymap
- Added Unicode Map to both Default and kuenhlee keymap.c
- Updated readme.md
- Added additional Fn Shortcut keys
* Additional support for Durgod K320
- Simplifying default keymap
- Renaming durgod_k320 => durgod/k320
- Removing copy of ST_NUCLEO64_F070RB from K320. Replacing with local board.h
- Adding Mac keyboard layout for K320 as alternative via Fn+F12
- Implementing Windows Key lock on K320
- Cleaning up duplicated core functionality
- Adding default_toggle_mac_windows keymap with:
- Ability to toggle between Windows and MacOS layout
- Mac Media Lock functionality.
* Updating K320 keymap readme
Co-authored-by: kuenhlee <eos.camera.lee@gmail.com>
* Knobgoblin keyboard initial commit
New macropad initial commit. Keyboard and keymap
* corrected bracket and layout name
* attempting info file fix again
* info file line 33 hanging comma fix
* Update keyboards/knobgoblin/config.h
per fauxpark review
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/knobgoblin/readme.md
per fauxpark review
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/knobgoblin/readme.md
per fauxpark review
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
The LED anodes of the pockettype are connected to the bus voltage when a
pro micro is used, but other controllers like the Elite-C (v4) connect this
pin to GPIO B0. This means that LEDs do not work by default for those
controllers.
This commit implements a fix for that by setting the B0 pin high.
* Add RGB Matrix support for Mark 65 keyboard
* Update drive LED count
* Removed unnecessary define line
* Corrected typo
Co-authored-by: filterpaper <filterpaper@localhost>
* initial commit Dawn keyboard
* fixing some matrix
* final tweaks to keymaps and info.json layout
* fix info.json missing delimiter
* missing elements in info.json layout, resolved through lint
* fixed missing link image in readme
* Update keyboards/mechstudio/dawn/readme.md
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: David <david@tarpit.be>
Co-authored-by: Ryan <fauxpark@gmail.com>
* Fix minor typo in "General FAQ"
"want to do brand it with QMK" -> "want to brand it with QMK"
* Reword some of "Debugging FAQ" & "Miscellaneous FAQ".
Mostly grammatical wording of some parts and missing capitalization
* 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.
* Initial commit of branch specifically for implementing the more complicated fancy keymap as I expect the main PR to be approved first.
* testing bongo cat out
* Progress with intended OLED behavior. Needs to be cleaned up still.
* Cleaned up bongocat and added WPM display on it.
* Almost there. Need to rethink the layer checking in encoder.
* Fixing all the merge issues I didn't check before doing the last commit. Learn from my mistakes, check your commits.
* Fixed and updated fancy firmware and bongocat firmware.
* Updating license year since I will be doing a PR anyway.
* Update keyboards/mechwild/mercutio/keymaps/fancy/keymap.c
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
* split config.h for each variant
* split rules.mk for each variant
* split source and header files for each variant
* move keymaps to the appropriate variant
* update keyboard readme
* update keymap readmes
* differentiate Staggered and Ortho USB Device Strings
* clean up formatting in info.json
* split info.json files for each variant
* break up the info.json for readability
* correct key positioning and board dimensions
* correct key object sequences
* add weak encoder function to keyboard level
Allows Configurator-compiled firmware to have encoder functionality.
* add variant-specific readme files and bootloader instructions
* QMK Configurator layout support for Pinky
3-row and 4-row versions
* refactor default keymaps
- use an enum for layer names
- remove redundant definitions
- qmk cformat pass
- modify pinky/4 via keymap to mirror pinky/4 default functionality
* remove LAYOUT_kc macros
This usage is not endorsed by QMK as it has been found to be confusing to novice users.
* add VIA support to pinky/3
* update config.h files
Removes unnecessary definitions for Backlight, RGB Underglow, Magic config and MIDI.
* update main rules.mk file
Updates the rules.mk file to match the formatting of the current QMK-provided template. Removes sample bootloader comments, feature rules that are no longer included in the template, and updates the in-line comments.
* update and split keyboard readme
Updates the main readme file's formatting, adds instructions to access bootloader mode, and adds more specific readmes for each version.
* add line breaks between rows in the info.json files
* rename layout macros for Community Layout forward compatibility
The layouts of the Pinky3 and Pinky4 aren't currently Community Layouts, but support for them could be added with a rules.mk edit should the layouts be added to QMK.
* Update other keyboards for rgb matrix changes
* Remove customized bootmagic code
* Fix corne layout compilation error
* Fix compiler errors with all keymaps
* Add Simple Visualizer for ergodox infinity
* Fix compile issue with Corne
* Fix keymap stuff
* Add alias for mouse layer
* Add Halmak Keyboard layout
* Updates for Kyria
* Add support for oled interval
* Change RGB stuff
[CHANGE] Fix coexistence issues
* Fix rgb_stuff
* Add custom ploopyco mouse keymap
* Decrease default dwell time
* Updates based on last breaking changes update
* Disable command on dactyl
* Update ergodox to use proper commands for rgb matrix indicators
* Update all rgb matrix indicator functions
* Update rules for dactyl-manuform
* Reduce wait time for mouse layer off event
* Add more info to logger
* Add wrappers for get_tapping term
* Move version.h include into only file that actually needs it
* Update rgb sleep stuff
* Update key print function
* Change DM keymap settings
* Change pin for DM Manuform
* Add Proton C stuff for Corne keymap
* more arm corne tinkering
* Even more arm stuff for corne
* Cleanup corne stuff
* redirect default keymap to drashna
because I am a very bad man
* change corne rgb priority
* Update tractyl manuform to not conflict
* Add more secret stuff
* more dactyl tweaks
* Add more options to split transport
* Changes of oled support
* Change split settings
* Improve keylogger formatting more
* tweak oled stuff
* Oled and such tweaks
* Reduce brightness due to leds
* Decrease brightness more
* Only run layer code if master
* info.json: human-friendly formatting
* info.json: update key object labels
Some of the characters in the original file don't play nicely with `qmk info -l` on Windows.
* info.json: correct key object order
* exclude 'helix/rev3_4rows' from CI
Since helix/rev3_4rows is almost the same as helix/rev3_5rows, there is no point in checking with travis-ci.
* include 'helix/pico/back' to CI
helix pico and helix rev2 are still available. I would like to check both by travis-ci, but here I will add a check only for helix pico.
* first pass
* firmware firmware?
* Split out debug + testing docs
* tidy up duplicate css
* Add extra info to debug example
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
* add support for bigknob
Add support for bigknob macropad
* corrected files
* Apply suggestions from code review
Co-authored-by: Joel Challis <git@zvecr.com>
* corrected tap dance
* Update config.h
* correct image link
* Apply suggestions from code review
Co-authored-by: Ryan <fauxpark@gmail.com>
* added GPL headers
* Update readme.md
* update rules to disable tap dance
* remove tap dance
* Update rules.mk
trying to get to pass travis test
* Update rules.mk
remove tap dance
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
With MAJOR_MODE (= major scale), keys in one octave is not 12 but 7.
To solve this problem, change divisor number from 12 to 7 at %(Modulo) and /(Division).
NOTE:
The last 12 represents half step keys in one octave for pitch calculation.
* Add keyboard: Mesa TKL
* Fix image link in readme
* Update keyboards/mesa/mesa_tkl/mesa_tkl.c
Co-authored-by: Joel Challis <git@zvecr.com>
* Update keyboards/mesa/mesa_tkl/rules.mk
White space changes
Co-authored-by: Ryan <fauxpark@gmail.com>
* Replace tabs with spaces per C coding conventions.
* Update keyboards/mesa/mesa_tkl/readme.md
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
* new repo: create cmm.studio folder, add saka qmk firmware
new folder for cmm.studio line up keyboard
added saka68 keyboard qmk and via firmware support
* Update keyboards/cmm.studio/saka68/config.h
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/cmm.studio/saka68/rules.mk
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/cmm.studio/saka68/keymaps/via/rules.mk
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/cmm.studio/saka68/config.h
Co-authored-by: Ryan <fauxpark@gmail.com>
* fix on keymap, readme
fix on keymap, readme
* Update keyboards/cmm.studio/saka68/readme.md
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/cmm.studio/saka68/keymaps/default/keymap.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* update vendor name with _ instead of .
update vendor name with _ instead of .
* Update readme.md
change the make format
* Update keyboards/cmm_studio/saka68/keymaps/default/keymap.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* deleted some files from cmm.studio, changes to cmm_studio
deleted some files from cmm.studio, changes to cmm_studio
* Update readme.md
make command changed
* Update keyboards/cmm_studio/saka68/readme.md
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update readme.md
added pic for pcb
* Update readme.md
* Update readme.md
* Update readme.md
* Update readme.md
* Update readme.md
* Update keyboards/cmm_studio/saka68/config.h
tested and does work now. deleting these lines
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update readme.md
* Update readme.md
* Update readme.md
* Update readme.md
* Update readme.md
* Update readme.md
* Update readme.md
* Update keyboards/cmm_studio/saka68/readme.md
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update readme.md
added use physical reset button instruction
* change to the cmm saka folder
making the changes to cmm saka firmware
seperated solder version firmware and hotswap version firmware
* Update readme.md
* Update readme.md
* Update readme.md
* Update readme.md
* Update readme.md
* Update readme.md
* Update readme.md
* Update readme.md
* Update readme.md
* Update readme.md
* change to the cmm saka hotswap folder
Co-authored-by: Ryan <fauxpark@gmail.com>
* feat(kyria): new keymaps with KC_LGUI on another key
add also possibility to scroll with encoder and finally play with olded
screen to replace default kyria logo by Magic the Gathering mana color
icon.
* Update keyboards/kyria/keymaps/benji/keymap.c
Co-authored-by: Drashna Jaelre <drashna@live.com>
* add magic logo
* add mouse button
Co-authored-by: Drashna Jaelre <drashna@live.com>
* add support for --clean to compile and flash
* compile standalone JSON keymaps without polluting the tree
* Add support for passing environment vars to make
* make flake8 happy
* document changes to qmk compile and flash
* add -e support to json export compiling
* Fix python 3.6
* honor $MAKE
* add support for parallel builds
* add byte order bgr for ws2812
* update docs for driver change
* Update ws2812_driver.md
* Update docs/ws2812_driver.md
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
* WIP working on new keymap
* tweaking keymap
* updated keymap
* cleaned up a little bit
* New preonic keymap
* my preonic keymap
* added mac layout
* preonic map update
* cleaning up old repo
* cleaning up to match upstream
* more cleanup
* removing old keymaps
* cleaned up commit history for bm60poker via support
* cleaned up via keymap
* fixed copywrite
Co-authored-by: Peter Peterson <ppeterson@noao.edu>
* 1st trial on 1_2
* remove keymaps/default/km_default.c
* fix cool836A.h
* fix keymap.c into 3x12
* rename to cool836a (not 'A')
* remove cool836A (not a)
* remove backslashes at keymap.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* update keymap.c (add licence)
* Update keyboards/cool836a/keymaps/default/readme.md
removed "<br>" in line 2
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/cool836a/keymaps/default/readme.md
remove "<br>" in line 4
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/cool836a/keymaps/default/readme.md
remove "<br>" in line 8
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/cool836a/cool836a.h
remove cool836a.h line 30:36
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
* Initialize domnantas layout
* Update oled status display
* Layout and oled changes
* Updates to keymap
* Add F keys and page moves
* Add media keys, rearrange home and end
* Add instructions
* Swap backspace and enter
* Remove unnecesary Enter keymap
* - Change display timeout
- Update minus sign to work on both English and Lithuanian layouts
* Add copyright header
* Replace static strings with PSTR
* Update keyboards/lily58/keymaps/domnantas/keymap.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/lily58/keymaps/domnantas/keymap.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/lily58/keymaps/domnantas/keymap.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/lily58/keymaps/domnantas/keymap.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/lily58/keymaps/domnantas/rules.mk
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
* Add VIA support
made changes to add VIA support for the CA66
- added VIA keymap.c, readme.md, rules.mk
- changes made to main rules.mk to keep firmware size down (mousekey_enable = no; backlight_enable = no)
- changed VENDOR_ID in config.h from 0xFEED to 0x504B (PK)
* Minor changes to CA66 for VIA support
edited keymap info
enabled backlight
* Update vendorID
Change to vendorID to remove conflict with previously chosen vendorID already in use
* Update keyboards/playkbtw/ca66/rules.mk
Co-authored-by: Joel Challis <git@zvecr.com>
* Update keyboards/playkbtw/ca66/keymaps/via/readme.md
Co-authored-by: Joel Challis <git@zvecr.com>
* Update keyboards/playkbtw/ca66/keymaps/via/keymap.c
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Joel Challis <git@zvecr.com>
* add Hub20 support
* Keymap formatting cleanup
Co-authored-by: Ryan <fauxpark@gmail.com>
* Delete bootloader_defs.h as no longer required
* Correct make / flashing example
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update rules.mk
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
* new keymap
* Update keyboards/primekb/prime_e/keymaps/gwillad/keymap.c
use a more concise pin setting method
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Adam Gwilliam <agwilliam@yaharasoftware.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
* [Keymap] own Lily58 keymap
Signed-off-by: Christian Eiden <christian@eiden.ch>
* adjustments of personal keymap
Signed-off-by: Christian Eiden <christian@eiden.ch>
* added urbanvanilla keymap
Urbanvanilla's keymap for massdrop/alt keyboard
adds in an idle timer to turn off RGB after set amount of time.
poor unsuccessful attempt at replicating a velocikey like functionality.
Grave escape is enabled on ESC.
* Update readme.md
* updating documentation
* Create readme.md
* restoring default documentation
* update with review changes implemented
removed unnecessary lines and files.
increased wait_us() parameter to 40 as was still getting chatter at 20.
removed some code for the terrible rudimentary attempt at velocikey for rgb matrix
* Update matrix.c
* Revert "Merge pull request #3 from urbanvanilla/dev_branch"
This reverts commit deb55d797a4629965c990ab507251489c578573d, reversing
changes made to ba8817356f6c0881cf7f3214f7f1ebd31febceb5.
* Update keymap.c
* added urbanvanilla keymap
Urbanvanilla's keymap for massdrop/alt keyboard
adds in an idle timer to turn off RGB after set amount of time.
poor unsuccessful attempt at replicating a velocikey like functionality.
Grave escape is enabled on ESC.
* Update readme.md
* updating documentation
* Create readme.md
* restoring default documentation
* update with review changes implemented
removed unnecessary lines and files.
increased wait_us() parameter to 40 as was still getting chatter at 20.
removed some code for the terrible rudimentary attempt at velocikey for rgb matrix
* Update matrix.c
* Revert "Merge pull request #3 from urbanvanilla/dev_branch"
This reverts commit deb55d797a4629965c990ab507251489c578573d, reversing
changes made to ba8817356f6c0881cf7f3214f7f1ebd31febceb5.
* Delete matrix.c
* Update keyboards/massdrop/alt/keymaps/urbanvanilla/config.h
Co-authored-by: Joel Challis <git@zvecr.com>
* Update keymap.c
* Update keymap.c
* Update keyboards/massdrop/alt/keymaps/urbanvanilla/keymap.c
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
* Add bongo cat animation
* Map all keys on base layer
... to make it easier to test newly built keyboards. The encoders
are optional and can be placed in different locations.
* Fix Torn in QMK configurator
This removes additional variables defined in the keymap.c file, so
that the default firmware can be compiled by the configurator.
Co-authored-by: Richard Titmuss <richardt@spotify.com>
* init
init
* Update keyboards/hp69/config.h
Co-authored-by: Joel Challis <git@zvecr.com>
* Update keyboards/hp69/keymaps/via/rules.mk
Co-authored-by: Joel Challis <git@zvecr.com>
* Update keyboards/hp69/rules.mk
Co-authored-by: Joel Challis <git@zvecr.com>
* re-added audio support
re-added audio support
* Update keyboards/hp69/readme.md
reduced the size of the default image
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/hp69/readme.md
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/hp69/info.json
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
* initial commit- copy of default
* beginnings of ergodox layout conversion
* from scratch 2020 RJH ergodox layout!
* remove extra line in keymap
* only shift to layers, led work
* Fleshed out readme
* tweak alt placement
* updated readme
* PR feedback, updated default layer
* Update keyboards/ergodox_infinity/keymaps/rjhilgefort/keymap.c
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
* fix matrix_io_delay() timing in quantum/matrix.c
* Updated comments explaining the need for matrix_io_delay() in quantum/matrix.c
* fix matrix_io_delay() timing in quantum/split_common/matrix.c
* Update quantum/matrix.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update quantum/split_common/matrix.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update quantum/matrix.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update quantum/split_common/matrix.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* add waitOutputPinValid() and wait_cpuclock() into quantum/quantum.h and tmk_core/common/wait.h
* add matrix_output_select_delay() and matrix_output_unselect_delay()
* fix quantum/matrix_common.c, tmk_core/common/matrix.h
* fix tmk_core/common/wait.h
* fix quantum/quantum.h, tmk_core/common/wait.h
* waitOutputPinValid() rename to waitInputPinDelay() in quantum/quantum.h.
* waitOutputPinValid() rename to waitInputPinDelay() in quantum/matrix_common.c
* update tmk_core/common/wait.h
* update comment in quantum/matrix.c, quantum/split_common/matrix.c
* update quantum/quantum.h: Make more margin in the GPIO_INPUT_PIN_DELAY default value.
Co-authored-by: Ryan <fauxpark@gmail.com>
* Acheron Lasgewloth: layout macro rework
Arrange the layout macro to match the assembled board.
* rename layout macro
The layout supported is equivalent to 60% ANSI with split Backspace and split Right Shift, and supports every extant switch position.
Adds community layout support.
* add LAYOUT_60_ansi support
* add Configurator data
* convert tabs to spaces in lasgweloth.h
* Allow recording of the last matrix activity time, to simplify implementation of display timeouts and the like.
* Add requested changes from code review.
* Simplify split matrix last changed.
The previous implementation generated accents in NFKD -- e.g., i
followed by fn+e would generate í, which is actually an ordinary i
followed by U+0301 COMBINING ACUTE ACCENT. Unfortunately, it turns
out that a bunch of websites and apps (especially European ones
written in languages that use these a lot) were very poorly written,
and will misparse and/or crash if presented with Unicode NFKD. They
require and expect NFKC, with characters like í (U+00ED LATIN SMALL
I WITH ACUTE) that look visually identical -- and are in fact
normalization-equivalent -- but have to be encoded differently.
The new accent implementation handles this in a very flexible way.
Many new comments added as well, as it's also clear that this is going
to need a bit more expansion before it becomes a true polyglot keymap.
Co-authored-by: Yonatan Zunger <zunger@desiderata.lan>
* rework layout macro
Rework the layout macro so it's arranged the way the hardware is.
* info.json: use debug linting
* info.json: rebuild to correct key sequence
* white-space formatting
Makes the keymap and layout macro a bit more representative of where everything is.
* Add Borsdorf
* Delete config.h
* Add basic VIA keymap
* Update default keymap
* Default now uses layout_all
* Default now has layer with reset key
* Fix missing comma in borsdorf keymap
* Update rules.mk to be less specific
* Update chibiOS files
* Update keymaps to swap GUI and Alt keys
* Delete unnecessary readme
* Update VIA keymap to match default
* Remove boilerplate from readme
* Udate Copyright message
* Remove unused key from LAYOUT_rshift
* Update borsdorf.c
Remove unnecessary boiler plate
Co-authored-by: Joel Challis <git@zvecr.com>
* Add copyright message to VIA keymap
Co-authored-by: Joel Challis <git@zvecr.com>
* Fix missing directory in readme
Co-authored-by: Joel Challis <git@zvecr.com>
* Fix incorrect rules.mk
* Update BOOTMAGIC_ENABLE to the preferred lite
Co-authored-by: Joel Challis <git@zvecr.com>
* Remove redundant description from config
Co-authored-by: Joel Challis <git@zvecr.com>
* Update keyboards/cutie_club/borsdorf/keymaps/default/keymap.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/cutie_club/borsdorf/keymaps/via/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 CK60i support
* Update README, add HAL_PWM and remove AUDIO and BLUETOOTH from rules.mk
* VIA support
* Fix VIA_ENABLE to 'yes'
* Remove CONSOLE_ENABLE from rules.mk
* attribute weak for encoder callback
* Remove KC_NO definition from default keymap
Co-authored-by: Gondolindrim <alvaro.augusto.volpato@gmail.com>
* Update feature_rgblight.md
The note is meant to let people know that this is specific to RGB Backlight and does not work with RGB Matrix based implementations.
* Update docs/feature_rgblight.md
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
* chore: pulled the latest from master
Bring my redox layout from my latest redox branch
Bring my latest user stuff from my redox branch
* Update users/danielo515/config.h
Co-authored-by: Drashna Jaelre <drashna@live.com>
* chore: some more layouts
* feat: add gaming layer (has a bug)
* chore: more gaming layout
* chore: deactivate gaming layer when switching
* chore: simplify gaming toggle
* Update .vscode/settings.json
Co-authored-by: Drashna Jaelre <drashna@live.com>
* add support for idobao id80 iso layout
* This change is required as there is a logic bug on the board that C7
(capslock) is inverted thus lowercase is with light on. Mind the ! in
the write to the pin.
* Apply suggestions from code review
All fine for me, thanks for the additional information!
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* move device information to separate config.h for id80 iso and ansi
* commit via keymap similar to default. There is a problem with mapping compiling vor via, resulting in KC_ENT residing on KC_PGDN. Switching off via support in rules.mk makes the keyboard behave fine
* change KC_BSLS to KC_NUHS as this is an iso board
Co-authored-by: Carsten <modebm@gmail.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
The pcb used for wheatfield/split75 supports ANSI and ISO layout. This
commit adds the ISO variant.
With suggestions from code review:
Co-authored-by: Drashna Jael're <drashna@live.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Create Alter folder
* Revert "Create Alter folder"
This reverts commit 361103b821.
* Added the n40_o folder
* Edited info.json, n40_o.h and rules.mk
* Edited readme as per comment
* Add Herringbone Pro, reorganize herringbone folder
* Finish encoder functionality
* Change image in readme
* Fix info.json
* Flip encoder direction
* Update keyboards/ramonimbao/herringbone/pro/config.h
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/ramonimbao/herringbone/pro/rules.mk
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/ramonimbao/herringbone/pro/rules.mk
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/ramonimbao/herringbone/pro/readme.md
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Add OLED support, split space, default folder
* Fix LAYOUT_all in info.json
* Remove WPM feature
* Add readme to top level herringbone folder
* Re-add WPM because now the OLED won't turn back on lol
* Add missing timer_read32
* Add OLED wakeup on knob use
* Update keyboards/ramonimbao/herringbone/v1/rules.mk
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/ramonimbao/herringbone/v1/rules.mk
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/ramonimbao/herringbone/pro/rules.mk
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/ramonimbao/herringbone/pro/rules.mk
Co-authored-by: Ryan <fauxpark@gmail.com>
* Add small QoL improvments for tapping
* Update keyboards/ramonimbao/herringbone/readme.md
Co-authored-by: Erovia <Erovia@users.noreply.github.com>
* Add bootloader instructions and improve LAYOUT_all a bit
* Update keyboards/ramonimbao/herringbone/pro/pro.h
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/ramonimbao/herringbone/pro/info.json
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/ramonimbao/herringbone/pro/info.json
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/ramonimbao/herringbone/pro/keymaps/iso/keymap.c
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/ramonimbao/herringbone/v1/readme.md
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>
Co-authored-by: Erovia <Erovia@users.noreply.github.com>
* noop; indent and comment cleanup
* config for rogthefrog layout
* removed encoder function as there is no encoder on this pcb
* removed unnecessary declaration
* replaced individual constants with an enum for extensibility
* removed unused enum
* Added GPL license language
* added copyright for my changes, per GPL
* noop; removed unneeded line continuations; fixed indentation
* Add oddballl v2
- add CPI options
- add scroll support
- add click-and-drag support
- PMW3360 implementation
- ADNS9800 improvements
* Set default make directory
* Update readme with PMW config
* Change bootloader
* Update unused pins on v2
* Remove diode switch
* Move bootloader selection to keyboard version level
* Change default keyboard folder to v1
* Move sensor selection to keymap
* Remove PK debounce
* Change to only send mouse report on change
* Change CPI function cpi type
* Remove EEPROM state check
* Update CPI to only change on key down
* Fix incorrect F8 in keymap
* Add v2.1 with more convenient controller pinout
* Add keyboard readmes
* Update keyboards/oddball/pmw/pmw3360_srom_0x04.h
Remove direct AVR reference
Co-authored-by: Ryan <fauxpark@gmail.com>
* Remove direct AVR reference
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Alexander Tulloh <alex@riberry.io>
Co-authored-by: Ryan <fauxpark@gmail.com>
* add support for specifying BOARD in info.json
* move BOARD from rules.mk to info.json for clueboard
* fix keyboards that do not require board
* remove out of compliance values
* use the schema to eliminate custom code
* Update docs/reference_info_json.md
Co-authored-by: Ryan <fauxpark@gmail.com>
* make flake8 happy
* bugfix
* do not overwrite make vars from json
Co-authored-by: Ryan <fauxpark@gmail.com>
* Initial commit for my Corne keyboard layout.
* Updates to Corne, etc.
Finished working on primary layout for Corne keyboard.
Cleaned up some comments for my 4x12 Ortho layout.
* Changes for crkbd layout
* Fixed the config.h to reflect using ee_hands
* Added RGB configs to crkbd/corne layout
Co-authored-by: Ian Sterling <503326@MC02YT9K9LVCF.tld>
* add support for bigknob
Add support for bigknob macropad
* corrected files
* Apply suggestions from code review
Co-authored-by: Joel Challis <git@zvecr.com>
* corrected tap dance
* Update config.h
* correct image link
* Apply suggestions from code review
Co-authored-by: Ryan <fauxpark@gmail.com>
* added GPL headers
* Update readme.md
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
* added my keymap
* Tidy up
Add readme, run clang-format, remove some comments
* Fixed some formatting issues
* Update after reading PR checklist
Add GPL header to keymap.c, remove backslash in LAYOUT macro
* Use integer constants for switch labels
* Remove unneeded code, remove F-keys from raise layer
* Use program memory for some text on OLED
* Fixed left over debug code
* tidy up config.h and rules.mk
Remove all unused defines from config.h, and remove options which are the same as the keyboard level make file. Enabled command to be able to toggle NKRO.
* Sagittarius keyboard
* Update Sagittarius keyboard
* fix
* remove info.json as it's very hard to make
* Add license and address PR comments
* Apply suggestions from code review
Co-authored-by: Joel Challis <git@zvecr.com>
* Apply suggestions from code review
Co-authored-by: Ryan <fauxpark@gmail.com>
* Add info json, update keymap
* Fix info json
* Update keymap
* Update keyboards/cannonkeys/sagittarius/info.json
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
* Initial support for Evolv75
* Fix encoder directional and layer support
* Invert knob directions
* Remove info.json and updated README
* Update keyboards/evolv/evolv.c
Update encoder_update call
Co-authored-by: Drashna Jaelre <drashna@live.com>
* Update keyboards/evolv/config.h
Remove description field from USB descriptors
Co-authored-by: Drashna Jaelre <drashna@live.com>
* Remove KC_NO define from default keymap
* Update config.h
New USB descriptor ID numbers
* Update keyboards/evolv/rules.mk
Remove words from bluetooth and audio enable comments
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/evolv/rules.mk
Enable full bootmagic
Co-authored-by: Ryan <fauxpark@gmail.com>
* Add info.json for QMK Configurator
* Edit copyright info, add VIA initial support
* Fix KC_NO seven underscores issue in keymap definitions
* Update info.json
* Update info.json
* ANSI and ISO layouts, info.json file with both
* Reorganized layouts to match info.json order
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 proper prototypes for Tap-Hold Per Key functions
* Fix handwired/tennie default keymap
* Remove unneeded references
* Fix tapping term per key check in space cadet
* Pre-emptive fix for tap dance
* Fix marksard/leftover30
* Replace hard coded tapping term with define
* 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
* 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
* 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
* 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>
* 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>
* 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>
* 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>
* 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
* 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.
* 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>
* 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
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
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.
* 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>
* 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>
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>
* 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>
* 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.
* 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
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.
* 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>
* 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
* 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
* 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
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.
* 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
* 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>
* 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
* 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
* 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
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.
* 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
* 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>
* 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
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
* 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
* `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
* 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.
* 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>
* 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>
* 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>
* 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>
* 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>
* 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>
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>
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>
* 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>
* 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
* 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
* 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>
* 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
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.
* 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>
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>
* 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>
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>
* 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>
* 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>
* 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>
* 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>
* 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
* [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
* 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
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>
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* [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
* [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
* 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>
* 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
* 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
* on behalf of VashtaNerada commiting his code to get caps lock led working on the soldered E8d E8.5
* Update keyboards/exclusive/e85/soldered/soldered.c
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Joel Challis <git@zvecr.com>
* Add VIA keymap for EVE Meteor.
* Remove bootmagic flag and add vendor/product IDs.
* Update keyboards/eve/meteor/info.json
Co-authored-by: Ryan <fauxpark@gmail.com>
* Increment EVE Vendor ID to be unique.
* Change product IDs.
Make the EVE Meteor IDs both unique and somewhat logical based on the product name.
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
* Add VID/PIDs to ErgoDox EZ
* Add VID/PIDs for Planck EZ and Glow revision
* Make names consistent
* fix typo in docs
* Move LED config back, for maximum compatibility
* Add revisions for ErgoDox EZ boards
* Fix embarassing typo
* Typooooo
Co-authored-by: Nick Brassel <nick@tzarc.org>
* Update Licensing info
* Update Moonlander default keymap to match Oryx's default
* Fix formatting based on suggestions
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Make indicator LEDs more configurable
* Update default keymap
* Handle older eeprom settings
Co-authored-by: Nick Brassel <nick@tzarc.org>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Initial support for the Keyboardio Atreus
Many thanks to noroadsleft for reviews & suggestions.
* Add QMK Configurator layout support
* Update the fn layer of the Keyboardio Atreus to the new layout.
Previously this was using the Classic Atreus layout.
* Implement noroadleft's changes from #8492
* Follow Erovia's recommendations
qmk/qmk_firmware#8492
* Correct braces
* Change correct rules.mk
* Remove comments
* Fix BOOTMAGIC_ENABLE
I had edited the wrong file earlier.
* Remove comment
* Updates rules.mk
Thank you noroadsleft.
Co-authored-by: Gergely Nagy <algernon@keyboard.io>
Co-authored-by: Phil Hagelberg <phil@hagelb.org>
* Move existing files out the way
* Convert to community layouts
* Add smk65/revf support
* Disable stuff by default
* Update IDs for via
* Align LAYOUT macros for community layouts
* Align LAYOUT macros for community layouts - Fix configurator ordering
* Update via keymap
* remove stub _kb function
* Apply suggestions from code review
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
* Add niu mini dye sub keymap
* Fix spacing
* Fix for blank spacing on layout
* Remove unused code
Co-authored-by: Joel Challis <git@zvecr.com>
* Remove audio and console settings
Co-authored-by: Joel Challis <git@zvecr.com>
* Updates rules and readme
* Add license GPL2 to keymap
Co-authored-by: Joel Challis <git@zvecr.com>
* Clean LeftyNumpad code
* Fix typo in recently renamed file
* Fix issues with keymap layout
* Initial PR Feedback fixes
* Update keyboards/handwired/leftynumpad/config.h
Co-authored-by: Joel Challis <git@zvecr.com>
* Update keyboards/handwired/leftynumpad/config.h
Co-authored-by: Joel Challis <git@zvecr.com>
* Apply suggestions from code review
Co-authored-by: Joel Challis <git@zvecr.com>
* Apply suggestions from code review
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
* Add fixes based on PR feedback
* Update keyboards/handwired/leftynumpad/readme.md
Co-authored-by: Ryan <fauxpark@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>
* add maja capslock indicator
add maja capslock indicator
* Update keyboards/kbdfans/maja/maja.c
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
* Basic keymap parsing finally works
* Add 'keymap.json' creation to the qmk.keymap module
* Add tests and fix formatting
* Fix/exclude flake8 errors
* Convert keymap.c to valid keymap.json
* Fix some errors
* Add tests
* Finalize keymap.json creation, add json template
* Add docs
* Move pygments to the standard requirements
* Add support for nameless layers, fix tests
* Fix things after rebase
* Add missing 'keymap' value.
* Fix missing layer numbers from advanced keycodes
Buckwich noticed that if the advanced keycode / layer toggling key
contains a number, it goes missing.
Now we properly handle them.
Thx for noticing!
* Apply suggestions from code review
* fixup tests
Co-authored-by: Zach White <skullydazed@drpepper.org>
Co-authored-by: skullY <skullydazed@gmail.com>
* Improve LAYOUT macro searching
* Apply suggestions from code review
Co-authored-by: Zach White <skullydazed@users.noreply.github.com>
* Adjust signature
* Try to copy the makefile's handling of DEFAULT_FOLDER
* Move it further up, into `info_json()`
* Move it even further up so that keyboard_folder is correct
* Update lib/python/qmk/info.py
Co-authored-by: Zach White <skullydazed@drpepper.org>
* Update lib/python/qmk/info.py
Co-authored-by: Zach White <skullydazed@drpepper.org>
Co-authored-by: Zach White <skullydazed@users.noreply.github.com>
Co-authored-by: Zach White <skullydazed@drpepper.org>
* Move my custom functions and keymaps to userspace to be able to add the STM32F411 variant of my keyboard with mostly the same functionality
* Move keymaps to community layouts
* Remove keymaps from userspace readme.md
Co-authored-by: Janos Daniel Reibl <janos.daniel.reibl@protonmail.com>
* add support for ymd75 rev3
* Update keyboards/ymd75/rev3/rules.mk
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/ymd75/rev3/rules.mk
Co-authored-by: Ryan <fauxpark@gmail.com>
* remove DESCRIPTION
* only apply offset for rev3
Co-authored-by: Ryan <fauxpark@gmail.com>
* Created folder structure and blank files
* Update the yugo_m initial blank files
* Add yugo_m default keymap
* Update yugo_m info.json
* Fix yugo_m keymap.c
* keymap.c update
* Changed subfolder name
* File names
* Fixed lock LEDs problem
* Returned old subfolder name; LEDs fix
* Activated anti-ghosting feature in config.h
* Update readme.md
* Changed LAYOUT to LAYOUT_all
* Updated keymap.c
* corrected LAYOUT to LAYOUT_all in info.json
* Rewritten readme.md according to the template
* Removed backslashes from keymap.c
* Fixed readme.md
* Fixed readme.md again
* Tidying up readme.md
* Tidying up comments and readme.md
* Removed a line from rules.mk
* Update keyboards/yugo_m/model_m_101/model_m_101.h
Co-authored-by: Joel Challis <git@zvecr.com>
* Removed chconf, halconf, mcuconf
* Updated LED control
* Update keyboards/yugo_m/model_m_101/rules.mk
Co-authored-by: Joel Challis <git@zvecr.com>
* Update keyboards/yugo_m/model_m_101/config.h
Co-authored-by: Joel Challis <git@zvecr.com>
* Update keyboards/yugo_m/model_m_101/config.h
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/yugo_m/model_m_101/config.h
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/yugo_m/model_m_101/model_m_101.c
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/yugo_m/readme.md
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Updated readme.md, there was an outdated info
* Update keyboards/yugo_m/model_m_101/keymaps/default/keymap.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/yugo_m/model_m_101/keymaps/default/keymap.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/yugo_m/model_m_101/model_m_101.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/yugo_m/model_m_101/model_m_101.c
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Nidzo Tomic <tomicn8@hotmail.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>
* First pass at manuform layout.
* Updates from actual usage on my board. Fixed a couple of bugs, added a stormlight quote randomizer.
* Use a 32-bit timer that can actually hit 5 minutes.
* Some updates after a day of usage:
* Turn off WPM. It's too inaccurate and takes up a decent amount of space that can be devoted to quotes.
* Turn off the OLEDs after 5 minutes
* Move the keys around a bit.
* Add many more quotes.
* Adjust the quotes to make room for missing and misswritten WoT quote. Adjusted the keymap slightly. Adjust the mods display to include one_shots.
* Revert osm on lgui as it makes start menu search impossible to use.
* Use LTO_ENABLE flag.
* License all of my (333fred's) keymaps as MIT.
* Update users/333fred/rgb.c
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
* Fix dirtying in oled_write_pixel()
Set the dirty bit for the block only if oled_write_pixel() actually
changed the buffer state. Without this check oled_write_pixel() could
not be used inside the oled_task_user() code using the “redraw always”
style, because the blocks touched by oled_write_pixel() would always
appear dirty, and oled_render() would not proceed beyond the first such
dirty block.
* Fix oled_write_pixel() with 90/270 degree rotation
Use oled_rotation_width instead of OLED_DISPLAY_WIDTH, so that a rotated
display would be handled correctly.
* Fix compilation with custom OLED_BLOCK_COUNT and OLED_BLOCK_SIZE
Some OLED sizes (e.g., 64×48) may require a nonstandard value of
OLED_BLOCK_COUNT. The documentation says that this value may be
redefined in config.h, but actually trying to redefine it caused a
compile error, because the macro was redefined in oled_driver.c.
Make the OLED_BLOCK_COUNT definition in oled_driver.c respect any
user override, and do the same for OLED_BLOCK_SIZE just in case.
* Fix handling of out-of-range bits in oled_dirty
If a custom OLED_BLOCK_COUNT value is specified, some bits in oled_dirty
may not correspond to existing blocks; however, if those bits are set
somewhere (e.g., by code with sets oled_dirty to ~0 or even -1),
oled_render() would try to handle them and could access memory beyond
oled_buffer and perform hardware operations with out of range values.
Prevent this by masking off unused bits in oled_render(), and also avoid
setting those bits in other functions.
* Fix potentially wrong dirtying in oled_write_char()
oled_write_char() tried to mark the position just beyond the written
character as dirty; use (OLED_FONT_WIDTH - 1) to dirty the last position
still belonging to the character instead.
* Fix `#define OLED_BLOCK_TYPE uint32_t` on AVR
Using uint32_t as OLED_BLOCK_TYPE did not work properly on AVR, because
some bit shifts were performed using 16-bit int. Add explicit casts to
OLED_BLOCK_TYPE to those shifts.
* Fix issue with data transfer of CS1_SW7 to CS18_SW7.
* Fix issue with handling of scaling register buffer's dirty flag.
* Remove unused extern declaration.
* Compaction of struct is31_led utilizing bit fields.
* Update reference_info_json.md
key_count is now an optional field because it is better to get the keycount by counting the elements in the layout array.
* Updated Japanese documentation as well
* Initializing Boardwalk layout
* rules.mk newline
* config.h newline
* qwerty num toggle -> tap-toggle
* errant K, and _LOWER momentary toggles
* Lack of autosave sucks
* Converting to HHKB layout
* TT(_NUM) added to num layer
* Final updates for Boardwalk initialization
* Final refinements
* newline
* Removal of extra includes
* Update keyboards/boardwalk/keymaps/niclake/config.h
#pragma once
* Removing comment block from rules
* Updates to my layout
* WIP working on new keymap
* tweaking keymap
* updated keymap
* cleaned up a little bit
* New preonic keymap
* my preonic keymap
* added mac layout
* preonic map update
* cleaning up old repo
* cleaning up to match upstream
* more cleanup
* removing old keymaps
* Added BM60 Poker
* Apply suggestions from code review
* Added license
* updated license
* updated license
* Fixed remaining licenses and added layout to rules
* BM60RGB ISO: fix and extend default keymap
- correctly assigns the Non-US Backslash and Hash keys
- adds Function and Navigation keys
- use KC_GESC instead of KC_ESC to make Grave accent available
* Update layout macro
The layout is the ISO equivalent of QMK's `LAYOUT_60_ansi_arrow`.
* Add via configurator support
* Remove layers to fix via
* Re-add extra via layers since it seems to work now
* Replace tabs with spaces
* Update readme.md
* first pass at fixing the key labeling
* second pass of fixing key labeling
* third pass of this key naming
* another pass of changing key naming
* another pass
* another pass
* another pass
* renamed it all
* give a good vid and pid
* add via keymap
* add on to the comments
* update readme and comments
* one more small change
* Convert ErgoDox EZ to lite matrix
* Add initial config from Dactyl config
Based on ErinCall's work to generalize the mcp i/o expander matrix code
* formatting
* Fix number of pins
* Remove unused defines
* fixed keymap placement
- online configurator keys were in the wrong location and needed to be fixed
- fixed a key being to high on the y position
* Create rules.mk
* Create keymap.c
* Update rules.mk
added VIA support
* Changed wazowski via keymap to include skipped switch
* changed the vendor ID
* Update keyboards/keebzdotnet/wazowski/config.h
* Removed VIA enable from keyboard rules.mk
* Update keyboards/keebzdotnet/wazowski/rules.mk
* Fixed wazowski via keymap build errors
* Added multi-layer support for Wazowski via keymap
* Initial Commit for Ploopyco Trackball
This is a WIP at this point. Most of it compiles, but the SPI commands are non-functioning as they come from Arduino, so don't exist in LUFA
* Convert SPI commands from arduino to LUFA
But I have no idea if this is actually correct or not
* Update keyboard readme
* Clean up ploopyco trackball
* Update readme
* Update mouse key stuff
* last minutue cleanup
* Add caveat about scroll wheel
* Fixup to code
* Additional fixup
* Add movement multiplier
* Rename folders
* mid changes
* temp
* Got it working!!!!!
* Additional cleanup of code
* Make unused pin calls more compact
* Rotation info
* Add debouncing checks
* Make everything replaceable
* Add info.json
* Include ISP flashing info
* Better handling for user customization
* Reconfigure CPI stuff
* fix issues with debug printing
* Fix tiny scroll issue
* Add and update scroll code from ploopy mouse
* Update licensing
* Add PloopyCo Mouse
* Cleanup and layout stuff
* Move common files to main folder for reuse
* Increase polling rate
* Update image for mouse
* Apply changes from code review
* Add VIA support
* Consolidate udev rules into a single file
* Update rules in doctor.py
* Simplify doctor rule checking
* Fix errors
* Add TMK "FEED" VID to list of deprecated udev rules
* A comma would be nice
* Split rules back up into bootloaders
* Link to docs page in "missing" case
* Add Pololu VID
* Be more specific about Caterina devices, and add LilyPad PID
* Wording & formatting changes in Tapping Force Hold
The Permissive Hold and the Ignore Mod Tap Interrupt sections were also modified to remove the quotes
around "tapping".
* Removed all trailing whitespaces from tap hold doc
* "it's simply really:" → "it's simple really:"
* "This allows to keep the ability" → "This allows keeping the ability"
Used the gerund form of "to keep" in the Tapping Force Hold section of the Tap Hold docs.
Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>
Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>
* edit vid and pid
* add VIA keymap
* add my name to the readme
* Update keyboards/gray_studio/hb85/keymaps/via/config.h
* we have a third endpoint, no need to disable mousekeys
* Update keyboards/gray_studio/hb85/keymaps/via/keymap.c
* add license header
* Create keymap.c
* Add files via upload
* Added files for handwired 3d printed clueboard 660
* create via layout files
* added layout files for via
* updated product ID to fix id conflicts
* change product ID to fix ID conflicts.
* fixed capitalization error that was causing issues
* fixed capitalization issues.
* fix syntax errors
* Fixed syntax errors (stray punctuation)
* Compatibility fixes
* Compatibility fixes
* Compatibility fixes
* Compatibility fixes
* capitalization fixes
* Compatibility fixes
* Compatibility fixes
* Compatibility Fixes
* Compatibility fixes
* Compatibility fixes
* Compatibility changes
* upkeep, fixing typos
* Update keyboards/handwired/3dp660/config.h
Removed Description line
* Update keyboards/handwired/3dp660/rules.mk
correct bootloader
* Update keyboards/handwired/3dp660/3dp660.h
fix case sensitive typos
* Update keyboards/handwired/3dp660/keymaps/default/keymap.c
change tab indentation to space indentations.
* Update keyboards/handwired/3dp660/keymaps/via/keymap.c
change tab indentations to space indentations
* Delete 3dp660.json
This file was for VIA, and shouldn't be in this repo. I placed it here so I wouldn't misplace it in my filesystem. My apologies.
* Update info.json
change suggestions to other file said to lowercase "ansi", caused reference issues, changed all instances of "ANSI" to "ansi".
* Update keymap.c
change suggestions to other file said to lowercase "ansi", caused reference issues, changed all instances of "ANSI" to "ansi".
* Update keymap.c
more capitalization fixes
* Update keyboards/handwired/3dp660/readme.md
shortened imgur url
* Update keyboards/handwired/3dp660/rules.mk
remove extraneous comments
* Delete config.h
* Update keyboards/handwired/3dp660/rules.mk
* Update 3dp660.c
add license headers to all .c and .h files
* Update 3dp660.h
added license header to all .c and .h files.
* Update keymap.c
added license header to all .c and .h files.
* Update keymap.c
added license header to all .c and .h files.
* Update keyboards/handwired/3dp660/readme.md
Add maintainer URL
* Update keyboards/handwired/3dp660/keymaps/default/keymap.c
remove extraneous default keymap layers
* Update keyboards/handwired/3dp660/keymaps/default/rules.mk
* Update rules.mk
Moved LTO to keyboard level.
* Update rules.mk
Moved LTO to keyboard level.
* Delete rules.mk
Made obsolete by LTO move to keyboard level.
* Update keyboards/handwired/3dp660/rules.mk
capitalization errors.
* Apply suggestions from code review
Housekeeping, changing code for readability.
Adding my kbd67mkii keymap and some changes to kumo
Keymaps for kbdfans/kbd67/mkii_soldered and thevankeyboards/minivan
* Changes to minivan layout
* KBD67 keymap
* commiting my files
* add understanding_qmk.md translation
* update based on comment
* update based on comment
* update based on comment
* update based on comment
* update based on comment
* Squashing commits - adding preonic keymap
This adds a custom keymap, including numpad layer, emoji, and kamoji
key mappings.
* Removing unnecessary trailing backslash characters
* removing the unnecessary json keymap
* removing unnecessary trailing slashes from the default keymap
* switching to tap_code
* Apply suggestions from code review
This should enable a toggleable numpad
* adding license
* Stripping out FN keycodes in favor of a momentary layer
Fix configs to make the `handwired/onekey/blackpill_f401:backlight` and
`handwired/onekey/blackpill_f411:backlight` examples actually compile
and work:
- Use `PWMD5` instead of `PWMD2` for backlight, which matches the
default value of `BACKLIGHT_PAL_MODE` (AF02 for pin A0 is `TIM5_CH1`)
and does not conflict with the default value of `STM32_ST_USE_TIMER`.
- Enable `HAL_USE_PWM` in halconf.h and `STM32_PWM_USE_TIM5` in
mcuconf.h, so that `PWMD5` could be used.
* add miniMACRO5
add all nessecary files for the miniMACRO5
I have rewritten the readme, and changed the keymaps to be more simple. I have tested compiling, and everything works perfectly.
* update miniMACRO5 readme
add the make example into the readme file
* Update keyboards/minimacro5/config.h
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/minimacro5/keymaps/default/keymap.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/minimacro5/keymaps/media/keymap.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/minimacro5/keymaps/media/keymap.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/minimacro5/minimacro5.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/minimacro5/info.json
Co-authored-by: Ryan <fauxpark@gmail.com>
* Apply suggestions from code review
applied all suggestions.
Co-authored-by: Ryan <fauxpark@gmail.com>
* drashna suggestions - enum rather than define
committed enum update by drashna
Co-authored-by: Drashna Jaelre <drashna@live.com>
* update keymap.c
incorrect brackets
Co-authored-by: dezli <m@dez.li>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
* Adding preonic layout
* deleting unnecessary files
* Fixing spacing
* I need to not commit things while I'm not sober
* Update keyboards/preonic/keymaps/codecoffeecode/keymap.c
* Update keyboards/preonic/keymaps/codecoffeecode/keymap.c
* Update keyboards/preonic/keymaps/codecoffeecode/keymap.c
* Adding license header
The default keymaps don't make use of the global `keymap_config`
variable nor the `matrix_*_user()` functions. Therefore, remove them to
avoid confusion for future keymap authors.
* update "Hardware Availability"
* add a section of "How to build"
* update "Hardware Supported"
* add VIA keymaps
* add 2 layers to VIA keymaps
Co-authored-by: keyaki-namiki <28521374+keyaki-namiki@users.noreply.github.com>
* Add information to docs
- If layer z is not a higher layer than both x and y, the layer change code
does not function correctly.
* Update docs/ref_functions.md
* Update docs/ref_functions.md
* Update docs/ref_functions.md
There is no way to invoke the command feature while having just a single
physical key, and disabling that feature fixes build for keymaps like
`handwired/onekey/promicro:rgb` without resorting to LTO (the command
feature consumes more than 4900 bytes with avr-gcc 8.4.0).
* KBD67 MkII Soldered: Fix ISO blocker layout
Matrix data was wrong; KC_NUHS key did not work.
* KBD67 MkII Soldered: Add ISO blocker with Split Backspace layout
* Update config.h
adding vendor and product info so VIA will recognize it.
* Update keyboards/kingly_keys/romac_plus/config.h
thank you for this. commiting suggestion.
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
* 6.25U bottom row ISO layout for Matrix Noah
* Personal map for Matrix Noah using new 6.25U bottom row ISO
* Switch to 65_iso_blocker and add that to info.json
* Switch to 65_iso_blocker for the new layout
* Fix whitespace issues
* Output an error message if LINK_TIME_OPTIMIZATION_ENABLE is set but LTO_ENABLE is not.
* Update common.mk
Specify that LINK_TIME_OPTIMZATION_ENABLE has been renamed, not deprecated.
* initial keymap commit
* Keymap for coppertop commit
* removed define for layers/kc_no/kc_trns
* Modified keymap to remove definitions and add layer enum
* initial keymap commit
* Keymap for coppertop commit
* removed define for layers/kc_no/kc_trns
* Modified keymap to remove definitions and add layer enum
* Changed KC_NO and KC_TRNS to 7X and 7_
* Fixed spacing on keymaps
* TMO50: use layer_state_set_kb at keyboard level (#10150)
* Change TMO to use layer_state_set_kb as is customary at the keyboard level.
This also factors out `process_indicator_led` to a separate method.
* [Keymap] update dz60:mrsendyyk (#10160)
Update DZ60 Personal readme.md and keymap.c
* Update readme.md
* Update keymap.c
* Update keymap.c
* Update readme.md
* Update readme.md
* Update readme.md
* Update keymap.c
* Update readme.md
* Update
* Update readme.md
* Update keymap.c
* Update readme.md
* [Keyboard] YMDK NP21 refactor (#10181)
* [Keyboard] 1upkeyboards/1up60rgb: fix broken Enter (#10188)
The recent change to unnest macros put the enter on the wrong matrix key. On the 1uprgb, the ANSI and ISO enters share the same cell as does the ANSI and ISO backslash.
* no idea what this is
* Update keyboards/dz60/keymaps/coppertop/keymap.c
* Update keyboards/dz60/keymaps/coppertop/keymap.c
* Update keyboards/dz60/keymaps/coppertop/keymap.c
* Update keyboards/dz60/keymaps/spotpuff/keymap.c
* Update keyboards/dz60/keymaps/spotpuff/keymap.c
* Update keyboards/dz60/keymaps/spotpuff/keymap.c
* Added Trns labels to keymap comments.
* Revert "no idea what this is"
This reverts commit dd950f9eb3.
* Reverted dd950f9eb3
* fix vusb submodule
* Update keyboards/dz60/keymaps/coppertop/rules.mk
* Update keyboards/dz60/keymaps/spotpuff/rules.mk
* Update users/spotpuff/rules.mk
* Added GNU copyright license text
* [Keyboard] Convert Corne Keyboard to Split Common
* Add VIA Support
* Makes sure that ol(e)d and new OLED implementation can't coexist
* Add licensing header to files
* Add changes based on feedback from foostan
* Fixes
* add via support for boardsource/5x12
* make product id for 5x12 unique (there is already an 0x0512) by setting it to 0x5012
* un-swap the readme's for 3x4 and 5x12
* Update keyboards/boardsource/5x12/config.h
update vendor id
* Update keyboards/boardsource/5x12/keymaps/via/keymap.c
use correct number of layers for VIA
* update product id to use same pattern as others
* Update keyboards/boardsource/5x12/keymaps/via/readme.md
* Update keyboards/boardsource/5x12/keymaps/via/readme.md
* setup keyboard
* fit v1 board setting
* remove unused def and add ergodox_pretty
* add user hooks
* add ergodox_pretty to info
* apply suggestions
* use default split usb timeout
* added via keymap
* replaced PRODUCT_ID 0x1157 with PRODUCT_ID 0x2157
replaced product id to distinguish rev2 from rev1.
bakingpy gave me permission through discord chat.
* Update keyboards/keebio/viterbi/keymaps/via/keymap.c
* Update keyboards/keebio/viterbi/keymaps/via/rules.mk
* made a simplier keymap.c for via folder
Based from the default keymap, removed unnecessary codes.
* Add via keymap for Plaid-Pad
- Add VIA support for the Plaid-Pad
- Changes Vendor ID and Product ID (to follow VIA's guidelines)
* Add extra encoder pads for rev1.1
* Change Product Id from pp to PP (hex value)
* improved readme
- detailed informations about rotary encoder, bootloader and firmware
* Improved encoder informations in via keymap
* Improved encoder infos and code in default keymap
* add revision folder for rev1 and rev1.1
* change encoder assignment for defaul a via keymap
* Update keyboards/keycapsss/plaid_pad/config.h
* change revision number
* Update keyboards/keycapsss/plaid_pad/rules.mk
* Update keyboards/keycapsss/plaid_pad/rules.mk
* Update keyboards/keycapsss/plaid_pad/rules.mk
* Update keyboards/keycapsss/plaid_pad/rules.mk
* Update keyboards/keycapsss/plaid_pad/readme.md
* add license to header of *.h and *.c files
* remove the list of alternate bootloaders
- due to the pr checklist
* Update keyboards/keycapsss/plaid_pad/rules.mk
* added SQUARE.X keyboard from the iNETT Studio
* split to two sub directories
* Apply suggestions from code review
* Update keyboards/inett_studio/sqx/universal/universal.h
* Apply suggestions from code review
* update the matrix control keycodes settings
* use the offical macro to the rgb matrix control
* fixed led position issue
* Apply suggestions from code review
* removed the redundant #endif
* update default keymap
* Apply suggestions from code review
* add license header
* Add VIA support for lazydesigners\bolt
Add VIA support for lazydesigners\bolt
* Update keyboards/lazydesigners/bolt/via/rules.mk
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
* quantum/debounce: rename debouncing algorithms according to Issue 8763
This is the second attempt at implementation, with no ts_ and cy_ prefixes, since those will be implemented with macros.
* Debouncing documentation: Refactor, add some generic info, and merge into a single document
* chore: pulled the latest from master
Bring my redox layout from my latest redox branch
Bring my latest user stuff from my redox branch
* Update users/danielo515/config.h
Co-authored-by: Drashna Jaelre <drashna@live.com>
* chore: small cleanup
Co-authored-by: Drashna Jaelre <drashna@live.com>
* add reference_configurator_support.md translation
* update based on comment
* update based on comment
* update based on comment
* update based on comment
* fix link in docs/ja/feature_split_keyboard.md
* fix link in docs/ja/faq_build.md
* fix link in docs/ja/faq_general.md
* fix link in docs/ja/faq_keymap.md
* fix link in docs/ja/how_a_matrix_works.md
* fix link in docs/ja/reference_glossary.md
* [Driver] bugfix reset the scaling register flag to FALSE
* Update drivers/issi/is31fl3741.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Add CS & SW defines for ISSI3741
* Make IS31FL3741 control register update clearer
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Jumail Mundekkat <mundekkat@hotmail.com>
* Adding VIA support for sixkeyboard
* Update keyboards/sixkeyboard/keymaps/via/keymap.c
* Update keyboards/sixkeyboard/keymaps/via/keymap.c
* Update keyboards/sixkeyboard/keymaps/via/keymap.c
* Update keyboards/sixkeyboard/keymaps/via/keymap.c
* Update keymap.c
added suggested header. left my name out and changed year to 2020.
* split up the e85 into hotswap and soldered variants
* remove layout_all LAYOUT macro for hotswap pcb
* add copyright header to to all config files
* remove list of alternate bootloaders
* spruce up config file
* comply with PR check list
* Update keyboards/exclusive/e85/hotswap/info.json
* Update keyboards/exclusive/e85/hotswap/info.json
* Update keyboards/exclusive/e85/hotswap/info.json
* Update keyboards/exclusive/e85/rules.mk
* Update keyboards/exclusive/e85/config.h
* Update keyboards/exclusive/e85/hotswap/config.h
* Update keyboards/exclusive/e85/soldered/config.h
* remove LAYOUT_all in hotswap and also remove superfluous comments
* remove the soldered tsangan map
* replaced #define PRODUCT_ID 0x1157 with #define PRODUCT_ID 0x2157
replaced product id to distinguish rev2 from rev1.
bakingpy gave me permission through discord chat.
* add ref_functions.md translation
* modify internal link for ja
* update based on comment
* reflect #9892 change
* update based on comment
* update based on comment
The recent change to unnest macros put the enter on the wrong matrix key. On the 1uprgb, the ANSI and ISO enters share the same cell as does the ANSI and ISO backslash.
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.
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
#### 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.
* 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))
Moves the existing `uart.[ch]` driver to `drivers/`, and adds a ChibiOS counterpart (which may need some QA from someone more versed in the ARM side of things).
It would also be good to get some `puts()` and `gets()` implementations added, if possible. And I'm not really sure what to do with `uart_available()` on ARM.
##### Issues Fixed or Closed by This PR
*
#### Enforce memory allocator for ChibiOS builds with allocating debounce algorithms ([#11630](https://github.com/qmk/qmk_firmware/pull/11630))
Using one of the alternate debounce algorithms requires a memory allocator.
ChibiOS allows you to disable said memory allocator.
This puts some compile-time checks to enforce that the allocator has been enabled -- during testing with it set to FALSE, the keyboard would run and function correctly from a visible standpoint, but no keypresses would register. The fun part was, if the slave side had a firmware that had an allocator enabled, the master would still report keypresses on the slave, but not itself!
#### Fix up comments showing how to execute config migration ([#11621](https://github.com/qmk/qmk_firmware/pull/11621))
Looks like an older version of the migration command had a different name. Fixes up the comments as well as the generator to ensure consistency.
ChibiOS config consolidation inadvertently disabled memory allocations, so any malloc calls (such as for debounce algorithms) would fail. Typing would not function!
#### ChibiOS conf migrations... take 10 ([#11617](https://github.com/qmk/qmk_firmware/pull/11617))
Config migrations and custom board removals for the last batch of boards left outstanding in the repository.
Given that all `config.h` files are automatically injected as part of the build process, this PR removes `QMK_KEYBOARD_CONFIG_H` which only functions some of the time.
#### Adds AT90USB162 support ([#11570](https://github.com/qmk/qmk_firmware/pull/11570))
Adds support for the AT90USB162.
After my previous PR failure I hope this one is smoother. I've ran `make all:default` and there are failures with some boards but they appear to happen on develop as well. I've compiled and flashed AT90USB162, ATmega32u4 and STM32F401 boards using this branch.
I've added preliminary support into spi_master, uart and serial but I've not tested these features but the registers, bits and pins line up with the datasheet. I've been able to test the changes to backlight_avr on a couple of accessible pins with hardware pwm. I'm a little unsure about the edit I've made to the max eeprom address in dynamic_keymap.c as it doesn't make an exception for the 16u2?
The MCU has no ADCs or support for I2C. I found a [datasheet](http://ww1.microchip.com/downloads/en/AppNotes/doc8224.pdf) while creating a the first pull request stating the ATmega16u2 is functional equivalent to the AT90USB162 which lines up with the edits I've made.
I'm expecting to have missed something but hopefully not too much.
Edit:
For context this is to port existing hardware to QMK, I appreciate there's not likely going to be much call for this MCU. Any who thanks for your help and time.
##### Issues Fixed or Closed by This PR
*
#### Keep track of last matrix activity ([#11552](https://github.com/qmk/qmk_firmware/pull/11552))
Re-submission of #10730 -- there was a logic issue that only seemed to manifest on some AVR builds.
@daskygit has graciously performed the investigation on their end, as I was unable to reproduce.
This PR adds support for recording the last time matrix activity was detected.
Two new APIs have been added:
```c
uint32_tlast_matrix_activity_time(void);// Timestamp of the last matrix activity
uint32_tlast_matrix_activity_elapsed(void);// Number of milliseconds since the last matrix activity
```
These values are compatible with normal matrix scanning, as well as split_common.
Now that the integration between info.json and config.h is tighter we should define these variables in only one place. I chose to leave this in `config.h` under the principle of least surprise.
#### Process info.json rules ahead of userspace rules ([#11542](https://github.com/qmk/qmk_firmware/pull/11542))
Fixes the import order so that keyboard-level vars don't overwrite userspace.
#### ChibiOS conf migrations... take 7 ([#11529](https://github.com/qmk/qmk_firmware/pull/11529))
Config migrations for the newest batch of boards merged from `master` into `develop`.
My recent PR broke a few keyboards, this addresses the breakage.
#### Fix compiling on develop ([#11409](https://github.com/qmk/qmk_firmware/pull/11409))
A merging error led to uncompilable keyboards.
#### Refine twinkle to be smoother (use breathing curve) ([#11350](https://github.com/qmk/qmk_firmware/pull/11350))
This pull request updates the RGB Lighting "Twinkle" effect to be smoother, similar to the "Breathing" effect. To do this, the Twinkle code has been updated to use the same table that the Breathing uses (but "stretched" mathematically), and the default cycle intervals & twinkle life have been adjusted. There are also some changes to make the effect look nicer when lower brightness settings are configured.
To avoid bloat, I've done some minor refactoring so that Twinkle and Breathe can share some code. There is no significant impact on either firmware size, or on matrix scan rate. Nevertheless, since this is change to an effect that folks may have customized, I am targeting the develop branch.
#### Improved Language Specific Keycodes for US International and Extended Layouts ([#11307](https://github.com/qmk/qmk_firmware/pull/11307))
This pull request improves a corner of the Language Specific Keycodes:
- Improvement for the **US International** keyboard layout [aka _`xkb:us:intl:eng` - English (US, international with dead keys)_]
- Support for more symbols added
- Fixed some confusion between dead-key accents and standalone counterparts (`US_DGRV` vs. `US_GRV`, `US_DTIL` vs. `US_TILD`, etc.)
- Adds `sendstring_us_international.h` that will (if included) make `send_char()` / `send_string()` work correctly when the host is configured for this keyboard
- Adds support for **US Extended** keyboard layout [aka _`xkb:us:altgr-intl:eng` - English (international AltGr dead keys)_]
- Adds support in `send_char()` / `send_string()` for ASCII characters that can only be entered by typing a dead key followed by a space.
I've targeted this at the `develop` branch, because:
- The change to `send_char()` increases firmware size slightly (by about 62 bytes) for all keyboards.
- The changes in `keymap_us_international.h` make it more correct, but may break keymaps that depend on it (although I note, there doesn't seem to be anything in the `qmk/qmk_firmware` tree that uses it at present).
#### ChibiOS conf migrations... take 3 ([#11261](https://github.com/qmk/qmk_firmware/pull/11261))
Config migrations for the newest batch of boards merged from `master` into `develop`.
And moved the sync timer define to match its placement in the struct.
##### Issues Fixed or Closed by This PR
*
#### Update ADB impelemtation in TMK Core ([#11168](https://github.com/qmk/qmk_firmware/pull/11168))
The ADB protocol implementation enables the ADB-USB converter in QMK. However it was ported from TMK some time ago and not updated since then. This is what this PR does. The updated and more complete ADB implementation is needed in order to enable some features on older Apple keyborads:
- automatic detection of ISO keyboards and swapping key codes accordingly [see](https://github.com/tmk/tmk_keyboard/issues/35)
- enable right modifier keys on AEK keyboards [see](https://geekhack.org/index.php?topic=14290.msg736664#msg736664) and [this](https://deskthority.net/viewtopic.php?t=254)
I tested the changes with an Arduino Pro Micro and my AEK II and M0116 keyboards, both in ISO layout. Some testing with the ANSI versions might be needed. Also, I could not test how JIS versions of the keyboards are affected by these changes. I assume not at all, as they do not swap key codes.
<!--- Describe your changes in detail here. -->
##### Issues Fixed or Closed by This PR
*
#### Remove unused `action_get_macro()` usages in user keymaps & layouts ([#11165](https://github.com/qmk/qmk_firmware/pull/11165))
This is all the `action_get_macro()` functions that either define no macro handlers, or do but which are not referenced anywhere in the keymap as `M()` keycodes or in `fn_actions`. There are still a ton of keymaps to be converted over to `process_record_user()`.
Added a sync_timer set of apis that will keep their value in sync across split common keyboards. This helps keeps led animation effects in sync when run in split modes (RGBLIGHT_SPLIT or the upcoming RGB_MATRIX_SPLIT). This PR is targeting the development branch as this is a change to the Transport code which will require users to flash both master and slave halves.
~~Spent quite a bit of time poking at RGBLIGHT fixing the hitching of the previous attempts at a sync timer. Solved all the hitching, but it still does not stay in sync as well as I would like (when RGBLIGHT_SPLIT_NO_ANIMATION_SYNC is defined) due to how animation ticks are handled in RGBLIGHT. So while it's using the sync timer, it's not any better than what it was before. Additionally an option to disable the sync timer and fall back to normal timer is possible using the #define DISABLE_SYNC_TIMER~~
All hitching for RGBLIGHT with sync_timer has been fixed. Additionally RGBLIGHT now stays in sync with RGBLIGHT_SPLIT_NO_ANIMATION_SYNC defined Only remaining issue: boot / startup time hitching causes the animations to start out of sync. So there needs to be an initial sync event to get them lined up. RGBLIGHT_SPLIT_NO_ANIMATION_SYNC not defined still fixes this.
Note: In testing, this was used in conjunction with https://github.com/qmk/qmk_firmware/pull/10996
ChibiOS configuration files are used in order to enable or disable access to certain subsystems in order to provide support for things such as audio or I2C/SPI -- as per standard Proton-C. In the past, Proton-C has provided a "config-less" setup, which provided these configuration files and turned on all the required subsystems in order to support them.
These configuration files were moved to a common area, and effectively enable subsystems like SPI, PWM or DAC, regardless of whether they're targeting F303, with or without a Proton-C.
This PR modifies the way F303's are built, allowing for a build target of a board called `QMK_PROTON_C` -- this contains the usual fully-fledged configurations, and disables the majority of the subsystems on the `GENERIC_STM32_F303XC` board.
All F303-targeting keyboards have been migrated across to the `QMK_PROTON_C` board in this PR, specifically to validate that SHA-1 checksums match what's currently on the `develop` branch:
#### Added rev2 & move rev1+rev2 to parent folder ([#10973](https://github.com/qmk/qmk_firmware/pull/10973))
<!--- Describe your changes in detail here. -->
Aplx6 has a new rev and a new pcb with encoder & oled display support.
Made a parent folder named aplx, renamed aplx6 to rev and added rev2 folder and files.
Edited old rev1 readme.md to correct the make: example.
Sorry for any bad coding in advance :P
##### Issues Fixed or Closed by This PR
*
#### Rewrite APA102 support ([#10894](https://github.com/qmk/qmk_firmware/pull/10894))
The APA102 source was broken by commit 16a15c1cfcbfd0feb2c2cf1383676747e2f97d73 as it did not include the quantum header. This PR 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.
Additionally, these changes expose the global LED brightness parameter of the APA102. Brightness values are configurable through `APA102_DEFAULT_BRIGHTNESS` and `APA102_MAX_BRIGHTNESS`.
Question: Since it is using the QMK macros, does this still belong in under `drivers/avr`?
##### Issues Fixed or Closed by This PR
*#10026
#### Configure keyboard matrix from info.json ([#10817](https://github.com/qmk/qmk_firmware/pull/10817))
This PR will generate `#define`'s based on information found in info.json. This is a big step towards making QMK easier to work with for non-programmers, and making it easier for collaborators to maintain a large number of keyboards using automated tooling.
#### Add support for 8 buttons to mouse report ([#10807](https://github.com/qmk/qmk_firmware/pull/10807))
#### Keep track of last matrix activity ([#10730](https://github.com/qmk/qmk_firmware/pull/10730))
This PR adds support for recording the last time matrix activity was detected.
Two new APIs have been added:
```c
uint32_tlast_matrix_activity_time(void);// Timestamp of the last matrix activity
uint32_tlast_matrix_activity_elapsed(void);// Number of milliseconds since the last matrix activity
```
These values are compatible with normal matrix scanning, as well as split_common.
#### Moved s7_elephant and bear65 into 1 folder ([#10528](https://github.com/qmk/qmk_firmware/pull/10528))
<!--- Describe your changes in detail here. -->
The 2 boards are now moved into the folder jacky_studio/
I have checked with Jacky, and he is ok with this naming convention
Performs the config migrations for ChibiOS-based boards.
This PR includes the set of keyboards which do not require board changes, or even if the board has changed the resulting binary has a sha1 match before and after the configuration file migration has occurred.
All builds have been executed with the following command:
```sh
make -j$(nproc)${KEYBOARD_BUILD}:default COMMAND_ENABLE=no SKIP_GIT=yes
```
The keyboards listed at the end do require modification, and will result in further PRs to allow for board-specific validation without holding up other merges.
#### Add modifier state to the split keyboard transport ([#10400](https://github.com/qmk/qmk_firmware/pull/10400))
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 two
or three bytes to the data transferred between split halves.
This also fixes a missing ifdef guard for BACKLIGHT_ENABLE.
#### fix matrix_io_delay() timing in quantum/matrix.c ([#9603](https://github.com/qmk/qmk_firmware/pull/9603))
~~The timing of the call to matrix_io_delay() has been changed to the appropriate time. With this change, we can reduce the number of times we call matrix_io_delay() by one.~~
**Separated `matrix_io_delay()` into the following two functions so that you can set the appropriate delay value for each.**
*`matrix_output_select_delay()` - after `select_row()/select_col()`
The delay is a small number of clocks specific to the MCU.
**Added `waitInputPinDelay()` into `quantum/quantum.h`.**
On AVR's GPIO and ARM's GPIO, the input signal changes need some clock time to be read into the input pins.
The `waitInputPinDelay()` will wait the necessary time. The wait time is set to `GPIO_INPUT_PIN_DELAY` in units of the clock.
If `GPIO_INPUT_PIN_DELAY` is not set, the following values are used.
* AVR
The datasheets for ATmega32u4/16u4, ATmega32u2/16u2, ATmega328p, AT90usb646/1286, etc. say that a delay of one clock is required after a change in the input signal. Therefore, the default value of GPIO_INPUT_PIN_DELAY can be set to 1, but we'll set it to 2 to allow for some leeway.
* ARM-based MCUs
For GPIOs on ARM-based MCUs, the input pins are sampled by the clock of the bus to which the GPIO is connected.
The connected buses differ depending on the various series of MCUs.
Also, since the CPU instruction execution clock and GPIO bus clock can vary depending on the MCU GPIO bus configuration and MCU internal register settings, the optimal delay value cannot be determined. Therefore, GPIO_INPUT_PIN_DELAY defaults to a rather large value of 0.25 microseconds.
#### gcc 10 compatibility for Drop alt ([#9485](https://github.com/qmk/qmk_firmware/pull/9485))
##### Issues Fixed or Closed by This PR
* #9268 (This issue tracks multiple problems, this fixes part of it)
#### Implement kinetic mouse movement algorithm ([#6739](https://github.com/qmk/qmk_firmware/pull/6739))
I implemented the kinetic/quadratic mouse acceleration algorithm. The algorithm is not the one from the UHK but a newly created one that's able to compute the current speed at any given time instead of relying on a compounding mechanism that just computes the increment.
Overall, the cursor acceleration feels very similar to the UHK. However, feedback and improvements are welcome in order to make it as usable as possible.
This algorithm requires a very low `MOUSEKEY_INTERVAL` in order to produce smooth movements. What's possible highly depends on the micro processor. I did my tests on the elite-c which is pro micro compatible. It was able to deliver 125 events per second which I set as the default value if `MK_KINETIC_SPEED` is defined.
I wrote a small utility https://github.com/jceb/bin/blob/master/mouseevents that helps to measure the maximum number of mouse events that can be sent by the micro processor. If you try out this algorithm it should help find the right setting for `MOUSEKEY_INTERVAL`.
QMK (*Quantum Mechanical Keyboard*) is an open source community centered around developing computer input devices. The community encompasses all sorts of input devices, such as keyboards, mice, and MIDI devices. A core group of collaborators maintains [QMK Firmware](https://github.com/qmk/qmk_firmware), [QMK Configurator](https://config.qmk.fm), [QMK Toolbox](https://github.com/qmk/qmk_toolbox), [qmk.fm](https://qmk.fm), and this documentation with the help of community members like you.
## Get Started
Totally new to QMK? There are two ways to get started:
<divclass="flex-container">
*Basic: [QMK Configurator](https://config.qmk.fm)
* Just select your keyboard from the dropdown and program your keyboard.
* We have an [introductory video](https://www.youtube.com/watch?v=-imgglzDMdY) you can watch.
* There is also an overview [document you can read](newbs_building_firmware_configurator.md).
User friendly graphical interfaces, no programming knowledge required.
?> **Advanced** [Use The Source](newbs.md) <br>
More powerful, but harder to use.
</div>
## 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).
@@ -28,7 +28,7 @@ As you can see the payload describes all aspects of a keyboard necessary to crea
To compile your keymap into a firmware simply POST your JSON to the `/v1/compile` endpoint. In the following example we've placed the JSON payload into a file named `json_data`.
The QMK API provides an asynchronous API that Web and GUI tools can use to compile arbitrary keymaps for any keyboard supported by [QMK](http://qmk.fm/). The stock keymap template supports all QMK keycodes that do not require supporting C code. Keyboard maintainers can supply their own custom templates to enable more functionality.
The QMK API provides an asynchronous API that Web and GUI tools can use to compile arbitrary keymaps for any keyboard supported by [QMK](https://qmk.fm/). The stock keymap template supports all QMK keycodes that do not require supporting C code. Keyboard maintainers can supply their own custom templates to enable more functionality.
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`
@@ -201,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
@@ -247,6 +286,26 @@ 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 generate-rgb-breathe-table`
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 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.
@@ -288,4 +347,3 @@ This command runs the python test suite. If you make changes to python code you
[Clang-format](https://clang.llvm.org/docs/ClangFormat.html) is part of LLVM and can automatically format your code for you, because ain't nobody got time to do it manually. We supply a configuration file for it that applies most of the coding conventions listed above. It will only change whitespace and newlines, so you will still have to remember to include optional braces yourself.
Use the [full LLVM installer](http://llvm.org/builds/) to get clang-format on Windows, or use `sudo apt install clang-format` on Ubuntu.
Use the [full LLVM installer](https://llvm.org/builds/) to get clang-format on Windows, or use `sudo apt install clang-format` on Ubuntu.
If you run it from the command-line, pass `-style=file` as an option and it will automatically find the .clang-format configuration file in the QMK root directory.
@@ -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:
#include "config_common.h"
```c
#include"config_common.h"
```
## Hardware Options
@@ -135,6 +137,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
# 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`:
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:
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
enumlayer_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`:
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).
@@ -23,7 +23,7 @@ Please keep these things in mind:
# Project Overview
QMK is largely written in C, with specific features and parts written in C++. It targets embedded processors found in keyboards, particularly AVR ([LUFA](http://www.fourwalledcubicle.com/LUFA.php)) and ARM ([ChibiOS](http://www.chibios.com)). If you are already well versed in Arduino programming you'll find a lot of the concepts and limitations familiar. Prior experience with Arduino is not required to successfully contribute to QMK.
QMK is largely written in C, with specific features and parts written in C++. It targets embedded processors found in keyboards, particularly AVR ([LUFA](https://www.fourwalledcubicle.com/LUFA.php)) and ARM ([ChibiOS](https://www.chibios.org)). If you are already well versed in Arduino programming you'll find a lot of the concepts and limitations familiar. Prior experience with Arduino is not required to successfully contribute to QMK.
<!-- FIXME: We should include a list of resources for learning C here. -->
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
boolled_update_kb(led_tled_state){
boolres=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);
}
returnres;
}
```
### 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.
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.
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.
This page describes how QMK's data driven JSON configuration system works. It is aimed at developers who want to work on QMK itself.
## History
Historically QMK has been configured through a combination of two mechanisms- `rules.mk` and `config.h`. While this worked well when QMK was only a handful of keyboards we've grown to encompass nearly 1500 supported keyboards. That extrapolates out to 6000 configuration files under `keyboards/` alone! The freeform nature of these files and the unique patterns people have used to avoid duplication have made ongoing maintenance a challenge, and a large number of our keyboards follow patterns that are outdated and sometimes harder to understand.
We have also been working on bringing the power of QMK to people who aren't comformable with a CLI, and other projects such as VIA are working to make using QMK as easy as installing a program. These tools need information about how a keyboard is laid out or what pins and features are available so that users can take full advantage of QMK. We introduced `info.json` as a first step towards this. The QMK API is an effort to combine these 3 sources of information- `config.h`, `rules.mk`, and `info.json`- into a single source of truth that end-user tools can use.
Now we have support for generating `rules.mk` and `config.h` values from `info.json`, allowing us to have a single source of truth. This will allow us to use automated tooling to maintain keyboards saving a lot of time and maintenance work.
## Overview
On the C side of things nothing really changes. When you need to create a new rule or define you follow the same process:
1. Add it to `docs/config_options.md`
1. Set a default in the appropriate core file
1. Add your `ifdef` and/or `#ifdef` statements as needed
You will then need to add support for your new configuration to `info.json`. The basic process is:
1. Add it to the schema in `data/schemas/keyboards.jsonschema`
1. Add code to extract it from `config.h`/`rules.mk` to `lib/python/qmk/info.py`
1. Add code to generate it to one of:
*`lib/python/qmk/cli/generate/config_h.py`
*`lib/python/qmk/cli/generate/rules_mk.py`
## Adding an option to info.json
This section describes adding support for a `config.h`/`rules.mk` value to info.json.
### Add it to the schema
QMK maintains schema files in `data/schemas`. The values that go into keyboard-specific `info.json` files are kept in `keyboard.jsonschema`. Any value you want to make available to end users to edit must go in here.
In some cases you can simply add a new top-level key. Some examples to follow are `keyboard_name`, `maintainer`, `processor`, and `url`. This is appropriate when your option is self-contained and not directly related to other options. In other cases you should group like options together in an `object`. This is particularly true when adding support for a feature. Some examples to follow for this are `indicators`, `matrix_pins`, and `rgblight`. If you are not sure how to integrate your new option(s) [open an issue](https://github.com/qmk/qmk_firmware/issues/new?assignees=&labels=cli%2C+python&template=other_issues.md&title=) or [join #cli on Discord](https://discord.gg/heQPAgy) and start a conversation there.
### Add code to extract it
Whenever QMK generates a complete `info.json` it extracts information from `config.h` and `rules.mk`. You will need to add code for your new config value to `lib/python/qmk/info.py`. Typically this means adding a new `_extract_<feature>()` function and then calling your function in either `_extract_config_h()` or `_extract_rules_mk()`.
If you are not sure how to edit this file or are not comfortable with Python [open an issue](https://github.com/qmk/qmk_firmware/issues/new?assignees=&labels=cli%2C+python&template=other_issues.md&title=) or [join #cli on Discord](https://discord.gg/heQPAgy) and someone can help you with this part.
### Add code to generate it
The final piece of the puzzle is providing your new option to the build system. This is done by generating two files:
*`.build/obj_<keyboard>/src/info_config.h`
*`.build/obj_<keyboard>/src/rules.mk`
These two files are generated by the code here:
*`lib/python/qmk/cli/generate/config_h.py`
*`lib/python/qmk/cli/generate/rules_mk.py`
For `config.h` values you'll need to write a function for your rule(s) and call that function in `generate_config_h()`.
If you have a new top-level `info.json` key for `rules.mk` you can simply add your keys to `info_to_rules` at the top of `lib/python/qmk/cli/generate/rules_mk.py`. Otherwise you'll need to create a new if block for your feature in `generate_rules_mk()`.
QMK (*Quantum Mechanical Keyboard*) ist eine Open-Source-Community, welche die QMK-Firmware, die QMK-Toolbox, [qmk.fm](https://qmk.fm) und diese Dokumententation betreut. QMK-Firmware ist eine Weiterentwicklung der [tmk\_keyboard](http://github.com/tmk/tmk_keyboard)-Tastatur-Firmware mit vielen nützlichen Zusatzfunktionen für Atmel AVR-Prozessoren. Ursprünglich wurde sie für Produkte von [OLKB](http://olkb.com), das [ErgoDox EZ](http://www.ergodox-ez.com) und das [Clueboard](http://clueboard.co/) entwickelt. Im Laufe der Zeit wurde sie mit Hilfe von [ChibiOS](http://chibios.org) auch für die ARM-Architektur angepasst. Außerdem ist es inzwischen möglich, auch handverdrahtete Tastaturen und selbst geätzte PCBs mit QMK zu verwenden.
QMK (*Quantum Mechanical Keyboard*) ist eine Open-Source-Community, welche die QMK-Firmware, die QMK-Toolbox, [qmk.fm](https://qmk.fm) und diese Dokumententation betreut. QMK-Firmware ist eine Weiterentwicklung der [tmk\_keyboard](https://github.com/tmk/tmk_keyboard)-Tastatur-Firmware mit vielen nützlichen Zusatzfunktionen für Atmel AVR-Prozessoren. Ursprünglich wurde sie für Produkte von [OLKB](https://olkb.com), das [ErgoDox EZ](https://www.ergodox-ez.com) und das [Clueboard](https://clueboard.co/) entwickelt. Im Laufe der Zeit wurde sie mit Hilfe von [ChibiOS](https://chibios.org) auch für die ARM-Architektur angepasst. Außerdem ist es inzwischen möglich, auch handverdrahtete Tastaturen und selbst geätzte PCBs mit QMK zu verwenden.
@@ -18,7 +18,7 @@ Wenn Du es vorziehst mit einer grafischen Oberfläche zu entwickeln kannst Du au
Du wirst ein Programm benötigen, mit dem Du **plain text** (= reiner Text) Dateien bearbeiten und speichern kannst. Wenn Du Windows benutzt, reicht dafür schon das normale `Notepad` und für Linux z.B. `gedit` oder `leafpad`. Beide sind sehr rudimentäre Editoren deren Funktionsumfang aber vollkommen ausreicht. Für macOS' standard `TextEdit` muss man ein bisschen vorsichtig sein und darauf achten, beim Speichern explizit unter _Format_ die Option _Reiner Text_ auszuwählen.
Ansonsten ist es empfehlenswert, einen Editor herunterzuladen der für die Programmierung und das Bearbeiten von Code ausgelegt ist wie z.b [Notepad++](http://notepad-plus-plus.org/), [Sublime Text](https://www.sublimetext.com/) oder [VS Code](https://code.visualstudio.com/).
Ansonsten ist es empfehlenswert, einen Editor herunterzuladen der für die Programmierung und das Bearbeiten von Code ausgelegt ist wie z.b [Notepad++](https://notepad-plus-plus.org/), [Sublime Text](https://www.sublimetext.com/) oder [VS Code](https://code.visualstudio.com/).
?> Immer noch unsicher, welcher Text Editor der Richtige für Dich ist? Laurence Bradford hat eine hervorragende [Einleitung](https://learntocodewith.me/programming/basics/text-editors/) zu dem Thema geschrieben (auf Englisch).
@@ -44,7 +44,7 @@ Wir haben versucht, die Installation der Entwicklungsumgebung für QMK so einfac
Du wirst MSYS2 (o.Ä.) und Git benötigen.
* Befolge die Installationsanleitung auf der [MSYS2 Homepage](http://www.msys2.org)
* Befolge die Installationsanleitung auf der [MSYS2 Homepage](https://www.msys2.org)
* Schließe alle offenen MSYS2 Fenster und öffne ein neues MSYS2 MinGW 64-bit Terminal
* Installiere Git mit dem Kommando: `pacman -S git`
@@ -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:
Most keymaps have an image depicting the layout. You can use [Keyboard Layout Editor](http://keyboard-layout-editor.com) to create an image. Upload it to [Imgur](http://imgur.com) or another hosting service, please do not include images in your Pull Request.
Most keymaps have an image depicting the layout. You can use [Keyboard Layout Editor](https://keyboard-layout-editor.com) to create an image. Upload it to [Imgur](https://imgur.com) or another hosting service, please do not include images in your Pull Request.
Below the image you should write a short description to help people understand your keymap.
@@ -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
@@ -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.
QMK (*Quantum Mechanical Keyboard*) es una comunidad open source que mantiene el firmware QMK, QMK Toolbox, qmk.fm, y estos documentos. El firmware QMK es un firmware para teclados basado en [tmk\_keyboard](http://github.com/tmk/tmk_keyboard) con algunas características útiles para controladores Atmel AVR, y más específicamente, la [línea de productos OLKB](http://olkb.com), el teclado [ErgoDox EZ](http://www.ergodox-ez.com), y la [línea de productos Clueboard](http://clueboard.co/). También ha sido portado a chips ARM chips usando ChibiOS. Lo puedes utilizar para manejar tu propio teclado ya sea cableado a mano o basado en una PCB personalizada.
QMK (*Quantum Mechanical Keyboard*) es una comunidad open source que mantiene el firmware QMK, QMK Toolbox, qmk.fm, y estos documentos. El firmware QMK es un firmware para teclados basado en [tmk\_keyboard](https://github.com/tmk/tmk_keyboard) con algunas características útiles para controladores Atmel AVR, y más específicamente, la [línea de productos OLKB](https://olkb.com), el teclado [ErgoDox EZ](https://www.ergodox-ez.com), y la [línea de productos Clueboard](https://clueboard.co/). También ha sido portado a chips ARM chips usando ChibiOS. Lo puedes utilizar para manejar tu propio teclado ya sea cableado a mano o basado en una PCB personalizada.
## Cómo conseguirlo
@@ -29,4 +29,4 @@ Este ejemplo compilaría la revisión `rev4` del teclado `planck` con el keymap
## Cómo personalizar
QMK tiene montones de [características](es/features.md) para explorar, y una buena cantidad de [documentación de referencia](http://docs.qmk.fm) en la que sumergirse. Se pueden sacar provecho de la mayoría de las características modificando tu [keymap](es/keymap.md), y cambiando los [keycodes](es/keycodes.md).
QMK tiene montones de [características](es/features.md) para explorar, y una buena cantidad de [documentación de referencia](https://docs.qmk.fm) en la que sumergirse. Se pueden sacar provecho de la mayoría de las características modificando tu [keymap](es/keymap.md), y cambiando los [keycodes](es/keycodes.md).
QMK es compatible con una variedad de hardware. Si tu procesador puede ser dirigido por [LUFA](http://www.fourwalledcubicle.com/LUFA.php) o [ChibiOS](http://www.chibios.com), probablemente puedes hacer que QMK se ejecute en él. Esta sección explora cómo hacer que QMK se ejecute y se comunique con hardware de todo tipo.
QMK es compatible con una variedad de hardware. Si tu procesador puede ser dirigido por [LUFA](https://www.fourwalledcubicle.com/LUFA.php) o [ChibiOS](https://www.chibios.org), probablemente puedes hacer que QMK se ejecute en él. Esta sección explora cómo hacer que QMK se ejecute y se comunique con hardware de todo tipo.
* [Pautas de teclados](hardware_keyboard_guidelines.md)
@@ -32,7 +32,7 @@ Esto creará todos los archivos necesarios para tu nuevo teclado, y rellenará l
## `readme.md`
Aquí es donde describirás tu teclado. Por favor sigue la [Plantilla del readme de teclados](documentation_templates.md#keyboard-readmemd-template) al escribir tu `readme.md`. Te animamos a colocar una imagen en la parte superior de tu `readme.md`. Por favor, utiliza un servicio externo como [Imgur](http://imgur.com) para alojar las imágenes.
Aquí es donde describirás tu teclado. Por favor sigue la [Plantilla del readme de teclados](documentation_templates.md#keyboard-readmemd-template) al escribir tu `readme.md`. Te animamos a colocar una imagen en la parte superior de tu `readme.md`. Por favor, utiliza un servicio externo como [Imgur](https://imgur.com) para alojar las imágenes.
@@ -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).
@@ -98,7 +98,7 @@ Por ejemplo, si tienes un PCB de 60% que soporta ANSI e ISO podría definir los
En un esfuerzo por mantener el tamaño de repo abajo ya no estamos aceptando archivos binarios de cualquier formato, con pocas excepciones. Alojarlos en otro lugar (por ejemplo <https://imgur.com>) y enlazarlos en el `readme.md` es preferible.
Para archivos de hardware (tales como placas, casos, pcb) puedes contribuir a [qmk.fm repo](https://github.com/qmk/qmk.fm) y estarán disponibles en [qmk.fm](http://qmk.fm). Archivos descargables se almacenan en `/<teclado>/` (nombre sigue el mismo formato que el anterior), se sirven en `http://qmk.fm/<teclado>/`, y se generan páginas de `/_pages/<teclado>/` que se sirven en la misma ubicación (Los archivos .md se generan en archivos .html mediante Jekyll). Echa un vistazo a la carpeta `lets_split` para ver un ejemplo.
Para archivos de hardware (tales como placas, casos, pcb) puedes contribuir a [qmk.fm repo](https://github.com/qmk/qmk.fm) y estarán disponibles en [qmk.fm](https://qmk.fm). Archivos descargables se almacenan en `/<teclado>/` (nombre sigue el mismo formato que el anterior), se sirven en `https://qmk.fm/<teclado>/`, y se generan páginas de `/_pages/<teclado>/` que se sirven en la misma ubicación (Los archivos .md se generan en archivos .html mediante Jekyll). Echa un vistazo a la carpeta `lets_split` para ver un ejemplo.
## Predeterminados de teclado
@@ -140,7 +140,7 @@ El año debe ser el primer año en que se crea el archivo. Si el trabajo se hizo
## Licencia
El núcleo de QMC está licenciado bajo la [GNU General Public License](https://www.gnu.org/licenses/licenses.en.html). Si estás enviando binarios para los procesadores AVR puedes elegir cualquiera [GPLv2](https://www.gnu.org/licenses/old-licenses/gpl-2.0.html) o [GPLv3](https://www.gnu.org/licenses/gpl.html). Si estás enviando binarios para ARM procesadores debes elegir [GPL Versión 3](https://www.gnu.org/licenses/gpl.html) para cumplir con los [ChibiOS](http://www.chibios.org) licencia GPLv3.
El núcleo de QMC está licenciado bajo la [GNU General Public License](https://www.gnu.org/licenses/licenses.en.html). Si estás enviando binarios para los procesadores AVR puedes elegir cualquiera [GPLv2](https://www.gnu.org/licenses/old-licenses/gpl-2.0.html) o [GPLv3](https://www.gnu.org/licenses/gpl.html). Si estás enviando binarios para ARM procesadores debes elegir [GPL Versión 3](https://www.gnu.org/licenses/gpl.html) para cumplir con los [ChibiOS](https://www.chibios.org) licencia GPLv3.
Si tu teclado hace uso de la [uGFX](https://gfx.io) características dentro de QMK debes cumplir con la [Licencia de uGFX](https://ugfx.io/license.html), que requiere una licencia comercial separada antes de vender un dispositivo que contiene uGFX.
QMK es un poderoso firmware Open Source para tu teclado mecánico. Puedes utilizar QMK para personalizar tu teclado en maneras a la vez simples y potentes. Gente de todos los niveles de habilidad, desde completos novatos hasta expertos programadores, han utilizado con éxito QMK para personalizar sus teclados. Esta guía te ayudará a hacer lo mismo, sin importar tu nivel de habilidad.
¿No estás seguro de si tu teclado puede ejecutar QMK? Si es un teclado mecánico construido por ti mismo probablemente puedas. Damos soporte a [gran número de placas de hobbistas](http://qmk.fm/keyboards/), e incluso si tu teclado actual no pudiera ejecutar QMK no deberías tener problemas encontrando uno que cumpliera tus necesidades.
¿No estás seguro de si tu teclado puede ejecutar QMK? Si es un teclado mecánico construido por ti mismo probablemente puedas. Damos soporte a [gran número de placas de hobbistas](https://qmk.fm/keyboards/), e incluso si tu teclado actual no pudiera ejecutar QMK no deberías tener problemas encontrando uno que cumpliera tus necesidades.
@@ -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:
@@ -13,65 +13,29 @@ An example of using `sudo`, when your controller is ATMega32u4:
or just:
$ sudo make <keyboard>:<keymap>:dfu
$ sudo make <keyboard>:<keymap>:flash
Note that running `make` with `sudo` is generally ***not*** a good idea, and you should use one of the former methods, if possible.
### Linux `udev` Rules
On Linux, you'll need proper privileges to access the MCU. You can either use
`sudo` when flashing firmware, or place these files in `/etc/udev/rules.d/`. Once added run the following:
```console
### Linux `udev` Rules :id=linux-udev-rules
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/`.
This page details various common questions people have about troubleshooting their keyboards.
# Debug Console
## Debugging :id=debugging
Your keyboard will output debug information if you have `CONSOLE_ENABLE = yes` in your `rules.mk`. By default the output is very limited, but you can turn on debug mode to increase the amount of debug output. Use the `DEBUG` keycode in your keymap, use the [Command](feature_command.md) feature to enable debug mode, or add the following code to your keymap.
```c
voidkeyboard_post_init_user(void){
// Customise these values to desired behaviour
debug_enable=true;
debug_matrix=true;
//debug_keyboard=true;
//debug_mouse=true;
}
```
## Debugging Tools
There are two different tools you can use to debug your keyboard.
### Debugging With QMK Toolbox
For compatible platforms, [QMK Toolbox](https://github.com/qmk/qmk_toolbox) can be used to display debug messages from your keyboard.
### Debugging With hid_listen
Prefer a terminal based solution? [hid_listen](https://www.pjrc.com/teensy/hid_listen.html), provided by PJRC, can also be used to display debug messages. Prebuilt binaries for Windows,Linux,and MacOS are available.
## Sending Your Own Debug Messages
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:
```c
#include"print.h"
```
After that you can use a few different print functions:
*`print("string")`: Print a simple string.
*`uprintf("%s string", var)`: Print a formatted string
*`dprint("string")` Print a simple string, but only when debug mode is enabled
*`dprintf("%s string", var)`: Print a formatted string, but only when debug mode is enabled
## Debug Examples
Below is a collection of real world debugging examples. For additional information, refer to [Debugging/Troubleshooting QMK](faq_debug.md).
### Which matrix position is this keypress?
When porting, or when attempting to diagnose pcb issues, it can be useful to know if a keypress is scanned correctly. To enable logging for this scenario, add the following code to your keymaps `keymap.c`
When testing performance issues, it can be useful to know the frequency at which the switch matrix is being scanned. To enable logging for this scenario, add the following code to your keymaps `config.h`
```c
#define DEBUG_MATRIX_SCAN_RATE
```
Example output
```text
> matrix scan frequency: 315
> matrix scan frequency: 313
> matrix scan frequency: 316
> matrix scan frequency: 316
> matrix scan frequency: 316
> matrix scan frequency: 316
```
## `hid_listen` Can't Recognize Device
When debug console of your device is not ready you will see like this:
@@ -11,7 +98,7 @@ When debug console of your device is not ready you will see like this:
Waiting for device:.........
```
once the device is plugged in then *hid_listen* finds it you will get this message:
Once the device is plugged in then *hid_listen* finds it you will get this message:
```
Waiting for new device:.........................
@@ -20,143 +107,12 @@ Listening:
If you can't get this 'Listening:' message try building with `CONSOLE_ENABLE=yes` in [Makefile]
You may need privilege to access the device on OS like Linux.
- try `sudo hid_listen`
You may need privileges to access the device an OS like Linux. Try `sudo hid_listen`.
## Can't Get Message on Console
Check:
- *hid_listen* finds your device. See above.
- Enable debug with pressing **Magic**+d. See [Magic Commands](https://github.com/tmk/tmk_keyboard#magic-commands).
-set `debug_enable=true`. See [Testing and Debugging](newbs_testing_debugging.md#debugging)
-try using 'print' function instead of debug print. See **common/print.h**.
-disconnect other devices with console function. See [Issue #97](https://github.com/tmk/tmk_keyboard/issues/97).
## Linux or UNIX Like System Requires Super User Privilege
Just use 'sudo' to execute *hid_listen* with privilege.
```
$ sudo hid_listen
```
Or add an *udev rule* for TMK devices with placing a file in rules directory. The directory may vary on each system.
File: /etc/udev/rules.d/52-tmk-keyboard.rules(in case of Ubuntu)
- DFU tools do /not/ allow you to write into the bootloader (unless
you throw in extra fruit salad of options), so there is little risk
there.
- EEPROM has around a 100000 write cycle. You shouldn't rewrite the
firmware repeatedly and continually; that'll burn the EEPROM
eventually.
## NKRO Doesn't work
First you have to compile firmware with this build option `NKRO_ENABLE` in **Makefile**.
Try `Magic`**N** command(`LShift+RShift+N` by default) when **NKRO** still doesn't work. You can use this command to toggle between **NKRO** and **6KRO** mode temporarily. In some situations **NKRO** doesn't work you need to switch to **6KRO** mode, in particular when you are in BIOS.
If your firmware built with `BOOTMAGIC_ENABLE` you need to turn its switch on by `BootMagic`**N** command(`Space+N` by default). This setting is stored in EEPROM and kept over power cycles.
Use `1UL<<16` instead of `1<<16` in `read_cols()` in [matrix.h] when your columns goes beyond 16.
In C `1` means one of [int] type which is [16 bit] in case of AVR so you can't shift left more than 15. You will get unexpected zero when you say `1<<16`. You have to use [unsigned long] type with `1UL`.
## Special Extra Key Doesn't Work (System, Audio Control Keys)
You need to define `EXTRAKEY_ENABLE` in `rules.mk` to use them in QMK.
```
EXTRAKEY_ENABLE = yes # Audio control and System control
```
## Wakeup from Sleep Doesn't Work
In Windows check `Allow this device to wake the computer` setting in Power **Management property** tab of **Device Manager**. Also check BIOS setting.
Pressing any key during sleep should wake host.
## Using Arduino?
**Note that Arduino pin naming is different from actual chip.** For example, Arduino pin `D0` is not `PD0`. Check circuit with its schematics yourself.
Arduino Leonardo and micro have **ATMega32U4** and can be used for TMK, though Arduino bootloader may be a problem.
## Enabling JTAG
By default, the JTAG debugging interface is disabled as soon as the keyboard starts up. JTAG-capable MCUs come from the factory with the `JTAGEN` fuse set, and it takes over certain pins of the MCU that the board may be using for the switch matrix, LEDs, etc.
If you would like to keep JTAG enabled, just add the following to your `config.h`:
```c
#define NO_JTAG_DISABLE
```
## USB 3 Compatibility
I heard some people have a problem with USB 3 port, try USB 2 port.
## Problem on BIOS (UEFI)/Resume (Sleep & Wake)/Power Cycles
Some people reported their keyboard stops working on BIOS and/or after resume(power cycles).
As of now root of its cause is not clear but some build options seem to be related. In Makefile try to disable those options like `CONSOLE_ENABLE`, `NKRO_ENABLE`, `SLEEP_LED_ENABLE` and/or others.
@@ -11,7 +11,7 @@ Keycodes are actually defined in [common/keycode.h](https://github.com/qmk/qmk_f
There are 3 standard keyboard layouts in use around the world- ANSI, ISO, and JIS. North America primarily uses ANSI, Europe and Africa primarily use ISO, and Japan uses JIS. Regions not mentioned typically use either ANSI or ISO. The keycodes corresponding to these layouts are shown here:
<!-- Source for this image: http://www.keyboard-layout-editor.com/#/gists/bf431647d1001cff5eff20ae55621e9a -->
<!-- Source for this image: https://www.keyboard-layout-editor.com/#/gists/bf431647d1001cff5eff20ae55621e9a -->
## How Can I Make Custom Names For Complex Keycodes?
@@ -42,8 +42,8 @@ The key found on most modern keyboards that is located between `KC_RGUI` and `KC
Use keycode for Print Screen(`KC_PSCREEN` or `KC_PSCR`) instead of `KC_SYSREQ`. Key combination of 'Alt + Print Screen' is recognized as 'System request'.
See [issue #168](https://github.com/tmk/tmk_keyboard/issues/168) and
* http://en.wikipedia.org/wiki/Magic_SysRq_key
* http://en.wikipedia.org/wiki/System_request
* https://en.wikipedia.org/wiki/Magic_SysRq_key
* https://en.wikipedia.org/wiki/System_request
## Power Keys Aren't Working
@@ -60,13 +60,13 @@ Modifier keys or layers can be stuck unless layer switching is configured proper
For Modifier keys and layer actions you have to place `KC_TRANS` on same position of destination layer to unregister the modifier key or return to previous layer on release event.
This feature is for *mechanical lock switch* like [this Alps one](http://deskthority.net/wiki/Alps_SKCL_Lock). You can enable it by adding this to your `config.h`:
This feature is for *mechanical lock switch* like [this Alps one](https://deskthority.net/wiki/Alps_SKCL_Lock). You can enable it by adding this to your `config.h`:
Testing your keyboard is usually pretty straightforward. Press every single key and make sure it sends the keys you expect. You can use [QMK Configurator](https://config.qmk.fm/#/test/)'s test mode to check your keyboard, even if it doesn't run QMK.
## Safety Considerations
You probably don't want to "brick" your keyboard, making it impossible
to rewrite firmware onto it. Here are some of the parameters to show
what things are (and likely aren't) too risky.
- If your keyboard map does not include RESET, then, to get into DFU
mode, you will need to press the reset button on the PCB, which
requires unscrewing the bottom.
- Messing with tmk_core / common files might make the keyboard
inoperable
- Too large a .hex file is trouble; `make dfu` will erase the block,
test the size (oops, wrong order!), which errors out, failing to
flash the keyboard, leaving it in DFU mode.
- To this end, note that the maximum .hex file size on e.g. Planck
is 7000h (28672 decimal)
```
Linking: .build/planck_rev4_cbbrowne.elf [OK]
Creating load file for Flash: .build/planck_rev4_cbbrowne.hex [OK]
Size after:
text data bss dec hex filename
0 22396 0 22396 577c planck_rev4_cbbrowne.hex
```
- The above file is of size 22396/577ch, which is less than
28672/7000h
- As long as you have a suitable alternative .hex file around, you
can retry, loading that one
- Some of the options you might specify in your keyboard's Makefile
consume extra memory; watch out for BOOTMAGIC_ENABLE,
- DFU tools do /not/ allow you to write into the bootloader (unless
you throw in an extra fruit salad of options), so there is little risk
there.
- EEPROM has around a 100000 (100k) write cycle. You shouldn't rewrite
the firmware repeatedly and continually; that'll burn the EEPROM
eventually.
## NKRO Doesn't work
First you have to compile firmware with the build option `NKRO_ENABLE` in **Makefile**.
Try `Magic`**N** command(`LShift+RShift+N` by default) when **NKRO** still doesn't work. You can use this command to toggle between **NKRO** and **6KRO** mode temporarily. In some situations **NKRO** doesn't work and you will need to switch to **6KRO** mode, in particular when you are in BIOS.
If your firmware was built with `BOOTMAGIC_ENABLE` you need to turn its switch on by `BootMagic`**N** command(`Space+N` by default). This setting is stored in EEPROM and kept over power cycles.
Use `1UL<<16` instead of `1<<16` in `read_cols()` in [matrix.h] when your columns goes beyond 16.
In C `1` means one of [int] type which is [16 bit] in case of AVR, so you can't shift left more than 15. Thus, calculating `1<<16` will unexpectedly equal zero. To work around this, you have to use [unsigned long] type with `1UL`.
## Special Extra Key Doesn't Work (System, Audio Control Keys)
You need to define `EXTRAKEY_ENABLE` in `rules.mk` to use them in QMK.
```
EXTRAKEY_ENABLE = yes # Audio control and System control
```
## Wake from Sleep Doesn't Work
In Windows check `Allow this device to wake the computer` setting in **Power Management** property tab of **Device Manager**. Also check your BIOS settings. Pressing any key during sleep should wake host.
## Using Arduino?
**Note that Arduino pin naming is different from actual chip.** For example, Arduino pin `D0` is not `PD0`. Check circuit with its schematics yourself.
Arduino Leonardo and micro have **ATMega32U4** and can be used for TMK, though Arduino bootloader may be a problem.
## Enabling JTAG
By default, the JTAG debugging interface is disabled as soon as the keyboard starts up. JTAG-capable MCUs come from the factory with the `JTAGEN` fuse set, and it takes over certain pins of the MCU that the board may be using for the switch matrix, LEDs, etc.
If you would like to keep JTAG enabled, just add the following to your `config.h`:
```c
#define NO_JTAG_DISABLE
```
## USB 3 Compatibility
Some problems can be fixed by switching from a USB 3.x port to a USB 2.0 port.
## Mac Compatibility
### OS X 10.11 and Hub
See here: https://geekhack.org/index.php?topic=14290.msg1884034#msg1884034
## Problem in BIOS (UEFI) Setup/Resume (Sleep & Wake)/Power Cycles
Some people reported their keyboard stops working in BIOS and/or after resume(power cycles).
As of now the root cause is not clear, but some build options seem to be related. In Makefile, try to disable options like `CONSOLE_ENABLE`, `NKRO_ENABLE`, `SLEEP_LED_ENABLE` and/or others.
These allow you to combine a modifier with a keycode. When pressed, the keydown event for the modifier, then `kc` will be sent. On release, the keyup event for `kc`, then the modifier will be sent.
@@ -26,7 +26,10 @@ A Bluefruit UART friend can be converted to an SPI friend, however this [require
<!-- FIXME: Document bluetooth support more completely. -->
## Bluetooth Rules.mk Options
Use only one of these
The currently supported Bluetooth chipsets do not support [N-Key Rollover (NKRO)](reference_glossary.md#n-key-rollover-nkro), so `rules.mk` must contain `NKRO_ENABLE = no`.
| Not defined | Use the default algorithm, currently sym_g | Nothing |
| Not defined | Use the default algorithm, currently sym_defer_g | Nothing |
| custom | Use your own debounce code | ```SRC += debounce.c``` add your own debounce.c and implement necessary functions |
| anything_else | Use another algorithm from quantum/debounce/* | Nothing |
| Anything Else | Use another algorithm from quantum/debounce/* | Nothing |
**Regarding split keyboards**:
The debounce code is compatible with split keyboards.
# Use your own debouncing code
* Set ```DEBOUNCE_TYPE = custom```.
* Add ```SRC += debounce.c```
### Selecting an included debouncing method
Keyboards may select one of the already implemented debounce methods, by adding to ```rules.mk``` the following line:
```
DEBOUNCE_TYPE = <name of algorithm>
```
Where name of algorithm is one of:
* ```sym_defer_g``` - debouncing per keyboard. On any state change, a global timer is set. When ```DEBOUNCE``` milliseconds of no changes has occurred, all input changes are pushed.
* This is the current default algorithm. This is the highest performance algorithm with lowest memory usage, and it's also noise-resistant.
* ```sym_eager_pr``` - debouncing per row. On any state change, response is immediate, followed by locking the row ```DEBOUNCE``` milliseconds of no further input for that row.
For use in keyboards where refreshing ```NUM_KEYS``` 8-bit counters is computationally expensive / low scan rate, and fingers usually only hit one row at a time. This could be
appropriate for the ErgoDox models; the matrix is rotated 90°, and hence its "rows" are really columns, and each finger only hits a single "row" at a time in normal use.
* ```sym_eager_pk``` - debouncing per key. On any state change, response is immediate, followed by ```DEBOUNCE``` milliseconds of no further input for that key
* ```sym_defer_pk``` - debouncing per key. On any state change, a per-key timer is set. When ```DEBOUNCE``` milliseconds of no changes have occurred on that key, the key status change is pushed.
### A couple algorithms that could be implemented in the future:
* ```sym_defer_pr```
* ```sym_eager_g```
* ```asym_eager_defer_pk```
### Use your own debouncing code
You have the option to implement you own debouncing algorithm. To do this:
* Set ```DEBOUNCE_TYPE = custom``` in ```rules.mk```.
* Add ```SRC += debounce.c``` in ```rules.mk```
* Add your own ```debounce.c```. Look at current implementations in ```quantum/debounce``` for examples.
* Debouncing occurs after every raw matrix scan.
* Use num_rows rather than MATRIX_ROWS, so that split keyboards are supported correctly.
* If the algorithm might be applicable to other keyboards, please consider adding it to ```quantum/debounce```
# Changing between included debouncing methods
You can either use your own code, by including your own debounce.c, or switch to another included one.
Included debounce methods are:
* eager_pr - debouncing per row. On any state change, response is immediate, followed by locking the row ```DEBOUNCE``` milliseconds of no further input for that row.
For use in keyboards where refreshing ```NUM_KEYS``` 8-bit counters is computationally expensive / low scan rate, and fingers usually only hit one row at a time. This could be
appropriate for the ErgoDox models; the matrix is rotated 90°, and hence its "rows" are really columns, and each finger only hits a single "row" at a time in normal use.
* eager_pk - debouncing per key. On any state change, response is immediate, followed by ```DEBOUNCE``` milliseconds of no further input for that key
* sym_g - debouncing per keyboard. On any state change, a global timer is set. When ```DEBOUNCE``` milliseconds of no changes has occured, all input changes are pushed.
* sym_pk - debouncing per key. On any state change, a per-key timer is set. When ```DEBOUNCE``` milliseconds of no changes have occured on that key, the key status change is pushed.
### Old names
The following old names for existing algorithms will continue to be supported, however it is recommended to use the new names instead.
@@ -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:
|`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.
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.
|`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
boolled_update_kb(led_tled_state){
boolres=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);
}
returnres;
}
```
### 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.
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).
@@ -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`:
@@ -55,7 +56,7 @@ Define these arrays listing all the LEDs in your `<keyboard>.c`:
....
}
Where `Cx_y` is the location of the LED in the matrix defined by [the datasheet](http://www.issi.com/WW/pdf/31FL3731.pdf) and the header file `drivers/issi/is31fl3731-simple.h`. The `driver` is the index of the driver you defined in your `config.h` (`0`, `1`, `2`, or `3` ).
Where `Cx_y` is the location of the LED in the matrix defined by [the datasheet](https://www.issi.com/WW/pdf/31FL3731.pdf) and the header file `drivers/issi/is31fl3731-simple.h`. The `driver` is the index of the driver you defined in your `config.h` (`0`, `1`, `2`, or `3` ).
@@ -4,7 +4,7 @@ Macros allow you to send multiple keystrokes when pressing just one key. QMK has
!> **Security Note**: While it is possible to use macros to send passwords, credit card numbers, and other sensitive information it is a supremely bad idea to do so. Anyone who gets a hold of your keyboard will be able to access that information by opening a text editor.
## The New Way: `SEND_STRING()` & `process_record_user`
## `SEND_STRING()` & `process_record_user`
Sometimes you want a key to type out words or phrases. For the most common situations, we've provided `SEND_STRING()`, which will type out a string (i.e. a sequence of characters) for you. All ASCII characters that are easily translatable to a keycode are supported (e.g. `qmk 123\n\t`).
@@ -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.
### `record->event.pressed`
@@ -260,15 +262,15 @@ This will clear all keys besides the mods currently pressed.
This macro will register `KC_LALT` and tap `KC_TAB`, then wait for 1000ms. If the key is tapped again, it will send another `KC_TAB`; if there is no tap, `KC_LALT` will be unregistered, thus allowing you to cycle through windows.
```c
boolis_alt_tab_active=false;#ADD this near thebeginingofkeymap.c
uint16_talt_tab_timer=0;#wewillbe using them soon.
boolis_alt_tab_active=false;// ADD thisnear the begining of keymap.c
uint16_talt_tab_timer=0;// we will be usingthemsoon.
enumcustom_keycodes{# Make sure have the awesome keycode ready
enumcustom_keycodes{// Makesurehave the awesomekeycodeready
This defines two macros which will be run when the key they are assigned to is pressed. If instead you'd like them to run when the key is released you can change the if statement:
if (!record->event.pressed) {
### Macro Commands
A macro can include the following commands:
* I() change interval of stroke in milliseconds.
* D() press key.
* U() release key.
* T() type key(press and release).
* W() wait (milliseconds).
* END end mark.
### Mapping a Macro to a Key
Use the `M()` function within your keymap to call a macro. For example, here is the keymap for a 2-key keyboard:
When you press the key on the left it will type "Hi!" and when you press the key on the right it will type "Bye!".
### Naming Your Macros
If you have a bunch of macros you want to refer to from your keymap while keeping the keymap easily readable you can name them using `#define` at the top of your file.
@@ -29,6 +29,9 @@ In your keymap you can use the following keycodes to map key presses to mouse ac
|`KC_MS_BTN3` |`KC_BTN3`|Press button 3 |
|`KC_MS_BTN4` |`KC_BTN4`|Press button 4 |
|`KC_MS_BTN5` |`KC_BTN5`|Press button 5 |
|`KC_MS_BTN6` |`KC_BTN6`|Press button 6 |
|`KC_MS_BTN7` |`KC_BTN7`|Press button 7 |
|`KC_MS_BTN8` |`KC_BTN8`|Press button 8 |
|`KC_MS_WH_UP` |`KC_WH_U`|Move wheel up |
|`KC_MS_WH_DOWN` |`KC_WH_D`|Move wheel down |
|`KC_MS_WH_LEFT` |`KC_WH_L`|Move wheel left |
@@ -42,6 +45,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 +60,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 +78,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.
@@ -140,3 +169,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
Mousekeysbuttonstateissharedwith [PS/2 mouse](feature_ps2_mouse.md) and [pointing device](feature_pointing_device.md) somousekeysbuttonpressescanbeusedforclicksanddrags.
@@ -19,7 +19,7 @@ Keep in mind that a report_mouse_t (here "mouseReport") has the following proper
*`mouseReport.y` - this is a signed int from -127 to 127 (not 128, this is defined in USB HID spec) representing movement (+ upward, - downward) on the y axis.
*`mouseReport.v` - this is a signed int from -127 to 127 (not 128, this is defined in USB HID spec) representing vertical scrolling (+ upward, - downward).
*`mouseReport.h` - this is a signed int from -127 to 127 (not 128, this is defined in USB HID spec) representing horizontal scrolling (+ right, - left).
*`mouseReport.buttons` - this is a uint8_t in which the last 5 bits are used. These bits represent the mouse button state - bit 3 is mouse button 5, and bit 7 is mouse button 1.
*`mouseReport.buttons` - this is a uint8_t in which all 8 bits are used. These bits represent the mouse button state - bit 0 is mouse button 1, and bit 7 is mouse button 8.
Once you have made the necessary changes to the mouse report, you need to send it:
`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.
Where `Cx_y` is the location of the LED in the matrix defined by [the datasheet](http://www.issi.com/WW/pdf/31FL3731.pdf) and the header file `drivers/issi/is31fl3731.h`. The `driver` is the index of the driver you defined in your `config.h` (`0` or `1` right now).
Where `Cx_y` is the location of the LED in the matrix defined by [the datasheet](https://www.issi.com/WW/pdf/31FL3731.pdf) and the header file `drivers/issi/is31fl3731.h`. The `driver` is the index of the driver you defined in your `config.h` (`0` or `1` right now).
Where `X_Y` is the location of the LED in the matrix defined by [the datasheet](http://www.issi.com/WW/pdf/31FL3733.pdf) and the header file `drivers/issi/is31fl3733.h`. The `driver` is the index of the driver you defined in your `config.h` (Only `0` right now).
Where `X_Y` is the location of the LED in the matrix defined by [the datasheet](https://www.issi.com/WW/pdf/31FL3733.pdf) and the header file `drivers/issi/is31fl3733.h`. The `driver` is the index of the driver you defined in your `config.h` (Only `0` right now).
---
@@ -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`:
@@ -126,10 +129,32 @@ 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
constled_config_tg_led_config={{
led_config_tg_led_config={{
// Key Matrix to LED Index
{5,NO_LED,NO_LED,0},
{NO_LED,NO_LED,NO_LED,NO_LED},
@@ -293,6 +318,19 @@ You can disable a single effect by defining `DISABLE_[EFFECT_NAME]` in your `con
@@ -303,6 +341,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:
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)`.
@@ -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.
?> **Note:** Lighting Layers is an RGB Light feature, it will not work for RGB Matrix. See [RGB Matrix Indicators](feature_rgb_matrix.md?indicators) for details on how to do so.
By including `#define RGBLIGHT_LAYERS` in your `config.h` file you can enable lighting layers. These make
it easy to use your underglow LEDs as status indicators to show which keyboard layer is currently active, or the state of caps lock, all without disrupting any animations. [Here's a video](https://youtu.be/uLGE1epbmdY) showing an example of what you can do.
@@ -192,7 +205,7 @@ it easy to use your underglow LEDs as status indicators to show which keyboard l
By default, 8 layers are possible. This can be expanded to as many as 32 by overriding the definition of `RGBLIGHT_MAX_LAYERS` in `config.h` (e.g. `#define RGBLIGHT_MAX_LAYERS 32`). Please note, if you use a split keyboard, you will need to flash both sides of the split after changing this. Also, increasing the maximum will increase the firmware size, and will slow sync on split keyboards.
To define a layer, we modify `keymap.c` to list out LED ranges and the colors we want to overlay on them using an array of `rgblight_segment_t` using the `RGBLIGHT_LAYER_SEGMENTS` macro. We can define multiple layers and enable/disable them independently:
To define a layer, we modify `keymap.c` to list the LED ranges and the colors we want to overlay on them using an array of `rgblight_segment_t` using the `RGBLIGHT_LAYER_SEGMENTS` macro. We can define multiple layers and enable/disable them independently:
```c
// Light LEDs 6 to 9 and 12 to 15 red when caps lock is active. Hard to ignore!
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 |
Steve Losh described the [Space Cadet Shift](http://stevelosh.com/blog/2012/10/a-modern-space-cadet/) quite well. Essentially, when you tap Left Shift on its own, you get an opening parenthesis; tap Right Shift on its own and you get the closing one. When held, the Shift keys function as normal. Yes, it's as cool as it sounds, and now even cooler supporting Control and Alt as well!
Steve Losh described the [Space Cadet Shift](https://stevelosh.com/blog/2012/10/a-modern-space-cadet/) quite well. Essentially, when you tap Left Shift on its own, you get an opening parenthesis; tap Right Shift on its own and you get the closing one. When held, the Shift keys function as normal. Yes, it's as cool as it sounds, and now even cooler supporting Control and Alt as well!
@@ -60,7 +61,7 @@ The 4 wires of the TRRS cable need to connect GND, VCC, and SCL and SDA (aka PD0
The pull-up resistors may be placed on either half. If you wish to use the halves independently, it is also possible to use 4 resistors and have the pull-ups in both halves.
@@ -180,6 +181,16 @@ If you're having issues with serial communication, you can change this value, as
* **`4`**: about 26kbps
* **`5`**: about 20kbps
```c
#define SPLIT_MODS_ENABLE
```
This enables transmitting modifier state (normal, weak and oneshot) to the non
primary side of the split keyboard. This adds a few bytes of data to the split
communication protocol and may impact the matrix scan speed when enabled.
The purpose of this feature is to support cosmetic use of modifer state (e.g.
displaying status on an OLED screen).
### Hardware Configuration Options
There are some settings that you may need to configure, based on how the hardware is set up.
@@ -236,6 +247,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.

## 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.
[Stenography](https://en.wikipedia.org/wiki/Stenotype) is a method of writing most often used by court reports, closed-captioning, and real-time transcription for the deaf. In stenography words are chorded syllable by syllable with a mixture of spelling, phonetic, and shortcut (briefs) strokes. Professional stenographers can reach 200-300 WPM without any of the strain usually found in standard typing and with far fewer errors (>99.9% accuracy).
The [Open Steno Project](http://www.openstenoproject.org/) has built an open-source program called Plover that provides real-time translation of steno strokes into words and commands. It has an established dictionary and supports
The [Open Steno Project](https://www.openstenoproject.org/) has built an open-source program called Plover that provides real-time translation of steno strokes into words and commands. It has an established dictionary and supports
## Plover with QWERTY Keyboard :id=plover-with-qwerty-keyboard
@@ -52,7 +52,6 @@ On the display tab click 'Open stroke display'. With Plover disabled you should
@@ -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:
# Flashing Instructions and Bootloader Information
There are quite a few different types of bootloaders that keyboards use, and just about all of them use a different flashing method. Luckily, projects like the [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) aim to be compatible with all the different types without having to think about it much, but this article will describe the different types of bootloaders, and available methods for flashing them.
There are quite a few different types of bootloaders that keyboards use, and almost all of them use their own flashing method and tools. Luckily, projects like the [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) aim to support as many of them as possible, but this article will describe the different types of bootloaders, and available methods for flashing them.
If you have a bootloader selected with the `BOOTLOADER` variable in your `rules.mk`, QMK will automatically calculate if your .hex file is the right size to be flashed to the device, and output the total size in bytes (along with the max).
For AVR-based keyboards, QMK will automatically calculate if your `.hex` file is the right size to be flashed to the device based on the `BOOTLOADER` value set in `rules.mk`, and output the total size in bytes (along with the max).
## DFU
You will also be able to use the CLI to flash your keyboard, by running:
```
$ qmk flash -kb <keyboard> -km <keymap>
```
See the [`qmk flash`](cli_commands.md#qmk-flash) documentation for more information.
Atmel's DFU bootloader comes on all atmega32u4 chips by default, and is used by many keyboards that have their own ICs on their PCBs (Older OLKB boards, Clueboards). Some keyboards may also use LUFA's DFU bootloader (or QMK's fork) (Newer OLKB boards) that adds in additional features specific to that hardware.
## Atmel DFU
To ensure compatibility with the DFU bootloader, make sure this block is present your `rules.mk` (optionally with `lufa-dfu` or `qmk-dfu` instead):
Atmel's DFU bootloader comes on all USB AVRs by default (except for 16/32U4RC), and is used by many keyboards that have their own ICs on their PCBs (older OLKB boards, Clueboards). Some keyboards may also use LUFA's DFU bootloader, or QMK's fork of it (newer OLKB boards), that adds in additional features specific to that hardware.
To ensure compatibility with the DFU bootloader, make sure this block is present in your `rules.mk` (optionally with `lufa-dfu` or `qmk-dfu` instead):
* [dfu-programmer](https://github.com/dfu-programmer/dfu-programmer) / `:dfu` in QMK (recommended command line)
* [dfu-programmer](https://github.com/dfu-programmer/dfu-programmer) / `:dfu` target in QMK (recommended command line)
Flashing sequence:
1.Press the `RESET` keycode, or tap the RESET button (or short RST to GND).
1.Enter the bootloader using any of the following methods:
* Press the `RESET` keycode
* Press the `RESET` button on the PCB if available
* Short RST to GND quickly
2. Wait for the OS to detect the device
3. Erase the memory (may be done automatically)
3. Erase the flash memory (will be done automatically if using the Toolbox or CLI/`make` command)
4. Flash a .hex file
5. Reset the device into application mode (may be done automatically)
or:
make <keyboard>:<keymap>:dfu
5. Reset the device into application mode (will be done automatically as above)
### QMK DFU
QMK has a fork of the LUFA DFU bootloader that allows for a simple matrix scan for exiting the bootloader and returning to the application, as well as flashing an LED/making a ticking noise with a speaker when things are happening. To enable these features, use this block in your `config.h` (The key that exits the bootloader needs to be hooked-up to the INPUT and OUTPUT defined here):
QMK maintains [a fork of the LUFA DFU bootloader](https://github.com/qmk/lufa/tree/master/Bootloaders/DFU) that additionally performs a simple matrix scan for exiting the bootloader and returning to the application, as well as flashing an LED/making a ticking noise with a speaker when things are happening. To enable these features, add the following defines to your `config.h`:
#define QMK_ESC_OUTPUT F1 // usually COL
#define QMK_ESC_INPUT D5 // usually ROW
#define QMK_LED E6
#define QMK_SPEAKER C6
```c
#define QMK_ESC_OUTPUT F1 // COL pin if COL2ROW
#define QMK_ESC_INPUT D5 // ROW pin if COL2ROW
// Optional:
//#define QMK_LED E6
//#define QMK_SPEAKER C6
```
Currently we do not recommend making `QMK_ESC` the same key as the one designated for [Bootmagic Lite](feature_bootmagic.md#bootmagic-lite), as holding it down will cause the MCU to loop back and forth between entering and exiting the bootloader.
The Manufacturer and Product names are automatically pulled from your `config.h`, and "Bootloader" is added to the product.
The manufacturer and product strings are automatically pulled from `config.h`, with "Bootloader" appended to the product string.
To generate this bootloader, use the `bootloader` target, eg `make planck/rev4:default:bootloader`.
To generate this bootloader, use the `bootloader` target, eg.`make planck/rev4:default:bootloader`. To generate a production-ready .hex file (combining QMK and the bootloader), use the `production` target, eg. `make planck/rev4:default:production`.
To generate a production-ready .hex file (containing the application and the bootloader), use the `production` target, eg `make planck/rev4:default:production`.
### `make` Targets
### DFU commands
There are a number of DFU commands that you can use to flash firmware to a DFU device:
*`:dfu` - This is the normal option and waits until a DFU device is available, and then flashes the firmware. This will check every 5 seconds, to see if a DFU device has appeared.
*`:dfu-ee` - This flashes an `eep` file instead of the normal hex. This is uncommon.
*`:dfu-split-left` - This flashes the normal firmware, just like the default option (`:dfu`). However, this also flashes the "Left Side" EEPROM file for split keyboards. _This is ideal for Elite C based split keyboards._
*`:dfu-split-right` - This flashes the normal firmware, just like the default option (`:dfu`). However, this also flashes the "Right Side" EEPROM file for split keyboards. _This is ideal for Elite C based split keyboards._
*`:dfu`: Checks every 5 seconds until a DFU device is available, and then flashes the firmware.
*`:dfu-split-left` and `:dfu-split-right`: Flashes the firmware as with `:dfu`, but also sets the handedness setting in EEPROM. This is ideal for Elite-C-based split keyboards.
## Caterina
Arduino boards and their clones use the [Caterina bootloader](https://github.com/arduino/ArduinoCore-avr/tree/master/bootloaders/caterina) (any keyboard built with a Pro Micro, or clone), and uses the avr109 protocol to communicate through virtual serial. Bootloaders like [A-Star](https://www.pololu.com/docs/0J61/9) are based on Caterina.
Arduino boards and their clones use the [Caterina bootloader](https://github.com/arduino/ArduinoCore-avr/tree/master/bootloaders/caterina) or a variant of it (any keyboard built with a Pro Micro or clone, and the Pololu A-Star), and uses the AVR109 protocol to communicate through virtual serial.
To ensure compatibility with the Caterina bootloader, make sure this block is present your `rules.mk`:
To ensure compatibility with the Caterina bootloader, make sure this block is present in your `rules.mk`:
1.Press the `RESET` keycode, or short RST to GND quickly (you only have 7 seconds to flash once it enters)
1.Enter the bootloader using any of the following methods (you only have 7 seconds to flash once it enters; some variants may require you to reset twice within 750 milliseconds):
* Press the `RESET` keycode
* Press the `RESET` button on the PCB if available
* Short RST to GND quickly
2. Wait for the OS to detect the device
3. Flash a .hex file
4. Wait for the device to reset automatically
or
### `make` Targets
make <keyboard>:<keymap>:avrdude
*`:avrdude`: Checks every 5 seconds until a Caterina device is available (by detecting a new COM port), and then flashes the firmware.
*`:avrdude-loop`: Flashes the firmware as with `:avrdude`, but after each device is flashed, will attempt to flash again. This is useful for bulk flashing. Hit Ctrl+C to escape the loop.
*`:avrdude-split-left` and `:avrdude-split-right`: Flashes the firmware as with `:avrdude`, but also sets the handedness setting in EEPROM. This is ideal for Pro Micro-based split keyboards.
## HalfKay
### Caterina commands
HalfKay is a super-slim bootloader developed by PJRC that presents itself as an HID device (which requires no additional driver), and comes preflashed on all Teensys, namely the 2.0. It is currently closed-source, and thus once overwritten (eg. via ISP flashing another bootloader), cannot be restored.
There are a number of DFU commands that you can use to flash firmware to a DFU device:
*`:avrdude` - This is the normal option which waits until a Caterina device is available (by detecting a new COM port), and then flashes the firmware.
*`:avrdude-loop` - This runs the same command as `:avrdude`, but after each device is flashed, it will attempt to flash again. This is useful for bulk flashing. _This requires you to manually escape the loop by hitting Ctrl+C._
*`:avrdude-split-left` - This flashes the normal firmware, just like the default option (`:avrdude`). However, this also flashes the "Left Side" EEPROM file for split keyboards. _This is ideal for Pro Micro based split keyboards._
*`:avrdude-split-right` - This flashes the normal firmware, just like the default option (`:avrdude`). However, this also flashes the "Right Side" EEPROM file for split keyboards. _This is ideal for Pro Micro based split keyboards._
## Halfkay
Halfkay is a super-slim protocol developed by PJRC that uses HID, and comes on all Teensys (namely the 2.0).
To ensure compatibility with the Halfkay bootloader, make sure this block is present your `rules.mk`:
To ensure compatibility with the Halfkay bootloader, make sure this block is present in your `rules.mk`:
1.Press the `RESET` keycode, or short RST to GND quickly (you only have 7 seconds to flash once it enters)
1.Enter the bootloader using any of the following methods (you only have 7 seconds to flash once it enters):
* Press the `RESET` keycode
* Press the `RESET` button on the Teensy or PCB if available
* short RST to GND quickly
2. Wait for the OS to detect the device
3. Flash a .hex file
4. Reset the device into application mode (may be done automatically)
## USBasploader
USBasploader is a bootloader developed by matrixstorm. It is used in some non-USB AVR chips such as the ATmega328P, which run V-USB.
USBasploader is a bootloader originally by [Objective Development](https://www.obdev.at/products/vusb/usbasploader.html). It emulates a USBasp ISP programmer and is used in some non-USB AVR chips such as the ATmega328P, which run V-USB.
To ensure compatibility with the USBasploader bootloader, make sure this block is present in your `rules.mk`:
1.Press the `RESET` keycode, or keep the boot pin shorted to GND while quickly shorting RST to GND
1.Enter the bootloader using any of the following methods:
* Press the `RESET` keycode
* Keep the `BOOT` button held while quickly tapping the `RESET` button on the PCB
2. Wait for the OS to detect the device
3. Flash a .hex file
4.Reset the device into application mode (may be done automatically)
4.Press the `RESET` button on the PCB or short RST to GND
## BootloadHID
BootloadHID is a USB bootloader for AVR microcontrollers. The uploader tool requires no kernel level driver on Windows and can therefore be run without installing any DLLs.
BootloadHID is a USB bootloader for AVR microcontrollers. It presents itself as an HID input device, much like HalfKay, and can therefore be run without installing any driver on Windows.
To ensure compatibility with the bootloadHID bootloader, make sure this block is present your `rules.mk`:
To ensure compatibility with the bootloadHID bootloader, make sure this block is present in your `rules.mk`:
```make
# Bootloader selection
# Teensy halfkay
# Pro Micro caterina
# Atmel DFU atmel-dfu
# LUFA DFU lufa-dfu
# QMK DFU qmk-dfu
# ATmega32A bootloadHID
# ATmega328P USBasp
BOOTLOADER= bootloadHID
```
Compatible flashers:
* [HIDBootFlash](http://vusb.wikidot.com/project:hidbootflash) (recommended Windows GUI)
1. Enter the bootloader using any of the following methods:
* Tap the `RESET` keycode (may not work on all devices)
* Hold the salt key while plugging the keyboard in (usually documented within keyboard readme)
* Tap the `RESET` keycode
* Hold the salt key while plugging the keyboard in - for PS2AVRGB boards, this is usually the key connected to MCU pins A0 and B0, otherwise it will be documented in your keyboard's readme
2. Wait for the OS to detect the device
3. Flash a .hex file
4. Reset the device into application mode (may be done automatically)
or:
## STM32/APM32 DFU
make <keyboard>:<keymap>:bootloadHID
All STM32 and APM32 MCUs, except for F103 (see the [STM32duino section](#stm32duino)) come preloaded with a factory bootloader that cannot be modified nor deleted.
## STM32
To ensure compatibility with the STM32-DFU bootloader, make sure this block is present in your `rules.mk` (optionally with `apm32-dfu` instead):
All STM32 chips come preloaded with a factory bootloader that cannot be modified nor deleted. Some STM32 chips have bootloaders that do not come with USB programming (e.g. STM32F103) but the process is still the same.
At the moment, no `BOOTLOADER`variable is needed on `rules.mk` for STM32.
* [dfu-util](https://dfu-util.sourceforge.net/) / `:dfu-util` target in QMK (recommended command line)
Flashing sequence:
1. Enter the bootloader using any of the following methods:
* Tap the `RESET` keycode (may not work on STM32F042 devices)
* If a reset circuit is present, tap the RESET button
* Otherwise, you need to bridge BOOT0 to VCC (via BOOT0 button or bridge), short RESET to GND (via RESET button or bridge), and then let go of the BOOT0 bridge
* If a reset circuit is present, tap the `RESET` button on the PCB; some boards may also have a toggle switch that must be flipped
* Otherwise, you need to bridge `BOOT0` to VCC (via `BOOT0` button or jumper), short `RESET` to GND (via `RESET` button or jumper), and then let go of the `BOOT0` bridge
2. Wait for the OS to detect the device
3. Flash a .bin file
* You will receive a warning about the DFU signature; Just ignore it
4. Reset the device into application mode (may be done automatically)
* If you are building from command line (e.g. `make planck/rev6:default:dfu-util`), make sure that `:leave` is passed to the `DFU_ARGS` variable inside your `rules.mk` (e.g. `DFU_ARGS = -d 0483:df11 -a 0 -s 0x08000000:leave`) so that your device resets after flashing
### STM32 Commands
### `make` Targets
There are a number of DFU commands that you can use to flash firmware to a STM32 device:
*`:dfu-util`: Waits until an STM32 bootloader device is available, and then flashes the firmware.
*`:dfu-util-split-left` and `:dfu-util-split-right`: Flashes the firmware as with `:avrdude`, but also sets the handedness setting in EEPROM. This is ideal for Proton-C-based split keyboards.
*`:st-link-cli`: Allows you to flash the firmware via the ST-Link CLI utility, rather than dfu-util. Requires an ST-Link dongle.
*`:st-flash`: Allows you to flash the firmware via the `st-flash` utility from [STLink Tools](https://github.com/stlink-org/stlink), rather than dfu-util. Requires an ST-Link dongle.
*`:dfu-util` - The default command for flashing to STM32 devices, and will wait until an STM32 bootloader device is present.
*`:dfu-util-split-left` - This flashes the normal firmware, just like the default option (`:dfu-util`). However, this also configures the "Left Side" EEPROM setting for split keyboards.
*`:dfu-util-split-right` - This flashes the normal firmware, just like the default option (`:dfu-util`). However, this also configures the "Right Side" EEPROM setting for split keyboards.
*`:st-link-cli` - This allows you to flash the firmware via ST-LINK's CLI utility, rather than dfu-util.
*`:st-flash` - This allows you to flash the firmware via the `st-flash` utility from [STLink Tools](https://github.com/stlink-org/stlink), rather than dfu-util.
## STM32duino
This bootloader is used almost exclusively for STM32F103 boards, as they do not come with a USB DFU bootloader. The source code and prebuilt binaries can be found [here](https://github.com/rogerclarkmelbourne/STM32duino-bootloader).
To ensure compatibility with the STM32duino bootloader, make sure this block is present in your `rules.mk`:
* [dfu-util](https://dfu-util.sourceforge.net/) / `:dfu-util` target in QMK (recommended command line)
Flashing sequence:
1. Enter the bootloader using any of the following methods:
* Tap the `RESET` keycode
* If a reset circuit is present, tap the `RESET` button on the PCB
* Otherwise, you need to bridge `BOOT0` to VCC (via `BOOT0` button or jumper), short `RESET` to GND (via `RESET` button or jumper), and then let go of the `BOOT0` bridge
2. Wait for the OS to detect the device
3. Flash a .bin file
4. Reset the device into application mode (may be done automatically)
## Kiibohd DFU
Keyboards produced by Input Club use NXP Kinetis microcontrollers rather than STM32, and come with their own [custom bootloader](https://github.com/kiibohd/controller/tree/master/Bootloader), however the process and protocol is largely the same.
The `rules.mk` setting for this bootloader is `kiibohd`, but since this bootloader is limited to Input Club boards, it should not be necessary to set at keymap or user level.
QMK (*Quantum Mechanical Keyboard*) est une communauté open source qui maintient le firmware QMK, la QMK Toolbox (*Boite à outil*), qmk.fm et leurs documentations. QMKFirmware est un firmware dédié aux claviers qui est basé sur [tmk\_keyboard](http://github.com/tmk/tmk_keyboard). Il offre des fonctionnalités très utiles pour les contrôleurs Atmel AVR, et, plus spécifiquement pour [les produits d'OLKB](http://olkb.com), le clavier [ErgoDox EZ](http://www.ergodox-ez.com), et pour les [produits Clueboard](http://clueboard.co/). Il prend désormais aussi en charge les processeurs ARM qui utilisent ChibiOS. Vous pouvez l'utiliser pour contrôler un clavier personnalisé soudé à la main ou alors sur un clavier avec un PCB personnalisé.
QMK (*Quantum Mechanical Keyboard*) est une communauté open source qui maintient le firmware QMK, la QMK Toolbox (*Boite à outil*), qmk.fm et leurs documentations. QMKFirmware est un firmware dédié aux claviers qui est basé sur [tmk\_keyboard](https://github.com/tmk/tmk_keyboard). Il offre des fonctionnalités très utiles pour les contrôleurs Atmel AVR, et, plus spécifiquement pour [les produits d'OLKB](https://olkb.com), le clavier [ErgoDox EZ](https://www.ergodox-ez.com), et pour les [produits Clueboard](https://clueboard.co/). Il prend désormais aussi en charge les processeurs ARM qui utilisent ChibiOS. Vous pouvez l'utiliser pour contrôler un clavier personnalisé soudé à la main ou alors sur un clavier avec un PCB personnalisé.
## Comment l'obtenir
@@ -29,4 +29,4 @@ Cette commande compilera la révision `rev4` du clavier `planck` avec la disposi
## Comment le personnaliser
QMK a beaucoup de [fonctionnalités](fr-fr/features.md) à explorer, et [une documentation](http://docs.qmk.fm) très abondante que vous pourrez parcourir. La plupart des fonctionnalités vous permettrons de modifier vos [dispositions](fr-fr/keymap.md) (keymaps) et de changer [les codes de caractères](fr-fr/keycodes.md) (keycodes).
QMK a beaucoup de [fonctionnalités](fr-fr/features.md) à explorer, et [une documentation](https://docs.qmk.fm) très abondante que vous pourrez parcourir. La plupart des fonctionnalités vous permettrons de modifier vos [dispositions](fr-fr/keymap.md) (keymaps) et de changer [les codes de caractères](fr-fr/keycodes.md) (keycodes).
QMK est majoritairement écrit en C, avec quelques fonctions et parties spécifiques écrites en C++. Il est destiné aux processeurs intégrés que l'on trouve dans des clavier, particulièrement AVR ([LUFA](http://www.fourwalledcubicle.com/LUFA.php)) et ARM ([ChibiOS](http://www.chibios.com)). Si vous maîtrisez déjà la programmation sur Arduino, vous trouverez beaucoup de concepts et de limitations familiers. Une expérience préalable avec les Arduino n'est pas nécessaire à contribuer avec succès à QMK.
QMK est majoritairement écrit en C, avec quelques fonctions et parties spécifiques écrites en C++. Il est destiné aux processeurs intégrés que l'on trouve dans des clavier, particulièrement AVR ([LUFA](https://www.fourwalledcubicle.com/LUFA.php)) et ARM ([ChibiOS](https://www.chibios.org)). Si vous maîtrisez déjà la programmation sur Arduino, vous trouverez beaucoup de concepts et de limitations familiers. Une expérience préalable avec les Arduino n'est pas nécessaire à contribuer avec succès à QMK.
<!-- FIXME: We should include a list of resources for learning C here. -->
@@ -83,7 +83,7 @@ Limited experimentation on the devices I have available shows that 7 is high eno
La documentation est l'une des manières les plus simples de démarrer la contribution sur QMK. Il est simple de trouver des endroits où la documentation est fausse ou incomplète, et il est tout aussi simple de la corriger! Nous avons aussi grandement besoin de quelqu'un pour éditer notre documentation, donc si vous avez des compétences en édition mais que vous n'êtes pas sûr de savoir où aller, n'hésitez pas [demandez de l'aide](#where-can-i-go-for-help)!
Vous trouverez toute notre documentation dans le répertoire `qmk_firmware/docs`, ou si vous préférez utiliser des outils web, vous pouvez cliquer sur le bouton "Suggest An Edit" en haut de chaque page sur http://docs.qmk.fm/.
Vous trouverez toute notre documentation dans le répertoire `qmk_firmware/docs`, ou si vous préférez utiliser des outils web, vous pouvez cliquer sur le bouton "Suggest An Edit" en haut de chaque page sur https://docs.qmk.fm/.
Lorsque vous donnez des exemples de code dans la documentation, essayez de suivre les conventions de nommage utilisées ailleurs dans la documentation. Par exemple, standardisez les enums en utilisant `my_layers` ou `my_keycodes` afin de garder une consistance:
Sans circuit de réinitialisation vous allez avoir des résultats inconsistants à cause de la mauvaise initialisation du matériel. Regardez le schéma du circuit du TPM754.
## Impossible de lire la colonne de la matrice après 16
@@ -102,7 +102,7 @@ Utilisez `1UL<<16` à la place de `1<<16` dans `read_cols()` du fichier [matrix.
En C, `1` implique un type [int] qui est [16 bits] pour les AVR, ce qui implique que vous ne pouvez pas décaler à gauche de plus de 15. Si vous utilisez `1<<16`, vous aurez un résultat non attendu de zéro. Vous devez donc utiliser un type [unsigned long] en utilisant `1UL`.
## Les touches spéciales ne fonctionnent pas (Touche Système, Touches de contrôle du son)
@@ -122,8 +122,8 @@ Appuyer sur n'importe quelle touche en mode veille devrait sortir l'ordinateur d
**Faites attention au fait que le nommage des pin d'un Arduino diffère de la puce**. Par exemple, la pin `D0` n'est pas `PD0`. Vérifiez le circuit avec la fiche technique.
@@ -12,7 +12,7 @@ Les keycodes sont définies dans [common/keycode.h](https://github.com/qmk/qmk_f
Il existe 3 configurations de clavier standard utilisées dans le monde: ANSI, ISO et JIS. L'Amérique du Nord utilise principalement l'ANSI, l'Europe et l'Afrique l'ISO et le Japon utilise JIS. Les autres régions utilisent généralement ANSI ou ISO. Les keycodes correspondant à ces dispositions spécifiques sont affichés ici :
<!-- Source for this image: http://www.keyboard-layout-editor.com/#/gists/bf431647d1001cff5eff20ae55621e9a -->
<!-- Source for this image: https://www.keyboard-layout-editor.com/#/gists/bf431647d1001cff5eff20ae55621e9a -->
## Certaines de mes touches sont permutées ou ne fonctionnent pas
@@ -33,8 +33,8 @@ La touche trouvée sur la plupart des claviers modernes située entre `KC_RGUI`
Utilisez le keycode pour Print Screen (`KC_PSCREEN` or `KC_PSCR`) à la place de `KC_SYSREQ`. La combinaison de touche 'Alt + Print Screen' est reconnue comme 'System request'.
Voir [issue #168](https://github.com/tmk/tmk_keyboard/issues/168) et
* http://en.wikipedia.org/wiki/Magic_SysRq_key
* http://en.wikipedia.org/wiki/System_request
* https://en.wikipedia.org/wiki/Magic_SysRq_key
* https://en.wikipedia.org/wiki/System_request
## Les touches alimentation ne fonctionnent pas
@@ -54,12 +54,12 @@ Les touches de modification ou les calques peuvent être bloquées si la commuta
Pour les touches de modification et les actions de calque, vous devez placer `KC_TRANS` sur la même position du calque de destination afin de désenregistrer la clé de modificateur ou de revenir au calque précédent lors de la libération.
Cette fonctionnalité permet l'usage de *touches à verrouillage mécanique* comme [ces interrupteurs Alps](http://deskthority.net/wiki/Alps_SKCL_Lock). Vous pouvez l'activer en ajoutant ceci à votre `config.h`:
Cette fonctionnalité permet l'usage de *touches à verrouillage mécanique* comme [ces interrupteurs Alps](https://deskthority.net/wiki/Alps_SKCL_Lock). Vous pouvez l'activer en ajoutant ceci à votre `config.h`:
@@ -6,15 +6,15 @@ GitHub peut être un peu compliqué pour ceux qui n'y sont pas familier. Ce guid
Commencez par la [page GitHub de QMK](https://github.com/qmk/qmk_firmware), et vous verrez un bouton dans le coin en haut à droite qui indique "Fork":


Si vous faites partie d'une organisation, vous aurez besoin de savoir quel compte utiliser pour le fork. Dans la plupart des cas, vous voudrez créer le fork dans votre compte personnel. Une fois le fork complet (cela peut quelques fois prendre un peu de temps), appuyez sur le bouton "Clone or download":


Faites attention à sélectionner "HTTPS", et sélectionnez le lien et copiez-le:


Ensuite, entrez `git clone --recurse-submodules ` dans la ligne de commande, et collez votre lien:
@@ -56,11 +56,11 @@ To https://github.com/whoeveryouare/qmk_firmware.git
Vos changements existent maintenant dans votre fork sur GitHub. Si vous allez à cette adresse (`https://github.com/<whoeveryouare>/qmk_firmware`), vous pouvez créer un nouveau "Pull Request" en cliquant sur ce bouton:
Maintenant, vous pourrez voir exactement ce que vous avez commité. Si ça vous semble bien, vous pouvez le finaliser en cliquant sur "Create Pull Request":
QMK est un firmware Open Source pour votre clavier mécanique. Vous pouvez utiliser QMK pour customiser votre clavier de manière simple et puissante. Tout le monde, du débutant complet au développeur avancé, ont utilisé avec succès QMK pour customiser leur clavier. Ce guide vous aidera à faire de même, quelles que soient vos compétences.
Vous voulez savoir si votre clavier peut utiliser QMK? Si c'est un clavier mécanique que vous avez vous-même construit, il y a de bonnes chances que vous pouvez. Nous supportons un [grand nombre de "hobbyist boards"](http://qmk.fr/keyboards), donc même si votre clavier ne peut pas utiliser QMK, vous ne devriez pas avoir trop de problème pour en trouver un qui vous convienne.
Vous voulez savoir si votre clavier peut utiliser QMK? Si c'est un clavier mécanique que vous avez vous-même construit, il y a de bonnes chances que vous pouvez. Nous supportons un [grand nombre de "hobbyist boards"](https://qmk.fm/keyboards), donc même si votre clavier ne peut pas utiliser QMK, vous ne devriez pas avoir trop de problème pour en trouver un qui vous convienne.
@@ -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:
@@ -6,15 +6,15 @@ GitHub can be a little tricky to those that aren't familiar with it - this guide
Start on the [QMK GitHub page](https://github.com/qmk/qmk_firmware), and you'll see a button in the upper right that says "Fork":


If you're a part of an organization, you'll need to choose which account to fork it to. In most circumstances, you'll want to fork it to your personal account. Once your fork is completed (sometimes this takes a little while), click the "Clone or Download" button:


And be sure to select "HTTPS", and select the link and copy it:


From here, enter `git clone --recurse-submodules ` into the command line, and then paste your link:
@@ -56,10 +56,10 @@ To https://github.com/whoeveryouare/qmk_firmware.git
Your changes now exist on your fork on GitHub - if you go back there (`https://github.com/<whoeveryouare>/qmk_firmware`), you can create a "New Pull Request" by clicking this button:
After submitting, we may talk to you about your changes, ask that you make changes, and eventually accept it! Thanks for contributing to QMK :)
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.