* Basic qmk lint command
* check for keymap readme
* change the workflow from qmk info to qmk lint
* add a strict mode
* parsing -> parse
* document qmk lint
* small info logging cleanup
* Apply suggestions from code review
Co-authored-by: Ryan <fauxpark@gmail.com>
* honor --strict in more places
* change the job name to lint
Co-authored-by: Ryan <fauxpark@gmail.com>
* Minor Tweak
* Refactor spacebar defines.
* Add TMO50 layout
* Rename Atreus keymap.
* Refactor Atreus for readability.
* Eliminate tapdance quote and tweak maltroff.
* Factor out tapdance.
* Add some fancy combos and keys.
* Remove combos for now because they cause pain.
* WIP visualizer
* Alternate method for reset
* WIP2 visualizer
* Layer text tweak.
* Add made-up layout Nortron as a combination of Norman and Maltron.
* Add backspace.
* Add Talljoe keymap to Prime E.
* Fix double-colon so it doesn't press enter if shift is released early.
* Use new make command.
* Bring some modern standards into code and add licenses.
* Remove QMK_KEYBOARD_CONFIG_H and fixup QMK_KEYBOARD_H.
* Move from `biton32` to `get_highest_layer`.
* Remove PREVENT_STUCK_MODIFIERS
* Update keyboards/thevankeyboards/minivan/keymaps/talljoe-minivan/config.h
Add Eco keymap, factor Crkbd keymap to community layout, other minor tweaks
* Remove outdated Crkbd Ctrl key positioning info
* Add Left Alt key to Lily58 keymap
* Lily58 no longer overrides default TAPPING_TERM
* Refactor Crkbd keymap to use new community layout
* Fix underglow animations for Crkbd w/ Split Common
* Add initial Eco keymap
* Update outdated reference to Crkbd layout
* Add keymap links to userspace readme
* Add copyright notices to files changed in this PR
* add dp60 indicator mode
* update according to #7720
* added license header and move the ws2812 codes to a seperate c file
* fixed conflict with master
* `qmk info`: Add `--ascii` flag
* Fix typo
* Force ASCII for Windows/MSYS2
* Make it gooder
* Remove redundant windows check
* ...And this too
* Make pytest work on Windows
* nullbitsco/nibble: rework LAYOUT_all
... and update via keymap accordingly.
* compress info.json LAYOUT_all tree
Only changes the white space.
* rebuild info.json LAYOUT_all tree
Note: this commit makes the visual layout the ANSI layout with a split left Shift, instead of being the same as the ISO layout.
* unify code styles
Make logically-unchanged code blocks similar in appearance to logically-changed blocks.
* correct LAYOUT_iso key sequence
Move ISO Enter's object to its proper place.
* exent VIA support
* minor cleanups
* Update keyboards/exent/config.h
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/exent/config.h
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
* Added ad/freebird60.
* Moved freebird60 keyboard. Added VIA keymap.
* Updated `keebsforall/freebird60` README to include image.
* Update keyboards/keebsforall/freebird60/readme.md
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/keebsforall/freebird60/readme.md
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
* add 65_ansi_split_bs to default community layouts
* Update layouts/default/65_ansi_split_bs/layout.json
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
* Adding Evan Travers' Keyboardio Atreus branch.
Initial commit of my KeyboardIO Atreus layout.
This is a direct copy of my default Atreus layout, with blank spaces
for the two additional keys.
* Added MACLOCK macro to keymap.c
* Updates to Keyboardio Atreus keymap and readme.
* Adding arrows to bottom row of RAISE and LOWER layers
* bringing the rest of the master branch to my working branch.
* Changes to my KeyboardIO Atreus keymap & readme
* Changes to keymap.
* Adding Evan Travers' Keyboardio Atreus branch.
Initial commit of my KeyboardIO Atreus layout.
This is a direct copy of my default Atreus layout, with blank spaces
for the two additional keys.
* Added MACLOCK macro to keymap.c
* Updates to Keyboardio Atreus keymap and readme.
* Adding arrows to bottom row of RAISE and LOWER layers
* bringing the rest of the master branch to my working branch.
* Changes to my KeyboardIO Atreus keymap & readme
* Changes to keymap.
* Added GPL2+ compatible license header.
Co-authored-by: Ian Sterling <503326@MC02YT9K9LVCF.tld>
* Firmware initial commit, still has a few bugs - mainly rotary encoders do not work and needs cleaning up
* Fixed the volume control issue and limited the RGB brightness (can be really bright), added the ability to switch LED mode with left encoder click, and added via support (untested)
* Remove define that should go in config.h
* Removed define that should be in config.h
* Removed LTO_ENABLE as suggested - has issues on ARM
Co-authored-by: Drashna Jaelre <drashna@live.com>
* Added the correct define for OLED screen size
* Applied suggested change to remove description
Co-authored-by: Ryan <fauxpark@gmail.com>
* Made suggested change to remove backslashes
Co-authored-by: Ryan <fauxpark@gmail.com>
* Suggested change made to rgblight
Co-authored-by: Ryan <fauxpark@gmail.com>
* Suggested change made to rgblight
Co-authored-by: Ryan <fauxpark@gmail.com>
* Suggested change made to remove backslashes
Co-authored-by: Ryan <fauxpark@gmail.com>
* Suggested change made to rgblight
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/rocketboard_16/rocketboard_16.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Added suggested comments
Co-authored-by: Ryan <fauxpark@gmail.com>
* Made suggested changes to rules file
Co-authored-by: Ryan <fauxpark@gmail.com>
* Added suggested change to rgblight
Co-authored-by: Ryan <fauxpark@gmail.com>
* Added info.json for QMK configurator
* Update readme.md
* This change makes the firmware work... through magic... seriously, no idea - but it works!
* Updated dimming step, OLED functionality, and rules for formatting
- Changed the dimming step size for smoother dimming with the reduced range
- Added lots of OLED functionality - QMK logo and title at top, num/caps/scroll lock status, and backlight brightness level
- Updated the rules.mk file to comply more closely with the formatting guidelines
* Fixed tab issues
Co-authored-by: Ryan <fauxpark@gmail.com>
* Updated to use bootmagic lite with the key that usually turns rgb on/off
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
* Add Z70Ultra which is a Hotsawp RGB 65% keyboard
* Update keyboards/melgeek/z70ultra/z70ultra.h
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/melgeek/z70ultra/keymaps/default/keymap.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/melgeek/z70ultra/keymaps/via/keymap.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/melgeek/z70ultra/z70ultra.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/melgeek/z70ultra/readme.md
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/melgeek/z70ultra/rev1/rules.mk
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/melgeek/z70ultra/z70ultra.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/melgeek/z70ultra/z70ultra.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/melgeek/z70ultra/z70ultra.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/melgeek/z70ultra/z70ultra.h
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update readme.md
* Update info.json
update the name of layout to consistent the keyboard.
* Update keyboards/melgeek/z70ultra/z70ultra.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/melgeek/z70ultra/z70ultra.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/melgeek/z70ultra/info.json
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/melgeek/z70ultra/keymaps/default/keymap.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/melgeek/z70ultra/keymaps/via/keymap.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Add Z70Ultra
* Support Z70Ultra
[Modified] info.json to support two different layouts
[Add] rules.mk to support default folder
* Update keyboards/melgeek/z70ultra/rev1/rules.mk
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/melgeek/z70ultra/config.h
Co-authored-by: Ryan <fauxpark@gmail.com>
* remove excessive arguments from LAYOUT_split_space
* Update keyboards/melgeek/z70ultra/info.json
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/melgeek/z70ultra/info.json
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/melgeek/z70ultra/keymaps/default/keymap.c
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/melgeek/z70ultra/z70ultra.h
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/melgeek/z70ultra/z70ultra.h
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/melgeek/z70ultra/keymaps/via/keymap.c
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/melgeek/z70ultra/keymaps/default/keymap.c
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/melgeek/z70ultra/rev1/rules.mk
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/melgeek/z70ultra/keymaps/via/keymap.c
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/melgeek/z70ultra/keymaps/default/keymap.c
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/melgeek/z70ultra/keymaps/via/keymap.c
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/melgeek/z70ultra/keymaps/via/keymap.c
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Use macro replace with the literal for CS & SW
* Update keyboards/melgeek/z70ultra/z70ultra.c
Co-authored-by: Drashna Jaelre <drashna@live.com>
* [Keyboard] Support MJ61 which is a 60% ANSI STD Hotswap RGB keyboard
* Update keyboards/melgeek/mj61/mj61.c
Co-authored-by: Drashna Jaelre <drashna@live.com>
* Update keyboards/melgeek/mj61/mj61.c
Co-authored-by: Drashna Jaelre <drashna@live.com>
* [Keyboard] MJ61 Add license header for files and the link for readme
* Update keyboards/melgeek/mj61/readme.md
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/melgeek/mj61/rev1/config.h
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/melgeek/mj61/rev1/rules.mk
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/melgeek/mj61/mj61.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/melgeek/mj61/mj61.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Add GPL for files
* Update keymaps/default/keymap.c
* Update keymaps/via/keymap.c
* Update keyboards/melgeek/z70ultra/z70ultra.c
Co-authored-by: Drashna Jaelre <drashna@live.com>
* Update keyboards/melgeek/z70ultra/z70ultra.c
Co-authored-by: Drashna Jaelre <drashna@live.com>
* [Fixed] remove this code cause it's useless.
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
KiCad is a cross platform, free and open source electronics design
automation (EDA) suite. It was used to create ANAVI Macro Pad 8.
This keymap contains 2 layers for KiCad hotkeys and a 3rd layer
for controlling the backlighting and the underlighting.
- Layer for KiCad Schematic hotkeys:
m - to move selected component
r - to rotate selected component
w - to wire components
v - to edit component value
F1 - zoom in
F2 - zoom out
F4 - zoom center
- Layer for KiCad PCB layout hotkets:
m - to move selected component
r - to rotate selected component
x - to route a new track
v - to add a via
F1 - zoom in
F2 - zoom out
F4 - zoom center
Signed-off-by: Leon Anavi <leon@anavi.org>
OBS keymap for ANAVI Macro Pad 8 with the following shortcuts:
- Shortcuts useful for switching scenes on the 1st row:
Hold Left Control, Shift, Alt and GUI and press F9
Hold Left Control, Shift, Alt and GUI and press F10
Hold Left Control, Shift, Alt and GUI and press F11
Hold Left Control, Shift, Alt and GUI and press F12
- Center to screen: Ctrl+D
- Fit to screen: Ctrl+F
- Move source to top of sources list: Ctrl+Home
Signed-off-by: Leon Anavi <leon@anavi.org>
* Added basic via keymap
* Added via keymaps and changed config Product and Vendor ID
* Update keyboards/exclusive/e65/keymaps/via/keymap.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/exclusive/e65/config.h
Co-authored-by: Ryan <fauxpark@gmail.com>
* Refactored via/keymap.c to use LAYOUT_all
* Refactored e65.h to remove nested matrix layouts
* Previous commit missed LAYOUT_65_ansi_blocker. Fixed
Co-authored-by: Ryan <fauxpark@gmail.com>
* docs(massdrop alt): update link to loader releases
Update the link to the Massdrop Loader releases page to point to the releases index rather than release 0.0.1
* docs(massdrop ctrl): update link to loader releases
* KBDfans Bella Soldered: add readme
* add image to readme
* tidy-up Configurator layout data
Key positioning was not true to the assembled board.
* reduce readme redundancy
* Add files via upload
* Add files via upload
* Add files via upload
* Update config.h
* Update rules.mk
* Update config.h
* Update config.h
* Update config.h
* Update config.h
* Add files via upload
* Removing duplicate files
* Resolve VID and PID collisions as requested
Taken the 0xFEED for vendor ID as suggested in vendor documentation and an available PID
* add a GPL2+ compatible license header as requested
Added the GPL2+ header to keymap.c file
* Update keyboards/genone/eclipse_65/config.h
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/genone/eclipse_65/readme.md
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/genone/eclipse_65/eclipse_65.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/genone/eclipse_65/rules.mk
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/genone/eclipse_65/keymaps/default/keymap.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/genone/eclipse_65/keymaps/default/keymap.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/genone/eclipse_65/eclipse_65.h
Co-authored-by: Ryan <fauxpark@gmail.com>
* Corrected items on rules.mk as suggested
Thanks for the comment
I removed suggested items, corrected some spacing issues, and added suggested items.
* Deleted genone_main.c file
Thanks for the comment.
Deleted genone_main.c file as requested
Co-authored-by: Ryan <fauxpark@gmail.com>
* my alice community layout
* add LAYOUT_alice support to projectkb/alice/rev2
* add addition BSPC key to default layout
* add define to support LAYOUT_default
The `KEYBOARD_SHARED_EP=yes` option was breaking the VIA support,
because the raw HID interface number in this case was 0 instead of 1,
and the VIA app depends on the exact interface number for raw HID.
Change the interface ordering to put the shared interface before the raw
HID interface if `KEYBOARD_SHARED_EP` is enabled, so that the raw HID
interface can keep its number.
* add new qmk generate-api command, to generate a complete set of API data.
* Generate api data and push it to the keyboard repo
* fix typo
* Apply suggestions from code review
Co-authored-by: Joel Challis <git@zvecr.com>
* fixup api workflow
* remove file-changes-action
* use a more mainstream github action
* fix yaml error
* Apply suggestions from code review
Co-authored-by: Erovia <Erovia@users.noreply.github.com>
* more uniform date handling
* make flake8 happy
* Update lib/python/qmk/decorators.py
Co-authored-by: Erovia <Erovia@users.noreply.github.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Erovia <Erovia@users.noreply.github.com>
OBS keymap for ANAVI Macro Pad 8 with the following shortcuts:
- Shortcuts useful for switching scenes on the 1st row:
Hold Left Control, Shift, Alt and GUI and press F9
Hold Left Control, Shift, Alt and GUI and press F10
Hold Left Control, Shift, Alt and GUI and press F11
Hold Left Control, Shift, Alt and GUI and press F12
- Center to screen: Ctrl+D
- Fit to screen: Ctrl+F
- Move source to top of sources list: Ctrl+Home
Signed-off-by: Leon Anavi <leon@anavi.org>
* Add pteron44
* Apply suggestions from code review
Co-authored-by: Ryan <fauxpark@gmail.com>
* Apply suggestions from code review part 2
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Zoom keymap for ANAVI Macro Pad 8 with the following shortcuts:
* Alt+V: Start/stop video
* Alt+A: Mute/unmute my audio
* Alt+M: Mute/unmute audio for everyone except the host
* Alt+S: Start/stop screen sharing
* Alt+R: Start/stop local recording
* Alt+P: Pause/resume recording
* Alt+C: Start/stop cloud recording
* Switch to 2nd layout to control backlighting and underlighting
Signed-off-by: Leon Anavi <leon@anavi.org>
* Add NIBBLE keyboard
* Update VID for VIA compatibility
* Add QMK PR feedback
* Update matrix_init_remote_kb()
* Update with requested changes
Clean up config, makefile rules, and keymap files
* Update with changes for unified ANSI/ISO layout
* Add NO_USB_STARTUP_CHECK note in readme
* Add license info, update with PR changes
-Refactor encoder, via_extras code
-Refactor VIA specific code to live in keymap folder
-Remove non-inclusive naming in remote keyboard.c/h
-Add documentation to remote_keyboard.c
-Add compiler check for vusb_detect for non-avr micros
* Fix print formatter in encoder handler
Co-authored-by: Nick Brassel <nick@tzarc.org>
* Small PR updates
-Remove unneded matrix code from nibble.c
-Clean up include code in nibble_encoder.h
* Update Big LED headerfile
-Declare Big LED functions in header file (derp)
* Update keyboards/nullbitsco/nibble/nibble.c
-Update with drashna's suggested CAPS LED code change
Co-authored-by: Drashna Jaelre <drashna@live.com>
* Update keyboards/nullbitsco/nibble/rules.mk
-Update with drasha's suggested makefile formatting changes
Co-authored-by: Drashna Jaelre <drashna@live.com>
* Fix caps_lock typo
Co-authored-by: Nick Brassel <nick@tzarc.org>
Co-authored-by: Drashna Jaelre <drashna@live.com>
* Initial userspace
* DZ60 map
* Quefrency map
* Sinc map
* Set up MAKE key for all personal maps
* Light userspace cleanup
* Formatting and comments zzz...
* Licensing and userspace README
* Swap: EXTRAFLAGS -> LTO_ENABLE in userspace rules.mk
Co-authored-by: Ryan <fauxpark@gmail.com>
* Improve KC_MAKE: KC_ENT -> \n
Co-authored-by: Ryan <fauxpark@gmail.com>
* Swap left grouping on _FN for pairs
* Add '?' -> backslash on _FN
* Remove commented code
* Organize lines in rules.mk
* Add left hand scroll keys
* Move configs to config.h
* License blitz
Co-authored-by: Ryan <fauxpark@gmail.com>
* initial port of keymap to latest qmk version
* forgot to add space cadet shift, fixed
* corrected colors and added color macros
* added custom rgb matrix effects
* enabled extrakey
* updated readme
* Added GPL3 License Headers
* Added images to readme
* clang-format
* Apply suggestions from code review
Co-authored-by: Ryan <fauxpark@gmail.com>
* renamed README.md to readme.md
Co-authored-by: Ryan <fauxpark@gmail.com>
* Add IDOBAO ID87.
* Layout changes.
* Updated rules.mk
* Implemented capslock led.
* Updated readme to new version.
* Fixed the info.info.json for the new layout.
* Updated RGB number config.h.
* Update rules.mk to try and line up nicely.
* Fix via keymap.keymap.c
* Fix all the auto-created labels.
* Update keymaps again.
* Add additional RGB commands.
* Update keyboards/id87/info.json
Format update.
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/id87/readme.md
Remove quotations.
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/id87/readme.md
Change Flash to Flashing
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/id87/rules.mk
Alignment Fix
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/id87/info.json
Remove qmk_converter link meta.
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Adding my keymap
* Add a starter keymap for kyria
* Updated keymap
* Add auto shift, tapping modifications and gravatar oled bitmap
* Add flashing helper scripts
* Updates to my keymap
* Enable raw hid and rgblight sleep
* Cleanup
* Updated keymap and board features
* Remove some RGB modes for space
* Start working on a miryoku-like keymap.
This adds homerow mods to my keymap on the base layer and adds
a game layer that doesnt have them
* more work on keymaps
* Fine tuning home row mods
* update keymap
* Keymap update
* add split transport
* keymap
* cherry pick from develop
* merge develop
* fix
* keymap iterations
* Refactoring
* continued refactoring
* messing with rgb
* update layer coloring
* continued refactoring
* more features
* modifier color
* Move stuff to userspace
* Moving stuff out to userspace
* refactoring into userspace
* More refactoring
* Fixing some errors in the keymap and changing the oled output
* Sync zen1 keymap to my userspace config
* Update copyright notices and revert transport.c to master
* Swap tab and esc
* Remove a file accidentally created
* Use LTO_ENABLE to turn on Link_Time_Optimization
* Drop modtap thumbs on game layout
* Update game keymap
* More iteration on the game keymap
* Add oled indications of kitty and i3 mod
* Promote colemak to default
* Update tapping term for modtap keys
* Add per key tapping term
* Use left modifiers on right side
* [Keyboard] Support MJ61 which is a 60% ANSI STD Hotswap RGB keyboard
* Update keyboards/melgeek/mj61/mj61.c
* Update keyboards/melgeek/mj61/mj61.c
* [Keyboard] MJ61 Add license header for files and the link for readme
* Update keyboards/melgeek/mj61/readme.md
* Update keyboards/melgeek/mj61/rev1/config.h
* Update keyboards/melgeek/mj61/rev1/rules.mk
* Update keyboards/melgeek/mj61/mj61.c
* Update keyboards/melgeek/mj61/mj61.c
* [Keyboard] Support MoJo75 which is a 75% Hotswap RGB keyboard
* Update melgeek/mojo75 vid and pid
Add melgeek/mojo75/rev1/rev1.c
* Update MelGeek mojo75 VIA layout
* Improve ANSI support and --no-color
* tweak when levelname gets stripped of ansi
* sync with latest milc
* make questions work with both milc versions
* pyformat
This makes it overall easier to package for downstream distributions
instead of keeping tabs with inline documentation.
Signed-off-by: Morten Linderud <morten@linderud.pw>
* Add my own keymap
* Layer 0: Workman
* Layer 1: RSTHD (my own take on it)
* Layer 2: Mouse
* Layer 3: Navigation
* Layer 4: Symbols right
* Layer 5: Symbols left
* Layer 6: Fn keys
* Layer 7: Numbers
* Layer 8: Vim and misceallaneaous accessible from any other layer
* Move the current code to a 0.1 folder in preparation for upcoming changes
Version 0.2 is currently being prototyped and uses an arm chip which
will need its own firmware.
There is also the Ferris sweep which uses a pro-micro compatible board
which will need its own directory.
* Move Ferris out of handwired and into the light
The keyboard is now well out of the prototype phase as tens of them have
been produced and acquired by various people.
With 0.2 coming out, adoption is going to increase again as the board
will be available for sale at some recognized vendors.
Now is probably a good time to recognize its status as more than a
prototype :)
* Add code for the Ferris Sweep (a.k.a cradio)
The Ferris Sweep is a creation of the talented @davidphilipbarr, a.k.a DPB.
It has the key layout of a Ferris and uses a pro-micro connected to the
switches via direct pins so that diodes are not needed and the soldering
is minimal.
With their blessing, I took the code for it from DPB's own repo:
https://github.com/davidphilipbarr/36keys/tree/master/qmk/cradio
and did some adaptations such as removing commented out code, enabling
EE_HANDS and mouse keys for consistency with my existing Ferris code.
* Fix indentation in rules.mk
* Fix indentation in sweep's config
* Remove unnecessary lines from sweep's rules.mk
* Remove unnecessary lines from sweep's rules.mk
* Rename 0.1 to 0_1
This avoids the dot looking like the separation between a filename and
its extension.
In the same commit, bring matrix.c to the 0_1 folder as this was needed
for the code to compile properly (matrix.c is referred to in the readme
under `0_1` and is specific to that revision of the firmware).
* Update copyright statements for Sweep
* add kabraxcis keymap
this is a user keymap for a member of my group-buy. this is the creation commit
* add voaraq keymap
this is a user keymap for a member of my group-buy
* update kabraxcis keymap
* add licenses
* basic keys working
* more stuff
* more stuff
* empty upper layers
* more stuff
* cleanup
* more stuff
* add the letter 'j'
* add '0' to layer 4
* implement umlauts and eszett with menu key as compose key
* add comment
* renamed layout
* change copyright notice
* add separate readme file
* Add Launchpad keymap
Note: RGB and Audio won't work when using B pins for audio
* Add support for rgb matrix on launchpad
* Update config for launchpag
* Disable wait on layer change
* Update config for ErgoDox EZ
* Fixup rgb light userspace code
* Move Corne layout to community layouts folder
* Update config for corne to support community layouts
* Add license header to files
* Minor cleanup of userspace config
* Update Pimironi Trackball code
* Increase debounce time on ergodox
* Fix keymap handling
* Enable wait for USB for moonlander
* Update/add license headers
* fix review issues
* added spooky keyboard t
o boardsouce folder
* restoring to clean start I think
* added back in my files for this keyboard
* Update keyboards/boardsource/holiday/spooky/config.h
* Update keyboards/boardsource/holiday/spooky/keymaps/rip_mx/keymap.c
* Update keyboards/boardsource/holiday/spooky/readme.md
* Update keyboards/boardsource/holiday/spooky/spooky.h
* updated all keymaps to support 2x3 ortho
* Apply suggestions from code review
* move drakon to jagdpietr directory
* Updates
Recommended changes implemented in this commit due to progress loss in last commit
* Update vusb
* Update keyboards/jagdpietr/drakon/drakon.c
* Add nordic keymap
Changes from default:
- Change button right of `LSHIFT` to `KC_NUBS`
- Add some more keys to the second layer.
* Add sleepmode functionality
Added a sleepmode, this turns of the rgb_matrix if no key was pressed for x minutes. Not default on, so you have to enable it by defining `SLEEPMODE_ENABLED`.
* Move all sleepmode config to config.h, rename keymap
- Move all configurations for sleepmode to keymap config.h
- rename keymap to include reference to it having sleepmode (suggestion from guy the discord-server)
- add copyright in config.h
* Update keyboards/bm60rgb_iso/keymaps/iso_nordic_sleepmode/config.h
* Update keyboards/bm60rgb_iso/keymaps/iso_nordic_sleepmode/keymap.c
* Update keyboards/bm60rgb_iso/keymaps/iso_nordic_sleepmode/keymap.c
* Update keyboards/bm60rgb_iso/keymaps/iso_nordic_sleepmode/keymap.c
* Update keyboards/bm60rgb_iso/keymaps/iso_nordic_sleepmode/keymap.c
* Update keyboards/bm60rgb_iso/keymaps/iso_nordic_sleepmode/keymap.c
* [Keyboard] Support MJ64 which is a 60% Hotswap RGB keyboard with arrows
and the size of left shift is 2.25U
* Update keyboards/melgeek/mj64/mj64.h
* Update keyboards/melgeek/mj64/keymaps/default/keymap.c
* Update keyboards/melgeek/mj64/keymaps/via/keymap.c
* Update keyboards/melgeek/mj64/keymaps/via/keymap.c
* Update keyboards/melgeek/mj64/keymaps/default/keymap.c
* Update keyboards/melgeek/mj64/keymaps/via/keymap.c
* Update keyboards/melgeek/mj64/rev2/rules.mk
* Update keyboards/melgeek/mj64/rev1/rules.mk
* Update keyboards/melgeek/mj64/keymaps/via/keymap.c
* Update keyboards/melgeek/mj64/info.json
* Update keyboards/melgeek/mj64/info.json
* Update keyboards/melgeek/mj64/rev1/config.h
* Update keyboards/melgeek/mj64/rev2/config.h
* Update the VID and PID in mj64/config.h
add the rev1/rev1.c
add the rev2/rev2.c
* [Keyboard] GH60 v1.3 Support
* clean up info.json
Update key sizes and positioning.
* add readme
* add image to readme
* fix up info.json LAYOUT_all
* add LAYOUT_60_ansi
I'm guessing at this based on a photo of the PCB. Chances are high that this isn't fully functional.
* add matrix block comment to v1p3.h
* add default_ansi keymap
* add keymap readme files
* fix LAYOUT_60_ansi macro
* enable 60_ansi Community Layout support
* add layouts for 60_ansi_arrow
Add LAYOUT_60_ansi_arrow and LAYOUT_60_ansi_arrow_split_bs macros. (The user helping me test runs the split Backspace variant.)
* add Tsangan, HHKB, and 64_ansi layout macros
* add factory keymaps and layout info
* update copyright headers
I mean... if someone's gotta "own" this code...
* fix broken factory_* keymaps
* Add Z70Ultra which is a Hotsawp RGB 65% keyboard
* Update keyboards/melgeek/z70ultra/z70ultra.h
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/melgeek/z70ultra/keymaps/default/keymap.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/melgeek/z70ultra/keymaps/via/keymap.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/melgeek/z70ultra/z70ultra.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/melgeek/z70ultra/readme.md
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/melgeek/z70ultra/rev1/rules.mk
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/melgeek/z70ultra/z70ultra.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/melgeek/z70ultra/z70ultra.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/melgeek/z70ultra/z70ultra.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/melgeek/z70ultra/z70ultra.h
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update readme.md
* Update info.json
update the name of layout to consistent the keyboard.
* Update keyboards/melgeek/z70ultra/z70ultra.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/melgeek/z70ultra/z70ultra.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/melgeek/z70ultra/info.json
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/melgeek/z70ultra/keymaps/default/keymap.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/melgeek/z70ultra/keymaps/via/keymap.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Add Z70Ultra
* Support Z70Ultra
[Modified] info.json to support two different layouts
[Add] rules.mk to support default folder
* Update keyboards/melgeek/z70ultra/rev1/rules.mk
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/melgeek/z70ultra/config.h
Co-authored-by: Ryan <fauxpark@gmail.com>
* remove excessive arguments from LAYOUT_split_space
* Update keyboards/melgeek/z70ultra/info.json
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/melgeek/z70ultra/info.json
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/melgeek/z70ultra/keymaps/default/keymap.c
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/melgeek/z70ultra/z70ultra.h
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/melgeek/z70ultra/z70ultra.h
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/melgeek/z70ultra/keymaps/via/keymap.c
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/melgeek/z70ultra/keymaps/default/keymap.c
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/melgeek/z70ultra/rev1/rules.mk
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/melgeek/z70ultra/keymaps/via/keymap.c
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/melgeek/z70ultra/keymaps/default/keymap.c
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/melgeek/z70ultra/keymaps/via/keymap.c
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/melgeek/z70ultra/keymaps/via/keymap.c
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Use macro replace with the literal for CS & SW
* Update keyboards/melgeek/z70ultra/z70ultra.c
Co-authored-by: Drashna Jaelre <drashna@live.com>
* [Keyboard] Support MJ61 which is a 60% ANSI STD Hotswap RGB keyboard
* Update keyboards/melgeek/mj61/mj61.c
Co-authored-by: Drashna Jaelre <drashna@live.com>
* Update keyboards/melgeek/mj61/mj61.c
Co-authored-by: Drashna Jaelre <drashna@live.com>
* [Keyboard] MJ61 Add license header for files and the link for readme
* Update keyboards/melgeek/mj61/readme.md
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/melgeek/mj61/rev1/config.h
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/melgeek/mj61/rev1/rules.mk
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/melgeek/mj61/mj61.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/melgeek/mj61/mj61.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Add GPL for files
* Update keymaps/default/keymap.c
* Update keymaps/via/keymap.c
* Update keyboards/melgeek/z70ultra/z70ultra.c
Co-authored-by: Drashna Jaelre <drashna@live.com>
* Update keyboards/melgeek/z70ultra/z70ultra.c
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
* Added LAYOUT_alice
* Added fauxpark's suggestions as well as updating keymap graphic
* Added file header and used noroadleft's fix to the info.json for fast input mode
* Add VIA code to ergoTravel, VendorId changed to allow via
* Update LTO_ENABLE for via
* Accept comments from the QMK PR discussion
* Restore original rules.mk from qmk master, update via rules to remove redundant bootmagic
* rules update
* find and use unique VID without qmk. Used 0x4A50, did not find clash
* Removed unused via layer
* Reset hard to last clean commit, redo changes for Hex Translation and Enum
* on behalf of VashtaNerada commiting his code to get caps lock led working on the soldered E8d E8.5
* Update keyboards/exclusive/e85/soldered/soldered.c
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Joel Challis <git@zvecr.com>
* Add VIA keymap for EVE Meteor.
* Remove bootmagic flag and add vendor/product IDs.
* Update keyboards/eve/meteor/info.json
Co-authored-by: Ryan <fauxpark@gmail.com>
* Increment EVE Vendor ID to be unique.
* Change product IDs.
Make the EVE Meteor IDs both unique and somewhat logical based on the product name.
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
* Add VID/PIDs to ErgoDox EZ
* Add VID/PIDs for Planck EZ and Glow revision
* Make names consistent
* fix typo in docs
* Move LED config back, for maximum compatibility
* Add revisions for ErgoDox EZ boards
* Fix embarassing typo
* Typooooo
Co-authored-by: Nick Brassel <nick@tzarc.org>
* Update Licensing info
* Update Moonlander default keymap to match Oryx's default
* Fix formatting based on suggestions
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Make indicator LEDs more configurable
* Update default keymap
* Handle older eeprom settings
Co-authored-by: Nick Brassel <nick@tzarc.org>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Initial support for the Keyboardio Atreus
Many thanks to noroadsleft for reviews & suggestions.
* Add QMK Configurator layout support
* Update the fn layer of the Keyboardio Atreus to the new layout.
Previously this was using the Classic Atreus layout.
* Implement noroadleft's changes from #8492
* Follow Erovia's recommendations
qmk/qmk_firmware#8492
* Correct braces
* Change correct rules.mk
* Remove comments
* Fix BOOTMAGIC_ENABLE
I had edited the wrong file earlier.
* Remove comment
* Updates rules.mk
Thank you noroadsleft.
Co-authored-by: Gergely Nagy <algernon@keyboard.io>
Co-authored-by: Phil Hagelberg <phil@hagelb.org>
* Move existing files out the way
* Convert to community layouts
* Add smk65/revf support
* Disable stuff by default
* Update IDs for via
* Align LAYOUT macros for community layouts
* Align LAYOUT macros for community layouts - Fix configurator ordering
* Update via keymap
* remove stub _kb function
* Apply suggestions from code review
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
* Add niu mini dye sub keymap
* Fix spacing
* Fix for blank spacing on layout
* Remove unused code
Co-authored-by: Joel Challis <git@zvecr.com>
* Remove audio and console settings
Co-authored-by: Joel Challis <git@zvecr.com>
* Updates rules and readme
* Add license GPL2 to keymap
Co-authored-by: Joel Challis <git@zvecr.com>
* Clean LeftyNumpad code
* Fix typo in recently renamed file
* Fix issues with keymap layout
* Initial PR Feedback fixes
* Update keyboards/handwired/leftynumpad/config.h
Co-authored-by: Joel Challis <git@zvecr.com>
* Update keyboards/handwired/leftynumpad/config.h
Co-authored-by: Joel Challis <git@zvecr.com>
* Apply suggestions from code review
Co-authored-by: Joel Challis <git@zvecr.com>
* Apply suggestions from code review
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
* Add fixes based on PR feedback
* Update keyboards/handwired/leftynumpad/readme.md
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
* add maja capslock indicator
add maja capslock indicator
* Update keyboards/kbdfans/maja/maja.c
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
* Basic keymap parsing finally works
* Add 'keymap.json' creation to the qmk.keymap module
* Add tests and fix formatting
* Fix/exclude flake8 errors
* Convert keymap.c to valid keymap.json
* Fix some errors
* Add tests
* Finalize keymap.json creation, add json template
* Add docs
* Move pygments to the standard requirements
* Add support for nameless layers, fix tests
* Fix things after rebase
* Add missing 'keymap' value.
* Fix missing layer numbers from advanced keycodes
Buckwich noticed that if the advanced keycode / layer toggling key
contains a number, it goes missing.
Now we properly handle them.
Thx for noticing!
* Apply suggestions from code review
* fixup tests
Co-authored-by: Zach White <skullydazed@drpepper.org>
Co-authored-by: skullY <skullydazed@gmail.com>
* Improve LAYOUT macro searching
* Apply suggestions from code review
Co-authored-by: Zach White <skullydazed@users.noreply.github.com>
* Adjust signature
* Try to copy the makefile's handling of DEFAULT_FOLDER
* Move it further up, into `info_json()`
* Move it even further up so that keyboard_folder is correct
* Update lib/python/qmk/info.py
Co-authored-by: Zach White <skullydazed@drpepper.org>
* Update lib/python/qmk/info.py
Co-authored-by: Zach White <skullydazed@drpepper.org>
Co-authored-by: Zach White <skullydazed@users.noreply.github.com>
Co-authored-by: Zach White <skullydazed@drpepper.org>
* Move my custom functions and keymaps to userspace to be able to add the STM32F411 variant of my keyboard with mostly the same functionality
* Move keymaps to community layouts
* Remove keymaps from userspace readme.md
Co-authored-by: Janos Daniel Reibl <janos.daniel.reibl@protonmail.com>
* add support for ymd75 rev3
* Update keyboards/ymd75/rev3/rules.mk
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/ymd75/rev3/rules.mk
Co-authored-by: Ryan <fauxpark@gmail.com>
* remove DESCRIPTION
* only apply offset for rev3
Co-authored-by: Ryan <fauxpark@gmail.com>
* Created folder structure and blank files
* Update the yugo_m initial blank files
* Add yugo_m default keymap
* Update yugo_m info.json
* Fix yugo_m keymap.c
* keymap.c update
* Changed subfolder name
* File names
* Fixed lock LEDs problem
* Returned old subfolder name; LEDs fix
* Activated anti-ghosting feature in config.h
* Update readme.md
* Changed LAYOUT to LAYOUT_all
* Updated keymap.c
* corrected LAYOUT to LAYOUT_all in info.json
* Rewritten readme.md according to the template
* Removed backslashes from keymap.c
* Fixed readme.md
* Fixed readme.md again
* Tidying up readme.md
* Tidying up comments and readme.md
* Removed a line from rules.mk
* Update keyboards/yugo_m/model_m_101/model_m_101.h
Co-authored-by: Joel Challis <git@zvecr.com>
* Removed chconf, halconf, mcuconf
* Updated LED control
* Update keyboards/yugo_m/model_m_101/rules.mk
Co-authored-by: Joel Challis <git@zvecr.com>
* Update keyboards/yugo_m/model_m_101/config.h
Co-authored-by: Joel Challis <git@zvecr.com>
* Update keyboards/yugo_m/model_m_101/config.h
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/yugo_m/model_m_101/config.h
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/yugo_m/model_m_101/model_m_101.c
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Update keyboards/yugo_m/readme.md
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Updated readme.md, there was an outdated info
* Update keyboards/yugo_m/model_m_101/keymaps/default/keymap.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/yugo_m/model_m_101/keymaps/default/keymap.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/yugo_m/model_m_101/model_m_101.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/yugo_m/model_m_101/model_m_101.c
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Nidzo Tomic <tomicn8@hotmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
* First pass at manuform layout.
* Updates from actual usage on my board. Fixed a couple of bugs, added a stormlight quote randomizer.
* Use a 32-bit timer that can actually hit 5 minutes.
* Some updates after a day of usage:
* Turn off WPM. It's too inaccurate and takes up a decent amount of space that can be devoted to quotes.
* Turn off the OLEDs after 5 minutes
* Move the keys around a bit.
* Add many more quotes.
* Adjust the quotes to make room for missing and misswritten WoT quote. Adjusted the keymap slightly. Adjust the mods display to include one_shots.
* Revert osm on lgui as it makes start menu search impossible to use.
* Use LTO_ENABLE flag.
* License all of my (333fred's) keymaps as MIT.
* Update users/333fred/rgb.c
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
* Fix dirtying in oled_write_pixel()
Set the dirty bit for the block only if oled_write_pixel() actually
changed the buffer state. Without this check oled_write_pixel() could
not be used inside the oled_task_user() code using the “redraw always”
style, because the blocks touched by oled_write_pixel() would always
appear dirty, and oled_render() would not proceed beyond the first such
dirty block.
* Fix oled_write_pixel() with 90/270 degree rotation
Use oled_rotation_width instead of OLED_DISPLAY_WIDTH, so that a rotated
display would be handled correctly.
* Fix compilation with custom OLED_BLOCK_COUNT and OLED_BLOCK_SIZE
Some OLED sizes (e.g., 64×48) may require a nonstandard value of
OLED_BLOCK_COUNT. The documentation says that this value may be
redefined in config.h, but actually trying to redefine it caused a
compile error, because the macro was redefined in oled_driver.c.
Make the OLED_BLOCK_COUNT definition in oled_driver.c respect any
user override, and do the same for OLED_BLOCK_SIZE just in case.
* Fix handling of out-of-range bits in oled_dirty
If a custom OLED_BLOCK_COUNT value is specified, some bits in oled_dirty
may not correspond to existing blocks; however, if those bits are set
somewhere (e.g., by code with sets oled_dirty to ~0 or even -1),
oled_render() would try to handle them and could access memory beyond
oled_buffer and perform hardware operations with out of range values.
Prevent this by masking off unused bits in oled_render(), and also avoid
setting those bits in other functions.
* Fix potentially wrong dirtying in oled_write_char()
oled_write_char() tried to mark the position just beyond the written
character as dirty; use (OLED_FONT_WIDTH - 1) to dirty the last position
still belonging to the character instead.
* Fix `#define OLED_BLOCK_TYPE uint32_t` on AVR
Using uint32_t as OLED_BLOCK_TYPE did not work properly on AVR, because
some bit shifts were performed using 16-bit int. Add explicit casts to
OLED_BLOCK_TYPE to those shifts.
* Fix issue with data transfer of CS1_SW7 to CS18_SW7.
* Fix issue with handling of scaling register buffer's dirty flag.
* Remove unused extern declaration.
* Compaction of struct is31_led utilizing bit fields.
* Update reference_info_json.md
key_count is now an optional field because it is better to get the keycount by counting the elements in the layout array.
* Updated Japanese documentation as well
* Initializing Boardwalk layout
* rules.mk newline
* config.h newline
* qwerty num toggle -> tap-toggle
* errant K, and _LOWER momentary toggles
* Lack of autosave sucks
* Converting to HHKB layout
* TT(_NUM) added to num layer
* Final updates for Boardwalk initialization
* Final refinements
* newline
* Removal of extra includes
* Update keyboards/boardwalk/keymaps/niclake/config.h
#pragma once
* Removing comment block from rules
* Updates to my layout
* WIP working on new keymap
* tweaking keymap
* updated keymap
* cleaned up a little bit
* New preonic keymap
* my preonic keymap
* added mac layout
* preonic map update
* cleaning up old repo
* cleaning up to match upstream
* more cleanup
* removing old keymaps
* Added BM60 Poker
* Apply suggestions from code review
* Added license
* updated license
* updated license
* Fixed remaining licenses and added layout to rules
* BM60RGB ISO: fix and extend default keymap
- correctly assigns the Non-US Backslash and Hash keys
- adds Function and Navigation keys
- use KC_GESC instead of KC_ESC to make Grave accent available
* Update layout macro
The layout is the ISO equivalent of QMK's `LAYOUT_60_ansi_arrow`.
* Add via configurator support
* Remove layers to fix via
* Re-add extra via layers since it seems to work now
* Replace tabs with spaces
* Update readme.md
* first pass at fixing the key labeling
* second pass of fixing key labeling
* third pass of this key naming
* another pass of changing key naming
* another pass
* another pass
* another pass
* renamed it all
* give a good vid and pid
* add via keymap
* add on to the comments
* update readme and comments
* one more small change
* Convert ErgoDox EZ to lite matrix
* Add initial config from Dactyl config
Based on ErinCall's work to generalize the mcp i/o expander matrix code
* formatting
* Fix number of pins
* Remove unused defines
* fixed keymap placement
- online configurator keys were in the wrong location and needed to be fixed
- fixed a key being to high on the y position
* Create rules.mk
* Create keymap.c
* Update rules.mk
added VIA support
* Changed wazowski via keymap to include skipped switch
* changed the vendor ID
* Update keyboards/keebzdotnet/wazowski/config.h
* Removed VIA enable from keyboard rules.mk
* Update keyboards/keebzdotnet/wazowski/rules.mk
* Fixed wazowski via keymap build errors
* Added multi-layer support for Wazowski via keymap
* Initial Commit for Ploopyco Trackball
This is a WIP at this point. Most of it compiles, but the SPI commands are non-functioning as they come from Arduino, so don't exist in LUFA
* Convert SPI commands from arduino to LUFA
But I have no idea if this is actually correct or not
* Update keyboard readme
* Clean up ploopyco trackball
* Update readme
* Update mouse key stuff
* last minutue cleanup
* Add caveat about scroll wheel
* Fixup to code
* Additional fixup
* Add movement multiplier
* Rename folders
* mid changes
* temp
* Got it working!!!!!
* Additional cleanup of code
* Make unused pin calls more compact
* Rotation info
* Add debouncing checks
* Make everything replaceable
* Add info.json
* Include ISP flashing info
* Better handling for user customization
* Reconfigure CPI stuff
* fix issues with debug printing
* Fix tiny scroll issue
* Add and update scroll code from ploopy mouse
* Update licensing
* Add PloopyCo Mouse
* Cleanup and layout stuff
* Move common files to main folder for reuse
* Increase polling rate
* Update image for mouse
* Apply changes from code review
* Add VIA support
* Consolidate udev rules into a single file
* Update rules in doctor.py
* Simplify doctor rule checking
* Fix errors
* Add TMK "FEED" VID to list of deprecated udev rules
* A comma would be nice
* Split rules back up into bootloaders
* Link to docs page in "missing" case
* Add Pololu VID
* Be more specific about Caterina devices, and add LilyPad PID
* Wording & formatting changes in Tapping Force Hold
The Permissive Hold and the Ignore Mod Tap Interrupt sections were also modified to remove the quotes
around "tapping".
* Removed all trailing whitespaces from tap hold doc
* "it's simply really:" → "it's simple really:"
* "This allows to keep the ability" → "This allows keeping the ability"
Used the gerund form of "to keep" in the Tapping Force Hold section of the Tap Hold docs.
Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>
Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>
* edit vid and pid
* add VIA keymap
* add my name to the readme
* Update keyboards/gray_studio/hb85/keymaps/via/config.h
* we have a third endpoint, no need to disable mousekeys
* Update keyboards/gray_studio/hb85/keymaps/via/keymap.c
* add license header
* Create keymap.c
* Add files via upload
* Added files for handwired 3d printed clueboard 660
* create via layout files
* added layout files for via
* updated product ID to fix id conflicts
* change product ID to fix ID conflicts.
* fixed capitalization error that was causing issues
* fixed capitalization issues.
* fix syntax errors
* Fixed syntax errors (stray punctuation)
* Compatibility fixes
* Compatibility fixes
* Compatibility fixes
* Compatibility fixes
* capitalization fixes
* Compatibility fixes
* Compatibility fixes
* Compatibility Fixes
* Compatibility fixes
* Compatibility fixes
* Compatibility changes
* upkeep, fixing typos
* Update keyboards/handwired/3dp660/config.h
Removed Description line
* Update keyboards/handwired/3dp660/rules.mk
correct bootloader
* Update keyboards/handwired/3dp660/3dp660.h
fix case sensitive typos
* Update keyboards/handwired/3dp660/keymaps/default/keymap.c
change tab indentation to space indentations.
* Update keyboards/handwired/3dp660/keymaps/via/keymap.c
change tab indentations to space indentations
* Delete 3dp660.json
This file was for VIA, and shouldn't be in this repo. I placed it here so I wouldn't misplace it in my filesystem. My apologies.
* Update info.json
change suggestions to other file said to lowercase "ansi", caused reference issues, changed all instances of "ANSI" to "ansi".
* Update keymap.c
change suggestions to other file said to lowercase "ansi", caused reference issues, changed all instances of "ANSI" to "ansi".
* Update keymap.c
more capitalization fixes
* Update keyboards/handwired/3dp660/readme.md
shortened imgur url
* Update keyboards/handwired/3dp660/rules.mk
remove extraneous comments
* Delete config.h
* Update keyboards/handwired/3dp660/rules.mk
* Update 3dp660.c
add license headers to all .c and .h files
* Update 3dp660.h
added license header to all .c and .h files.
* Update keymap.c
added license header to all .c and .h files.
* Update keymap.c
added license header to all .c and .h files.
* Update keyboards/handwired/3dp660/readme.md
Add maintainer URL
* Update keyboards/handwired/3dp660/keymaps/default/keymap.c
remove extraneous default keymap layers
* Update keyboards/handwired/3dp660/keymaps/default/rules.mk
* Update rules.mk
Moved LTO to keyboard level.
* Update rules.mk
Moved LTO to keyboard level.
* Delete rules.mk
Made obsolete by LTO move to keyboard level.
* Update keyboards/handwired/3dp660/rules.mk
capitalization errors.
* Apply suggestions from code review
Housekeeping, changing code for readability.
Adding my kbd67mkii keymap and some changes to kumo
Keymaps for kbdfans/kbd67/mkii_soldered and thevankeyboards/minivan
* Changes to minivan layout
* KBD67 keymap
* commiting my files
* add understanding_qmk.md translation
* update based on comment
* update based on comment
* update based on comment
* update based on comment
* update based on comment
* Squashing commits - adding preonic keymap
This adds a custom keymap, including numpad layer, emoji, and kamoji
key mappings.
* Removing unnecessary trailing backslash characters
* removing the unnecessary json keymap
* removing unnecessary trailing slashes from the default keymap
* switching to tap_code
* Apply suggestions from code review
This should enable a toggleable numpad
* adding license
* Stripping out FN keycodes in favor of a momentary layer
Fix configs to make the `handwired/onekey/blackpill_f401:backlight` and
`handwired/onekey/blackpill_f411:backlight` examples actually compile
and work:
- Use `PWMD5` instead of `PWMD2` for backlight, which matches the
default value of `BACKLIGHT_PAL_MODE` (AF02 for pin A0 is `TIM5_CH1`)
and does not conflict with the default value of `STM32_ST_USE_TIMER`.
- Enable `HAL_USE_PWM` in halconf.h and `STM32_PWM_USE_TIM5` in
mcuconf.h, so that `PWMD5` could be used.
* add miniMACRO5
add all nessecary files for the miniMACRO5
I have rewritten the readme, and changed the keymaps to be more simple. I have tested compiling, and everything works perfectly.
* update miniMACRO5 readme
add the make example into the readme file
* Update keyboards/minimacro5/config.h
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/minimacro5/keymaps/default/keymap.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/minimacro5/keymaps/media/keymap.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/minimacro5/keymaps/media/keymap.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/minimacro5/minimacro5.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/minimacro5/info.json
Co-authored-by: Ryan <fauxpark@gmail.com>
* Apply suggestions from code review
applied all suggestions.
Co-authored-by: Ryan <fauxpark@gmail.com>
* drashna suggestions - enum rather than define
committed enum update by drashna
Co-authored-by: Drashna Jaelre <drashna@live.com>
* update keymap.c
incorrect brackets
Co-authored-by: dezli <m@dez.li>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
* Adding preonic layout
* deleting unnecessary files
* Fixing spacing
* I need to not commit things while I'm not sober
* Update keyboards/preonic/keymaps/codecoffeecode/keymap.c
* Update keyboards/preonic/keymaps/codecoffeecode/keymap.c
* Update keyboards/preonic/keymaps/codecoffeecode/keymap.c
* Adding license header
The default keymaps don't make use of the global `keymap_config`
variable nor the `matrix_*_user()` functions. Therefore, remove them to
avoid confusion for future keymap authors.
* update "Hardware Availability"
* add a section of "How to build"
* update "Hardware Supported"
* add VIA keymaps
* add 2 layers to VIA keymaps
Co-authored-by: keyaki-namiki <28521374+keyaki-namiki@users.noreply.github.com>
* Add information to docs
- If layer z is not a higher layer than both x and y, the layer change code
does not function correctly.
* Update docs/ref_functions.md
* Update docs/ref_functions.md
* Update docs/ref_functions.md
There is no way to invoke the command feature while having just a single
physical key, and disabling that feature fixes build for keymaps like
`handwired/onekey/promicro:rgb` without resorting to LTO (the command
feature consumes more than 4900 bytes with avr-gcc 8.4.0).
* KBD67 MkII Soldered: Fix ISO blocker layout
Matrix data was wrong; KC_NUHS key did not work.
* KBD67 MkII Soldered: Add ISO blocker with Split Backspace layout
* Update config.h
adding vendor and product info so VIA will recognize it.
* Update keyboards/kingly_keys/romac_plus/config.h
thank you for this. commiting suggestion.
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
This directory contains machine parsable data about keyboards supported by QMK. The latest version is always available online at <https://keyboards.qmk.fm>.
Do not edit anything here by hand. It is generated with the `qmk generate-api` command.
# Adding Default Keymaps to QMK Configurator :id=adding-default-keymaps
This page covers how to add a default keymap for a keyboard to QMK Configurator.
## Technical Information :id=technical-information
QMK Configurator uses JSON as its native file format for keymaps. As much as possible, these should be kept such that they behave the same as running `make <keyboard>:default` from `qmk_firmware`.
Keymaps in this directory require four key-value pairs:
*`keyboard` (string)
* This is the name of the keyboard, the same as would be used when running a compile job through `make` (e.g. `make 1upkeyboards/1up60rgb:default`).
*`keymap` (string)
* Should be set to `default`.
*`layout` (string)
* This is the layout macro used by the default keymap.
*`layers` (array)
* The keymap itself. This key should contain one array per layer, which themselves should contain the keycodes that make up that layer.
Additionally, most keymaps contain a `commit` key. This key is not consumed by the API that back-stops QMK Configurator, but is used by Configurator's maintainers to tell which version of a keymap was used to create the JSON keymap in this repository. The value is the SHA of the last commit to modify a board's default `keymap.c` in the `qmk_firmware` repository. The SHA is found by checking out [the `master` branch of the `qmk/qmk_firmware` repository](https://github.com/qmk/qmk_firmware/tree/master/) and running `git log -1 --pretty=oneline -- keyboards/<keyboard>/keymaps/default/keymap.c` (use `keymap.json` if the keyboard in question has this file instead), which should return something similar to:
```shell
f14629ed1cd7c7ec9089604d64f29a99981558e8 Remove/migrate action_get_macro()s from default keymaps (#5625)
```
In this example, `f14629ed1cd7c7ec9089604d64f29a99981558e8` is the value that should be used for `commit`.
## Example :id=example
If one wished to add a default keymap for the H87a by Hineybush, one would run the `git log` command above against the H87a's default keymap in `qmk_firmware`:
The default keymap uses the `LAYOUT_all` macro, so that will be the value of the `layout` key. Compiled to a QMK Configurator JSON keymap, our resulting file should be:
The white space in the `layers` arrays have no effect on the functionality of the keymap, but are used to make these files easier for humans to read.
## Caveats :id=caveats
### Layers can only be referenced by number :id=layer-references
A common QMK convention is to name layers using a series of `#define`s, or an `enum` statement:
```c
enumlayer_names{
_BASE,
_MEDIA,
_FN
};
```
This works in C, but for Configurator, you *must* use the layer's numeric index –`MO(_FN)` would need to be `MO(2)` in the above example.
### No support for custom code of any kind :id=custom-code
Features that require adding functions to the keymap.c file, such as Tap Dance or Unicode, can not be compiled in Configurator **at all**. Even setting `TAP_DANCE_ENABLE = yes` in the `qmk_firmware` repository at the keyboard level will prevent Configurator from compiling **any** firmware for that keyboard. This is limited both by the API and the current spec of our JSON keymap format.
### Limited Support for Custom keycodes :id=custom-keycodes
There is a way to support custom keycodes: if the logic for a custom keycode is implemented at the keyboard level instead of the keymap level in qmk_firmware, that keycode *can* be used in Configurator and it *will* compile and work. Instead of using the following in your `keymap.c`:
Note the call to `process_record_user()` at the end. Additionally, users of the keyboard will need to use `NEW_SAFE_RANGE` instead of `SAFE_RANGE` if they wish to add their own custom keycodes at keymap level, beyond what is provided by the keyboard.
## Additional Reading :id=additional-reading
For QMK Configurator to support your keyboard, your keyboard must be present in the `master` branch of the `qmk_firmware` repository. For instructions on this, please see [Supporting Your Keyboard in QMK Configurator](reference_configurator_support.md).
@@ -4,7 +4,7 @@ QMK presents itself to the host as a regular HID keyboard device, and as such re
There are two notable exceptions: the Caterina bootloader, usually seen on Pro Micros, and the HalfKay bootloader shipped with PJRC Teensys, appear as a serial port and a generic HID device respectively, and so do not require a driver.
We recommend the use of the [Zadig](https://zadig.akeo.ie/) utility. If you have set up the development environment with MSYS2 or WSL, the `qmk_install.sh` script will have asked if you want it to install the drivers for you.
We recommend the use of the [Zadig](https://zadig.akeo.ie/) utility. If you have set up the development environment with MSYS2, the `qmk_install.sh` script will have already installed the drivers for you.
@@ -13,65 +13,29 @@ An example of using `sudo`, when your controller is ATMega32u4:
or just:
$ sudo make <keyboard>:<keymap>:dfu
$ sudo make <keyboard>:<keymap>:flash
Note that running `make` with `sudo` is generally ***not*** a good idea, and you should use one of the former methods, if possible.
### Linux `udev` Rules
On Linux, you'll need proper privileges to access the MCU. You can either use
`sudo` when flashing firmware, or place these files in `/etc/udev/rules.d/`. Once added run the following:
```console
On Linux, you'll need proper privileges to communicate with the bootloader device. You can either use `sudo` when flashing firmware (not recommended), or place [this file](https://github.com/qmk/qmk_firmware/tree/master/util/udev/50-qmk.rules) into`/etc/udev/rules.d/`.
These allow you to combine a modifier with a keycode. When pressed, the keydown event for the modifier, then `kc` will be sent. On release, the keyup event for `kc`, then the modifier will be sent.
@@ -26,7 +26,10 @@ A Bluefruit UART friend can be converted to an SPI friend, however this [require
<!-- FIXME: Document bluetooth support more completely. -->
## Bluetooth Rules.mk Options
Use only one of these
The currently supported Bluetooth chipsets do not support [N-Key Rollover (NKRO)](reference_glossary.md#n-key-rollover-nkro), so `rules.mk` must contain `NKRO_ENABLE = no`.
Since starting, QMK has grown by leaps and bounds thanks to people like you who contribute to creating and maintaining our community keyboards. As we've grown we've discovered some patterns that work well, and ask that you conform to them to make it easier for other people to benefit from your hard work.
## Use QMK Lint
We have provided a tool, `qmk lint`, which will let you check over your keyboard for problems. We suggest using it frequently while working on your keyboard and keymap.
Example passing check:
```
$ qmk lint -kb rominronin/katana60/rev2
Ψ Lint check passed!
```
Example failing check:
```
$ qmk lint -kb clueboard/66/rev3
☒ Missing keyboards/clueboard/66/rev3/readme.md
☒ Lint check failed!
```
## Naming Your Keyboard/Project
All keyboard names are in lower case, consisting only of letters, numbers, and underscore (`_`). Names may not begin with an underscore. Forward slash (`/`) is used as a sub-folder separation character.
@@ -192,7 +211,7 @@ When developing your keyboard, keep in mind that all warnings will be treated as
## Copyright Blurb
If you're adapting your keyboard's setup from another project, but not using the same code, but sure to update the copyright header at the top of the files to show your name, in this format:
If you're adapting your keyboard's setup from another project, but not using the same code, be sure to update the copyright header at the top of the files to show your name, in this format:
original document: 0.9.44:docs/feature_backlight.md
git diff 0.9.44 HEAD -- docs/feature_backlight.md | cat
original document: 0.10.33:docs/feature_backlight.md
git diff 0.10.33 HEAD -- docs/feature_backlight.md | cat
-->
多くのキーボードは、キースイッチを貫通して配置されたり、キースイッチの下に配置された個々の LED によって、バックライトキーをサポートします。この機能は通常スイッチごとに単一の色しか使用できないため、[RGB アンダーグロー](ja/feature_rgblight.md)および [RGB マトリックス](ja/feature_rgb_matrix.md)機能のどちらとも異なりますが、キーボードに複数の異なる単一色の LED を取り付けることは当然可能です。
original document: 0.8.134:docs/feature_leader_key.md
git diff 0.8.134 HEAD -- docs/feature_leader_key.md | cat
original document: 0.10.33:docs/feature_leader_key.md
git diff 0.10.33 HEAD -- docs/feature_leader_key.md | cat
-->
もしあなたが Vim を使ったことがある場合、リーダーキーは何であるかを知っています。そうでなければ、素晴らしい概念を発見しようとしています。:) 例えば、Alt+Shift+W を押す(3つのキーを同時に押す)代わりに、キーの_シーケンス_を押すことができたらどうでしょう?つまり、特別なモディファイア (リーダーキー)を押して、続けて W と C を押すと (単純にキーを高速に繋げます)、何かが起こります。
For future reference, we recommend against committing to your `master` branch as you've done here, because pull requests from modified `master` branches can make it more difficult to keep your QMK fork updated. It is highly recommended for QMK development – regardless of what is being done or where – to keep your master updated, but **NEVER** commit to it. Instead, do all your changes in a branch (branches are basically free in Git) and issue PRs from your branches when you're developing.
There are instructions on how to keep your fork updated here:
[**Best Practices: Your Fork's Master: Update Often, Commit Never**](https://docs.qmk.fm/#/newbs_git_using_your_master_branch)
[Fixing Your Branch](https://docs.qmk.fm/#/newbs_git_resynchronize_a_branch) will walk you through fixing up your `master` branch moving forward. If you need any help with this just ask.
original document: 0.9.55:docs/understanding_qmk.md
git diff 0.9.55 HEAD -- docs/understanding_qmk.md | cat
-->
このドキュメントでは、QMK ファームウェアがどのように機能するかを非常に高いレベルから説明しようとしています。基本的なプログラミングの概念を理解していることを前提としていますが、(実例を示す必要がある場合を除き) C に精通していることを前提にはしていません。以下のドキュメントの基本的な知識があることを前提としています。
* [入門](ja/getting_started_introduction.md)
* [キーボードがどのように動作するか](ja/how_keyboards_work.md)
* [FAQ](ja/faq.md)
## スタートアップ
QMK は他のコンピュータプログラムと何ら変わりないと考えることができます。開始され、タスクを実行し、そして終了します。プログラムのエントリーポイントは、他の C プログラムと同様に、`main()` 関数です。ただし、QMK を初めて触る人は、`main()` 関数が複数の場所に現れるため、混乱するかもしれません。また、どれを見ればよいか分かりにくいかもしれません。
キーボード上の各スイッチの状態が分かると、それをキーコードへマップする必要があります。QMK ではキーコードへのマップは C マクロを使うことで行われ、C マクロにより物理的なレイアウトの定義はキーコードの定義から分離されています。(訳注:「キーコードの定義」は「キーコードのマトリクス配列による定義」と思われる)
キーボードレベルで、キーボードのマトリックスを物理キーにマップする C マクロ (一般的には、`LAYOUT()` という名前)を定義します。マトリックスにスイッチがない場所がある場合、このマクロを使って KC_NO を事前に埋め込むことができ、キーマップの定義を扱いやすくすることができます。以下は、テンキー用の `LAYOUT()` マクロです:
|`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)`|`LOPT_T(kc)`, `ALT_T(kc)`, `OPT_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)`|`ROPT_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 |
|`LSA_T(kc)`| |Left Shift and Alt when held, `kc` when tapped |
|`RSA_T(kc)` |`SAGR_T(kc)` |Right Shift and Right Alt (AltGr) when held, `kc` when tapped |
|`RCS_T(kc)` | |Right Control and Right Shift 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
@@ -52,3 +55,7 @@ Unfortunately, these keycodes cannot be used in Mod-Taps or Layer-Taps, since an
Additionally, you may run into issues when using Remote Desktop Connection on Windows. Because these codes send shift very fast, Remote Desktop may miss the codes.
To fix this, open Remote Desktop Connection, click on "Show Options", open the the "Local Resources" tab. In the keyboard section, change the drop down to "On this Computer". This will fix the issue, and allow the characters to work correctly.
## Other Resources
See the [Tap-Hold Configuration Options](tap_hold.md) for additional flags that tweak Mod-Tap behavior.
@@ -81,7 +81,7 @@ Now, we will set up the MSYS2 window to show up in VSCode as the integrated term
?> If you installed MSYS2 to a different folder, then you'll need to change the path for `terminal.integrated.shell.windows` to the correct path for your system.
4. Hit Ctrl-`\`` (Grave) to bring up the terminal or go to <kbd><kbd>View</kbd> > <kbd>Terminal</kbd></kbd> (command `workbench.action.terminal.toggleTerminal`). A new terminal will be opened if there isn‘t one already.
4. Hit Ctrl-<code>`</code> (Grave) to bring up the terminal or go to <kbd><kbd>View</kbd> > <kbd>Terminal</kbd></kbd> (command `workbench.action.terminal.toggleTerminal`). A new terminal will be opened if there isn‘t one already.
This should start the terminal in the workspace's folder (so the `qmk_firmware` folder), and then you can compile your keyboard.
The other function is `update_tri_layer_state(state, x, y, z)`. This function is meant to be called from the [`layer_state_set_*` functions](custom_quantum_functions.md#layer-change-code). This means that any time that you use a keycode to change the layer, this will be checked. So you could use `LT(layer, kc)` to change the layer and it will trigger the same layer check.
The caveat to this method is that you cannot access the `z` layer without having `x` and `y` layers on, since if you try to activate just layer `z`, it will run this code and turn off layer `z` before you could use it.
There are a couple of caveats to this method:
1. You cannot access the `z` layer without having `x` and `y` layers on, since if you try to activate just layer `z`, it will run this code and turn off layer `z` before you could use it.
2. Because layers are processed from the highest number `z` should be a higher layer than `x` and `y` or you may not be able to access it.
#### Example
@@ -97,7 +99,7 @@ To wipe the EEPROM, run `eeconfig_init()` from your function or macro to reset m
## Tap random key
If you want to send a random character to the host computer, you can use the `tap_random_base64()` function. This [pseudorandomly](https://en.wikipedia.org/wiki/Pseudorandom_number_generator) selects a number between 0 and 63, and then sends a key press based on that selection. (0–25 is `A`–`Z`, 26–51 is `a`–`z`, 52–61 is `0`–`9`, 62 is `+` and 63 is `/`).
If you want to send a random character to the host computer, you can use the `tap_random_base64()` function. This [pseudorandomly](https://en.wikipedia.org/wiki/Pseudorandom_number_generator) selects a number between 0 and 63, and then sends a key press based on that selection. (0–25 is `A`–`Z`, 26–51 is `a`–`z`, 52–61 is `0`–`9`, 62 is `+` and 63 is `/`).
?> Needless to say, but this is _not_ a cryptographically secure method of generating random Base64 keys or passwords.
While Tap-Hold options are fantastic, they are not without their issues. We have tried to configure them with reasonable defaults, but that may still cause issues for some people.
While Tap-Hold options are fantastic, they are not without their issues. We have tried to configure them with reasonable defaults, but that may still cause issues for some people.
These options let you modify the behavior of the Tap-Hold keys.
## Tapping Term
The crux of all of the following features is the tapping term setting. This determines what is a tap and what is a hold. And the exact timing for this to feel natural can vary from keyboard to keyboard, from switch to switch, and from key to key.
The crux of all of the following features is the tapping term setting. This determines what is a tap and what is a hold. And the exact timing for this to feel natural can vary from keyboard to keyboard, from switch to switch, and from key to key.
You can set the global time for this by adding the following setting to your `config.h`:
You can set the global time for this by adding the following setting to your `config.h`:
```c
#define TAPPING_TERM 200
```
This setting is defined in milliseconds, and does default to 200ms. This is a good average for a majority of people.
This setting is defined in milliseconds, and does default to 200ms. This is a good average for a majority of people.
For more granular control of this feature, you can add the following to your `config.h`:
For more granular control of this feature, you can add the following to your `config.h`:
```c
#define TAPPING_TERM_PER_KEY
```
@@ -45,9 +45,9 @@ As of [PR#1359](https://github.com/qmk/qmk_firmware/pull/1359/), there is a new
#define PERMISSIVE_HOLD
```
This makes tap and hold keys (like Mod Tap) work better for fast typists, or for high `TAPPING_TERM` settings.
This makes tap and hold keys (like Mod Tap) work better for fast typists, or for high `TAPPING_TERM` settings.
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.
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.
For Instance:
@@ -56,7 +56,7 @@ For Instance:
-`KC_X` Up
-`SFT_T(KC_A)` Up
Normally, if you do all this within the `TAPPING_TERM` (default: 200ms) this will be registered as `ax` by the firmware and host system. With permissive hold enabled, this modifies how this is handled by considering the Mod Tap keys as a Mod if another key is tapped, and would registered as `X` (`SHIFT`+`x`).
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`).
?> 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`.
@@ -87,7 +87,7 @@ To enable this setting, add this to your `config.h`:
#define IGNORE_MOD_TAP_INTERRUPT
```
Similar to Permissive Hold, this alters how the firmware processes inputs for fast typists. 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.
Similar to Permissive Hold, this alters how the firmware processes inputs for fast typists. 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.
Setting `Ignore Mod Tap Interrupt` requires holding both keys for the `TAPPING_TERM` to trigger the hold function (the mod).
To enable `tapping force hold`, add the following to your `config.h`:
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.
When the user holds a key after tapping it, the tapping function is repeated by default, rather than activating the hold function. This allows keeping the ability to auto-repeat the tapping function of a dual-role key. `TAPPING_FORCE_HOLD` removes that ability to let the user activate the hold function instead, in the case of holding the dual-role key after having tapped it.
Example:
- SFT_T(KC_A) Down
- SFT_T(KC_A) Up
- SFT_T(KC_A) Down
- wait more than tapping term...
- SFT_T(KC_A) Up
-`SFT_T(KC_A)` Down
-`SFT_T(KC_A)` Up
-`SFT_T(KC_A)` Down
- wait until the tapping term expires...
-`SFT_T(KC_A)` Up
With default settings, `a` will be sent on the first release, then `a` will be sent on the second press allowing the computer to trigger its auto repeat function.
With `TAPPING_FORCE_HOLD`, the second press will be interpreted as a Shift, allowing to use it as a modifier shortly after having used it as a tap.
!> `TAPPING_FORCE_HOLD` will break anything that uses tapping toggles (Such as the `TT` layer keycode, and the One Shot Tapping Toggle).
!> `TAPPING_FORCE_HOLD` will break anything that uses tapping toggles (Such as the `TT` layer keycode, and the One Shot Tap Toggle).
For more granular control of this feature, you can add the following to your `config.h`:
To enable `retro tapping`, add the following to your `config.h`:
To enable `retro tapping`, add the following to your `config.h`:
```c
#define RETRO_TAPPING
@@ -179,11 +179,11 @@ Holding and releasing a dual function key without pressing another key will resu
For instance, holding and releasing `LT(2, KC_SPACE)` without hitting another key will result in nothing happening. With this enabled, it will send `KC_SPACE` instead.
## Why do we include the key record for the per key functions?
## Why do we include the key record for the per key functions?
One thing that you may notice is that we include the key record for all of the "per key" functions, and may be wondering why we do that.
One thing that you may notice is that we include the key record for all of the "per key" functions, and may be wondering why we do that.
Well, it's simply really: customization. But specifically, it depends on how your keyboard is wired up. For instance, if each row is actually using a row in the keyboard's matrix, then it may be simpler to use `if (record->event.row == 3)` instead of checking a whole bunch of keycodes. Which is especially good for those people using the Tap Hold type keys on the home row. So you could fine tune those to not interfere with your normal typing.
Well, it's simple really: customization. But specifically, it depends on how your keyboard is wired up. For instance, if each row is actually using a row in the keyboard's matrix, then it may be simpler to use `if (record->event.row == 3)` instead of checking a whole bunch of keycodes. Which is especially good for those people using the Tap Hold type keys on the home row. So you could fine tune those to not interfere with your normal typing.
- Hardware Availability: Through Group Buy - Dec. 2019
Make example for this keyboard (after setting up your build environment):
make 45_ats:default
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
* Hardware Availability: [PCB & Case Data](https://github.com/Salicylic-acid3/PCB_Data), [Booth Shop](https://salicylic-acid3.booth.pm/items/2425503)
Make example for this keyboard (after setting up your build environment):
make 7splus:default
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
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.