* basic layout v1.0
* changed KC_TRNS to _______
* most symbols are on double tap, except quote, that was cancer
* better formatting and set toggle for game layer
* added colors to layers to make knowing your current layer easy
* have an empty macro working
* enabled unicode
* moved stuff to my folder and removed edits from communal files
* cleanup
* removed the game layer. Never used it
* made changes requested by drashna and vomindoraan
* got rid of some unnecessary code
* got very basic unicode on mac working
* added ctrl_esc
* more changes as requested by noroadsleft
* more leader additions, removed macros because leader stuff replaces that functionality
* removed an old macro I forgot to remove earlier
* final deletion at noroadsleft request
* changed a line to explicitly specify a purple color.
* Fix my Tap Dance issues after I broke them
* Cleanup and organization of userspace documentation
As well as some additional cleanup of functions due to review of documentation.
* Enable Tapdance on Glow and remove more animations
* Revert to Eager PR debouncing
* Add better check for startup animation
* Move where RGB Matrix defines are listed
* Limit RGB Matrix max val
* Update keyboard for Iris Rev 3 conflicts
* Enable encoder support on planck ez
* Remove is_master check from corne\'s OLED code
* Overhaul OLED screens for my Corne
* One last removal
* Show RGB valu On both sides
* Updates for OLED display info
* Fix compile issues for rgb config
* Disabled Space Cadet for all drashna keymaps
* Fix OLED Screen configs
* Minor OLED Tweaks
* Revert some Iris changes
* Fix song include
* Handle MAKE macro for the Corne boards better
* Add super hacky-hack for eeconfig initialization
* Add audio support for Fractal since Elite Cs support it
* Add defines for keycode steps
* Add White layout
* Update Corne RGB info
* Add fun effects to layer indication for RGB Matrix enabled boards
* Use proper define for product name detection
* Update formatting
* Use custom timeout mechanism for OLED timeout
* Fix up OLED screen HSV code for new HSV structure
* Better handle turning off RGB Matrix when sleeping
* Disable MultiSplash Animation
* Change Iris back to using serial
* Why was RGB disabled?!?!?!
* Limit val in rgb_matrix_layer_helper function
* Remove EECONFIG setting for RGB matrix
* Basic Rev 2 implementation
* Updated LED defines and added Extra encoder support
* Fixed rgb pin assignment
* Physically accurate LED positions
* Single Color Band scrolling left to right effects
* Spirals, Pinwheels, and Documentation....Oh My!
* Spiral effect band thickness adjustments
* Fixing animation spin directions
* Full hand LED positions
* Basic Rev 2 implementation
Updated LED defines and added Extra encoder support
Fixed rgb pin assignment
Physically accurate LED positions
Full hand LED positions
Moving rev2 folder
* RGB Center Point LED position update
* Fixing led config commas
* Fixing led config commas
* fix enter key
* fix enter
* Small changes to default
* update default
* typo fix
* update default
* Fixing defines & led config, turned full hand & extra encoders into rules.mk feature
* Refactored rules.mk to have a post_rules.mk
* Forgot to offset the matrix to led map due to the edge led additions
* Updated LED flags and fixed my keymap
* Update keymap.c
include speed controls for RGB
* Fixing more rules.mk and adding keymap like encoders functionality
* Sol Rev 2 Implementation
* Minor fixes
* Keymap fixes
* Fix Colemak, add lock keys
* fix default keymap to not have Q in the 1 position.
* add tsangan hhkb layout
* add a tsangan default keymap
* clean up the default keymap
* add qmk configurator support for new layout
* [Layout] KBP V60 Type R ISO default
* Remove ifdef
* Apply suggestions from code review
@noroadsleft I've accepted your suggestions. Tried locally any everything works as expected.
Thanks again - this if my first keyboard and first time looking at/ using/ contributing to qmk so I appreciate the feedback 👍
Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>
info.json file had the wrong name for the JSON key; the macro that is normally named LAYOUT_all by convention is named LAYOUT_60_all on the Zeal60.
Bug flagged by drashna for flight505 on QMK Discord.
* Update snagpad.h
White-space changes only. Making this file easier to read.
* Update info.json
Refactor:
- add labels
- debug linting (one key object per line)
- reorder keys for LAYOUT_numpad_5x4 (fixes QMK Configurator assigning keys to incorrect positions)
* Update readme.md
Refactor to conform to QMK template.
Updated link to The Board Podcast (old link was Error 404).
* Refactor splittest to support multiple dev boards
* Refactor splittest to support multiple dev boards - revert change to number of RGB led
* Refactor splittest to support multiple dev boards - update docs
* Refactor splittest to support multiple dev boards - correct docs
* Refactor splittest to support multiple dev boards - update teensy master logic
* Update IS_COMMAND definition in templates to use MOD_MASK_SHIFT
* Update IS_COMMAND in docs
* Update IS_COMMAND default definition in tmk_core
* Update table in Command docs based on suggestion
Co-Authored-By: fauxpark <fauxpark@gmail.com>
* Add Configurator layout data for LAYOUT_hotswap
* Add LAYOUT_std60_split_num0
Requested by 李小安#9728 on QMK Discord.
Standard 60% ANSI layout for the alphanumeric region, with a split-0 Numpad.
Includes a sample keymap.
* Update Docs links on readme
* Change melody96.h to use #pragma once include guard
* Change config.h to use #pragma once include guard
* Add readme for default_std60_split_num0 keymap
* Update x11.h
The original json file that was given by the designer was incorrect. The Print Screen and Pause button is swapped.
* Update space65.c
Fixing the Caps Lock LED.
* Revert "Update space65.c"
This reverts commit 1f5de1abaefadd2e54259999a29bab501da5f67a.
* Remove the need to set NUM_OF_ENCODERS
Instead, calculate the size of the array, and use that instead
* Add hack for split common support
* Remove NUM_OF_ENCODERS from keyboard config
Can be reverted, if needed
* Update the :bootloader target to pass along correct hardware info
* Update make scripts to properly grab the settings (a big thanks to @yanfali)
* Remove LUFA debug warnings
* Initial conversion of vagrant to use qmkfm/base_container
* Fix vagrant when using docker provider
* Workaround for VirtualBox VM restarts
* Generalise Vagrant docs slightly and add FAQ
* Store backlight breathing state in EEPROM
* Reduce backlight_config.level from 6 bits to 4 (max 15 "on" levels)
* Error out if BACKLIGHT_LEVELS is > 15
* Remove mention of default backlight pin in rules.mk template
* Remove pointless comment
Zeroing out spd in eeconfig_init_quantum
Switched to block read & update
Update tmk_core/common/eeconfig.h
Co-Authored-By: Drashna Jaelre <drashna@live.com>
Fixing init compile error
Update eeconfig.c
Dead / Missing API cleanup
alignment
* Enable Mousekeys on Corne Keyboard by default
For Tessachka and Configurator support
* ENable for default image too
* Remove most of rules.mk for default keymap
* make sure rgblight is enabled by default
from default keymap
* Add out of bound check for Leader Key sequence array
* A shot at advanced C stuff for Leader Key optimization
* Revert most changes
* Change default back
* Include string.h if compiling for ARM
* Use sizeof instead of a number
* Align sendstring LUTs to 9 characters wide
* Replace 0 with XXXXXXX
* Use decimal 128 for LUT size
* Align heading comments
* Add ASCII table comments
* Add missing AltGr LUTs and adjust keycode LUTs accordingly
* Use pragma once
* Correct a couple more keycodes
* Capitalise "BÉPO"
* Also clean up the default tables
* Tidy up Belgian and Norman LUTs
* Add user-overridable callback for cancelling UCIS input
To clean up things from qk_ucis_start_user() for instance.
* restore lost newline to quantum/process_keycode/process_ucis.c
Co-Authored-By: shinmai <aapo.saaristo@gmail.com>
* Script to generate keymap.c from JSON file.
* Support for keymap.json
* Add a warning about the keymap.c getting overwritten.
* Fix keymap generating
* Install the python deps
* Flesh out more of the python environment
* Remove defunct json2keymap
* Style everything with yapf
* Polish up python support
* Hide json keymap.c into the .build dir
* Polish up qmk-compile-json
* Make milc work with positional arguments
* Fix a couple small things
* Fix some errors and make the CLI more understandable
* Make the qmk wrapper more robust
* Add basic QMK Doctor
* Clean up docstrings and flesh them out as needed
* remove unused compile_firmware() function
* Add support for XD004
Also applying the following suggested edits:
Add hardware availability link in readme
Co-Authored-By: Drashna Jaelre <drashna@live.com>
Enable lite bootmagic
Co-Authored-By: Drashna Jaelre <drashna@live.com>
Remove commented out MCU
Co-Authored-By: fauxpark <fauxpark@gmail.com>
* Add more ellaborate keymap
Correcting usage of tap_code_16 for modified key, thanks to @drashna
* Add information about bootloader type
Co-Authored-By: Drashna Jaelre <drashna@live.com>
* add keyboard new macro pad "Kuro"
* change main readme.md
* remove not used code from default/keymap.c
* Remove unnecessary code
* Supports info.json
* removed back slash and not used functions.
* update at product link. add japanese messages.
* Added initial files for the Adron 3-key macro pad
* Refactor of "adron_pad" to "ivy", cleaned up the readme and removed un-needed keymap as well.
* Made suggested changes to commit for PR
* Removed unneeded define block from SUBPROJECT_rev1 as it is redundant (Thanks drashna ;) )
* Add missing TD_RSF_RCT tap dance
* Use standard QMK HSV and RGB structs, fix Godspeed colors
* Move PROGMEM after the type in RGB intervals
* Add MODERN_DOLCH_RED color, use it on KBD6X
* Use 255 instead of RGBLIGHT_LIMIT_VAL in color definitions
* Remove IS_COMMAND override on Whitefox
* Hightlight that sudo may be needed
Also added "dfu-programmer: no device present" in so that anyone searching for that particular error can hopefully find the page.
* Use new style of indicating a warning
* Indicate that the FAQ should be read instead of blindly using sudo
* Switch version incrementing to the command put together by @noroadsleft.
* Update util/travis_compiled_push.sh
Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>
* added files for KeyHive Maypad
* updated maypad files and moved honeycomb inside keyhive dir
* fixed file paths, incorporated changes with fauxpark's suggestions, undid honeycomb move
* updated with fixes from PR
* added new lines to end of honeycomb files to fix compiling
* Updated info.json to match the macro name from maypad.h
Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>
* reordered layout in info.json
Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>
* removed KEYMAP from maypad.h
Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>
* removed extraneous keymap files
* pulled qmk/master for honeycomb
* added ortho_5x4 and keymap cleanup
* matched identities in maypad.h
* added bootmagic functionality to maypad
* changed bootmagic to lite
* Clarify the rules.mk setup for Unicode
* code point
Co-Authored-By: Konstantin Đorđević <vomindoraan@gmail.com>
* Remove "your"
Co-Authored-By: Konstantin Đorđević <vomindoraan@gmail.com>
* Undo a line change
Co-Authored-By: Konstantin Đorđević <vomindoraan@gmail.com>
* dot the comma
Co-Authored-By: Konstantin Đorđević <vomindoraan@gmail.com>
* Update docs/feature_unicode.md
Co-Authored-By: Konstantin Đorđević <vomindoraan@gmail.com>
* added handwired keyboard wulkan
* added info.json for qmk configurator
* fixed spelling
* enum dont need to be assigned to zero
* removed cflag from readme
* updated rules.mk
* removed unneeded rows from config
* moved unicode to keymap conf
* fix adjust layer and comments for keymap
* Fix up GPIO macros
* Fix up send string macros
`string` arguments must not be parenthesized
* Fix up miscellaneous macros
* Make indentation uniform (4 spaces)
* Make #ifdef vs #if defined usage consistent
* Reorder standard includes
* Revert indentation changes as per review comments
* Revert #if defined(__AVR__) → #ifdef __AVR__ change
* Change 2 space indent to 4 spaces on a couple of lines
* Replace include guard with #pragma once
Using QUANTUM_LIB_SRC prevents the warning when multiple sources add the i2c_master.c file. Boards such as the Ergodox EZ Glow see this warning every time they compile because the board uses the file in general, and because the RGB LED Matrix requires it, as well.
* Add wasdat:konstantin keymap
TODO: Move it to layouts/
* Use HHKB arrow arrangement for mouse keys on KBD6X
* Move KC_APP from Ctrl to M on all boards
* Use RCT_RSF on Melody96
* Set TAP_HOLD_CAPS_DELAY to 50 in userspace
* Use RSF_RCT instead of RCT_RSF
* added iris rev 3 keymap
* stuff
* Update config.h
* Removed personal mapping folder so that I can branch it
* Added personal Iris keymap folder
* added enums, removed break after return, and removed line 3 of keymap.c
* removed process record function
* greenshadowmaker keymap for idobo xd75 massdrop
* remove uneeded config.h
* corrected format to match convention instead of xd75 where I accidentally started from
* fixed errors and added arrows bottom right to match my other layouts
* updated readme
* right arrow fix
* Update keyboards/idobo/keymaps/greenshadowmaker/keymap.c
removing unnecessary part, copied from different keymap
Co-Authored-By: fauxpark <fauxpark@gmail.com>
* added suggested changes
* removed unneded elements
* updates to my iris keymap
* some rational updates to the keymap - let's see how this works
* updates to my iris keymap
* some rational updates to the keymap - let's see how this works
* add mouse keys and remove unused keys and some cleanup
* a little bit more cleanup
* actually enable mousekeys
* fix markdown lint complaints
* fix capitalization
* changes made per suggestions
* initial commit, copied from singa
* default 60_ansi LAYOUT implemented and tested workin
* add rgb underglow support bounded by ifdefs
* edit readme to provide information on reset procedure and on rgb underglow support
* improve the default keymap to have a second layer with function keys and even a RESET
* Add LAYOUT_all macro and discovered that split backspace uses an additional pin on the microcontroller
* fix up last line in readme
* Add QMK Configurator support
* Convert gh60.h to #pragma once include guard
* Lint gh60.h
This commit only changes white space.
* Convert info.json to debug linting
Making this file easier to read.
* Put the label keys first for LAYOUT_60_ansi
* Complete and correct key labels in info.json
* Duplicate LAYOUT as LAYOUT_all
Doing this for backwards compatibility. Has implications for user keymaps.
* Update LAYOUT_all to make sense
The original macro LAYOUT submitted for the GH60 gets a couple of things wrong:
- K49 is placed between Space and Right Alt, when it's actually the right half of a split Backspace
- K3C is assigned before K3D, when K3C is the 1u portion of a 1.75u/1u split Right Shift, and therefore K3D is actually to the left of K3C
The LAYOUT_all macro corrects these issues, but the LAYOUT macro is unchanged, so as to not break user keymaps that depend on it.
This commit also updates the default keymap to use the LAYOUT_all macro, and makes a minor change to the base layer to be more as a user would expect for the corresponding physical layout.
* Correct the layout data for the LAYOUT macro in info.json
Gives proper Configurator rendering.
* Modernize default keymap
Update the default keymap to use more modern QMK conventions.
* Modernize the LED management code
Update the LED management functions to use the GPIO functions, and clean up the led_set_kb() function.
* Update key labels in info.json for LAYOUT_60_ansi_split_rshift
Makes them consistent with the the rest of the file.
* Update Docs links in readme file
* Snowkuma's planck layout.
Heavily influenced by both Planck and SDOTHUMs layouts. I have tried to
implement a comfortable layout with a wide stagger and a minimal set of
key usage.
Still a work in progress, hope it is useful to others.
* Adds simple readme file and images of layout
* Removes unused experimental definitions
* Update readme.md
Adds images of layout to readme.
* Removes accidentally added test keymap .swn .swo .swp files
* Updates config.h replaces include guard
As suggested by @noroadsleft replaces the include guard (ifndef, define
and endif) with just `#pragma once`.
* Replaces two extra KC with inbuilt QMK equivalents
custom_keycodes.h
Replaces `___f___` with the equivalent QMK alias `_______` KC_TRNS
`___x___` with the equivalent QMK alias `XXXXXXX` KC_NO
Updates keymap.c to reflect the changes made.
* Changes keymap.c to include QMK_KEYBOARD_H
Replaces planck.h and action_layer.h includes with the single inclusion
of QMK_KEYBOARD_H which includes action_layer.h automatically.
* Update keyboards/planck/keymaps/snowkuma/keymap.c
Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>
* Update keymap.c
removes unused Coleman key code from enum planck_keycodes
* Update keymap.c removes COLEMAK key code logic
* Initial keymapping
* Removed unneccessary config files
* Update readme.md
* Updated symbol locations, tap dance on parentheses for brackets.
* Update readme.md
* Fixed layout image inconsistencies
* More quality shift key layer control, swapped enter + shift enter
* Keyap tweaks and config cleanup
* Almost compiling, still has layout reference issues.
* Finally compiling. 2x2u layout (default, not mine) had nonexistent keys on it
* Super minor changes
* Ctrl+Bksp after first tap
* Changed bind so un/lock is explicit to work with remote un/locking
* Added keyboard passwords please don't hate me
* Changed backspace functionality and added em dash
* Changed to send_string because it's preferred for macros
* Minor fixes
* Removed global redefinition and fixed possible issue between 6KRO and NKRO
* Cleanup
* Layer names, password layer is OSL over toggle
* Hopefully now in QMK preferred format.
* Blank passwords.c
I realized with me excluding this it wouldn't compile - so adding a blank one.
* Fixed OSLs not cancelling after tapping term
* Matrix change.
KC_NO instead of repeating.
* Unneeded line.
Co-Authored-By: IsaacElenbaas <34344969+IsaacElenbaas@users.noreply.github.com>
* Fixed return statements to work with after-press functions
* External image host
* Removed image from github
* Removed unneccessary rules.mk lines and fixed tabbing
* Typos
* Fixes upon part arrival.
* Final changes and bug fixes
* Preventing KC_NO from waking monitors.
* Fix to rest of matrices
In response to https://github.com/evillemez/qmk_firmware/issues/1—the rest have the same problem.
The switch of k37 for k36 is just for consistency between that and the 2x2u.
* Workaround for #6214, minor changes, CRLF change in passwords because it won't leave my modified no matter what I do.
* Add Pulse 4k, a macropad by Maxr1998
* Some config tweaks
* Remove image note
* Add license headers
* Fix media keys
* Remove Play/pause again as it doesn't work on Linux
* Initial refactor of onekey to support multiple development boards
* Fixes to get teensy lc && 3.2 working
* Add pin tables
* Add caveats to Teensy boards
* Correct bootloader for Elite-C
* [Keyboard] Modernize the KMAC implementation
This brings the matrix implementation more in line with the current
default matrix code.
It also simplifies the implementation quite a bit.
* [Keyboard] Add layout support to KMAC
* Rename layout macros
The Instant60's info.json was updated in #6157. The intention seems to have been supporting Community Layouts, but that feature was not implemented. After checking that the layouts conform, rename the appropriate layout macros.
- rename LAYOUT_ansi as LAYOUT_60_ansi
- rename LAYOUT_tsangan as LAYOUT_60_tsangan_hhkb
- update `default` and `tsangan` keymaps
* Enable Community Layout support
Supported Community Layouts:
- 60_ansi (Instant60 ANSI version)
- 60_tsangan_hhkb (Instant60 Tsangan version)
* keymap simplification and fancy alt tab behaviour
* move symbols around and try ergo numbers
* mess with symbol positions
* f11 and f12 for volume control (for ease of remapping)
* slack unread navigation
* experiment with mods on home row
* mods on symbol layer
* dedicated tab left and tab right keys
* swap next and prev
* remove hold to shift on a and o
* revert to simpler keymap
* restore readme
* point to keymap image
* cmd + cmd -> cmd + ctrl
* expand readme
* slack unread channel navigation
* Update keyboards/planck/keymaps/callum/keymap.c
Co-Authored-By: Drashna Jaelre <drashna@live.com>
* return true from cmd handling block
* [keyboard] TA-65 by maartenwut
Add ta65 to QMK with 4 layouts
* Simplify config.h
* Simplify keymap
* Update bootloader
- confirmed to be qmk-dfu by maartenwut
* Update keyboards/ta65/readme.md
Co-Authored-By: fauxpark <fauxpark@gmail.com>
* Review feedback
- fauxpark recommendations
- noroadsleft recommendations
* Repair info.json structure
JSON objects were not properly nested according to the QMK specification.
* Switch info.json to "debug linting"
So I can read the file more easily.
* Remove k2c and k31 from LAYOUT_tsangan
k2c was the Non-US Hash position, and k31 was the Non-US Backslash position, but this layout is intended for ANSI.
* Correct LAYOUT_tsangan data in info.json
* Update tsangan keymap to use updated LAYOUT_tsangan macro correctly
* Rename LAYOUT_tsangan to LAYOUT_ansi_tsangan
Increased clarity.
* Rename tsangan keymap as default_ansi_tsangan
Per QMK Keyboard Guidelines.
* Fix object ordering for ISO layouts in info.json
ISO Enter's object was out of sequence in both layouts.
* Rename ISO keymaps per QMK Keyboard Guidelines
- rename iso keymap as default_iso
- rename iso_tsangan keymap as default_iso_tsangan
* Add default_ansi keymap
For user reference.
* Enable Community Layout support
LAYOUT_ansi and LAYOUT_iso conform to the 65_ansi and 65_iso Community Layouts, respectively.
- rename LAYOUT_ansi to LAYOUT_65_ansi
- rename LAYOUT_iso to LAYOUT_65_iso
- update keymaps as appropriate
- add LAYOUTS rule to rules.mk
* Disambiguate key labels in info.json
* Remove trailing white space from info.json
* Update keyboards/ta65/keymaps/maartenwut/config.h
Co-Authored-By: Drashna Jaelre <drashna@live.com>
* Add omnikeyish keyboard support.
* remove out of date comment
* PCB Rev 1.1 moved Row5's pin to E6, because the teensy++ hangs an onboard LED off D6.
* Move string.h include to .c file
* Add pcb kicad link.
* Add info.json
* Move macro programming to numlock's keyposition, the most useless key on the post model M layout. Force numlock enabled on host at init time, so you're not stuck without a numpad (hopefully)
* Make the macro blink function toggle LEDs from their previous state.
* Use incorrect but code style compliant opening curly bracing style.
* Make PCB rev 1.1 the default Omnikeyish config, as the author has the only rev 1.0 boards that'll ever be.
* Fix silly spelling error in 3 defines
* First set of review changes.
* Layout macro and keymap defined using it.
* Layout macros for the northgate factory plates.
* minor rearrangements
* ALL the layouts.
* Forgot ultra-t in info.json
* fixed issue with LED indicators
corrected error in info.json
* fixed issue with led indictors
* added fix for key_count to info.json for westfoxtrot/aanzee
* fix to support config.qmk.fm correctly and remove unused key from matrix for westfoxtrot/aanzee
* fix for caps_lock led
* Update readme.md
* Fix breathing always on for soft PWM
* Remove reference to hardware PWM pins in BACKLIGHT_BREATHING description
Now, breathing will only be unsupported when Timers 1 and 3 are both used by Audio
* Document BACKLIGHT_ON_STATE and its purpose
* Move layout macros to revision folders
* Update Planck EZ layout macros
Planck EZ only supports one layout (centered 2u spacebar). Deleted all the other macros.
* Flesh out QMK Configurator support
Give each Planck revision its own info.json file.
* Readme updates
- give each revision its own readme
- add the Planck EZ to the main Planck readme
* Fix layout macro for Planck EZ
Previous matrix didn't compile because the electrical matrix defined a k3b location, which was unused by the physical arguments.
Drashna was kind enough to confirm the Planck EZ's matrix for me.
Co-authored-by: Drashna Jaelre <drashna@live.com>
* Pretend the Planck EZ supports ortho_4x12 layout
The hardware doesn't, but doing so prevents CI errors because the default keymap uses LAYOUT_planck_grid.
Going to pretend LAYOUT_ortho_4x12 is a valid layout for the Planck EZ.
* Update Planck EZ's URL in info.json
Co-Authored-By: Drashna Jaelre <drashna@live.com>
* added keyboard_layout_jopr
* making it compile
* #pragma once instead of #ifndef and #define
* renamed and added keymap
renamed old "default" to "modded_white", added new "default" that resembles an ISO 105-key layout
* reordered keyboards/jopr/info.json to match order o layout array
* implemented most suggestions
* fixed missing ;
* fixed bootloader setting for rules.mk
* adopted standard layout matrix naming convention
* "fixed" commented-out code in keymaps
* changes to keymap layers and LEDs
Turns out adding a layer for ROYA-modified keycodes is more trouble than it's worth and works better by just defining a ROYA key.
Also, LEDs were set up incorrectly.
Lastly, implemented SysReq-Warning LED.
* moved forced NumLock code
just in case either it or the CapsLock & ScrlLock update code wouldn't both work otherwise
* rearranged media keycodes
* replaced Shifted keycodes with basic ones
* Apply suggestions from code review
Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>
* implemented suggestions by noroadsleft
* Apply suggestions from code review
Make ISO-Enter QMK Configurator-friendly
Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>
* Update readme.md
* Update keyboards/jopr/info.json
Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>
* moved keyboard to handwired folder
It was said that personal passion projects belong in there, even if they're not actually handwired
* Update readme.md
* added personal CTRL keymap
* added personal dz60rgb keymap
* enabled new rgb effect
* added space cadet shift
* media player track buttons now orange
* updated keymaps with rgb setting and visual HSV setting preview
* fixed source stuff?
* added support for underglow toggle (bugged to all hell)
* everything now behaves as expected when ti comes to RGB toggles, thank god
* removed ifdefs
* changed color of MAS_CRM
* uh, whitespace
* changed rgb positions and modifiers within RGB matrix thing for CTRL and DZ60RGB
* updated keymap to work kindof
* KEYMAP: changed list of rgb effects
* changed CTRL rgb defaults
* KEYMAP: new LED layout for ctrl
* fixed white LED position in indicator
* changed capslock tap timing
* Fix backlight breathing on C6
* Account for ATmega32A's single TIMSK register (MT40)
* Document hardware PWM on D4 for ATmega32A
* Add C6 and D4 to BACKLIGHT_PIN description
* new keymap for the hasu with media keys and mac layout
* switch escape and grave
* switch to the usual default
* with play and stop
* add reset on fn layer
* add mouse buttons, move reset, update copyright
* changes to keymaps
* changes to userspace
* changes to userspace
* removed reference to fc660c keymap which no longer exists from userspace readme
* removed preonic keymap
* Fix typo for RGBLIGHT config values
It doesn't make a difference right now since these are the defaults in
rgblight.h (which I'm just setting explicitly since some of the keyboard
configs change these defaults). However, I'd rather be explicit, so
fixing my typo. :)
* Remove mouse keys layer from Quefrency keymap
It's a fun idea, but I never use it in practice.
* Planck: layout macro refactor
Unified layout macro names across AVR and ARM boards.
Currently certain layout macros are specific to either AVR or ARM when used in the QMK Configurator. If an AVR-specific macro is used for a Planck rev. 6, or an ARM-specific macro on a rev. 5 or earlier, the user receives a compile error.
* Update keyboards/planck/planck.h per @drashna
Changed KC_LAYOUT_ortho_4x12 alias to LAYOUT_kc_ortho_4x12.
Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>
* Add KC_KEYMAP alias for LAYOUT_kc macro
per @drashna
Update keyboards/planck/planck.h
Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>
* Fix LAYOUT_planck_1x2uC macro for Planck rev6
Thanks to drashna for testing.
* Fix inline comment regarding revisions
* Add specific info.json file for Planck rev6
* Adding led support for Plaid
* Adding led support for Plaid
* Update readme.md
Fixing bad markdown
* Adding my personal keymap
* Clarifying LED instructions / formatting
* modify oled_driver to support SH1106
also:
- improve mechanism to specify which OLED IC we use
- comment calc_bounds()
- give OLED_COLUMN_OFFSET a default value
- inline comment re: OLED MEMORY_MODE and SH1106
- update docs/feature_oled_driver.h for SH1106 support and related changes
- docs: OLED: note we have tested SSD1306 on ARM boards (per @XScorpion2)
- define out MEMORY_MODE when using SH1106 OLED driver
* document that SSD1306 128x64 on AVR works
Per @XScorpion2: https://github.com/qmk/qmk_firmware/pull/5787#discussion_r291837842
* Add vlukash CrKbd keymap to support trackpad adapter.
The trackpad adapter uses Elite-C board that has five extra pins.
Also SPI pins are taken for trackpad, keymap config updates column data
pins for matrix scan.
* Update vlukash keymap
* Enable pointing devide, configure mouse BTN1
* Set TAPPING_TERM to 300
* Add support for the BlackBerry 8520 trackpad
* Add vlukash keymap for master-right no-trackpad version
* Remap backspace
* Set EXTRAKEY_ENABLE = yes
* Update thumb keys mappings
* Set bootloader to atmel-dfu
* Sync keymap
* Add scrolling support
* Make debug LEDS conditional
* Add support for both flex and no-flex PCBs
* Add readme and rename root folders
* Update readme file with blog link
* Fix readme file formatting
* Remove ADJUST keycode, code cleanup.
* Add Win key to the keymap.
* add calbatr0ss dz60 layout
* add media controls
* add media next/prev controls
* add base layer for windows and macos
* swap right ctrl and menu
* missing bracket
* update gitignore
* niu_mini uses dfu bootloader rather than the afrdude bootloader
modified: readme.md
* Change rules in rules.mk to reflect the bootloader change
modified: keyboards/niu_mini/rules.mk
* Add 60_ansi_split_bs_rshift layout to DZ60
I know there's already a lot of DZ60 layout macros, and #4668 suggests
they should be refactored at some point, but since this is one of the
standard layouts already in QMK that this PCB supports, I figured it was
okay to add so that DZ60 keyboards can share this layout with other
keyboards.
* New 60% ANSI split backspace/right-shift layout
I'm using this on a DZ60, but it should work fine on most 60% PCBs. It's
basically a HHKB layout with a standard ANSI bottom row (3x 1.25U mods,
6.25U spacebar, 4x 1.25U mods).
* martenwuut's original code commit
* delete random directory that is the same as the parent directory
* get this compiling
* update readmes
* add manufacturer
* fix up the keymap error and replace KC_A with KC_1
* add verc support which is basically just at trimmed down verb
* update keymap readme to specify which redscarf it is
* add parent level readme
* fix grammar
* fix up readmes and put in alternative name for PCBs
* add configurator support for the ver.c pcb
* add configurator support for Ver.B (RS78) pcb
* add iso support for Ver.C (RS68)
* change DEBOUNCING_DELAY to just DEBOUNCE
* remove K2C to fit the default layouts
* fix keymap
* fixup configurator layout with split backspace
A delay of 10ms seems sufficient. Otherwise, media keys tapped from the
encoder of my BDN9 macropad only seem to get picked up by the OS
(Windows 10) some of the time.
* Candybar: updated rules.mk
Disabled console and command to get compiled size under flash space limitations.
* Candybar: Enable LINK_TIME_OPTIMIZATION_ENABLE
* [Keymap] iris@nstickney: improve RGB init
Perfecting the rgb backlight initialization with a delay for each
color; also start and stop the animation at the "default layer"
color.
* [Keymap] iris,ergodox@nstickney fix FN on SYMB
The function key was not operational on the SYMB and SYSH layers due
to other keycodes being mapped over MO() on those layers. The
offending keycodes have been moved to other keys.
* [Keymap] add @nstickney's userspace
Pulled common code out to a userspace directory for my iris and
ergodox keymaps.
* [Keymap] iris@nstickney add image to README
Added an image from keyboard-layout-editor.com to meet the README
standard.
* iris@nstickney hue values now `uint8_t` (#6050)
* Remove all Copyrighted Sounds and Songs
This removes any song that has a license/copyright on them.
Additionally, it adds the license information for any song that remains.
* Add removed song list
Can be reverted if we'd rather do that
* Use newer coding conventions
* Fix typo
Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>
* Revert copyright date
* Update quantum/audio/song_list.h
Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>
* faq_general.md to Chinese
faq_general.md to Chinese
faq finished
* custom_quantum_functions.md to Chinese
custom_quantum_functions.md to Chinese
* custom_quantum_functions.md fix
custom_quantum_functions.md fix
* custom_quantum_functions.md fix translate
custom_quantum_functions.md fix translate
* !ver.English! _summary.md bug fix
_summary.md bug fix of English doc. add".md" behind "feature_combo"
* !ver.English! custom_quantum_functions.md fix#5869
custom_quantum_functions.md in English : delete redundant "is" . issue#5869
* !ver.English! how_keyboards_work.md link fix
change
https://en.wikipedia.org/wiki/Unicode_input#Hexadecimal_code_input
to
https://en.wikipedia.org/wiki/Unicode_input#Hexadecimal_input
"#Hexadecimal_code_input" not exist
* !English! how_keyboards_work.md add missing "t"
Tied to a specific OS a a time (need recompilation when changing OS);
change to
Tied to a specific OS at a time (need recompilation when changing OS);
* _summary.md improve translation
_summary.md improve translation
* reference_glossary.md into Chinese
reference_glossary.md into Chinese
术语表翻译,这个术语表英文版似乎不太全,应该补充英文版,并在中文版添加其他具有中国特色的术语。
* Dimple: fix unintended LED behaviour
The LED was always-on if the custom keymap did not call dimple_led_off()
at least once.
* Dimple: LED code fixup
* correct indicator light states.
function of indicator lights was inverted. these changes correct that.
* flesh out keymaps pre production
* Enable extrakey in rules
* 8-Pack Macropad
* Added MANUFACTUTER to config.h
* Fix the mirrored keymaps by creating rev1.1 and rev1.2 layouts, then using them in the keymaps
* fixes from code review comments
* Use revisions to manage the different layouts for rev1.1 and rev1.2
* Add DEFAULT_FOLDER to fix default build failures
* code review comments fixes
* code review comments fixes
I2C timing parameters were seemingly set up for an STM32F303 target MCU, at a specific clock speed. This commit allows specifying the timing parameters via config.h, allowing other STM32 MCUs to be targeted, potentially at different clock frequencies.
Alternate function modes for the I2C pins are now also configurable, allowing for remapping to other pins.
* Generate project, fill in the details
* Repair json
* Separate keymaps to numpad and all-1U
* Apply suggestions from code review
Co-Authored-By: Elliot Powell <32494740+e11i0t23@users.noreply.github.com>
Co-Authored-By: Drashna Jaelre <drashna@live.com>
* Begin work
* Make things a tad easier to read
* Fix spacing
* Get things compiling
* Build a variety of generic keymaps
* Correct RGB pin
* Add configurator json
* Apply suggestions from code review
Co-Authored-By: Elliot Powell <32494740+e11i0t23@users.noreply.github.com>
Co-Authored-By: MechMerlin <30334081+mechmerlin@users.noreply.github.com>
* Remove JJ50 data from YMD96
JJ50 was actually added as its own keyboard when this was added in #2546. It should have been taken out then, but wasn't.
* Update ymd96.h
- use #pragma once include guard
- remove redundant file includes
* Update LAYOUT_iso macro to K<row><col> notation
* Update LAYOUT_custom macro to K<row><col> notation
* Update LAYOUT_default macro to K<row><col> notation
* Refactor default keymap
* Rename readme file to lowercase
* Rename layers enum and default layer
- renamed layers enum to layer_names
- proposed by fauxpark in Issue 5977, and I like the idea
- https://github.com/qmk/qmk_firmware/issues/5977#issuecomment-495924338
- renamed the base layer to _DEFAULT
- I think it looks nicer.
* initial commit
* remove mentions of oe and replace with le
* add new layout macros with the spacebar change
* add rgb underglow support
* Update keyboards/exclusive/e6v2/le_bmc/rules.mk
Co-Authored-By: fauxpark <fauxpark@gmail.com>
* Update keyboards/exclusive/e6v2/le_bmc/readme.md
Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>
* belgian layout had no sendstring definition
* backtick was not defined for belgian sendstring
* slash definition was wrong for belgian sendstring
Co-Authored-By: fauxpark <fauxpark@gmail.com>
* use BE_ keys whenever we can
Co-Authored-By: fauxpark <fauxpark@gmail.com>
* ^ can be sent as a normal key (not a dead key) with altgr+para
* changed rgb positions and modifiers within RGB matrix thing for CTRL and DZ60RGB
* changed CTRL corner LEDs + centered horizontally
* whoops - changed CTRL's underglow LEDs back to the underglow flag
* whitespace
* I changed the right file this time
* Fixed DZ60RGB left shift out of position
* Expand info.json formatting to one line per key
This is a white-space-only change. Make it easier for me to read the file.
* Make sure every key object has a label
Going to be using them shortly.
* Insert key identifiers from v1.h into info.json labels
Shows where each key is located in the switch matrix.
* Move K5O to its correct location on the top row
* Adjust white space in v1.h
At this point, the macros for LAYOUT and LAYOUT_75_ansi are 100% identical, except for their names.
* Redefine LAYOUT_75_ansi as an alias of LAYOUT
No need for two code blocks with the same data.
* Correct visual positioning in info.json
- move Pause 1u to the right
- move K5O to the top row, between Print Screen and Pause
- move Enter key 1u to the left and 1u wider (1.25u to 2.25u)
* Delete key identifiers from info.json labels
Don't need them anymore now that we know where everything is.
I'm calling K5O as ScrLk so it has a label, even though that's not actually what it is.
Also gave the Spacebar a label because I prefer when all the keys have labels.
* Enable 75_ansi Community Layout support
* Reassign layout macro as LAYOUT_75_ansi and delete macro alias
Configure the codebase so LAYOUT_75_ansi is the only layout macro available.
* Add key_count key to info.json data
* added personal CTRL keymap
* added personal dz60rgb keymap
* enabled new rgb effect
* added space cadet shift
* media player track buttons now orange
* updated keymaps with rgb setting and visual HSV setting preview
* fixed source stuff?
* added support for underglow toggle (bugged to all hell)
* everything now behaves as expected when ti comes to RGB toggles, thank god
* removed ifdefs
* changed color of MAS_CRM
* uh, whitespace
* changed rgb positions and modifiers within RGB matrix thing for CTRL and DZ60RGB
* updated keymap to work kindof
* KEYMAP: changed list of rgb effects
* changed CTRL rgb defaults
* KEYMAP: new LED layout for ctrl
* adds spacetime keyboard
* removes custom tap and mod functions
this commit replaces tap_key, control_key and shift_key with built-in
tap_code16.
* changes thumb layer and makes left palm key ralt
* Add support for LSJ Ares
Thanks to the other ports which have made this port possible.
* Update Ares code per request
* More changes to Ares
* Update Ares rules.mk
Co-Authored-By: Maartenwut <maartenwut@gmail.com>
* Remove escaping backslashes from Ares default keymap
* mostly done with first version of Ellipse Rev1 software
* mostly done, error with backlight breathing
* more testing and changing default keymaps
* ready for first release attempt
* fix newline in readme
* fix copyright and extraneous declarations and symbols
* remove more excess backslashes
* fixed more formatting
* feat-user-kuatsure: abstract symbol row out
* feat-user-kuatsure: abstract grouped bracket, brace, paren out
* fix-preonic-kuatsure: remove eol as requested by @drashna
* feat-user-kuatsure: add KC_MAKE and KC_FLSH
thanks to @drashna for the help
* chore-preonic-kuatsure: remove auto shift
* chore-user-kuatsure: move leader seq's to macro syntax
* feat-user-kuatsure: add `KC_VRSN` key
plus use it preonic keymap
* chore-user-kuatsure: namespace keyboard macros `KB`
* chore-preonic-kuatsure: move some keyboardy keys around
* chore-preonic-kuatsure: remove parens, brackets, braces from lower
* chore-user-kuatsure: move tmux window shifts to dbl press leaders
* feat-user-kuatsure: add a computer lock leader seq
* fix-preonic-kuatsure: go back to lower brackets
* chore-preonic-kuatsure: clear out raise
* feat-various-kuatsure: add meh + tab mod tap
* chore-preonic-kuatsure: `raise` eats `game_mod` layer
* fix-preonic-kuatsure: reverse pg up and pg down
* chore-user-kuatsure: add double tap to turn off music
* chore-user-kuatsure: move like seqs together
* chore-preonic-kuatsure: add a few more items to the num pad on raise
* feat-user-kuatsure: re-enable td for <> keys
* chore-user-kuatsure: give a little more grace period for leader
* fix-user-kuatsure: give lock leader a gui buffer
no timer or anything, but alfred doesn't boot up as quickly as I would like sometimes
gui doesn't do anything but gives a little bit of a time bump
* fix-user-kuatsure: changes from @drashna review
* Switch Quefrency from flaky I2C back to serial
* Lower mouse wheel speed on Quefrency slightly
* Migrate common settings to userspace
* Enable Bootmagic Lite for consistent reset to bootloader.
* Turn off some undesired features across all keyboards.
* Remove EEPROM reset keybinding from all keyboards since Bootmagic Lite
also does an EEPROM reset.
* Set backlight and underglow increments consistently across all
keyboards since lots of them like to override the deafults.
* Set mouse keys consistently across all keyboards.
* Update function layer keymap images
* translate docs into Mandarin Chinese
translate
faq_debug.md
into Chinese
* translate faq_build.md into Chinese
translate faq_build.md into Chinese
* faq_keymap.md to zh-cn
faq_keymap.md to zh-cn
* Added customisations and README
* Tweak keymap: word traversal/deletion
* Add w and b word traversal/deletion keycodes.
* Add fine volume control key codes, but don't use them, because they
conflict with other key codes. `A` somehow got remapped to fine
volume up.
* Set mousekey delay to zero
* Use SAFE_RANGE for key codes.
* Update keymap and README
Add new mouse-specific layer 3, activated by pressing and holding space.
Add brightness controls to layer 4 (previously, layer 3).
Update README:
* New keyboard-layout mockup image.
* Add actual link to kbdfans.cn.
* Update layer descriptions.
* Fix indentation in keymap.c
* Use _______ over KC_TRNS to increase readability
* Custom keys: use #define over process_record_user
* Use enum for naming layers
* Rename README.md -> readme.md
* Keep ASCII art consistent with keymap
* Possible fix for xyverz ortho keymap: define RGBLED_NUM
* Update DZ60 keymap; TODO store old keymap under different directory?
* Change RGUI to RALT because 7u spacebar is too long
* Save old bottom row keymap
* Update Iris keymap: replace backslash with grv
* Add ortho_4x12 layout
* Added Delete key to Iris keymap
* Move delete key
* Oh look a new keyboard
* ortho4x12: get an adjust layer back
* Remove jj40 keymap, add custom power draw #define
* Set WhiteFox to advertise only 100mA of power draw
* Update WhiteFox keymap
* Update WF keymap (2)
* Remove lets_split keymap, update community krusli keymap
* Add #define for BACKLIGHT_LEVELS (unused)
* Update Whitefox keymap
* Add YD60 from auto-generated kbfirmware files
* Bring files up to speed with new standards
* Fix: KEYMAP -> LAYOUT
* Fix keymap differences (DZ60 -> YD60)
* Update keymap
* Update README
* Fix RShift position
* Specify that the port is for the YD60MQ variant
* Update keyboards/iris/keymaps/krusli/keymap.c
Co-Authored-By: fauxpark <fauxpark@gmail.com>
* Fix Iris and Let's Split keymaps
* Remove unused keymap file
* Use #include QMK_KEYBOARD_H
* Add atmel-dfu selection to yd60
* Rename dir to YD60MQ, update definitions
* Use new convenience macros/functions for led_set_user
* Use #pragma once
* Change all ?= to = in rules.mk
* Use pragma once for yd60mq.h
* Take out DZ60 and Iris changes
* Remove now-removed Iris folder
* Revert adding ortho_4x12
* Revert on xyverz ortho_4x12 keymap
* Undo deleting JJ40 keymap files
* Don't revert beyond upstream jj40 state
* Extra files from earlier commit is to be deleted
* Remove WhiteFox keymap not in upstream yet
* Re-add my Let's Split keymap
* Revert keymap changes
* Cleanup: indentation
* Update keyboards/yd60mq/rules.mk
Co-Authored-By: fauxpark <fauxpark@gmail.com>
* Update keyboards/yd60mq/rules.mk
Co-Authored-By: fauxpark <fauxpark@gmail.com>
* Cleanup & move kb backlighting code to yd60mq.c
* Update README, rename to lowercase
* Update README: rename to lowercase
* Update README with links and picture of PCB
* Remove PREVENT_STUCK_MODIFIERS
Co-Authored-By: Drashna Jaelre <drashna@live.com>
* Set Quefrency bootloader correctly for Elite-C
* Update Quefrency layout to be more like HHKB
* Update KBD67 layout to be more like HHKB
* Add keymap for BDN9 macropad
* Keyboard: add treeadstone48
* rename layout defines
* Use of pragma once
* move common include code
* fixed info.json
* change keymap layout from kc to normal
* fix alpha revision keymap
* fixed info.json
* remove USE_Link_Time_Optimization
* Add center sprit keymap for nomu30
* Re-enable Audio
And there was much rejoicingmake keebio/iris/rev2:drashna AUDIO_ENABLE=yes!
* Re-add debounce to ergodox EZ
* Fix rgb matrix helper function
* Make sure that RGM Matrix is checked properly
* Fix merge commit?
* Disable more RGB matrix modes
* Increase Debounce for Ergodox EZ
The performance improvements have made it necessary, actually
* Consolidate RGB Matrix layer indication function
And changes to iris
* Fix lighting issue for gamepad
* Update Corne Keyboard configuration
* Update Corne Keyboard layout
* Update KC_MAKE macro to better handle crkbd split
* Tweaks to Corne Keyboard Layout
* Enable RGB Matrix Sleep
* Update my code to use layer_state_t typedef
* rename bmc due to confusion as the bmc from r2 is different
* update readme
* Update keyboards/exclusive/e6v2/readme.md
Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>
* use pragma once
* remove custom matrix
* remove custom i2c code in favor of QMK's i2c_master
* rename to all lower case readme
* update readme
* turn off bootmagic as it doesn't work anyway
* Update keyboards/pearl/readme.md
Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>
* Adding an AUDIO_CLICKY_DELAY_DURATION configurable value to the AUDIO_CLICKY feature.
* Tweaking my community keymap to work better with my rev 4 planck.
* Typedef'ed layer_state_t to uint32_t.
This enables future work with layer_state_t to uint8_t for optimization purposes.
* Removed accidental xeal60 commit
* Revert to egyptian brackets, added sizeof(layer_state_t) so when layer_state_t is redefined it will automagically work.
* Add additional typedefs
* Add checks for setting layer state
* Update tmk_core/common/action_layer.h
Co-Authored-By: alex-ong <the.onga@gmail.com>
* Revert commit.
* adding my keymap for the KUMO
* edited the readme file
* edited some more files
* edited some more files
* edited files from feedback
* edited one more files from feedback
* edited rules
* fix the things the stupid script broke
* create an appropriate LAYOUT macro using LAYOUT_tkl_ansi
* create an appropriate keymap stolen from the phantom default keymap
* add correct pins used and rgb led numbers
* change vendor and device name
* add QMK Configurator support
* fix up RGB underglow
* update readme
* introduce new layout macro tkl_iso
* add QMK Configurator support for new layout macro
* enable backlight and add community layout support
* Increase delay for Hold-Tap register for CAPSLOCK
Because it seems that the 80ms delay wasn't too much
* Screw it, make the caps delay a define and make it configurable
* initial commit
* copy paste with some fixes the code from fox lab leaf60 repo
* add 60_ansi and 60_hhkb and community layout support
* add QMK Configurator support
* turn bootmagic to lite and turn on rgb and backlights
* disable some features so firmware isn't too big
* initial commit for hotswap leaf60
* add hotswap support
* edits for consistency
* add a generic leaf60 readme
* turn off console and command to save firmware space
* not enabling sleep led enable
* not enabling sleep led enable
* had one extra key in 60_hhkb
* get rid of limit val define
* Update keyboards/foxlab/leaf60/hotswap/readme.md
Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/foxlab/leaf60/hotswap/rules.mk
Co-Authored-By: fauxpark <fauxpark@gmail.com>
* Update keyboards/foxlab/leaf60/universal/rules.mk
Co-Authored-By: fauxpark <fauxpark@gmail.com>
* add rgblight_set_effect_range()
* implement effect range
* Arrange the order of function list in rgblight.h .
* update docs/feature_rgblight.md
* fix RGBLIGHT_RAINBOW_SWIRL_RANGE default value
* add example code about Utility Functions
* add example code about direct operation functions
* When RGBLIGHT_SPLIT is defined, the following function has no meaning and is invalidated.
* rgblight_setrgb_master(r, g, b)
* rgblight_setrgb_slave(r, g, b)
* rgblight_sethsv_master(h, s, v)
* rgblight_sethsv_slave(h, s, v)
* add temporary test code for rgblight_set_effect_range
* fix rgblight_effect_knight() bug
* Test End. Revert "add temporary test code for rgblight_set_effect_range"
This reverts commit 5680cddd012d68b2db75a532862a7fef250f8973.
This is a Neo2 inspired layout that is meant to be fully usable on
MacOS when used with the default US QWERTY/ABC Extended keymap.
Neo2 layers 1-4 have been almost fully implemented in hardware.
Layers 5 and 6 (greek and mathematical symbols) have been left
out for now as most of them aren't available on the default
keymaps.
Layer toggling for layer 3 on the right hand side utilizes a
tap-toggle approach that is a combination of MO & LT macros.
This is required to allow sending Y when tapped, @ when tapped
while the SHIFT modifier is active and support momentarily
toggling the layer while the key is held.
* trying to make my global keymap
* refactoring the old keymap using userspace
* getting there
* move readme and remove community layout
* use pragma once instead of ifndefs
* just make iris work
* iris decent
* better naming
* add some modifiers on the home row
* use symbol and sysctl layers
* fix up
* a bit faster
* add < and > on symbol layer
* apparently im not using z all that much..
* okok
* fix up stuff
* led init is back
* bring back led indicators
* Update keyboards/ergotravel/keymaps/pvinis/config.h
Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>
* not needed
* not needed
* delete these for now, until I use the userspace code
* remove katamari from here. made a new pr for it
* lower case
* drashna suggestion :)
* move files to correct place
* fix missing command
* First publish of roguepullreqest programmer dvorak planck layout
* Removed junk line
* Update keyboards/planck/keymaps/roguepullrequest/keymap.c
Co-Authored-By: roguepullrequest <roguepullrequest@users.noreply.github.com>
* Update keyboards/planck/keymaps/roguepullrequest/keymap.c
Co-Authored-By: roguepullrequest <roguepullrequest@users.noreply.github.com>
* Update keyboards/planck/keymaps/roguepullrequest/keymap.c
Co-Authored-By: roguepullrequest <roguepullrequest@users.noreply.github.com>
* Update keyboards/planck/keymaps/roguepullrequest/keymap.c
Co-Authored-By: roguepullrequest <roguepullrequest@users.noreply.github.com>
* Removed layer songs
Removed layer songs for cleanliness. Will use them later.
* Update keyboards/planck/keymaps/roguepullrequest/readme.md
Co-Authored-By: roguepullrequest <roguepullrequest@users.noreply.github.com>
* Made basic LSHIFT framework but is not working. Listed other tapdances.
* Got LSHIFT to work
* Added working RSHIFT
* Added working TD_S
* Cleaned up LEFT and RIGHT [ { ] } on the UPPER layer.
* Cleaned up layout.
* Reenabled audio space is not needed right now.
* Added tap dances and layout image
* Started dactylmanuform layout
* Revert "Started dactylmanuform layout"
This reverts commit 5ef48e4a23de14db9b843d85d3250e1bf4426817.
* Started mousepad version of BDN9...wont compile for some reason.
* Fixed BDN9 mousepad layout
* Added readme.md to mousepad bdn9 layout.
* Updated readme.md for mousepad bdn9 layout.
Fixed the tables to finally work.
* Unslashed the mousepad keymap for the BDN9
* remove not need file
* set RGBLIGHT_SPLIT
* set RGBLIGHT by layer
* exchange LED color on layer
* Update keyboards/hecomi/alpha/rules.mk
I misunderstand RGBLIGHT_SPLIT
Co-Authored-By: Drashna Jaelre <drashna@live.com>
* Fix LAYOUT_60_iso_split_space_bs_rshift to match comments and Configurator
* Fix LAYOUT_60_iso_split_space_bs_rshift to match comments and Configurator
* Initial Zygomorph 5x6 code
Split is not working yet
* layout changes
implement 4 row config option (not done yet), remove layout comments in layout.c
* Zygomorph layouts for 5x12, 5x6, 4x12, and 4x6
Also, info.json *should* be nearly usable
for the configurator
* temporary fix for pin D5 being broken
* show D5 issue comment
* add build notes
* Pin B7 broken in split why?
* remove fix
* Fix some pin assignments
* begin to fix keymap
* Create new 5x6 layout
* update key positions
* Initial Zygomorph 5x6 code
Split is not working yet
* layout changes
implement 4 row config option (not done yet), remove layout comments in layout.c
* Zygomorph layouts for 5x12, 5x6, 4x12, and 4x6
Also, info.json *should* be nearly usable
for the configurator
* temporary fix for pin D5 being broken
* show D5 issue comment
* add build notes
* Pin B7 broken in split why?
* remove fix
* Fix some pin assignments
* begin to fix keymap
* Create new 5x6 layout
* Rough first pass at split common conversion.
Keymap cleanup to cover just the basics.
Broke OLED code out into separate example.
* Fix readme
* Removal of old encoder / oled driver, fix for layout macros
* small update
* xulkal zygomorph keymaps
* Removed the LED_MIRRORED option as leds are always mirrored on Zygomorph
* Xulkal keymaps update
* split rgb light support
* fix line endings
* Apply suggestions from code review
Co-Authored-By: zvecr <git@zvecr.com>
* More layout and compile fixes from pr review
* Cleaning up rules.mk files
* Apply suggestions from code review
Co-Authored-By: zvecr <git@zvecr.com>
* Updating defaults
* Apply suggestions from code review
Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>
* Added check for pressed to clear space cadet
* Found some docs to update
* Update docs/quantum_keycodes.md
Co-Authored-By: fauxpark <fauxpark@gmail.com>
* Changes from PR
* Fix white space on z150_blackheart.h
* Update z150_blackheart.h to use #pragma once include guard
* Update z150_blackheart.h to use QMK-preferred K<row><col> notation
* Add QMK Configurator support
* Refactor the keymaps
- refactor the keymaps into separate files for each layout macro
- give credit where credit is due
- white space update (four-space indent)
* Make Hardware Availability link in readme a rich text link
* Convert LED indicators to GPIO commands
* Elevate Indicator LED set-up and toggling to keyboard level
* project creation and config.h import
* fix name
* cleanup
* layout for left
* working left with feather pins
* full keymap
* ?
* let's do this
* non working twimaster version
* it fucking works!
* bluetooth!
* cleanup
* use auto output for ADAFRUIT_BLE
* remove auto from custom matrix
* better ble auto
* fix f1
* revert
* fix ble
* update readme
* Update readme.md
* Update readme.md
* translate newbs.md into Madarin Chinese
translate newbs.md into Madarin Chinese
* translate docs into Mandarin Chinese
translate getting_started_github.md into Mandarin Chinese
* translate getting_started_getting_help.md into Mandarin Chinese
translate getting_started_getting_help.md into Mandarin Chinese
* contributing.md to Chinese
Personify QMK as a girl named Q酱 . It can make more developer read this document and contribute QMK.
* getting_started_introduction.md to Chinese
getting_started_introduction.md to Chinese
* faq.md to Chinese
faq.md to Chinese
* crlf2lf getting_started_introduction.md
ending line fix getting_started_introduction.md
* crlf2lf contributing.md
crlf2lf contributing.md
* clean up rgb matrix extern usage
Moved rgb matrix boiler plate into macros
Rebased onto typing heatmap pr
* Fixing the reversed frame buffer access in digital rain
* Fixing digital rain & typing heatmap if keyreactive effects are not enabled
* Apply suggestions from code review
Co-Authored-By: Drashna Jaelre <drashna@live.com>
* Adding parenthesizes to DRIVER_LED_TOTAL where necessary
* Updated docs
* added notes about parentheses
* Improve Animation docs with example
- example to reduce flash footprint of animations using RGBLIGHT_EFFECT_ defines
* Re-order the effects list
* Update docs/feature_rgblight.md
Co-Authored-By: yanfali <yanfali@gmail.com>
* Update docs/feature_rgblight.md
Co-Authored-By: yanfali <yanfali@gmail.com>
* Update docs/feature_rgblight.md
Co-Authored-By: yanfali <yanfali@gmail.com>
* Introduce line breaks
* Add title for animation speed section
* Organize Animation Defines Into Groups
* Use the RGB EFFECT recommended by mtei in docs
- has the most modes, and STATIC_LIGHT can't really be disabled.
* Use more accurate titles for effects and animation
- accidentally put a toggle in settings
* Norman layout with Lower and Raise layers working
* Add keymap_extra def for Norman layout
* Re-org'ed the modifiers as explained in the Readme
* Corrected colour legend for KLE that the Readme links to
* Use #pragma once in header file
* Use pragma once and move user config to config.h
* Move definitions to the right file and correct link in Readme
* Move def of NM_COLN to the logical place in header file
* Add sendstring_norman.h for when the laptop layout is not QWERTY
* Update quantum/keymap_extras/sendstring_norman.h
Co-Authored-By: lehoff <torben.lehoff@gmail.com>
* initial commit and script error fixes
* add matrix and pin definitions along with LAYOUT macro
* add an appropriate keymap
* add num lock led support
* turn on bootmagic lite along with backlight led support
* add QMK Configurator support
* initial commit
* fix script issues
* define pins used and electrical matrix size and an appropriate LAYOUT macro
* add an appropriate keymap
* turn on bootmagic lite and backlight support
* Add QMK Configurator support
* add caps lock led support
* update readme with group buy links
* initial commit
* fixup script issues
* define pins used and create an appropriate LAYOUT macro
* create an appropriate keymap
* turn on backlight and bootmagic lite
* add QMK Configurator support
* fixup readme
* remove doubly defined KC_TRNS from keymap
* add support for Caps lock and Scroll lock LEDs
* Initial conversion of the rgb_led struct
* Converting last keyboard & updating effects to take advantage of the new structure
* New struct should not be const
* Updated docs
* Changing define ___ for no led to NO_LED
* Missed converting some keymap usages of the old struct layout
slave backlight was always on - as get_backlight_level() doesn't
indicate if the backlight is enabled or not.
also updated the corosponding code for serial transport to stop peeking
directly at 'internal' backlight_config structure.
* Disable a bunch of reactive modes
* Enable rgb matrix for Corne Keyboard
* Convert CRKBD to rgb matrix
* Add Gergo keyboard layout
* Make Diablo 3 tap dance better
* Add basic support for Planck EZ
* Fix RGB Matrix stuff
* Fix keycodes for Planck EZ
* Update CRKBD OLED stuff
* Fix typo for sleep on ergodox glow
* Improve my gergo layout
* Scrolling OLED key logger!
* Change gergo layout
* Hnadle unicode keycodes if unicode is disabled
* Disable COMMAND/CONSOLE for gergo
* Fix right side control
* Re-enable LTO for all platforms
Since I got updated arm gcc binaries that no longer error out on lto
* Update formatting to match newer community standards
Poor 2 space
* Re-alight startup animation to use new HUE range
* Streamline gitlab ci scripts
* Disabled Space Cadet
* Add support for breathing table
* Enable new LTO Option
And clean up defines that will now be repeatitive
* Remove vscode settings
* Additional formatting cleanup of config.h files
* Add FnLk to Melody96 bottom row
* Update conditional in userspace makefile
Thanks @drashna
* Add F keys to Melody96 Fn layer
* Add FN_ESC alias to userspace
* Update KBD6X keymap
* Fix RGB_MATRIX_ENABLE constant name in #if
* Remove trailing \ from LAYOUT macro calls
* Set RGB mode on EEPROM reset in KBD6X
* Swap right and middle mouse buttons in KBD6X
* Rearrange RGB controls in KBD6X
* Update keycode aliases, replace CLEAR with DEL_NXT in KBD6X
Add Clear to KBD6X as RCtrl+`
* Convert code to 4 space indents
* Tweak RCTRL layer functionality
* Replace NUMPAD custom keycode with layer state logic
* Update RGB_MATRIX_ENABLE check
Co-Authored-By: vomindoraan <vomindoraan@gmail.com>
* Re-fix Mousekey Movements
After the new movement model was instroduced, it broke diagonal momement, again. Reapplying fix from #3147 to both old and new acceleration method.
* Make diagonal mouse report checks more readable
Co-Authored-By: drashna <drashna@live.com>
* added personal CTRL keymap
* added personal dz60rgb keymap
* enabled new rgb effect
* added space cadet shift
* media player track buttons now orange
* updated keymaps with rgb setting and visual HSV setting preview
* fixed source stuff?
* added support for underglow toggle (bugged to all hell)
* everything now behaves as expected when ti comes to RGB toggles, thank god
* removed ifdefs
* changed color of MAS_CRM
* uh, whitespace
* fixed issue with LED indicators
corrected error in info.json
* fixed issue with led indictors
* added fix for key_count to info.json for westfoxtrot/aanzee
* fix to support config.qmk.fm correctly and remove unused key from matrix for westfoxtrot/aanzee
The code as originally listed didn't work for me, but replacing `unregister_code16(LALT(KC_TAB));` with `unregister_code(KC_LALT);` fixes the problem and causes the macro to work as intended.
Thanks to folks on Discord for helping me figure this out.
* docker_build.sh: Docker requires access to hosts devices
This also runs the container interactively which allows the user to
interupt the build with Ctrl-C.
* docker_build.sh: Mount /dev via $usb_args instead
* remove files that contributed to default hex file creation
* fix up rgb pcb rules and config that previously depended on rules and config in a parent directory
* use #pragma once
* turn on backlight breathing and use #pragma once
* fix config.h and rules.mk to not depend on the parent directory
* use #pragma once
* removed keyboard info.jsons in favor of a shared one
* add in hhkb layout and shared info.json file
* fixup readme file
* remove cruft
* use bootmagic lite over yes
* fix config path and use pragma once
* commit PR fixes
* update manufacturer
* set bootloader correctly
* Expose unicode_saved_mods
* Add UNICODEMAP shift pair functionality and XS keycode
* Add XS to keycode reference documentation
* Pick pair index based on both Shift and Caps Lock state
* Add XS to Unicode feature docs
* Clean up process_unicode* headers
* Extract unicode_map index calculation into function
* Pick pair index as XOR rather than OR of Shift and Caps states
* unicode_input_start() has to be called before the unicode_map index is calculated
* Replace unicodemap_input_error() with more generic unicode_input_cancel()
* Replace register+tap+unregister with tap_code16(LCTL(LSFT(KC_U)))
* UNICODE_OSX_KEY → UNICODE_KEY_OSX, UNICODE_WINC_KEY → UNICODE_KEY_WINC
* Make keycode range checks more robust
* Fix keycode range checks for different input modes
* Add UNICODE_KEY_LNX, update docs
* QK_UNICODEMAP_SHIFT → QK_UNICODEMAP_PAIR
* XS → XP, update docs
* Tweak Unicode docs
* Use recently added MOD_MASK_SHIFT and IS_HOST_LED_ON helpers
* Update Unicode table in docs/keycodes.md
* Update Unicode docs per review comments
* Replace references to Mac OS X with macOS in Unicode docs
* As of v0.9.0, WinCompose supports all possible code points
* Expand descriptions in XP docs
* Update keycode table and cycling docs
* Further expand cycling docs
* Add DFU Suffix for ARM boards
* Blindly flash DFU SUFFIX ARGS for now
* Fix commented out check
* Fix DFU Suffix Argument check
Thank you jack!
* Update Travis CI Scripts to include dfu-util
So we can get dfu-suffix as well
* Manually add dfu-suffix package
* Use external repo for newer version of dfu-util
One that includes dfu-suffix
* Update .travis.yml
* Silence unnecessary output from dfu-suffix
The insertion point for `$(patsubst %.c,%.clib,$(LIB_SRC))` must be after all normal `SRC += ..` . I modified it to be so.
Because LIB_SRC and SRC are assumed to be used in pairs. Similarly, QUANTUM_LIB_SRC and QUANTUM_SRC are assumed to be used in pairs.
translate
newbs_getting_started.md
newbs_building_firmware.md
newbs_flashing.md
newbs_testing_debugging.md
newbs_best_practices.md
newbs_learn_more_resources.md
into Mandarin Chinese
Specifically, to fix some edge cases, and keep the handling consistent, the userspace folder should not actually be added at the end. Ideally, it should be added after the keymap paths, but before the keyboard's path.
This issue was discovered in #5484, and the fix created by mtei.
* If RGBLIGHT_EFFECT_BREATHE_CENTER is undefined, use fixed breathe table instead of exp() and sin()
* Change rgblight breathing table size to be easily selectable.
add RGBLIGHT_BREATHE_TABLE_SIZE macro for customize breathing effect.
* Add compatibility for LAYOUTS = planck_mit planck_grid
* Add compatibility for LAYOUTS = ortho_4x12
* Remove planck_grid community support from Plaid
* First publish of roguepullreqest programmer dvorak planck layout
* Removed junk line
* Update keyboards/planck/keymaps/roguepullrequest/keymap.c
Co-Authored-By: roguepullrequest <roguepullrequest@users.noreply.github.com>
* Update keyboards/planck/keymaps/roguepullrequest/keymap.c
Co-Authored-By: roguepullrequest <roguepullrequest@users.noreply.github.com>
* Update keyboards/planck/keymaps/roguepullrequest/keymap.c
Co-Authored-By: roguepullrequest <roguepullrequest@users.noreply.github.com>
* Update keyboards/planck/keymaps/roguepullrequest/keymap.c
Co-Authored-By: roguepullrequest <roguepullrequest@users.noreply.github.com>
* Removed layer songs
Removed layer songs for cleanliness. Will use them later.
* Update keyboards/planck/keymaps/roguepullrequest/readme.md
Co-Authored-By: roguepullrequest <roguepullrequest@users.noreply.github.com>
* Made basic LSHIFT framework but is not working. Listed other tapdances.
* Got LSHIFT to work
* Added working RSHIFT
* Added working TD_S
* Cleaned up LEFT and RIGHT [ { ] } on the UPPER layer.
* Cleaned up layout.
* Reenabled audio space is not needed right now.
* Added tap dances and layout image
* Started dactylmanuform layout
* Revert "Started dactylmanuform layout"
This reverts commit 5ef48e4a23de14db9b843d85d3250e1bf4426817.
* Adjusted the linear led table and hsv_to_rgb to better handle 255 hue
* small math adjustments to better handle specific uint8_t rounding and overflows
* Remove dependency on sortedcontainers
* Sort dictionary on output
* Externalize writing of keymap.c into function
- serialize layers into one flat list
* Add encoding
* Generate JSON keymap in addition to keymap.c
* Replace XXXXXX with KC_NO
* Added support for BM16S keyboard.
* Update keyboards/bm16s/bm16s.h
Co-Authored-By: bontakun <ben@bontakun.net>
* Update keyboards/bm16s/bm16s.h
Co-Authored-By: bontakun <ben@bontakun.net>
* Cleaned up a bunch of unneeded stuff.
* Made layout name match.
* Changed rules file to have correct bootloader and indention. Updated readme to reflect availability on krepublic. Updated keymap to have more obvious RGB controls.
* Removed unnecessary file.
* Fixed grammar in readme.
Co-Authored-By: bontakun <ben@bontakun.net>
* Migrated to autogenerated layout config, without issue.
* Renamed LAYOUT to match community standards.
* Move lib8tion header-defined constant into implementation file, add to build
* Move b_m16_interleave initializtion to lib8tion.c, change build to include lib8tion.c in QUANTUM_LIB_SRC
* Remove left-over whitespace
* Move lib8tion include by RGB_MATRIX_ENABLE code in makefile
* Revert build changes and change lib8tion b_m16_interleave constant to static
* Adding ortho_4x12 & planck_mit layouts for KBD4X.
* Adding LAYOUT_kc_ortho_4x12 macro to KBD4x.
* Turn off console for KBD4X so firmware size falls within limit.
* Revamped custom effects approach
See docs for example usage
* push-up RGB Matrix default mode
Override default effect using RGB_MATRIX_STARTUP_MODE.
Useful on boards without EEPROM support
(*cough* Massdrop ALT/CTRL *cough*)
* update docs
* Planck: Copy contents of Planck rules.mk to each revision
* Planck: Delete Planck rules.mk
* Planck: Concatenate duplicate rules
Concatenate rules that are set and then overridden into one setting.
* Preonic: Copy contents of Preonic rules.mk to each revision
* Preonic: Delete Preonic rules.mk
* Preonic: Concatenate duplicate rules
Concatenate rules that are set and then overridden into one setting.
* Planck: Delete non-specific Bootloader settings from revs. 1 and 2
Deleted BOOTLOADER setting code block, as the checks were only valid for revs. 3-5 and the Planck Light.
Neither Planck rev1 or rev2 set the bootloader via rules.mk, so there's no setting of BOOTLOADER in their rules.mk files.
* Preonic: Fix BOOTLOADER settings code blocks
* Preonic: delete extra blank lines from rules.mk files
* Preonic: delete AVR-type hardware config blocks from rev3
* Update Planck and Preonic readme files
- update Hardware Supported
- update/add Install Examples
- update Docs paragraph
* Enable Bootmagic Lite where it is disabled
Enabled Bootmagic Lite for:
- Planck Light
- Planck revs. 1-5
- Preonic revs. 1 and 2
* Remove `planck_grid` from LAYOUTS rule for all Planck revisions
Community has landed on `ortho_4x12`, which is already set; `planck_grid` is redundant.
* Update code for compatibility with latest QMK
* Added compatibility with Planck rev6
* use wait_ms instead of _delay_ms
* removed unnecessary rules
* disable audio on rev4 only
* A better new_project.sh
* Fix docstrings
* Use single quotes for anything not shown to user
* Missed this docstring
* Simplify get_git_username()
Thanks @vomindoraan
* chmod +x
* Add docstring for print_error()
* Break up git username call into multiple lines
* Use with statement here
* Conform to PEP 8 even more
* Turn it back into a shell script
* chmod +x again
* Update docs to reflect new keyboard generator usage
* Tweak wording slightly
* Trim trailing whitespace
* Don't actually need to escape the newlines here
* As I suspected, you can pass shift a number
* Prepend ./ to match the other code block
* Minor syntax tweaks
* The username token has changed
* Replace name in the readme too
* Make some reasonable assumptions about the presence of Git
* Add initial keyboard layout for Quefrency
* Add RGB config and keybindings for Quefrency
* Move Quefrency wheel keys to more convenient place
* Actually switch from serial to I2C
Commit 64708c6 updated the comment, not the #define. D'oh!
* [Keyboard] Update Gergo to use newer Ergodox Matrix code
And update layout macros to be correct
* Almost forgot the json file
* Remove board specific defines for i2c timeout
* Start to standardize macro timer
* Update Fractal layout
Specifically, limit the RGB Lighting, since it's too many for the power, and only have the KITT annimation on the front
* Update Iris keymap to use I2C for transport
* Remove TAP_CODE_DELAY from keyboard in favor of global setting
* Remove Woodpad
Since it\'s no longer in my possession
* Only enable LTO on AVR boards
* Run matrix_scans while doing startup light
* Run matrix_scan to get split keyboard code synced properly
* Fix rgb mode
* Remove custom debouncing settings
* Make RGB Light Startup Animation optional
* Fix opt def
* Remove extra tap code delay value
* Fix references to keebio boards
* Add support for LP Iris keyboard
* Add backlight code
* Make startup animation optional
* Update gitlab ci script
* Remove port declaration
* Revert avrgcc changes to gitlab ci file
* Don't re-set mods
* Remove MACRO_TIMER define
* Add custom name for crkbd
* Add name for Prime M pad
* Add names for ortho 4x12 boards
* Add some additional handling for rgb init
* Change thumb clusters on ergodox
* Switch Orthodox to I2C
* Fix Space in ergodox keymap
* Use OSL for ergodox layout
* Ugh, can't find a good layout
* Fix typo
* Fix up animation startup
* Cries in AVR
* Fix makefiles for ergodox ez boards
* Add support for "secret songs" in my userspace
* Reset debounce to 5ms for Ergodox EZ
* Fix gitlab CI yaml file
* More crying in AVR
* Cannot use rgb light and rgb matrix at the same time due to the WS2812 rgb matrix PR until the "Coexistance" PR is merged
* Update ODox for split common and i2c
* Add split config
* Impement Split code
* Add support for xscorpion OLED code
* Add OLED display config
* Fix OLED screen font
* Get OLED set up in vertical mode
* Remove old OLED code
* add per key support for crkbd
* Fix split changes
* RGB Tweeaks
* More OLED tweaks
* Fix rotation stuff
* Fix more OLED stuff
* Remove custom Debounce from Ergodox layout since it's no longer needed
With my XD60, I noticed that when typing the backlight was flickering.
The XD60 doesn't have the backlight wired to a hardware PWM pin.
I assumed it was a timing issue in the matrix scan that made the PWM
lit the LED a bit too longer. I verified it because the more keys that
were pressed, the more lighting I observed.
This patch makes the software PWM be called during CPU interruptions.
It works almost like the hardware PWM, except instead of using
the CPU waveform generation, the CPU will fire interruption
when the LEDs need be turned on or off.
Using the same timer system as for hardware PWM, when the counter
will reach OCRxx (the current backlight level), an Output Compare
match interrupt will be fired and we'll turn the LEDs off.
When the counter reaches its maximum value, an overflow interrupt
will be triggered in which we turn the LEDs on.
This way we replicate the hardware backlight PWM duty cycle.
This gives a better time stability of the PWM computation than pure
software PWM, leading to a flicker free backlight.
Since this is reusing the hardware PWM code, software PWM also supports
backlight breathing.
Note that if timer1 is used for audio, backlight will use timer3, and if
timer3 is used for audio backlight will use timer1.
If both timers are used for audio, then this feature is disabled and we
revert to the matrix scan based PWM computation.
Signed-off-by: Brice Figureau <brice@daysofwonder.com>
* added info.json for ymd96
* fix layout for keymap_custom macrom, correct info.json for default layout
* add info layout for iso
* add info layout for iso
* align layout name, added maintainer username
* layout case fix
* layout case fix
* fix overlapping keys
* match layouts to keymaps.
* Define RGB colors
Define RGB colors and pass them to the rgblight functions, instead of
defining multiple macros.
* Add new color definitions support for RGB Matrix
* Add/clarify info about new color definitions in Docs
* Add deprecation warning banner to rgblight_list.h
* initial commit
* get rid of some of the vanilla code
* set up matrix and pins
* Create LAYOUT macro and an appropriate keymap
* support for caps lock LED
* add some documentation to the doro67 parent readme
* align the language used in the several readme files
* initial commit
* get rid of some of the vanilla code
* set up matrix and pins
* Create LAYOUT macro and an appropriate keymap
* support for caps lock LED
* add some documentation to the doro67 parent readme
* align the language used in the several readme files
* Use RGB Matrix and fix enter key bug
* fix formatting
* remove merge conflict artifacts
* make a more useful default keymap
* add configurator support for the RGB pcb
* fix rgb matrix based on new info. Multipler should be reversed
* forgot to actually set the pin output for caps lock led
* fix offset keys in layer 1 keymap
* code cleanup
* use macros for the rgb_led calculations struct
* set RGB led num to 67 as I mistakenly counted the caps lock led
* cleanup config.h file
* add RGB note in readme
* get consistent naming in config file
* fix some inconsistencies
* readjust matrix and get rid of macros based on drashna's suggestions
* add keymap
* fix readme title
* renamed README.md to lowercase, fix typo
* renamed README.md to lowercase, for real
* add double spaces for github
* lowercase name in readme
* rename directory to lowercase
* Make Signum 3.0 compatible with default ortho_4x12 layout
* Disable unicode map by default
* Add missing backspace key
* Add missing delete key
* Fix broken gui right command
* Move MO5 to a different key an add Esc to L4
* Move MO5 to a different key
* Add Del and Bspace to layer 4
* add I2C_slave_buffer_t to quantum/split_common/transport.c
Improvements to ease the maintenance of the I2C slave buffer layout. And this commit does not change the compilation results.
* add temporary pdhelix(Patched Helix) code
* temporary cherry-pick from #5020
add new version(#5020) quantum/rgblight.[ch], quantum/rgblight_modes.h
* add post_config.h support to build_keyboard.mk
* add quantum/rgblight_post_config.h, quantum/split_common/post_config.h
Add quantum/rgblight_post_config.h and quantum/split_common/post_config.h using POST_CONFIG_H variable of build_keyboard.mk.
quantum/rgblight_post_config.h additionally defines RGBLIGHT_SPLIT if RGBLED_SPIT is defined.
quantum/split_common/post_config.h defines RGBLIGHT_SPLIT additionally when master-slave communication is I2C.
* Change split_common's transport.c I2C to use the synchronization feature of rgblight.c
* Change split_common's transport.c serial to use the synchronization feature of rgblight.c
* test RGBLIGHT_SPLIT on keyboards/handwired/pdhelix
* Test End Revert "test RGBLIGHT_SPLIT on keyboards/handwired/pdhelix"
This reverts commit 80118a6bbd3d9fc4c7797fef0c34bc67aa73aa98.
[x] make RGBLIGHT_TEST=1 handwired/pdhelix/i2c:default
[x] make RGBLIGHT_TEST=2 handwired/pdhelix/i2c:default (same RGBLIGHT_TEST=3)
[x] make RGBLIGHT_TEST=3 handwired/pdhelix/i2c:default
[x] make RGBLIGHT_TEST=1 handwired/pdhelix/pd2:default
[x] make RGBLIGHT_TEST=2 handwired/pdhelix/pd2:default
[x] make RGBLIGHT_TEST=3 handwired/pdhelix/pd2:default
[x] make RGBLIGHT_TEST=1 handwired/pdhelix/pd2_2oled:default
[x] make RGBLIGHT_TEST=2 handwired/pdhelix/pd2_2oled:default
[x] make RGBLIGHT_TEST=3 handwired/pdhelix/pd2_2oled:default
* Test End, Revert "temporary cherry-pick from #5020"
This reverts commit d35069f68bda0c50370442a5c7aae60c2f4ce5c0.
* Test End, Revert "add temporary pdhelix(Patched Helix) code"
This reverts commit aebddfc1a879796afae297ef0723a4fe73af3660.
* temporarily cherry-pick from #5020 to see if it passes the travis-ci test.
add new version(#5020) quantum/rgblight.[ch], quantum/rgblight_modes.h
* Passed the travis-ci test. Revert "temporarily cherry-pick from #5020 to see if it passes the travis-ci test."
This reverts commit 647c0a9755eb6a05f76d09b2d59bce67b85a841f.
* update docs/config_options.md
* update split_common/transport.c, improves maintainability of serial transaction IDs.
No change in build result.
* temporary cherry-pick from #5020
* fix build fail keebio/iris/rev3:default
* fix build fail lets_split_eh/eh:default
* Revert "temporary cherry-pick from #5020"
This reverts commit be48ca1b4515366a097af8dd1cd7b28b7ee09947.
* temporary cherry-pick from #5020 (0.6.336)
* Revert "temporary cherry-pick from #5020 (0.6.336)"
This reverts commit 978d26a8b3cf0acc485838a7d76d6128b77c630c.
* temporary cherry-pick from #5020 (0.6.336)
* add temporary file that is rgblight.c call graph
* add rgblight_update_hook()
* update rgblight-call-graph.dot (temporary file)
* add more hook point
* add TODO comment
* temporary Revert "add TODO comment"
This reverts commit df6165aac9b3a31d1d3e31ce52aadc134b84eac2.
* temporary Revert "add more hook point"
This reverts commit 64592b06f3bcdaac47c59f922018a273bef76776.
* temporary Revert "add rgblight_update_hook()"
This reverts commit 432b74c912ed4333e6633e20a1bcda10c6a10eaf.
* add rgblight_update_hook()
* add more hook point
* add TODO comment
* implement rgblight_update_hook()
* remove rgblight_update_hook(), add RGBLIGHT_SPLIT_SET_CHANGE_XXXX
rgblight_update_hook() is too large.
change to simple flag setting.
* shrink rgblight_config_t
* implement rgblight_update_sync()
Note: The animation synchronization process has not been implemented yet.
* update quantum/rgblight-call-graph.dot (temporary file)
* rmove quantum/rgblight-call-graph.dot (temporary file)
* update rgblight.c
* Add temporary code to Helix keyboard 'five_rows' keymap to test rgblight.c .
* fix build break rgblight_update_sync() when all animation off
* fix quantum/rgblight.c:rgblight_disable_XX() add RGBLIGHT_SPLIT_SET_CHANGE_MODE
* quantum/rgblight.c change code order: move rgblight_update_sync()
* add mode_base_table[] to quantum/rgblight.c
* quantum/rgblight.c use mode_base_table[] and rgblight_status.base_mode
* quantum/rgblkght.c animation timer integration
* quantum/rgblkght.c add animation sync for split keyboard
* fix mode_base_table[] and snake effect
* fix build break keyboards/mxss.
keyboards/mxss's local rgblight.c need old version rgblight.h
* rgblight.c: fix animation sync
* quantum/rgblight.c: fix snake effect sync
* quantum/rgblight.c: animation sync interverl 30 sec
* quantum/rgblight.c: fix rgblight_effect_rainbow_swirl() and rgblight_effect_knight()
* quantum/rgblight.c: add macro RGBLIGHT_SPLIT_ANIMATION
* cherry-pick from 'rgblight_modes.h sample implementation'
* fix RGBLIGHT_SPLIT_ANIMATION check position
* Update temporary code in Helix keyboard 'five_rows' keymap to test rgblight.c
* Reduce the firmware size by 1500 bytes when rgblight_effect_breathing() is enabled.
* Changed to rgblight_sethsv_eeprom_helper() for easier reading.
* add fail-safe code to quantum/rgblight.c:rgblight_task(),rgblight_timer_enable()
* remove temporary code in Helix keyboard 'five_rows' keymap
* quantum/rgblight.c: add split-keyboard master side sync functions
add functions:
uint8_t rgblight_get_change_flags(void);
void rgblight_clear_change_flags(void);
void rgblight_get_syncinfo(rgblight_syncinfo_t *syncinfo);
change function:
void rgblight_update_sync(rgblight_syncinfo_t *syncinfo, bool write_to_eeprom);
* Change rgblight_update_sync() to use write_to_eeprom.
* remove TODO comment from quantum/rgblight.h
* Revert "fix build break keyboards/mxss."
This reverts commit 90b9a1aa7d8af226751500e49e3ea0214cc4e024.
(Separated this change into the newly opened PR #5461.)
* Revert "Reduce the firmware size by 1500 bytes when rgblight_effect_breathing() is enabled."
This reverts commit b61004e63e82cf5334cee4def4ba10cffa88885f.
* update quantum/rgblight.c: Code size reduction when not using RGBLIGHT_SPLIT.
* Add temporary code to Helix keyboard 'five_rows' keymap to test rgblight.c .
* add temporary pdhelix(Patched Helix) code
* Add temporary code to split_common/transport.c to test rgblight.c.
* Finish testing rgblight.c with helix keyboard.
Revert "Add temporary code to Helix keyboard 'five_rows' keymap to test rgblight.c ."
This reverts commit 0bf81a4723a977adc0cb09b4272ee5c9b4f2bbbb.
* Finish testing rgblight.c with quantum/split_common code.
Revert "Add temporary code to split_common/transport.c to test rgblight.c."
This reverts commit 71db3e24eef40d4c455fb9fd1664e4487c9d927a.
* remove temporary pdhelix(Patched Helix) code
This reverts commit 5287e51a394741bcb6028c7cfc0dd0c984645f76.
* Added description of RGBLIGHT_SPLIT macro to docs/feature_rgblight.md.
* add RGBLIGHT_SPLIT_SET_CHANGE_HSVS to rgblight_init()
* Changed to restart animation only when changing mode.
When changing hue, sat and val, the animation is not restarted and continues.
Patch from https://github.com/qmk/qmk_firmware/issues/3657#issuecomment-415147411
Long story short, in avr-gcc pre-8.2, reset_key was assigned to a memory area that was in a normal range, but when 8.2 came out, that memory got moved to an out of range area, causing errors like 0x800293 out of range. Apparently, this was fixed up in avr-gcc, but we haven't seen a release with the fix yet (we expected it in 8.3, but that didn't happen for some reason).
What this commit does is move the reset_key back to the original memory location it was in before.
* Reduce CRKBD firmware size by reducing layer numbers
* Update layer output code based on mtei's suggestion/code
* Fix spacing
* Revert "Update layer output code based on mtei's suggestion/code"
This reverts commit 036d347db309170afd5676e694adfda69f912615.
Unfortunately, because this is NOT in the keymap itself, the layer macros aren't accessible and will error on commit
* Add comment for future person
When waking from suspend, only enable the LED drivers if they were not previously set to disabled by the user. This functionality was removed by the recent updates to adapt Massdrop keyboards to QMK RGB Matrix. Affects Massdrop CTRL and ALT keyboards compiled using Massdrop Configurator mode.
* First publish of roguepullreqest programmer dvorak planck layout
* Removed junk line
* Update keyboards/planck/keymaps/roguepullrequest/keymap.c
Co-Authored-By: roguepullrequest <roguepullrequest@users.noreply.github.com>
* Update keyboards/planck/keymaps/roguepullrequest/keymap.c
Co-Authored-By: roguepullrequest <roguepullrequest@users.noreply.github.com>
* Update keyboards/planck/keymaps/roguepullrequest/keymap.c
Co-Authored-By: roguepullrequest <roguepullrequest@users.noreply.github.com>
* Update keyboards/planck/keymaps/roguepullrequest/keymap.c
Co-Authored-By: roguepullrequest <roguepullrequest@users.noreply.github.com>
* Removed layer songs
Removed layer songs for cleanliness. Will use them later.
* Update keyboards/planck/keymaps/roguepullrequest/readme.md
Co-Authored-By: roguepullrequest <roguepullrequest@users.noreply.github.com>
* Made basic LSHIFT framework but is not working. Listed other tapdances.
* Got LSHIFT to work
* Added working RSHIFT
* Added working TD_S
* Cleaned up LEFT and RIGHT [ { ] } on the UPPER layer.
* Cleaned up layout.
* Reenabled audio space is not needed right now.
* Add files via upload
* kingwangwong
* kingwangwong
* revisions and adding atom40
* revisions for 5626
* revisions for 5626
* revisions for 5626.
* revisions for 5626, re added safe range
* revisions for 5626, added qmkkeyboard
* revisions for 5626, quefrency
* Use Right Alt/Ctrl on right side of OK60
* Update keyboards/ok60/keymaps/default/keymap.c
Co-Authored-By: marcoSchr <49691247+marcoSchr@users.noreply.github.com>
Most of our style is pretty easy to pick up on, but right now it's not entirely consistent. You should match the style of the code surrounding your change, but if that code is inconsistent or unclear use the following guidelines:
* We indent using four (4) spaces (soft tabs)
* We use a modified One True Brace Style
* Opening Brace: At the end of the same line as the statement that opens the block
* Closing Brace: Lined up with the first character of the statement that opens the block
* Else If: Place the closing brace at the beginning of the line and the next opening brace at the end of the same line.
* Optional Braces: Always include optional braces.
* Good: if (condition) { return false; }
* Bad: if (condition) return false;
* We encourage use of C style comments: `/* */`
* Think of them as a story describing the feature
* Use them liberally to explain why particular decisions were made.
* Do not write obvious comments
* If you not sure if a comment is obvious, go ahead and include it.
* In general we don't wrap lines, they can be as long as needed. If you do choose to wrap lines please do not wrap any wider than 76 columns.
* We use `#pragma once` at the start of header files rather than old-style include guards (`#ifndef THIS_FILE_H`, `#define THIS_FILE_H`, ..., `#endif`)
* We accept both forms of preprocessor if's: `#ifdef DEFINED` and `#if defined(DEFINED)`
* If you are not sure which to prefer use the `#if defined(DEFINED)` form.
* Do not change existing code from one style to the other, except when moving to a multiple condition `#if`.
* Do not put whitespace between `#` and `if`.
* When deciding how (or if) to indent directives keep these points in mind:
* Readability is more important than consistency.
* Follow the file's existing style. If the file is mixed follow the style that makes sense for the section you are modifying.
* When choosing to indent you can follow the indention level of the surrounding C code, or preprocessor directives can have their own indent level. Choose the style that best communicates the intent of your code.
Here is an example for easy reference:
```c
/* Enums for foo */
enum foo_state {
FOO_BAR,
FOO_BAZ,
};
/* Returns a value */
int foo(void) {
if (some_condition) {
return FOO_BAR;
} else {
return -1;
}
}
```
# Auto-formatting with clang-format
[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.
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.
If you use VSCode, the standard C/C++ plugin supports clang-format, alternatively there is a [separate extension](https://marketplace.visualstudio.com/items?itemName=LLVMExtensions.ClangFormat) for it.
Some things (like LAYOUT macros) are destroyed by clang-format, so either don't run it on those files, or wrap the sensitive code in `// clang-format off` and `// clang-format on`.
* key combination that allows the use of magic commands (useful for debugging)
* `#define USB_MAX_POWER_CONSUMPTION`
* sets the maximum power (in mA) over USB for the device (default: 500)
* `#define SCL_CLOCK 100000L`
* sets the SCL_CLOCK speed for split keyboards. The default is `100000L` but some boards can be set to `400000L`.
* `#define F_SCL 100000L`
* sets the I2C clock rate speed for keyboards using I2C. The default is `400000L`, except for keyboards using `split_common`, where the default is `100000L`.
## Features That Can Be Disabled
@ -171,6 +171,8 @@ If you define these options you will enable the associated feature, which may in
* how long for the Combo keys to be detected. Defaults to `TAPPING_TERM` if not defined.
* `#define TAP_CODE_DELAY 100`
* Sets the delay between `register_code` and `unregister_code`, if you're having issues with it registering properly (common on VUSB boards). The value is in milliseconds.
* `#define TAP_HOLD_CAPS_DELAY 80`
* Sets the delay for Tap Hold keys (`LT`, `MT`) when using `KC_CAPSLOCK` keycode, as this has some special handling on MacOS. The value is in milliseconds, and defaults to 80 ms if not defined. For macOS, you may want to set this to 200 or higher.
## RGB Light Configuration
@ -180,10 +182,12 @@ If you define these options you will enable the associated feature, which may in
* run RGB animations
* `#define RGBLED_NUM 12`
* number of LEDs
* `#define RGBLIGHT_SPLIT`
* Needed if both halves of the board have RGB LEDs wired directly to the RGB output pin on the controllers instead of passing the output of the left half to the input of the right half
* `#define RGBLED_SPLIT { 6, 6 }`
* number of LEDs connected that are directly wired to `RGB_DI_PIN` on each half of a split keyboard
* First value indicates number of LEDs for left half, second value is for the right half
* Needed if both halves of the board have RGB LEDs wired directly to the RGB output pin on the controllers instead of passing the output of the left half to the input of the right half
* When RGBLED_SPLIT is defined, RGBLIGHT_SPLIT is implicitly defined.
* `#define RGBLIGHT_HUE_STEP 12`
* units to step when in/decreasing hue
* `#define RGBLIGHT_SAT_STEP 25`
@ -285,6 +289,7 @@ This is a [make](https://www.gnu.org/software/make/manual/make.html) file that i
* `halfkay`
* `caterina`
* `bootloadHID`
* `USBasp`
## Feature Options
@ -328,6 +333,8 @@ Use these to enable or disable building certain features. The more you have enab
* Forces the keyboard to wait for a USB connection to be established before it starts up
* `NO_USB_STARTUP_CHECK`
* Disables usb suspend check after keyboard startup. Usually the keyboard waits for the host to wake it up before any tasks are performed. This is useful for split keyboards as one half will not get a wakeup call but must send commands to the master.
* `LINK_TIME_OPTIMIZATION_ENABLE`
= Enables Link Time Optimization (`LTO`) when compiling the keyboard. This makes the process take longer, but can significantly reduce the compiled size (and since the firmware is small, the added time is not noticable). However, this will automatically disable the old Macros and Functions features automatically, as these break when `LTO` is enabled. It does this by automatically defining `NO_ACTION_MACRO` and `NO_ACTION_FUNCTION`
@ -54,54 +54,10 @@ Never made an open source contribution before? Wondering how contributions work
# Coding Conventions
Most of our style is pretty easy to pick up on, but right now it's not entirely consistent. You should match the style of the code surrounding your change, but if that code is inconsistent or unclear use the following guidelines:
Most of our style is pretty easy to pick up on. If you are familiar with either C or Python you should not have too much trouble with our local styles.
* We indent using two spaces (soft tabs)
* We use a modified One True Brace Style
* Opening Brace: At the end of the same line as the statement that opens the block
* Closing Brace: Lined up with the first character of the statement that opens the block
* Else If: Place the closing brace at the beginning of the line and the next opening brace at the end of the same line.
* Optional Braces: Always include optional braces.
* Good: if (condition) { return false; }
* Bad: if (condition) return false;
* We encourage use of C style comments: `/* */`
* Think of them as a story describing the feature
* Use them liberally to explain why particular decisions were made.
* Do not write obvious comments
* If you not sure if a comment is obvious, go ahead and include it.
* In general we don't wrap lines, they can be as long as needed. If you do choose to wrap lines please do not wrap any wider than 76 columns.
* We use `#pragma once` at the start of header files rather than old-style include guards (`#ifndef THIS_FILE_H`, `#define THIS_FILE_H`, ..., `#endif`)
Here is an example for easy reference:
```c
/* Enums for foo */
enum foo_state {
FOO_BAR,
FOO_BAZ,
};
/* Returns a value */
int foo(void) {
if (some_condition) {
return FOO_BAR;
} else {
return -1;
}
}
```
# Auto-formatting with clang-format
[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.
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.
If you use VSCode, the standard C/C++ plugin supports clang-format, alternatively there is a [separate extension](https://marketplace.visualstudio.com/items?itemName=LLVMExtensions.ClangFormat) for it.
Some things (like LAYOUT macros) are destroyed by clang-format, so either don't run it on those files, or wrap the sensitive code in `// clang-format off` and `// clang-format on`.
@ -267,7 +267,7 @@ You should use this function if you need custom matrix scanning code. It can als
If the board supports it, it can be "idled", by stopping a number of functions. A good example of this is RGB lights or backlights. This can save on power consumption, or may be better behavior for your keyboard.
This is controlled by two functions: `suspend_power_down_*` and `suspend_wakeup_init_*`, which are called when the system is board is idled and when it wakes up, respectively.
This is controlled by two functions: `suspend_power_down_*` and `suspend_wakeup_init_*`, which are called when the system board is idled and when it wakes up, respectively.
### Example suspend_power_down_user() and suspend_wakeup_init_user() Implementation
@ -49,15 +49,13 @@ Pro Micro (Atmega32u4), make sure to include `CONFIG_USB_ACM=y`. Other devices m
## Unknown Device for DFU Bootloader
If you're using Windows to flash your keyboard, and you are running into issues, check the Device Manager. If you see an "Unknown Device" when the keyboard is in "bootloader mode", then you may have a driver issue.
Issues encountered when flashing keyboards on Windows are most often due to having the wrong drivers installed for the bootloader.
Re-running the installation script for MSYS2 may help (eg run `./util/qmk_install.sh` from MSYS2/WSL) or reinstalling the QMK Toolbox may fix the issue.
Re-running the installation script for MSYS2 may help (eg run `util/qmk_install.sh` from MSYS2/WSL) or reinstalling the QMK Toolbox may fix the issue. Alternatively, you can download and run the [`qmk_driver_installer`](https://github.com/qmk/qmk_driver_installer) package.
If that doesn't work, then you may need to grab the [Zadig Utility](https://zadig.akeo.ie/). Download this, find the device in question, and select the `WinUSB` option, and hit "Reinstall driver". Once you've done that, try flashing your board, again. If that doesn't work, try all of the options, until one works.
If that doesn't work, then you may need to grab the [Zadig Utility](https://zadig.akeo.ie/). Download this, and run it on the system. Then, you will need to reset your board into bootloader mode. After that, locate the device in question. If the device doesn't show up in the list (or nothing shows up in the list), you may need to enable the `List all devices` option in the `Options` menu.
?> There isn't a best option for which driver should be used here. Some options work better on some systems than others. libUSB and WinUSB seem to be the best options here.
If the bootloader doesn't show up in the list for devices, you may need to enable the "List all devices" option in the `Options` menu, and then find the bootloader in question.
From here, you will need to know what type of controller the board is using. You may see it listed in the Device Manager as `ATmega32U4` device (which is an AVR board), or an `STM32` device (Which is an ARM board). For AVR boards, use `libusb-win32` for the driver. For ARM boards, use the `WinUSB` driver. Once the correct driver type has been selected, click on the `Replace Driver` button, unplug your board, plug it back in, and reset it again.
## WINAVR is Obsolete
@ -140,8 +138,8 @@ For now, you need to rollback avr-gcc to 7 in brew.
```
brew uninstall --force avr-gcc
brew install avr-gcc@7
brew link --force avr-gcc@7
brew install avr-gcc@8
brew link --force avr-gcc@8
```
### I just flashed my keyboard and it does nothing/keypresses don't register - it's also ARM (rev6 planck, clueboard 60, hs60v2, etc...) (Feb 2019)
@ -256,10 +256,10 @@ If you press a Mod Tap key, tap another key (press and release) and then release
For Instance:
- `SHFT_T(KC_A)` Down
- `SFT_T(KC_A)` Down
- `KC_X` Down
- `KC_X` Up
- `SHFT_T(KC_A)` Up
- `SFT_T(KC_A)` Up
Normally, if you do all this within the `TAPPING_TERM` (default: 200ms) this will be registered as `ax` by the firmware and host system. With permissive hold enabled, this modifies how this is handled by considering the Mod Tap keys as a Mod if another key is tapped, and would registered as `X` (`SHIFT`+`x`).
@ -279,9 +279,9 @@ Setting `Ignore Mod Tap Interrupt` requires holding both keys for the `TAPPING_
For Instance:
- `SHFT_T(KC_A)` Down
- `SFT_T(KC_A)` Down
- `KC_X` Down
- `SHFT_T(KC_A)` Up
- `SFT_T(KC_A)` Up
- `KC_X` Up
Normally, this would send `X` (`SHIFT`+`x`). With `Ignore Mod Tap Interrupt` enabled, holding both keys are required for the `TAPPING_TERM` to register the hold action. A quick tap will output `ax` in this case, while a hold on both will still output `X` (`SHIFT`+`x`).
@ -303,11 +303,11 @@ When the user holds a key after tap, this repeats the tapped key rather to hold
Example:
- SHFT_T(KC_A) Down
- SHFT_T(KC_A) Up
- SHFT_T(KC_A) Down
- SFT_T(KC_A) Down
- SFT_T(KC_A) Up
- SFT_T(KC_A) Down
- wait more than tapping term...
- SHFT_T(KC_A) Up
- SFT_T(KC_A) Up
With default settings, `a` will be sent on the first release, then `a` will be sent on the second press allowing the computer to trigger its auto repeat function.
@ -175,8 +175,9 @@ You can configure the default, min and max frequencies, the stepping and built i
| `AUDIO_CLICKY_FREQ_DEFAULT` | 440.0f | Sets the default/starting audio frequency for the clicky sounds. |
| `AUDIO_CLICKY_FREQ_MIN` | 65.0f | Sets the lowest frequency (under 60f are a bit buggy). |
| `AUDIO_CLICKY_FREQ_MAX` | 1500.0f | Sets the the highest frequency. Too high may result in coworkers attacking you. |
| `AUDIO_CLICKY_FREQ_FACTOR` | 1.18921f| Sets the stepping of UP/DOWN key codes. |
| `AUDIO_CLICKY_FREQ_FACTOR` | 1.18921f| Sets the stepping of UP/DOWN key codes. This is a multiplicative factor. The default steps the frequency up/down by a musical minor third. |
| `AUDIO_CLICKY_FREQ_RANDOMNESS` | 0.05f | Sets a factor of randomness for the clicks, Setting this to `0f` will make each click identical, and `1.0f` will make this sound much like the 90's computer screen scrolling/typing effect. |
| `AUDIO_CLICKY_DELAY_DURATION` | 1 | An integer note duration where 1 is 1/16th of the tempo, or a sixty-fourth note (see `quantum/audio/musical_notes.h` for implementation details). The main clicky effect will be delayed by this duration. Adjusting this to values around 6-12 will help compensate for loud switches. |
@ -30,7 +30,32 @@ You should then be able to use the keycodes below to change the backlight level.
This feature is distinct from both the [RGB underglow](feature_rgblight.md) and [RGB matrix](feature_rgb_matrix.md) features as it usually allows for only a single colour per switch, though you can obviously use multiple different coloured LEDs on a keyboard.
Hardware PWM is only supported on certain pins of the MCU, so if the backlighting is not connected to one of them, a software implementation will be used, and backlight breathing will not be available. Currently the supported pins are `B5`, `B6`, `B7`, and `C6`.
Hardware PWM is only supported on certain pins of the MCU, so if the backlighting is not connected to one of them, a software PWM implementation triggered by hardware timer interrupts will be used.
Hardware PWM is supported according to the following table:
| Backlight Pin | Hardware timer |
|---------------|-------------------------|
|`B5` | Timer 1 |
|`B6` | Timer 1 |
|`B7` | Timer 1 |
|`C6` | Timer 3 |
|`D4` | Timer 1 (ATmega32A only)|
| other | Software PWM |
The [audio feature](feature_audio.md) also uses hardware timers. Please refer to the following table to know what hardware timer the software PWM will use depending on the audio configuration:
When all timers are in use for [audio](feature_audio.md), the backlight software PWM will not use a hardware timer, but instead will be triggered during the matrix scan. In this case the backlight doesn't support breathing and might show lighting artifacts (for instance flickering), because the PWM computation might not be called with enough timing precision.
## Configuration
@ -39,10 +64,33 @@ To change the behaviour of the backlighting, `#define` these in your `config.h`:
|`BACKLIGHT_PIN` |`B7` |The pin that controls the LEDs. Unless you are designing your own keyboard, you shouldn't need to change this|
|`BACKLIGHT_LEVELS` |`3` |The number of brightness levels (maximum 15 excluding off) |
|`BACKLIGHT_PINS` |*Not defined*|experimental: see below for more information |
|`BACKLIGHT_LEVELS` |`3` |The number of brightness levels (maximum 31 excluding off) |
|`BACKLIGHT_CAPS_LOCK`|*Not defined*|Enable Caps Lock indicator using backlight (for keyboards without dedicated LED) |
|`BACKLIGHT_BREATHING`|*Not defined*|Enable backlight breathing, if hardware PWM is used |
|`BACKLIGHT_BREATHING`|*Not defined*|Enable backlight breathing, if supported |
|`BREATHING_PERIOD` |`6` |The length of one backlight "breath" in seconds |
|`BACKLIGHT_ON_STATE` |`0` |The state of the backlight pin when the backlight is "on" - `1` for high, `0` for low |
## Backlight On State
Most backlight circuits are driven by an N-channel MOSFET or NPN transistor. This means that to turn the transistor *on* and light the LEDs, you must drive the backlight pin, connected to the gate or base, *high*.
Sometimes, however, a P-channel MOSFET, or a PNP transistor is used. In this case, when the transistor is on, the pin is driven *low* instead.
This functionality is configured at the keyboard level with the `BACKLIGHT_ON_STATE` define.
## Multiple backlight pins
Most keyboards have only one backlight pin which control all backlight LEDs (especially if the backlight is connected to an hardware PWM pin).
In software PWM, it is possible to define multiple backlight pins. All those pins will be turned on and off at the same time during the PWM duty cycle.
This feature allows to set for instance the Caps Lock LED (or any other controllable LED) brightness at the same level as the other LEDs of the backlight. This is useful if you have mapped LCTRL in place of Caps Lock and you need the Caps Lock LED to be part of the backlight instead of being activated when Caps Lock is on.
To activate multiple backlight pins, you need to add something like this to your user `config.h`:
~~~c
#define BACKLIGHT_LED_COUNT 2
#undef BACKLIGHT_PIN
#define BACKLIGHT_PINS { F5, B2 }
~~~
## Hardware PWM Implementation
@ -53,6 +101,15 @@ In this way `OCRxx` essentially controls the duty cycle of the LEDs, and thus th
The breathing effect is achieved by registering an interrupt handler for `TIMER1_OVF_vect` that is called whenever the counter resets, roughly 244 times per second.
In this handler, the value of an incrementing counter is mapped onto a precomputed brightness curve. To turn off breathing, the interrupt handler is simply disabled, and the brightness reset to the level stored in EEPROM.
## Software PWM Implementation
When `BACKLIGHT_PIN` is not set to a hardware backlight pin, QMK will use a hardware timer configured to trigger software interrupts. This time will count up to `ICRx` (by default `0xFFFF`) before resetting to 0.
When resetting to 0, the CPU will fire an OVF (overflow) interrupt that will turn the LEDs on, starting the duty cycle.
The desired brightness is calculated and stored in the `OCRxx` register. When the counter reaches this value, the CPU will fire a Compare Output match interrupt, which will turn the LEDs off.
In this way `OCRxx` essentially controls the duty cycle of the LEDs, and thus the brightness, where `0x0000` is completely off and `0xFFFF` is completely on.
The breathing effect is the same as in the hardware PWM implementation.
| `combo_disable()` | Disables the combo feature, and clears the combo buffer |
| `combo_toggle()` | Toggles the state of the combo feature |
| `is_combo_enabled()` | Returns the status of the combo feature state (true or false) |
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.