* fix a bug in which the physical matrix did not match the physical layout. Top row was missing 1 key and bottom row had 1 extra key
* amend keymap to account for the new physical matrix
* 6.25u space bar is actually supported, so add a new layout that supports this
* fix keymap readme to no longer need the cautionary warning
* Moving sentraq keyboards to sentraq subdirectory.
* Updating readme markdown to correct make commands.
* Updating s60_x references to point to the new vendor subdirectory.
* Fixed stripped spaces in markdown.
* Updated help information in s60_x readme and linked to additional documentation.
* Make QMK Configurator work with e7-v1
This adds the missing info.json file for the e7-v1 keyboard which I
forgot to add to the original PR.
This allows to see the correct layout in QMK Configurator.
* Fix the ISO layout
The ISO layout has one extra key (hash/tilde) on row 3 right before
the enter key.
The e7-v1 PCB has this key wired at the same switch as the ANSI
backslash (since this switch is not used in ISO).
The tkl_ansi layout had an incorrect value for the grave/tilde key, and
number row keys were misnumbered. This fix removes the typo and adds the
missing K1C key.
* Fix mixed tabs and spaces in adb_usb and m0110_usb makefiles
* Fix typos in converter build options
* Tweak ordering and spacing in converter makefiles
* initial commit
* Do a nice write up for readme
* establish switch matrix and physical layout
* Put in the pins that are used
* QMK configurator support and keymap
* set bootloader to caterina because pro micro boohoo
* add ortho_4x4 support for user spaces
* got the columns reversed lol
* Tweaks to default 1up60hte layout + support for HHKB style layout
* Added changes to layouts
* Fix config.h
* Fixed errant KC_NO in layout
* Added readme to keyboard... Will update with images/store link when avail.
* Update to use LAYOUT_60_hhkb default layout
* md formatting fix
* Update keyboards/1upkeyboards/1up60hte/readme.md
Co-Authored-By: bubnick <bubnick@users.noreply.github.com>
* Update keyboards/1upkeyboards/1up60hte/readme.md
Co-Authored-By: bubnick <bubnick@users.noreply.github.com>
* Added layout to rules.mk, fixed layout to be compatble with community HHKB keymaps
* Create ISO HHKB keymapping for GH60
* Add media controls to Fn layer
* Use M(x) instead of F(x), add Copyright text
* Add README for additional information about TMO50 features/quirks
* Add indicator LED code
* Move indicator code to tmo50.c
* move over kbd19x into the kbdfans directory
* move over kbd4x into the kbdfans directory
* move kbd66 into the kbdfans directory
* move the kbd6x into the kbdfans directory
* move kbd8x into the kbdfans directory
* move kbd75 into the kbdfans directory
* move kbd67 into kbdfans directory
* add a fairly sparse readme for kbdfans directory
* update make instructions for keyboards and add the Complete Newbs Guide to readmes that was missing it
* get kbd75 compiling again
* remove repetitive #defines of KC_NO and KC_TRNS when QMK_KEYBOARD_H is already included in KBD75
* add links to kbdfans readme
* fix some readme formatting
* there is no reason to have two different keymaps with such a small difference, condensing to one
* turning on backlights by default
* enable backlight by default for kbd66
* noticed that the kbd75 had caps lock led code in every keymap. Moved it out to the keyboard.c so everyone can partake.
* Update keyboards/kbdfans/kbd66/readme.md
Co-Authored-By: mechmerlin <30334081+mechmerlin@users.noreply.github.com>
* update readme link ordering
* Added QMK Config for Sentraq Number Pad keyboard.
* Sentraq Number Pad documentation cleanup.
* mend
* Added json for configurator.
* Small documentation tweaks.
* Updated the layouts to use the default layouts that match.
* Uncommended user level functions in keymap, left custom keycode/macro code commented but documented why.
* Switched to #pragma once from #ifndef structure in header file.
* Moved Sentraq number pad to sentraq creator directory.
* Renamed sentraq_number_pad to number_pad now that it's nested in the sentraq directory.
* Updated references inside the files for the keyboard rename and nesting.
* Adds keymaps for muzfuz
* Remove unused keys from adjust layer
* Bring in line with current QMK standards.
* Adds Preonic and adjusted Planck keymaps
* Make changes per review request
* update reset sequence info
* fix my rgb underglow led number flub
* add a more sensible keymap
* add caps lock led support
* remove unused #define
* swap the spacebar sizes around to match the space65
* use vomindoraan's suggestion in PR to use IS_LED_ON
* fixed arrow keys and left control
* added right shift
* latest version
* reverted arrow keys
* edited readme
* added osu layer
* updated osu layout
* updated osu layout
* added full arrow keys to osu layout
* in case i mess up creating macros
* added the best meme key in the world
* added plover steno layer
* updated boy314 layout
* removed unused layers
* added boy314 xd75 layout, inspired by preonic layout
* added boy314 xd75 layout, inspired by preonic layout
* version 2 of boy314's xd75 layout
* added readme notes
* updated readme for boy314 xd75 layout
* qwerty support, brackets on bottom row, caps lock underglow
* fixed readme/
* small changes to allow merging
* minor changes to format
* fixed up default readme
* added numpad and tweaked bottom row
* updated xd75 and preonic rev3 keymaps
* added initial half n half files
* fixed .h file
* updated names
* fixed layout in halfnhalf.h
* fixed manu name, changed bootloader in rules.mk
* removed redundancies in preonic and xd75 layouts
* readme updated
* initial commit
* get rid of vanilla code, and fix formatting
* write up a nice looking readme
* add in pins and enable features
* define keymap and switch/physical matrix
* add QMK Configurator support
* switch to bootmagic lite to decrease file size
* Move boards to cannonkeys and share resources
* Share common files between cannonkey boards
* Fix ortho60 keymap
* update LED numbers
* Add RGB keys to Ortho60 and Ortho48
* Add Backlight control to default layout Ortho60 and 48
* Remove unnecessary ws2812.c SRC from rules.mk
* Make Default standard layout
Move Mac OS layout to a separate layout. Basically Mac has the Alt and GUI keys swapped
* Fix typos
* Use Bootmagic keys instead of separate MacOS keymap
* Create ISO HHKB keymapping for GH60
* Add media controls to Fn layer
* Use M(x) instead of F(x), add Copyright text
* Add README for additional information about TMO50 features/quirks
* handwired/space_oddity: refactor
- config.h: updated to use #pragma once include guard
- rules.mk: replace `?=` with `=`
- space_oddity.h:
- updated to use #pragma once include guard
- layout macro KEYMAP renamed to LAYOUT
- default keymap:
- updated to use #include QMK_KEYBOARD_H
- replace references to Planck keycodes
- replace fn_actions-powered layer switch keycode
- rebuild keymap block comments
- keymap layers now use short-form keycodes
- refactor action_get_macro keycodes into process_record_user
* handwired/space_oddity: Configurator support
* handwired/space_oddity: readme cleanup
- update readme to better conform with QMK template
- fixed the make command.
* Add the e7-v1 keyboard
The e7-v1 is a 75% keyboard made by Exclusive based on an Atmega32u4
pub with RGB lights on top and backlighting.
This PR add supports for the regular ANSI layout and ANSI split
backspace layout. No ISO yet :(
* My e7-v1 keymap
Difference from base layout:
* split backspace
* Home & End on last keys of row 0 instead of Insert/Del
* Fn is on the End key when hold
* supports both a windows/linux keymap and osx keymap
* layer change is reflected in the rgb leds of the logo
* [BACKLIGHT_CAPS_LOCK_INDICATOR] Use backlight toggling as Caps Lock LED
I've implemented this feature because S65-X doesn't have LED indicators
and the existing led_set_kb(usb_led) function try to use backlight as
indicator but that creates an inconsistency with backlight_config state.
- define `BACKLIGHT_CAPS_LOCK_INDICATOR` to enable Caps Lock indicator
using backlight (for keyboards without dedicated LED)
- Don't turn off LED indicators when suspend because backlight is
already turned off. Else led_set(0) will turn back on backlight.
- Documentation has been updated
* [BACKLIGHT_CAPS_LOCK_INDICATOR] Turn off all LED indicators except Caps Lock if BACKLIGHT_CAPS_LOCK_INDICATOR
* [BACKLIGHT_CAPS_LOCK] Rename BACKLIGHT_CAPS_LOCK_INDICATOR
* [BACKLIGHT_CAPS_LOCK] Use new IS_LED_ON method
The following layouts were being rendered with 6.75u Spacebars instead of 7u:
- LAYOUT_ansi_blocker_7u
- LAYOUT_ansi_blocker_7u_small_lshift
- LAYOUT_ansi_blocker_7u_small_bspc
- LAYOUT_ansi_blocker_7u_small_lshift_small_bspc
- LAYOUT_iso_blocker_7u
This commit corrects this issue.
Flagged by yanfali on QMK Discord.
- layout macro and keymap layers refactored to more closely resemble physical keyboard layout
- added layout mockup to alice.h
- correct info.json data (was missing a key)
* Added southpole keyboard
added southpole keyboard folder and files including keymaps folder. Keymaps have errors and will not compile yet
* Add files via upload
added manufacturer and product name and description
* Update config.h
* Add files via upload
changed formating added layer
* cleaned up files, fixed foobeard keymap, and added maker info
* fixed keymap files
* Update keyboards/southpole/keymaps/foobeard/keymap.c
Co-Authored-By: ericduns <ericduns@gmail.com>
* Update keyboards/southpole/keymaps/default/keymap.c
Co-Authored-By: ericduns <ericduns@gmail.com>
* made changes fixing outdated lines and added readme.md
* made requested changes for pr to all files
* removed vs code and added new line to southpole.h
* moved some stuff around on my iris layout, but don't expect a lot of changes in the future
* good working setup
* [keymap] some mods to my (omgvee) Helidox keymap
* updated zlant keymap with diagram
* made edites to last post
* noticed slight error in default keymap due to my own mistake. fixed to be the same as default
* fixed spacing in second base layer second row from left
* Added xealousbrown keyboard.
* Changed to pragma once in config.h
* Update keyboards/handwired/xealousbrown/rules.mk
Added bootloader.
Co-Authored-By: alex-ong <the.onga@gmail.com>
* Update keyboards/handwired/xealousbrown/config.h
Commented out IS_COMMAND() since it is already default value.
Co-Authored-By: alex-ong <the.onga@gmail.com>
* Remove duplicated or unnecessary definitions in config.h and rules.mk
* Use IS_HOST_LED_ON() macro
* Add mouse acceleration to kbd6x:konstantin keymap
* Clear and restore mods when sending macros
* Make SEND_STRING_CLEAN a config option
* Add NO_ACTION_ONESHOT to userspace config
* Add files via upload
* Changed _____ to _______ as requested to meet QMK standards.
* Added readme.md
* Removed "PERMISSIVE_HOLD" as it is no longer used.
* Additional code changes made per request
* Added # to first line and removed redundant line.
* Modified Copyright information
* Added space after # for proper formatting
* Formatting changes and additional details
* Remove unnecessary IS_COMMAND definition in clueboard/66/rev4
* Replace keyboard_report->mods with get_mods() in IS_COMMAND definitions
* Update docs to use get_mods() instead of keyboard_report->mods
* Replace keyboard_report->mods with get_mods() in tmk_core/protocol/usb_hid/test
For some reason, this occurrence used KB_LSHIFT and KB_RSHIFT, which don't exist
* Replace keyboard_report->mods with get_mods() in Massdrop keyboards (as per @patrickmt)
* Move Iris via support to Via keymap
And move it out of the main keyboard files
* Actually add via keymap folder
Because using git when you're tired is apparently a very bad idea, and you do stupid things like not running git add
* Clean up config.h file for iris via keymap
* Add default value for IS_COMMAND for COMMAND feature
* Cleanup and consistency
* Update Templates to reflect change
* Fix IS_COMMAND in template
* Fix IS_COMMAND define
* Use consistent IS_COMMAND block in templates
* Remove unnecessary `#undef IS_COMMAND` directives
* Fix compile issue on orthodox
* Reomve IS_COMMAND option for newer boards
* Remove all existing definitions of IS_COMMAND if they use default LSHIFT and RSHIFT setting
* Remove a couple of additional IS_COMMAND defines
* Remove remaining redundant IS_COMMAND definitions
* Remove #undef IS_COMMAND from orthodox:drashna and whitefox:konstantin
* Remove multiple empty lines in modified config.h files
* Update additional boards
* Reomve IS_COMMAND from newer boards
* Update Alice keyboard
* Remove IS_COMMAND from additional boards
Jan 24th edition
* Only re-enable RGBLIGHT if it was on when going to sleep
* Reformat file to follow QMK Standards
* Fix check, since this is a loop, whoops
Much thanks to @Rockman18 for catching this and posting the additional code!
* Add ability to animate arm_atsam led matrix from the center of a circle
* Make arm_atsam led matrix circular animation circular rather than obloid
* Fix indentation in tmk_core led_matrix.c
* Basic Fanoe support (no LED yet)
* Enable RGB lights
* Backlighting support
* Change to reflect Wheat Field brand of Fanoe PCB
* Hot swap variant
* Fix review comment issues
* Fix review issues
* Corrected rules.mk
* Change naming to avoid using possibly copyrighted names
* Added info.json
* Corrected manufacturer name in info.json
* Keymap updates
* Add layout for use with ws2812b and such
* Fixes based on code review
I think `quantum.h` should contain only API declarations that `quantum.c` provides externally. `rgb.h` contains function weak definitions. This should not be in `quantum.h`.
I worked on those keymap to simplify the use of 60% keyboards for
coders. Instead of trying to mimic planck, this keymap remove
raise/lower layer complexity and keep some important sign keys for coder
in the upper right side pretty much the same way as they are on a full
keyboard.
A karabiner configuration is also provided to mimic most of the keymap
features on the macbook internal keyboard for when you are forced to use
it.
* Adding documentation for the LM layer modifier.
This will hopefully clear up some of the confusion around adding this layer modifier. I struggled with this a bit as well at first.
* Removing duplicate table.
* Changed section title to `Changing Layers`
* Retain name
* Custom keymap.
* Fix magic layer, enable Unicode.
* Update README.
* Make Unicode config change keymap-local.
* Move magic to AltGr, simplifying layout.
* Changes per Drashna.
* Fix magic+esc = backtick!
* Change reset implementation per Drashna's suggestion.
* Add a few more symbols so long as the commit is open - √ℜℂℤ⊙ℚℕ and the like.
* Typo fix.
* Slight simplification, drop an extra variable.
* Added busby222 config
* Fixed bug with leftover colemak and dvorak layouts
* Fixing dumb mistake
* Minor tweaks to layout. Need to use at work tomorrow to make more adjustments
* Added mouse controls for raised layer
* Update keymap.c
* Update keymap.c
* Update keymap.c
* Update keymap.c
* Update keymap.c
* Update config.h
Added mouse specific settings for smoother mouse movement (default is sort of hard to use)
* config.h cleanup
* Lowering max mouse speed (personal preference)
* Update keymap.c
* Update keymap.c
* Update keymap.c
* Update keymap.c
* Update keymap.c
* Update config.h
* Update rules.mk
* Added MIDI layer
* Switched the Adjust layer to an MO call
* Update keymap.c
* Fixing bugs related to midi layer
* Changed "Caps Lock" ctrl to RCTRL for use in VirtualBox
* Added shovelpaw keyamp
* Removed deprecated QUANTUM_DIR code block
* Switched midi layer to be only active when held
* Addressing requested changes
* Removed unnecessary include statement
* initial commit
* move the original kbd67 stuff into its own directory, rev1
* get rid of vanilla cookie cutter code
* put in the switch matrix pins, backlight pin, and rgb underglow pin. Number of underglow LEDs is questionable.
* switch matrix created for hotswap
* create a basic keymap for testing
* make info.json for QMK Configurator support
* rename kbd67 due to compile error
* kbd67 generic readme file
* fix make instructions for the new rev1
* comment out unneeded rgb light #defines
* Update keyboards/kbd67/readme.md
Add an extra space for proper markdown rendering
Co-Authored-By: mechmerlin <30334081+mechmerlin@users.noreply.github.com>
* Update keyboards/kbd67/hotswap/hotswap.h
Co-Authored-By: mechmerlin <30334081+mechmerlin@users.noreply.github.com>
* Update keyboards/kbd67/hotswap/keymaps/default/keymap.c
Co-Authored-By: mechmerlin <30334081+mechmerlin@users.noreply.github.com>
* use pragma once
* proper format of MechMerlin
* Cluecard: refactor
- renamed layout macro KEYMAP to LAYOUT
- reformatted layout macro to more closely resemble physical device layout
- keymaps now use #include QMK_KEYBOARD_H
- config.h files updated to use #pragma once method
- deleted outdated QUANTUM_DIR code blocks from rules.mk files
- white space changes on rules.mk files (alignment/readability)
* Cluecard: Configurator support
* Cluecard: readme update
- added image
- updated Docs links
* Clueboard 66% HotSwap: corrected matrix and Configurator data
- removed k31 and k84 from LAYOUT
- both appear to be unsupported for this PCB according to images on clueboard.co
- updated block comment mock-ups to match changes
- rebuilt info.json file
- delete removed keys from default keymap.c
* Clueboard 66% HotSwap: readme update
- fix make example
- updated Docs links
* Clueboard 66% HotSwap: 66_ansi keymap update
Updated to use #include QMK_KEYBOARD_H
* Clueboard 60% refactor
- renamed layout macro KEYMAP to LAYOUT_all
- renamed layout macro KEYMAP_AEK to LAYOUT_aek
- removed redundant KC_TRNS definitions from keymaps
- all keymaps now use #include QMK_KEYBOARD_H
* Clueboard 17%: refactor
* Clueboard 17%: Configurator support
* Clueboard 17%: update Docs links in readme
* Cleanup the 2x1800 files
* Update Clueboard 60% to standard matrix
* Update the clueboard default keymaps
* Refresh and update clueboard 17
* Add the 66% hotswap to Clueboard's readme
* Clarify the 66% hotswap's readme
* change the image to imgur
* Update the clueboard 66 to follow modern standards
* update clueboard 66_hotswap to follow modern practices
* Move the logo to imgur
* update clueboard/card to follow modern practices
* remove clueboard/66 as a valid make target
* Address comments in #4902
* fix user keymaps after the changes
When this if statement is false, it will cause the report ID to be read as the LED state.
We already know there are two bytes in the endpoint, which is a reasonably good indicator that it contains a report ID, so we should always read both.
* Added TGR Alice keyboard support
This keyboard uses ps2avrGB firmware, so I used the same matrix
Bootmapper Client was using and was able to flash it appropriately.
* Refactor alice to use QMK core
* Fixed markdown line breaks on TGR Alice readme
* handwired/retro_refit: refactor
- retro_refit.h
- updated to use #pragma once include guard
- refactored layout macro to not auto-prepend KC_ to keycodes
- renamed to LAYOUT (from KEYMAP)
- aligned for readability
- default keymap.c
- now uses #include QMK_KEYBOARD_H
- removed unused fn_actions and action_get_macro blocks
* handwired/retro_refit: Configurator support
* handwired/retro_refit: readme update
Updated readme to format of current QMK template.
* Create ISO HHKB keymapping for GH60
* Add media controls to Fn layer
* Use M(x) instead of F(x), add Copyright text
* Create initial firmware for TMO50
* Correct year and author
* Fix repos README
* Remove unnecessary code
* Change include guard in tmo50.h
* Plain60: remove redundant include guard from plain60.h
Superseded by #pragma once.
* Plain60: add Docs links to readme file
* Plain60: Configurator support
* new hhkb keymap implementing movement layer + comfort features
* Apply suggestions from code review
Co-Authored-By: schaefer-dev <schaefer.dev@gmail.com>
* removed deprecated function action_get_macro and mousewheel configs that are no longer used
* handwired/reddot: refactor
- reddot.h
- updated to use #pragma once include guard
- renamed layout macro KEYMAP to LAYOUT
- refactored arguments to more closely resemble physical layout
- aligned for readability
- keymaps/default/keymap.c
- now uses #include QMK_KEYBOARD_H
- updated include path for keymap_french.h
- refactored to use short keycodes
- aligned for readability
* handwired/reddot: Configurator support
* handwired/reddot: readme update
- update readme to current QMK template
- add KLE permalink to my best guess at the layout
* Initial support for TKC Candybar
* Correct FN layer issue
Both shift keys were overloaded. Moved Caps Lock to FN + C.
* Update keyboard description in config.h.
* Info.json
* Update project information
* Update keyboards/candybar/readme.md
Co-Authored-By: TerryMathews <terry@terrymathews.net>
* handwired/qc60: refactor and Configurator update
- correct layout macro name (LAYOUT_ANSI_DEFAULT to LAYOUT_ansi_default)
- add layout data for remaining layout macros
- correct ISO layout macros (neither had a split left Shift)
- refactor LAYOUT_iso_alt (place KC_NUHS key on home row; consistent with LAYOUT_iso_default)
- proto.h refactored to use #pragma once include guard
* handwired/qc60: keymap refactor
- delete redundant KC_TRNS and KC_NO aliases
* handwired/qc60: readme update
- update header (made consistent with QMK template)
- update Docs links (Newbs Guide; grammar)
* handwired/ortho60: Configurator update
- correct labels for Up and Right keys
- add layout data for LAYOUT_1x2uC
* handwired/ortho60: readme update
- update readme file to use QMK template
* handwired/ortho60: deleted DEFAULT_FOLDER rule
Not needed as the keyboard currently has no revisions.
* TKC1800: refactor
- tkc1800.h
- updated to use #pragma once
- visual alignment
- update config.h files to use #pragma once
- update all keymaps to use #include QMK_KEYBOARD_H
- delete redundant mod mask, KC_TRNS, and KC_NO definitions
- reformat keymap layers for readability
- add block comment for Function layer in default keymap
- delete commented action_get_macro code blocks (deprecated function)
- update files to better conform with QMK coding conventions
- update smt keymap to use set_single_persistent_default_layer (instead of persistent_default_layer_set)
- replace instances of `?=` with `=` in rules.mk
* TKC1800: Configurator visual fixes
- correct key sizes and positioning
- reformat file so each physical key object has its own line for readability
- update and add `label` keys for readability
* TKC1800: readme update
- fix image gallery link
- update Hardware Supported and Hardware Availability lines
- update make example (add :default suffix)
- update QMK Docs links (Newbs Guide; grammar)
* Add missing semicolons to smt keymap
* Grammatical fixes for GPIO Control doc
I found the Advanced Settings section to be poorly written.
* Commit suggestions from fauxpark
* Change first instance of "microcontroller" to match suggestion
Discovered the LAYOUT_compact macro didn't compile in QMK Configurator. Realized the reason for that was that it automatically prepends `KC_` to every keycode received.
Renamed the macro to LAYOUT_kc so Configurator will ignore it.
Also changed the file to use the #pragma once include guard because I was in here anyway.
* change VENDOR_ID, PRODUCT_ID, and DEVICE_VER as step one in getting VIA support
* fix v1 product id
* VIA doesn't use the version, so we need to encode it into PRODUCT_ID
* Defined IS_(HOST_)LED_ON/OFF() and improved LED documentation
* Update docs/custom_quantum_functions.md
Co-Authored-By: DidierLoiseau <didierloiseau+github@gmail.com>
* Update docs/custom_quantum_functions.md
Co-Authored-By: DidierLoiseau <didierloiseau+github@gmail.com>
* Integrated @drashna and @fauxpark's PR comments
- changed all plurals of "LED" to "LEDs" in the file
- rewording of the note about host_keyboard_leds() vs. led_set_user()
* Update docs/custom_quantum_functions.md
Co-Authored-By: DidierLoiseau <didierloiseau+github@gmail.com>
* Eliminate separate slave loop
Both master and slave run the standard keyboard_task main loop now.
* Refactor i2c/serial specific code
Simplify some of the preprocessor mess by using common function names.
* Fix missing #endif
* Move direct pin mapping support from miniaxe to split_common
For boards with more pins than sense--sorry, switches.
* Reordering and reformatting only
* Don't run matrix_scan_quantum on slave side
* Clean up the offset/slaveOffset calculations
* Cut undebounced matrix size in half
* Refactor debouncing
* Minor fixups
* Split split_common transport and debounce code into their own files
Can now be replaced with custom versions per keyboard using
CUSTOM_TRANSPORT = yes and CUSTOM_DEBOUNCE = yes
* Refactor debounce for non-split keyboards too
* Update handwired/xealous to build using new split_common
* Fix debounce breaking basic test
* Dodgy method to allow a split kb to only include one of i2c/serial
SPLIT_TRANSPORT = serial or SPLIT_TRANSPORT = i2c will include only
that driver code in the binary.
SPLIT_TRANSPORT = custom (or anything else) will include neither, the
keyboard must supply it's own code
if SPLIT_TRANSPORT is not defined then the original behaviour (include
both avr i2c and serial code) is maintained.
This could be better but it would require explicitly updating all the
existing split keyboards.
* Enable LTO to get lets_split/sockets under the line
* Add docs for SPLIT_TRANSPORT, CUSTOM_MATRIX, CUSTOM_DEBOUNCE
* Remove avr-specific sei() from split matrix_setup
Not needed now that slave doesn't have a separate main loop.
Both sides (on avr) call sei() in lufa's main() after exiting
keyboard_setup().
* Fix QUANTUM_LIB_SRC references and simplify SPLIT_TRANSPORT.
* Add comments and fix formatting.
* Crawlpad: delete kbfirmware JSON file
* Crawlpad: refactor
- config.h and crawlpad.h updated to use #pragma once method
- layout macro renamed from KEYMAP to LAYOUT_ortho_4x4
- default keymap now uses #include QMK_KEYBOARD_H
- deleted deprecated action_get_macro function
- cleanup rules.mk file
- add LAYOUTS = ortho_4x4 to rules.mk
* Crawlpad: Configurator support
* Crawlpad: readme update
- update image link to direct link
- fully update Docs link line
- delete reference to deleted kbfirmware JSON file
* Add encoder support
* Add VIA support to Iris Rev. 3
* Update pinout and disable mouse keys to free up space
* Rollout VIA support to all Iris revisions
* Update default keymap
* Update vendor ID
* Add kbd6x:konstantin keymap
* Prevent tap dance from sending LShift as a weak mod in KBD6X
* Move config.h and rules.mk definitions into userspace
* Add UC_WIN to UNICODE_SELECTED_MODES
* Temporarily use Bootmagic until Command is fixed
* Move common behavior from keyboards into userspace
* Update kbd6x:konstantin keymap and userspace
* Make a RCTRL layer in kbd6x:konstantin
* Make KC_ESC turn off layers
* KC_ESC turns L_FN off only if it was locked on
* Add missing record->event.pressed checks
* Move numpad toggling logic into function
* Disable Bootmagic, enable KEYBOARD_SHARED_EP with Command
* Add support for THE50
A 50% custom keyboard designed and produced by LazyDesigners
* THE50 code-improvement
Implement the changes suggested by noroadsleft.
* changed ortho keymaps and userspace
* changed prime_o keymap
* changed userspace
* optimized keymaps and userspace
* removed permissive hold as it doesn't seem to do anything
* defined TAPPING_TERM in userspace config.h
* Commited into clean repo
* Gergo initial release
* Cleaning up
* Cleaning up
* Update readme.md
* Updated image, fixed MD formatting, added clairity
* Moved keymap to keyboard subdir, modified rules.mk
* Cleaned header guards
* Cleaned header guards. Read the rest of the PR comments
* Update keyboards/gergo/keymaps/default/keymap.c
Co-Authored-By: germ <jeremythegeek@gmail.com>
* Update keyboards/gergo/readme.md
Co-Authored-By: germ <jeremythegeek@gmail.com>
* Moved makefiles to keymap mod-area-thingy-with-overrides
* Update rules.mk
Slow the roll on the defaults while I wait for merge
* Update rules.mk
* Cleaning cleaning cleaning
* More housekeeping. Keeping optdefs
* moved keyboard specfic conf to config.h. Can we merge yet?
* added info.json
* Check the size of the SET_REPORT packet
If we have two bytes, that probably means the first is a report ID. The 6KRO interface may or may not have one, but the NKRO interface always does, so we need to check this regardless of whether KEYBOARD_SHARED_EP is defined.
* Fix indentation
* adds proton c base
* fixes custom matrix include
* adds readme.md
* initial proton coversion, no pin mapping
* start of mcu selection
* add pin mapping and sweet16 test
* add at90 to list
* disable backlight, fix d7
* update flag names
* doc updates
* proton c update for mcu selection
* initial prime_o commit
* Cleaned up comments, other things.
* Update bakingpy 4x12 keymap and add test mode for debugging/development (#4810)
* Keymap: ave-63's iris layout (#4812)
* Updated keymap to use standard seven-underscore KC_TRNS notation
* initial prime_o commit
* Cleaned up comments, other things.
* Updated keymap to use standard seven-underscore KC_TRNS notation
* Downbubble: Configurator fix
Fix the visual key alignment and some typos.
* Downbubble: refactor
Rename layout macros:
- LAYOUT_downbubble_standard to LAYOUT_standard
- LAYOUT_downbubble_splitbackspace to LAYOUT_split_bs
- LAYOUT_downbubble_splitrightshift to LAYOUT_split_rshift
- LAYOUT_downbubble_splitnumpad to LAYOUT_split_numpad
- LAYOUT_downbubble_spliteverything to LAYOUT_all
* Remove unused UNICODE(n) macro, update docs
* Add note about max length of unicode_map to docs
* QK_UNICODE_MAP → QK_UNICODEMAP
* Refactor process_unicode_map
* process_unicode_map → process_unicodemap
This is done for consistency: UNICODEMAP is the method (hence UNICODEMAP_ENABLE, process_unicodemap), whereas unicode_map is the mapping table itself.
* Update references and ordering in docs/understanding_qmk
* Add additional note to docs/understanding_qmk
* &unicode_map[index] → unicode_map + index
This avoids the issue of the compiler sometimes complaining about the array index being out of range
* Update docs/getting_started_make_guide
* Update method sections in docs/feature_unicode
Microsecond (us) delays are now handled by a busy wait loop according to MCU frequency. This replaces the system counter method which had an overhead of around 12us.
TC5 device and supporting routines removed as it was the old us delay counter.
wait_ms is now properly a macro to CLK_delay_ms.
wait_us is now properly a macro to CLK_delay_us.
Removed CLK_get_us as it has no use.
All calls to CLK_get_ms() have been replaced by timer_read64() with corrected typing.
All calls to CLK_delay_ms() have been replaced by wait_ms().
All calls to CLK_delay_us() have been replaced by wait_us() and timings verified or updated as needed after review on scope.
Corrected typing of variables using 64bit ms timer readings if needed.
* initial commit, this now mostly works
- RGB controls work
- Dynamic keymap still broken due to eeprom
- Via works
* STM32 eeprom update
- Update EEPROM emulation library to handle 8bit data like AVR.
- This library also allows for multiple page pairs resulting in greater EEPROM size flexibility
* hs60 changes
* HS60 hhkb added
* Update keyboards/hs60/v2/config.h
Co-Authored-By: yiancar <yiangosyiangou@cytanet.com.cy>
* Fractal: layout macro cleanup
Removed KEYMAP alias for LAYOUT_preonic_mit. Alias was unused, and the terminology usage is deprecated.
* Fractal: readme cleanup
Updated the line containing the documentation links in the readme.
* Fractal: disable preonic_mit community layout
QMK doesn't have a preonic_mit community layout at this time.
Disables preonic_mit as an option for community layout. Can be re-enabled when the layout is added.
* Numbrero: fix Configurator mismatch
Key object order in info.json didn't match the layout macro, leading to keys being assigned out-of-sequence.
* Numbrero: tidy
- white space changes in numbrero.h (alignment/readability/QMK conventions)
- minor changes to readme.md (grammar, mostly)
* Tradestation: tidy code
- correct JSON syntax on info.json
- visual key alignment on info.json
- white space changes on rules.mk and tradestation.h (readability/QMK conventions)
* Tradestation: readme refactor
Modify readme.md to more closely match QMK template.
* Tradestation: readme update
Update The Board podcast link for libsyn.
* S65-X: remove S65-Plus support
The original QMK codebase for the Sentraq S65-X actually supported both the S65-X and the S65-Plus. In the interim, the S65-Plus has been broken off into its own directory.
This commit removes support for the S65-Plus from the `keyboards/s65_x/` directory, as that code has been superseded by the code in the S65-Plus directory (`keyboards/s65_plus/`).
- deleted S65-Plus layout macros from s65_x.h and info.json
- deleted s65plus keymap directory
- removed references to the unused column pins
- removed the two unused columns for the switch matrices
- renamed switch K300 in LAYOUT_ansi to K301 (reflects matrix position)
- renamed switch K214 in LAYOUT_iso to K114 (reflects matrix position)
* S65-X: keymap refactor
- all keymaps now use #include QMK_KEYBOARD_H
- default and iso keymaps refactored for readability
- deleted redundant KC_TRNS and KC_NO keycode definitions from smt keymap
* S65-X: readme update
- updated Hardware Availability link
- updated Docs links
* S65-Plus: add LAYOUT_iso data
Adds LAYOUT_iso macro to s65_plus.h and info.json, and an ISO layout version of the default keymap.
* S65-Plus: refactor default keymap
- refactor for alignment/readability
- removed fn_actions code block
- add empty process_record_user block
* S65-Plus: readme update
- Hardware Availability link is now a hyperlink
- updated Docs links
* S65-X: enable 65_ansi and 65_iso community layouts
Thi commit allows the Sentraq S65-X to use the 65_ansi and 65_iso community layouts.
- LAYOUT_ansi renamed to LAYOUT_65_ansi
- LAYOUT_iso renamed to LAYOUT_65_iso
- added LAYOUTS rule to rules.mk
* Remove QUANTUM_DIR code blocks from keyboard rules
This commit removes the deprecated "QUANTUM_DIR" code block from
rules.mk files that affect entire keyboards.
* remove QUANTUM_DIR code blocks from rules for default keymaps
This commit removes the deprecated "QUANTUM_DIR" code block from
rules.mk files that affect default keymaps.
* remove QUANTUM_DIR code blocks from rules for user keymaps
This commit removes the deprecated "QUANTUM_DIR" code block from
rules.mk files that affect "user" keymaps. (It's actually any keymap
that isn't named `default`.)
* remove QUANTUM_DIR code blocks from rules for community layouts
This commit removes the deprecated "QUANTUM_DIR" code block from
rules.mk files for community layouts.
* remove QUANTUM_DIR code blocks from rules for userspaces
This commit removes the deprecated "QUANTUM_DIR" code block from
rules.mk files for userspaces.
* Use standard KC_ALGR, remove language-specific redefinitions
* Use ALGR instead of ALTGR in BÉPO and Canadian multilingual keymaps
* Remove BE_LALT, BE_LGUI aliases
* adding default settings to support 3v ERM vibration motors
* set default settings of haptic motor for LV061228B-L64-A 2v LRA
* update ishtob keymap and fix config settings
* Bocaj Layout Revamp
* Pull in Upstream (#1)
* Various tweaks for some Input:Club build processes
* change KEYMAP to LAYOUT for all new keyboards made using this script
* Add support for rev3 of the Atom47 (#2672)
* Added support for rev3 of the Atom47
* Updated Atom47 readme's
* Fix redefine error on rev2 and add maartenwut's keymap
* Fix redefine error on LEdiodes keymap
* Add Nyquist keymap (#2692)
* nyquist
* danielhklein nyquist setup
* shift left controls
* remove readme
* cleanup before pr
* ready for pr
* Adds Phantom TKL support (#2696)
* Add an info.json to phantom keyboard
* Add layouts
- KEYMAP_WINKEYLESS
- KEYMAP_7BIT
- KEYMAP_ISO
- KEYMAP_ISO_WINKEYLESS
* Add key_counts
* Add 2 missing F-Row keys
* Add TKC1800 info.json
Created an info.json for the tkc1800.
* Clueboard 60 info.json
- adds
- LAYOUT_60_ansi
- LAYOUT_60_iso
- KEYMAP_AEK
- KEYMAP
- LAYOUT_60_ansi_split_bs_rshift
* Add the Speedo keyboard
* Fix KC60 info.json file (#2707)
* change KEYMAP to LAYOUT in all the KC60 files
* Redo the info.json file
* Small fixes to TKC1800
- adjust F-row to use 0.25 spacing
- split left shift
- add key_count
* Fix some Configurator Warnings regarding LAYOUT vs KEYMAP (#2708)
* change diverge 3 KC_KEYMAP to LAYOUT
* Change KEYMAP to LAYOUT for handwired arrow pad
* change M10A to LAYOUT for m10-a
* Change KC_KEYMAP to LAYOUT_kc and KEYMAP to LAYOUT for mf68
* change KC_KEYMAP to LAYOUT for nano
* Refactor to LAYOUT
* refactor to LAYOUT-ansi and LAYOUT_iso for s65
* LAYOUT conversions for lfkkeyboards
* missed a few renames
* mini1800 for lfkeyobards support of LAYOUT
* Improve state/chord handling and clean up namespace
Some values that can never, ever, change were held in local
variables, rather than in PROGMEM. Fixed.
Change "pressed" to a signed int so the test for < 0 makes
sense, and to avoid possible weird failure modes in the
case where a key release comes in when pressed is already
zero. (Shouldn't happen, sure, but computers are weird.)
A lot of things in process_steno had external linkage for no
particular reason. They've been marked static. Stuff still
builds.
Distinguish between currently-held keys and keys that have
been held, and expose these values through a nicely-named API
so other code could, say, check on the current set of steno
chording in order to make displays. Also in passing fix up the
"state" value having external linkage so it could clash with
other people's variable declarations.
The API also provides hooks for key processing and steno chord
events, so you can monitor those events without having to
run in matrix_scan_user and recheck the values directly. Also
document these.
There is no path through processing a key that doesn't
end with a return false, so the nested return foo() are
gone and we just return false.
* Pull information from config.h and rules.mk (#2711)
* Pull information from config.h and rules.mk
* Readd the kbd75 maintainer
* Remove obsolete info.json entries (#2712)
* Clean up some long-standing errors when populating the API (#2715)
* More Configurator Warning Fixes (#2716)
* mf68_ble did not have the correct .c and .h files
* Fix JC65 KEYMAP to LAYOUT
* Change KEYMAP to LAYOUT for s60_x
* Convert KEYMAP to LAYOUT for lets_split boards
* Convert KEYMAP to LAYOUT
* more fixes to keymap for iris
* convert KEYMAP to LAYOUT for levinson keyboard
* change losinggeneration's KEYMAP to LAYOUT
* convert KEYMAP to LAYOUT
* convert KEYMAP to LAYOUT for nyquist
* convert KEYMAP to LAYOUT
* convert KEYMAP to LAYOUT for viterbi
* convert KEYMAP to LAYOUT
* convert KEYMAP and its subsidiries to the LAYOUT standard
* convert KEYMAP and its subsidiries to the new LAYOUT standard
* Normacos keymap for let's split keyboard (#2691)
* Cheers let's split keymap
* fixed typo on norman layer of cheers keymap for let's split
* fixed right handed mappings for home row
* cheers keymap for let's split redefinition
* updated Cheers keymap for let's split
* cheers keymap for let's split updated with some terminal macros
* renamed cheers let's split keymap to a more appropriate normacos
* updated normacos keymap doc / removed non functional keys
* reset let's split rules to default values
* added more spotlight search macros
* normalized keymap comments
* Moved numpad on lower layer
* hhkb jp personal keymap (#2698)
* Add JJ40 Cockpit personal keymap (#2713)
* Add JJ40 Cockpit keymap
* Fix lower layer symbols
* Add readme for "major" keyboards to eliminate more QMK Configurator errors (#2718)
* add readme to ktype keyboard
* add readme to m10a
* add readme to mini1800
* add readme to parent directory
* Revert "Pull in Upstream (#1)"
This reverts commit eeba0cec17ccb636e4225eed88aeae72b99f5e45.
* Updates to Bocaj Files
- Gave up on Tap Dance for ' -> '
+ Added another 'Secret'
+ Add ' -> ' to the Swap Hands key
+ Add Swap Hands to the ' -> ' key
+ Made Hand Swapping a momentary toggle
- Removed Auto Shift
+ Added Layer Toggle to KC_QUOTE for the _TOOLS layer
- Disabled Tap Dance
* Merge remote-tracking branch 'upstream/master'
* Updates to Bocaj
Added Game Layers, Removed Unused Macros
* Removed 'secrets.h'
* Updates to Bocaj
Remove 'secrets'.
Remove 'sendstring_workman.h' and set related layer back to qwerty due to macro compatibility issues
* Total revisioning of keymap and layout structure
* Missed readme.md file
* Bocaj - Permissive Hold setting enabled
* Switching from ErgoDox EZ centric configuration to the layout/user approach
* Bocaj - Create Userspace and Ergodox layout
* Update settings.json
* Pushing local updates
* Reverting .vscode/settings.json
* Adds pretty_osx and _win wrappers
* Utilize Windows and Mac Wrappers
* Update layouts/community/ergodox/bocaj/keymap.c
* Updates to Bocaj keymap.c
- Extended pretty_osx and pretty_win wrappers to allow modification of the bottom rows and thumb clusters.
- Fixed already wrapped layouts to align with the change
- Wrapped _NUMS and _CLICKY layers with the _osx wrapper because I main with a Mac
* Updates to Bocaj
Small documentation updates, added KC_MAKE from Drashna's layout, added KC_LOCK back to the diablo layer.
* Add LShift to _Adjust layer
* Minor changes to bocaj
Put wrappers in userspace and added RESET keycode to the Adjust layer
* Updates to Bocaj config & keymap; Fixed problem with process_leader.c
- Made lots of changes to the bocaj layout and userspace
- Pulled in latest upstream/master
- Attempted to compile with latest and found an unneccessary `break` in process_leader.c
* Bocaj - Updates to Layout and Userspace
* Adjust LEADER_TIMEOUT to 350
* Put KC_GRAVE on _ADJUST layer
* Eliminate _LOWER layer and associated definitions
* Adjusted layer indicating LEDs to match changes
* Fixed Diablo leader sequence
* Added build info leader sequence
* Got rid of obsoleted IGNORE_MOD_TAP_INTERRUPT/PERMISSIVE_HOLD/PREVENT_STUCK_MODIFIERS (may add STRICT_LAYER_RELEASE in the future)
* Remove type_traits
Not sure what in my VSCode config always brings this one in
* refactor stage 1
* Bocaj Refactor Phase II
* Made LED_2 brighter if both CTRL & GUI are being held
* Enabled unicode because I got it to work in Mac OS
* Finalized Build Info leader combination after testing in Mac OS
* Not sure why KC_D3_1 was set to ASDF if !TAP_DANCE_ENABLE. So I changed that back
* Experienced issues with `EXTRAFLAGS += -flto` using Docker in MacOS. Not sure what it does, but I don't seem to be missing anything
* Wrote obligatory readme.md files and mentioned Drashna too many times... I don't think I can actually take credit for much of anything here.
* Updates to Bocaj
Made LED changes, added LM_DFLT which is similar to the grave macro, enabled retro tapping, working on a unicode idea -- currently fails to build.
* Bocaj Refactor Phase 3 Part 2
- Continuation of implementing unicode switching based on default layer
- Slight adjustments to _DIABLO and base wrapper because LM_DFLT macro didn't function as I'd hoped
* Slight adjustment to KC_MAKE
* Added my Mechmini2 layout to qmk.
* Added more info to the readme.
* Made changes.
* Update keyboards/mechmini/v2/keymaps/lbibass_625_space/keymap.c
Co-Authored-By: lbibass <ewdries02@gmail.com>
* Update keyboards/mechmini/v2/keymaps/lbibass_split_space/keymap.c
Co-Authored-By: lbibass <ewdries02@gmail.com>
* Added brightness and volume controls to MechMini 625 layout.
* Make CRKBD keylogger output actually show tap keys
* check MT/LT for twinkling
* Add ortho 5x12 support for fractal keyboard
* Use newer interface for setting pins/ports
* Remove custom unicode methods
* Reomve unicode input info
* Odd rules issue
* Redefine REST note to be more pleasing
* Properly disable PM LEDs with GPIO commands
* Update gitlab CI yaml file
* Remove extra mod tap check
* Remove initial state on ergodox glow
* Rev6 Cleanup
* Fix KC_MAKE macro
* Update GitLab CI yaml file
* More GitLab CI changes
* One final GitLab CI change
* Remove unneeded unicode support
* Optimize KC_MAKE
* Change rgblight_get_mode's return type to uint8_t.
Since rgblight_get_mode() is just returning rgblight_config_t.mode,
it should match rgblight_config_t.mode's type: uint8_t.
* Update rgb_matrix_get_mode to return uint8_t.
It seems the led_mask is set incorrectly on the WhiteFox meaning that
the LED at C9-1 (the space bar) doesn't get lit. I can't see any reason
for this to be intentional so I am pretty sure it's a typo. At the very
least it fixes the space bar LED for me.
* Add my zeal60 keymap
* Temporarily remove failing community layout from zeal60 make rules
* Revert "Temporarily remove failing community layout from zeal60 make rules"
This reverts commit ffd0018fb1dcf3d5f90d4a226c437d4e85430cce.
* refactored cyclops keyboard project
Moved the files into a subfolder to allow consistency in preparation for additional commits to come in the future.
made some small adjustments to the configuration and keymap
* Update keyboards/westfoxtrot/cyclops/keymaps/default/keymap.c
Co-Authored-By: westfoxtrot <17062872+westfoxtrot@users.noreply.github.com>
* Update keyboards/westfoxtrot/cyclops/readme.md
Co-Authored-By: westfoxtrot <17062872+westfoxtrot@users.noreply.github.com>
* Update keyboards/westfoxtrot/cyclops/readme.md
Co-Authored-By: westfoxtrot <17062872+westfoxtrot@users.noreply.github.com>
* Update keyboards/westfoxtrot/cyclops/readme.md
Co-Authored-By: westfoxtrot <17062872+westfoxtrot@users.noreply.github.com>
* Keep pressed keys on layer state change
* Add doc comment for clear_keyboard_but_mods_and_keys
* Keep pressed keys only if PREVENT_STUCK_MODIFIERS is on
* Check STRICT_LAYER_RELEASE instead of PREVENT_STUCK_MODIFIERS
* Update feature_advanced_keycodes.md
Probably a better way to word it, but I've solved this issue on reddit several times, had to solve this for friends, ect. It's something worth being in the docs as it's a common issue, and not always intuitive. I have offered this change as I was told by several people "It was never mentioned in the docs".
* Update feature_advanced_keycodes.md
Clear up what was meant to be said.
* Change spaces to tabs on two lines
The rest of the file uses tabs
* Read user input in a non-terrible, non-hacky way
* Remove unnecessary tee call
* read -p is not POSIX
* Add missing $ to echo GENTOO_WARNING
* Replace non-POSIX echo -n with printf
* Use cd ... || exit 1 in case git clone fails
* Add missing sudo
Thanks @snortwolf
* Undo replacing tee with >>
* XMMX: matrix and keymap refactor
- xmmx.h updated to use #pragma once
- renamed LAYOUT_ansi_wk macro to LAYOUT_tkl_ansi
- renamed LAYOUT_ansi_wkl macro to LAYOUT_tkl_ansi_wkl
- renamed LAYOUT_iso_wk macro to LAYOUT_tkl_iso
- renamed LAYOUT_iso_wkl macro to LAYOUT_tkl_iso_wkl
* XMMX: Configurator support
* XMMX: readme update
* Add support for reset to bootloader
Chibios_test/STM32_F072_ONEKEY wouldn't reset to bootloader on a
compatible Discovery board because the Chibios library board file was
lacking the __early_init(void) function necessary to read the magic key.
Borrowed code from Clueboard 60, tested working.
* Remove board.chcfg
* Add provisional Helix implementation to test the quantum/split_common.
* copy keyboards/helix/serial.[ch] to quantum/split_common/
* Make serial.c a pure driver.
Remove buffer name and buffer size from serial.c. They should be placed in the caller(matrix.c, split_utils.c).
* remove quantum/split_common/serial_backward_compatibility.h
* Changed array serial_master_buffer to structure serial_m2s_buffer.
* Changed array serial_slave_buffer to structure serial_s2m_buffer.
* Change keyboards/miniaxe/matrix.c
I also made changes to quantum/split_comon/matrix.c to keyboards/miniaxe/matrix.c.
Note: I contacted @ka2hiro, creator of miniaxe, and I got permission to change keyboards/miniaxe/matrix.c.
* update history comment in quantum/split_common/serial.c
* Revert "Add provisional Helix implementation to test the quantum/split_common."
This reverts commit 168c82ef82c88e79979d9796bab9cc819cc2f685.
* fix keyboards/miniaxe/matrix.c, quantum/split_common/matrix.c
avr-gcc 4.9.[23] report error.
avr-gcc 5.4.0, avr-gcc 7.3.0 pass.
It is funny.
* update comment quantum/split_common/serial.c
* Reserve RGBLIGHT_SPLIT macro in quantum/split_common
* initial commit for Othi's HHKB layout keymap,
covering multiple modifiers hold and vim-like support and german characters. If there's
any suggestion i can be reached via mnpqraven on github or Othi#6661 on
discord
* added readme.md. TODO: update readme.md
* changed to default quantum keycode for `KC_TRNS`,
removed `PREVENT_STUCK_MODIFIERS`,
fixed tap dance using one shots
TODO: unicode implementation at https://docs.qmk.fm/#/feature_unicode
* keymap documentaion(readme) added
* unicode init
TODO: figure out what made the compose sequence not running
* update unicode and readme
* JD40: default keymap refactor
- Removed redundant action_layer.h include
- Refactored to use LAYOUT macro (from LAYOUT_kc)
- Refactored to use QMK-native keycodes
- Removed superseded TMK code blocks
* JD40: readme cleanup
Fixed and updated the links in the readme file
* Infinity60: refactor
- infinity60.h / keymap.c
- renamed layout macro to LAYOUT_60_ansi_split_bs_rshift; removed layout macro alias
- updated to #pragma once
- keymaps now use #include QMK_KEYBOARD_H
- keymaps/jpetermans/config.h updated to #pragma once
- keymaps/jpetermans/rules.mk deleted (complete contents were deprecated make instructions)
* Infinity 60%: Configurator support
* Infinity60: readme update
Updated the Docs links.
* Infinity60: bugfix depariel keymap
Had a typo.
* Infinity60: edit matrix.c
per @drashna
- https://github.com/qmk/qmk_firmware/pull/4707#issuecomment-449540676
* Fix up process_leader to be a bit more optimized
* Process dual function keys better
* Make leader start a callable function
* Fix per key timer call location
* Add escape if already leading
* Return false for KC_LEAD
* Add documentation
* add some comment about Helix customize and auto-setup RGBLIGHT_LIMIT_VAL
* add define USB_MAX_POWER_CONSUMPTION
* Helix keyboard OLED, RGBLIGHT enable/disable control integrate into rules.mk
rules.mk: add 4 Variables for compile control.
# Helix keyboard customize
# you can edit follows 4 Variables
# jp: 以下の4つの変数を必要に応じて編集します。
OLED_ENABLE = no # OLED_ENABLE
LED_BACK_ENABLE = no # LED backlight (Enable WS2812 RGB underlight.)
LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight.)
LED_ANIMATIONS = yes # LED animations
config.h: auto set RGBLED_NUM by HELIX_ROWS and rules.mk's define
* HELIX_ROWS define move from config.h to rules.mk
* add readme.md
* rename readme.md to readme_jp.md
* add readme.md and modify readme_jp.md
* change helix/ssd1306.c for select glcdfont.c position
* add variable LOCAL_GLCDFONT into each keymaps rules.mk
* Add iPhone/iPad LED support to Helix default keymap
* renumber _ADJUST for shrink program size
* Fix Helix i2c wrong bit rate
* add helix serial debug code
* serial debug macro move from config.h to serial.h
* helix serial.c debugging...
* refine debug macros
* add some comments
* add SELECT_SERIAL_SPEED
* add comments
* debugging sync_send/sync_recv
* add very high speed
* fix sync_send/sync_recv
* fix com. start and switch send/recv
* debug mode off
* remove debug codes
* temporary change, compiling C, C++ and ASM without -g
* helix config.h refine
* Revert "temporary change, compiling C, C++ and ASM without -g"
This reverts commit e9730cbbfd94fbcf792d992e3a1a65ad279b24d6.
* add change_reciver2sender()/change_sender2reciver()
This is a change to improve readability.
* txled, rxled off in matrix_init()
* add serial_send_packet() / serial_recive_packet()
This is a change to reduce object size.
* add serial_low() at ISR() top
* add __attribute__((always_inline)) to some functions
* modify serial_send_packet()/serial_recive_packet()
A little, object size reduction.
A little, speedup.
* add debug code to helix/serial.c
* Adjust sampling timing of serial signal being received
* add split_scomm.c/split_scomm.h and change serial.c/serial.h
serial.c was divided into 2 layers, split_scom.c and serial.c.
The upper layer split_scomm.c is called from matrix.c.
The lower layer serial.c accesses the hardware.
* add split_scomm.c/split_scomm.h into helix/rev1
* reduce object size helix/rev2/matrix.c
* remove checksum check, add parity check
* force occur parity error for test
* parity test ok. remove test code
* change some comment & add skip code when buffer_size == 0
* serial.c: multiple types of transaction support
Add 4 bits transaction-type field at packet top.
Select Transaction Descriptor Table entry by transaction-type.
* helix serial master-slave transaction optimize
Using multi-type transaction feature of serial.c, communication contents between master slaves were optimized.
* add debug code for retry
* add comment into each config.h
* fix ISR status drop
* add a debug macro 'debug_retry_chg()'
* reduce led_test size
* remove debug code from helix/serial.c and etc.
* helix:five_rows change TAPPING_TERM value 140
* Improved compatibility with let's split of serial.c. Finish helix/serial.c improvement.
- The difference with the original let's split's serial.c
- It's high-speed about 4 times.
- Stable bi-directional data transfer. (Helix need master to slave transfer)
- serial.h was divided 2 files, serial_config.h and sereial.h
- With multiple types of transaction support, communication contents can be optimized. (NEW flexible API)
- USE OLD Simple APIs (compatible with let's split serial.c)
- files :
- serial_config.h -- hardware configuration (need include by config.h)
- serial.c/serial.h -- serial communication
- USE NEW flexible APIs. (Support multi-type transaction function.)
serial.c was divided into 2 layers, split_scom.c and serial.c.
The upper layer split_scomm.c is called from matrix.c.
The lower layer serial.c accesses the hardware.
- files
- split_scomm.c -- communication buffer is defined in here. call by matrix.c.
- split_scomm.h -- buffer size is defined in here. include by matrix.c, split_util.c
- serial_config.h -- hardware configuration (need include by config.h)
To use the NEW API, specify #define SERIAL_USE_MULTI_TRANSACTION
- serial.c/serial.h -- serial communication lower layer
- NEW APIs for serial.c / serial.h (The lower layer)
// Soft Serial Transaction Descriptor
typedef struct _SSTD_t {
uint8_t *status;
uint8_t initiator2target_buffer_size;
uint8_t *initiator2target_buffer;
uint8_t target2initiator_buffer_size;
uint8_t *target2initiator_buffer;
} SSTD_t;
// initiator is transaction start side
void soft_serial_initiator_init(SSTD_t *sstd_table);
// target is interrupt accept side
void soft_serial_target_init(SSTD_t *sstd_table);
int soft_serial_transaction(int sstd_index);
int soft_serial_get_and_clean_target_status(int sstd_index);
- NEW APIs for split_scomm.c / split_scomm.h (The upper layer)
move from old serial.c the following buffer and functions
serial_slave_buffer[]
serial_master_buffer[]
void serial_master_init(void)
void serial_slave_init(void)
int serial_update_buffers(void)
define SERIAL_xxxxx_BUFFER_LENGTH move from serial_config.h to split_scomm.h
* fix comment typo
* Fix the value of helix:five_rows variable HELIX_ROWS to 5.
* led_test rules.mk some change
* Separate common parts of helix/rev2/keymaps/*/rules.mk into helix/rev2/keymaps_common.mk
* helix/rev2/keymaps/edvorakjp/rules.mk use helix/rev2/keymaps_common.mk
* Separate common parts of helix/pico/keymaps/*/rules.mk into helix/pico/keymaps_common.mk
* Helix each keymap's using rgblight mode symbol instead magic number
No change in build result.
* Helix pico keymaps: make rgblight modes selectable.
No change in build result.
* Helix rev2 keymaps: make rgblight modes selectable.
No change in build result.
* fixed Helix froggy/keymap.c: invalid rgblight mode value 0 to 1 (=RGBLIGHT_MODE_STATIC_LIGHT)
* Deselect RGB_TEST and ALTERNATING in Helix rev2,pico keymaps config.h.
* Merge branch 'master' of https://github.com/qmk/qmk_firmware
* revert 955dcbc
* delete keymaps_common.mk
* add LAYOUT_kc() to keyboards/helix/pico/pico.h
* Standardize the Unicode EEPROM code
* Remove unicode init from process_record_* functions
* Add unicode init to where it belongs: matrix_init_quantum
* Move Unicode proccessing to unicode common
* Add audio feedback to input mode keys to drive konstantin up a wall
* Tap_code cleanup
* Update keycodes
* Update unicode documentation
* Update unicode keycodes for consistency/easier merge
* Add Audio Feedback section
* Remove Functions from feature page
And link to the file instead. Link to specific lines later on.
* Fix spacing
Co-Authored-By: drashna <drashna@live.com>
* Because I missed it!
Co-Authored-By: drashna <drashna@live.com>
* Fix spacing
Co-Authored-By: drashna <drashna@live.com>
* SPAAAAAAAAAACing
Co-Authored-By: drashna <drashna@live.com>
* Add BSD for future compatibility
* Thought I fixed that!
Co-Authored-By: drashna <drashna@live.com>
* non-breaking
Co-Authored-By: drashna <drashna@live.com>
* Considered that
Co-Authored-By: drashna <drashna@live.com>
* Yuuup
Co-Authored-By: drashna <drashna@live.com>
* consistency
Co-Authored-By: drashna <drashna@live.com>
* white spaces .... copied from elsewhere
Co-Authored-By: drashna <drashna@live.com>
* white spaces
Co-Authored-By: drashna <drashna@live.com>
* white spaces
Co-Authored-By: drashna <drashna@live.com>
* Update keycode defines
* Fix Linux Song
* Update all of the songs
* Cleanup
* Move and update check to ensure only one unicode method is enabled
* Update quantum/quantum_keycodes.h
* Update documentation
* Wordsmithing and cleanup
* Format unicode_common (#13)
* case alignment
* process_record_unicode_common → process_unicode_common
* Move song arrays into function where they're used, align preprocessor directives
* Swap the order of UC_WIN and UC_BSD
* Update Unicode docs
* Reorder Unicode mode stuff to match the order of input mode constants
* Fix capitalization in doc subtitle
* Readd BSD and OSX_RALT songs
* Reword BSD note in docs
* Readd BSD keycode description
* Reword explanation of input on different platforms
* Steal vomindoraan's input mode documentation
Co-Authored-By: vomindoraan (vomindoraan@gmail.com)
* Willingly give Drashna the rest of my Unicode doc improvements
* Wordsmithing
Co-Authored-By: drashna <drashna@live.com>
* remove merge artifacts
* Unicode common cleanup (#17)
* Standardize the Unicode EEPROM code
* Remove unicode init from process_record_* functions
* Add unicode init to where it belongs: matrix_init_quantum
* Move Unicode proccessing to unicode common
* Add audio feedback to input mode keys to drive konstantin up a wall
* Tap_code cleanup
* Update keycodes
* Update unicode documentation
* Update unicode keycodes for consistency/easier merge
* Add Audio Feedback section
* Remove Functions from feature page
And link to the file instead. Link to specific lines later on.
* Fix white spaces
Co-Authored-By: drashna <drashna@live.com>
* Fix spacing
Co-Authored-By: drashna <drashna@live.com>
* Because I missed it!
Co-Authored-By: drashna <drashna@live.com>
* Fix spacing
Co-Authored-By: drashna <drashna@live.com>
* SPAAAAAAAAAACing
Co-Authored-By: drashna <drashna@live.com>
* white spaces
Co-Authored-By: drashna <drashna@live.com>
* Add BSD for future compatibility
* Thought I fixed that!
Co-Authored-By: drashna <drashna@live.com>
* non-breaking
Co-Authored-By: drashna <drashna@live.com>
* Considered that
Co-Authored-By: drashna <drashna@live.com>
* Yuuup
Co-Authored-By: drashna <drashna@live.com>
* consistency
Co-Authored-By: drashna <drashna@live.com>
* white spaces .... copied from elsewhere
Co-Authored-By: drashna <drashna@live.com>
* white spaces
Co-Authored-By: drashna <drashna@live.com>
* white spaces
Co-Authored-By: drashna <drashna@live.com>
* Update keycode defines
* Fix Linux Song
* Update all of the songs
* Cleanup
* Move and update check to ensure only one unicode method is enabled
* Update quantum/quantum_keycodes.h
* Update documentation
* Wordsmithing and cleanup
* Format unicode_common (#13)
* case alignment
* process_record_unicode_common → process_unicode_common
* Move song arrays into function where they're used, align preprocessor directives
* Swap the order of UC_WIN and UC_BSD
* Update Unicode docs
* Reorder Unicode mode stuff to match the order of input mode constants
* Fix capitalization in doc subtitle
* Readd BSD and OSX_RALT songs
* Reword BSD note in docs
* Readd BSD keycode description
* Reword explanation of input on different platforms
* Steal vomindoraan's input mode documentation
Co-Authored-By: vomindoraan (vomindoraan@gmail.com)
* Willingly give Drashna the rest of my Unicode doc improvements
* Wordsmithing
Co-Authored-By: drashna <drashna@live.com>
* Rearrange process_unicode_common functions
* Make Unicode input mode constants (UC_*) an enum
* Simplify unicode_input_start/finish code
* Make the key used for WinCompose configurable
* Remove UC_OSX_RALT in favor of setting the key with UNICODE_OSX_KEY
* Update Unicode input mode doc
* Add descriptions and rearrange definitions in process_unicode_common.h
* Add registry command to Unicode docs + misc updates
* Reword an explanation in Unicode docs
* Add TODO comment
* Remove trailing whitespace
* Improve Cycling documentation
* Add Unicode Input method Cycling support (#19)
* Standardize the Unicode EEPROM code
* Remove unicode init from process_record_* functions
* Add unicode init to where it belongs: matrix_init_quantum
* Move Unicode proccessing to unicode common
* Add audio feedback to input mode keys to drive konstantin up a wall
* Tap_code cleanup
* Update keycodes
* Update unicode documentation
* Update unicode keycodes for consistency/easier merge
* Add Audio Feedback section
* Remove Functions from feature page
And link to the file instead. Link to specific lines later on.
* Fix white spaces
Co-Authored-By: drashna <drashna@live.com>
* Fix spacing
Co-Authored-By: drashna <drashna@live.com>
* Because I missed it!
Co-Authored-By: drashna <drashna@live.com>
* Fix spacing
Co-Authored-By: drashna <drashna@live.com>
* SPAAAAAAAAAACing
Co-Authored-By: drashna <drashna@live.com>
* white spaces
Co-Authored-By: drashna <drashna@live.com>
* Add BSD for future compatibility
* Thought I fixed that!
Co-Authored-By: drashna <drashna@live.com>
* non-breaking
Co-Authored-By: drashna <drashna@live.com>
* Considered that
Co-Authored-By: drashna <drashna@live.com>
* Yuuup
Co-Authored-By: drashna <drashna@live.com>
* consistency
Co-Authored-By: drashna <drashna@live.com>
* white spaces .... copied from elsewhere
Co-Authored-By: drashna <drashna@live.com>
* white spaces
Co-Authored-By: drashna <drashna@live.com>
* white spaces
Co-Authored-By: drashna <drashna@live.com>
* Update keycode defines
* Fix Linux Song
* Update all of the songs
* Cleanup
* Move and update check to ensure only one unicode method is enabled
* Update quantum/quantum_keycodes.h
* Update documentation
* Wordsmithing and cleanup
* Format unicode_common (#13)
* case alignment
* process_record_unicode_common → process_unicode_common
* Move song arrays into function where they're used, align preprocessor directives
* Swap the order of UC_WIN and UC_BSD
* Update Unicode docs
* Reorder Unicode mode stuff to match the order of input mode constants
* Fix capitalization in doc subtitle
* Readd BSD and OSX_RALT songs
* Reword BSD note in docs
* Readd BSD keycode description
* Reword explanation of input on different platforms
* Steal vomindoraan's input mode documentation
Co-Authored-By: vomindoraan (vomindoraan@gmail.com)
* Willingly give Drashna the rest of my Unicode doc improvements
* Wordsmithing
Co-Authored-By: drashna <drashna@live.com>
* Rearrange process_unicode_common functions
* Make Unicode input mode constants (UC_*) an enum
* Simplify unicode_input_start/finish code
* Make the key used for WinCompose configurable
* Remove UC_OSX_RALT in favor of setting the key with UNICODE_OSX_KEY
* Update Unicode input mode doc
* Add descriptions and rearrange definitions in process_unicode_common.h
* Add registry command to Unicode docs + misc updates
* Reword an explanation in Unicode docs
* Add TODO comment
* Add cycle_unicode_input_mode and UNICODE_SELECTED_MODES macro
* Add an option for making cycle changes persistent
* Add debug prints to functions that change input_mode
* Use cycle_unicode_input_mode in whitefox/konstantin
* Add persist_unicode_input_mode function
* Add offset to cycle to allow stepping in reverse
* Add keycodes: UNICODE_MODE_FORWARD, UNICODE_MODE_REVERSE
Aliases: UC_MOD, UC_RMOD (respectively)
* REVERT ME: Undo changes to whitefox/konstantin to avoid conflicts
* Fix wrong constant name
* Revert "REVERT ME: Undo changes to whitefox/konstantin to avoid conflicts"
This reverts commit 42676bf251fc8e3823f5e614dad6e510ba47a2f3.
* Change dprintf text
* Give selected modes priority over EEPROM when !UNICODE_CYCLE_PERSIST
* Remove trailing whitespace
* Cleanup of RALT code and unicode compilation stuff
* Remove else for unicode handling
* Espectro: layout macro refactor
- updated to #pragma once method
- restructure LAYOUT_all data as block comment
- Configurator was reading the LAYOUT_all macro even though it was commented out.
- updated all keyswitch arguments to use K<ROW><COLUMN> notation
- add LAYOUT_iso macro
- add info.json file for Configurator support
* Espectro: keymap refactor
- deleted unused MODS_CTRL_MASK definitions
- iso keymap refactored to use LAYOUT_iso macro
- default and iso keymaps refactored for readability
* A Planck style keymap with iris flair
- Re-arrange layers to be more planck like.
- move backspace to right thumb
- replace backspace with minus, more useful for coding
- replace center keys with brackets
- MT(MOD_LCTRL and ESCAPE)
- Use QMK-DFU for bootloader
- add a soft reset to keymap
* Feedback from reviewers
- remove redundant define (noroadsleft)
- remove unused layer switch case (drashna)
* Adding ortho60 to handwired
* update to use LAYOUT_ortho_5x12
* Address PR comments about layout macros
* Add default layout to info.json for configurator
* Hack to xyverz layout until RGB branch is merged
* Fix undef RGBDIPIN in xyverz 12x5 layout
* Revert change to xvyerz's layout
* Fix typo
* Fix order
* Revert xyverz rules.mk
* ErgoInu: Configurator update, part 1
Give each key its own line to make the file easier to debug.
* ErgoInu: Configurator update, part 2
- converted all JSON variables to lowercase (this was the bugfix)
- converted Tabs to Spaces
* ErgoInu: Configurator update, part 3
- break key data into chunks
* ErgoInu: Configurator update, part 4
Rebuilt the layout tree into a new file, taking the Y values from the original data. Copied relevant data from original file into the new file, and then overwrote the original file.
* Cospad: Configurator update
- added LAYOUT_gamepad_6x4 data
- renders as 4 rows by 6 columns visually
- fixed LAYOUT_numpad_6x4 data
- JSON objects were in the wrong order
* Cospad: readme update
- markdown formatting fixes
- made Hardware Availability address a hyperlink
- updated Docs links
* converter/ibm_5291: Configurator support
- added layout data to info.json file
- corrected keyboard_folder value
* converter/ibm_5291: readme cleanup
- Fixed "image" url (target of link was a web page; changed markdown formatting to text link)
- Sentence capitalization fixes
- markdown formatting fixes for readability
* Layout macro refactor
- Renamed KC_KEYMAP to LAYOUT_kc
- Renamed KEYMAP to LAYOUT
- moved LAYOUT above LAYOUT_kc (Hoping this encourages users to use LAYOUT.)
- updated layout macro name in info.json
- white space changes for readability
* Keymap refactor: default
Default keymap now uses `#include QMK_KEYBOARD_H` and LAYOUT macro (from KC_KEYMAP/LAYOUT_kc). Keymap was also refactored to use process_record_user function instead of deprecated action_get_macro from TMK.
Also moved LONGPRESS_DELAY and LAYER_TOGGLE_DELAY definitions to config.h.
* Keymap refactor: dcompact
- Changed chimera_ortho.h include for QMK_KEYBOARD_H
- Updated layout name on keymap layers
* Coding conventions fix in default keymap
* Keymap refactor: gordon
- Changed chimera_ortho.h include for QMK_KEYBOARD_H
- Removed redundant includes of action_layer.h and process_tap_dance.h (superseded by QMK_KEYBOARD_H)
- Removed redundant definitions for KC_NO and KC_TRNS
- Updated layout name on keymap layers
* add temporary compile test shell script
* Extended support of SKIP_VERSION to make invariant compile results during testing.
* build_keyboard.mk, tmk_core/rules.mk: add LIB_SRC, QUANTUM_LIB_SRC support
Support compiled object enclosed in library.
e.g.
```
LIB_SRC += xxxx.c
xxxx.c --> xxxx.o ---> xxxx.a
```
* remove 'ifdef/ifndef USE_I2C' from quantum/split_common/{i2c|serial}.c
* add SKIP_DEBUG_INFO into tmk_core/rules.mk
When SKIP_DEBUG_INFO=yes is specified, do not use the -g option at compile time.
* tmk_core/rules.mk: Library object need -fno-lto
* add SKIP_DEBUG_INFO=yes
* remove temporary compile test shell script
* add '#define SOFT_SERIAL_PIN D0' to keyboards/lets_split/rev?/config.h
* quantum/split_common/serial.c: Changed not to use USE_I2C.
* Refactor fourier to use split common code
* Refactor fourier to use split common code - fix handedness when not using EE_HANDS or MASTER_LEFT
* add SOFT_SERIAL_PIN config
* Add delay in Tap Code to avoid issues
I think a few people have reporting issues with it working properly, and it may be a timing issue. The 'register_code' uses this sort of delay in some of the functions, and
this is probably why.
Adding the 100ms delay should hopefully fix any issues with it.
* Make tap_code delay configurable
* Update documentation
* Bring tap_code16 inline with changes
* Fix type for tap_code16
Bad copy-paste job
* Just use the value check for the define
* Clarify timing in docs
Co-Authored-By: drashna <drashna@live.com>
* Wordsmithing
Co-Authored-By: drashna <drashna@live.com>
* handwired/CMD60: refactor
- renamed layout macro KEYMAP to LAYOUT
- removed K2C, K3B and K3C locations (indications are these locations were unused in hardware)
- keymap
- now uses #include QMK_KEYBOARD_H
- converted keycodes to short format
- deleted TMK fn_actions and action_get_macro blocks
- white space changes (readability/alignment)
* handwired/CMD60: Configurator support
* handwired/CMD60: readme update
- updated to conform to current QMK template
- added image and build gallery links
* handwired/cmd60: rename all files and folders to lowercase
* handwired/maartenwut: readme cleanup
- Fixed typo (Maarten's last name was misspelled)
- Updated Docs links
* handwired/maartenwut: Configurator support
* S7 Elephant: Configurator bugfix, part 1
Reformatted the JSON so each key is on its own line:
This makes the keys easier to rearrange.
* S7 Elephant: Configurator bugfix, part 2
Deleted the extra key from LAYOUT_iso_1u:
JSON contents stated this layout used a split Backspace, but the matrix is configured and intended to have a 2u Backspace.
Extended the Backspace to 2u width and deleted the extra key. (This fixes the error that broke LAYOUT_iso_1u's rendering in the Configurator.)
* S7 Elephant: Configurator bugfix, part 3
Fix ISO layouts:
Noticed JSON object for Enter on ISO layouts was immediately after Right Bracket. Inspection of s7_elephant.h revealed the expected and appropriate location to be after ISO Hash.
Moved Enter key to the proper location on all ISO layouts.
* Add standard ALGR defition, remove (re)definitions from language files
* Use ALGR(kc) consistently in ALTGR(kc) aliases
* Non-Nordic keymaps should not use NO_ALGR
* Add standard KC_ALGR definition
* Update docs with ALGR and KC_ALGR
* Update SS_ALGR and ALGR_T aliases
* handwired/numpad20: refactor
- layout macro no longer auto-prepends keycodes with KC_
- keymaps for this keyboard will now compile in QMK Configurator
- keymap now uses #include QMK_KEYBOARD_H
- deleted unused fn_actions code block
* handwired/numpad20: Configurator support
* Preonic: refactor layout macros
Unify layout macro names across AVR and ARM.
- all layouts and matrices have moved/duplicated to their appropriate revisions
- preonic.h now includes the appropriate header file from the selected revision
- revision header files only contain layouts appropriate for that revision
- Previously, all layouts were available in source for all revisions.
- removed KEYMAP layout macro alias (was unused)
- macros LAYOUT_preonic_1x2uC and LAYOUT_preonic_grid for AVR and ARM revisions
- LAYOUT_preonic_grid has alias LAYOUT_ortho_5x12 for all revisions
- deleted LAYOUT_ortho_4x12 alias (not appropriate for this keyboard)
- ARM-based revisions have 1x2uR, 1x2uL and 2x2u matrices
* Preonic: updated revision headers to #pragma once
* Preonic: update Configurator files
Updated the Configurator files to reflect the previous changes in this branch.
- Preonic revs. 1 and 2 will use keyboards/preonic/info.json
- Preonic rev. 3 will use keyboards/preonic/rev3/info.json
- This file will override keyboards/preonic/info.json when preonic/rev3 is selected in the Configurator.
* handwired/practice60: Configurator Support
* handwired/practice60: refactor
- layout macro rows did not have an equal number of arguments in all rows of the matrix
- white space changes for readability/alignment
* handwired/pilcrow: refactor
- layout macro renamed from KEYMAP to LAYOUT
- keymap now uses #include QMK_KEYBOARD_H
- layers reformatted for readability
- removed unused and deprecated fn_actions and action_get_macro blocks
- keymap config.h
- updated to use #pragma once
- removed redundant config.h include
* handwired/pilcrow: Configurator support
* handwired/pilcrow: readme update
Updated readme.md file to use modern template formatting.
On a laptop with god knows what mandatory security software (Cylance?), running up-to-date Windows 10 with msys2 mingw-64, attempting to install the AVR toolkit results in the following error:
```
1 [main] 7z (13316) C:\msys32\usr\lib\p7zip\7z.exe: *** fatal error - cygheap base mismatch detected - 0x612A5410/0x2375410.
This problem is probably due to using incompatible versions of the cygwin DLL.
Search for cygwin1.dll using the Windows Start->Find/Search facility
and delete all but the most recent version. The most recent version *should*
reside in x:\cygwin\bin, where 'x' is the drive on which you have
installed the cygwin distribution. Rebooting is also suggested if you
are unable to find another cygwin DLL.
```
This appears to be related in some way, based on my research, to ASLR functionality in security software. Since I'm unable to override whatever is enforcing ASLR on my system, after trying several other approaches (removing other copies of msys-2.0.dll, which is what this is apparently actually referencing, rebasing that file in Windows to address 0x61000000, a few other things) I simply edited the installation shell script to use `unzip` instead of 7zip; `unzip`'s binary does not provoke a mismatch error and the installation proceeds as it should.
I'm not aware of the reason why some parts of the install script use `unzip` (e.g. `install_arm`) and others use 7zip, but it seems that for broader compatibility and sparing users on locked down machines the 120 minutes or so of futzing this took me to fix, it might be better to just use `unzip` in all cases.
Note: There is another function that uses 7zip, `extract_flip`. The line is `7z -oflip x FlipInstaller.exe`. I'm not sure what this is doing, or whether it's possible to do it with `unzip`, but it produces the same error. I haven't attempted to fix that in this PR, but it might be good to fix it for the same reason.
MCU Pins for debugging, LED, boot tracing, and shift registers are now configurable at keyboard level.
Macros led_* replaced by DBG_LED_*
Macros m15_* replaced by DBG_1_*
Macros m27_* replaced by DBG_2_*
Macros m28_* replaced by DBG_3_*
For CTRL and ALT keyboards, debug boot tracing pin default now set to pad M27 instead of M28 since although M28 is not being used, it is technically a signal for USB port detection.
m15_print(...) renamed to dbg_print(...) to get away from hard coded port names.
dbg_print function now follows similar pattern to debug led output.
* Added RGB toggle and cycle to default mapping. This is present on layouts on 'http://qmkeyboard.cn/' but not here.
* Added addition keycodes for hue/sat/val.
* Add a Docker build script
* Add usage and error messages
* Add -r to reads
Thanks mechmerlin
* Add keyboard:keymap form, improve script
* Add target argument, change usage forms in script
* Add check for more than 3 args in keyboard:keymap:target form
* Change Docker base image to debian, use community repo
This matches what qmk_compiler uses (https://github.com/qmk/qmk_compiler/blob/master/Dockerfile#L1).
I've removed the maintainer as we now have a community build on Docker Hub (https://hub.docker.com/r/qmkfm/qmk_firmware). This Dockerfile will also be maintained by the community.
* Change build command format to keyboard:keymap
* Call make directly in container run command
* Simplify script, remove 3-arg form
* Add COPY to Dockerfile so images are usable in and of themselves
Also change WORKDIR from /qmk to /qmk_firmware
* Add USB pass-through for Linux and docker-machine hosts
* Read directly into variables instead of array
* Alphabetically sort dependencies in Dockerfile
* Set executable bit on util/docker_build.sh
* Update Docker docs
* Add warning about Docker on Windows
* Expand comment in docs
* Check docker-machine exit code instead of string
* Only match --help with whole arguments
* Make script POSIX-compliant
* Convert script indentation to tabs
* handwired/minorca: refactor
- Refactored keymaps to use a layout macro, which was added to minorca.h.
- keymaps now use QMK_KEYBOARD_H include
- removed redundant KC_TRNS and KC_NO definitions
- rgb keymap refactor to use QMK core layer switching and Mod-Tap keycodes
* handwired/minorca: Configurator support
* handwired/minorca: readme cleanup
Restructure readme file to current QMK template.
* Update alps64 aek layout to work
I tried using the layout provided with my alp64 board in AEK
configuration, but keys weren't mapping correctly until I made this fix.
* Update crd's alps64 aek keymp to match other boards
(inspired by mechmerlin)
* Fix minor whitespace issue
* Initial palm_usb support
* removing left over sun .c file
* fixing licenses
* actually adding updated files
* fixing build error
* more include cleanup
* handwired/gamenum: refactor
- layout macro KEYMAP renamed to LAYOUT
- white space changes for alignment
- default keymap
- now uses #include QMK_KEYBOARD_H
- updated layout macro names
- white space changes (for readability)
* handwired/gamenum: Configurator support
* handwired/gamenum: readme cleanup
- renamed file to lowercase
- updated to match current QMK template more closely
- edits to reflect the other changes in this PR
* Add initial support for vertically-oriented animations
* DRY up vertical animation support
* Fix animation code for arm_atsam led_matrix to work in all directions
* Adjust py calculation to base off bottom rather than top
Adds Configurator support for the Sol rev. 1 by RGBKB.
Notes:
The Sol keyboard supports split thumb keys like the Ergodox - any of the 2u thumb keys can be split into two 1u keys. The matrix here is configured for fully 1u keys on the thumbs.
The Sol also supports installing a rotary encoder on each half. The key matrix given includes the encoders' functions, which are shown in the Configurator as two 1u keys side by side below each half's main key block. The left key of the two (for each side) represents that half's rotary encoder's counter-clockwise function, and the right key is that encoder's clockwise function.
* handwired/fivethirteen: refactor
- Layout macro KEYMAP renamed to LAYOUT
- Default keymap
- now uses #include QMK_KEYBOARD_H
- Removed redundant KC_TRNS definition
- Removed deprecated fn_actions and action_get_macro functions.
* handwired/fivethirteen: Configurator support
* handwired/fivethirteen: readme cleanup
Restructured readme file to be closer to current QMK template.
Couldn't find a photo of an assembled fivethirteen, so deleted the
reference to the photograph.
Renamed to readme.md
* handwired/dactyl_manuform/4x5: Configurator support
* handwired/dactyl_manuform/4x6: Configurator support
* handwired/dactyl_manuform/5x6: Configurator support
* handwired/dactyl_manuform/5x7: Configurator support
* handwired/dactyl_manuform/6x6: Configurator support
* Update to work with Planck Rev. 6
Still something that needs to be worked with under keymap.c
Qwerty layer tap-toggle function seems to be a little laggy? Not instantaneous
* Changes
Deleted some unneeded lines
* deleting unneeded lines
* my XD75 builds for idobo and XD75
these are my xd75 layouts for the 2 versions of the board
* clearing of free space
spring cleaning
* additional cleaning
more spring cleaning
* removed lighting commands
don't need lighting on the idobo board so removal of such commands to keep the sizing down
* update for readme.md
* Update config.h
* commiting with keymap erros on idobo for review
* syntax fix for idobo and xd75 revok75, addition of del key switch on fn layer
* config edit to config user and keymap QMK_KEYBOARD_H
* update to vol controls for both idobo and xd75 for revok75 keymap
* filename changes
Specifically, moved the shifted keycodes to the top of the 'Feature' list, so it's more visible. This way, all of the keycodes are at the top of the list, rather than having the shifted keys at the bottom, so they should be easier to find since they're all in one place.
* Refactor lets split to use split common code
* Refactor lets split to use split common code
* Build fixes for OLED_sample keymap
* Build fixes for OLED_sample keymap - attempt to reduce firmware size
* preonic-kuatsure: ctrl / esc in one key + hello ` again
* preonic-kuatsure: remove esc on lower
* preonic-kuatsure: programmy macros
* user-kuatsure: turn off console all the time
* preonic-kuatsure: auto shift, but only for numbers
* preonic-kuatsure: remove programmery macros
* preonic-kuatsure: move braces, parens, etc over to raise
backwards compat
move &*() on lower
* preonic-kuatsure: stop with the full rep of game layer
* Add tsangan bottom row hhkb layout for dz60
* Add crd's tsangan hhkb layout for dz60
* Resort to native key aliases when they exist
* Update crd's dz60 ansi keymap to match updates for hhkb fn layer
* Add tsangan hhkb layout to dz60 info.json for KLE
* Fix JSON nesting in dz60 layouts block
* Minor adjustments to crd layouts to make them more consistent
* Update layout naming to 60_tsangan_hhkb
* Hacker Dvorak
Programmer Dvorak based layout for the Ergodox EZ.
* Address drashna comments.
* Fix RGB and drop OSL for MO.
* Add gulp file to automate development.
* Fix gulpfile.
* Caps, num and scroll lock indicators.
* Fix scroll lock.
* Add final RGBKB Sol firmware
* Apply suggestions from code review
Apply most of the changes noroadsleft has suggested
Co-Authored-By: Legonut <legonut3@gmail.com>
* Cleanup readme
* Cleanup keymaps per @noroadslefts suggestions
* Remove eeproms, use set_single_persistent_default_layer
* Suggestions from @noroadsleft and @drashna
some small cleanup
* Change RGB_SMOD to RGB_RMOD
* fix RGB_SMOD
* Apply suggestions from code review
Remove redundant lines
Co-Authored-By: Legonut <legonut3@gmail.com>
* Break up files to make more readable
* Add comments to ortho 4x12 layout rules.mk
* Small tweaks
* Update GitLab CI scripts
* Make ortho boards smaller
* add initial support for hadron ver3
* add initial support for hadron ver3
* pull qwiic support for micro_led to be modified for use in hadron's 64x24 ssd1306 oled display
* initial work on OLED using qwiic driver
* early work to get 128x32 oled working by redefining qwiic micro oled parameters. Currently working, but would affect qwiic's micro oled functionality
* moved oled defines to config.h and added ifndef to micro_oled driver
* WORKING :D - note, still work in progress to get the start location correct on the 128x32 display.
* added equation to automatically calculate display offset based on screen width
* adding time-out timer to oled display
* changed read lock staus via read_led_state
* lock indications fixes
* Added scroll lock indication to oled
* add support for DRV2605 haptic driver
* Improve readabiity of DRV2605 driver.
-added typedef for waveform library
-added unions for registers
* Update keyboards/hadron/ver2/keymaps/default/config.h
Co-Authored-By: ishtob <ishtob@gmail.com>
* Update keyboards/hadron/ver2/keymaps/default/config.h
Co-Authored-By: ishtob <ishtob@gmail.com>
* Update keyboards/hadron/ver2/keymaps/default/config.h
Co-Authored-By: ishtob <ishtob@gmail.com>
* Update keyboards/hadron/ver2/keymaps/default/config.h
Co-Authored-By: ishtob <ishtob@gmail.com>
* Fixes for PR
* PR fixes
* fix old persistent layer function to use new set_single_persistent_default_layer
* fix issues with changing makefile defines that broken per-key haptic pulse
* Comment fixes
* Add definable parameter and auto-calibration based on motor choice
* keymap + alpha
* some fixes
* keymap + alpha
* some fixes
* drashna changes
* linked main Alpha repo in keyboards/alpha readme
* missed a spot
* there's another function called FUNC lol
* keymap + alpha
* some fixes
* keymap + alpha
* drashna changes
* Fixed include
* Revert "Fixed include"
This reverts commit ea92f261f86d8433eab313cde498adca1682a006.
* messed up my git, fixed include
* add zh-cn readme
* edit readme
* Round 1 of edits
- Mandarin translation of QMK products is off, best to use the English name.
- Fix some terminology and grammar.
* trying re-translating the first paragraph
* add fallback langurages
* Create LANGS.md
* Rename docs/zh-cn/README.md to docs/zh/README.md
* Update LANGS.md
* Update index.html
* Delete README.md
* add sidebar for zh
* add zh-cn readme
* edit readme
* Round 1 of edits
- Mandarin translation of QMK products is off, best to use the English name.
- Fix some terminology and grammar.
* trying re-translating the first paragraph
* add fallback langurages
* Create LANGS.md
* Rename docs/zh-cn/README.md to docs/zh/README.md
* Update LANGS.md
* Update index.html
* handwired/atreus50: refactor
- layout macro renames:
- KEYMAP is now LAYOUT
- COMPACT_KEYMAP is now LAYOUT_kc
- keymap updates:
- both keymaps now use #include QMK_KEYBOARD_H
- removed redundant KC_TRNS and KC_NO definitions
- default keymap now uses LAYOUT macro instead of LAYOUT_kc
* handwired/atreus50: readme cleanup
Reformatted the readme to be more closely aligned to current QMK
template, and fixed some typos/grammar.
* handwired/atreus50: Configurator support
* add 60_hhkb support
* add qmk configurator support for the new 60_hhkb layout
* allow community layout support for the 60_hhkb
* fixup readme to adhere to new QMK standards
* handwired/promethium: refactor
- config.h files
- updated to use #pragma once
- removed redundant config.h includes
- layout macro moved from config.h to promethium.h
- layout macro renamed from KEYMAP_CUSTOM to LAYOUT
* handwired/promethium: Configurator support
* Add support for S7 Elephant
A high-end 70% custom keyboard designed and produced by jacky from Geekhack.
* Polish S7 Elephant code
Implement drashna's suggestions:
- specify bootloader
- remove unnecessary defines
- use led_set_user() for LED logic
* Correct info.json and s7_elephant.h
Correct info.json and s7_elepant.h to follow QMK convention and fix a
missing curly bracket.
* Add a layout to support tsangan bottom row with split bs and rshift
* Move the new layout to defaults
* Rename layout to be more accurately representative
* Rename files to match renamed layout def
* Refactored M6-B to use Zeal60 RGB backlight code
* Fixed M6-B LED co-ordinates
* Minor changes to RGB config for Zeal65
* Added dynamic keymaps to WT80-A, WT60-A, WT-80A, U80-A
* Macro implementation
* Implemented macros, API protocol version 8, RGB backlight fixes
* Improved radial effects for M6-B
* Fixed undefined references when building an RGB keyboard after M6-A
* add zh-cn readme
* edit readme
* Round 1 of edits
- Mandarin translation of QMK products is off, best to use the English name.
- Fix some terminology and grammar.
* trying re-translating the first paragraph
* handwired/arrow_pad: layout macro and keymap refactor
- Layout macros moved from the keymaps to arrow_pad.h.
- LAYOUT_pad21 refactored to only accept keys that are physical present (no KC_NO entries required in keymap)
- Keymaps now use #include QMK_KEYBOARD_H
- Keymaps refactored to use process_record_user function (from action_get_macro)
* handwired/arrow_pad: Readme cleanup
Fixed the make commands and updated the layout macro.
* handwired/arrow_pad: Configurator support
* Fix reversed bool check in layer_state_set
* Add Quefrency 65 for a friend
* Add Ergodox EZ Glow keymap
* Add RGB Matrix Code
* Further changes to rgb matrix ErgoDox EZ
* Update bjohnson keymaps
* Fix CRKBD display
* Overhaul to corne keyboard
* Narrow scope for keylogger
* Minor layout tweaks to Corne Keyboard
* additional CRKBD tweaks
* Minor tweaks to CRKBD
* Add all characters for keylogger
* Ergodox EZ Glow overhaul
* Fix Ergodox EZ Glow layer colors
* Increase Tapping Term for Corne Keyboard
* Fix unicode-ish
* Revert some changes
* Add layer specific lighting effects
* Some minor tweaks to ergodox glow config
* revert changes to ergodox files
* Update Glow readme
* Add more tapping term defines
* Fix changes
* Fix ergodox keymap
* Hopefully fix sleeping
* Disable layer indications if rgb matrix is disabled
* Add support for sleeping and rgb layer change toggle to ergodox ez glow
* Make RGB Layer Indication Great Again
* Make Unicode Great Again
* Remove placeholder define
Co-Authored-By: drashna <drashna@live.com>
* Remove placeholder define
Co-Authored-By: drashna <drashna@live.com>
* Remove old EEPROM Reset keycode
* Enable ortho_4x12 community layouts for lets_split_eh
* Keymap build fixes now that ortho_4x12 is enabled
* Keymap build fixes now that ortho_4x12 is enabled
* compiles but is not working
* still testing 5291
* compiles but is not working
* still testing 5291
* fixed a but in the layout (reversed key order in row)
* compiles but is not working
* still testing 5291
* fixed a but in the layout (reversed key order in row)
* fixed some issues
* doumentation needed
* doumentation needed
* documentation needed
* documentation needed
* Update readme.md
documentation
* Update readme.md
i dislike markdown <_>
* merge preperation
* Enable 4x4 and 5x5 community keymap support
* Pull 4x4 community keymap fixes from @noroadsleft
* Build fixes for guidoism keymap - move keymap to layouts/community/planck_mit as it uses the LAYOUT_planck_mit macro
* remove clmk and dvrk and backlight; switch esc and enter to be modtap; add meh key
* change songs
* space cadet; move enter; move '"; move pgup pgdn
* remove extra songs
* update from noahfredrick keymap
* make it easier to type ../../thing/*/*
* move pipe
* requested changes
* add interrobang support
* add shift-insert to raise-v and lower-v, move pipe to raise-/lower-n
* Adding my new keymap, based of xd75, with leds enabled via the rules.mk file
* cleaned up the rules file
* Per Change Requests: removed deprecated functions along with updated the map to use the layout macro instead of raw matrix
This is the final version of my layout.
Overall changes
===============
* Updated to work with QMK master.
Miscellaneous
=============
* The `😂` symbol can be entered with UCIS.
* `LEAD r` now inputs `Right Alt`.
Signed-off-by: Gergely Nagy <me@gergo.csillger.hu>
* Fix firmware to work with latest Wilba changes (i.e. dynamic keymap) and M60a.
* Get back RGB Backlight codes.
* More tweaks.
* Update users/talljoe/rules.mk
Co-Authored-By: Talljoe <jwasson+github@gmail.com>
* Include both base keyboards
* Merge the keymap
* Merge the configs
* Add wiring diagram for clarity of documentation
* Merge rules
* Merge keyboard sources
* Change names to compile
* Update documentation to suit
* Add qwerty layout to 108keyTrackpoint
* Separate the dvorak standard layout from a media focused one
* Update documentation to reflect new keymaps
* [style] Add empty lines at ends of files
* [style] Meet current QMK style guide
* Bring READEME closer to the QMK template
* [style] Change all "108keyTrackpoint" to "108key_trackpoint"
* [style] Use "LAYOUT" instead of "KEYMAP"
QMK terminology has changed
Co-Authored-By: mkem114 <20897849+mkem114@users.noreply.github.com>
* Add two spaces after maintainer in README
This is required to render properly
Co-Authored-By: mkem114 <20897849+mkem114@users.noreply.github.com>
* Remove redundant line
"PREVENT_STUCK_MODIFIERS" is default on for QMK
Co-Authored-By: mkem114 <20897849+mkem114@users.noreply.github.com>
* Change include of keymaps to use QMK_KEYBOARD_H
This includes automatically
* Update make rules to match template
* Change from KC_MENU to KC_APP
The button functionality actually wanted is the context menu key
* [style] Change "dvorakMedia" to "dvorak_media"
* Update README to reflect minor changes
The debounce filtering reports a key/switch change directly, without any extra delay. After that the debounce logic will filter all further changes, until the key/switch reports the same state for the given count of scans.
So a perfect switch will get a short debounce period and a bad key will get a much longer debounce period. The result is an adaptive debouncing period for each switch.
This value defines how often the same key/switch state has to be detected in successive reads until the next key state can be reported.
In other words this value defines the minimum debouncing period for a switch.
* fix formatting of keymap
* update readme with boards I currently own
* made the wrong assumption that every board would use the same space for backspace
* update readme with boards I currently own
* Allows disabling animations in user space
* Describe disabling effects in the docs
* Allows disabling individual reactive modes
* Adds the list ode defines
* Add TKL JIS layout for Pegasus Hoof
Tested with a JIS Majestouch 2 TKL
* Add default_jis keymap for Pegasus Hoof
* Remove unnecessary keycode definition
* Remove legacy fn_actions in favor of MO(1)
* Remove unnecessary build directive
* fix to prime o keymap
* changed ortho keymaps
* added some symbols to lower layer
* set lower to be a higher layer than raise
* added split layout option with center numpad to prime_o keymap
* added some gaming functionality
* added alt f4 ortho keymaps and userspace
* fixed small error
* fixed arrow keys and left control
* added right shift
* latest version
* reverted arrow keys
* edited readme
* added osu layer
* updated osu layout
* updated osu layout
* added full arrow keys to osu layout
* in case i mess up creating macros
* added the best meme key in the world
* added plover steno layer
* updated boy314 layout
* removed unused layers
* added boy314 xd75 layout, inspired by preonic layout
* added boy314 xd75 layout, inspired by preonic layout
* version 2 of boy314's xd75 layout
* added readme notes
* updated readme for boy314 xd75 layout
* qwerty support, brackets on bottom row, caps lock underglow
* fixed readme/
* small changes to allow merging
* minor changes to format
* fixed up default readme
* added numpad and tweaked bottom row
* Move 68keys keymap to mf68 folder
* Remove 68keys keyboard now its been migrated to mf68 keymap
* Migrate 68keys build config to mf68 keymap overrides
* Unify multiple HID interfaces into one
This reduces the number of USB endpoints required, which frees them up
for other things.
NKRO and EXTRAKEY always use the shared endpoint.
By default, MOUSEKEY also uses it. This means it won't work as a Boot
Procotol mouse in some BIOSes, etc. If you really think your
keyboard needs to work as a mouse in your BIOS, set
MOUSE_SHARED_EP = no in your rules.mk.
By default, the core keyboard does not use the shared endpoint, as not
all BIOSes are standards compliant and that's one place you don't want
to find out your keyboard doesn't work.. If you are really confident,
you can set KEYBOARD_SHARED_EP = yes to use the shared endpoint here
too.
* unify endpoints: ChibiOS protocol implementation
* fixup: missing #ifdef EXTRAKEY_ENABLEs
broke build on AVR with EXTRAKEY disabled
* endpoints: restore error when too many endpoints required
* lufa: wait up to 10ms to send keyboard input
This avoids packets being dropped when two reports are sent in quick
succession (eg. releasing a dual role key).
* endpoints: fix compile on ARM_ATSAM
* endpoint: ARM_ATSAM fixes
No longer use wrong or unexpected endpoint IDs
* endpoints: accommodate VUSB protocol
V-USB has its own, understandably simple ideas about the report formats.
It already blasts the mouse and extrakeys through one endpoint with
report IDs. We just stay out of its way.
* endpoints: document new endpoint configuration options
* endpoints: respect keyboard_report->mods in NKRO
The caller(s) of host_keyboard_send expect to be able to just drop
modifiers in the mods field and not worry about whether NKRO is in use.
This is a good thing. So we just shift it over if needs be.
* endpoints: report.c: update for new keyboard_report format
* Docs: Configurator Support
* Minor updates
* Updated keyboard.h example to use #pragma once
per @drashna
https://github.com/qmk/qmk_firmware/pull/4396#discussion_r232140934
* Add link to doc under Reference section
Added to _sidebar.md and _summary.md
* Changed doc title; minor tweaks
Re-titled the doc as "Supporting Your Keyboard in QMK Configurator".
Made some minor changes to the keyboard.h examples.
* Added tags object to JSON example
* add functions to set specific backlight state
* add function to query backlight state
* update documentation with new backlight functions
* Update tmk_core/common/backlight.c
Co-Authored-By: codyd51 <phillip.ennen@gmail.com>
* Update tmk_core/common/backlight.h
Co-Authored-By: codyd51 <phillip.ennen@gmail.com>
* update docs for is_backlight_enabled() name change
* Add 412-64 keyboard firmware
It's pretty barebones for now, but the Model 00 is also a pretty barebones machine. Model 01 won't be better, but plenty of pins exist for things like LEDs on Model 02.
* MANU/PROD ID changes.
Changed around the MANUFACTURER and PRODUCT IDs to be more polite when viewed in qmk toolbox.
* Fixing PROD again.
For the love of all that is good and holy, that was ugly. This new one looks better. This stuff matters to me for some reason.
* Yep, updating MANU again.
There we go. That's better - From my name to my "design firm".
* Update keyboards/412_64/keymaps/default/keymap.c
Co-Authored-By: FateEverywhere <41215461+FateEverywhere@users.noreply.github.com>
* Update keyboards/412_64/rules.mk
Co-Authored-By: FateEverywhere <41215461+FateEverywhere@users.noreply.github.com>
* Update keyboards/412_64/rules.mk
Co-Authored-By: FateEverywhere <41215461+FateEverywhere@users.noreply.github.com>
* Update keyboards/412_64/rules.mk
Co-Authored-By: FateEverywhere <41215461+FateEverywhere@users.noreply.github.com>
* Update keyboards/412_64/rules.mk
Co-Authored-By: FateEverywhere <41215461+FateEverywhere@users.noreply.github.com>
* Refactored M6-B to use Zeal60 RGB backlight code
* Fixed M6-B LED co-ordinates
* Minor changes to RGB config for Zeal65
* Added dynamic keymaps to WT80-A, WT60-A, WT-80A, U80-A
* initial commit for kbd67 keyboard
* add in a standard matrix
* get the correct matrix for layout_all
* add a layout_65_ansi LAYOUT macro
* get a default keymap in
* add caps lock led support
* fix formatting of my name in the comments
* add QMK Configurator support
* turn on bootmagic
* Starting point for blue pill based practice60
* Changes
* add
* try raw bin no botloader
* swap back to bootloader version
* edit
* Remove debug LED flash
* Disable JTAG to open up B3 and B4
* Add led backlight support (no breathing yet)
* Update matrix for correctness
* RGB Underglow working in a very simple state
* not as bright
* Move to handwired
* revert ChibiOS_Test changes
* Changes based on PR comments
* Address PR comments v2
* Move files
* Fix up screen off timer of helix
* Fix Up ScreenOffInterval exceeded uint16_t
* Fix Up never waking up once screen off if in case of matrix are not dirty
* Changing referenIng incorrect constant name
* OLED_ENABLED => SSD1306OLED
* Improve internal processing of process_record_kb()
* Use the return value of process_record_gfx()
* Move a include statement into #ifdef block
Move #include "ssd1306.h` statement into #ifdef block
* Move process_record_kbI()
Move process_record_kb() from helix.c to rev1.c/rev2.c/pico.c
* Move process_record_kb()
* fix about screen off timer
* Fix Up ScreenOffInterval exceeded uint16_t
* Fix Up never waking up once screen off if in case of matrix are not dirty.
* Revert "fix about screen off timer"
This reverts commit 3d175f2340c14250a71af78afec5a1e890d9f4e7.
* Fix up screen off timer of crkbd
* Fix Up ScreenOffInterval exceeded uint16_t
* Fix Up never waking up once screen off if in case of matrix are not dirty.
* Fix up screen off timer of helix
* Fix Up ScreenOffInterval exceeded uint16_t
* Fix Up never waking up once screen off if in case of matrix are not dirty
* Revert "Fix up screen off timer of helix"
This reverts commit f0efb82443a7dc34b75579359b0514e8bfa51100.
* Improve internal processing of process_record_kb()
* Use the return value of process_record_gfx()
* Fix a indent
Fix a indent
* Remove unnecessary re-definitions for XXXXXXX and _______
* Update 6lit to use KC_NO in layout macros
* Update rules.mk to follow current template
* Remove use of deprecated function action_get_macro - unused and contents were from old template
* Remove use of deprecated function action_get_macro - all code was commented out
* Remove use of deprecated function action_get_macro - convert macro to use process_record_user
* Convert keymap to consistent use of _______
* fix use of old style header guards
* Swap KC_NO for XXXXXXX macro since the swap to the macro for KC_TRANS
* Resolve use of ?= in rules.mk files
* Remove duplication of rules.mk and config.h in gherkin mjt keymap
* Remove unnecessary #includes
* Align layout macros so foobar can use gherkin keymaps
* Align 6lit layout macros with foobar
* Remove ifndef QUANTUM_DIR from keymaps
* Initial 25 port
* Initial 25 port - fix info.json and hand_swap_config
* Review comments - fix layout macros, copyright comments, and duplicated use of layering macros
* Add support for slackware distribution (linux_install.sh)
The required packages are not provided by the official repository. The packages
need to be installed from slackbuilds.org either manually or with the help of
third party tools like sbotools.
* Modify linux_install.sh according to code review
Modifies the Slackware section of the linux_install.sh script based on the
suggestions from the code review.
* Modify utils/linux_install.sh according to suggestions
* Improve new_project script
- use git user.name if available to replace the boilerplate name in
files we generate
- fix shellshock warnings
* Test for git repo
Suggestion by @skullydazed
* Fix shellshock warning
* Incorporate feedback from reviewers
- thanks @vomindoraan
- use a heredoc instead of echo for console
- factor out common paths
* I2C driver docs
- Added I2C driver docs.
- Changed arm master i2c driver to have a weak i2c_init as it is impossible to account for all possible port configuration in the STM32 world.
* Update docs/i2c_driver.md
Co-Authored-By: yiancar <yiangosyiangou@cytanet.com.cy>
* Update docs/i2c_driver.md
Co-Authored-By: yiancar <yiangosyiangou@cytanet.com.cy>
* Update docs/i2c_driver.md
Co-Authored-By: yiancar <yiangosyiangou@cytanet.com.cy>
* Update docs/i2c_driver.md
Co-Authored-By: yiancar <yiangosyiangou@cytanet.com.cy>
* GPIO release fix
* initial commit
* put my name everywhere
* get the switch matrix correct
* add a basic keymap
* use a better LAYOUT macro
* update readme
* Add QMK Configurator support
* Added support for backlight , and a UK iso layout
Added support for backlight , and a UK iso layout. Now uses the SPLIT_KEYBOARD #define rather than relying on lets split
* Update keyboards/diverge3/keymaps/isoUK/keymap.c
Co-Authored-By: mcmadhatter <mcmadhatter@hotmail.com>
* Update keyboards/diverge3/keymaps/isoUK/keymap.c
Co-Authored-By: mcmadhatter <mcmadhatter@hotmail.com>
* Simplified the lower layer
Simplified the lower layer
* dir rename to snake case
dir rename to snake case
* changed dir case
changed dir case
* Update keyboards/diverge3/rules.mk
Co-Authored-By: mcmadhatter <mcmadhatter@hotmail.com>
* Update keyboards/diverge3/keymaps/iso_uk/config.h
Co-Authored-By: mcmadhatter <mcmadhatter@hotmail.com>
* Update keyboards/diverge3/config.h
Co-Authored-By: mcmadhatter <mcmadhatter@hotmail.com>
* Update keyboards/diverge3/keymaps/iso_uk/keymap.c
Co-Authored-By: mcmadhatter <mcmadhatter@hotmail.com>
* Update keyboards/diverge3/keymaps/iso_uk/keymap.c
Co-Authored-By: mcmadhatter <mcmadhatter@hotmail.com>
* Update keyboards/diverge3/keymaps/iso_uk/keymap.c
Co-Authored-By: mcmadhatter <mcmadhatter@hotmail.com>
* Update keyboards/diverge3/config.h
Co-Authored-By: mcmadhatter <mcmadhatter@hotmail.com>
* Update keyboards/diverge3/keymaps/iso_uk/config.h
Co-Authored-By: mcmadhatter <mcmadhatter@hotmail.com>
* Update keyboards/diverge3/keymaps/iso_uk/config.h
Co-Authored-By: mcmadhatter <mcmadhatter@hotmail.com>
* Update keyboards/diverge3/keymaps/iso_uk/config.h
Co-Authored-By: mcmadhatter <mcmadhatter@hotmail.com>
* aligned and tidyied up
aligned and tidyied up
* dlg's keymap
* fix list order
* remove cruft
* pragma
Co-Authored-By: dlgoodr <dlg@dsrw.org>
* turn on bootmagic, enable swapping ` and Esc while I figure out which compromise is least bad
* Initial move of 40percent.club boards to common parent folder.
* Refactor readme files to be consistent
* Refactor readme files to be consistent - fix make command examples.
* Refactor readme files to be consistent - align readme filenames.
* Refactor readme files to be consistent - fix repo url.
* Disable Community keymap builds as they are currently failing due to missing functionality
* Move more of 40percent.club boards to common parent folder.
* Refactor readme files to be consistent - align readme filenames.
* Refactor readme files to be consistent - fix make command examples.
* Preliminary 30wer firmware. Not tested on real board yet.
* Added a layer to default 30wer keymap.
* Wrote readme for 30wer.
* Added 30wer info.json.
* Configurable Rainbow Swirl range
This allows tweaking of the rainbow effect to
get different effects on keyboards with varied
LED layouts. We found the value 1950 works on
the RGBKB.net Sol to get a cool striped effect
across the keyboard.
* Document RGBLIGHT_RAINBOW_SWIRL_RANGE
* Better wording for the documentation
The new simple API can be selected.
Previous version, can select two way.
* use old API (compatible with let's split serial.c)
* use new API (multi-type transaction)
This version, can select three way.
* use old API (compatible with let's split serial.c)
* use new API (single-type transaction)
* use new API (multi-type transaction)
There is no change in the code generated by this change.
* Consistency fixes and more eeprom defaults
* Handle setting Unicode mode on eeprom reset better
* Unicode EEPROM hack
* Re-enable permissive hold and ignore mod tap
* Set unicode input mode
* More unicode stuff
* more haaaaaacks
* Attempted RGB Cleanup
* Fix compiler issue
* Add GitLab CI config for personal compiling
* Add avr gcc version to GitLab CI script
* Add rgblight init to matrix init
* Use Magic+Esc for entering bootloader mode
* Expand rules.mk
* Improve FN_RCTL tap dance
* Avoid one-line if statements
* Add PROGMEM to keymaps definition
* td_fn_rctl_* → td_fn_rctrl_*
* Fix FN_RCTL tap dance bug when count is 4, 8, 12 etc.
* Add ACTION_TAP_DANCE_DOUBLE_MODS
* Rearrange/rename keycode defines
* Use RAL_RGU and RCT_RSF in keymaps
* Replace keymap ASCII art with box drawing characters
* Add FN_FNLK and use it
* Set Unicode input mode in eeconfig_init_user instead of matrix_init_user
* Update userspace with common config.h
* Add my dz60, satan and xd75 keyboard keymaps
* Fixing executable bits changed during last upstream merge
* Cleanup unnecessary files and defines
* Remove unnecessary defines from userspace config
* Add underglow controls to dz60 function layer
* Fixing merge conflicts
* Fixing exectable bits changed during merge
After further testing and feedback from others, the bottom row matrix was incorrect. Also RGB number was incorrect (I was tired when building this, really shouldn't do that).
* converter/adb_usb: Configurator support
Note: LAYOUT_ext_ansi has a blank space between the Spacebar and the
Right Alt/Option key when loaded in the Configurator. This is
deliberate.
Stock Apple Extended Keyboards and AEK IIs send the scan code for Left
Command when either Command key is used. (This is noted already in the
readme.) That being the case, the Command keys cannot be assigned to
different functions. Whichever keycode is placed on Left Command will be
used for both Command keys.
* converter/adb_usb: adb_usb.h cleanup
- replaced KEYMAP_COMMON_H with ADB_USB_H
- white space changes for visual alignment in LAYOUT_ext_ansi macro
* port over Rozakiin https://github.com/Rozakiin/Noxary_Firmware/tree/master/noxary_x268
* rename LAYOUT to LAYOUT_65_ansi default layout
* add configurator support
* add community layout support
* put Rozakiin's name everywhere
* update readme
* problems with the 65_ansi keymap to be diagnosed later
* Add distro support for sabayon
Sabayon is a gentoo based distro with a different package manager. Does
not need any use flags or masking for the required packages.
* Add missing backslash
* Put echo string in quotes, remove extra newline
* Order gentoo/sabayon packages alphabetically.
Rewrote USB state tracking for implementation of suspend state.
Updated suspend.c in entirety.
Main subtasks (generally hardware related) are now run prior to keyboard task.
* add computed pins from mcu type
* update for atmega32a
* doc typo
* add atmega16 chips, link to references
* remove avr include from config
* exclude assembler in config.h includes
* consolodate options, add 646
* fix typo in pindef
* Keymap: add jyh levinson keymaps
remove tap dance number keys due to sluggish responses
simplify I2C configuration
reverse hyper and meh positions
reduce tapping term to allow fast typing with mod tap space keys
remove Alt hold on right space key. too many false touches.
add vim-style arrows (hjkl) on asdf; semicolon/quote on raise
correct documentation string for jyh levinson layout
add alternative levinson layout for jyh
more inspiration from atreus keyboard. keeps shift in the expected
places. reduces number of layers. puts numpad layout easily
accessible. places important keys on palms and meta keys on top
corners for xmonad.
correct layer switching in jyh2 levinson layout
I was getting stuck on the numpad layer because the numpad hold key
was remapped once the layer was activated. Bad idea. Minor other
refinements.
use curly bracket { instead of brace [ on raise layer
add RGB keys on adjust layer
bootmagic key is confusing. turn it off.
try out permissive hold setting to make mod-tap better
remove hold for right control on quote key. too many mistakes
turn off permissive hold. it was causing unexpected behavior
enable rgb underglow animations
add make it pink/blue key to levinson layout
prevent stuck modifiers in jyh2 levinson keymap
* fix up deprecated code after code review
* remove PREVENT_STUCK_MODIFIERS because it is default
Co-Authored-By: yamad <jyamada1@gmail.com>
Added JTAG disable code to the split_common slave code since the slave never calls keyboard_init(). In the future the slave should likely be modified to call keyboard_init() in some way, but without calling any of the unnecessary USB initialization code.
* added initial config files for vinta
* added readme
* changed product id and device ver
* fixed keymap illustration
* updated rules.mk to enable more commands
* removed a bunch of pre-code text; changed some grammar woopsies
* removed bootmagic lite
* updated developer's note
* updated readme.md
* Initial commit of guidoism
* created movement layer
* movement layer works!
* removed unnecessary layers
* moved enter key up and recreated caps lock
* cleaned up
* num pad
* checkpoint
* checkpoint
* checkpoint
* Added num pad
* changed max power draw so i can use this on ipad
* move around quotes
* added tri layer for a homed numpad
* moved layout to new style
* Update readme.md
* Update readme.md
* Update readme.md
* Update readme.md
* added keys to unicode conversion
* removed adjust layer since its not used anymore
* moved esc to seperate key
* tweaked python
* checkpoint
* new code put into function
* new code put into function
* cleanup
* cleanup
* new code works perfect
* removed old code
* removed old code
* generate_c.py now replaces code within keymap.c
* added function layer
* updated readme
* updated readme
* updated readme
* updates readme
* updates readme
* updates readme
* Tweaks based on CR
* Remove old guidoism
* Use MO(_FUNCTION) directly
* Preliminary additon of bootmagic lite functionality
* Cleanup code
* Clean up bootmagic code
* Add documentation and clean up code
* Make 'lite' an option for BOOTMAGIC_ENABLE
* Update Templates with note about Bootmagic Lite option
* Detect Debounce variable
* Make sure debounce is a non-zero number
* Capitalize Bootmagic
* Capitalize bootmagic
* Update wording
* Re-add EEPROM reset, by popular demand
And add eeprom-less version to drashna userspace for his sanity
* Fix spacing
* Set BOOTMAGIC_ENABLE to use full/lite/off
And default yes to "full" for compatibility
* Add Bootmagic lite info to templates
* Remove text from makefiles
* Cleanup of makefile
* mention yes in bootmagic docs
* Wordsmitthing the docs
* Fix white spaces
* Readd default bootmagic setting, because it's necessary
* layer locked breathing, layer changed brighter leds
* move config for tapping term into config.h
* Respect LED off even with layer indicators, add readme and update config
to new standard
* update Readme with note about both sides of board being required to flash
* use ctl_t
* spruce up readme and add a changelog
* add comment about using CTL_T
* add more description
* use RSFT_T so I can still have a right shift key even on the _AL layer
* add config.h for rgblight_sleep
* update readme to talk about rgblight_sleep
* update changelog with new changes
When comparing the pins in this file to the Ergodox Infinity schematic, it seems that the first section is describing the rows and the second section is describing the columns.
- config.h deleted (file was redundant)
- layout macro LAYOUT_JD45 removed (identical to new macro LAYOUT)
- ../../config.h include line redundant due to past changes to build script
- keymap.c
- updated to use macro LAYOUT
- redundant KC_TRNS and KC_NO definitions removed
- config.h
- updated to more-preferred format
- layout macro LAYOUT_JD45 removed (identical to new macro LAYOUT)
- keymap.c
- updated to use macro LAYOUT
- redundant KC_TRNS and KC_NO definitions removed
The macro that was LAYOUT prepended KC_ to all the keycode arguments, preventing the Configurator from working with the JD45. This macro is now LAYOUT_kc.
The macro LAYOUT is a more-standard macro.
Switch identifiers have changed throughout. Format is k<row><column>.
* Added my Mechmini2 layout to qmk.
* Added more info to the readme.
* Made changes.
* Update keyboards/mechmini/v2/keymaps/lbibass_625_space/keymap.c
Co-Authored-By: lbibass <ewdries02@gmail.com>
* Update keyboards/mechmini/v2/keymaps/lbibass_split_space/keymap.c
Co-Authored-By: lbibass <ewdries02@gmail.com>
* added userspace readme
* small fix to userspace readme
* another fix to userspace readme
* changed and improved userspace readme
* Update readme.md
* Update readme.md
* changes to readme again
* readme again
* Added my(194h) atreus62 keymap
* Fixed what noroadsleft remarked in my pull request, hopefully got it all.
* Followed drashna's suggestion.
* Removed unused functionality from my keymap, added tap dance æøå and changed Layer 1 and Layer 2
* Removed unused functionality from my keymap, added tap dance æøå and changed Layer 1 and Layer 2
* change window focus shortcuts
* hangul
* macos goodness
* re-arrange tab keys
* remove tab switching keys
* left hand func
* glorious macro pad
* workspace rotation keys
* tabbing hotkeys
* left hand tab change keys
* SEND_STRING("!") on KC_EXLM
* use SEND_STRING for all shifted symbols
* SEND_STRING even for non shifted symbols so they play nicely with the shifted ones
* Made DZ60 layout with calculator
* Cleaned up and commented, preparing to fix bug with negative in front of open parenthesis as first character
* Fixed bug where negative sign infront of parenthesis as first character was parsed incorrectly
* Made a better solution for the bug from the previous commit
* Modularized and added a userfile so that this code can be used on various keyboards, found in doogle999
* Removed commented code from keymap
* Made the layer that is used for calculations a define so that it can be changed per keyboard
* Made the readme
* Made the readme in the correct place
* Revert "Made the readme in the correct place"
This reverts commit 7f8b59ed9e59c77401a48be3a7ac1e8fd8e84e32.
* Manually synced with qmk upstream
* Stopped repeat, made keys print character that they are defined as rather than what the keyboard wants them to do
* Added support for numpad, might make all keycodes custom so that there is no need to change doogle999.c if you want to change the keycode that is associated with a function, also made numpad automatically activating an option
* Fixed some bugs with backspacing, updated the readme
* Fixed some bugs with numlock turning on at the wrong times when a shift key was down
* Made the return to layer work automatically instead of just forcing it to layer 0
* fixes and style changes, 20% decreased binary size
* Fixed some bugs with double printing and compilation errors on my side
* Fixed bug with exceeding the buffer size
* Removed changes that added const-ness
* Made changes so that backspace does not repeat to remove backspace bugs, still some bugs with recalculating without having typed anything
* Fixed obo error with calc main loop
* Made includes more accurate in keymap for dz60
* Moved flags to user makefile
* keymap for 1upkeyboards/sweet16 multilayers rgb lighting and tapdance
* Update config.h
typo
* cleanup
Co-Authored-By: ridingintraffic <michael.j.fettis@gmail.com>
* layers are using layout macro
replaced the include guard (the ifndef, define, and endif at the end) with just #pragma once
changed undergrow to use layer-change-code
emoji macros are using send_hex_code_string
cleaned up the includes
* tap() removed
maxtrix_scan_user updated
conf.h cleanup
* Matrix/keymap refactor
- Deleted `KC_KEYMAP` macro
- Renamed `KEYMAP` macro to `LAYOUT_ortho_4x12`
- Default keymap updated to current QMK standards
- #include QMK_KEYBOARD_H
- Refactored from `KC_KEYMAP` to `LAYOUT_ortho_4x12` macro
- `action_get_macro()` deprecated in favor of `process_record_user()`
`rules.mk` *not* updated to include `LAYOUTS = ortho_4x12` because I have no idea if and how that works on a split and/or wireless keyboard.
* readme cleanup: markdown formatting
* Add Configurator support
* added support for ortho_4x12 layout
* Macro and readme updates
Macros updated to use `KC_NO` directly.
Readme updates and cleanup.
* Keyboard: initial support for XD87
* Add row/col pin configuration for XD87 PCB
* Add default ISO layout
* Fix incorrect KC in default_tkl_iso
The KC_NUBS is duplicated in the TKL ISO layout.
Compare with the fullsize ISO which has a KC_NUHS
in the corresponding place.
* Add support for community layouts
* Add TKL ANSI layout
* Enable TKL ISO/ANSI community layout
* Fix LAYOUT_all
* Configure backlighting for XD87
* Various documentation changes
* Converter: add XT USB converter from TMK
* Converter: port TMK code for USB converter to QMK
* Apply requested changes after code review by @drashna
- use "pragma once" instead of include guards
- use LAYOUT instead of KEYMAP
- allow customisation with matrix_init_user() and matrix_scan_user()
- set BOOTLOADER instead of BOOTLOADER_SIZE
- Add XT_ENABLE to OPT_DEFS
* Remove unnecessary lines
* Matrix/keymap refactor
White space and readability updates
* Configurator support
Added info.json file.
* Readme update
Markdown formatting
* Add support for ortho_4x12 keymaps
* Added planck_mit layout support
* Disable SWAP_HANDS_ENABLE for zlant:wanleg keymap
* Disable BACKLIGHT_ENABLE for zlant:bakingpy keymap
* Add caveats for shifted characters
And some formatting and grammar corrections.
Closes#1037
* Fix spelling of remote
* Fix spelling error
* Remote not Remove
* Remote not Remove
* an attempt at own layout
* typematrixed dvorak
* columns shifted
columns shifted out, second pinky column moved to the inside.
* Update users/romus/romus.h
* code cleanup
Changes requested by Drashna + Tap Dance enabled
* Fixed EOF
Fixed the no newline at the end of file alert.
* rgblight fight eeprom writes
* rgb code simplification
* Update users/romus/README.md
* Update quantum/keymap_extras/keymap_slovenian.h
* Main folder
Main folder with some changes like the base layout and matrix for uploading in a future to the qmk repositorie
* First Commit
Firsts non previously commited changes:
-Changed to keyboards/handwired
-Basic credit to Xydane
-70% Layout
* Modified file structure for several keyboards
As I don't want to create several folders and overcrowd the main folders I made a few modifications to being able of configure several keyboards as revisions of the main keyboard.
Added a second variant.
Compiling tests went right but I haven't tried it on the controller.
* Starting leds
* Started dual color leds PWM functions and configs
I started to create the PWM functions and configs based on internet examples, it doesn't compile yet
* Backtraced a bit to establish and try debug before continuing the pwm
Just this, algo some doc as a new pinout image, space cadet modification to try if it works and little more
* Deleted unuseful stuff
After trying the reestructure to being compatible with several keyboards and that it worked I deleted the other keyboard.
Added space cadet shift to ISO.
Finally I couldn't debug everything and I'm getting quite frustrated to continue much more than just adding pwm leds
* Changed again Iso fix for Space Cadet
* Renamed keyboard, future pull
I just renamed the keyboard and made some simplifying changes in order to make a pull request sometime soon.
I'm too frustrated, tired and knowledge limited to achive using the PWM for leds, I didn't even get to use the debug mode...
I intend to end basic led color change using layers (if I can), document everything properly and make a pull request so other users can continue/use this project.
* Writed Readme.md file
I also corrected a previous compilation problem and ordered a bit the keymaps
* Corrected readme
* Try to add layer activated light
* Revert "Try to add layer activated light"
This reverts commit 205af820d845dab08988f329b9f062f558060220.
* Progress to fork
Coming back to work, upcoming pull
* Linked image
Corrected readme
* Some cleanning
Added images to readme, som cleaning, burning after commit.
* Almost finished (working)
Finally
* Finished bluepill firmware
Just finished and tried layer dependant led colors. Going for merge
* Deleted innecesary stuff and trailing spaces
Just as commit title said.
* Coding conventions
Just modified some files to respect coding conventions
* Deleted XXXXXX define
Checking some other PR seen this improvement
* Changes suggested on PR
Firs doing the easy changes
* More changes for the PR
-I also deleted one unused function for led toggling on matrix.c (Now it uses layer dependent baklight, algo on of on start)
-Deleted commented function on keymaps.
Right now only needs testing and all pragma replaces.
* Almost every pragma change on PR
That's almost finished, only waiting for reply due to compiling errors
* Revert "Almost every pragma change on PR"
This reverts commit 07f23aa862b370cdf0ae37d6f2130c9e9856f491.
* Revert last commit
I moddified by mistake a file from another keyboard
* Solved last pragma
Compiles fine.
Now I only need to test it, I say you if it works to include it in the main repository.
* helix/serial.c add support PD1,PD3,PE6 and configuration simplify
* Add comment about ATmega32U4 I2C
* Add compile time check for ATmega32U4 I2C
* change TAB code to 8 SPACE code
* Helix serial.c PORTD,PD0 test. OK
OK PD0
- PD1
OK PD2
- PD3
- PE6
* Helix serial.c PORTD,PD1 test. OK
OK PD0
OK PD1
OK PD2
- PD3
- PE6
* Helix serial.c PORTD,PD3 test. OK
OK PD0
OK PD1
OK PD2
OK PD3
- PE6
* Helix serial.c PORTE,PD6 test. OK
OK PD0
OK PD1
OK PD2
OK PD3
OK PE6
* Helix serial.c: PD0,PD1,PD3,PE6 all test end
* Helix serial.c: rename SOFT_SERIAL_PORT to SOFT_SERIAL_PIN
* Helix serial.c add debug code
* Helix serial.c: add transaction ID range check
* Helix serial.c debug code update
* Helix serial.c debug code update
* Helix serial.c: Strict checking of the value of tid.
* adjust the delay of serial.c
* Helix serial.c: remove debug code
* remove EXTRAFLAGS += -DCONSOLE_ENABLE from five_rows/rules.mk
tmk_core/common.mk has
>ifeq ($(strip $(CONSOLE_ENABLE)), yes)
> TMK_COMMON_DEFS += -DCONSOLE_ENABLE
* Fix error handling in split_scomm.c
* add some comment to serial.c
* add some comment about SELECT_SOFT_SERIAL_SPEED
* adding my keymap
* updated pull request comments from dashna, including redundancies and DVORAK entirely
* changed over visual representation to use 'LAYOUT_preonic_grid()'
* added a ReadMe and commented out AUDIO_ENABLED related stuff in keymap.c until I can align with current QMK standards
* Update readme.md
* readme corrections and adjustments
* Docs: newbs_learn_more_resources.md: formatting
* Added QMK Git Conventions doc, initial version
* Renamed contributing_qmk.md to newbs_best_practices.md
* Updated per review by @drashna
* Added navigation links
* Updated to Best Practices doc
* Minor updates to Learn More Resources doc
Markdown formatting consistency because I'm particular about it.
* Added Merge Conflict section to Best Practices doc
rgblight_effect_alternating (void) calls rgblight_sethsv_at () RGBLED_NUM times. As a result, rgblight_set () is called RGBLED_NUM + 1 times. This is wasteful processing.
* remove clmk and dvrk and backlight; switch esc and enter to be modtap; add meh key
* change songs
* space cadet; move enter; move '"; move pgup pgdn
* remove extra songs
* update from noahfredrick keymap
* make it easier to type ../../thing/*/*
* move pipe
* requested changes
* Added base keymap
* Added initial layers and mirrored most of Pok3r behavior.
* Some stuff for Space Captain
* Added new Marianas keymap for DZ60
* Included suggestions to remove unnecessary line regarding MODS_CTRL_MASK, and added names for layers.
Added enum to define names for layers, and removed unused #DEFINE
* Added DVORAK and COLEMAK
* Caps + enter + space for flashing mode.
* Added RGB status
* added flash script
* Changed lighting modes to make layers more apparent
* fixed issue with not being able to exit gaming mode.
* Added abbreviation constructor
* Changed lighting modes to make layers more apparent
* fixed issue with not being able to exit gaming mode.
* Added abbreviation constructor
* Fixed bug with SQL Table Macro generator.
* restructured file. No Logical changes.
* literals only for smart macros
* removed extraneous pointer declaration.
* Smart Macros
* Added Makefile and header file
* extended smart macros to be able to cover the whole alphas.
* removed non-relavent keymaps.
* didn't mean to include this guy.
* added my keymap
* Adde more changes
* Moved to pevecyan folder
* Added slovenian mapping
* Slovenian keymap completed
* Suggestions updates
* Fixes on slovenian keymap
Made some typos in previous iteration
* Fix LAYOUT define generation
Prior to this, only the full keyboard path was defined. Eg `KEYBOARD_planck_rev6`.
But the docs mention `KEYBOAD_planck`, which never actually gets defined.
This addresses this, and creates a define for each level of the keyboard folder, so that stuff like `KEYBOARD_planck` actually exists.
* Clean up changes to make it more readable
* Make some keys more accessible, prevent mistypings
* Add "Gaming" layer which maps L-Ctrl to space (left-handed jumping compatibility-mode for all games)
* Fix up userspace after feature merges
* Add new macros for keyboard layouts
* Keep new layouts in keymap for easy reference
* Cleanup layouts
* Fix CRKBD wrappers
* Fix up comments
* Fix spacing in orthodox base layer
* ergodox related cleanup
* Make KC_MAKE only flash when holding shift
* Add option to fast compile boards
* Clean up rgb modes to save space
* Re-enable Swap Hands on my Iris
* Add files via upload
* Delete config.h
* Delete keymap.c
* Delete rules.mk
* Keymap w/mirror mode and steno support.
Keymap w/mirror mode and steno support. Can be used entirely one handed.
* Fixed some niggling issues.
It was not properly including the "config_common" files, and was causing it to break on the configurator.
Additionally, updated this to use the split common code.
* RGB toggle button
* Remove custom lighting effects
* Fix small bug in Symbols layer
* Ignore mod tap interrupt in XD75 for skewwhiffy, and split layers into two for more flexibility and fix persistent layer issue
* Replace shift in nav layer with IntelliJ omnibox shortcut to avoid a sticky shift
* Remove custom setting in config, because it were annoying, it were.
* Move navigation buttons in one key
* Some review markups
* Use enums for layers
* Use LAYOUT_ortho_5x15
* Revert some capitalization changes made by accident
* DZ60 layout based on stephengrier's with customisations.
* CapsLock is used as Fn key.
* Del is available as Fn+Backspace & Shift+Backspace (using a macro)
* PgUp / PgDn / Home / End = Fn+Arrows (as on macOS, Microsoft Surface)
* Tilde = Shift+Esc
* Backtick = Fn+Esc
* Underglow toggle and mode selection are available as Fn+Q and Fn+W
* Reset (bootloader mode) = Fn+B
* Standardised layout formatting and Ctrl+Del & Shift+Del support.
Using 7 underscores for KC_TRNS in layouts and aligning the keycodes
according to LAYOUT_directional.
Del is now only Fn+Del, Ctrl+Backspace translates to Ctrl+Del,
Shift+Backspace translates to Shift+Del.
* Documented new Backspace/Del related macros.
Del is now just Fn+Backspace, pressing Ctrl+Backspace sends Ctrl+Del,
pressing Shift+Backspace sends Shift+Del
* Orange75: cleanup and Configurator support update
`orange75.h`:
Moved `K014` to the second (number row) as the left half of a split Backspace (guessing at its true location; will need to be checked/tested after merge).
`info.json`:
Updated to match new `LAYOUT` macro.
`keymaps/default/keymap.c`:
- Updated to match new `LAYOUT` macro.
- Added layer mock-ups as block comments.
- Formatted to be a bit more readable.
* Orange75: deleted an extra comma from keymap.c
* Helix each keymap's using rgblight mode symbol instead magic number
No change in build result.
* Helix pico keymaps: make rgblight modes selectable.
No change in build result.
* Helix rev2 keymaps: make rgblight modes selectable.
No change in build result.
* fixed Helix froggy/keymap.c: invalid rgblight mode value 0 to 1 (=RGBLIGHT_MODE_STATIC_LIGHT)
* Deselect RGB_TEST and ALTERNATING in Helix rev2,pico keymaps config.h.
Added hid_listen USB device for arm_atsam USB protocol.
Debug printing is now done through the console device (CONSOLE_ENABLE = yes) rather than the virtser device, for viewing in hid_listen.
Function dpf(...) renamed to CDC_printf(...) and should now be called directly if intending to print to the virtual serial device.
* IRIS Keyboard Keymap
I wanted a keymap that really changed things up. I also found that as a programmer I need as many symbols as I can get.
* Make cmd-option-escape work on a mac
* Add more prettyfication.
* Add other types of hold
* More work on the layer keys
* tweaks
* More tweaks.
* more tweaks
* Remove OSL/OSM they didnt seem to work very well
* DC01 updates and I2C avr speed overwrite
- General updating of DC01
- Made F_SCL define in AVR I2C driver overwritable from config.h
* Update drivers/avr/i2c_master.c
* syncing upstream
* Bluetooth Doc update
More Description in bluetooth section, Addition to Config options rules.mk section.
* merge upstream
chibios
* lib/chibios checkout
* Additional EZ key Section
added back EZ-Key diy link, Cleaned up some errors
* Personal Nyquist keymap added.
* Responded to comments for PR.
Removed unnecessary imports.
Updated way of macros.
Removed tick from unicode inputs.
* formatting in keymap
* Update and clarify Unicode documentation
* Fixed UCIS info based on feedback from algernon
* Further clarifications and cleanup
* Formatting
* Add an example for unicode map
* fix AutoHotKey title
* Implement macro recording
* Remove off-by-one from the macro recorder
* Holding both modifiers enables the third layer
* Exit the 3rd layer into one of the secondary ones
* Regular Enter and Escape on the secondary layers
Useful for the macro recording because the "tap" modifiers always act as
modifiers there.
* Remove the buffer overflow from the macro recorder
When the limit is reached, the backlight blinks with each keypress.
* More robust macro recording implementation
* Macro record refactoring and improvement
- support for a second macro (saved using the end of the macro buffer)
- improved reliability
* Add comments to my macros
* Macro recording: remove a redundant code
* Separate the raise+lower layer from the special layer
* Add back/forward keys
* Bind mouse movement
* More readable KC_TRNS
* Improve the mouse bindings
* Use a convenience macro instead of the low-level ACTION macro
* Add mouse to the Dual layer; make most of the layer transparent
* New "mouse" layer; clean up the "special" layer
* CapsLock, NumLock and ScrollLock on the Special layer
* Enable my fix for the stuck modifiers and adjust the dual layer to it
* Fix the macro recording after enabling the stuck mods fix
* Click with Lower/Raise+Space
* Reduce the memory used by the macro recording
Previously the auxiliary layers were numbered 30 and 31 which resulted
in all 32 array elements being allocated regardless of the actually
used layers in the user code.
* Optimize source_layers_cache for the cache memory
Swapping the array indices should increase the locality of the memory access.
* Remove the mouse layer
* Use update_tri_layer to simplify the code
* Add some custom per-keymap build options
* Add ShiftLock
* Secure the reset button
* Add numeric layer
* Remove explicit layer keys on LW and RS layers
* Replace Alt+left/right with Back/Forward keys
* Sleep/delay key (for macro recording)
* App/menu key
* Fix stuff after merging to master
* Local per-keymap config.h; minor cleanup
* Remove the old macro_record.h
Replaced with dynamic_macro.h
* Adjust my keymap to the current API
* Pure Pro Gaming layer
Accessible by double tapping the Pure Pro layer. It features switched
Lower and Raise layers, for one-handed access to numbers.
* Pure Pro Gaming layer: no Mod4, persistent number layer under RShift
* Pure Pro Gaming layer activated with long press, not double press
* Reduce the size of the vifon keymap
See: issue #930
* Increase the dynamic macro buffer
The default was actually decreased. The actual used value didn't change.
* Add the context menu key
* No more strange ideas in the gaming layer
* Reduce the firmware size by disabling API_SYSEX_ENABLE
* Make slash available on the PP layer (replaces the RESET key)
* Add a generic "hold this key" macro
* Add a missing undef
* Turn LGUI in the gaming layer into LW instead of disabling it
It's not as disruptive as LGUI and it makes the LW/RS order kind of
more consistent (LW on the left, RS on the right).
* Refactor the Pure Pro Gaming layer
* Try out the 1st party qmk KC_LOCK (vs my own KM_HOLD)
* Alternative way to switch keyboard layouts with the left hand
* Add dot & slash to the Pure Pro layer (but not to the Gaming layer)
* Now that there is a second KM_LW, we can simplify the layout a bit
It was confusing to have the modifiers completely swapped. Just
moving them is much more natural.
* Disable the console now that qmk got bigger
* Update the keymap for the modern qmk standards
Adds maximized DZ60 Plate B layout macros in ANSI and ISO, featuring 2.25u Left Shift (1.25u/1u split for ISO) and 1.75u Right Shift with Inverted-T arrow keys. Also supports Split Spacebar and Split Backspace.
This allows user code to continue to use the matrix for indication, even
when the RGB toggle is off, using rgb_matrix_set_color().
Without this change, it's impossible for user code to use the matrix
when the toggle is off, as any changes get overwritten with black on the
next task cycle, and the indicator code is not called at all.
There is `qk_ucis_symbol_fallback` for the case where symbol lookup
fails, but there wasn't one for the success case. This adds
`qk_ucis_success`, called after successfully finishing the UCIS symbol
input.
Thanks to @drashna for the idea!
Signed-off-by: Csilla Nagyné Martinák <csilla@csillger.hu>
* Added pteron files made via from kbfirmware.com.
* Added readme.
* Made some progress on Pteron keymap.
* More keymap.
* Updated bootloader, added some keymap illustrations.
* Moved default keymap to FSund, made default keymap from default preonic keymap.
* Fixed typo in default pteron keymap.
* Made changes recommended by drashna.
* handwired/ibm122m: refactor
Refactored layout macro and keymaps to more closely resemble the keyboard's physical layout.
* handwired/ibm122m: add Configurator support
Enable support for ubuntu-derived linux-es in installer
Checks /etc/os-release for mention of ubuntu and debian.
Linux Mint uses ID_LIKE=ubuntu, not ID_LIKE=debian (as seen in
Ubuntu 16.04, unsure about others)
* Update userspace with common config.h
* Add my dz60, satan and xd75 keyboard keymaps
* Fixing executable bits changed during last upstream merge
* Cleanup unnecessary files and defines
* Remove unnecessary defines from userspace config
* Generate a new project for the KBD4x
* Specify the possible layouts for the KBD4x - MIT and grid
* Fill out the readme for the KBD4x
* Configure the default keymap and wiring configuration as specified on http://qmkeyboard.cn/
* Add info.json for QMK Configurator
* Enable backlight support for the KBD4x
* Standardise on LAYOUT_planck_mit/LAYOUT_ortho_4x12 layout names
* Add whitespace so the Readme will render correctly
* Disable mouse keys support for the KBD4x to make the firmware small enough
* DZ60: Deleted K214 from LAYOUT_all
* DZ60: Delete matrix LAYOUT_2_shifts; replace with LAYOUT_all
After the deletion of K214 from LAYOUT_all, LAYOUT_all and LAYOUT_2_shifts are identical.
Deprecated LAYOUT_2_shifts in favor of LAYOUT_all.
* DZ60: refactor 256k_HHKB and itsaferbie keymaps to use LAYOUT_60_hhkb macro
Both keymaps previously used the LAYOUT_hhkb macro. After comparing the macros, the only difference between them was that LAYOUT_hhkb included the place of the ISO Backslash key. Neither keymap used this key, so both were refactored to use LAYOUT_60_hhkb instead.
LAYOUT_hhkb is now essentially unused by any keymaps in the repo. (More on that in a moment.)
* DZ60: bugfix for dbroqua keymap
This keymap had two layers that used the LAYOUT_true_hhkb macro and a third that used LAYOUT_hhkb. These macros have the same number of keys, but represent different physical layouts. As the "main" layers used LAYOUT_true_hhkb, switched the third layer to LAYOUT_true_hhkb as well.
The LAYOUT_hhkb macro is now unused by any DZ60 keymaps in the repo, and can be safely deleted.
* DZ60: bugfix for 60_ansi_arrow_fkeys, 60_plus_arrows, and stephengrier keymaps
All three keymaps had one layer in LAYOUT_all and one in LAYOUT_directional. Only difference between these macros is LAYOUT_all excludes the ISO Backslash position. As none of the keymaps used this position, all layers were switched to use LAYOUT_directional.
* DZ60: added layout mock-ups to dz60.h
Documenting the physical layouts that go with each matrix.
* DZ60: replace TMK SHIFT_ESC with QMK Grave Escape
Replaced all instances of keycodes that called TMK's ACTION_FUNCTION(SHIFT_ESC) with QMK's KC_GESC, and added config.h files so KC_GESC behaves as the deprecated TMK function did, except for the default keymap, which I thought should have the QMK standard behavior.
* DZ60: delete SHIFT_ESC code blocks
Deleted ACTION_FUNCTION(SHIFT_ESC) code blocks from keymaps that didn't use the functionality it provided.
* DZ60: deleted unused MODS_CTRL_MASk definitions
Was used in the now-deleted SHIFT_ESC code blocks. Interestingly named MODS_CTRL_MASK when it was actually checking the Shift keys. *shrug*
* DZ60: refactor jkbone keymap to use process_record_user
Replaced TMK action_function keycodes with QMK process_record_user equivalents.
* DZ60: delete unused layout macros
The macros LAYOUT_hhkb, LAYOUT_directional_625_space, and LAYOUT_60_ansi_split_bs_rshift_5x1u were unused by any keymaps in the repo, and have thus been deleted.
* DZ60: refactor iso_6u_space and iso_7u_space keymaps
Both keymaps refactored to use the LAYOUT_60_iso macro.
* DZ60: refactor dz60.h
Updated the notation of the switch arguments. Format is now:
`k<row><column>`
where `<row>` is `[0-4]` and `<column>` is `[0-9a-e]`.
* DZ60: refactor LAYOUT_60_iso_5x1u matrix
Updated matrix so `KC_ENT` belongs on the home row, which is consistent with LAYOUT_60_iso for the DZ60 as well as the ISO community layouts.
* DZ60: fix white space in dz60.h
I hate when indentation is inconsistent within a file.
* Enabled unicode support and send_unicode function
* Unicode cleanup
* More unicode tweaking
* Update EEPROM stuff
* Account for keyboard macros
* Switch Equal to Plus on Ergodox
* more tweaks
* Minor Unicode tweaks
* Correct matrix printing for keylogger
* Fix unicode functions
* Fix unicode mode set since it actually uses EEPROM
* Re-add DISABLE_LEADER
* Ergodox is easier to hit the tapping term, fix that
* Fix stupid type on unicode mode check
* Preliminary CRKBD/HeliDox support
* Fixes to Helidox
* Cleanup userspace from old merge stuff
* Remove CCCV sounds
* Make Mode NOEEPROM Again
* Add send_string_unicode function
Co-authored-by: kdb424 <kdb424@gmail.com>
Co-authored-by: Konstantin <vomindoraan@gmail.com>
* Clean up code based on feedback
* Fix includes
* Add Function level EEPROM configuration
Add kb and user functions for EEPROM, and example of how to use it.
* Bug fixes and demo
* Additional cleanup
* Add EEPROM reset macro to example
* Forgot init function in list
* Move eeconfig_init_quantum function to quantum.c and actually set default layer
* See if removing weak quantum function fixes issue
* Fix travis compile error
* Remove ifdef blocks from EECONFIG so settings are always set
* Fix for ARM EEPROM updates
* Fix merge issues
* Fix potential STM32 EEPROM issues
* Use proper function levels
* Add matrix init functions
* Convert KEYMAP to LAYOUT
Or @mechmerlin is going to hunt me down and harm me... probably :)
* Fix conflict issues
* Add personal KC60 keymap
* Update personal KC60 keymap
* Keymap update 2018-05-30 01:53 UTC-7
* Added macro: T_PEEKR
* Added macro for MacOS Select All; modified MacOS function layer
* Added git branch-name macro
* Added GitHub signature macro
* Added readme files
* Added Quake 2 and System layers
* Refactored keymap readme
* Refactored to add userspace files; added Colemak layer
* Minor code cleanup; updated readme files
* Reverted use of userspace
Decided not to make use of the Userspace feature at this time. Reverted its addition, and updated the readme files where needed (they were linking to userspace files).
* Updated per review comments by @drashna
* Refactor buggy macros
I'm still not sure these work properly
* Fix Windows shortcuts
* Fix Mac shortcuts, possibly
Untested; still may be broken.
* Remove PREVENT_STUCK_MODIFIERS from config.h
Deprecated by #3107
* Custom keymap for the ErgoDone
The keymap supports QWERTY and COLEMAK MOD-DH with LED indication.
* Enable Space Cadet Shift
* Fix after-boot layer indicator LED
* Implement keyboard suspend, move layer LED handling to function, unify
identation
* Add readme.md with layout
* Optimize LED handling, add include guard
Read the default layer via the proper EEPROM function, so the calling of
bootmagic() is no longer necessary.
Fix bug when the CapsLock LED wasn't working anymore after a layer
switch.
* deleting arkag branch, forcibly moving changes over to master
* fade_color function added, not tested
* added half functions some stuff
* surround_type function implemented and working.
* added flashing function and removed fading, flashing supports infinite flashing along with controlled number flashes
* added a fade state machine and functionality
* build optimizations, changed fade to bounce between bounds rather than roll over, added a HALMAK layout
* changes to sleep breath function, changed how I will switch to HALMAK
* support for halmak added
* support for activity detection added, condensed fading and flashing state machines, removed support for HALMAK and COLEMAK because arkag is stupid
* changed sleep and inactive behaviors, now the color shifting reverses on state change, yay! save_color and reset_color are made to enable layer color changing to look cooler.
* reformatted some if statements in state detection
* changes to force fade to pause on boot, or plug in.
* Attempting to move over to userspace, pushing to repository for help
* userspace stuff....
* userspace stuff....
* layout changes, working userspace,
Removed left side shift and replaced it with a MT() for LSFT and SPC. Userspace seems to be working properly now! HURRAY
* Layout change
Removed space/shift and reset modifiers to what they were originally. Added homerow modifiers.
* Removed excessive tabs in files
* Moved mods on homerow around...
* changes recommended by @drashna
* removed homerow mods, more flashy lighting!
* changed delays for lighting.
* velocikey code retro fit into userspace to match typing speed
currently "working" but isn't as reactive as I want.
* Readme and other documentation hidden throughout code
* Added a pretty picture
* pretty picture actually added
* More readme updates
* Velocikey now working inside my userspace!
* Changed repo macro and fixed readme
* Removed media layer, moved media control to LAZY layer
* fixed more merge issues when I had to merge...
* implemented some leader key stuff
* removed merge garbage...
* changes requested by @drashna, leader key switch from macros
* Add basic support for the YD68 / YD68v2.
Keymap and WS2812 underlighting work. Capslock LED should work, though I don't have one populated to test. Backlight LEDs are not set up, as they're not on a hardware PWM pin, could be set up as software.
* Fix Imgur link
* Fix default keymap to match the stock firmware
* Fix the Hardware Supported line and add a short description
Messed up in my previous PR (#4017) by providing the wrong matrix name.
Fixing by changing the matrix name instead, because there's only one at this point. Thought it made more sense this way.
* Helix: make rgblight modes selectable.
No change in build result.
* edit the comment of helix/rev2/keymaps/default/keymap.c
* Helix led_test keymap: reduced the size.
* Disable Leader to reduce firmware size for Travis
* Additionaly fixes to USB_USB\BLE Keyboard converter
* Disable One Shots to get USB to USB BLE converter to fit
* Update for SEND_STRING usage
Update for SEND_STRING usage.
Sending keyboard reports (kbd, nkro) now obey the minimum polling time.
While attempting to send a keyboard report and waiting for a USB poll, other functions of the keyboard, including LED effects and power management, will continue to operate at their intended intervals.
* Updates for send string, syscalls, stdio, debug prints, auto shift
Now properly waiting for previous keys sent over USB to complete before sending new.
Added heap to linker and now compiling with syscalls support.
Removed custom string functions and now using stdio.
dprintf now works as intended through virtser device.
* CTRL and ALT keymap updates
CTRL mac keymap updated
ALT default and mac keymap updated
ALT rules.mk added Auto Shift with default no
* Code cleanup as per discussion with vomindoraan
Code cleanup as per discussion with vomindoraan
Specifically, an "L" got appended to the controller names for te "valid types",
but did not get appended to the blocks that include the specific drives.
So, this breaks anything that isn't "Yes".
* Update quantum matrix to support both AVR and Chibios ARM
- Addition of STM32 pin definitions
- Created abstruction layer defines to control GPIO (This is a bit pointless for Chibios as we are creating a PAL ontop of a PAL but it is necessary for uniformity with AVR)
- Modified matrix.c to use the above functions
* minor ifdef fix
* Rename of functions and docs
- Added documentation.
- Renamed functions according to Jack's spec.
* Massdrop fix
* Update matrix.c
* Update quantum.h
* Update quantum.h
* Update quantum.h
* Update internals_gpio_control.md
* Add pragma once info to contributing guidelines
* Fix links in readme template to match doc site
* Revert changes to contributing doc as somebody already changed it
* model01: implement RGB matrix feature
LEDs can still be individually controlled if this is switched off.
* model01: use fast banked LED setting commands
* model01: update default keymap to use RGB matrix
* model01: update RGB matrix support to match common_features.mk
* rgb_matrix: include <string.h>
This was missing after commit 4d5705ea6ceeb11cd2adc018644ec87c51af4e86
which introduces a use of memset().
* model01: make g_rgb_leds weak
This allows users to override which LEDs are configured as
modifiers, or tweak the x/y coordinates, should they so choose.
* add 'mavrdude' target into tmk_core/avr.mk
I made it a little convenient when writing the same binary to multiple Pro Micro.
* rename target name 'mavrdude' to 'avrdude-loop'
* modify docs/flashing.md about avrdude-loop
* mdify docs/flashing.md again
* modifi docs/flashing.md 3rd
Rather than a define, but read from the define. This way, a smart coder could externally configure the randomness, changing it on the fly
This is also a precursor step to adding full on support for configurable randomness.
* Initial commit of RAMA U80-A
* Initial commit of RAMA U80-A
* Moved IS31FL3736 driver, minor cleanups
* Superficial stuff
* Review changes
* Refactored to use common code.
* rgb_matrix: use a driver ops struct
This is intended to avoid #ifdef proliferation on adding more drivers,
eg. model01, which use different architectures.
* rgb_matrix: document driver struct members
* rgb_matrix: remove unused LED testing code
* rgb_matrix: don't build into IS31x drivers unless being used
* rgb_matrix: refactor make config options
This ensures that the necessary files are included for any custom
RGB_MATRIX_ENABLE value, without having to add entries here for specific
boards. This particularly affects model01 because its controller is
integrated and won't be used anywhere else, so it's preferable not to
put it in common_features.mk.
This now validates the value of RGB_MATRIX_ENABLE.
It was necessary to fix an error in ergodox_ez rules.mk using the wrong
comment separator, yielding an invalid value.
* IS31x drivers: don't write the control registers all the time
This is only needed when they are changed. This is done in init() and
board- or keymap-specific code is free to make further changes.
* rgb_matrix: move structs from chip drivers to rgb_matrix_drivers.c
This approach is specific to the rgb_matrix functionality, so keep it
neatly separated from the raw chip drivers.
* holefully correct error in mtdjr userspace for layer_state_set_user
* return state and wrap rgb actions in their own conditional
* mtdjr nyquist and userspace updates
* mtdjr updates as requested
* pull out toad keyboard and get it compiling
* refactor xmmx
* use the correct LAYOUT macros
* move LED code out to toad.c file
* move LED code out to xmmx.c file
* adjust for correct number of columns and pins used
* remove led set user
* Rename constexpr keymap folder to konstantin
* Replace numpad comma with Unicode comma
* Rename tap dance constants
* Move record->event.pressed check into switch
* Use RShift as a dedicated Fn key
* initial commit
* Update readme.md
* Update keymap.c
added comment for description of function to control LED as layer indicator
* corrected formatting as requested.
* format for configurator
* corrected info.json to propertly reflect layout in Configurator
* updated layouts to reflect physical keyboard
* comment out BACKLIGHT BREATHING in config.h
* deleting arkag branch, forcibly moving changes over to master
* fade_color function added, not tested
* added half functions some stuff
* surround_type function implemented and working.
* added flashing function and removed fading, flashing supports infinite flashing along with controlled number flashes
* added a fade state machine and functionality
* build optimizations, changed fade to bounce between bounds rather than roll over, added a HALMAK layout
* changes to sleep breath function, changed how I will switch to HALMAK
* support for halmak added
* support for activity detection added, condensed fading and flashing state machines, removed support for HALMAK and COLEMAK because arkag is stupid
* changed sleep and inactive behaviors, now the color shifting reverses on state change, yay! save_color and reset_color are made to enable layer color changing to look cooler.
* reformatted some if statements in state detection
* changes to force fade to pause on boot, or plug in.
* Attempting to move over to userspace, pushing to repository for help
* userspace stuff....
* userspace stuff....
* layout changes, working userspace,
Removed left side shift and replaced it with a MT() for LSFT and SPC. Userspace seems to be working properly now! HURRAY
* Layout change
Removed space/shift and reset modifiers to what they were originally. Added homerow modifiers.
* Removed excessive tabs in files
* Moved mods on homerow around...
* changes recommended by @drashna
* removed homerow mods, more flashy lighting!
* changed delays for lighting.
* velocikey code retro fit into userspace to match typing speed
currently "working" but isn't as reactive as I want.
* Readme and other documentation hidden throughout code
* Added a pretty picture
* pretty picture actually added
* More readme updates
* Velocikey now working inside my userspace!
* Changed repo macro and fixed readme
* Removed media layer, moved media control to LAZY layer
* fixed more merge issues when I had to merge...
* create: biacco jis keymap for windows for Ergo42
* fix: biacco-winjp: change #ifndef to #pragma once.
* fix: following: 3935#pullrequestreview-157941685
* Pin avr-gcc in shell.nix pending release of 8.3.0
There's apparently a critical bug in 8.2.0, which is now the nixpkgs default. This change overrides that default in favor of the known good version. Once 8.3.0 is the default, the override can be dropped.
* Arch/Manjaro fix
* First version of FollowingGhosts' custom layout
* Added copyright etc.
* Fixed readme and added space cadet shift
* Moved from RGB to HSV, updated readme and added media keys
* Updated pragma
* Added play/pause and updated config
* Added pragma back
* added my planck keymap
based on a blend of my minivan keymap and the planck default keymap.
* moved pipe to better match minivan keymap
* updated as per @drashna
also moved my keymap a bit after adding the quad encoder and underglow
(which doesn't even work on arm right now lol)
* a few smaller tweaks
* Crkbd: move I2C and Serial defines to keyboard's config.h
per @drashna on Discord
* Crkbd: remove misleading comment re: I2C and Serial
USE_I2C and USE_SERIAL are usually a "one or the other"-type deal, but this keyboard uses both.
* funged git history, restarting
* tested and working (message typed on this)
* updated documentation to include wiring directions
* formatting
* updated matrix and default layout a bit
* getting ready for merge into main repo
* getting ready for merge into main repo v2
* cleaning
* cleaning repo of extranious files
* updated documentation
Added a sample circuitry for handling the connection of a PS/2 Mouse.
Even if it's written that a circuitry is needed, there're a lot of other
things and the information gets lost really fast. A really simple sample
helps to remember who wants to implement the functionality about the
circuitry.
* initial check in
* figure out the column pins
* temporary keymap
* guess the row pins
* fix matrix.c compilation errors
* use the LAYOUT_60_hhkb macro and tweak the keymap a little bit
* update readme
* Put my name everywhere
* Add QMK Configurator support
* figured out the row pins
* update readme to have reset info
* Fill in some blanks that are documentation related
* Update matrix.c
* add kb functions
* forego kbfirmware labeling
* add arrows and caps lock to function layer.
* add a LAYOUT_60 and LAYOUT_all macro
* missed a comma
* add configurator support for the two new LAYOUT macros
* Jack helped me with a new custom matrix
* add 60_ansi into rules.mk
* deleting arkag branch, forcibly moving changes over to master
* fade_color function added, not tested
* added half functions some stuff
* surround_type function implemented and working.
* added flashing function and removed fading, flashing supports infinite flashing along with controlled number flashes
* added a fade state machine and functionality
* build optimizations, changed fade to bounce between bounds rather than roll over, added a HALMAK layout
* changes to sleep breath function, changed how I will switch to HALMAK
* support for halmak added
* support for activity detection added, condensed fading and flashing state machines, removed support for HALMAK and COLEMAK because arkag is stupid
* changed sleep and inactive behaviors, now the color shifting reverses on state change, yay! save_color and reset_color are made to enable layer color changing to look cooler.
* reformatted some if statements in state detection
* changes to force fade to pause on boot, or plug in.
* Attempting to move over to userspace, pushing to repository for help
* userspace stuff....
* userspace stuff....
* layout changes, working userspace,
Removed left side shift and replaced it with a MT() for LSFT and SPC. Userspace seems to be working properly now! HURRAY
* Layout change
Removed space/shift and reset modifiers to what they were originally. Added homerow modifiers.
* Removed excessive tabs in files
* Moved mods on homerow around...
* changes recommended by @drashna
* Added template copies for prime_l
Added first set of files for prime_m and prime_o
Temporarily storing kbfirmware dumps in tmp
* Completed base for prime_m, prime_o and prime_l
Moved prime_r into primekb folder
* Added in QMK Configurator layout files for new PrimeKB keyboards
Slight modification to layout header files
Added my name to licensing
* Updated primekb readmes
* Removed temporary working files
* Updated default keymap for Prime_O
* Added link to Newbs Guide in prime_r readme
* make bpiphany directory with simple readme file
* move unloved_bastard to bpiphany directory
* move frosty_flake to bpiphany directory
* move pegasushoof to bpiphany directory
* move tiger_lily to bpiphany directory
* add a little more info to readme
* move kitten_paw to bpiphany directory
* update make instructions
* update intro text
* add missing routines to matrix.c of unloved_bastard
* add missing routines
* initial commit
* Update readme.md
* Update keymap.c
added comment for description of function to control LED as layer indicator
* corrected formatting as requested.
* format for configurator
* corrected info.json to propertly reflect layout in Configurator
* updated layouts to reflect physical keyboard
* Create layout for JD45
* Tweak layout to better support JD45 and add more tap dancing.
* Add Maltron and tweak layout for 40% enter compatibility.
* Switch back to `BL_TOGGLE` for backlight.
* More tweaks
* Rename talljoe_gherkin to talljoe-gherkin
* Make NAV layer tab C_S_T also.
* Add missing RESET key.
* Add Talljoe layout for minivan.
* MTI is not for me
* Tweak keymap.
* Add talljoe keymap to Atreus.
* Minor tweaks.
* Fix talljoe keymaps to work with new Zeal60 commit.
* Added QMK support for GSKT-00, PaladinSplit, PaladinTKL and PaladinPad pcbs
* Remove the paladin boards from this PR
* Changed gskt00 as per review comments. Added two new default layouts, 60_ansi_tsangan and 60_iso_tsangan
* Fix the layouts/default/60_iso_tsangan/layout.json file
* Removed ? from rules.mk, removed unused fn_actions from keymaps. Changed the 60_iso_tsangan to work correctly
* Removed PREVENT_STUCK_MODIFIERS
* Keyboard: add Keyboardio Model01
This port implements key scanning and everything in their default
keymap.
It doesn't implement mouse warping; QMK can't do that (yet).
LED control is mostly not implemented. The ability to set all LEDs is
included because they can get stuck on coming from the bootloader
otherwise. Single LED control is also implemented for numpad indication.
The scanners also support batch LED transfer which is what you'd need if
you wanted to do fast effects. Gamma correction is also not implemented,
but is present in the original firmware. The necessary info for further
implementation is in the KeyboardioScanner module for Kaleidoscope.
To install on your keyboard:
make model01:avrdude
When prompted, hold the "prog" key on the keyboard to put it into
programming mode. This can also be achieved by holding the "prog" key
while plugging in the keyboard. This works even if the firmware is
corrupt or missing.
Hot plugging the halves seems to work fine, but there is no explicit
support for eg. making sure the matrix scan rate is reconfigured.
* model01: clean up includes and include guards
Uses #pragma once everywhere.
* model01: split LED and matrix code
This makes space if someone wants to implement better LED support
later on, the keyboard is a lot more capable than the current code.
* model01: separate I2C timeouts for matrix vs. LED
If the scanners have no data they don't ACK reads and just time out.
So we want a pretty short timeout to keep scan rates high.
Meanwhile the LED transfers might take longer - I don't know though,
so here we are conservative.
* model01: implement better LED control
- gamma correction from the manufacturer's firmware
- suitable delays to allow back to back LED writes
- this is fast enough to write the whole keyboard without noticeable
delay, in my experience
- minor bug fix: RHS Fn key was not addressable
* model01: add license to wire-protocol-constants.h
* model01: replace gamma LUT
The original was of unclear license origin. This one is functionally
identical and includes a generator should people wish to adjust it.
* model01: use the already-present CIE1931 lightness curve
...rather than baking in another gamma curve.
It's said that CIE1931 is the right thing to be using rather than gamma.
OK. Let it be so.
* model01: call matrix_init_user() from matrix_init_kb()
* model01: remove inapplicable config options from rules.mk
* model01: readme.md: update build environment links
* Add flashing instructions for Linux
* Make device/manufacturer name consistent for ymd96
* Disable command mode by default for YMD96
* Add function call to fix backlight for YMD96
* Add personal YMD96 config
* Replace include with QMK macro
* Move KEYMAP macro to keymap-level folder
* Move custom KEYMAP macro to global LAYOUT_iso macro
* Change transparent keymappings to global definition
* Remove unecessary import and change to pragma once
- (instead of repeated ifdef)
* Remove global keymap/layout definition
* Remove chording as it is not documented, not used, and needs work.
* Make Leader Key an optional feature.
* Switch from `PREVENT_STUCK_MODIFIERS` to `STRICT_LAYER_RELEASE`
* Remove `#define PREVENT_STUCK_MODIFIERS` from keymaps.
* Arrow keys are now arranged on hjkl (vi style)
* The escape key is moved on capslock, shared with func layer switch
* The grave key is now dedicated (not shared with escape)
* Add a new numpad layer that can be activated with the spacebar
* Fix layout mismatch between layers
* Use bult-in underscore KC_TRNS alias
* add my config
* fix backlight, clean up that code
* group background code, restore static var
* qwerty is supposed to be in the middle
* wrap layer change backlight in ifdef
* backlight levels and some more 'emojis'.
* Restructure to make it possible to press cmd ent on the right side of the board with one hand.
* Expose the period through the number layer. Add Hyper keys to mouse layer
* reduce mouse speed
* add a : -P key
* Thumbs up and down, remove some keys that are duplicated via function keys, clean up
* fix build issues
* add various emoji
* duplicate default Meira keymaps
* Miera updates
* add documented but unmapped emoji
* Sound for the Meira, was stumped by a file size! Thanks drashna!
* add docs
* docs
* revert lib changes...
* clean up
* clean up
* remove make file
* Fixes missing key
* clean up
* add my lets split
* add more emoji
* add the telophase board (unofficially, I guess...)
* add missing files
* add/reset files
* Review feedback implementation: Not needed. Add #define FLIP_HALF to your config.h file instead.
* Review feedback implementation: All of these includes should be replaced with #include QMK_KEYBOARD_H.
* Review feedback implementation: [FAILING] You may want to use LAYOUT_ortho_4x12 instead, and move this to /layouts/community/ortho_4x12/ instead. That way, you can use the same keymap for all of the boards.
* clean up
* add a key for command tilde (osx loves it)
* at least its building again
* remove adjusts and migrate layer switching to MO(_LAYER)
* update the telophase readme
* update the telophase readme
* grahampheaths -> grahampheath
* ONEHAND_ENABLE -> SWAP_HANDS_ENABLE
* convert lets split to use ortho_4x12
* Move lets split keyboard layout into community/ortho_4x12
* make telophase use LAYOUT()
* I did it?!
* Add clap and grin
* swap tabs and back and forward
* whitespace
* Add ellipsis and thanks emoji
* Move flip_half to telophase config (conflicts with lets split layout)
* Use #pragma once instead of config_user_h
* remove unused stuff
- [ ] Alteration (enhancement/optimization) of existing Feature(s)
- [ ] New behavior
## Description
<!-- A few sentences describing what it is that you'd like to see. Additional information (such as links to spec sheets, licensing info, other related issues or PR's, etc) would be helpful. -->
about: Anything else that doesn't fall into the above categories.
---
<!--- Provide a general summary of the changes you want in the Title above -->
<!-- This text and anything on lines wrapped like this one will not show up in the final text. This text is to help us and you. -->
<!-- Please check https://docs.qmk.fm/#/support for additional resources first. If that doesn't answer your question, check the bug report option, as that may be more appropriate. -->
This page describes how to setup debugging for ARM MCUs using an SWD adapter and open-source/free tools. In this guide we will install GNU MCU Eclipse IDE for C/C++ Developers and OpenOCD together with all the necessary dependencies.
This guide is catered towards advance users and assumes you can compile an ARM compatible keyboard on your machine using the MAKE flow.
## Installing the software
The main objective here is to get the MCU Eclipse IDE correcly installed on our machine. The necesarry instructions are derived from [this](https://gnu-mcu-eclipse.github.io/install/) install guide.
### The xPack Manager
This tool is a software package manager and it is used to help us get the necesarry depencencies.
XPM runs using Node.js so grab that form [here](https://nodejs.org/en/). After installation, open a terminal and type `npm -v`. A reply with the version number means that the instalation was successful.
XPM instalation instructions can be found [here](https://www.npmjs.com/package/xpm) and are OS specific. Entering `xpm --version` to your terminal should return the software version.
### The ARM Toolchain
Using XPM it is very easy to install the ARM toolchain. Enter the command `xpm install --global @gnu-mcu-eclipse/arm-none-eabi-gcc`.
### Windows build tools
If you are using windows you need to install this!
Now its the time to install your programer's drivers. This tutorial was made using an ST-Link v2 which you can get from almost anywhere.
If you have an ST-Link the drivers can be found [here](https://www.st.com/en/development-tools/stsw-link009.html) otherwise consult the manufuturer of your tool.
### OpenOCD
This dependency allows SWD access from GDB and it is essential for debugging. Run `xpm install --global @gnu-mcu-eclipse/openocd`.
### Java
Java is needed by Eclipse so please download it from [here](https://www.oracle.com/technetwork/java/javase/downloads/index.html).
### GNU MCU Eclipse IDE
Now its finally time to install the IDE. Use the Release page [here](https://github.com/gnu-mcu-eclipse/org.eclipse.epp.packages/releases/) to get the latest version.
## Configuring Eclipse
Open up the Eclipse IDE we just downloaded. To import our QMK directory select File -> Import -> C/C++ -> Existing code as Makefile Project. Select next and use Browse to select your QMK folder. In the tool-chain list select ARM Cross GCC and select Finish.
Now you can see the QMK folder on the left hand side. Right click it and select Properties. On the left hand side, expand MCU and select ARM Toolchain Paths. Press xPack and OK. Repeat for OpenOCD Path and if you are on windows for Build Tool Path. Select Apply and Close.
Now its time to install the necessary MCU packages. Go to Packs perspective by selecting Window -> Open Perspective -> Others -> Packs. Now select the yellow refresh symbol next to the Packs tab. This will take a long time as it is requesting the MCU definitions from various places. If some of the links fail you can probably select Ignore.
When this finishes you must find the MCU which we will be building/debugging for. In this example I will be using the STM32F3 series MCUs. On the left, select STMicroelectonics -> STM32F3 Series. On the middle window we can see the pack. Right click and select Install. Once that is done we can go back to the default perspective, Window -> Open Perspective -> Others -> C/C++.
We need to let eclipse know the device we intent to build QMK on. Right click on the QMK folder -> Properties -> C/C++ Build -> Settings. Select the Devices tab and under devices select the appropriate variant of your MCU. For my example it is STM32F303CC
While we are here let's setup the build command as well. Select C/C++ Build and then the Behavior tab. On the build command, replace `all` with your necessary make command. For example for a rev6 Planck with the default keymap this would be `planck/rev6:default`. Select Apply and Close.
## Building
If you have setup everything correctly pressing the hammer button should build the firmware for you and a .bin file should appear.
## Debugging
### Connecting the Debugger
ARM MCUs use the Single Wire Debug (SWD) protocol which comprises of the clock (SWCLK) signal and the data (SWDIO) signal. Connecting this two wires and ground should be enough to allow full manipulation of the MCU. Here we assume that the keyboard will be powered though USB. The RESET signal is not necessary as we can manually assert it using the reset button. For a more advance setup, the SWO signal can be used which pipes printf and scanf asynchronously to the host but for our setup we will ignore it.
NOTE: Make sure the SWCLK and SWDIO pins are not used in the matrix of your keyboard. If they are you can temporarily switch them for some other pins.
### Configuring the Debugger
Right click on your QMK folder, select Debug As -> Debug Configuration. Here double click on GDB OpenOCD Debugging. Select the debugger tab and enter the configuration necessary for your MCU. This might take some fiddling and googleing to find out. The default script for the STM32F3 is called stm32f3discovery.cfg. To let OpenOCD know, in the Config options enter `-f board/stm32f3discovery.cfg`.
NOTE: In my case this configuration script requires editing to disable the reset assertion. The locations of the scripts can be found in the actual executable field usually under the path `openocd/version/.content/scripts/board`. Here I edited `reset_config srst_only` to `reset_config none`.
Select Apply and Close.
### Running the Debugger.
Reset your keyboard.
Press the bug icon and if all goes well you should soon find yourself in the debug perspective. Here the program counter will pause at the beginning of the main function and way for you to press Play. Most of the features of all debuggers work on ARM MCUs but for exact details google is your friend!
* 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)
@ -109,9 +109,9 @@ If you define these options you will disable the associated feature, which can s
*`#define NO_ACTION_ONESHOT`
* disable one-shot modifiers
*`#define NO_ACTION_MACRO`
* disable all macro handling
* disable old style macro handling: MACRO() & action_get_macro
*`#define NO_ACTION_FUNCTION`
* disable the action function (deprecated)
* disable calling of action_function() from the fn_actions array (deprecated)
## Features That Can Be Enabled
@ -119,8 +119,8 @@ If you define these options you will enable the associated feature, which may in
*`#define FORCE_NKRO`
* NKRO by default requires to be turned on, this forces it on during keyboard startup regardless of EEPROM setting. NKRO can still be turned off but will be turned on again if the keyboard reboots.
*`#define PREVENT_STUCK_MODIFIERS`
*stores the layer a key press came from so the same layer is used when the key is released, regardless of which layers are enabled
*`#define STRICT_LAYER_RELEASE`
*force a key release to be evaluated using the current layer stack instead of remembering which layer it came from (used for advanced cases)
## Behaviors That Can Be Configured
@ -132,16 +132,22 @@ If you define these options you will enable the associated feature, which may in
*`#define TAPPING_TOGGLE 2`
* how many taps before triggering the toggle
*`#define PERMISSIVE_HOLD`
* makes tap and hold keys work better for fast typers who don't want tapping term set above 500
* makes tap and hold keys trigger the hold if another key is pressed before releasing, even if it hasn't hit the `TAPPING_TERM`
* See [Permissive Hold](feature_advanced_keycodes.md#permissive-hold) for details
*`#define IGNORE_MOD_TAP_INTERRUPT`
* makes it possible to do rolling combos (zx) with keys that convert to other keys on hold
* See [Mod tap interrupt](feature_advanced_keycodes.md#mod-tap-interrupt) for details
* makes it possible to do rolling combos (zx) with keys that convert to other keys on hold, by enforcing the `TAPPING_TERM` for both keys.
* See [Mod tap interrupt](feature_advanced_keycodes.md#ignore-mod-tap-interrupt) for details
*`#define TAPPING_FORCE_HOLD`
* makes it possible to use a dual role key as modifier shortly after having been tapped
* See [Hold after tap](feature_advanced_keycodes.md#hold-after-tap)
* See [Hold after tap](feature_advanced_keycodes.md#tapping-force-hold)
* Breaks any Tap Toggle functionality (`TT` or the One Shot Tap Toggle)
*`#define LEADER_TIMEOUT 300`
* how long before the leader key times out
* If you're having issues finishing the sequence before it times out, you may need to increase the timeout setting. Or you may want to enable the `LEADER_PER_KEY_TIMING` option, which resets the timeout after each key is tapped.
*`#define LEADER_PER_KEY_TIMING`
* sets the timer for leader key chords to run on each key press rather than overall
*`#define LEADER_KEY_STRICT_KEY_PROCESSING`
* Disables keycode filtering for Mod-Tap and Layer-Tap keycodes. Eg, if you enable this, you would need to specify `MT(MOD_CTL, KC_A)` if you want to use `KC_A`.
*`#define ONESHOT_TIMEOUT 300`
* how long before oneshot times out
*`#define ONESHOT_TAP_TOGGLE 2`
@ -155,6 +161,12 @@ If you define these options you will enable the associated feature, which may in
going to produce the 500 keystrokes a second needed to actually get more than a
few ms of delay from this. But if you're doing chording on something with 3-4ms
scan times? You probably want this.
*`#define COMBO_COUNT 2`
* Set this to the number of combos that you're using in the [Combo](feature_combo.md) feature.
*`#define COMBO_TERM 200`
* 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.
## RGB Light Configuration
@ -185,12 +197,51 @@ If you define these options you will enable the associated feature, which may in
Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk
*`SPLIT_TRANSPORT = custom`
* Allows replacing the standard split communication routines with a custom one. ARM based split keyboards must use this at present.
### Setting Handedness
One thing to remember, the side that the USB port is plugged into is always the master half. The side not plugged into USB is the slave.
There are a few different ways to set handedness for split keyboards (listed in order of precedence):
1. Set `SPLIT_HAND_PIN`: Reads a pin to determine handedness. If pin is high, it's the left side, if low, the half is determined to be the right side
2. Set `EE_HANDS` and flash `eeprom-lefthand.eep`/`eeprom-righthand.eep` to each half
3. Set `MASTER_RIGHT`: Half that is plugged into the USB port is determined to be the master and right half (inverse of the default)
4. Default: The side that is plugged into the USB port is the master half and is assumed to be the left half. The slave side is the right half
*`#define SPLIT_HAND_PIN B7`
* For using high/low pin to determine handedness, low = right hand, high = left hand. Replace 'B7' with the pin you are using. This is optional and you can still use the EEHANDS method or MASTER_LEFT / MASTER_RIGHT defines like the stock Let's Split uses.
* For using high/low pin to determine handedness, low = right hand, high = left hand. Replace `B7` with the pin you are using. This is optional, and if you leave `SPLIT_HAND_PIN` undefined, then you can still use the EE_HANDS method or MASTER_LEFT / MASTER_RIGHT defines like the stock Let's Split uses.
*`#define EE_HANDS` (only works if `SPLIT_HAND_PIN` is not defined)
* Reads the handedness value stored in the EEPROM after `eeprom-lefthand.eep`/`eeprom-righthand.eep` has been flashed to their respective halves.
*`#define MASTER_RIGHT`
* Master half is defined to be the right half.
### Other Options
*`#define USE_I2C`
* For using I2C instead of Serial (defaults to serial)
*`#define SOFT_SERIAL_PIN D0`
* When using serial, define this. `D0` or `D1`,`D2`,`D3`,`E6`.
*`#define MATRIX_ROW_PINS_RIGHT { <row pins> }`
*`#define MATRIX_COL_PINS_RIGHT { <col pins> }`
* If you want to specify a different pinout for the right half than the left half, you can define `MATRIX_ROW_PINS_RIGHT`/`MATRIX_COL_PINS_RIGHT`. Currently, the size of `MATRIX_ROW_PINS` must be the same as `MATRIX_ROW_PINS_RIGHT` and likewise for the definition of columns.
*`#define SELECT_SOFT_SERIAL_SPEED <speed>` (default speed is 1)
* Sets the protocol speed when using serial communication
* Speeds:
* 0: about 189kbps (Experimental only)
* 1: about 137kbps (default)
* 2: about 75kbps
* 3: about 39kbps
* 4: about 26kbps
* 5: about 20kbps
# The `rules.mk` File
This is a [make](https://www.gnu.org/software/make/manual/make.html) file that is included by the top-level `Makefile`. It is used to set some information about the MCU that we will be compiling for as well as enabling and disabling certain features.
@ -234,21 +285,60 @@ Use these to enable or disable building certain features. The more you have enab
* Console for debug(+400)
*`COMMAND_ENABLE`
* Commands for debug and configuration
*`COMBO_ENABLE`
* Key combo feature
*`NKRO_ENABLE`
* USB N-Key Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
*`AUDIO_ENABLE`
* Enable the audio subsystem.
*`RGBLIGHT_ENABLE`
* Enable keyboard underlight functionality
*`LEADER_ENABLE`
* Enable leader key chording
*`MIDI_ENABLE`
* MIDI controls
*`UNICODE_ENABLE`
* Unicode
*`BLUETOOTH_ENABLE`
* Enable Bluetooth with the Adafruit EZ-Key HID
* Legacy option to Enable Bluetooth with the Adafruit EZ-Key HID. See BLUETOOTH
*`BLUETOOTH`
* Current options are AdafruitEzKey, AdafruitBLE, RN42
*`SPLIT_KEYBOARD`
* Enables split keyboard support (dual MCU like the let's split and bakingpy's boards) and includes all necessary files located at quantum/split_common
*`CUSTOM_MATRIX`
* Allows replacing the standard matrix scanning routine with a custom one.
*`CUSTOM_DEBOUNCE`
* Allows replacing the standard key debouncing routine with a custom one.
*`WAIT_FOR_USB`
* 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.
## USB Endpoint Limitations
In order to provide services over USB, QMK has to use USB endpoints.
These are a finite resource: each microcontroller has only a certain number.
This limits what features can be enabled together.
If the available endpoints are exceeded, a build error is thrown.
The following features can require separate endpoints:
*`MOUSEKEY_ENABLE`
*`EXTRAKEY_ENABLE`
*`CONSOLE_ENABLE`
*`NKRO_ENABLE`
*`MIDI_ENABLE`
*`RAW_ENABLE`
*`VIRTSER_ENABLE`
In order to improve utilisation of the endpoints, the HID features can be combined to use a single endpoint.
By default, `MOUSEKEY`, `EXTRAKEY`, and `NKRO` are combined into a single endpoint.
The base keyboard functionality can also be combined into the endpoint,
by setting `KEYBOARD_SHARED_EP = yes`.
This frees up one more endpoint,
but it can prevent the keyboard working in some BIOSes,
as they do not implement Boot Keyboard protocol switching.
Combining the mouse also breaks Boot Mouse compatibility.
The mouse can be uncombined by setting `MOUSE_SHARED_EP = no` if this functionality is required.
@ -57,19 +57,39 @@ Never made an open source contribution before? Wondering how contributions work
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 two spaces (soft tabs)
* We use One True Brace Style
* 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 use C style comments: `/* */`
* 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`)
@ -36,7 +36,7 @@ Make example for this keyboard (after setting up your build environment):
make planck/rev4:default
See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information.
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
```
There needs to be two spaces at the end of the `Keyboard Maintainer` and `Hardware Supported` lines for it to render correctly with Markdown.
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.
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.
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 `WinUS(libusb-1.0)` option, and hit "Reinstall driver". Once you've done that, try flashing your board, again.
## WINAVR is Obsolete
It is no longer recommended and may cause some problem.
See [TMK Issue #99](https://github.com/tmk/tmk_keyboard/issues/99).
@ -97,10 +105,12 @@ The solution is to remove and reinstall all affected modules.
```
brew rm avr-gcc
brew rm dfu-programmer
brew rm dfu-util
brew rm gcc-arm-none-eabi
brew rm avrdude
brew install avr-gcc
brew install dfu-programmer
brew install dfu-util
brew install gcc-arm-none-eabi
brew install avrdude
```
@ -116,5 +126,5 @@ For now, you need to rollback avr-gcc to 7 in brew.
@ -11,8 +11,8 @@ Keycodes are actually defined in [common/keycode.h](https://github.com/qmk/qmk_f
There are 3 standard keyboard layouts in use around the world- ANSI, ISO, and JIS. North America primarily uses ANSI, Europe and Africa primarily use ISO, and Japan uses JIS. Regions not mentioned typically use either ANSI or ISO. The keycodes corresponding to these layouts are shown here:
<!-- Source for this image: http://www.keyboard-layout-editor.com/#/gists/070a530eedaed36a2d77f3f6fd455677 -->
Your keymap can include keycodes that are more advanced than normal, for example keys that switch layers or send modifiers when held, but send regular keycodes when tapped. This page documents the functions that are available to you.
### Assigning Custom Names
## Assigning Custom Names
People often define custom names using `#define`. For example:
@ -13,7 +13,7 @@ People often define custom names using `#define`. For example:
This will allow you to use `FN_CAPS` and `ALT_TAB` in your `KEYMAP()`, keeping it more readable.
### Caveats
## Caveats
Currently, `LT()` and `MT()` are limited to the [Basic Keycode set](keycodes_basic.md), meaning you can't use keycodes like `LCTL()`, `KC_TILD`, or anything greater than `0xFF`. Modifiers specified as part of a Layer Tap or Mod Tap's keycode will be ignored.
@ -21,12 +21,13 @@ Additionally, if at least one right-handed modifier is specified in a Mod Tap or
# Switching and Toggling Layers
These functions allow you to activate layers in various ways. Note that layers are not generally independent layouts -- multiple layers can be activated at once, and it's typical for layers to use `KC_TRNS` to allow keypresses to pass through to lower layers. For a detailed explanation of layers, see [Keymap Overview](keymap.md#keymap-and-layers)
These functions allow you to activate layers in various ways. Note that layers are not generally independent layouts -- multiple layers can be activated at once, and it's typical for layers to use `KC_TRNS` to allow keypresses to pass through to lower layers. For a detailed explanation of layers, see [Keymap Overview](keymap.md#keymap-and-layers) When using momentary layer switching with MO(), LM(), TT(), or LT(), make sure to leave the key on the above layers transparent or it may not work as intended.
*`DF(layer)` - switches the default layer. The default layer is the always-active base layer that other layers stack on top of. See below for more about the default layer. This might be used to switch from QWERTY to Dvorak layout. (Note that this is a temporary switch that only persists until the keyboard loses power. To modify the default layer in a persistent way requires deeper customization, such as calling the `set_single_persistent_default_layer` function inside of [process_record_user](custom_quantum_functions.md#programming-the-behavior-of-any-keycode).)
*`MO(layer)` - momentarily activates *layer*. As soon as you let go of the key, the layer is deactivated.
*`LM(layer, mod)` - Momentarily activates *layer* (like `MO`), but with modifier(s) *mod* active. Only supports layers 0-15 and the left modifiers.
*`LT(layer, kc)` - momentarily activates *layer* when held, and sends *kc* when tapped.
*`LM(layer, mod)` - Momentarily activates *layer* (like `MO`), but with modifier(s) *mod* active. Only supports layers 0-15 and the left modifiers: `MOD_LCTL`, `MOD_LSFT`, `MOD_LALT`, `MOD_LGUI` (note the use of `MOD_` constants instead of `KC_`). These modifiers can be combined using bitwise OR, e.g. `LM(_RAISE, MOD_LCTL | MOD_LALT)`.
*`LT(layer, kc)` - momentarily activates *layer* when held, and sends *kc* when tapped. Only supports layers 0-15.
*`OSL(layer)` - momentarily activates *layer* until the next key is pressed. See [One Shot Keys](#one-shot-keys) for details and additional functionality.
*`TG(layer)` - toggles *layer*, activating it if it's inactive and vice versa
*`TO(layer)` - activates *layer* and de-activates all other layers (except your default layer). This function is special, because instead of just adding/removing one layer to your active layer stack, it will completely replace your current active layers, uniquely allowing you to replace higher layers with a lower one. This is activated on keydown (as soon as the key is pressed).
*`TT(layer)` - Layer Tap-Toggle. If you hold the key down, *layer* is activated, and then is de-activated when you let go (like `MO`). If you repeatedly tap it, the layer will be toggled on or off (like `TG`). It needs 5 taps by default, but you can change this by defining `TAPPING_TOGGLE` -- for example, `#define TAPPING_TOGGLE 2` to toggle on just two taps.
@ -35,7 +36,7 @@ These functions allow you to activate layers in various ways. Note that layers a
Care must be taken when switching layers, it's possible to lock yourself into a layer with no way to deactivate that layer (without unplugging your keyboard.) We've created some guidelines to help users avoid the most common problems.
### Beginners
## Beginners
If you are just getting started with QMK you will want to keep everything simple. Follow these guidelines when setting up your layers:
@ -43,11 +44,11 @@ If you are just getting started with QMK you will want to keep everything simple
* Arrange your layers in a "tree" layout, with layer 0 as the root. Do not try to enter the same layer from more than one other layer.
* In a layer's keymap, only reference higher-numbered layers. Because layers are processed from the highest-numbered (topmost) active layer down, modifying the state of lower layers can be tricky and error-prone.
### Intermediate Users
## Intermediate Users
Sometimes you need more than one base layer. For example, if you want to switch between QWERTY and Dvorak, switch between layouts for different countries, or switch your layout for different videogames. Your base layers should always be the lowest numbered layers. When you have multiple base layers you should always treat them as mutually exclusive. When one base layer is on the others are off.
### Advanced Users
## Advanced Users
Once you have a good feel for how layers work and what you can do, you can get more creative. The rules listed in the beginner section will help you be successful by avoiding some of the tricker details but they can be constraining, especially for ultra-compact keyboard users. Understanding how layers work will allow you to use them in more advanced ways.
@ -59,22 +60,21 @@ Sometimes, you might want to switch between layers in a macro or as part of a ta
These allow you to combine a modifier with a keycode. When pressed, the keydown event for the modifier, then `kc` will be sent. On release, the keyup event for `kc`, then the modifier will be sent.
|`LCTL_T(kc)`|`CTL_T(kc)` |Left Control when held, `kc` when tapped |
|`RCTL_T(kc)`| |Right Control when held, `kc` when tapped |
|`LSFT_T(kc)`|`SFT_T(kc)` |Left Shift when held, `kc` when tapped |
|`RSFT_T(kc)`| |Right Shift when held, `kc` when tapped |
|`LALT_T(kc)`|`ALT_T(kc)`|Left Alt when held, `kc` when tapped |
|`RALT_T(kc)`|`ALGR_T(kc)` |Right Alt when held, `kc` when tapped |
|`LGUI_T(kc)`|`LCMD_T(kc)`, `RWIN_T(kc)`, `GUI_T(kc)`|Left GUI when held, `kc` when tapped |
|`RGUI_T(kc)`|`RCMD_T(kc)`, `RWIN_T(kc)` |Right GUI when held, `kc` when tapped |
|`C_S_T(kc)` | |Left Control and Shift when held, `kc` when tapped |
|`MEH_T(kc)` | |Left Control, Shift and Alt when held, `kc` when tapped|
|`LCAG_T(kc)`| |Left Control, Alt and GUI when held, `kc` when tapped |
|`RCAG_T(kc)`| |Right Control, Alt and GUI when held, `kc` when tapped |
|`ALL_T(kc)` | |Left Control, Shift, Alt and GUI when held, `kc` when tapped - more info [here](http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/)|
|`SGUI_T(kc)`|`SCMD_T(kc)`, `SWIN_T(kc)` |Left Shift and GUI when held, `kc` when tapped|
|`LCA_T(kc)` | |Left Control and Alt when held, `kc` when tapped |
|`LCTL_T(kc)`|`CTL_T(kc)`|Left Control when held, `kc` when tapped |
|`LSFT_T(kc)`|`SFT_T(kc)` |Left Shift when held, `kc` when tapped |
|`LALT_T(kc)`|`ALT_T(kc)`|Left Alt when held, `kc` when tapped |
|`LGUI_T(kc)`|`LCMD_T(kc)`, `LWIN_T(kc)`, `GUI_T(kc)`, `CMD_T(kc)`, `WIN_T(kc)`|Left GUI when held, `kc` when tapped |
|`RCTL_T(kc)`| |Right Control when held, `kc` when tapped |
|`RSFT_T(kc)`||Right Shift when held, `kc` when tapped |
|`RALT_T(kc)`|`ALGR_T(kc)` |Right Alt when held, `kc` when tapped |
|`RGUI_T(kc)`|`RCMD_T(kc)`, `RWIN_T(kc)` |Right GUI when held, `kc` when tapped |
|`SGUI_T(kc)`|`SCMD_T(kc)`, `SWIN_T(kc)` |Left Shift and GUI when held, `kc` when tapped |
|`LCA_T(kc)` | |Left Control and Alt when held, `kc` when tapped|
|`LCAG_T(kc)`| |Left Control, Alt and GUI when held, `kc` when tapped |
|`RCAG_T(kc)`| |Right Control, Alt and GUI when held, `kc` when tapped |
|`C_S_T(kc)` | |Left Control and Shift when held, `kc` when tapped |
|`MEH_T(kc)` | |Left Control, Shift and Alt when held, `kc` when tapped|
|`HYPR_T(kc)`|`ALL_T(kc)` |Left Control, Shift, Alt and GUI when held, `kc` when tapped - more info [here](http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/)|
## Caveats
Unfortunately, these keycodes cannot be used in Mod-Taps or Layer-Taps, since any modifiers specified in the keycode are ignored.
Additionally, you may run into issues when using Remote Desktop Connection on Windows. Because these codes send shift very fast, Remote Desktop may miss the codes.
To fix this, open Remote Desktop Connection, click on "Show Options", open the the "Local Resources" tab. In the keyboard section, change the drop down to "On this Computer". This will fix the issue, and allow the characters to work correctly.
# One Shot Keys
@ -133,6 +141,8 @@ For example, if you define a key as `OSM(MOD_LSFT)`, you can type a capital A ch
One shot keys also work as normal modifiers. If you hold down a one shot key and type other keys, your one shot will be released immediately after you let go of the key.
Additionally, hitting keys five times in a short period will lock that key. This applies for both One Shot Modifiers and One Shot Layers, and is controlled by the `ONESHOT_TAP_TOGGLE` define.
You can control the behavior of one shot keys by defining these in `config.h`:
```c
@ -143,42 +153,78 @@ You can control the behavior of one shot keys by defining these in `config.h`:
*`OSM(mod)` - Momentarily hold down *mod*. You must use the `MOD_*` keycodes as shown in [Mod Tap](#mod-tap), not the `KC_*` codes.
*`OSL(layer)` - momentary switch to *layer*.
Sometimes, you want to activate a one-shot layer as part of a macro or tap dance routine. To do this, you need to call `set_oneshot_layer(LAYER, ONESHOT_START)` on key down, and `set_oneshot_layer(ONESHOT_PRESSED)` on key up. If you want to cancel the oneshot, call `reset_oneshot_layer()`. For more complicated actions, take a look at the oneshot implementation in [`process_record`](https://github.com/qmk/qmk_firmware/blob/master/tmk_core/common/action.c#L429).
Sometimes, you want to activate a one-shot key as part of a macro or tap dance routine.
If you're having issues with OSM translating over Remote Desktop Connection, this can be fixed by opening the settings, going to the "Local Resources" tap, and in the keyboard section, change the drop down to "On this Computer". This will fix the issue and allow OSM to function properly over Remote Desktop.
For one shot layers, you need to call`set_oneshot_layer(LAYER, ONESHOT_START)` on key down, and `set_oneshot_layer(ONESHOT_PRESSED)` on key up. If you want to cancel the oneshot, call `reset_oneshot_layer()`.
# Permissive Hold
For one shot mods, you need to call `set_oneshot_mods(MOD)` to set it, or `clear_oneshot_mods()` to cancel it.
!> If you're having issues with OSM translating over Remote Desktop Connection, this can be fixed by opening the settings, going to the "Local Resources" tap, and in the keyboard section, change the drop down to "On this Computer". This will fix the issue and allow OSM to function properly over Remote Desktop.
# Tap-Hold Configuration Options
While Tap-Hold options are fantastic, they are not without their issues. We have tried to configure them with reasonal defaults, but that may still cause issues for some people.
These options let you modify the behavior of the Tap-Hold keys.
## Permissive Hold
As of [PR#1359](https://github.com/qmk/qmk_firmware/pull/1359/), there is a new `config.h` option:
```
```c
#define PERMISSIVE_HOLD
```
This makes it easier for fast typists to use dual-function keys. Without this, if you let go of a held key inside the tapping term, it won't register.
This makes tap and hold keys (like Mod Tap) work better for fast typist, or for high `TAPPING_TERM` settings.
Example: (Tapping Term = 200ms)
If you press a Mod Tap key, tap another key (press and release) and then release the Mod Tap key, all within the tapping term, it will output the "tapping" function for both keys.
- SHFT_T(KC_A) Down
- KC_X Down
- KC_X Up
- SHFT_T(KC_A) Up
For Instance:
With defaults, if above is typed within tapping term, this will emit `ax`. With permissive hold, if above is typed within tapping term, this will emit `X` (so, Shift+X).
-`SHFT_T(KC_A)` Down
-`KC_X` Down
-`KC_X` Up
-`SHFT_T(KC_A)` Up
# Mod tap interrupt
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`).
When a dual role key used for a modifier is quickly followed by another keys, it is interpreted as held even before the tapping term elapsed. This is a problem if a key is used for example inside a rolling combo because the second key will be pressed before the first key is released.
?> If you have `Ignore Mod Tap Interrupt` enabled, as well, this will modify how both work. The regular key has the modifier added if the first key is released first or if both keys are held longer than the `TAPPING_TERM`.
For example, when trying to type the rolling combo "zx" and z being configured to send Ctrl when hold, z rapidly followed by x actually sends Ctrl-x. That's bad.
## Ignore Mod Tap Interrupt
You can disable this behavior by defining `IGNORE_MOD_TAP_INTERRUPT` in`config.h`.
To enable this setting, add this to your`config.h`:
Note that this only concerns modifiers and not layer switching keys.
```c
#define IGNORE_MOD_TAP_INTERRUPT
```
# Hold after tap
Similar to Permissive Hold, this alters how the firmware processes input for fast typist. If you press a Mod Tap key, press another key, release the Mod Tap key, and then release the normal key, it would normally output the "tapping" function for both keys. This may not be desirable for rolling combo keys.
When the user holds a key after tap, this repeats the tapped key rather to hold a modifier key. This allows to use auto repeat for the tapped key. If you prefer to hold a modifier instead, define `TAPPING_FORCE_HOLD` in `config.h`.
Setting `Ignore Mod Tap Interrupt` requires holding both keys for the `TAPPING_TERM` to trigger the hold function (the mod).
For Instance:
-`SHFT_T(KC_A)` Down
-`KC_X` Down
-`SHFT_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`).
?> __Note__: This only concerns modifiers and not layer switching keys.
?> If you have `Permissive Hold` enabled, as well, this will modify how both work. The regular key has the modifier added if the first key is released first or if both keys are held longer than the `TAPPING_TERM`.
## Tapping Force Hold
To enable `tapping force hold`, add the following to your `config.h`:
```c
#define TAPPING_FORCE_HOLD
```
When the user holds a key after tap, this repeats the tapped key rather to hold a modifier key. This allows to use auto repeat for the tapped key.
Example:
@ -194,8 +240,14 @@ With `TAPPING_FORCE_HOLD`, the second press will be interpreted as a Shift, allo
!> `TAPPING_FORCE_HOLD` will break anything that uses tapping toggles (Such as the `TT` layer keycode, and the One Shot Tapping Toggle).
# Retro Tapping
## Retro Tapping
When you hold a dual function key, and haven't pressed anything when you release the key, normally nothing happens. However, if you enable this, if you release the key without pressing another key, it will send the original key, even if it is outside of the tapping term.
To enable `retro tapping`, add the following to your `config.h`:
For instance, if you're using `LT(2, KC_SPACE)`, if you hold the key, don't hit anything else and then release it, normally, nothing happens. But with `RETRO_TAPPING` defined in your `config.h`, it will send `KC_SPACE`.
```c
#define RETRO_TAPPING
```
Holding and releasing a dual function key without pressing another key will result in nothing happening. With retro tapping enabled, releasing the key without pressing another will send the original keycode even if it is outside the tapping term.
For instance, holding and releasing `LT(2, KC_SPACE)` without hitting another key will result in nothing happening. With this enabled, it will send `KC_SPACE` instead.
@ -61,10 +61,19 @@ It's advised that you wrap all audio features in `#ifdef AUDIO_ENABLE` / `#endif
The available keycodes for audio are:
*`AU_ON` - Turn audio mode on
*`AU_OFF` - Turn audio mode off
*`AU_TOG` - Toggle audio mode
*`AU_ON` - Turn Audio Feature on
*`AU_OFF` - Turn Audio Feature off
*`AU_TOG` - Toggle Audio Feature state
!> These keycodes turn all of the audio functionality on and off. Turning it off means that audio feedback, audio clicky, music mode, etc. are disabled, completely.
## ARM Audio Volume
For ARM devices, you can adjust the DAC sample values. If your board is too loud for you or your coworkers, you can set the max using `DAC_SAMPLE_MAX` in your `config.h`:
```c
#define DAC_SAMPLE_MAX 65535U
```
## Music Mode
@ -119,22 +128,22 @@ You can completely disable Music Mode as well. This is useful, if you're pressed
#define NO_MUSIC_MODE
## Faux Click
## Audio Click
This adds a click sound each time you hit a button, to simulate click sounds from the keyboard. And the sounds are slightly different for each keypress, so it doesn't sound like a single long note, if you type rapidly.
*`CK_TOGG` - Toggles the status (will play sound if enabled)
*`CK_RST` - Resets the frequency to the default state
*`CK_UP` - Increases the frequency of the clicks
*`CK_DOWN` - Decreases the frequency of the clicks
*`CK_ON` - Turns on Audio Click (plays sound)
*`CK_OFF` - Turns offAudio Click (doesn't play sound)
*`CK_RST` - Resets the frequency to the default state (plays sound at default frequency)
*`CK_UP` - Increases the frequency of the clicks (plays sound at new frequency)
*`CK_DOWN` - Decreases the frequency of the clicks (plays sound at new frequency)
The feature is disabled by default, to save space. To enable it, add this to your `config.h`:
#define AUDIO_CLICKY
Additionally, even when enabled, the feature is not enabled by default, so you would need to turn it on first. And since we don't use EEPROM to store the setting (yet), you can default this to on by adding this to your `config.h`:
#define AUDIO_CLICKY_ON
You can configure the default, min and max frequencies, the stepping and built in randomness by defining these values:
@ -144,14 +153,14 @@ You can configure the default, min and max frequencies, the stepping and built i
| `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_RANDOMNESS` | 0.05f | Sets a factor of randomness for the clicks, Setting this to `0f` will make each click identical. |
| `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. |
## MIDI Functionality
This is still a WIP, but check out `quantum/keymap_midi.c` to see what's happening. Enable from the Makefile.
This is still a WIP, but check out `quantum/process_keycode/process_midi.c` to see what's happening. Enable from the Makefile.
Currently Bluetooth support is limited to AVR based chips. For Bluetooth 2.1 Qmk has support for RN-42 HID Firmware and Bluefruit EZ Key the later of which is not produced anymore. For more recent BLE protocols currently only the Adafruit Bluefruit SPI friend is directly supported. BLE is needed to connect to iOS devices. Note iOS does not support Mouse Input.
|Board |Bluetooth Protocol |Connection Type |Rules.mk |Bluetooth Chip|
|[Bluefruit LE SPI Friend](https://www.adafruit.com/product/2633)|Bluetooth Low Energy | SPI | BLUETOOTH = AdafruitBLE | nRF5182 |
Not Supported Yet but possible:
* [Bluefruit LE UART Friend](https://www.adafruit.com/product/2479). [Possible tmk implementation found in](https://github.com/tmk/tmk_keyboard/issues/514)
* HC-05 boards flashed with RN-42 firmware. They apparently both use the CSR BC417 Chip. Flashing it with RN-42 firmware gives it HID capability.
* [Sparkfun Bluetooth mate](https://www.sparkfun.com/products/14839)
* HM-13 based boards
### Adafruit BLE SPI Friend
Currently The only bluetooth chipset supported by QMK is the Adafruit Bluefruit SPI Friend. It's a Nordic nRF5182 based chip running Adafruit's custom firmware. Data is transmitted via Adafruit's SDEP over Hardware SPI. The [Feather 32u4 Bluefruit LE](https://www.adafruit.com/product/2829) is supported as it's an AVR mcu connected via SPI to the Nordic BLE chip with Adafruit firmware. If Building a custom board with the SPI friend it would be easiest to just use the pin selection that the 32u4 feather uses but you can change the pins in the config.h options with the following defines:
*#define AdafruitBleResetPin D4
*#define AdafruitBleCSPin B4
*#define AdafruitBleIRQPin E6
A Bluefruit UART friend can be converted to an SPI friend, however this [requires](https://github.com/qmk/qmk_firmware/issues/2274) some reflashing and soldering directly to the MDBT40 chip.
## Adafruit EZ-Key hid
This requires [some hardware changes](https://www.reddit.com/r/MechanicalKeyboards/comments/3psx0q/the_planck_keyboard_with_bluetooth_guide_and/?ref=search_posts), but can be enabled via the Makefile. The firmware will still output characters via USB, so be aware of this when charging via a computer. It would make sense to have a switch on the Bluefruit to turn it off at will.
<!-- FIXME: Document bluetooth support more completely. -->
@ -11,7 +11,15 @@ There are three separate but related features that allow you to change the behav
On some keyboards Bootmagic is disabled by default. If this is the case, it must be explicitly enabled in your `rules.mk` with:
```make
BOOTMAGIC_ENABLE=yes
BOOTMAGIC_ENABLE=full
```
?> You may see `yes` being used in place of `full`, and this is okay. However, `yes` is deprecated, and ideally `full` (or `lite`) should be used instead.
Additionally, you can use [Bootmagic Lite](#bootmagic-lite) (a scaled down, very basic version of Bootmagic) by adding the following to your `rules.mk` file:
```make
BOOTMAGIC_ENABLE= lite
```
## Hotkeys
@ -57,6 +65,7 @@ Hold down the Bootmagic key (Space by default) and the desired hotkey while plug
|`MAGIC_UNNO_GUI` | |Enable the GUI keys |
|`MAGIC_SWAP_ALT_GUI` |`AG_SWAP`|Swap Alt and GUI on both sides (for macOS)|
|`MAGIC_UNSWAP_ALT_GUI` |`AG_NORM`|Unswap Left Alt and Left GUI |
|`MAGIC_TOGGLE_ALT_GUI` |`AG_TOGG`|Toggle Left Alt and GUI swap |
|`MAGIC_SWAP_BACKSLASH_BACKSPACE` | |Swap `\` and Backspace |
|`MAGIC_UNSWAP_BACKSLASH_BACKSPACE`| |Unswap `\` and Backspace |
|`MAGIC_SWAP_CONTROL_CAPSLOCK` | |Swap Left Control and Caps Lock |
@ -98,3 +107,45 @@ If you would like to change the hotkey assignments for Bootmagic, `#define` thes
|`BOOTMAGIC_KEY_DEFAULT_LAYER_5` |`KC_5` |Make layer 5 the default layer |
|`BOOTMAGIC_KEY_DEFAULT_LAYER_6` |`KC_6` |Make layer 6 the default layer |
|`BOOTMAGIC_KEY_DEFAULT_LAYER_7` |`KC_7` |Make layer 7 the default layer |
# Bootmagic Lite
In addition to the full blown Bootmagic feature, is the Bootmagic Lite feature that only handles jumping into the bootloader. This is great for boards that don't have a physical reset button but you need a way to jump into the bootloader, and don't want to deal with the headache that Bootmagic can cause.
To enable this version of Bootmagic, you need to enable it in your `rules.mk` with:
```make
BOOTMAGIC_ENABLE= lite
```
Additionally, you may want to specify which key to use. This is especially useful for keyboards that have unusual matrices. To do so, you need to specify the row and column of the key that you want to use. Add these entries to your `config.h` file:
```c
#define BOOTMAGIC_LITE_ROW 0
#define BOOTMAGIC_LITE_COLUMN 1
```
By default, these are set to 0 and 0, which is usually the "ESC" key on a majority of keyboards.
And to trigger the bootloader, you hold this key down when plugging the keyboard in. Just the single key.
## Advanced Bootmagic Lite
The `bootmagic_lite` function is defined weakly, so that you can replace this in your code, if you need. A great example of this is the Zeal60 boards that have some additional handling needed.
To replace the function, all you need to do is add something like this to your code:
You can additional feature here. For instance, resetting the eeprom or requiring additional keys to be pressed to trigger bootmagic. Keep in mind that `bootmagic_lite` is called before a majority of features are initialized in the firmware.
The Combo feature is a chording type solution for adding custom actions. It lets you hit multiple keys at once and produce a different effect. For instance, hitting `A` and `S` within the tapping term would hit `ESC` instead, or have it perform even more complex tasks.
To enable this feature, yu need to add `COMBO_ENABLE = yes` to your `rules.mk`.
Additionally, in your `config.h`, you'll need to specify the number of combos that you'll be using, by adding `#define COMBO_COUNT 1` (replacing 1 with the number that you're using).
<!-- At this time, this is necessary -->
Also, by default, the tapping term for the Combos is set to the same value as `TAPPING_TERM` (200 by default on most boards). But you can specify a different value by defining it in your `config.h`. For instance: `#define COMBO_TERM 300` would set the time out period for combos to 300ms.
Then, your `keymap.c` file, you'll need to define a sequence of keys, terminated with `COMBO_END`, and a structure to list the combination of keys, and it's resulting action.
This will send Ctrl+C if you hit Z and C, and Ctrl+V if you hit X and V. But you could change this to do stuff like change layers, play sounds, or change settings.
## Additional Configuration
If you're using long combos, or even longer combos, you may run into issues with this, as the structure may not be large enough to accommodate what you're doing.
In this case, you can add either `#define EXTRA_LONG_COMBOS` or `#define EXTRA_EXTRA_LONG_COMBOS` in your `config.h` file.
You may also be able to enable action keys by defining `COMBO_ALLOW_ACTION_KEYS`.
@ -16,35 +16,35 @@ To use Command, hold down the key combination defined by the `IS_COMMAND()` macr
If you would like to change the key assignments for Command, `#define` these in your `config.h` at either the keyboard or keymap level. All keycode assignments here must omit the `KC_` prefix.
The A an B lines of the encoders should be wired directly to the MCU, and the C/common lines should be wired to ground.
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.