* 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
* Initial version of zeal60
* WIP
* Fixes issue #900
* Adding RGB underglow functionality.
Fixed a compile-time conflict caused by enabling RGB underglow functionality.
* Refactor RPC protocol
* Fix last merge
* README for RGB underglow updated.
* Additional README changes.
* Adding RGBW strip software-based current-limiting functionality.
* RGBW current-limiting functionality should be handled by RGBSTRIP_MAX_CURRENT_PER_LIGHT instead.
* Updated README to reflect implementation of built-in current limiting.
* Keymap readability improvements.
* Minor keymap improvements.
* Fixed LED driver init sequence, formatting
* Dimming implementation tested, working.
* Stab LEDs synced with spacebar hits in effects.
* RGB underglow tested and functional. Simplified README for RGB underglow.
* Undid accidental file deletion from previous merge conflict. Safer values for RGB underglow.
* Improved arrow key positions in keymap.
* Added functionality to correct uneven RGB underglow. Refactored related code.
* Reverted to safer values for underglow.
* Changes for v0.3
* Custom LED brightness scaling will take place after current adjustment in order to avoid being overridden.
* Create keymap.c
Added split backspace and split shift to ISO layout
* Create config.h
Turned on LEDs for new layout
* Fixed bug where left spacebar stabilizer LED (LC06) would adopt color of row above.
* Added hhkb_wilba keymap
* Update keymap.c
* Update keymap.c
* Update keymap.c
* Added indicators, full param setting via host
* Added "mousekey" layout
* Added Zeal65 support, factory test mode
* Keycode safe range changed, caused bugs
* Bumped EEPROM version due to change in QMK keycodes
* Disable HHKB "blocked" LEDs if KC_NO in keymap
* Added "disable_hhkb_blocker_leds"
* Required overridden function for keymaps in EEPROM
* Added polar coordinate mapping, effect speed
* Force Raw HID interface number to 1 always
* Fixed last merge from master
* Added effect speed to default keymaps
* add BACKLIGHT_ prefix to vars
* add BACKLIGHT_ prefix to vars
* Keymap speed effect; keymap improvements/fixes
Readme updated to match changes
* Refactored to use common IS31FL3731/I2C drivers
* Fixed make rules, backlight disabled feature
* Make split rightshift default for Zeal65
* Added M60-A as a "version" of Zeal60.
* Renamed IS31FL3731 driver functions
* Fix suspend_wakeup_init_kb() being defined twice
* First pass refactor dynamic keymaps
* Updated to changed I2C and ISSI drivers
* Refactor zeal_color.* usage to quantum/color.*
* Updated Zeal65, fixed dynamic_keymap
* Major refactoring of Zeal60 backlight and API
* Lots of little cleanups
* Added readme.md
* Added readme.md
* Added LAYOUT_60*() macros, refactored and cleaned up default keymaps
* Fix compile error in suspend.c
* Added Zeal65 LAYOUT macros, info.json
* Added rama/m60_a, deleted zeal60/keymaps/m60_a
* Fixed rama/m60_a/keymaps/proto
* Fixed compilation error for suspend.c
* Requested changes for PR
* Fixed readme.md images
* Another readme.md fix
* Added drashna's requested changes
* initial commit of keymap creation script
* create default keymap
* pass shellcheck
* provide a better usage message
* change printf string to more accurately reflect the path
* make it more easily understood
* found another typo
* add documentation regarding the new_keymap script
* enforce lowercase for userinputs
* add temporary test code rgblight-macro-test1.[ch]
* rgblight.h : mode auto numberring and auto generate mode name symbol
No change in build result.
* rgblight.c use RGBLIGHT_MODE_xxx symbols
No change in build result.
* quantum.c use RGBLIGHT_MODE_xxx symbols
No change in build result.
* fix build break. when RGB_MATRIX_ENABLE defined
* add temporary test code rgblight-macro-test2.[ch]
* modify rgblight_mode_eeprom_helper() and rgblight_sethsv_eeprom_helper()
* modify rgblight_task()
* configurable each effect compile on/off in config.h
* update docs/feature_rgblight.md
* fix conflict. docs/feature_rgblight.md
* remove temporary test code rgblight-macro-test*.[ch]
* fix comment typo.
* remove old mode number from comment
* update docs/feature_rgblight.md about effect mode
* Revert "update docs/feature_rgblight.md about effect mode"
This reverts commit 43890663fc.
* some change docs/feature_rgblight.md
* fix typo
* docs/feature_rgblight.md update: revise mode number table
* move tv44 to thevankeyboards directory
* move bananasplit to thevankeyboards
* move roadkit to thevankeyboards directory
* add a basic readme
* update readmes to correct the make instructions and add more help text
* rename tv44 to minivan as per Jack's suggestions
* update readme
* rename tv44 to minivan
* update tv44 to minivan
* change includes for tv44 to minivan
* remove extra includes
* rename alf_x2 to alf
* rename to x2
* rename dependencies
* Fix readme
* moved x2 into alf directory
* update readme for make instructions
* move dc60 to alf directory
* update dc60 readme for make instructions
* change readme txt as per noroadsleft PR comment
* ALT keymap update
Added additional End key on layer 1 to match key cap
* LED driver update addressing PR #3871
Update sync between IS31FL3733 drivers is causing varying behavior in keyboards including brightness mismatch and slight flicker at very low rgb values. Visually, disabling sync is not noticeable. Ref PR #3871 by guarnacciaa.
* add SCREEN_NAV layer for copy/pasting within screen
* working readreg/paste macros
* working read reg / paste macros
* write log and tran patterns, and expand
* add ls -la shortcut, add tab on combined layer
* put delete word on the right pinky key on shell_nav layer
* add TAB on the right side, add reset key
* added Cloud9 macros
* add cloud9 shortcuts to atreus layout
* added BROWSER_CONTROL layer
* finalized browser control layer
* adding comment
* add browser control layer to atreus
* add flashing command line
* remove the tab on combined layer
* remove the tomouse
* remove mouse layer, change log/tran expand patterns, cleanups
* add dumptlog macro
* add "delete to home" shortcut
* fix conflict
* remove unneeded mouse layer
* add meh shortcuts on the browser_control layer
* add/modify some macros
* explain the various layers
* putty paste is right mouse button
* Add own personal Contra layout
* Enable auto-shifting
* Enable tap dancing and implement Space Cadet-like shift with LSHIFT and ENTER
* Implement Colemak Mod-DH layout, clean up Adjust layer
* Implement keyboard and keymap refactor
More info: https://github.com/qmk/qmk_firmware/pull/3191
* Update the readme.md and keymap.c files for Colemak
* Add include guard, make layout description cleaner
* Updated info.json for Duck Jetfire
Generated a new info.json file. @mechmerlin asked my help in debugging this file. Firmware works as expected if built from source, but not if built from the Configurator.
* Corrected the position of the arrow keys in LAYOUT_all
* Fixed my ortho_5x12 layout
I've fixed the config.h file for my 5x12 ortho layout so that I can
now use it with my Nyquist.
* Update config.h
* Update config.h
Appearenly, teensy controllers have some issues with waking up. If the rgblight is called "too soon", it will cause the controller to lock up, intermittently. Adding a 10 ms
delay seems to fix this issue, as it lets it have enough time to handle things properly.
This has been tested extensively on my Ergodox EZ, and can be seen in the @drashna userspace, under the "suspend_wakeup_init_user" function.
* Add my own keymap to the list of available Redox keymaps.
This keymap is a Colemak keymap, and is meant to be used on Mac OS.
More information can be found in the readme.
* Fix "macOS" typo and remove mention of the license.
This directory inherits the project's license.
* Add missing custom keycode.
* Address feedback from PR review
- Remove deprecated code
- Remove RGB logic since it is overwritten by code running later.
* Added HHKB with 7U space bar
There are backlight changers on the function Z, X and C, mediat controls
have been removed.
* Fixed the default layout and added a keymap
GUI and ALT keys were swapped.
My own keymap which adds calculator, removes power, removes eject.
* Adjusted naming convention of hhkb layout layer
Fixed as per required from code review.
* Updated for qmk configurator
I didn't realise that there was a new standardisation across all the keymaps to accommodate the configurator.
Hopefully fixed now.
* rename 68_ansi layout to 65_ansi layout
* more renames and readme change
* add company names
* add community layouts for 68_ansi
* add 68_ansi support for mf68 type boards
* update readme
* - Fixed DK60 version in config.h
* - Updated dk60 readme with new QMK rules
* - Fixed wording in readme
* Added dbroqua layout for DZ60
I've also updated dz60.h to add "true HHKD" keymap definition (6U
spacebar).
With the default HHKB definition r_alt was not mapped and when I pressed
r_menu it was r_alt.
Regards
* Updated dbroqua layout for HHKB keyboard
Added default configuration and alternate (swap gui/alt keys).
Save user choice in keyboard memory (like plank, thanks for this
feature!).
* Added dbroqua layout for Iris keyboard
* Updated layout and fixed includes
* Added personal layout for FC660C
* Inverted ESC & GRV
Corrected the make examples by adding the parent directory.
Updated the QMK Docs links for the build environment setup and the make instructions. Added links to the Newbs Guide.
* Initial keymap with no BL and with Ctrl and Enter on the home row.
* Removing alternative layouts (Dvorak etc.).
* Putting Enter back in the default position, moving Esc next to Alt.
* Replacing grave with del.
* Adding a numpad layer.
* Adding operators and a triple zero to the numpad layer.
* Swapping Alt and Win.
* Updating to use new audio macros.
* Removing numpad layer and changing left space to MOD_HYPR on hold.
* Adding configurable 'clicky keys' feature.
* Cleaning up clicky conditional logic.
* Turning on backlight support and mapping backlight keys in the adjust layer.
* Enabling backlight functionality.
* Adding Adventure time theme song; increasing fake clicky randomness.
* Cleaning up layer constants in my Planck keymap.
* Initial implementation of porting my Planck keymap to a Let's Split.
* Updating keyboards/planck/keymaps/josh to use declarations from new work on master.
* Updating keyboards/lets_split/keymaps/josh to use declarations from new work on master.
* Work in progress migrating Planck and Let's Split keymaps to a community keymap. Everything is working but Planck backlight.
* Fixing rules.mk to enable backlight & audio correctly on Planck PCBs. Cleanup.
* Tweaks to get Let's Split working with my community layout.
* Switching to use EE_HANDS in my Let's Split build.
* Adding vitamins_included makefile options to my ortho_4x12 layout.
* Fixing planck/rev6 build -- backlight must be disabled.
* Removing I2C from my rules.mk and addressing it in the config.h instead.
* Moving community layout directory to my reddit username. :D
* Adding a test encoder function; making lower left a media key and moving esc to a mod tap on ctrl.
* Commenting out -flto in the compiler flags for the vitamins_included keyboard (couldn't figure out how else to turn it off).
* Changing rotary encoder to control media volume.
* Changing backlight and clicky defaults to max brightness no breathing and a low pitch click.
* Initial implementation of backlight flickering.
* Updating my README.md
* Adding LINK_TIME_OPTIMIZATION to the vitamins_included/rev1 as a rules.mk feature.
* Reverting keyboards/vitamins_included/rules.mk to master and using 'filter_out' in my layout instead.
* Adding tested boards to the readme for my layout.
* Per drashna, removing redundant clicky implementation and cleaning up headers.
* Removing an extra include from my keymap.
* CTRL LED scan code mapping fix
Fixed scan codes to properly align with key wiring
* Update scan codes for caps and scroll lock lighting
Update scan codes for caps and scroll lock lighting according to previous scan code mapping update
* 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 my lukaus keymap (programmers dvorak with QWERTY, function, and mouse/keypad layers)
* updated ergodox_ez keymap and initial commit for IBM Model M 122 key
* added my lukaus keymap (programmers dvorak with QWERTY, function, and mouse/keypad layers)
* updated ergodox_ez keymap and initial commit for IBM Model M 122 key
* Add keyboard information and separated my custom layout from the default
* Add readme to Lukaus' Ergodox EZ keymap
* added my lukaus keymap (programmers dvorak with QWERTY, function, and mouse/keypad layers)
* updated ergodox_ez keymap and initial commit for IBM Model M 122 key
* added my lukaus keymap (programmers dvorak with QWERTY, function, and mouse/keypad layers)
* updated ergodox_ez keymap and initial commit for IBM Model M 122 key
* Add keyboard information and separated my custom layout from the default
* Add readme to Lukaus' Ergodox EZ keymap
* added my lukaus keymap (programmers dvorak with QWERTY, function, and mouse/keypad layers)
* updated ergodox_ez keymap and initial commit for IBM Model M 122 key
* Fix merge conflict again?
* updated ergodox_ez keymap and initial commit for IBM Model M 122 key
* Add keyboard information and separated my custom layout from the default
* Add readme to Lukaus' Ergodox EZ keymap
* added my lukaus keymap (programmers dvorak with QWERTY, function, and mouse/keypad layers)
* added my lukaus keymap (programmers dvorak with QWERTY, function, and mouse/keypad layers)
* updated ergodox_ez keymap and initial commit for IBM Model M 122 key
* updated ergodox_ez keymap and initial commit for IBM Model M 122 key
* Add keyboard information and separated my custom layout from the default
* update keymap
* Update rules.mk to remove redundant commented line
* Fix missing key on default layout for IBM Model M 122 key
* Fix issues identified by drashna and noroadsleft
* Update readme for IBM 122 key
* Add am keymap
* Add configuration to play nice with stuck modifiers
This is in particular useful with emacs since its easy to get ctrl stuck
* Deactivate mouse keys and backlight
* Add control/esc and shift/enter taps
* Remove DVORAK and PLOVER
I won't be using this soon, so getting some free space
* Raiser and Lower ideas from jeebak
* Add cursor and mouse layers
* Enable mouse keys
* Switch underscore with minus
* Disable audio and fix warnings
* Update to the upstream changes
* VIM line motion symbols on the raise layer
* Enable sound and freeup some media keys on layers
* Fix whitespace on keymap
* Code review changes
* Improve keymap documentation
* Improve keymap to match to the default one
* Restore DEFAULT_FOLDER to the default value
* Fix config.h unescaped line
Added support to enter bootloader from software (bootloader version must be newer than "v2.18Jun 22 2018 17:28:08" until workaround for older is created).
Updated CTRL and ALT keymaps for entering bootloader with Fn+b held for >500ms.
Added basic MacOS keymap for ALT.
USB sleep LED indicator now turns off after 1 second.
Slowed down debug LED code printing.
- Added support for NO_USB_STARTUP_CHECK. This allows the keyboard do function and not get stuck in a SUSPENDED state loop in case of no USB connection.
- Added support for WAIT_FOR_USB. In LUFA no keyboard has this flag enable therefor no keyboard waits for usb to be active.
- Added documentation for both configuration flags as they were missing.
* mitosis:datagrok: fix typo'd inconsistent brace arrangement
(thank you @cari66ean)
* mitosis:datagrok: add makefile argument MITOSIS_DATAGROK_SLOWUART
* mitosis:datagrok: return backspace to opposite space, use TT(), more
- move backspace back to its position opposite space
- move del to red+backspace
- move tab back to tap-leftshift
- move printscreen/scrolllock/pause to blue+left pinky column
- use TT() instead of MO() to stick a layer on if wanted
- indentation that my text editor wants
- default to no audio; i can enable it at compile time.
* mitosis:datagrok: modularize features, add default layer rotator key
* mitosis: add MITOSIS_DATAGROK_BOTTOMSPACE makefile argument
* mitosis:datagrok: README improvements; document new features
* mitosis:datagrok: dot. not "number pad dot." in numbers layer
* mitosis:datagrok remove unnecessary _user audio code
* mitosis:datagrok: return to MO() for red/blue, keep TT() for purple
in this way, the LED still updates quickly when red or blue is pressed,
but we can still lock the purple layer on for 10-key numpad operation
with red+tapping blue.
* mitosis:datagrok: add colemak and dvorak default layers
* mitosis:datagrok update readme re: available default layouts
* mitosis: remove unneeded code that was overriding led_set_user
also, add some comments
* mitosis:datagrok: updated led setting code for new layers
also, place into led_set_user where it belongs, not matrix_scan_user.
* mitosis:datagrok: update LEDs when setting the default layer
maybe this should go into default_layer_set?
* mitosis:datagrok update readme with new imgur links + other improvements
* mitosis:datagrok fix typo in image urls
* mitosis:datagrok remove useless #include (ty @drashna)
* mitosis:datagrok undo unnecessary change to quantum/quantum.h
i can put the extern float definition in my own keymap code. (ty @drashna)
* mitosis:datagrok move customized layout to my keymap
no need to modify keyboard-level mitosis.h. (ty @drashna)
* mitosis:datagrok update comment describing my led indicator logic
* datagrok:mitosis update readme to document LED indicator.
* swap KC_LALT with KC_LGUI
* replace KC_RALT with KC_RGUI
This makes the keyboard more mac friendly out of the box (I'm aware this
that this could partially be done in software with the preferences but
hey, where's the fun in that).
* fixing ortho_4x12 configs
* Using upstream/master version instead
* Additions and Corrections
Corrected the Kinesis/Stapelberg's .c file to allow LEDs to work
Removed excess cruft from my Kinesis keymap to reflect this change
Other minor tweaks and adjustments to my ortho_4x12 and 5x12 layouts
* Rules for vitamins_included
Added a section to disable RGB underglow for the Let's Split
Vitamins Included board.
* fixing ortho_4x12 configs
* Using upstream/master version instead
* Additions and Corrections
Corrected the Kinesis/Stapelberg's .c file to allow LEDs to work
Removed excess cruft from my Kinesis keymap to reflect this change
Other minor tweaks and adjustments to my ortho_4x12 and 5x12 layouts
* Creating my own userspace
* Added Rorschach keymap
* renamed userspace folder
I renamed my userspace folder since I'm not ready to start using
it just yet, and I want to get my keyboards programmed. This is
a temporary thing and will be fixed later as I get time.
* adding files in "new" folder
* Disabling LEDs on Pro Micro
* Modifications to Kinesis keymap
* More kinesis tweaks
* removed userspace from master
Created a new branch for my userspace stuff. I'll work on it there.
* Moved keymap to separate branch
Moved the Rorschach keymap I was working on to a separate branch
for development purposes. Not ready to push it up to upstream
master.
* pulling in diverge tm2 from staging branch
* cleaned up comments, docs, licenses
* refactored apparent grid to make 2u spacebars more obvious
* various delinting from noroadsleft review
* most of drashna's feedback responded to
- lots of lint swept
- used more modern tri-layer functions
- still need to adopt modern split support.
* switch to common split code. remove comment cruft
* tapping force hold makes LT way more usable for rapid , sequences
* improvement of crkbd communication functions (based on helix-keyboard)
* Removed unnecessary code.
* Changed read restriction from #define to #pragma once.
* Changed from sizeof to defined size.
* moved lib folder to crkbdroot.
removed warning of ws2812.d
* add ortho_4x12 symbolic layout
* delete trash
* modify little bit
* fixed doesn't requires
replace `#ifndef ... #endif` to `#pragma ones` in config.h
delete `QMK_KEYBOARD_CONFIG_H` in config.h
delete `action_layer.h` and `eeconfig.h` in keymap.c
* - Fixed DK60 version in config.h
* - Updated dk60 readme with new QMK rules
* - Fixed wording in readme
* Added dbroqua layout for DZ60
I've also updated dz60.h to add "true HHKD" keymap definition (6U
spacebar).
With the default HHKB definition r_alt was not mapped and when I pressed
r_menu it was r_alt.
Regards
* Updated dbroqua layout for HHKB keyboard
Added default configuration and alternate (swap gui/alt keys).
Save user choice in keyboard memory (like plank, thanks for this
feature!).
* Added dbroqua layout for Iris keyboard
* Updated layout and fixed includes
* Added personal layout for FC660C
* Add support for my Falbatech Atreus
This is currently the default Atreus keyboard layout, but I will
eventually customize it to match my Ergodox layout.
* Address review comments
* More review comments fixed
* More review comments fixed
Renamed keyboard alt67 to alt and adjusted necessary files where alt67 appeared.
CTRL keymap fixed enum structure name.
usb2422 removed stray define no longer used.
* Fix up my keymaps to use more QMK features
* update 60_ansi readme
* add the start of my userspace
* begin to use my new userspace
* use more of my userspace
* spread userspace love to my clueboard
* spread userspace love to 75 layout
* add a fairly vanilla readme
* put the FNX into a userspace incase I ever want to use it for something else
* respond to drashna's code review comments
* new mode for v60
xtonhasvim. still working on it:
- need to get indicator lights going
- and fun layer properly fleshed out.
* status lighting, proper fun layer
copied fun layout from keycaps to maximize accessibility
* enable power return
* support brightness adjustment for indicators
* refined brightness setting.
is saved in eeprom now
* readme. and fixed tilde
* more modifiers fall through fun layer
* i mean, this kinda works..
* much more reliable way of restoring lights
* responded to feedback
* various edits and minor additions
* updates
* updates
* updates
* lets_split LEDs off instructions
* lets_split LEDs off instructions
* turn off lets_split LEDs in userspace
* one-hand setup for right side
* add process_terminal() and update links to other functions
* convert links to permalinks and add a few missing process_* functions
* update links in main text as well
* Massdrop keyboards readme update
Massdrop keyboards readme update for flashing instructions
* ctrl and alt keyboard readme update
Updating make command in Massdrop CTRL and ALT keyboard readme files to reflect directory change
This is the simplest, most efficient way I could come up with to silence
the "Failed to start write 60" error that occurs when QMK tries to talk
to a screen that doesn't exist.
iota_gfx_init passes a success boolean. We catch that into a global bool
(we could rewrite multiple functions to pass this as an argument, but
given the number of keyboards using this code it seemed less disruptive
this way) and then use that as a conditional on running the
iota_gfx_task in matrix_scan_user.
Tl;dr: if the screen doesn't init, the screen write code doesn't run.
A QMK collaborator is a keyboard maker/designer that is interested in helping QMK grow and fully support their keyboard(s), and encouraging their users/customers to submit features, ideas, and keymaps. We're always looking to add more keyboards and collaborators, but we ask that they fulfill these requirements:
# Becoming a QMK Collaborator
* **Have a PCB available for sale** - unfortunately there's just too much variation and complications with handwired keyboards.
* **Maintain the your keyboard's directory** - this may just require an initial setup to get your keyboard working, but it could also include accommodating changes made to QMK's core.
* **Approve and merge your keyboard's keymap pull requests** - we like to encourage users to contribute their keymaps for others to see and work from when creating their own.
A QMK collaborator is a keyboard maker or designer that is interested in helping QMK grow and fully support their keyboard(s), and encouraging their users and customers to submit features, ideas, and keymaps. We're always looking to add more keyboards and collaborators, but we ask that they fulfill these requirements:
* **Have a PCB available for sale.** Unfortunately there's just too much variation and complications with handwired keyboards.
* **Maintain your keyboard in QMK.** This may just require an initial setup to get your keyboard working, but it could also include accommodating changes made to QMK's core that might break or render any custom code redundant.
* **Approve and merge keymap pull requests for your keyboard.** We like to encourage users to contribute their keymaps for others to see and work from when creating their own.
If you feel you meet these requirements, shoot us an email at hello@qmk.fm with an introduction and some links to your keyboard!
@@ -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
@@ -248,3 +248,7 @@ Use these to enable or disable building certain features. The more you have enab
* Enable Bluetooth with the Adafruit EZ-Key HID
*`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
*`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.
@@ -70,6 +70,7 @@ Most of our style is pretty easy to pick up on, but right now it's not entirely
* 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`)
@@ -13,9 +13,11 @@ 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.
### Limits of These Aliases
### Caveats
Currently, the keycodes able to used with these functions are limited to the [Basic Keycodes](keycodes_basic.md), meaning you can't use keycodes like `KC_TILD`, or anything greater than 0xFF. For a full list of the keycodes able to be used see [Basic Keycodes](keycodes_basic.md).
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.
Additionally, if at least one right-handed modifier is specified in a Mod Tap or Layer Tap, it will cause all modifiers specified to become right-handed, so it is not possible to mix and match the two.
# Switching and Toggling Layers
@@ -55,57 +57,73 @@ Sometimes, you might want to switch between layers in a macro or as part of a ta
# Modifier Keys
These functions allow you to combine a mod with a keycode. When pressed the keydown for the mod will be sent first, and then *kc* will be sent. When released the keyup for *kc* will be sent and then the mod will be sent.
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.
*`LSFT(kc)` or `S(kc)` - applies left Shift to *kc* (keycode)
*`RSFT(kc)` - applies right Shift to *kc*
*`LCTL(kc)` - applies left Control to *kc*
*`RCTL(kc)` - applies right Control to *kc*
*`LALT(kc)` - applies left Alt to *kc*
*`RALT(kc)` - applies right Alt to *kc*
*`LGUI(kc)` - applies left GUI (command/win) to *kc*
*`RGUI(kc)` - applies right GUI (command/win) to *kc*
*`HYPR(kc)` - applies Hyper (all modifiers) to *kc*
*`MEH(kc)` - applies Meh (all modifiers except Win/Cmd) to *kc*
|`LSFT(kc)`|`S(kc)` |Hold Left Shift and press `kc` |
|`LALT(kc)`| |Hold Left Alt and press `kc` |
|`LGUI(kc)`|`LCMD(kc)`, `LWIN(kc)`|Hold Left GUI and press `kc` |
|`RCTL(kc)`| |Hold Right Control and press `kc` |
|`RSFT(kc)`| |Hold Right Shift and press `kc` |
|`RALT(kc)`| |Hold Right Alt and press `kc` |
|`RGUI(kc)`|`RCMD(kc)`, `LWIN(kc)`|Hold Right GUI and press `kc` |
|`HYPR(kc)`| |Hold Left Control, Shift, Alt and GUI and press `kc`|
|`MEH(kc)` | |Hold Left Control, Shift and Alt and press `kc` |
|`LCAG(kc)`| |Hold Left Control, Alt and GUI and press `kc` |
|`ALTG(kc)`| |Hold Right Control and Alt and press `kc` |
|`SGUI(kc)`|`SCMD(kc)`, `SWIN(kc)`|Hold Left Shift and GUI and press `kc` |
|`LCA(kc)` | |Hold Left Control and Alt and press `kc` |
You can also chain these, like this:
You can also chain them, for example `LCTL(LALT(KC_DEL))` makes a key that sends Control+Alt+Delete with a single keypress.
LALT(LCTL(KC_DEL)) -- this makes a key that sends Alt, Control, and Delete in a single keypress.
# Mod-Tap
# Mod Tap
The Mod-Tap key `MT(mod, kc)` acts like a modifier when held, and a regular keycode when tapped. In other words, you can have a key that sends Escape when you tap it, but functions as a Control or Shift key when you hold it down.
`MT(mod, kc)` - is *mod* (modifier key - MOD_LCTL, MOD_LSFT) when held, and *kc* when tapped. In other words, you can have a key that sends Esc (or the letter O or whatever) when you tap it, but works as a Control key or a Shift key when you hold it down.
The modifiers this keycode and `OSM()` accept are prefixed with `MOD_`, not `KC_`:
These are the values you can use for the `mod` in `MT()` and `OSM()`:
|`MOD_HYPR`|Hyper (Left Control, Shift, Alt and GUI)|
|`MOD_MEH` |Meh (Left Control, Shift, and Alt) |
* MOD_LCTL
* MOD_LSFT
* MOD_LALT
* MOD_LGUI
* MOD_RCTL
* MOD_RSFT
* MOD_RALT
* MOD_RGUI
* MOD_HYPR
* MOD_MEH
You can combine these by ORing them together like so:
These can also be combined like `MOD_LCTL | MOD_LSFT` e.g. `MT(MOD_LCTL | MOD_LSFT, KC_ESC)` which would activate Control and Shift when held, and send Escape when tapped.
```c
MT(MOD_LCTL|MOD_LSFT,KC_ESC)
```
We've added shortcuts to make common modifier/tap (mod-tap) mappings more compact:
This key would activate Left Control and Left Shift when held, and send Escape when tapped.
*`CTL_T(kc)` - is LCTL when held and *kc* when tapped
*`SFT_T(kc)` - is LSFT when held and *kc* when tapped
*`ALT_T(kc)` - is LALT when held and *kc* when tapped
*`ALGR_T(kc)` - is AltGr when held and *kc* when tapped
*`GUI_T(kc)` - is LGUI when held and *kc* when tapped
*`ALL_T(kc)` - is Hyper (all mods) when held and *kc* when tapped. To read more about what you can do with a Hyper key, see [this blog post by Brett Terpstra](http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/)
*`LCAG_T(kc)` - is CtrlAltGui when held and *kc* when tapped
*`MEH_T(kc)` - is like Hyper, but not as cool -- does not include the Cmd/Win key, so just sends Alt+Ctrl+Shift.
For convenience, QMK includes some Mod-Tap shortcuts to make common combinations more compact in your keymap:
?> Due to the way that keycodes are structured, any modifiers specified as part of `kc`, such as `LCTL()` or `KC_LPRN`, will only activate when held instead of tapped.
?> Additionally, if there is at least one right-handed modifier, any other modifiers in a chain of functions will turn into their right-handed equivalents, so it is not possible to "mix and match" the two.
|`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 |
@@ -119,22 +119,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,7 +144,7 @@ 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. |
@@ -5,7 +5,7 @@ If you've ever used Vim, you know what a Leader key is. If not, you're about to
That's what `KC_LEAD` does. Here's an example:
1. Pick a key on your keyboard you want to use as the Leader key. Assign it the keycode `KC_LEAD`. This key would be dedicated just for this -- it's a single action key, can't be used for anything else.
2. Include the line `#define LEADER_TIMEOUT 300`somewhere in your keymap.c file, probably near the top. The 300 there is 300ms -- that's how long you have for the sequence of keys following the leader. You can tweak this value for comfort, of course.
2. Include the line `#define LEADER_TIMEOUT 300`in your config.h. The 300 there is 300ms -- that's how long you have for the sequence of keys following the leader. You can tweak this value for comfort, of course.
3. Within your `matrix_scan_user` function, do something like this:
```
@@ -39,3 +39,11 @@ void matrix_scan_user(void) {
As you can see, you have a few function. You can use `SEQ_ONE_KEY` for single-key sequences (Leader followed by just one key), and `SEQ_TWO_KEYS`, `SEQ_THREE_KEYS` up to `SEQ_FIVE_KEYS` for longer sequences.
Each of these accepts one or more keycodes as arguments. This is an important point: You can use keycodes from **any layer on your keyboard**. That layer would need to be active for the leader macro to fire, obviously.
## Adding Leader Key Support in the `rules.mk`
To add support for Leader Key you simply need to add a single line to your keymap's `rules.mk`:
@@ -79,20 +79,23 @@ Your RGB lighting can be configured by placing these `#define`s in your `config.
## Animations
Not only can this lighting be whatever color you want, if `RGBLIGHT_ANIMATIONS` is defined, you also have a number of animation modes at your disposal:
|Mode |Description |
|-----|---------------------|
|1 |Solid color |
|2-5 |Solid color breathing|
|6-8 |Cycling rainbow |
|9-14 |Swirling rainbow |
|15-20|Snake |
|21-23|Knight |
|24 |Christmas |
|25-34|Static gradient |
|35 |RGB Test |
|36 |Alternating |
Not only can this lighting be whatever color you want,
if `RGBLIGHT_EFFECT_xxxx` or `RGBLIGHT_ANIMATIONS` is defined, you also have a number of animation modes at your disposal:
|Mode number symbol |Additional number |Description |
|`KC_HYPR` | |Hold Left Control, Shift, Alt and GUI |
|`KC_MEH` | |Hold Left Control, Shift and Alt |
|`LCTL(kc)`| |Hold Left Control and press `kc` |
@@ -353,7 +354,7 @@ This is a reference only. Each group of keys links to the page documenting their
|`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/)|
|`SCMD_T(kc)`|`SWIN_T(kc)` |Left Shift and 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 |
@@ -22,6 +22,20 @@ Start by navigating to the `keymaps` folder for your keyboard.
Once you have the `keymaps` folder open you will want to create a copy of the `default` folder. We highly recommend you name your folder the same as your GitHub username, but you can use any name you want as long as it contains only lower case letters, numbers, and the underscore character.
To automate the process, you also have the option to run the `new_keymap.sh` script.
Navigate to the `qmk_firmware/util` directory and type the following:
```
./new_keymap.sh <keyboard path> <username>
```
For example, for a user named John, trying to make a new keymap for the 1up60hse, they would type in
```
./new_keymap.sh 1upkeyboards/1up60hse john
```
## Open `keymap.c` In Your Favorite Text Editor
Open up your `keymap.c`. Inside this file you'll find the structure that controls how your keyboard behaves. At the top of `keymap.c` there may be some defines and enums that make the keymap easier to read. Farther down you'll find a line that looks like this:
@@ -12,7 +12,7 @@ You can think of QMK as no different from any other computer program. It is star
The reason for this is the different platforms that QMK supports. The most common platform is `lufa`, which runs on AVR processors such at the atmega32u4. We also support `chibios` and `vusb`.
We'll focus on AVR processors for the moment, which use the `lufa` platform. You can find the `main()` function in [tmk_core/protocol/lufa/lufa.c](https://github.com/qmk/qmk_firmware/blob/master/tmk_core/protocol/lufa/lufa.c#L1129). If you browse through that function you'll find that it initializes any hardware that has been configured (including USB to the host) and then it starts the core part of the program with a [`while(1)`](https://github.com/qmk/qmk_firmware/blob/master/tmk_core/protocol/lufa/lufa.c#L1182). This is [The Main Loop](#the_main_loop).
We'll focus on AVR processors for the moment, which use the `lufa` platform. You can find the `main()` function in [tmk_core/protocol/lufa/lufa.c](https://github.com/qmk/qmk_firmware/blob/661ca4440cc42f3b60697e98985c44b0571ccfc1/tmk_core/protocol/lufa/lufa.c#L1019). If you browse through that function you'll find that it initializes any hardware that has been configured (including USB to the host) and then it starts the core part of the program with a [`while(1)`](https://github.com/qmk/qmk_firmware/blob/661ca4440cc42f3b60697e98985c44b0571ccfc1/tmk_core/protocol/lufa/lufa.c#L1060). This is [The Main Loop](#the-main-loop).
## The Main Loop
@@ -22,7 +22,7 @@ This section of code is called "The Main Loop" because it's responsible for loop
keyboard_task();
```
This is where all the keyboard specific functionality is dispatched. The source code for `keyboard_task()` can be found in [tmk_core/common/keyboard.c](https://github.com/qmk/qmk_firmware/blob/master/tmk_core/common/keyboard.c#L154), and it is responsible for detecting changes in the matrix and turning status LED's on and off.
This is where all the keyboard specific functionality is dispatched. The source code for `keyboard_task()` can be found in [tmk_core/common/keyboard.c](https://github.com/qmk/qmk_firmware/blob/661ca4440cc42f3b60697e98985c44b0571ccfc1/tmk_core/common/keyboard.c#L206), and it is responsible for detecting changes in the matrix and turning status LED's on and off.
Within `keyboard_task()` you'll find code to handle:
@@ -77,7 +77,7 @@ At the keyboard level we define a C macro (typically named `KEYMAP()`) which map
Notice how the second block of our `KEYMAP()` macro matches the Matrix Scanning array above? This macro is what will map the matrix scanning array to keycodes. However, if you look at a 17 key numpad you'll notice that it has 3 places where the matrix could have a switch but doesn't, due to larger keys. We have populated those spaces with `KC_NO` so that our keymap definition doesn't have to.
You can also use this macro to handle unusual matrix layouts, for example the [Clueboard rev 2](https://github.com/qmk/qmk_firmware/blob/master/keyboards/clueboard/66/rev2/rev2.h). Explaining that is outside the scope of this document.
You can also use this macro to handle unusual matrix layouts, for example the [Clueboard rev 2](https://github.com/qmk/qmk_firmware/blob/661ca4440cc42f3b60697e98985c44b0571ccfc1/keyboards/clueboard/66/rev2/rev2.h). Explaining that is outside the scope of this document.
##### Keycode Assignment
@@ -130,26 +130,31 @@ Comparing against our keymap we can see that the pressed key is KC_NLCK. From he
##### Process Record
The `process_record()` function itself is deceptively simple, but hidden within is a gateway to overriding functionality at various levels of QMK. The chain of events is described below, using cluecard whenever we need to look at the keyboard/keymap level functions.
The `process_record()` function itself is deceptively simple, but hidden within is a gateway to overriding functionality at various levels of QMK. The chain of events is listed below, using cluecard whenever we need to look at the keyboard/keymap level functions. Depending on options set in rule.mk or elsewhere, only a subset of the functions below will be included in final firmware.
* [Identify and process quantum specific keycodes](https://github.com/qmk/qmk_firmware/blob/661ca4440cc42f3b60697e98985c44b0571ccfc1/quantum/quantum.c#L287)
At any step during this chain of events a function (such as `process_record_kb()`) can `return false` to halt all further processing.
Make example for this keyboard (after setting up your build environment):
make 1up60hse:default
make 1upkeyboards/1up60hse: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).
Make example for this keyboard (after setting up your build environment):
make 1up60rgb:default
make 1upkeyboards/1up60rgb: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).
Make example for this keyboard (after setting up your build environment):
make sweet16:default
make 1upkeyboards/sweet16: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).
Make example for this keyboard (after setting up your build environment):
make dc60:default
make alf/dc60: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).
Make example for this keyboard (after setting up your build environment):
make alf/x2: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).
Make example for this keyboard (after setting up your build environment):
make alf_x2: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.
Make example for this keyboard (after setting up your build environment):
make bananasplit: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.
@@ -25,22 +25,19 @@ Make example for this keyboard (after setting up your build environment):
104 key default layout:
```
make frosty_flake:default
make bpiphany/frosty_flake:default
```
To directly flash the frosty_flake after compiling use
```
make frosty_flake:default:dfu
make bpiphany/frosty_flake:default:dfu
```
87 key tkl layout:
```
make frosty_flake:tkl:dfu
make bpiphany/frosty_flake:tkl:dfu
```
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).
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.