Compare commits

...

204 Commits

Author SHA1 Message Date
Gergely Nagy
38f204db30 Allow one-shot modifiers to be chained
Many a times one would want to use multiple modifiers with the same key,
preferably without having to hold anything, like `Ctrl+Shift+C` or
`Ctrl+Shift+V` to copy/paste in GNOME Terminal. To make this possible, we need
to be able to chain one-shot modifiers, so that we can have multiple of them
active at the same time.

The easiest way to accomplish this is that whenever we activate a one-shot
modifier, we apply it on top of the existing set, instead of re-setting the
state. When deactivating, either due to an interrupt, or due to a timeout, we
deactivate all oneshots anyway, so the clearing part is covered. When we turn
the one-shot modifier into a toggle, that will also clear all one-shot modifiers
first, so we covered that case too.

Fixes #2796, #1580, and #856.

Signed-off-by: Gergely Nagy <qmk@gergo.csillger.hu>
2018-05-14 10:09:28 -04:00
Sascha Grunert
e76eee2d0a Update my keymap (#2965)
* Add my personal keymap

* Improve layout

* Update keymap

* Set Linux input mode
2018-05-14 07:06:33 -07:00
Lawrence Ng
7f35a62902 Fix/update XD75 default layout (#2963)
Fix layout to match current official default layout: http://www.keyboard-layout-editor.com/#/gists/ac341208e023e4a4d982bccf711ae38f

Also add LED controls on FN layer
2018-05-14 06:59:31 -07:00
xton
47f03bd5a4 Xton has a dz60 (#2952)
* FORK!

* WIP - just how i like it

* empty

* more movement

* mouse keys

* more vimminess

* append/insert shift

* WIP - vim macros

* blocked out layer below in cmd mode.

also, about to restart my cmd approach.

* WIP - new vim layer

ripoff of the ergodox one, but rewritten as a state machine.

* debugged some, got key repeat working

* moooar coverage

* moooar coverage

* regular vis mode

* basically done with basics.

* some refactoring

- common movement sequences into helper function
- added some rgb controls

* modkey passthru feature

* stdized on cmd-left/right instead of ctrl-a/e

sadly. as there's no reliable shift-ctrl-e

* indicator lights

* moved vim layer into userspace

* cleaned up some yanking edge cases

* docs and some tweaks to layerescapes

* updated/added license strings

* updated comments

* moved config changes to keymap

* spurious changes removed

* cleanup pass, HT drashna for suggestions

- used _keymap() pattern to better modularize event processing in userspace
- made some static things static
- removed unused function
- improved reset.

* dz60 started. keymaps done.

* bugfixes: missing state change in d-, lspace should toggle vim mode.

* Caps lock indicator -> vim indicator.

And adjusted mousekey settings.

* don't actually need the second move trigger and it makes typing less responsive.

* some oppurtunistic bugfixing from my other keyboard (sorry)

* added readme for my dz60 keymap.

* bugfixing and comments updated (niu_mini)

* cleanup as suggested from review
2018-05-13 21:02:06 -07:00
MechMerlin
70e60b0a0c update template copyrights to 2018 (#2962) 2018-05-13 21:01:13 -07:00
Barry Huang
fdee10b38e info.json update to pk60 (#2961)
* Play Keyboard60 PCB

pk60 PCB files upload

* Add readme files for pk60

* error solving

* uneeded question marks removed

* Update readme.md

* Layouts update

Including ANSI, ISO, 2 kinds of arrows, minila and ALL layouts.

* info.json and redme.md fix

* uppercase fix to lowercase
2018-05-13 20:49:32 -07:00
Mattia Dal Ben
fd57ea0666 Default layout for the Redox keyboard (#2954)
* Improved default layout for Redox keyboard, renamed old layout

* Corrected copyright note
2018-05-13 19:31:38 -07:00
Barry Huang
ab0db3c52d Play Keyboard60 PCB upload (#2953)
* Play Keyboard60 PCB

pk60 PCB files upload

* Add readme files for pk60

* error solving

* uneeded question marks removed
2018-05-13 09:30:10 -07:00
MechMerlin
c3c5799909 Add standard layout 60% support for QMK Configurator and user space (#2950) 2018-05-12 23:02:06 -07:00
xton
975c48efe6 xtonhasvim cleanup (#2947)
* FORK!

* WIP - just how i like it

* empty

* more movement

* mouse keys

* more vimminess

* append/insert shift

* WIP - vim macros

* blocked out layer below in cmd mode.

also, about to restart my cmd approach.

* WIP - new vim layer

ripoff of the ergodox one, but rewritten as a state machine.

* debugged some, got key repeat working

* moooar coverage

* moooar coverage

* regular vis mode

* basically done with basics.

* some refactoring

- common movement sequences into helper function
- added some rgb controls

* modkey passthru feature

* stdized on cmd-left/right instead of ctrl-a/e

sadly. as there's no reliable shift-ctrl-e

* indicator lights

* moved vim layer into userspace

* cleaned up some yanking edge cases

* docs and some tweaks to layerescapes

* updated/added license strings

* updated comments

* moved config changes to keymap

* spurious changes removed

* cleanup pass, HT drashna for suggestions

- used _keymap() pattern to better modularize event processing in userspace
- made some static things static
- removed unused function
- improved reset.
2018-05-12 15:37:20 -07:00
Joe Wasson
6dda0d6e34 More work on Talljoe layout including adding layout support for HHKB and TKL. (#2946)
* Add tap-dancing semicolon.

* Infinity60 was running out of USB space.

* Rename common layout variable so it doesn't collide with some keyboards.

* Godspeed!!!

* Patch the number of LEDs for 1up60rgb

* Don't light up if rgblight is off.

* Add HHKB layout.

* Add HHKB to Talljoe's layout.

* Bring back bananasplit keymap.

* info.json

* Userspace config.h doesn't seem to be setting PREVENT_STUCK_MODIFIERS

* Remove 1uprgb workaround

* Add TKL to talljoe keymap.

Also introduces the tkl layout.
2018-05-12 09:54:35 -07:00
MechMerlin
48a68dcf10 edit readmes for layout for 60_ansi (#2944) 2018-05-12 08:58:17 -07:00
Wilba6582
b15a71beba Added bootmagic_lite() (#2942) 2018-05-12 08:53:12 -07:00
xton
05be1de1aa Xton's first keymap! (#2941)
* FORK!

* WIP - just how i like it

* empty

* more movement

* mouse keys

* more vimminess

* append/insert shift

* WIP - vim macros

* blocked out layer below in cmd mode.

also, about to restart my cmd approach.

* WIP - new vim layer

ripoff of the ergodox one, but rewritten as a state machine.

* debugged some, got key repeat working

* moooar coverage

* moooar coverage

* regular vis mode

* basically done with basics.

* some refactoring

- common movement sequences into helper function
- added some rgb controls

* modkey passthru feature

* stdized on cmd-left/right instead of ctrl-a/e

sadly. as there's no reliable shift-ctrl-e

* indicator lights

* moved vim layer into userspace

* cleaned up some yanking edge cases

* docs and some tweaks to layerescapes

* updated/added license strings

* updated comments

* moved config changes to keymap

* spurious changes removed
2018-05-12 08:52:11 -07:00
akrob
5b503cc543 Fix syntax, add laylock with backlight toggle on locked layer (#2940)
* Create config.h

* Create rules.mk

* Create keymap.c

* fix syntax and add latest
2018-05-12 08:46:27 -07:00
MechMerlin
69ec54f3a4 FaceW Keyboard Support (#2939)
* preliminary checkin for facew keyboard

* Update readme file

* put the standard 60 ansi layout in

* update rules to have LAYOUT_60_ansi to use my userspace layouts
2018-05-12 08:45:19 -07:00
Hide
57113c7e49 Updated Ergo42 hdbx keymap (#2927)
* Add

* Revert "Add"

This reverts commit 4b10fef88712a63f4a91410410b4c99346fa1b24.

* Add Ergo42 keymaps

for JIS layout

* Fix hdbx keymap for Ergo42

Changed some keys layout and add description.

* Updated hdbx keymaps for Ergo42

Now using update_tri_layer_state.
Underglow color sync layer-switching.

* Fixed hdbx keymap

Deleted rgb define line (now using master)  and fixed some issues pointed out.

* update ignore

* fixed
2018-05-11 08:05:11 -07:00
Danny
5e86f087f8 Fix up info.json file for Iris (#2935) 2018-05-10 10:35:47 -07:00
WarmCat
933842067d Backlight and RGB now working for JJ50 (#2929)
* Added support for JJ50 from KPRepublic, no rgb or backlight control yet. Added as a layout of ymd96 at the moment (same microprocessor). Basic keymap with three layers to get started.

* Added support for JJ50

* Tidied up jj50 code, backlight and RGB is now working.

* Renaming "KEYMAP" to "LAYOUT" to adhere to the new QMK standards.
2018-05-10 08:28:58 -07:00
MechMerlin
c5264d6d89 Move ckeys workshop to its own directory (#2928)
* move obelus and nakey to ckeys directory

* delete the originals

* short readme about ckeys

* edit readmes to reflect new changes

* add build guide info..and here's me trying to retrigger the build job
2018-05-10 00:37:04 -04:00
MechMerlin
5346cb2d20 Support both AVR and ps2avrGB targets for new_project script (#2811)
* Stopping point at creating targets for new_project script

* Add second argument for target

* Add the ps2avrgb target

* consider the case where the firmware type target is not valid

* fix template files to be more generic

* Code cleanup

* Change variable name to be more descriptive

* make avr the default

* forgot to put the template files in

* Take out useless comments

* add usage info
2018-05-10 00:36:40 -04:00
yiancar
c89565cc3d General RGB matrix fixes (#2931)
* Added Modular keyboards L,R and NUM

Created code modules for the 3 modules of the modular keyboard.
Original idea by MechboardsUK. Uses i2c implementation similar to lets
split

* Remove modular from master

This is to fix incorrect branching

* General fixes for RGB_matrix

- Complited speed support for all effects
- Fixed raindrop effects to initialized after toggle
- Fixed raindrop effects to use all available LEDs
- Fixed effect step reverse function
- Moved RGB_MATRIX_SOLID_REACTIVE under correct flag

* Documentation update for RGBmatrix

* More doc updates
2018-05-10 00:31:24 -04:00
sameehj
03516d5460 gcc 8.10 compilation fix (#2914)
* Use memmove instead of memcpy

gcc 8.1 gives the following error:
lib/lufa/LUFA/Drivers/USB/Class/Common/HIDParser.c:93:5: error: 'memcpy' accessing 42 bytes at offsets 28 and 0 overlaps 14 bytes at offset 28 [-Werror=restrict]

This patch resolve this by using memmove instead

Signed-off-by: Sameeh <Sameeh Jubran>

* Remove ATTR_CONST from a void returning function

gcc 8.10 gives the following error when attempting to compile
lib/lufa/LUFA/Drivers/USB/Core/Events.h:334:5: error: 'const' attribute on function returning 'void' [-Werror=attributes]

Signed-off-by: Sameeh <Sameeh Jubran>
2018-05-09 23:39:46 -04:00
Mikkel Jeppesen
00596d55e3 Added propper support for Lets split vitamins (#2559)
* Added support for the upcomming Lets_split vitamins included

* Updated readme

* Corrected header of readme

* Enabled RGB

* Broke everything

* broke some more shit

* Revert "broke some more shit"

This reverts commit 6ad68e6269cc0d04c16564ce9598dfd3db1e23c1.

* Revert "Broke everything"

This reverts commit feeee4e40db15a726f2292b6a9406ef45c1e54a7.

* Fixed USB detection, and RGB on slave

* started modifying readme, to use msys2

* Added support for the upcomming Lets_split vitamins included

* Updated readme

* Corrected header of readme

* Enabled RGB

* Broke everything

* broke some more shit

* Revert "broke some more shit"

This reverts commit 6ad68e6269cc0d04c16564ce9598dfd3db1e23c1.

* Revert "Broke everything"

This reverts commit feeee4e40db15a726f2292b6a9406ef45c1e54a7.

* Fixed USB detection, and RGB on slave

* started modifying readme, to use msys2

* Updated readme to reflect use of msys2 Added avrdude to msys path

* added avrdude option to msys installer

* Removed extra installation of avrdude

* Renamed to vitamins_included and implemented drashnas changes

* Fixed include guard

* Fixed some includes, and added avrdude target to docs.

* Fixed default keyboard
2018-05-09 09:14:30 -07:00
MechMerlin
749916e6e2 Add standard layout to XD60 (#2925)
* add new layout and fix formatting

* Add 60_ansi layout so I can use my user space defined layouts

* Make QMK_KEYBOARD_H and LAYOUT renames

* update info.json file
2018-05-09 07:52:35 -07:00
MechMerlin
6ba2c74058 QMK Configurator Support for Paladin64 PCB (#2926) 2018-05-09 07:51:43 -07:00
Jack Humbert
6ba73e0e04 update doc options 2018-05-09 00:59:07 -04:00
yiancar
afacd42368 Add effect speed support for RGB Matrix *No EEPROM yet* (#2922)
* Added Modular keyboards L,R and NUM

Created code modules for the 3 modules of the modular keyboard.
Original idea by MechboardsUK. Uses i2c implementation similar to lets
split

* Remove modular from master

This is to fix incorrect branching

* Add effect speed support for RGB Matrix *No eeprom yet*

Keycodes RGB_SPI and RGB_SPD have been added to increase and decrease effect speed.

Speed is not saved in EEPROM yet as per Jack's request.

* Update rgb_matrix.c

* RGB Matrix speed fix rgblight.h

* More fixes for rgb speed. Speed functions declared but not used in rgblight

* More travis fixes..

* Another one for travis..
2018-05-08 23:23:21 -04:00
MechMerlin
23df5fb89a Alf X2 Layout Fixes (#2923)
* Move the microswitches to the top of the keyboard like how it is
physically

Format change to make things pretty

* Fix keymap to match the new layouts

* stopping point at new info.json file

* Update readme

* Finish up QMK Configurator fixes for info.json
2018-05-08 19:43:48 -07:00
Drashna Jaelre
6bd2b8ded3 Add Teensy ++ 2.0 bootloader support 2018-05-08 20:08:17 -04:00
Pim Ostendorf
0373c4dc9e small update to default keymap (#2902)
* changed behaviour of the spacebars in game mode to better support games
2018-05-08 16:04:14 -07:00
MechMerlin
ff758496b3 QMK Configurator Support for bananasplit (#2882)
* Change KEYMAP to LAYOUT refactor

* Add info.json for QMK Configurator Support

* Change LAYOUT_ansi to LAYOUT_60_ansi

* removed talljoe's placeholder keymaps

* change LAYOUT to LAYOUT_base
2018-05-08 16:00:19 -07:00
Hannes Egler
922d9b77ad more fixes for configurator (#2920) 2018-05-08 15:58:24 -07:00
noroadsleft
9d15f48427 Configurator updates for Atreus62 (#2913)
* c10r: Atreus62

* Removed bootloader flag from info.json
2018-05-08 15:55:50 -07:00
Jack Humbert
e7d4bc5291 enable eeprom for rgb matrix 2018-05-08 18:13:09 -04:00
Jack Humbert
c6ea96ab43 Merge branch 'master' of github.com:qmk/qmk_firmware 2018-05-08 17:19:42 -04:00
Jack Humbert
63d5c947d3 updated music mask 2018-05-08 17:18:15 -04:00
skullY
466ee76423 switch to the vue theme and add search 2018-05-08 12:47:08 -07:00
Drashna Jaelre
d678724ca8 Fix Atom47 Keyboard 2018-05-08 15:26:08 -04:00
Jack Humbert
14b7602a65 Adds IS31FL3731 RGB Matrix Implementation (#2910)
* adds is31fl3731 rgb matrix implementation

* fix build script for force pushes

* allow bootloader size to be overwritten

* adds planck light implementation

* split led config into 2 arrays

* idk

* betterize register handling

* update planck implementation

* update planck

* refine rgb interface

* cleanup names, rgb matrix

* start documentation

* finish up docs

* add effects list

* clean-up merge

* add RGB_MATRIX_SKIP_FRAMES

* add support for at90usb1286 to bootloader options
2018-05-08 15:24:18 -04:00
Hannes Egler
46dca121fd kbd75 fixes for the configurator (#2908)
fixed the info.json
2018-05-08 11:39:18 -07:00
MechMerlin
1b4ad6b4ae KBD8X QMK Support (#2915)
* initial commit

* add row/column and pin info

* Add first part of switch matrix

* documentation and additional config items

* map out the non confusing part of the matrix

* map out the top row

* ok I think I got it

* fix some stupid compile errors

* put in a default keymap

* rename LAYOUT to LAYOUT_all

* add a standard layout and info.json file

* Fix up readme for default keymap

* Add toggle key LED functionality

* changes based on review feedback
2018-05-08 11:38:11 -07:00
skullY
ccc87421e7 Some more tweaks to make everything look nice 2018-05-07 23:42:41 -07:00
skullY
303f425c6b Fix up info boxes. 2018-05-07 22:46:26 -07:00
skullY
9e5676650e Use docsfy to replace gitbook 2018-05-07 22:46:26 -07:00
Hannes Egler
06e5f9b25e added additional configurator support (#2905)
* added additional configurator support

Added support for choosing between 5 configurator options:
Layout (supports all keys)
Layout_ansi_1u
Layout_iso_1u
Layout_ansi
Layout_iso

* confirming to conventions

replaced .h filenames with QMK_KEYBOARD_H
2018-05-07 08:41:56 -07:00
MechMerlin
280c10cb09 Thanks to talljoe, 1up60 actually only has 16, not 20 RGB LEDs (#2906) 2018-05-07 08:38:09 -07:00
hdbx
24efce0eca Fixed hdbx keymaps (#2899)
* Add

* Revert "Add"

This reverts commit 4b10fef88712a63f4a91410410b4c99346fa1b24.

* Add Ergo42 keymaps

for JIS layout

* Fix hdbx keymap for Ergo42

Changed some keys layout and add description.
2018-05-05 10:48:28 -07:00
Pim Ostendorf
c9108f4b37 Added Tanuki Keyboard (#2894)
* added tanuki

* updated definitions to new qmk standard

* complying with suggestions made by drashna

* update rulesfile

* used qmk template for readme file
2018-05-05 10:47:32 -07:00
Nick Choi
824e48f294 infinite emoji (#2898) 2018-05-04 18:39:59 -07:00
sdothum
50b5c6ad72 update with qmk master (#2887)
* add splitography

* trim keymap.c

* add Makefile

* rename Makefile to rules.mk

* thumb key definition

* thumb key definition

* thumb key definition

* blue/orange layer swap, double qwerty steno exit

* fix TxBolt 1-3 key chord suppression (PREVENT_STUCK_MODIFIERS)

* add audio control

* beakl 8+10, dvorak (standard and splitography wide variant)

* beakl 8+10, dvorak (standard and splitography wide variant)

* shift layer home blocks

* regex layer key changes

* tilde align symbol navigation and regex layer

* splitography/planck code break out into common .h segments

* splitography/planck code break out into common .h segments

* splitography common library

* splitography common library

* splitography beakl altgr home row

* updating with qmk master
2018-05-04 18:36:23 -07:00
MechMerlin
5170398479 QMK Configurator support for Sentraq S60-x (#2889)
* change to QMK_KEYBOARD_H

* add info.json for QMK Configurator Support
2018-05-04 18:30:56 -07:00
Xerpocalypse
2e88f77675 Feature/ca66 json (#2897)
* Made an appropriate KLE and converted it.

For use with the CA66 on qmk.fm

* Changed KEYMAP to LAYOUT to match new info.json

* Changed #include and LAYOUT for new info.json
2018-05-04 18:25:12 -07:00
Oscillope
1ef819ba96 Add "oscillope" layout for the Orthodox (#2893)
* Initial layout for the Orthodox

* Added handy programming macros

* Swapped raise/lower and os/alt to make it easier to reach the more used keys.
2018-05-04 11:10:24 -07:00
zwnk
72ea1fd972 layer double tapping fixed (#2885)
* impstyle keymap added

* impstyle keymap updated

* mouse layer added to impstyle keymap

* keymap updated

* fixes

* impsytle layout: mouse layer added

* comments added

* comments added

* bugfix

* typo fixed

* double tap fixed

* double tap fixed

* still testing double tab

* double tab mouse layer is working

* README added

* README updated
2018-05-04 10:40:40 -07:00
Daniel Gordon
e6be4484e9 Update to tap dance docs (#2895)
* Added more comments
    * Documentation for 'quad function' tap dance now suggests to use the
      user's directory, and explains how to do so.
2018-05-04 10:39:57 -07:00
hdbx
1806509ad5 Add new keymap for Ergo42 (#2891)
* Add Ergo42 keymaps

for JIS layout
2018-05-04 10:27:00 -07:00
Biacco42
f969d5ed28 Submit/ergo42 default keymap update (#2890)
* Add new default keymap for Ergo42.

* Rename keymap names

* Update TAPPING_TERM
2018-05-04 10:24:35 -07:00
Sascha Grunert
87612df54b Add saschagrunert planck keymap (#2886) 2018-05-04 10:04:26 -07:00
Jack Humbert
6c1d6c3222 add discord link 2018-05-03 15:56:10 -04:00
Nico Hormazábal
ec6f3e07c5 Updated keymap for Dr NotSoKind Planck layout (#2877)
* added own keymap for planck

* dynamic macros

* moved the reset button

* Update readme for volume explanation

* Format

* added safe double shift

* changed the modified shift to regular shift, for allowing shift + F keys

* moved power stuff to the function layer

* del button on raise

* Update Readme.md

* updated F keys
2018-05-03 07:58:12 -07:00
noroadsleft
72b276bd8f QMK Configurator updates: Atom47, Atomic and Atreus (#2883)
* QMK Configurator update for Alpha 28-key

* QMK Configurator update for AMJ40

* QMK Configurator update for AMJ Pad

* QMK Configurator update for Atom47

* QMK Configurator update for OLKB Atomic

* QMK Configurator updates: Atom47 and Atreus

* QMK Configurator updates: Atom47 and Atreus

* QMK Configurator update for OLKB Atomic and Atreus

* QMK C10R: Attempting fixes for Atreus keymap errors

* QMK C10R: Attempting fixes for Atreus keymap errors

* QMK Configurator: Bug fixes for Atreus keymaps
2018-05-03 07:56:12 -07:00
ajp10304
c52b3c6126 AJP10304 Planck and JJ40 layouts. Added fn2 layer (#2879) 2018-05-02 18:36:15 -07:00
Charles Pletcher
9b91789193 Add dilly/pletcher layout (#2880)
* Add pletcher keymap to dilly/keymaps

For the moment, this keymap just removes unneeded RGB keycodes, since
an iPad will cut the keyboard off if LEDs are turned on.

* Drop support for A_RSFT, add media and autoshift

* Lower USB_MAX_POWER_CONSUMPTION for dilly on iPad

* Document USB_MAX_POWER_CONSUMPTION

This config option is useful for limiting the requested power by, e.g.,
an iOS device. While the default value is 500, a much lower value--say,
50--can sufficiently power a small keyboard without LEDs.
2018-05-02 18:35:16 -07:00
christopherjanzen
d1dfefc897 Add cijanzen Pearl 40% keymap (#2878)
* Add personal keymap for Pearl 40%

* Updating readme and adding keymap image

* Updated readme

* Force make to use Python 3

* cleanup keymap

* updated keymap image

* update readme for new keymap image

* reverting atmega32a_program

* removed redundant sections of user config and rules

* fixed user config file

* fixed led indicators to properly show layer 4
2018-05-02 10:57:33 -07:00
Florens Pauwels
ddb1c83695 Added archlinux support to linux_install.sh 2018-05-02 11:44:22 -04:00
Drashna Jaelre
e5540dd055 Update to drashna keymaps and userspace (#2876)
* Fix Unicode sample

* Add irony mark

* Remove unpretty keymaps

* Add QMK DFU and Conditional Music Mode

* Unicode fixes

* Unicode fixes

* Make layer indication more modular

* Finish removing Faux Click

* Cleanup of UserSpace and addition of 'update_tri_layer_state' function

* Add modifier status indicators to Orthodox

* Remove tri layer function

* Minor tweaks

* Remove the Orthodox's Indicator's reliance on layer_state_set

* Add custom EEPROM settings

* Make EEPROM config more efficient

* Viterbi Config

* Add Iris Keyboard layout and Userspace cleanup

* Iris keyboard tweaks

* Use Grave Escape on Iris

* Update Readmes
2018-05-02 11:39:46 -04:00
MechMerlin
9b8fc6f1c0 QMK Configurator Support for NIU Mini (#2874)
* QMK Configurator support for niu mini

* Fix naming

* looks like I messed up the include
2018-05-02 08:07:08 -07:00
krasmaralde
3d96359f71 Addkeymap/satan fakb (#2833)
* edited keymap and fitted for tada68

* edited rules to make mouse work

* filled config.h to make mouse cursor move smooth

* added descriptive readme

* added layout with split backspace and steamlined naming

* added layout with split shift, split backspace and split #

* changed keymap to fit the new layout

* removed duplicate layout KEYMAP_FAKB and pointed keymap.c to default on

* further cleanup from layout duplicate
2018-05-02 08:05:36 -07:00
noroadsleft
0495bf4491 QMK Configurator updates for Alpha 28-key, AMJ40 and AMJ Pad (#2873)
* QMK Configurator update for Alpha 28-key

* QMK Configurator update for AMJ40

* QMK Configurator update for AMJ Pad

* QMK Configurator update for Atom47

* QMK Configurator update for OLKB Atomic
2018-05-02 08:02:35 -07:00
zwnk
b51ad39047 iris impstyle keymap, mouse layer added (#2875)
* impstyle keymap added

* impstyle keymap updated

* mouse layer added to impstyle keymap

* keymap updated

* fixes

* impsytle layout: mouse layer added

* comments added

* comments added

* bugfix

* typo fixed
2018-05-02 07:56:00 -07:00
tdl-jturner
ec7223d9f0 Added new layout to XD75. See Readme for details (#2871)
* Clean commit of xd75 layout. See Readme for details

* Corrected header

* Switched to HSV and added init
2018-05-01 12:29:49 -07:00
M1K
5112af887a Added command history to terminal with other bug fixes, added new song to song_list.h (#2855)
* Implemented Terminal + added song to song_list.h

* Added wait() in order to prevent misbehaviour of 'command not found'
2018-05-01 13:39:46 -04:00
Anthony Metcalf
f756b72167 A default layout but with support for non-us keymaps (#2869)
* Made the keymap file match the TMK the board UT47 was origonally flashed with using native QMK codes.

* Add non-us layout
2018-05-01 08:48:47 -07:00
Eduardo Lourenço Pinto Neto
861dc88bc2 New XD60 keymap (Standard/GH60 ANSI + custom Fn layer) (#2866)
* XD60 standard 60% + custom Fn layer

* Fixed README.MD
2018-05-01 08:42:21 -07:00
Anthony Metcalf
bde1c9d909 Keymap file to match the TMK the board came flashed with (#2868)
* Made the keymap file match the TMK the board UT47 was origonally flashed with using native QMK codes.

* Add non-us layout
2018-05-01 08:34:06 -07:00
MechMerlin
7a57446f5e new layout for iso and arrows (#2865) 2018-05-01 08:31:41 -07:00
Ben
f31a8f2738 Add DZ60 ANSI layout with arrows and F keys (#2839)
* Add DZ60 ANSI layout with arrows and F keys

I testet the keymap on my dz60 keyboard.

* added new layout syntax and a readme

* fix typo in readme
2018-05-01 08:29:43 -07:00
WillyPillow
9689944c16 Clean up v60_type_r keyboard (#2848)
* Use *_kb instead of *_user in keyboard config

* Place POLESTAR-only #includes in its #ifdef
2018-04-30 08:40:34 -07:00
Eric
aade625054 QMK Configurator Support for KMAC (#2852)
* Added KMAC Config

* Removed .vscode
2018-04-30 08:22:35 -07:00
Eric
187d76476e QMK Configurator Support for JD45 and JD40 (#2851)
* Added JD45 Config

* Added JD40 Config

* Changed KEYMAP to LAYOUT for JD40 and JD45
2018-04-30 08:22:02 -07:00
Fig
43e589aa02 Add the fig-r layout to the preonic (#2858) 2018-04-30 08:20:05 -07:00
Eric
c76ab936c8 Changed KEYMAP to LAYOUT for HHKB (#2857) 2018-04-30 08:19:12 -07:00
Eric
3aeaf4e3ea QMK Configurator Support for Lightsaver V3 (#2856)
* Added Lightsaver Config

* Changed KEYMAP to LAYOUT

* Missed out one KEYMAP

* Changed lightsaver.h to QMK_KEYBOARD_H

* Missed out one lightsaver.h
2018-04-30 08:17:07 -07:00
MakotoKurauchi
1ff7473ce4 Add LOCAL_GLCDFONT option (#2854)
* add some comment about Helix customize and auto-setup RGBLIGHT_LIMIT_VAL

* add define USB_MAX_POWER_CONSUMPTION

* Helix keyboard OLED, RGBLIGHT enable/disable control integrate into rules.mk

rules.mk: add 4 Variables for compile control.

   # Helix keyboard customize
   # you can edit follows 4 Variables
   #  jp: 以下の4つの変数を必要に応じて編集します。
   OLED_ENABLE = no            # OLED_ENABLE
   LED_BACK_ENABLE = no        # LED backlight (Enable WS2812 RGB underlight.)
   LED_UNDERGLOW_ENABLE = no   # LED underglow (Enable WS2812 RGB underlight.)
   LED_ANIMATIONS = yes        # LED animations

config.h: auto set RGBLED_NUM by HELIX_ROWS and rules.mk's define

* HELIX_ROWS define move from config.h to rules.mk

* add readme.md

* rename readme.md to readme_jp.md

* add readme.md and modify readme_jp.md

* change helix/ssd1306.c for select glcdfont.c position

* add variable LOCAL_GLCDFONT into each keymaps rules.mk
2018-04-30 08:15:49 -07:00
Eric
de97c560f5 Added FC980C Config (#2850) 2018-04-30 07:46:23 -07:00
Eric
bc89c4f104 QMK Configurator Support for KBD66 and RAMA M6-A (#2849)
* Added KBD66 Config

* Added RAMA M6-A Config

* Changed KEYMAP to LAYOUT for KBD66 and M6-A
2018-04-30 07:45:38 -07:00
Tobias O
2054f20b69 image fix (#2846) 2018-04-30 07:39:19 -07:00
Louis Orleans
c7d3f31f64 board(whitefox): add layout (#2845)
*  add base layout

*  add mouse keys

* 🔥 remove unwanted keys

* 📝 add readme
2018-04-30 07:37:47 -07:00
zer09
7216fd0f47 My userspace and lets_split keymap (#2842)
* copied lets_slit to splinter

* initial splinter layout

* remove unused keymaps

* implemented second half of the keyboard

* initial definition of tap dance

* the tap dance is working now

tap dance for right hand 4c 2r
hold - shift
single tap - n
double tap - ñ
triple tap - Ñ

* clear the keymap.c

* put the tap state on to array

* the n tilde tap dance should produce right shift if hold

* add esc grv tap dance

* remove the defined SS_LSFT on tap_dance.h

because it was added on the quantum.h

* minor cleanup for the keymap

* use the X_* on tap dance

* added super alt tap dance

* use the NO_TAP on tap dance reset

* allow track what rows and cols pressed

* added the RGUI_ALT

* keymap arrangement

* use i2c

* initial rgb

* layer colors

* initial rgb pressed key

* set the layers led

* SUCCESS!!!

* cleaning

* improve shifted layer

* led brightness

* initial caps rainbow

* rename SET_LED_RGB to SET_LED_RGB_HEX

* clean the SET_LED_RGB_HEX and added SET_LED_RGB

* clean format

* caps lock rainbow

* rename key_led to set_key_led

* caps lock rainbow enhanced

* make varibiables static

* change back the loop max value to 360 for the rainbow

* add scroll lock to the rainbow led

* fix pos calculation of right hand board

* add ative keys and make rainbow color can override by key press

* remove the TOTAL_MATRIX_POINTS

* some improvments for the rgb

* call the rgblight_set on the process_record_user

* some enhancement for the leds

* pass the dim value to set_layer_led and limit the brightness on _VL

set the brightness to 2 if the dim value is less than 2 because
their is not enought power for the leds.

* remove the rgb steps on the config

* use the non rev config

* remove all the revisions

* favor i2c instead of serial and remove all the ref for the serial

* clang formatting

* allow to save to eeprom the brightness value

* add bootloader caterina this will enable soft reset key

* initial commit for the userspace

* added my own keymap for splinter

* first working userspace

* move splinter to handwired keyboards

* handwired splinter default keymap

* move some config to my keymap

* cleanup some headers on the keymap

* move the EECONFIG_RGB_DIM to the user space

* I fix remove the GUI on SPC and ENT

* remove the default include on tap_dance.c

* add lights.c and refactoring

* fix wrong source for led index

* seperate the variable on set_layer_led for readabilty.

* set the usb max power consumption to 50

* fix led lighting

* add new enums for tap dance

* use romeve path avr on eeprom.h

* fix wrong spelling on TP names

* changed the tap dance

* allow to set rainbow on some pressed key

* add reset key

* fix error on matrix.c if ROW2COL is used

* add extraflags -flto

* See e2352d4

* Got no love from i2c, serial to the rescue

* Fix the led will lit up to color red after boot

* Trial if the power can handle yellow color at full

* Add comment

* Use EE_HANDS

* add config.h in the use space

* KC_N on BL should wrap in SFT_T

* See d13567d, put it back but increase 1 level

* Fix led soldering mistake

* set the tapping_term to 100

* Use TT for the changing the layer

* Remove the changing space to enter and vice version on BL and UL

* Increate the tapping term

* Use tap dance on changing layer

* Add assorted layer

* propery way to tapdance

* Remove DA_EGRV

This also fix the wrong placement of the reset and dance lspr should register
the KC_LGUI on finished not unregistered.

* Remove the media control to the up and down layer

* Remove the interrupted state of the tap dance

* swapt the space and enter on to th caps

* Shorthand

* Keymap update

* My keymap for lets_split

* cleaning
2018-04-29 13:02:37 -07:00
Mattia Dal Ben
3b7b1994cd Redox keyboard code (#2843)
* Added Redox keyboard with default keymap (IT layout)

* Updated manufacturer url

* Applied requested changes
2018-04-29 13:01:33 -07:00
Andy
19aa2c34e8 Add dz60 iso layout with vim-style arrows (#2837) 2018-04-28 08:57:53 -07:00
Drashna Jaelre
6f37bd6678 Fix Clicky Down code 2018-04-28 11:50:02 -04:00
krasmaralde
3d6119856a Addkeymap/tada fakb (#2830)
* edited keymap and fitted for tada68

* edited rules to make mouse work

* filled config.h to make mouse cursor move more smooth

* added descriptive readme
2018-04-28 08:10:30 -07:00
Pawnerd
5dc60c06a9 Add knops mini info json and implemented latest QMK standards (#2832)
* added info.json to knops mini keypad.

* updated the keyboard to follow the latest qmk standards.
2018-04-28 08:06:07 -07:00
bspsbee
01a85b780c Add RGB keymap to UT47 (#2826)
* Create readme.md

* RGB keymap

* Update matrix.c

Remove serial when not used.
2018-04-28 07:52:15 -07:00
Eric
4afd970dc4 QMK Configurator updates to Tada68 (#2825)
* Added Tada68 ISO Config

* Fixed missing up-arrow on Tada68 info.json
2018-04-27 15:44:33 -07:00
Evan
c17d15a305 Add keymap diagram (#2819)
* Add personal Tada68 keymaps

* remove uneccessary tada68 folder

* recommit with temp name

* remove bad folder name

* fix bullet list format

* rename to fezzant

* remove unnecessary config.h file

* Add info.json

add QMK Configurator .json file

* Delete helix_rev_2.json

* add diagram to UT47 keymap file

* add remaining keymap diagrams for ut47 keymap
2018-04-27 15:20:03 -07:00
noroadsleft
625a243be8 QMK Configurator updates for Mechmini v2 (#2820)
* Mechmini 2 updates for QMK Configurator

* Update info.json
2018-04-27 15:19:15 -07:00
MechMerlin
0d98822144 QMK Configurator Support (#2821)
- Change all KEYMAP to LAYOUT
- Add info.json
- Add QMK_KEYBOARD_H
2018-04-27 15:17:39 -07:00
Eric
102433d8bc QMK Configurator Support for HHKB and Staryu (#2823)
* added hhkb eric

* dz60 and hhkb

* editted eric hhkb and dz60

* Added HHKB Config

* Removed HHKB Config

* Added HHKB Config

* Changed the legends on HHKB info.json

* Added Tada68 ISO Config and Staryu

* Removed Tada68 ISO Config
2018-04-27 15:17:10 -07:00
Drashna Jaelre
376a384b23 Fix UT47 matrix (#2824)
* Fix UT47 matrix

* Use both spots in the matrix for the space bar
2018-04-27 15:16:42 -07:00
Salt-Peanuts
34ce1ed016 Updated tri-layer block in keymap file. (#2827)
* Updated info and fixed minor errors

* Updated folder name; overdue updates to keymap and readme files

Updated folder name; overdue updates to keymap and readme files

* Updated tri-layer feature

* Revert "Updated tri-layer feature"

This reverts commit 59b8b85761740e24f671e10fceea869f06a33ade.

* Updated tri-layer on keymap

* Fixed typos
2018-04-27 15:16:13 -07:00
Yan-Fa Li
17223166ce Add missing 7U and 4U layouts to 2x1800 (#2829)
This prevents the layouts from loading in configurator
2018-04-27 15:14:58 -07:00
MechMerlin
33671e5cd1 New Numpad Support: naKey from ckeys.org (#2828)
* Add naKey on behalf of ckeys

* Update James's code to more modern QMK standards

* Add info.json for QMK Configurator support

* Fix that build breakage

* Rename naKey.c to nakey.c

* Rename naKey.h to nakey.h
2018-04-27 15:13:03 -07:00
Erin Call
050c21d35f Bring dactyl/matrix.c in line with quantum/matrix.c (#2613)
* Use the new debounce algorithm in dactyl/matrix.c [#2065]

This incorporates the fixed/optimized debounce code added to
quantum/matrix.c in:

* 508eddf8ba8548d3f71e1c09a404839beb49f45c
* 4c6960835c0a6e29670dabdc27117d7d3c7f99f5
* 32f88c07173b795c6981c779057dceba00aeb1cb
* f4030289744fc6dc82dd85c955070c0845813cc5
* a06115df19a74d39b08758472b221e630c3680d3

* Fix the row/column swap in dactyl [#2065]

With a column-driven keyboard, reading from the mcp23081 returns a
column-state, which takes some extra work to translate into the
row-state used in the actual matrix. The ergodox_ez code sidestepped
that problem by calling rows "columns" and columns "rows." With this
change, the dactyl now calls rows "rows" and columns "columns."

* Cleanup: variable names, documentation [#2065]

* Support MATRIX_MASKED in dactyl/matrix.c [#2065]

* Only unselect one col in unselect_col [#2065]

Bonus: saves one i2c transaction per matrix_scan!

* Implement COL2ROW in dactyl/matrix.c [#2065]

* Fix a typo in dactyl/matrix.c

This entirely doesn't matter. The PORT values are set during
init_keyboard and never change. They're repeatedly set to the same
thing. These PORT lines shouldn't even exist, but since they do, they
should at least look right.

* Implement COL_PINS/ROW_PINS for dactyl [#2065]

* Rename "mcp23018" to "expander" [#2065]

I honestly don't know whether/how well this code works with other I/O
expanders, but at least in theory, it should be generic enough to work
with others. Given that, the variable names shouldn't refer to a
specific model of expander.

* Remove matrix_power_up from dactyl/matrix.c [#2065]

It's commented out in quantum/matrix.c, and the dactyl has no power
up/down behavior beyond being unplugged (which goes to matrix_init), so
there's no sense keeping it around.

* Only initialize expander_input_mask once [#2065]

...and rename input_mask to expander_input_mask, since now that it isn't
scoped to init_expander it isn't clear that it's only for the expander.
2018-04-27 14:47:41 -04:00
MechMerlin
642bf00baf FC660C Configurator Support (#2817)
* Change KEYMAP to LAYOUT

* Add info.json for configurator support
2018-04-26 20:31:05 -07:00
Nick Choi
510510e9db avocado toast change (#2816) 2018-04-26 20:28:54 -07:00
MechMerlin
6b45e8aec1 QMK Configurator Support MF68 (#2815)
* Add QMK Configurator support for MF68

* Add QMK Configurator support for MF68 BLE

* change to QMK_KEYBOARD_H in keymaps
2018-04-26 20:28:22 -07:00
MechMerlin
8d65d69b8d More QMK Configurator Support for Pearl (#2814)
* Rename LAYOUT to LAYOUT_all
Add additional layouts for the pearl with all splits
and the pearl with splits but a 6.25u spacebar.

* add new layouts to info.json
2018-04-26 17:19:42 -07:00
Yan-Fa Li
535a4d55ae Keymap Fixes for 7U layout, RGB and Audio support (#2779)
- confused KC_COMM, KC_SLSH, KC_DOT order
 - KC_INS -> KC_DEL
 - Document audio on C4 and B7, set default RGB to pin C6
2018-04-26 13:51:19 -07:00
Martin Sandiford
66e40529aa Change handling of adjust layer to make it more LT(...) friendly. (#1625)
* Change handling of adjust layer to make it more LT(...) friendly.

* Update based on feedback from drashna.

* Change handling of adjust layer to make it more LT(...) friendly.  This reworks handling to make it a little more friendly to include in keymaps.
2018-04-26 16:10:03 -04:00
James
80ccbc7b54 QMK Configurator update for the Pearl 40% (#2810)
* QMK Configurator updates for the Pearl 40%

Attempt to get the physical layout as displayed in the Configurator more true-to-life.

* Bugfixes per mechmerlin

"By changing KEYMAP to LAYOUT in the .h file, all the keymaps who rely on KEYMAP are now broken. You need to go into the keymap directory and fix all the keymaps affected by this change. Should just be an issue of renaming KEYMAP to LAYOUT."

* Merge pull request #2 from noroadsleft/noroadsleft-patch-20180425

Bugfixes per mechmerlin

* keymap.c updates for Pearl

-#include "pearl.h"
+#QMK_KEYBOARD_H
2018-04-26 11:06:59 -07:00
David Wen Riccardi-Zhu
644efe48bf Update piemod keymap (#2786)
Add RGB control, fix keymap to work with latest QMK.

Squashed commit of the following:

commit 3c5d95e4809d446fe5304aab9274d527182835e6
Author: dwrz <dwrz@dwrz.net>
Date:   Sat Apr 21 18:26:58 2018 +0000

    Make rules.mk for Let's Split piemod

commit 0cc5fc135220f0eb48509d2b027e4cad033d74a5
Author: dwrz <dwrz@dwrz.net>
Date:   Sat Apr 21 18:26:25 2018 +0000

    Add RGB control keys to function layer

commit d1b6bfa5f34123658534f99c97471b779b971ffb
Author: dwrz <dwrz@dwrz.net>
Date:   Sat Apr 21 18:26:03 2018 +0000

    Refactor MACROS to COMBOS

    MACROS was conflicting with existing code.

commit ce2f47b13fb3bfab9d63292ddba466879d300051
Author: dwrz <dwrz@dwrz.net>
Date:   Sat Apr 21 18:25:26 2018 +0000

    Add typing options to config.h

commit cb0aa62b81a17aaaee1f9843138495b9ca14b6d4
Author: dwrz <dwrz@dwrz.net>
Date:   Sat Apr 21 18:25:10 2018 +0000

    Add RGB options to config.h
2018-04-26 07:51:58 -07:00
muffinlynx
10d287d1aa ScrabblePad updates (#2809)
* Update config.h

Matrix pinout updated to current revision.

* Add updated matrix, define RGB pin

Matrix updated to current pinout, pin for WS2812 defined.
2018-04-26 07:30:05 -07:00
Danny
eb89a372ec Add BFO-9000 keyboard (#2807) 2018-04-25 10:47:13 -07:00
MechMerlin
1c6b9323b2 Fix QMK Configurator bug with rendering the Eagle layout (#2806) 2018-04-25 07:44:37 -07:00
Carlos
4ad37331d3 Fix missed key assignment (#2803) 2018-04-24 19:37:05 -07:00
yiancar
4674664c4a Cu75 iso fix (#2801)
* Added Modular keyboards L,R and NUM

Created code modules for the 3 modules of the modular keyboard.
Original idea by MechboardsUK. Uses i2c implementation similar to lets
split

* Remove modular from master

This is to fix incorrect branching

* CU75 keymap fix

Incorrect keymap now fixed
2018-04-24 13:19:34 -07:00
Carlos
32446eeeb6 UT47 layout (#2791)
* Add new project files for UT47

* Copy over keymap and related files

* Add LED_controls.ino

* Add README instructions

* Attempt sending press byte data

* Disable mousekeys

* Enable sending serial data to LED controller

* Update LED mode names

* Remove extra file

* Add LED enable flag

* Update READMEs with more info

* Credit original author

* Update copyrights

* Update docs

* Changed based on review

* Move layout screenshot to Imgur

* Append to src

* Enable mousekeys to fix bad keycodes

* Additional changes based on feedback

* Fix fn layer keys
2018-04-24 13:19:04 -07:00
nariox
1feb42a108 DZ60: Add Caps Lock LED for default keymap (#2800)
Commit b546da0 added better init handling, but removed Caps Lock LED handling. This re-adds it (in the right place).
2018-04-24 12:43:23 -07:00
Kurth O'Connor
7d08e48c50 Syntax update (#2660)
* initial commit

* init qmk keymap

* update docs

* update documentation

consolidate readme files; update `make` instructions
revise ascii keymap representation

* update documentation

* edit and update `make` syntax

- `make` syntax update
- fix typo
- add link to teensy video (already linked from online configurator)

* permissions restored

* remove superfluous files from branch

* reset idiosyncratic execute permissions

* reset idiosyncratic execute permission
2018-04-24 09:49:34 -07:00
MakotoKurauchi
d1481172bc Helix oled rgb compile sw (#2606)
* Helix keyboard OLED, RGBLIGHT enable/disable control integrate into rules.mk

rules.mk: add 4 Variables for compile control.

   # Helix keyboard customize
   # you can edit follows 4 Variables
   #  jp: 以下の4つの変数を必要に応じて編集します。
   OLED_ENABLE = no            # OLED_ENABLE
   LED_BACK_ENABLE = no        # LED backlight (Enable WS2812 RGB underlight.)
   LED_UNDERGLOW_ENABLE = no   # LED underglow (Enable WS2812 RGB underlight.)
   LED_ANIMATIONS = yes        # LED animations

config.h: auto set RGBLED_NUM by HELIX_ROWS and rules.mk's define

* HELIX_ROWS define move from config.h to rules.mk

* add readme.md

* rename readme.md to readme_jp.md

* add readme.md and modify readme_jp.md
2018-04-24 09:43:57 -07:00
Jack Humbert
f440bbbc11 Update readme.md (#2687) 2018-04-24 09:37:52 -07:00
Eric
eef75b82bd Edited keymaps for eric/dz60 (#2793)
* added hhkb eric

* dz60 and hhkb

* editted eric hhkb and dz60
2018-04-24 09:27:33 -07:00
Daniel H Klein
6beb9d3ac2 Changes to danielhklein nyquist config (#2783)
* nyquist

* danielhklein nyquist setup

* shift left controls

* remove readme

* cleanup before pr

* ready for pr

* updated bootmagic, arrows, and special chars

* allow gui on arrows

* replace arrows with right modifiers

* documentation re-added

* updated personal repo

* fixes to layers
2018-04-24 09:25:20 -07:00
David Rambo
2286cedb70 Update personal colemak Iris layout and deleted redundant folders (#2794)
* DRambo Planck keymap in Colemak

* DRambo Planck keymap in Colemak

* Satan GH60 keymap for Bri

QWERTY layout with Navigation layer toggled with "Caps Lock" key.

* xd75 keymap in Colemak for Mac and Win

* DRambo Planck keymap in Colemak

* Satan GH60 keymap for Bri

QWERTY layout with Navigation layer toggled with "Caps Lock" key.

* xd75 keymap in Colemak for Mac and Win

* Added Iris Colemak layout for Mac, Windows, and Gaming.

* changed comment text

* DRambo Planck keymap in Colemak

* Satan GH60 keymap for Bri

QWERTY layout with Navigation layer toggled with "Caps Lock" key.

* xd75 keymap in Colemak for Mac and Win

* Added Iris Colemak layout for Mac, Windows, and Gaming.

* changed comment text

* Added Iris keymap from DavidRambo

* Added planck keymap from DavidRambo

* Added xd75 keymap from DavidRambo

* Added readme

* Deleted redundant repos in Iris, Planck, and XD75 keymaps.

* Tweaked XD75 keymap

* DRambo Planck keymap in Colemak

* Tweaked XD75 keymap

* Merge branch 'master' of https://github.com/DavidRambo/qmk_firmware

Removed redundant repos with "Rambo" title.

* changed iris nav layers

* changed nav layers for xd75

* Updated Iris, tweaked nav on xd75
2018-04-24 09:03:02 -07:00
MechMerlin
a0a4c9102c Add Generic Keymap for my boards (#2795)
* add mechmerlin 60 ansi layout

* put meaningful #defines

* missed the backslash

* add merlin split layout

* rename to have a -ansi

* Add appropriate readme files

* rename KEYMAP to LAYOUT

* support for default layout

* support for the community keymaps

* make sure I don't break the configurator

* Don't break the configurator Merlin
2018-04-24 09:01:40 -07:00
MechMerlin
fda23af281 Support for new keyboard: Meme (#2797)
* initial commit for meme keyboard

* Fix that row by column

* Fix those dimensions

* work in progress commit

* got that switch matrix to work

* add all supported layouts

* add info.json for QMK configurator support

* let my name be known
2018-04-24 09:00:22 -07:00
Luciano Malavasi
70101cf611 Formatting changes to Alpha readme.md (#2781)
* alpha with firmware added to list of keyboards, ready to push

* revised according to drashna's fixes

* keymap -> layout?

* fixed macro and improved layout issuesOC

* Update rules.mk

* Update alpha.h

* Update and rename keyboards/alpha/layouts/default/28_alpha/keymap.c to keyboards/alpha/keymaps/default/keymap.c

* alpha/readme.md added according to qmk templateOC

* resolved a careless merge conflict

* bugfix

* Fixed /keyboards/alpha/readme.md formatting issues
2018-04-22 20:09:52 -07:00
Shinichi Ohki
fb5115f6cd Fix command line options prefix. (#2790) 2018-04-22 14:19:45 -07:00
Joe Wasson
7801356bd4 Add layouts to 1up60rgb. (#2789)
* Add layouts to 1up60rgb.

* Fix build break in header file for 1up60rgb.
2018-04-21 23:16:25 -07:00
MechMerlin
5d5b161d80 ALF X2 QMK Configurator Support (#2788)
* Add microswitch information for visiblity in QMK Configurator

* Add info.json with layouts for ALF X2

* Add new LAYOUTs

* remove that extra comma
2018-04-21 17:00:46 -07:00
Drashna Jaelre
7cb3c0e466 Add pretty layout to all ergodox clones (#2686)
* Add pretty layout to all ergodox clones

* Info.json cleanup for EZ

* Add info.json for ergodone

* info.json cleanup
2018-04-21 17:00:43 -04:00
Evan
3c224bffc8 Add personal Tada68 Keymap (#2633)
* Add personal Tada68 keymaps

* remove uneccessary tada68 folder

* recommit with temp name

* remove bad folder name

* fix bullet list format

* rename to fezzant

* remove unnecessary config.h file
2018-04-21 13:37:26 -07:00
Joe Wasson
5ca9aecfb4 Talljoe's layout with common keymap. (#2764)
* Add userspace to talljoe layout.

* Move more authority to userspace and create Bananasplit layout.

* Move more things into userspace.

* Common Core example

* More work on common layout.

* Num layer.

* talljoe-ansi layout

* Updates for Zeal60

* Add Zeal60 to 60_ansi_split_bs_rshift

* Swap Escape and Grave

* Num-layer tweaks

* More tweaks.

* Add 1up60rgb to world of layouts.

* Rename ansi_split_bs_rshift layout to hhkb.

* Control RGB Backlight.

* change capslock led

* Remove obsolete line from rules.mk.

* Add user-friendly userspace override.

* Fix enter for 1uprgb60

* Revert "Rename ansi_split_bs_rshift layout to hhkb."

This reverts commit 53133719db25c7cb6a199108bbf5d980481a45f4.
2018-04-21 10:48:30 -07:00
Drashna Jaelre
33fdd1d255 Fix Audio Clicky sub-feature (#2784)
* Fix Audio Clicky feature

* Add to features
2018-04-21 12:30:10 -04:00
Mike Kozlowski
d1c3419d2a Rework layer function docs (#2656)
* Rework layer function docs

* Update per PR feedback
2018-04-21 09:21:46 -07:00
fixed
9a7347e357 Adds config for ALF X2 60% keyboard (#2765)
* Adds initial keyboard config and layouts for ALF X2 60%

* Cleans up empty if/else blocks

* Renames KEYMAP to LAYOUT across the alf_x2 config files.

* Replaces include in alf_x2 keymaps with QMK_KEYBOARD_H macro
2018-04-21 07:32:53 -07:00
bjacques
e36d6bbbe3 Update feature_tap_dance.md (#2643) 2018-04-21 00:43:36 -07:00
MechMerlin
14b2a35571 Use QMK_KEYBOARD_H instead of the mykeyboard.h (#2780) 2018-04-21 00:22:30 -07:00
Drashna Jaelre
1bb77c0875 Update to drashna keymaps and userspace (#2756)
* Re-add NO_SECRETS option

* Add Thumb Clusters defines for default layout

* Minor tweaks

* More Minor tweaks

* Revert Orthodox layers and move function keys around

* Fix keymap so it will compile under the Infinity

Since I haven't added 'pretty' layouts to it yet

* Cleanup of userspace

* Cleanup keymaps

* OMG fix Workman

* Move mods layer key around

* Reduce debounce in Ergodox EZ

* Fix Infinity layers

* Add list of pins used by Ergdox EZ for easy reference

* Revert "Reduce debounce in Ergodox EZ"

This reverts commit 8a3db2673b419ef8032c40a6d29156cef632f9cd.

* Add Clicky toggle to Orthodox

* Fix Audio Clicky keycode

* Enable Faux Clicky by default

* Add Unicode stuff
2018-04-20 17:53:19 -07:00
Drashna Jaelre
4e4101efdf Fix Merge issue that reverted LS default keymap to KEYMAP (#2778) 2018-04-20 17:32:53 -07:00
Fayek Helmi
46d12d90df changed the ALTFN layer key position and Readme file 2018-04-20 17:20:52 -07:00
Danny
c604cd6fd7 Add Nyquist Rev. 2 (#2414) 2018-04-20 17:02:09 -07:00
Luciano Malavasi
2a63e21279 Firmware for Alpha (28-key keyboard) (#2755)
* alpha with firmware added to list of keyboards, ready to push

* revised according to drashna's fixes

* keymap -> layout?

* fixed macro and improved layout issuesOC

* Update rules.mk

* Update alpha.h

* Update and rename keyboards/alpha/layouts/default/28_alpha/keymap.c to keyboards/alpha/keymaps/default/keymap.c

* alpha/readme.md added according to qmk templateOC

* resolved a careless merge conflict

* bugfix
2018-04-20 13:06:10 -07:00
Christian Hartlage
503335be25 Added GH60 Satan ISO layout with split right shift and split backspace (#2773)
* added an iso layout that supports split backspace and split rshift

* added a keymap which uses the iso layout with split backspace and split rshift

* added a #define LAYOUT_ for the KEYMAP_

* fixed missing newline
2018-04-20 09:43:51 -07:00
Kenneth Aloysius
0912c42f04 Add Staryu macropad support (#2768)
* Add M6-A keymap

* Update XD60 keymap

* Update XD60 keymap readme

* Update JJ40 and Let's Split keymaps

* Add readme for M6-A

* Fix typo, update JJ40 README

* Update jj40 readme

* Cleanup jj40 keymap

* Revert Let's Split QWERTY layer to default before #2010

* Update numpad layers

* Fix: Let's Split keymap getting stuck mods due to having keycodes assigned on the Raise layer

* Keep ASCII art consistent with keymap

* Staryu: initial port

* Add personal keymap

* Added and updated READMEs

* Fix: default keymap for staryu

* Rudimentary backlight support.

* Enabled mousekeys for default keymap

* use QMK_KEYBOARD_H and LAYOUT

* Update readme.md for NIU mini: flash using avrdude

* Fix missing linebreaks for Staryu README

* Update readme.md
2018-04-20 09:14:40 -07:00
Thanh Hai Mai
3ea8bcb8ae Add Carpalx keymap for Kinesis (#2771) 2018-04-20 09:13:14 -07:00
Eric
0ce2cc8915 Added dz60/eric and hhkb/eric (#2772)
* added hhkb eric

* dz60 and hhkb
2018-04-20 09:12:15 -07:00
Salt-Peanuts
ded9390944 Updated folder name; overdue updates to keymap and readme files (#2770)
* Updated info and fixed minor errors

* Updated folder name; overdue updates to keymap and readme files

Updated folder name; overdue updates to keymap and readme files
2018-04-20 08:53:35 -07:00
MechMerlin
3cab04dfa3 QMK Configurator support for alps64 pcb (#2774)
* Change KEYMAP to LAYOUT

* add layouts that match the layouts hasu has defined for alps64

* add layouts in info.json for aek, standard, and infinity

* Add LAYOUT_iso and LAYOUT_all along with respective info.json LAYOUTs
2018-04-20 08:52:56 -07:00
That-Canadian
1de6458921 Launchpad (#2767)
* Line ending stuff again

* Added base launchpad files and a default layout

* Updated KEYMAP to LAYOUT, also editing default keymap a bit and added a readme
2018-04-20 08:51:34 -07:00
Salt-Peanuts
3bb647910a Updated info and fixed minor errors (#2769) 2018-04-19 18:11:07 -07:00
Josh Asplund
5ec3bd9e40 Adds default IC keymap (#2677) 2018-04-19 09:30:45 -07:00
Kenneth Aloysius
d3c6da7aff Updated personal keymaps, fixed Let's Split default keymap, updated JJ40 README (#2704)
* Add M6-A keymap

* Update XD60 keymap

* Update XD60 keymap readme

* Update JJ40 and Let's Split keymaps

* Add readme for M6-A

* Fix typo, update JJ40 README

* Update jj40 readme

* Cleanup jj40 keymap

* Revert Let's Split QWERTY layer to default before #2010

* Update numpad layers

* Fix: Let's Split keymap getting stuck mods due to having keycodes assigned on the Raise layer

* Keep ASCII art consistent with keymap
2018-04-19 09:28:55 -07:00
Cole Markham
47f55f417b Implement magic 8-ball mode for big series switch (#2763) 2018-04-19 09:09:33 -07:00
MechMerlin
eaa0b24335 ScrabblePad Support (#2760)
* Initial commit for donutcat's 15x15 monstrosity

* modify readmes to be more descriptive

* Add info.json to support QMK Configurator

* Update copyright and change REPLACE_WITH_YOUR_NAME to MechMerlin

* update naming convention for ScrabblePad

* remove .vscode directory as per Jack's comments
2018-04-19 11:31:50 -04:00
Christian Richter
75360ebdae Add gh60 chaser Layout (#2757) 2018-04-19 07:20:03 -07:00
Harry Mills
8ec2269519 Add magic backspace to my layout (#2758)
* Add Haegin's keymap

* Potential improvements to the keyboard

* Add haegin minidox layout

* Add Haegin's keyboard to ergodox layouts

* Update Haegin's minidox keymap

* Add home, end, and page up and down

* Magic Backspace

Backspace still acts as control when you hold it down, but if you tap it
twice and hold it's a held backspace. Tapping it more than twice it
continues to act as backspace, but it deletes more characters with each
tap with the quantity deleted based on the fibonacci sequence.

* Switch to deleting words after 4 taps

When hitting backspace, after 4 taps this switches to deleting by word
because if you're hitting backspace that frantically you must need to
delete a lot of stuff. Holding backspace after 4 taps will delete words
in the same way that holding alt+backspace deletes words on a normal
keyboard.
2018-04-19 07:18:58 -07:00
Joe Wasson
5226e4c79b Correct documentation for PREVENT_STUCK_MODIFIERS 2018-04-19 01:52:34 -04:00
blindassassin111
7dda7158fb added omnikey_blackheart keyboard support (#2688)
* added omnikey_blackheart keyboard support

* fixing omnikey_blackheart layout

* fixing omnikey_blackheart NKRO
2018-04-19 01:52:17 -04:00
Drashna Jaelre
8b0b17a369 Add Faux Clicking as subset of Audio feature (#2748)
* Add Faux Clicky to main Audio feature

* Make clicky settings user configurable

* Add additional documentation

* Don't play when music mode is enabled (hopefully)
2018-04-19 01:47:04 -04:00
Cole Markham
23b45710ac Add support for Big Series 1-key PCB by Woodkeys.click 2018-04-19 01:45:21 -04:00
Cole Markham
b4bdebab9a Meira updates for bluetooth and audio (#2731)
* Add audio output

* Update Miera to fix bluetooth issues, bootloader definition.

* Added keymap with audio example

* Cleanup Meira audio code
2018-04-19 00:57:24 -04:00
adiron
3d3c093173 Added bending to MIDI (#2740)
This is done via MI_BENDD and MI_BENDU. At the moment the value is
hardcoded and cannot be adjusted (future commit?) and is the max for the
`midi_send_pitchbend` function (up or down).

`MI_BENDD` and `MI_BENDU` both require `#define MIDI_ADVANCED`

MIDI pitch bend was already implemented in `protocol/midi.c`, I merely
added the keycodes to trigger them. :) (thanks to Jack, two years ago
in commit fb4fe52c apparently)
2018-04-18 22:22:08 -04:00
internetirl
a7fca47686 Link to Atmel's flip is broken. (#2752)
The link to Atmel's flip is broken. It re-directs to http://www.microchip.com/. Please update!

I think this is the correct link. Please verify.

http://www.microchip.com/developmenttools/productdetails.aspx?partno=flip
2018-04-18 22:21:36 -04:00
Ethan Madden
9ab786d1d8 Added amj40 keymap (#2754)
fixed shift area

keymap updates to try to make this thing usable

documentation tweaks

fix readme mismatch

clean up and finish docs
2018-04-17 20:50:50 -07:00
zwnk
ec9058f227 impstyle keymap added (#2753) 2018-04-17 20:50:20 -07:00
Maarten Dekkers
5aada76f12 Update maartenwut's keymaps (tada68, atom47) and add GH60 layout (#2751) 2018-04-16 15:15:28 -07:00
fredizzimo
e9d32b60b7 Add a custom USB driver for ARM (#2750)
* Copy Chibios serial_usb_driver into the chibios/protocol

It's renamed to usb_driver to avoid name conflicts

* Make the usb driver compile

* Disable ChibiOS serial usb driver for all keyboards

* Change usb_main to use QMKUSBDriver

* Initialize the usb driver buffers

* Add support for fixed size queues

* Fix USB driver initialization

* Don't transfer an empty packet for fixed size streams
2018-04-15 20:42:53 -04:00
Takeshi ISHII
e2fb3079c7 update Helix keymap 'five_rows' (#2635)
* add 'HELIX=' option for build

* add IOS_DEVICE_ENABLE for iPad

* shrink size to helix five_rows keymap.c

* shrink size. _ADJUST number change

* add KEYPAD layer

* modify keypad leyer

* display RGB mode on slave side OLED

* fix Colemak, Dvorak center DEL to BS

* change LEFT BS to LEFT SP and add AUX layer for try old map

* update update_base_layer()

* add right keypad and keypad func layer

* use MO() macro insted of LOWER,RAISE,ADJUST custom key-code

* remove LOWER,RAISE,ADJUST custom key-code
* use MO(_LOWER|_RAISE|_ADJUST)
* relayout ADJUST layer

* modify Function Layer. PGUP,PGDN swap HOME,END

* add Keypad aux layer for '00' send

* update README.md, README_jp.md

* fix README.md

* fix README.md, README_jp.md
2018-04-15 09:54:56 -07:00
Biacco42
13cdfb465d Add Illustrator keymap layout for Ergo42 (#2658) 2018-04-15 09:54:11 -07:00
Spencer
1b711453ca Updated Levinson and Fourier keymaps (#2685)
* 	new file:   keyboards/dilly/keymaps/delmo/config.h
	new file:   keyboards/dilly/keymaps/delmo/keymap.c
	new file:   keyboards/dilly/keymaps/delmo/rules.mk
	new file:   keyboards/fourier/config.h
	new file:   keyboards/fourier/fourier.c
	new file:   keyboards/fourier/fourier.h
	new file:   keyboards/fourier/i2c.c
	new file:   keyboards/fourier/i2c.h
	new file:   keyboards/fourier/keymaps/default/config.h
	new file:   keyboards/fourier/keymaps/default/keymap.c
	new file:   keyboards/fourier/keymaps/default/rules.mk
	new file:   keyboards/fourier/keymaps/valgrahf/config.h
	new file:   keyboards/fourier/keymaps/valgrahf/keymap.c
	new file:   keyboards/fourier/keymaps/valgrahf/rules.mk
	new file:   keyboards/fourier/matrix.c
	new file:   keyboards/fourier/readme.md
	new file:   keyboards/fourier/rev1/config.h
	new file:   keyboards/fourier/rev1/rev1.c
	new file:   keyboards/fourier/rev1/rev1.h
	new file:   keyboards/fourier/rev1/rules.mk
	new file:   keyboards/fourier/rules.mk
	new file:   keyboards/fourier/serial.c
	new file:   keyboards/fourier/serial.h
	new file:   keyboards/fourier/split_util.c
	new file:   keyboards/fourier/split_util.h

* 	new file:   keyboards/levinson/keymaps/valgrahf/config.h
	new file:   keyboards/levinson/keymaps/valgrahf/keymap.c
	new file:   keyboards/levinson/keymaps/valgrahf/rules.mk

* 	modified:   keyboards/levinson/keymaps/valgrahf/keymap.c

* 	deleted:    keyboards/dilly/keymaps/delmo/config.h
	deleted:    keyboards/dilly/keymaps/delmo/keymap.c
	deleted:    keyboards/dilly/keymaps/delmo/rules.mk

* 	modified:   keyboards/fourier/keymaps/valgrahf/keymap.c

* 	deleted:    keyboards/fourier/config.h
	deleted:    keyboards/fourier/fourier.c
	deleted:    keyboards/fourier/fourier.h
	deleted:    keyboards/fourier/i2c.c
	deleted:    keyboards/fourier/i2c.h
	deleted:    keyboards/fourier/keymaps/default/config.h
	deleted:    keyboards/fourier/keymaps/default/keymap.c
	deleted:    keyboards/fourier/keymaps/default/rules.mk
	deleted:    keyboards/fourier/keymaps/valgrahf/config.h
	deleted:    keyboards/fourier/keymaps/valgrahf/keymap.c
	deleted:    keyboards/fourier/keymaps/valgrahf/rules.mk
	deleted:    keyboards/fourier/matrix.c
	deleted:    keyboards/fourier/readme.md
	deleted:    keyboards/fourier/rev1/config.h
	deleted:    keyboards/fourier/rev1/rev1.c
	deleted:    keyboards/fourier/rev1/rev1.h
	deleted:    keyboards/fourier/rev1/rules.mk
	deleted:    keyboards/fourier/rules.mk
	deleted:    keyboards/fourier/serial.c
	deleted:    keyboards/fourier/serial.h
	deleted:    keyboards/fourier/split_util.c
	deleted:    keyboards/fourier/split_util.h

* 	deleted:    keyboards/fourier/config.h
	deleted:    keyboards/fourier/fourier.c
	deleted:    keyboards/fourier/fourier.h
	deleted:    keyboards/fourier/i2c.c
	deleted:    keyboards/fourier/i2c.h
	deleted:    keyboards/fourier/keymaps/default/config.h
	deleted:    keyboards/fourier/keymaps/default/keymap.c
	deleted:    keyboards/fourier/keymaps/default/rules.mk
	deleted:    keyboards/fourier/keymaps/valgrahf/config.h
	deleted:    keyboards/fourier/keymaps/valgrahf/keymap.c
	deleted:    keyboards/fourier/keymaps/valgrahf/rules.mk
	deleted:    keyboards/fourier/matrix.c
	deleted:    keyboards/fourier/readme.md
	deleted:    keyboards/fourier/rev1/config.h
	deleted:    keyboards/fourier/rev1/rev1.c
	deleted:    keyboards/fourier/rev1/rev1.h
	deleted:    keyboards/fourier/rev1/rules.mk
	deleted:    keyboards/fourier/rules.mk
	deleted:    keyboards/fourier/serial.c
	deleted:    keyboards/fourier/serial.h
	deleted:    keyboards/fourier/split_util.c
	deleted:    keyboards/fourier/split_util.h

	keyboards/fourier/

* 	new file:   keyboards/fourier/config.h
	new file:   keyboards/fourier/fourier.c
	new file:   keyboards/fourier/fourier.h
	new file:   keyboards/fourier/i2c.c
	new file:   keyboards/fourier/i2c.h
	new file:   keyboards/fourier/keymaps/default/config.h
	new file:   keyboards/fourier/keymaps/default/keymap.c
	new file:   keyboards/fourier/keymaps/default/rules.mk
	new file:   keyboards/fourier/keymaps/valgrahf/config.h
	new file:   keyboards/fourier/keymaps/valgrahf/keymap.c
	new file:   keyboards/fourier/keymaps/valgrahf/rules.mk
	new file:   keyboards/fourier/matrix.c
	new file:   keyboards/fourier/readme.md
	new file:   keyboards/fourier/rev1/config.h
	new file:   keyboards/fourier/rev1/rev1.c
	new file:   keyboards/fourier/rev1/rev1.h
	new file:   keyboards/fourier/rev1/rules.mk
	new file:   keyboards/fourier/rules.mk
	new file:   keyboards/fourier/serial.c
	new file:   keyboards/fourier/serial.h
	new file:   keyboards/fourier/split_util.c
	new file:   keyboards/fourier/split_util.h

* 	modified:   keyboards/fourier/keymaps/valgrahf/keymap.c

* 	modified:   keyboards/fourier/keymaps/valgrahf/keymap.c
2018-04-15 09:51:38 -07:00
youdroid
5d36118eaa Add French Layout for XD75 (#2681) 2018-04-15 09:50:46 -07:00
markhuguet
b7d095fdc3 Added Factory Style LED Controls (#2678)
* This adds a keymap to the MF68 labeled factory.  It is an attempt to mimic the layout on the factory keycaps of the non-backlit board.

There are some small differences:

1) FN+WASD are an arrow cluster
2) FN+Z (Start media player) and FN+] (Start Calculator) are not mapped
3) FN+GHJKL are Backlight controls
4) An FN2 layer exists for future growth
5) The CAPS key is maped as FN2, for CAPS Lock use FN+CAPS

* Changed the CAPS key to be CAPS Lock on short press, FN2 on hold

Added LED controls to FN+Arrow Keys to better mimic factory backlit boards.
2018-04-15 09:49:31 -07:00
ajp10304
ed62c6e146 Ajp10304 (#2719)
* AJP10304 layouts for Planck and JJ40 now have mouse support. Moved macros onto Adjust layer

* .gitignore for intellij iml files.

* Updated Macros to use send string
2018-04-15 09:48:19 -07:00
David Rambo
32fd5e4f61 keymaps for Iris, Planck, Satan, and XD75 (#2747)
* DRambo Planck keymap in Colemak

* DRambo Planck keymap in Colemak

* Satan GH60 keymap for Bri

QWERTY layout with Navigation layer toggled with "Caps Lock" key.

* xd75 keymap in Colemak for Mac and Win

* DRambo Planck keymap in Colemak

* Satan GH60 keymap for Bri

QWERTY layout with Navigation layer toggled with "Caps Lock" key.

* xd75 keymap in Colemak for Mac and Win

* Added Iris Colemak layout for Mac, Windows, and Gaming.

* changed comment text

* DRambo Planck keymap in Colemak

* Satan GH60 keymap for Bri

QWERTY layout with Navigation layer toggled with "Caps Lock" key.

* xd75 keymap in Colemak for Mac and Win

* Added Iris Colemak layout for Mac, Windows, and Gaming.

* changed comment text

* Added Iris keymap from DavidRambo

* Added planck keymap from DavidRambo

* Added xd75 keymap from DavidRambo

* Added readme
2018-04-15 09:46:26 -07:00
Fayek Helmi
fe8b9d0d0f adding the 256k HHKB layout to the library (#2742)
* adding the 256k HHKB layout to the library

* changed the layouts for the modifying layers and added a readme file to explain my layout
2018-04-15 09:09:55 -07:00
Oliver Ladner
412af0f4e7 New DZ60 layout (#2744)
* initial commit

* - Move layout to readme
- Finish first (0) layer

* remove cruft

* fix ASCII keymap in readme

* fix ASCII keymap in readme #2

* fix ASCII keymap in readme

* rename layers

* use 2 shift layout

* rename layers, populate additional layers

* final layout (TM)

* fix RGB saturation increase position
2018-04-15 09:09:15 -07:00
Campbell Barton
d55ee204db qwerty_code_friendly: optional 80 key layout (#2745) 2018-04-15 09:08:28 -07:00
Kevin Foley
cdb967f22b Fix link to command page 2018-04-15 11:53:31 -04:00
mechmerlin
28307be72f Add chiwi60 layout for the do60
Add info.json to support the layouts for QMK Configurator
Rename LAYOUT to LAYOUT_all
2018-04-13 23:50:48 -04:00
walkerstop
530dd446cb Fix incorrect port direction setting in my previous pull request for pins B5, B6, B7 (#2739)
* Added support for audio using pins C4, C5, B6, B7

* Fixed bug where port direction wasn't set correctly for B5, B6, B7 audio ports
2018-04-13 03:53:29 -04:00
Michael L. Walker
22215a0e92 Added support for audio using pins C4, C5, B6, B7 2018-04-12 13:14:48 -04:00
MechMerlin
5319667c55 Support upcoming caps_unlocked boards in QMK Configurator (#2738)
* Change KEYMAP macro to LAYOUT macro

* Add CU24 QMK Configurator Support

- Change KEYMAP macro to LAYOUT macro
- Add new LAYOUTS to support a default numpad

* QMK Configurator Support for CU75

Add LAYOUT_all to support all layouts
Add corresponding info.json
2018-04-12 13:03:50 -04:00
skullY
f10a0ae547 Remove bootloader from info.jsons 2018-04-11 21:32:09 -07:00
Phil
3d3716bbf7 Beginning implementation of Pearl backlight. Levels and breathing not working yet. 2018-04-11 23:55:41 -04:00
fauxpark
6982e63a4a Tabs to spaces in usb_descriptor.h 2018-04-11 18:13:32 -04:00
Cole Markham
e8082b5f9e Add support for NovelPad/NumChoc by NovelKeys and Woodkeys 2018-04-11 18:11:42 -04:00
MechMerlin
4cfd1e30fc More QMK Configurator Warning/Error Fixes (#2720)
* Add readme with brief description
Change KEYMAP to LAYOUT

* Add readme.md with brief description
Use LAYOUT macro

* add a readme.md file

* Add readme.md with brief description
Use LAYOUT macro

* Add readme.md with brief description
Use LAYOUT macro

* Fix "Warning: contra: Missing layout pp macro for ['planck_mit', 'planck_grid']",

* Use LAYOUT macro
2018-04-11 18:10:55 -04:00
Domantas Petrauskas
0c4a6bf2db Improve JJ40 Cockpit documentation (#2729)
* Add JJ40 Cockpit keymap

* Fix lower layer symbols

* Improve documentation JJ40 Cockpit
2018-04-11 10:20:00 -07:00
Kenta Suzuki
3caf0761cd jj40 Personal keymap added (#2728)
* fix: Miss commnts.

* edit: Enter position

* Add: config.h

* Edit: Double space key

* fix: Lower and Raise

* delete: Not used keys.

* edit: change position Lower and Raise

* Add: Functions
2018-04-11 10:19:06 -07:00
Matthew Treadwell
05dcb48aa9 Added personal keymap (#2727) 2018-04-11 10:18:36 -07:00
Jason Barnachea
244b1ef79b Personal keymap added (#2723)
Personal keymap added.
2018-04-11 10:17:32 -07:00
Matt DiCarlo
0545428c14 Added mattdicarlo Tada68 layout. (#2721) 2018-04-11 10:17:02 -07:00
MechMerlin
885f06c6cf Add readme for "major" keyboards to eliminate more QMK Configurator errors (#2718)
* add readme to ktype keyboard

* add readme to m10a

* add readme to mini1800

* add readme to parent directory
2018-04-08 22:10:14 -04:00
Domantas Petrauskas
a33c0949e0 Add JJ40 Cockpit personal keymap (#2713)
* Add JJ40 Cockpit keymap

* Fix lower layer symbols
2018-04-08 11:21:24 -07:00
Enochen
955a6586a3 hhkb jp personal keymap (#2698) 2018-04-08 11:16:08 -07:00
Jorge Porras
f32e0200ed Normacos keymap for let's split keyboard (#2691)
* Cheers let's split keymap

* fixed typo on norman layer of cheers keymap for let's split

* fixed right handed mappings for home row

* cheers keymap for let's split redefinition

* updated Cheers keymap for let's split

* cheers keymap for let's split updated with some terminal macros

* renamed cheers let's split keymap to a more appropriate normacos

* updated normacos keymap doc / removed non functional keys

* reset let's split rules to default values

* added more spotlight search macros

* normalized keymap comments

* Moved numpad on lower layer
2018-04-08 11:14:41 -07:00
MechMerlin
1f77868427 More Configurator Warning Fixes (#2716)
* mf68_ble did not have the correct .c and .h files

* Fix JC65 KEYMAP to LAYOUT

* Change KEYMAP to LAYOUT for s60_x

* Convert KEYMAP to LAYOUT for lets_split boards

* Convert KEYMAP to LAYOUT

* more fixes to keymap for iris

* convert KEYMAP to LAYOUT for levinson keyboard

* change losinggeneration's KEYMAP to LAYOUT

* convert KEYMAP to LAYOUT

* convert KEYMAP to LAYOUT for nyquist

* convert KEYMAP to LAYOUT

* convert KEYMAP to LAYOUT for viterbi

* convert KEYMAP to LAYOUT

* convert KEYMAP and its subsidiries to the LAYOUT standard

* convert KEYMAP and its subsidiries to the new LAYOUT standard
2018-04-07 23:32:14 -07:00
skullydazed
958521c359 Clean up some long-standing errors when populating the API (#2715) 2018-04-07 22:49:16 -07:00
skullydazed
3b525dcf9c Remove obsolete info.json entries (#2712) 2018-04-07 17:37:31 -07:00
skullydazed
f4a9e98383 Pull information from config.h and rules.mk (#2711)
* Pull information from config.h and rules.mk

* Readd the kbd75 maintainer
2018-04-07 16:13:48 -07:00
1091 changed files with 50897 additions and 7831 deletions

1
.gitignore vendored
View File

@ -43,6 +43,7 @@ doxygen/
.project
.settings/
.idea
*.iml
.browse.VC.db*
*.stackdump
util/Win_Check_Output.txt

View File

@ -11,6 +11,7 @@
"*.h": "c",
"*.c": "c",
"*.cpp": "cpp",
"*.hpp": "cpp"
"*.hpp": "cpp",
"xstddef": "c"
}
}
}

View File

@ -32,21 +32,41 @@
ifeq ($(strip $(BOOTLOADER)), atmel-dfu)
OPT_DEFS += -DBOOTLOADER_ATMEL_DFU
OPT_DEFS += -DBOOTLOADER_DFU
BOOTLOADER_SIZE = 4096
ifeq ($(strip $(MCU)), atmega32u4)
BOOTLOADER_SIZE = 4096
endif
ifeq ($(strip $(MCU)), at90usb1286)
BOOTLOADER_SIZE = 8192
endif
endif
ifeq ($(strip $(BOOTLOADER)), lufa-dfu)
OPT_DEFS += -DBOOTLOADER_LUFA_DFU
OPT_DEFS += -DBOOTLOADER_DFU
BOOTLOADER_SIZE = 4096
ifeq ($(strip $(MCU)), atmega32u4)
BOOTLOADER_SIZE = 4096
endif
ifeq ($(strip $(MCU)), at90usb1286)
BOOTLOADER_SIZE = 8192
endif
endif
ifeq ($(strip $(BOOTLOADER)), qmk-dfu)
OPT_DEFS += -DBOOTLOADER_QMK_DFU
OPT_DEFS += -DBOOTLOADER_DFU
BOOTLOADER_SIZE = 4096
ifeq ($(strip $(MCU)), atmega32u4)
BOOTLOADER_SIZE = 4096
endif
ifeq ($(strip $(MCU)), at90usb1286)
BOOTLOADER_SIZE = 8192
endif
endif
ifeq ($(strip $(BOOTLOADER)), halfkay)
OPT_DEFS += -DBOOTLOADER_HALFKAY
BOOTLOADER_SIZE = 512
ifeq ($(strip $(MCU)), atmega32u4)
BOOTLOADER_SIZE = 512
endif
ifeq ($(strip $(MCU)), at90usb1286)
BOOTLOADER_SIZE = 1024
endif
endif
ifeq ($(strip $(BOOTLOADER)), caterina)
OPT_DEFS += -DBOOTLOADER_CATERINA
@ -59,4 +79,4 @@ endif
ifdef BOOTLOADER_SIZE
OPT_DEFS += -DBOOTLOADER_SIZE=$(strip $(BOOTLOADER_SIZE))
endif
endif

View File

@ -204,7 +204,11 @@ else
endif
# User space stuff
USER_PATH := users/$(KEYMAP)
ifeq ("$(USER_NAME)","")
USER_NAME := $(KEYMAP)
endif
USER_PATH := users/$(USER_NAME)
-include $(USER_PATH)/rules.mk
ifneq ("$(wildcard users/$(KEYMAP)/config.h)","")
CONFIG_H += users/$(KEYMAP)/config.h

View File

@ -34,6 +34,7 @@ ifeq ($(strip $(AUDIO_ENABLE)), yes)
OPT_DEFS += -DAUDIO_ENABLE
MUSIC_ENABLE := 1
SRC += $(QUANTUM_DIR)/process_keycode/process_audio.c
SRC += $(QUANTUM_DIR)/process_keycode/process_clicky.c
ifeq ($(PLATFORM),AVR)
SRC += $(QUANTUM_DIR)/audio/audio.c
else
@ -113,6 +114,15 @@ ifeq ($(strip $(RGBLIGHT_ENABLE)), yes)
endif
endif
ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes)
OPT_DEFS += -DRGB_MATRIX_ENABLE
SRC += is31fl3731.c
SRC += TWIlib.c
SRC += $(QUANTUM_DIR)/color.c
SRC += $(QUANTUM_DIR)/rgb_matrix.c
CIE1931_CURVE = yes
endif
ifeq ($(strip $(TAP_DANCE_ENABLE)), yes)
OPT_DEFS += -DTAP_DANCE_ENABLE
SRC += $(QUANTUM_DIR)/process_keycode/process_tap_dance.c

View File

@ -1,18 +1,25 @@
# Quantum Mechanical Keyboard Firmware
## What is QMK Firmware? {#what-is-qmk-firmware}
[![Current Version](https://img.shields.io/github/tag/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/tags)
[![Build Status](https://travis-ci.org/qmk/qmk_firmware.svg?branch=master)](https://travis-ci.org/qmk/qmk_firmware)
[![Discord](https://img.shields.io/discord/440868230475677696.svg)](https://discord.gg/Uq7gcHh)
[![Docs Status](https://img.shields.io/badge/docs-ready-orange.svg)](https://docs.qmk.fm)
[![GitHub contributors](https://img.shields.io/github/contributors/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/pulse/monthly)
[![GitHub forks](https://img.shields.io/github/forks/qmk/qmk_firmware.svg?style=social&label=Fork)](https://github.com/qmk/qmk_firmware/)
QMK (*Quantum Mechanical Keyboard*) is an open source community that maintains QMK Firmware, QMK Flasher, qmk.fm, and these docs. QMK Firmware is a keyboard firmware based on the [tmk\_keyboard](http://github.com/tmk/tmk_keyboard) with some useful features for Atmel AVR controllers, and more specifically, the [OLKB product line](http://olkb.com), the [ErgoDox EZ](http://www.ergodox-ez.com) keyboard, and the [Clueboard product line](http://clueboard.co/). It has also been ported to ARM chips using ChibiOS. You can use it to power your own hand-wired or custom keyboard PCB.
## What is QMK Firmware?
## How to Get It {#how-to-get-it}
QMK (*Quantum Mechanical Keyboard*) is an open source community that maintains QMK Firmware, QMK Toolbox, qmk.fm, and these docs. QMK Firmware is a keyboard firmware based on the [tmk\_keyboard](http://github.com/tmk/tmk_keyboard) with some useful features for Atmel AVR controllers, and more specifically, the [OLKB product line](http://olkb.com), the [ErgoDox EZ](http://www.ergodox-ez.com) keyboard, and the [Clueboard product line](http://clueboard.co/). It has also been ported to ARM chips using ChibiOS. You can use it to power your own hand-wired or custom keyboard PCB.
## How to Get It
If you plan on contributing a keymap, keyboard, or features to QMK, the easiest thing to do is [fork the repo through Github](https://github.com/qmk/qmk_firmware#fork-destination-box), and clone your repo locally to make your changes, push them, then open a [Pull Request](https://github.com/qmk/qmk_firmware/pulls) from your fork.
Otherwise, you can either download it directly ([zip](https://github.com/qmk/qmk_firmware/zipball/master), [tar](https://github.com/qmk/qmk_firmware/tarball/master)), or clone it via git (`git@github.com:qmk/qmk_firmware.git`), or https (`https://github.com/qmk/qmk_firmware.git`).
## How to Compile {#how-to-compile}
## How to Compile
Before you are able to compile, you'll need to [install an environment](getting_started_build_tools.md) for AVR or/and ARM development. Once that is complete, you'll use the `make` command to build a keyboard and keymap with the following notation:
Before you are able to compile, you'll need to [install an environment](01_Getting_Started/01_Install_Build_Tools.md) for AVR or/and ARM development. Once that is complete, you'll use the `make` command to build a keyboard and keymap with the following notation:
make planck/rev4:default
@ -20,6 +27,6 @@ This would build the `rev4` revision of the `planck` with the `default` keymap.
make preonic:default
## How to Customize {#how-to-customize}
## How to Customize
QMK has lots of [features](features.md) to explore, and a good deal of [reference documentation](http://docs.qmk.fm) to dig through. Most features are taken advantage of by modifying your [keymap](keymap.md), and changing the [keycodes](keycodes.md).
QMK has lots of [features](05_Features/index.md) to explore, and a good deal of [reference documentation](http://docs.qmk.fm) to dig through. Most features are taken advantage of by modifying your [keymap](07_Reference/Keymap_Overview.md), and changing the [keycodes](06_Keycodes/index.md).

99
docs/_sidebar.md Normal file
View File

@ -0,0 +1,99 @@
* [Getting Started](README.md)
* [QMK Introduction](getting_started_introduction.md)
* [Install Build Tools](getting_started_build_tools.md)
* Alternative: [Vagrant Guide](getting_started_vagrant.md)
* [Build/Compile Instructions](getting_started_make_guide.md)
* [Flashing Firmware](flashing.md)
* [Contributing to QMK](contributing.md)
* [How to Use Github](getting_started_github.md)
* [Getting Help](getting_started_getting_help.md)
* [Complete Newbs Guide](newbs.md)
* [Getting Started](newbs_getting_started.md)
* [Building Your First Firmware](newbs_building_firmware.md)
* [Flashing Firmware](newbs_flashing.md)
* [Testing and Debugging](newbs_testing_debugging.md)
* [FAQ](faq.md)
* [General FAQ](faq_general.md)
* [Build/Compile QMK](faq_build.md)
* [Debugging/Troubleshooting QMK](faq_debug.md)
* [Keymap](faq_keymap.md)
* [Hardware](hardware.md)
* [Keyboard Guidelines](hardware_keyboard_guidelines.md)
* [AVR Processors](hardware_avr.md)
* ARM Processors (TBD)
* [Drivers](hardware_drivers.md)
* [Features](features.md)
* [Advanced Keycodes](feature_advanced_keycodes.md)
* [Audio](feature_audio.md)
* [Auto Shift](feature_auto_shift.md)
* [Backlight](feature_backlight.md)
* [Bootmagic](feature_bootmagic.md)
* [Command](feature_command.md)
* [Dynamic Macros](feature_dynamic_macros.md)
* [Grave Escape](feature_grave_esc.md)
* [Key Lock](feature_key_lock.md)
* [Layouts](feature_layouts.md)
* [Leader Key](feature_leader_key.md)
* [Macros](feature_macros.md)
* [Mouse Keys](feature_mouse_keys.md)
* [Pointing Device](feature_pointing_device.md)
* [PS/2 Mouse](feature_ps2_mouse.md)
* [RGB Lighting](feature_rgblight.md)
* [Space Cadet Shift](feature_space_cadet.md)
* [Space Cadet Shift Enter](feature_space_shift_cadet.md)
* [Stenography](feature_stenography.md)
* [Swap Hands](feature_swap_hands.md)
* [Tap Dance](feature_tap_dance.md)
* [Terminal](feature_terminal.md)
* [Thermal Printer](feature_thermal_printer.md)
* [Unicode](feature_unicode.md)
* [Userspace](feature_userspace.md)
* [Keycodes](keycodes.md)
* [Backlight](feature_backlight.md#backlight-keycodes)
* [Basic](keycodes_basic.md)
* [Bluetooth](feature_bluetooth.md#bluetooth-keycodes)
* [Bootmagic](feature_bootmagic.md#bootmagic-keycodes)
* [Layer Switching](feature_advanced_keycodes.md#switching-and-toggling-layers)
* [Mod+Key](feature_advanced_keycodes.md#modifier-keys)
* [Mod Tap](feature_advanced_keycodes.md#mod-tap)
* [One Shot Keys](feature_advanced_keycodes.md#one-shot-keys)
* [Quantum](quantum_keycodes.md)
* [RGB Light](feature_rgblight.md#rgblight-keycodes)
* [Shifted Keys](feature_advanced_keycodes.md#shifted-keycodes)
* [Stenography](feature_stenography.md#keycode-reference)
* [Thermal Printer](feature_thermal_printer.md#thermal-printer-keycodes)
* [US ANSI Shifted Keys](keycodes_us_ansi_shifted.md)
* Reference
* [Config Options](config_options.md)
* [Customizing Functionality](custom_quantum_functions.md)
* [Documentation Best Practices](documentation_best_practices.md)
* [Documentation Templates](documentation_templates.md)
* [Glossary](reference_glossary.md)
* [Keymap Overview](keymap.md)
* [Unit Testing](unit_testing.md)
* For Makers and Modders
* [Hand Wiring Guide](hand_wire.md)
* [ISP Flashing Guide](isp_flashing_guide.md)
* For a Deeper Understanding
* [How Keyboards Work](how_keyboards_work.md)
* [Understanding QMK](understanding_qmk.md)
* Other Topics
* [Using Eclipse with QMK](eclipse.md)
* QMK Internals (In Progress)
* [Defines](internals_defines.md)
* [Input Callback Reg](internals_input_callback_reg.md)
* [Midi Device](internals_midi_device.md)
* [Midi Device Setup Process](internals_midi_device_setup_process.md)
* [Midi Util](internals_midi_util.md)
* [Send Functions](internals_send_functions.md)
* [Sysex Tools](internals_sysex_tools.md)

View File

@ -61,10 +61,18 @@ This is a C header file that is one of the first things included, and will persi
* COL2ROW or ROW2COL - how your matrix is configured. COL2ROW means the black mark on your diode is facing to the rows, and between the switch and the rows.
* `#define AUDIO_VOICES`
* turns on the alternate audio voices (to cycle through)
* `#define C4_AUDIO`
* enables audio on pin C4
* `#define C5_AUDIO`
* enables audio on pin C5
* `#define C6_AUDIO`
* enables audio on pin C6
* `#define B5_AUDIO`
* enables audio on pin B5 (duophony is enable if both are enabled)
* enables audio on pin B5 (duophony is enables if one of B[5-7]_AUDIO is enabled along with one of C[4-6]_AUDIO)
* `#define B6_AUDIO`
* enables audio on pin B6 (duophony is enables if one of B[5-7]_AUDIO is enabled along with one of C[4-6]_AUDIO)
* `#define B7_AUDIO`
* enables audio on pin B7 (duophony is enables if one of B[5-7]_AUDIO is enabled along with one of C[4-6]_AUDIO)
* `#define BACKLIGHT_PIN B7`
* pin of the backlight - B5, B6, B7 use PWM, others use softPWM
* `#define BACKLIGHT_LEVELS 3`
@ -81,6 +89,8 @@ This is a C header file that is one of the first things included, and will persi
* tries to keep switch state consistent with keyboard LED state
* `#define IS_COMMAND() ( keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) )`
* key combination that allows the use of magic commands (useful for debugging)
* `#define USB_MAX_POWER_CONSUMPTION`
* sets the maximum power (in mA) over USB for the device (default: 500)
## Features That Can Be Disabled
@ -108,7 +118,7 @@ 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`
* when switching layers, this will release all mods
* 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
## Behaviors That Can Be Configured

View File

@ -22,60 +22,27 @@ Your page should generally have multiple "H1" headings. Only H1 and H2 headings
You can have styled hint blocks drawn around text to draw attention to it.
```
{% hint style='info' %}
This uses `hint style='info'`
{% endhint %}
```
### Examples:
{% hint style='info' %}
This uses `hint style='info'`
{% endhint %}
{% hint style='tip' %}
This uses `hint style='tip'`
{% endhint %}
{% hint style='danger' %}
This uses `hint style='danger'`
{% endhint %}
{% hint style='working' %}
This uses `hint style='working'`
{% endhint %}
# Styled Terminal Blocks
You can present styled terminal blocks by including special tokens inside your text block.
### Important
```
\`\`\`
**[terminal]
**[prompt foo@joe]**[path ~]**[delimiter $ ]**[command ./myscript]
Normal output line. Nothing special here...
But...
You can add some colors. What about a warning message?
**[warning [WARNING] The color depends on the theme. Could look normal too]
What about an error message?
**[error [ERROR] This is not the error you are looking for]
\`\`\`
!> This is important
```
### Example
Renders as:
!> This is important
### General Tips
```
**[terminal]
**[prompt foo@joe]**[path ~]**[delimiter $ ]**[command ./myscript]
Normal output line. Nothing special here...
But...
You can add some colors. What about a warning message?
**[warning [WARNING] The color depends on the theme. Could look normal too]
What about an error message?
**[error [ERROR] This is not the error you are looking for]
?> This is a helpful tip.
```
Renders as:
?> This is a helpful tip.
# Documenting Features
If you create a new feature for QMK, create a documentation page for it. It doesn't have to be very long, a few sentences describing your feature and a table listing any relevant keycodes is enough. Here is a basic template:
@ -94,4 +61,4 @@ This page describes my cool feature. You can use my cool feature to make coffee
|KC_SUGAR||Order Sugar|
```
Place your documentation into `docs/feature_<my_cool_feature>.md`, and add that file to the appropriate place in `docs/_summary.md`. If you have added any keycodes be sure to add them to `docs/keycodes.md` with a link back to your feature page.
Place your documentation into `docs/feature_<my_cool_feature>.md`, and add that file to the appropriate place in `docs/_sidebar.md`. If you have added any keycodes be sure to add them to `docs/keycodes.md` with a link back to your feature page.

View File

@ -19,14 +19,15 @@ Currently, the keycodes able to used with these functions are limited to the [Ba
# Switching and Toggling Layers
These functions allow you to activate layers in various ways.
These functions allow you to activate layers in various ways. Note that layers are not generally independent layouts -- multiple layers can be activated at once, and it's typical for layers to use `KC_TRNS` to allow keypresses to pass through to lower layers. For a detailed explanation of layers, see [Keymap Overview](keymap.md#keymap-and-layers)
* `MO(layer)` - momentary switch to *layer*. As soon as you let go of the key, the layer is deactivated and you pop back out to the previous layer.
* `LT(layer, kc)` - momentary switch to *layer* when held, and *kc* when tapped.
* `TG(layer)` - toggles a layer on or off.
* `TO(layer)` - Goes to a layer. This code is special, because it lets you go either up or down the stack -- just goes directly to the layer you want. So while other codes only let you go _up_ the stack (from layer 0 to layer 3, for example), `TO(2)` is going to get you to layer 2, no matter where you activate it from -- even if you're currently on layer 5. This gets activated on keydown (as soon as the key is pressed).
* `TT(layer)` - Layer Tap-Toggle. If you hold the key down, the layer becomes active, and then deactivates when you let go. And if you repeatedly tap it, the layer simply becomes active (toggles on). It needs 5 taps by default, but you can set it by defining `TAPPING_TOGGLE`, for example, `#define TAPPING_TOGGLE 2` for just two taps.
* `LM(layer, mod)` - Momentary switch to *layer* (like MO), but with modifier(s) *mod* active. Only supports layers 0-15 and the left modifiers.
* `DF(layer)` - switches the default layer. The default layer is the always-active base layer that other layers stack on top of. See below for more about the default layer. This might be used to switch from QWERTY to Dvorak layout. (Note that this is a temporary switch that only persists until the keyboard loses power. To modify the default layer in a persistent way requires deeper customization, such as calling the `set_single_persistent_default_layer` function inside of [process_record_user](custom_quantum_functions.md#programming-the-behavior-of-any-keycode).)
* `MO(layer)` - momentarily activates *layer*. As soon as you let go of the key, the layer is deactivated.
* `LM(layer, mod)` - Momentarily activates *layer* (like `MO`), but with modifier(s) *mod* active. Only supports layers 0-15 and the left modifiers.
* `LT(layer, kc)` - momentarily activates *layer* when held, and sends *kc* when tapped.
* `TG(layer)` - toggles *layer*, activating it if it's inactive and vice versa
* `TO(layer)` - activates *layer* and de-activates all other layers (except your default layer). This function is special, because instead of just adding/removing one layer to your active layer stack, it will completely replace your current active layers, uniquely allowing you to replace higher layers with a lower one. This is activated on keydown (as soon as the key is pressed).
* `TT(layer)` - Layer Tap-Toggle. If you hold the key down, *layer* is activated, and then is de-activated when you let go (like `MO`). If you repeatedly tap it, the layer will be toggled on or off (like `TG`). It needs 5 taps by default, but you can change this by defining `TAPPING_TOGGLE` -- for example, `#define TAPPING_TOGGLE 2` to toggle on just two taps.
# Working with Layers
@ -36,9 +37,9 @@ Care must be taken when switching layers, it's possible to lock yourself into a
If you are just getting started with QMK you will want to keep everything simple. Follow these guidelines when setting up your layers:
* Setup layer 0 as your "base" layer. This is your normal typing layer, and could be whatever layout you want (qwerty, dvorak, colemak, etc.)
* Setup layer 0 as your default, "base" layer. This is your normal typing layer, and could be whatever layout you want (qwerty, dvorak, colemak, etc.). It's important to set this as the lowest layer since it will typically have most or all of the keyboard's keys defined, so would block other layers from having any effect if it were above them (i.e., had a higher layer number).
* Arrange your layers in a "tree" layout, with layer 0 as the root. Do not try to enter the same layer from more than one other layer.
* Never try to stack a higher numbered layer on top of a lower numbered layer. Doing so is tricky and error prone.
* In a layer's keymap, only reference higher-numbered layers. Because layers are processed from the highest-numbered (topmost) active layer down, modifying the state of lower layers can be tricky and error-prone.
### Intermediate Users
@ -130,11 +131,9 @@ We've added shortcuts to make common modifier/tap (mod-tap) mappings more compac
* `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.
{% hint style='info' %}
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.
?> 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 modifier, any other modifiers will turn into their right equivalents, so it is not possible to "mix and match" the two.
{% endhint %}
?> Additionally, if there is at least one right modifier, any other modifiers will turn into their right equivalents, so it is not possible to "mix and match" the two.
# One Shot Keys

View File

@ -1,6 +1,17 @@
# Audio
Your keyboard can make sounds! If you've got a Planck, Preonic, or basically any AVR keyboard that allows access to the C6 or B5 port (`#define C6_AUDIO` and/or `#define B5_AUDIO`), you can hook up a simple speaker and make it beep. You can use those beeps to indicate layer transitions, modifiers, special keys, or just to play some funky 8bit tunes.
Your keyboard can make sounds! If you've got a Planck, Preonic, or basically any AVR keyboard that allows access to certain PWM-capable pins, you can hook up a simple speaker and make it beep. You can use those beeps to indicate layer transitions, modifiers, special keys, or just to play some funky 8bit tunes.
Up to two simultaneous audio voices are supported, one driven by timer 1 and another driven by timer 3. The following pins can be defined as audio outputs in config.h:
Timer 1:
`#define B5_AUDIO`
`#define B6_AUDIO`
`#define B7_AUDIO`
Timer 3:
`#define C4_AUDIO`
`#define C5_AUDIO`
`#define C6_AUDIO`
If you add `AUDIO_ENABLE = yes` to your `rules.mk`, there's a couple different sounds that will automatically be enabled without any other configuration:
@ -78,6 +89,20 @@ By default, `MUSIC_MASK` is set to `keycode < 0xFF` which means keycodes less th
Which will capture all keycodes - be careful, this will get you stuck in music mode until you restart your keyboard!
For a more advanced way to control which keycodes should still be processed, you can use `music_mask_kb(keycode)` in `<keyboard>.c` and `music_mask_user(keycode)` in your `keymap.c`:
bool music_mask_user(uint16_t keycode) {
switch (keycode) {
case RAISE:
case LOWER:
return false;
default:
return true;
}
}
Things that return false are not part of the mask, and are always processed.
The pitch standard (`PITCH_STANDARD_A`) is 440.0f by default - to change this, add something like this to your `config.h`:
#define PITCH_STANDARD_A 432.0f
@ -86,6 +111,36 @@ You can completely disable Music Mode as well. This is useful, if you're pressed
#define NO_MUSIC_MODE
## Faux 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
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:
| Option | Default Value | Description |
|--------|---------------|-------------|
| `AUDIO_CLICKY_FREQ_DEFAULT` | 440.0f | Sets the default/starting audio frequency for the clicky sounds. |
| `AUDIO_CLICKY_FREQ_MIN` | 65.0f | Sets the lowest frequency (under 60f are a bit buggy). |
| `AUDIO_CLICKY_FREQ_MAX` | 1500.0f | Sets the the highest frequency. Too high may result in coworkers attacking you. |
| `AUDIO_CLICKY_FREQ_FACTOR` | 1.18921f| Sets the stepping of UP/DOWN key codes. |
| `AUDIO_CLICKY_FREQ_RANDOMNESS` | 0.05f | Sets a factor of randomness for the clicks, Setting this to `0f` will make each click identical. |
## MIDI Functionality
This is still a WIP, but check out `quantum/keymap_midi.c` to see what's happening. Enable from the Makefile.

View File

@ -88,10 +88,7 @@ occasion. This is simply due to habit and holding some keys a little longer
than others. Once you find this value, work on tapping your problem keys a little
quicker than normal and you will be set.
{% hint style='info' %}
Auto Shift has three special keys that can help you get this value right very
quick. See "Auto Shift Setup" for more details!
{% endhint %}
?> Auto Shift has three special keys that can help you get this value right very quick. See "Auto Shift Setup" for more details!
### NO_AUTO_SHIFT_SPECIAL (simple define)

View File

@ -6,7 +6,7 @@ Bootmagic is a system for configuring your keyboard while it initializes. To tri
Bootmagic Keycodes allow you to access the Bootmagic functionality after your keyboard has initialized. To use Bootmagic Keycodes you assign keycodes starting with `MAGIC_`, much in the same way you define any other key.
Command is a feature that allows you to control different aspects of your keyboard. Command used to be called Magic. Command is typically accessed by holding Left and Right Shift at the same time, although that can be customized. While it shares some functionality with Bootmagic it also allows you to access functionality that Bootmagic does not. For more information see the (Command)[feature_command.md) documentation page.
Command is a feature that allows you to control different aspects of your keyboard. Command used to be called Magic. Command is typically accessed by holding Left and Right Shift at the same time, although that can be customized. While it shares some functionality with Bootmagic it also allows you to access functionality that Bootmagic does not. For more information see the [Command](feature_command.md) documentation page.
## Enabling Bootmagic

View File

@ -2,9 +2,7 @@
Macros allow you to send multiple keystrokes when pressing just one key. QMK has a number of ways to define and use macros. These can do anything you want: type common phrases for you, copypasta, repetitive game movements, or even help you code.
{% hint style='danger' %}
**Security Note**: While it is possible to use macros to send passwords, credit card numbers, and other sensitive information it is a supremely bad idea to do so. Anyone who gets a hold of your keyboard will be able to access that information by opening a text editor.
{% endhint %}
!> **Security Note**: While it is possible to use macros to send passwords, credit card numbers, and other sensitive information it is a supremely bad idea to do so. Anyone who gets a hold of your keyboard will be able to access that information by opening a text editor.
## The New Way: `SEND_STRING()` & `process_record_user`
@ -132,9 +130,7 @@ SEND_STRING(".."SS_TAP(X_END));
## The Old Way: `MACRO()` & `action_get_macro`
{% hint style='info' %}
This is inherited from TMK, and hasn't been updated - it's recommend that you use `SEND_STRING` and `process_record_user` instead.
{% endhint %}
?> This is inherited from TMK, and hasn't been updated - it's recommend that you use `SEND_STRING` and `process_record_user` instead.
By default QMK assumes you don't have any macros. To define your macros you create an `action_get_macro()` function. For example:

143
docs/feature_rgb_matrix.md Normal file
View File

@ -0,0 +1,143 @@
# RGB Matrix Lighting
There is basic support for addressable RGB matrix lighting with the I2C IS31FL3731 RGB controller. To enable it, add this to your `rules.mk`:
RGB_MATRIX_ENABLE = yes
Configure the hardware via your `config.h`:
// This is a 7-bit address, that gets left-shifted and bit 0
// set to 0 for write, 1 for read (as per I2C protocol)
// The address will vary depending on your wiring:
// 0b1110100 AD <-> GND
// 0b1110111 AD <-> VCC
// 0b1110101 AD <-> SCL
// 0b1110110 AD <-> SDA
#define DRIVER_ADDR_1 0b1110100
#define DRIVER_ADDR_2 0b1110110
#define DRIVER_COUNT 2
#define DRIVER_1_LED_TOTAL 25
#define DRIVER_2_LED_TOTAL 24
#define DRIVER_LED_TOTAL DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL
Currently only 2 drivers are supported, but it would be trivial to support all 4 combinations.
Define these arrays listing all the LEDs in your `<keyboard>.c`:
const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
/* Refer to IS31 manual for these locations
* driver
* | R location
* | | G location
* | | | B location
* | | | | */
{0, C1_3, C2_3, C3_3},
....
}
Where `Cx_y` is the location of the LED in the matrix defined by [the datasheet](http://www.issi.com/WW/pdf/31FL3731.pdf). The `driver` is the index of the driver you defined in your `config.h` (`0` or `1` right now).
const rgb_led g_rgb_leds[DRIVER_LED_TOTAL] = {
/* {row | col << 4}
* | {x=0..224, y=0..64}
* | | modifier
* | | | */
{{0|(0<<4)}, {20.36*0, 21.33*0}, 1},
{{0|(1<<4)}, {20.36*1, 21.33*0}, 1},
....
}
The format for the matrix position used in this array is `{row | (col << 4)}`. The `x` is between (inclusive) 0-224, and `y` is between (inclusive) 0-64. The easiest way to calculate these positions is:
x = 224 / ( NUMBER_OF_ROWS - 1 ) * ROW_POSITION
y = 64 / (NUMBER_OF_COLS - 1 ) * COL_POSITION
Where all variables are decimels/floats.
`modifier` is a boolean, whether or not a certain key is considered a modifier (used in some effects).
## Keycodes
All RGB keycodes are currently shared with the RGBLIGHT system:
* `RGB_TOG` - toggle
* `RGB_MOD` - cycle through modes
* `RGB_HUI` - increase hue
* `RGB_HUD` - decrease hue
* `RGB_SAI` - increase saturation
* `RGB_SAD` - decrease saturation
* `RGB_VAI` - increase value
* `RGB_VAD` - decrease value
* `RGB_SPI` - increase speed effect (no EEPROM support)
* `RGB_SPD` - decrease speed effect (no EEPROM support)
* `RGB_MODE_*` keycodes will generally work, but are not currently mapped to the correct effects for the RGB Matrix system
## RGB Matrix Effects
These are the effects that are currently available:
enum rgb_matrix_effects {
RGB_MATRIX_SOLID_COLOR = 1,
RGB_MATRIX_ALPHAS_MODS,
RGB_MATRIX_DUAL_BEACON,
RGB_MATRIX_GRADIENT_UP_DOWN,
RGB_MATRIX_RAINDROPS,
RGB_MATRIX_CYCLE_ALL,
RGB_MATRIX_CYCLE_LEFT_RIGHT,
RGB_MATRIX_CYCLE_UP_DOWN,
RGB_MATRIX_RAINBOW_BEACON,
RGB_MATRIX_RAINBOW_PINWHEELS,
RGB_MATRIX_RAINBOW_MOVING_CHEVRON,
RGB_MATRIX_JELLYBEAN_RAINDROPS,
#ifdef RGB_MATRIX_KEYPRESSES
RGB_MATRIX_SOLID_REACTIVE,
RGB_MATRIX_SPLASH,
RGB_MATRIX_MULTISPLASH,
RGB_MATRIX_SOLID_SPLASH,
RGB_MATRIX_SOLID_MULTISPLASH,
#endif
RGB_MATRIX_EFFECT_MAX
};
## Custom layer effects
Custom layer effects can be done by defining this in your `<keyboard>.c`:
void rgb_matrix_indicators_kb(void) {
// rgb_matrix_set_color(index, red, green, blue);
}
A similar function works in the keymap as `rgb_matrix_indicators_user`.
## Additional `config.h` Options
#define RGB_MATRIX_KEYPRESSES // reacts to keypresses (will slow down matrix scan by a lot)
#define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (not recommened)
#define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
#define RGB_DISABLE_WHEN_USB_SUSPENDED false // turn off effects when suspended
#define RGB_MATRIX_SKIP_FRAMES 1 // number of frames to skip when displaying animations (0 is full effect) if not defined defaults to 1
## EEPROM storage
The EEPROM for it is currently shared with the RGBLIGHT system (it's generally assumed only one RGB would be used at a time), but could be configured to use its own 32bit address with:
#define EECONFIG_RGB_MATRIX (uint32_t *)16
Where `16` is an unused index from `eeconfig.h`.
## Suspended state
To use the suspend feature, add this to your `<keyboard>.c`:
void suspend_power_down_kb(void)
{
rgb_matrix_set_suspend_state(true);
}
void suspend_wakeup_init_kb(void)
{
rgb_matrix_set_suspend_state(false);
}

View File

@ -22,7 +22,7 @@ This array specifies what actions shall be taken when a tap-dance key is in acti
* `ACTION_TAP_DANCE_FN(fn)`: Calls the specified function - defined in the user keymap - with the final tap count of the tap dance action.
* `ACTION_TAP_DANCE_FN_ADVANCED(on_each_tap_fn, on_dance_finished_fn, on_dance_reset_fn)`: Calls the first specified function - defined in the user keymap - on every tap, the second function on when the dance action finishes (like the previous option), and the last function when the tap dance action resets.
The first option is enough for a lot of cases, that just want dual roles. For example, `ACTION_TAP_DANCE(KC_SPC, KC_ENT)` will result in `Space` being sent on single-tap, `Enter` otherwise.
The first option is enough for a lot of cases, that just want dual roles. For example, `ACTION_TAP_DANCE_DOUBLE(KC_SPC, KC_ENT)` will result in `Space` being sent on single-tap, `Enter` otherwise.
And that's the bulk of it!
@ -179,42 +179,124 @@ Below is a specific example:
* Double Tap = Send `Escape`
* Double Tap and Hold = Send `Alt`
The following example can be easily expanded to more than 4 quite easily:
## Setup
You will need a few things that can be used for 'Quad Function Tap-Dance'. The suggested setup is to create a user directory for yourself. This directory will contain rules.mk `<your_name>.c` and `<your_name>.h`. This directory should be called `<your_name>`, and located in the top level `users` directory. There should already be a few examples to look at there.
### In `/qmk_firmware/users/<your_name>/rules.mk`
Put the following:
```c
//**************** Definitions needed for quad function to work *********************//
//Enums used to clearly convey the state of the tap dance
TAP_DANCE_ENABLE = yes
SRC += your_name.c
```
Pretty simple. It is a nice way to keep some rules common on all your keymaps.
### In `/qmk_firmware/users/<your_name>/<you_name>.h`
You will need a few things in this file:
```c
#ifndef YOUR_NAME
#define YOUR_NAME
#include "quantum.h"
#include "process_keycode/process_tap_dance.h"
typedef struct {
bool is_press_action;
int state;
} xtap;
enum {
SINGLE_TAP = 1,
SINGLE_HOLD = 2,
DOUBLE_TAP = 3,
DOUBLE_HOLD = 4,
DOUBLE_SINGLE_TAP = 5 //send SINGLE_TAP twice - NOT DOUBLE_TAP
// Add more enums here if you want for triple, quadruple, etc.
DOUBLE_SINGLE_TAP = 5, //send two single taps
TRIPLE_TAP = 6,
TRIPLE_HOLD = 7
};
typedef struct {
bool is_press_action;
int state;
} tap;
//Tap dance enums
enum {
CTL_X = 0,
SOME_OTHER_DANCE
}
int cur_dance (qk_tap_dance_state_t *state);
//for the x tap dance. Put it here so it can be used in any keymap
void x_finished (qk_tap_dance_state_t *state, void *user_data);
void x_reset (qk_tap_dance_state_t *state, void *user_data);
```
### In `/qmk_firmware/users/<your_name>/<your_name>.c`
And then in your user's `.c` file you implement the functions above:
```c
#include "gordon.h"
#include "quantum.h"
#include "action.h"
#include "process_keycode/process_tap_dance.h"
/* Return an integer that corresponds to what kind of tap dance should be executed.
*
* How to figure out tap dance state: interrupted and pressed.
*
* Interrupted: If the state of a dance dance is "interrupted", that means that another key has been hit
* under the tapping term. This is typically indicitive that you are trying to "tap" the key.
*
* Pressed: Whether or not the key is still being pressed. If this value is true, that means the tapping term
* has ended, but the key is still being pressed down. This generally means the key is being "held".
*
* One thing that is currenlty not possible with qmk software in regards to tap dance is to mimic the "permissive hold"
* feature. In general, advanced tap dances do not work well if they are used with commonly typed letters.
* For example "A". Tap dances are best used on non-letter keys that are not hit while typing letters.
*
* Good places to put an advanced tap dance:
* z,q,x,j,k,v,b, any function key, home/end, comma, semi-colon
*
* Criteria for "good placement" of a tap dance key:
* Not a key that is hit frequently in a sentence
* Not a key that is used frequently to double tap, for example 'tab' is often double tapped in a terminal, or
* in a web form. So 'tab' would be a poor choice for a tap dance.
* Letters used in common words as a double. For example 'p' in 'pepper'. If a tap dance function existed on the
* letter 'p', the word 'pepper' would be quite frustating to type.
*
* For the third point, there does exist the 'DOUBLE_SINGLE_TAP', however this is not fully tested
*
*/
int cur_dance (qk_tap_dance_state_t *state) {
if (state->count == 1) {
//If count = 1, and it has been interrupted - it doesn't matter if it is pressed or not: Send SINGLE_TAP
if (state->interrupted || state->pressed==0) return SINGLE_TAP;
if (state->interrupted || !state->pressed) return SINGLE_TAP;
//key has not been interrupted, but they key is still held. Means you want to send a 'HOLD'.
else return SINGLE_HOLD;
}
//If count = 2, and it has been interrupted - assume that user is trying to type the letter associated
//with single tap. In example below, that means to send `xx` instead of `Escape`.
else if (state->count == 2) {
/*
* DOUBLE_SINGLE_TAP is to distinguish between typing "pepper", and actually wanting a double tap
* action when hitting 'pp'. Suggested use case for this return value is when you want to send two
* keystrokes of the key, and not the 'double tap' action/macro.
*/
if (state->interrupted) return DOUBLE_SINGLE_TAP;
else if (state->pressed) return DOUBLE_HOLD;
else return DOUBLE_TAP;
}
else return 6; //magic number. At some point this method will expand to work for more presses
//Assumes no one is trying to type the same letter three times (at least not quickly).
//If your tap dance key is 'KC_W', and you want to type "www." quickly - then you will need to add
//an exception here to return a 'TRIPLE_SINGLE_TAP', and define that enum just like 'DOUBLE_SINGLE_TAP'
if (state->count == 3) {
if (state->interrupted || !state->pressed) return TRIPLE_TAP;
else return TRIPLE_HOLD;
}
else return 8; //magic number. At some point this method will expand to work for more presses
}
//**************** Definitions needed for quad function to work *********************//
//instanalize an instance of 'tap' for the 'x' tap dance.
static tap xtap_state = {
.is_press_action = true,
@ -245,6 +327,10 @@ void x_reset (qk_tap_dance_state_t *state, void *user_data) {
}
xtap_state.state = 0;
}
qk_tap_dance_action_t tap_dance_actions[] = {
[X_CTL] = ACTION_TAP_DANCE_FN_ADVANCED(NULL,x_finished, x_reset)
};
```
And then simply add this to your list of tap dance functions:
`[X_TAP_DANCE] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, x_finished, x_reset)`
And then simply use TD(X_CTL) anywhere in your keymap.

View File

@ -14,12 +14,14 @@ When enabled, a `> ` prompt will appear, where you'll be able to type, backspace
`#define TERMINAL_HELP` enables some other output helpers that aren't really needed with this page.
Pressing "up" and "down" will allow you to cycle through the past 5 commands entered.
## Future Ideas
* Keyboard/user-extensible commands
* Smaller footprint
* Arrow key support
* Command history
* Command history - Done
* SD card support
* LCD support for buffer display
* Keycode -> name string LUT
@ -43,14 +45,39 @@ QMK Firmware
Built: 2017-08-29-20:24:44
```
### `print-buffer`
Outputs the last 5 commands entered
```
> print-buffer
0. print-buffer
1. help
2. about
3. keymap 0
4. help
5. flush-buffer
```
### `flush-buffer`
Clears command buffer
```
> flush-buffer
Buffer cleared!
```
### `help`
Prints out the available commands:
```
> help
commands available:
about help keycode keymap exit
about help keycode keymap exit print-buffer flush-buffer
```
### `keycode <layer> <row> <col>`

View File

@ -25,19 +25,19 @@ For example,
Will include the `/users/jack/` folder in the path, along with `/users/jack/rules.mk`.
Additionally, `config.h` here will be processed like the same file in your keymap folder. This is handled separately from the `<name>.h` file.
Additionally, `config.h` here will be processed like the same file in your keymap folder. This is handled separately from the `<name>.h` file.
The reason for this, is that `<name>.h` won't be added in time to add settings (such as `#define TAPPING_TERM 100`), and including the `<name.h>` file in any `config.h` files will result in compile issues.
The reason for this, is that `<name>.h` won't be added in time to add settings (such as `#define TAPPING_TERM 100`), and including the `<name.h>` file in any `config.h` files will result in compile issues.
So you should use the `config.h` for QMK settings, and the `<name>.h` file for user or keymap specific settings.
So you should use the `config.h` for QMK settings, and the `<name>.h` file for user or keymap specific settings.
## Readme
Please include authorship (your name, github username, email), and optionally [a license that's GPL compatible](https://www.gnu.org/licenses/license-list.html#GPLCompatibleLicenses).
## `Config.h`
If you do add a `config,h` file, you want to make sure that it only gets processed once. So you may want to start off with something like this:
If you do add a `config,h` file, you want to make sure that it only gets processed once. So you may want to start off with something like this:
```c
#ifndef USERSPACE_CONFIG_H
@ -48,7 +48,7 @@ If you do add a `config,h` file, you want to make sure that it only gets process
#endif // !USERSPACE_CONFIG_H
```
You can use any option hre that you could use in your keymap's `config.h` file. You can find a list of vales [here](config_options.md).
You can use any option hre that you could use in your keymap's `config.h` file. You can find a list of vales [here](config_options.md).
## Example
@ -115,3 +115,11 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
This will add a new `KC_MAKE` keycode that can be used in any of your keymaps. And this keycode will output `make <keyboard>:<keymap">`, making frequent compiling easier. And this will work with any keyboard and any keymap as it will output the current boards info, so that you don't have to type this out every time.
Additionally, this should flash the newly compiled firmware automatically, using the correct utility, based on the bootloader settings (or default to just generating the HEX file). However, it should be noted that this may not work on all systems. AVRDUDE doesn't work on WSL, namely (and will dump the HEX in the ".build" folder instead).
## Override default userspace
By default the userspace used will be the same as the keymap name. In some situations this isn't desirable. For instance, if you use the [layout](feature_layouts.md) feature you can't use the same name for different keymaps (e.g. ANSI and ISO). You can name your layouts `mylayout-ansi` and `mylayout-iso` and add the following line to your layout's `rules.mk`:
```
USER_NAME := mylayout
```

View File

@ -20,7 +20,7 @@ Compatible flashers:
* [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (recommended GUI)
* [dfu-programmer](https://github.com/dfu-programmer/dfu-programmer) / `:dfu` in QMK (recommended command line)
* [Atmel's Flip](http://www.atmel.com/tools/flip.aspx) (not recommended)
* [Atmel's Flip](http://www.microchip.com/developmenttools/productdetails.aspx?partno=flip) (not recommended)
Flashing sequence:

View File

@ -2,9 +2,7 @@
Github can be a little tricky to those that aren't familiar with it - this guide will walk through each step of forking, cloning, and submitting a pull request with QMK.
{% hint style='info' %}
This guide assumes you're somewhat comfortable with running things at the command line, and have git installed on your system.
{% endhint %}
?> This guide assumes you're somewhat comfortable with running things at the command line, and have git installed on your system.
Start on the [QMK Github page](https://github.com/qmk/qmk_firmware), and you'll see a button in the upper right that says "Fork":

View File

@ -14,7 +14,7 @@ The full syntax of the `make` command is `<keyboard_folder>:<keymap>:<target>`,
The `<target>` means the following
* If no target is given, then it's the same as `all` below
* `all` compiles as many keyboard/revision/keymap combinations as specified. For example, `make planck/rev4:default` will generate a single .hex, while `make planck/rev4:all` will generate a hex for every keymap available to the planck.
* `dfu`, `teensy` or `dfu-util`, compile and upload the firmware to the keyboard. If the compilation fails, then nothing will be uploaded. The programmer to use depends on the keyboard. For most keyboards it's `dfu`, but for ChibiOS keyboards you should use `dfu-util`, and `teensy` for standard Teensys. To find out which command you should use for your keyboard, check the keyboard specific readme.
* `dfu`, `teensy`, `avrdude` or `dfu-util`, compile and upload the firmware to the keyboard. If the compilation fails, then nothing will be uploaded. The programmer to use depends on the keyboard. For most keyboards it's `dfu`, but for ChibiOS keyboards you should use `dfu-util`, and `teensy` for standard Teensys. To find out which command you should use for your keyboard, check the keyboard specific readme.
* **Note**: some operating systems need root access for these commands to work, so in that case you need to run for example `sudo make planck/rev4:default:dfu`.
* `clean`, cleans the build output folders to make sure that everything is built from scratch. Run this before normal compilation if you have some unexplainable problems.

View File

@ -66,9 +66,7 @@ Do change the `MANUFACTURER`, `PRODUCT`, and `DESCRIPTION` lines to accurately r
#define DESCRIPTION A custom keyboard
```
{% hint style='info' %}
Note: On Windows and macOS the `MANUFACTURER`, `PRODUCT`, and `DESCRIPTION` fields will be displayed in the list of USB devices. On Linux these values will not be visible in `lsusb`, since Linux takes that information from the list published by the USB-IF.
{% endhint %}
?> Note: On Windows and macOS the `MANUFACTURER`, `PRODUCT`, and `DESCRIPTION` fields will be displayed in the list of USB devices. On Linux these values will not be visible in `lsusb`, since Linux takes that information from the list published by the USB-IF.
### Keyboard Matrix Configuration

View File

@ -45,17 +45,8 @@ The `info.json` file is a JSON formatted dictionary with the following keys avai
* `keyboard_name`
* A free-form text string describing the keyboard.
* Example: `Clueboard 66%`
* `manufacturer`
* A free-form text string naming the manufacturer.
* Example: `Clueboard`
* `identifier`
* The Vendor, Product, and Revision ID's joined by a :
* Example: `c1ed:2370:0001`
* `url`
* A URL to the keyboard's product page, [QMK.fm/keyboards](https://qmk.fm/keyboards) page, or other page describing information about the keyboard.
* `processor`
* The MCU or CPU this keyboard uses.
* Example: `atmega32u4` or `stm32f303`
* `bootloader`
* What bootloader this keyboard uses. Available options:
* `atmel-dfu`

45
docs/index.html Normal file
View File

@ -0,0 +1,45 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>QMK Firmware</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta name="description" content="Description">
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<link rel="stylesheet" href="//unpkg.com/docsify/lib/themes/vue.css" title="light">
<link rel="stylesheet" href="qmk.css" title="dark" disabled>
</head>
<body>
<div id="app"></div>
<script>
window.$docsify = {
name: 'QMK Firmware',
nameLink: 'https://qmk.fm/',
repo: 'qmk/qmk_firmware',
loadSidebar: true,
auto2top: true,
formatUpdated: '{YYYY}/{MM}/{DD} {HH}:{mm}',
search: {
paths: 'auto',
placeholder: 'Search Documentation...',
noData: 'We could not find any documents matching your search.',
depth: 6
}
}
</script>
<script src="//unpkg.com/docsify/lib/docsify.min.js"></script>
<script src="//unpkg.com/docsify/lib/plugins/search.min.js"></script>
<script src="//unpkg.com/docsify/lib/plugins/emoji.min.js"></script>
<script src="//unpkg.com/prismjs/components/prism-bash.min.js"></script>
<script src="//unpkg.com/prismjs/components/prism-c.min.js"></script>
<script src="//unpkg.com/prismjs/components/prism-cpp.min.js"></script>
<script src="//unpkg.com/prismjs/components/prism-json.min.js"></script>
<script src="//unpkg.com/prismjs/components/prism-makefile.min.js"></script>
<script>
// Register the offline cache worker
if (typeof navigator.serviceWorker !== 'undefined') {
navigator.serviceWorker.register('sw.js')
}
</script>
</body>
</html>

View File

@ -8,17 +8,15 @@ If you have closed and reopened your terminal window since following the first p
Start by navigating to the `keymaps` folder for your keyboard.
{% hint style='info' %}
If you are on macOS or Windows there are commands you can use to easily open the keymaps folder.
?> If you are on macOS or Windows there are commands you can use to easily open the keymaps folder.
macOS:
?> macOS:
open keyboards/<keyboard_folder>/keymaps
Windows:
?> Windows:
start keyboards/<keyboard_folder>/keymaps
{% endhint %}
## Create a Copy Of The `default` Keymap
@ -32,9 +30,7 @@ Open up your `keymap.c`. Inside this file you'll find the structure that control
This line indicates the start of the list of Layers. Below that you'll find lines containing either `LAYOUT` or `KEYMAP`, and these lines indicate the start of a layer. Below that line is the list of keys that comprise a that particular layer.
{% hint style='danger' %}
When editing your keymap file be careful not to add or remove any commas. If you do you will prevent your firmware from compiling and it may not be easy to figure out where the extra, or missing, comma is.
{% endhint %}
!> When editing your keymap file be careful not to add or remove any commas. If you do you will prevent your firmware from compiling and it may not be easy to figure out where the extra, or missing, comma is.
## Customize The Layout To Your Liking
@ -44,9 +40,7 @@ How to complete this step is entirely up to you. Make the one change that's been
* [Features](features.md)
* [FAQ](faq.md)
{% hint style='info' %}
While you get a feel for how keymaps work, keep each change small. Bigger changes make it harder to debug any problems that arise.
{% endhint %}
?> While you get a feel for how keymaps work, keep each change small. Bigger changes make it harder to debug any problems that arise.
## Build Your Firmware

View File

@ -12,17 +12,15 @@ However, the QMK Toolbox is only available for Windows and macOS currently. If
Begin by opening the QMK Toolbox application. You'll want to locate the firmware file in Finder or Explorer. Your keyboard firmware may be in one of two formats- `.hex` or `.bin`. QMK tries to copy the appropriate one for your keyboard into the root `qmk_firmware` directory.
{% hint style='info' %}
If you are on Windows or macOS there are commands you can use to easily open the current firmware folder in Explorer or Finder.
?> If you are on Windows or macOS there are commands you can use to easily open the current firmware folder in Explorer or Finder.
Windows:
?> Windows:
start .
macOS:
?> macOS:
open .
{% endhint %}
The firmware file always follows this naming format:

View File

@ -14,9 +14,7 @@ Before you can build keymaps you need to install some software and setup your bu
You'll need a program that can edit and save **plain text** files. If you are on Windows you can make due with Notepad, and on Linux you can use Gedit, both of which are simple but functional text editors. On macOS you can not use TextEdit.app, it will not save plain text files. You will need to install another program such as Sublime Text.
{% hint style='info' %}
Not sure which text editor to use? Laurence Bradford wrote [a great introduction](https://learntocodewith.me/programming/basics/text-editors/) to the subject.
{% endhint %}
?> Not sure which text editor to use? Laurence Bradford wrote [a great introduction](https://learntocodewith.me/programming/basics/text-editors/) to the subject.
### QMK Toolbox
@ -29,12 +27,9 @@ QMK Toolbox is a Windows and macOS program that allows you to both program and d
We've tried to make QMK as easy to setup as possible. You only have to prepare your Linux or Unix environment and let QMK install the rest.
{% hint style="info" %}
If you haven't worked with the Linux/Unix command line before there are a few basic concepts and commands you should learn. These resources will teach you enough to work with QMK:
* [Must Know Linux Commands](https://www.guru99.com/must-know-linux-commands.html)
* [Some Basic Unix Commands](https://www.tjhsst.edu/~dhyatt/superap/unixcmd.html)
{% endhint %}
?> If you haven't worked with the Linux/Unix command line before there are a few basic concepts and commands you should learn. These resources will teach you enough to work with QMK:<br>
[Must Know Linux Commands](https://www.guru99.com/must-know-linux-commands.html)<br>
[Some Basic Unix Commands](https://www.tjhsst.edu/~dhyatt/superap/unixcmd.html)
### Windows
@ -63,9 +58,7 @@ Once you have setup your Linux/Unix environment you are ready to download QMK. W
git clone https://github.com/qmk/qmk_firmware.git
cd qmk_firmware
{% hint style='info' %}
If you already know [how to use GitHub](getting_started_github.md) we recommend you create and clone your own fork instead. If you don't know what that means you can safely ignore this message.
{% endhint %}
?> If you already know [how to use GitHub](getting_started_github.md) we recommend you create and clone your own fork instead. If you don't know what that means you can safely ignore this message.
## Setup QMK

862
docs/qmk.css Normal file

File diff suppressed because it is too large Load Diff

83
docs/sw.js Normal file
View File

@ -0,0 +1,83 @@
/* ===========================================================
* docsify sw.js
* ===========================================================
* Copyright 2016 @huxpro
* Licensed under Apache 2.0
* Register service worker.
* ========================================================== */
const RUNTIME = 'docsify'
const HOSTNAME_WHITELIST = [
self.location.hostname,
'fonts.gstatic.com',
'fonts.googleapis.com',
'unpkg.com'
]
// The Util Function to hack URLs of intercepted requests
const getFixedUrl = (req) => {
var now = Date.now()
var url = new URL(req.url)
// 1. fixed http URL
// Just keep syncing with location.protocol
// fetch(httpURL) belongs to active mixed content.
// And fetch(httpRequest) is not supported yet.
url.protocol = self.location.protocol
// 2. add query for caching-busting.
// Github Pages served with Cache-Control: max-age=600
// max-age on mutable content is error-prone, with SW life of bugs can even extend.
// Until cache mode of Fetch API landed, we have to workaround cache-busting with query string.
// Cache-Control-Bug: https://bugs.chromium.org/p/chromium/issues/detail?id=453190
if (url.hostname === self.location.hostname) {
url.search += (url.search ? '&' : '?') + 'cache-bust=' + now
}
return url.href
}
/**
* @Lifecycle Activate
* New one activated when old isnt being used.
*
* waitUntil(): activating ====> activated
*/
self.addEventListener('activate', event => {
event.waitUntil(self.clients.claim())
})
/**
* @Functional Fetch
* All network requests are being intercepted here.
*
* void respondWith(Promise<Response> r)
*/
self.addEventListener('fetch', event => {
// Skip some of cross-origin requests, like those for Google Analytics.
if (HOSTNAME_WHITELIST.indexOf(new URL(event.request.url).hostname) > -1) {
// Stale-while-revalidate
// similar to HTTP's stale-while-revalidate: https://www.mnot.net/blog/2007/12/12/stale
// Upgrade from Jake's to Surma's: https://gist.github.com/surma/eb441223daaedf880801ad80006389f1
const cached = caches.match(event.request)
const fixedUrl = getFixedUrl(event.request)
const fetched = fetch(fixedUrl, { cache: 'no-store' })
const fetchedCopy = fetched.then(resp => resp.clone())
// Call respondWith() with whatever we get first.
// If the fetch fails (e.g disconnected), wait for the cache.
// If theres nothing in cache, wait for the fetch.
// If neither yields a response, return offline pages.
event.respondWith(
Promise.race([fetched.catch(_ => cached), cached])
.then(resp => resp || fetched)
.catch(_ => { /* eat any errors */ })
)
// Update the cache with the version we fetched (only for ok status)
event.waitUntil(
Promise.all([fetchedCopy, caches.open(RUNTIME)])
.then(([response, cache]) => response.ok && cache.put(event.request, response))
.catch(_ => { /* eat any errors */ })
)
}
})

Some files were not shown because too many files have changed in this diff Show More