Compare commits

..

383 Commits

Author SHA1 Message Date
Joe Wasson
2dacf25f28 Add layout support for contra. 2018-03-12 14:22:56 -04:00
Joe Wasson
bfa34d02b0 Add default keymap for contra 2018-03-12 14:22:56 -04:00
Jon Nall
0b82d08e8d Fixed exit status check for brew 2018-03-09 20:10:44 -08:00
adiron
fdeb7f7665 Added Contra keyboard support (#2501)
* Added Contra keyboard support

The configuration came from a source distribution of the firmware on the
Contra's official website.

I have also included a simple MIDI keymap. (And it works!)

* Changes to Contra config and README

* Readme has been changed as requested by jackhumbert
* Config has been changed to add the Cartel and Contra names to
  the USB configuration.
2018-03-09 14:27:31 -05:00
sparkyman215
141a52982e update ymdk96 files 2018-03-09 13:34:37 -05:00
Danny
ac5326595c Add Viterbi fido keymap (#2454)
* Add fido Viterbi keymap

* Cleanup rules files

* Remove unused WIP code
2018-03-09 13:32:50 -05:00
hypnocrat
400f410c45 XD75 keymap - Germanized (#2441)
* Added a heavily customized German keymap to the XD75RE

* A heavily customized alternative layout for the XD75, for German users

* Fixed capitalization, removed unnecessary files

* Hopefully fixed capitalization, some keymap changes
2018-03-09 13:32:03 -05:00
Brian Choromanski
8d6eadf261 Patched some keyboards that won't compile (#2453) 2018-03-09 13:31:42 -05:00
Louis Orleans
0e6e059ef3 layout(planck): dudeofawesome's layout (#2457)
* layout(planck): new layout initial commit

* feat(planck): add workman layout

* fix(planck): switching to workman

* layout(planck): swapping mnext and mplay

* feat(planck): prep for RGB

* perf(planck): remove plover

saves 256 bytes of memory

* perf(planck): remove colemak

saves 128 bytes

* layout(planck): swapping enter and quote

* perf(planck): disable console

frees 1664 bytes

* feat(planck): RGB under-lighting

* refactor(planck): change RGB pin

Uses pin labeled PB2

* feat(planck): add RGB keycodes

* feat(planck): re-enable audio

* style(planck): fixing indentation

Because who indents like that?

* style(planck): clean up keycodes

* layout(planck): remove del

* feat(planck): add tap-space to layer keys

* docs(planck): specify pin on PCB for RGB

* bug(planck): reducing tap time

* Revert "bug(planck): reducing tap time"

This reverts commit 62606b2dc6.

* Revert "feat(planck): add tap-space to layer keys"

This reverts commit c74de5a4aa.

* perf(planck): remove backlit case

* feat(planck): swap enter and quote

* bug(planck): moving right shift

* doc(planck): update README

* chore(planck): remove makefile

* 🔨 add userspace config

* 📝 update layer ascii art

* 🔥 disable RGB lighting

*  add Colemak

*  add numpad layer

*  add caps lock on adjust layer

* 📝 update layer renders

* 🔥 remove workman sound def

* 🔨 add userspace config

* 📝 update layer ascii art

* 🔥 disable RGB lighting

*  add Colemak

*  add numpad layer

*  add caps lock on adjust layer

* 📝 update layer renders

* 🔥 remove workman sound def
2018-03-09 13:31:08 -05:00
Campbell Barton
0603dcb1be qwerty_code_friendly: minor updates (#2494)
* qwerty_code_friendly: minor updates

- Correct mistake in ascii keymap.
- Make lower right key delete again, but make it configurable.
- Make double shift for double quotes optional.

* qwerty_code_friendly: shift users title-caps
2018-03-09 13:19:51 -05:00
MakotoKurauchi
3313473004 Usb max power (#2502)
* add some comment about Helix customize and auto-setup RGBLIGHT_LIMIT_VAL

* add define USB_MAX_POWER_CONSUMPTION
2018-03-09 13:15:37 -05:00
Drashna Jael're
3f1d147529 Add SS_RALT for AltGR usage in macros 2018-03-09 13:15:10 -05:00
edwardbrowncross
eba4b08a4a Add the OK60 keyboard (#2488)
* Add the OK60 keyboard

* Fix ok60 incorrect ANSI keymap signature
Add support for default ansi and iso 60 keymaps
2018-03-09 13:14:50 -05:00
Oscillope
7d9dc61504 Fixes for JJ40 and Oscillope keymap (#2496)
* Add navigation layer for hjkl arrow keys

* Fix Oscillope keymap after jj40.h changes. Also fix jj40.c so that it can build without rgblight if you don't want that enabled.
2018-03-08 21:31:08 -05:00
skullydazed
566399794a Disable the glossary linking to fix #2498 (#2499) 2018-03-08 10:31:08 -08:00
That-Canadian
2bdf1731c3 Canadian planck (#2463)
* Line ending stuff again

* Added my personal Planck layout (finally)
2018-03-08 10:31:27 -05:00
MakotoKurauchi
955b17189a Move rows config to keymap (#2464)
* Fork from Let's Split

* Organizing files

* Delete some keymaps

* I2C and serial enabled at the same time

* Change readme

* add #define HELIX_ROWS for multiple rows

* Delete avrdude flashing script

* Delete makefiles

* Subproject elimination

* Fix lufa path

* Remove PLAY_NOTE_ARRAY usages to get rid of warning.

Fix conflicting function name

* Mousekey change default to off

* Fix to oled display adjust

* make rev2

change pin assign
change keymap

* use master_buffer

* Timing adjustment

* Organizing files

* Change Keymap

* Change Keymap

Add EISU and KANA
Correct 4rows

* NKRO default to disable

* EXTRAKEY_ENABLE default to disable

* add rgb reset key

* rgb custom function enable

*  Extend font

* add RGBLED_POWER

default folder to helix/rev2
RGB_ENABLE to no

* renamed directory

* Disable RGBLIGHT_CUSTOM_DRIVER

* Disable LOCKING_SUPPORT_ENABLE

* Update bootloader setting

* Change readme

* Fixed argument error

* Move rows config to keymap
2018-03-07 17:34:42 -05:00
crazyiop
3d7e9425c7 quantum: keympa_extra: add sendstring_bepo.h 2018-03-07 17:09:41 -05:00
crazyiop
483e3cd1cb quantum: keymap_bepo.h: fix typo in BP_COMMMA 2018-03-07 17:09:41 -05:00
Lukas Klingsbo
821b492667 Swedish layout for iris 2018-03-07 17:07:05 -05:00
Cole Markham
bd1ad405bf Update Meira for revision 1.1 to enable backlighting by default (#2468)
* Update Meira for revision 1.1 to enable backlighting by default

* Updates to fix other keymaps
2018-03-07 17:06:41 -05:00
Maarten Dekkers
03df19d3f6 Fixed keymap, added capslock led for maartenwut's kbd66 keymap (#2473)
* Fixed keymap, added capslock led

* Removed macro
2018-03-07 17:06:04 -05:00
U-LANDSRAAD\drashna
42e85d2b92 Add layer_state_set_* to custom function lists 2018-03-07 17:05:38 -05:00
U-LANDSRAAD\drashna
d27d854913 Examples should all use _user functions for consistency 2018-03-07 17:05:38 -05:00
Sebastian Kaim
bec8d58ad8 Fixed compilation of the ps2avrGB keyboard/firmware (resolving #2425) (#2478)
* Fixed compilation of the ps2avrGB keyboard/firmware

This commit fixes the silent compilation error for the ps2avrGB
keyboard/firmware. This error was caused by a lacking default
keymap which it did not have because all keyboards based on it were
moved to another directory. I also added the required config.h
options so it's possible to compile it again and (probably)
flash it on a b.mini.

Lastly, I updated the README to reflect the current state.

This commit fixes #2425

* Referenced the pearl in the ps2avrGB REAMDE

Added a reference to the pearl keyboard in the README of the ps2avrGB keyboard as it is originally based on the firmware as well.
2018-03-07 17:05:02 -05:00
Blake Newman
6c473c5f38 layout(preonic): blake-newman's layout (#2483)
* layout(preonic): blake-newman's layout

- Add keymap
  - Add Number Pad layout
  - Reconfigure other layouts to my opinionated style
- Add `readme.md` with layout information

* layout(preonic): blake-newman's layout

- Move enter to `raise + space` / `lower + space`
- Replace `enter` to `right shift`
- Explicitly map modifier keys
2018-03-07 17:00:44 -05:00
Campbell Barton
aadb386de6 qwerty_code_friendly: various updates
- Remove action_get_macro in favor of process_record_user
- Support user defined words on layer 3 (pass via flags)
- Support backspace & del on left thumb cluster.
  (optionally override top right backspace).
2018-03-07 17:00:21 -05:00
Corey T Kump
b688c2c0b3 Corvec's Planck layout 2018-03-07 16:58:51 -05:00
Joe Wasson
7b80aea8b2 Add back docs for hand-swapping feature. 2018-03-07 16:56:57 -05:00
Kenny Hung
586aa15cef A small tidy up (#2490)
* Add extra RGUI key to make keyboard more MAC friendly

* Remove enumerators for no longer used layers in layout Skewwhiffy for XD75

* Make layer numbers even better
2018-03-07 16:56:31 -05:00
skullY
48e11240a6 Move the linux tutorials to an info box on newbs_getting_started 2018-03-06 20:51:26 -08:00
skullY
75354f12d7 warn->danger 2018-03-06 15:39:46 -08:00
skullY
6a4e08938e Flesh out the newbs guide 2018-03-06 15:22:47 -08:00
skullydazed
08e48eb6f5 Add a newbie guide for people completely new to QMK (#2480) 2018-03-06 14:37:48 -08:00
Pawnerd
12c8ee956d Add knops configurator support (#2474)
* Committed initial version of the knops configurator.

* Added support for the Knops v1.1
2018-03-04 21:29:38 -05:00
Graham P Heath
b36b4382d0 Mention invalid names in the readme. (#2458) 2018-03-03 09:52:09 -08:00
skullydazed
e87c39d302 More thoroughly document Bootmagic and Command (#2455) 2018-03-02 09:21:03 -08:00
skullY
e5c331e7be Fix the SGUI aliases 2018-03-01 16:15:38 -08:00
skullydazed
e3f67e6e7f Add SGUI() and SGUI_T() for consistency with KC_GUI (#2442)
* Add `SGUI()` as an alias of `SCMD()` for consistency with `KC_GUI`

* Add `SGUI_T()` as an alias of `SCMD_T()` for consistency with `KC_GUI`

* Make SGUI the primary name
2018-03-01 08:13:10 -08:00
Mitchell van Manen
31cae1f1bd Update feature_macros.md (#2387)
break statements are never reached due to the return statement, so unnecessary
2018-03-01 08:05:15 -08:00
Ivan Choi
0092be5925 adding my keymap (#2443) 2018-03-01 07:51:57 -08:00
Maarten Dekkers
381f4e6404 Updated and added maartenwut's layouts (#2444) 2018-03-01 07:51:11 -08:00
fauxpark
b713feb6f2 Add a little aside explaining that shifted keys with mod-tap doesn't work (#2446) 2018-03-01 07:49:50 -08:00
Louis Orleans
d7f46f3466 layout(preonic): dudeofawesome's layout (#2449)
* 🎉 duplicate default Preonic keymap

*  add Workman layout

* 🚚 swap backspace and delete

*  enable hold enter for shift

* 🚚 swap media play and next

* 💄 use Planck startup sound

* 💄 add Workman layer sound

*  add numpad layer

* 💄 add new workman sound

* 📝 add README

* 🎨 fix layout formatting

* 📝 add image of numpad layer

* 📦 changing chibios submodule version

to match upstream/master's version

*  add caps lock key on adjust layer

*  reworking numpad layer to match a real numpad

*  add double tap to activate numpad

* 📝 fix layout comments

* 📝 update numpad layer render

*  adding operator keys to left hand on numpad

* 🎨 shorten numpad keycodes
2018-03-01 07:48:15 -08:00
Drashna Jaelre
452d23da52 Update to drashna keymaps and userspace (#2450)
* Add OSL keycodes and macro handling

* Re-add AVRDUDE target

* Userspace document cleanup and commenting

* Fix Orthodox keymap layout (cosmetic)

* Add caveat for KEYMAP Macros

* Minor tweaks

* Enable Bootmagic in Ergodox EZ

* Minor tweaks
2018-03-01 07:46:57 -08:00
Brian Choromanski
7f7f763598 Fixed dead links (#2451)
* Fixed typo of 'confid.h' to 'config.h'

* Fixed broken links in docs

* Fixed a lot of dead links
2018-03-01 07:45:47 -08:00
Gam3cat
2b8a82fb9d M10-A, M65-A, GonNerd keymaps (#2418)
* adding my keymap

* update keymap

* adding gamecat keymap for jc65 keyboard

* updating jc65-gamecat keymap

* updating jc65-gamecat keymap

* updating jc65-gamecat keymap

* updating jc65-gamecat keymap

* M10a keymap and M65a updates

* keymap updates

* keymap updates

* M10a/M65a keymap updates

* M10a/M65a keymap updates

* Delete test.txt

* M65 keymap update

* M65 keymap update

* M65 keymap update

* M65/M10 keymap updates

* M65 keymap update

* M65 keymap update

* M65 keymap update

* M65 keymap update

* M65 keymap update

* M65/M10 keymap update

* M65 keymap update

* M65 keymap update

* M65 keymap update

* M65 keymap update

* M65 keymap update

* Set theme jekyll-theme-cayman

* Set theme jekyll-theme-slate

* M65 keymap update

* M10a/M65a keymap updates

* M10a keymap update

* M65a keymap update

* M65a keymap update

* M65a keymap update

* M65a readme update

* M65a/M10a updates

* M65a readme updates

* M65a/M10a updates

* M65A update

* M65A update

* M65A update

* M65A update

* M65A/M10A keymap update

* M10A keymap update

* Set theme jekyll-theme-tactile

* M10A keymap update

* M65A keymap.c update

* M65 keymap added LED backlight toggle, inc/dec to adjust layer.

* M65 keymap/readme updates.

* M65 keymap fix

* M65 keymap update

* remove theme

* fix comments/readme

* update keymap

* LED backlight update, guess based on reading atmega32u4 documentation for DDRB/PORTB regs, believe DDRB should only be written to once not every time CAPS is hit, but really not too sure.

* LED backlight update, guess based on reading atmega32u4 documentation for DDRB/PORTB regs, believe DDRB should only be written to once not every time CAPS is hit, but really not too sure.

* M65 keymap update

* Updated M65, M10, and gonNerd keymaps.

* update

* del

* keymap updates M65, M10, gonnerd

* update keymaps

* adding back readme that somehow got removed.
2018-02-28 16:44:27 -05:00
Brian Choromanski
8e99fbc884 Fixed typo of 'confid.h' to 'config.h' (#2448)
* Fixed typo of 'confid.h' to 'config.h'

* Fixed broken links in docs
2018-02-28 16:43:15 -05:00
Danny
524053e3c0 Remap msys2 usb, fix USB port detection (#2301)
* Add AVRDUDE to MSYS2 setup

* Remap detected USB port in MSYS2 to COM port
2018-02-28 16:40:43 -05:00
Jason Gorman
19b02bf267 Merge of e6v2 stuff as well as my personal keymaps (#2434)
* Checkin of tada keymap and initial commit for e6v2.

* checking in other remaining changes before trying to merge

* Reverting pin change. This was done based on the json orginally provided by exclusive, but it was later determined my map was the correct one based on user testing

* fix extra key for ansi keymap. Didn't include fn as standard ansi shift is not split but still had it in keymap

* Fix default help file and add reset to default
2018-02-28 16:22:53 -05:00
skullY
298ac18dfa remove duplicate #define 2018-02-25 17:41:43 -08:00
skullY
c6ce959f49 Test a shrug macro 2018-02-25 17:40:18 -08:00
Yan-Fa Li
3b801880a0 Custom keymap for clueboard 60
My customized keymap for the clueboard 60.

 - Maps MT(LCTL,ESC) to Caps lock
 - Swaps ALT and GUI for OSX
 - Adds layer for WASD key navigation
2018-02-23 13:25:23 -05:00
Alejandro Blanco
21a37a5245 ErgoDox layout similar to Truly Ergonomic 2018-02-23 13:23:55 -05:00
Sean-Li Murmann
3cff95c8df new customized ErgodoxEz keymap with easy to remember modifiers. (#2400)
* First pass keyboard setup!

* More variation

* Final layer for today

* Added brace to middle key
2018-02-23 13:22:50 -05:00
Isaac Hookom
93eabc4b2c new xd60 layout (#2405)
* new xd60 layout

* fix kc_slsh
2018-02-23 13:22:32 -05:00
ajp10304
01f91bf6f4 JJ40 AJP10304 layout (#2407)
* JJ40 AJP10304 layout
Updated AJP10304 readme.md with formatting

* Revert default JJ40 keymap
2018-02-23 13:21:56 -05:00
Michael Wamsley
2c1ba03a98 Add additional 'tada68' layout. 2018-02-23 13:17:00 -05:00
lucwastiaux
27d32378b5 Update Dvorak 42 key layouts (#2420)
* add SCREEN_NAV layer for copy/pasting within screen

* working readreg/paste macros

* working read reg / paste macros

* write log and tran patterns, and expand

* add ls -la shortcut, add tab on combined layer

* put delete word on the right pinky key on shell_nav layer

* add TAB on the right side, add reset key

* added Cloud9 macros

* add cloud9 shortcuts to atreus layout

* added BROWSER_CONTROL layer

* finalized browser control layer

* adding comment
2018-02-23 13:16:40 -05:00
scott-t-wilson
3f3d0551cd Lfkeyboards updates (#2421)
* Update smk65 fn layer, add iso

* Added Fn layer to ISO keymap

* Fix error when backlight is disabled but lighting isn't

* Remove broke mini1800 iso map

* Add keymaps

* Add LFKPad

* Add split delete to lfk78

* Typo

* Custom keymap
2018-02-23 13:16:10 -05:00
Graham P Heath
f746174874 Graham's Keymaps. (#2422)
* add my config

* fix backlight, clean up that code

* group background code, restore static var

* qwerty is supposed to be in the middle

* wrap layer change backlight in ifdef

* backlight levels and some more 'emojis'.

* Restructure to make it possible to press cmd ent on the right side of the board with one hand.

* Expose the period through the number layer. Add Hyper keys to mouse layer

* reduce mouse speed

* add a : -P  key

* Thumbs up and down, remove some keys that are duplicated via function keys, clean up

* fix build issues

* add various emoji

* duplicate default Meira keymaps

* Miera updates

* add documented but unmapped emoji

* Sound for the Meira, was stumped by a file size! Thanks drashna!

* add docs

* docs

* revert lib changes...

* clean up

* clean up

* remove make file

* Fixes missing key
2018-02-23 13:15:34 -05:00
Yan-Fa Li
a8daf3ffba Document bootmagic hot keys
- covers most of tmk_core/common/bootmagic.h
2018-02-23 13:14:53 -05:00
wanleg
3b4d26e344 flashing instructions, keymap changes
* added flashing instructions for Linux & Windows
* minor keymap changes
2018-02-23 13:14:22 -05:00
ferbie
767f7a8cf0 Fixed formatting for Fedora example 2018-02-23 13:13:30 -05:00
deadencryption
ee176f2b27 Adds dead encryption keymap 2018-02-23 13:13:09 -05:00
Mason McAllaster
c72c1db68b Planck/NIU_Mini - Mason Layout - Fixing comments, adding missed keys 2018-02-23 13:12:27 -05:00
James Shackleford
d469aaa166 tada68: layout: add new layout 'tshack' (#2431)
* Move to a more cross-platform grep command

* Use sed to strip out AVR_SIZE instead

* tada68: layout: add new layout tshack

Adds "James Shackleford's UNIX layout" for the Tada68
2018-02-23 13:12:04 -05:00
Jose Pablo Mora
d54de1c5f2 ergobox -> ergodox 2018-02-23 13:11:31 -05:00
Ben Hilburn
8df2ee4ec3 Minor updates to docs (#2406)
* [docs/] Cleaning up some language to make it more clear.

* [docs/] Adding instructions for installing deps on RH / Fedora.
2018-02-19 14:09:05 -05:00
Jason Barnachea
0e92d99cdc Readme img link updates (#2410)
* QMK and JC65 pcb img links updated

link fixes

* personal keymap updates

new v32u4 keymap, updated v32a keymap

* Update readme.md
2018-02-19 14:07:59 -05:00
Danny
3d92b21a3b Update dilly default keymap (#2413)
* Move DEL to correct layer

* Move BNM to the left by one and move Backspace, add more stuff to layers
2018-02-19 13:50:35 -05:00
rempired
78f5a2a3dc 1up60rgb Keyboard Support (#2404)
* Add files via upload

* Update keymap.c

* Update keymap.c

* Update 1up60rgb.c

* Tidy up the code a bit for submission into QMK Master
- Create readme file
- Fix compile issue with standard keymap
- Create default keymap
- Remove unused Makefile

* Keymap Adjustments

* Reworked alternate layouts

* Reworked keymaps

* Update keymap.c

* Update readme.md

Add carriage return to make README cleaner
2018-02-18 02:09:40 -05:00
Danny Nguyen
f67c59aa7b Move hexwire layout into 4x12 layout folder 2018-02-18 02:04:56 -05:00
Danny Nguyen
2a5da62728 Add Dilly keyboard 2018-02-18 02:04:22 -05:00
GlenPickle
d1ea398fb9 Added Chimera LS and Chimera Ergo (#2335)
* Added Chimera Ortho keymap

* added readme

* fixed hardware link

* Added KC_KEYMAP

* resolving conflict

* Added Chimera LS and Chimera Ergo

* Added rules file

* fixed rule files

* Added Chimera Ortho keymap

* Added KC_KEYMAP

* Added Chimera LS and Chimera Ergo

* fixed rule files

* fixed rule files

* fixed image links

* Added KC_KEYMAP

* Added Chimera LS and Chimera Ergo

* Added Chimera Ortho keymap

* fixed rule files

* fixed rule files

* fixed image links

* Fixed KEYMAP vs KC_KEYMAP
2018-02-16 12:03:53 -05:00
Yan-Fa li
bfc2b1205a u/yanfali custom keymap for Iris
Based heavily on the keymap by hexwire.

 1. Moved LALT to LCTL; I don't need CTL because of ESCC.
 1. Moved RAISE to old LALT.
 1. Moved ENTER to old RAISE.
 1. Move QUOTE to old ENTER.
 1. Moved PLUS to old QUOTE.
 1. replaced music next and volume up with browser forward and back
    through history
2018-02-16 12:02:33 -05:00
Pittyolo
7b5c6a895e Update keymap.c 2018-02-16 12:02:14 -05:00
tameone
4f55a7aca1 Iris: Create info.json (#2396)
* Create info.json

* Update info.json
2018-02-16 12:01:51 -05:00
Drashna Jaelre
b0e8de1c97 Fix EE HANDS on splits losing handedness if RGB is enabled (#2399)
* Fix EE HANDS on splits losing handedness if RGB is enabled

* Because I'm an idiot and did a bad cut/paste job
2018-02-16 12:00:39 -05:00
ChrissiQ
1af8f1f201 Let's Split: Minor keymap fixes 2018-02-16 12:00:08 -05:00
Oryhara
b89e318d35 adding my stuff back after hard reset 2018-02-12 16:37:40 -05:00
Johan Ju
20b5dd80bd Fix swedish NO_GRV 2018-02-12 15:56:43 -05:00
Fred Sundvik
25c7533092 Change the CDC_NOTIFICATION_EPSIZE back to 8 from 32 2018-02-12 15:48:44 -05:00
Fred Sundvik
50038882e0 Set unused USB serial buffer to 1 byte to save memory 2018-02-12 15:48:44 -05:00
Drashna Jaelre
6f5e88277b Update to drashna keymaps (#2381)
* Add to list of predefined rgb colors

* Change layer colors, to reflect new options

* Use Tag Toggle instead

* Clean up macros and add breathing indication for OSM Layer

* Get Viteri Macropad working properly

* Disable unused action features

* Use I2C because that's smaller, apparently

* Remove viterbi-half code
2018-02-12 15:46:35 -05:00
Gomme_Bidule
63df056013 Update feature_auto_shift.md 2018-02-12 15:45:54 -05:00
Kayle Knops
6f1d5f73a4 Committed initial version of the knops configurator. 2018-02-12 15:45:05 -05:00
skullydazed
994d94140e Clueboard hotswap support (#2376) 2018-02-10 17:09:47 -08:00
skullydazed
fa72d4aa5a Modernize clueboard, add 66_ansi and 66_iso layouts (#2377) 2018-02-10 17:08:37 -08:00
yiancar
88a7fa762f New keyboard: Cu75 (#2374)
* 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

* Addition of cu75

Addition of cu75 keyboard, uses libraries from LFKeyboards directory which are path linked to reduce file duplication.

Minor fix on cu24 readme

* Minor Readme Fix
2018-02-10 17:47:15 -05:00
IslandMan93
cd0c089b49 Diverge 3 initial commit
woo it works

use lets split code

Final working. Uses serial

Update license
2018-02-10 17:28:49 -05:00
Raymond Douglas
5bdc5c1190 Added raylas keymap for TADA68 2018-02-10 17:26:54 -05:00
Jason Barnachea
a972b26274 Add JC65 ps2avrGB keyboard (#2351)
* Adds JC65 ps2avrGB keyboard

* Adds default keymap

* Adds personal keymap

* Backlight On/off support

Migrated code from the BFake. Functionality only on BL_ON, BL_OFF,
BL_TOGG.

* Backlighting config adjustment

Only 1 level supported.

* Personal keymap update

BL toggle added and RGB layer updates.

* Renamed jc65 ps2avrgb directory

Renamed directory for more clarity.

* Default keymap and default rules

* Personal keymap and personal rules

* Group JC65 QMK and PS2 versions

Group JC65 QMK and PS2 versions, Split directories, Readme for parent
folder.

* Default keycaps and personal keymaps re-added

Default and personal keymaps re-added. Keymaps, Readme, Rules.mk, and
config.h

* v32a default keymap rules

Default to no.

* RGB and Backlight default settings

Set to yes.

* Rules.mk defaults for personal keymap

Rules.mk defaults for personal keymap

* Revised keyboard readme make paths

Revised.

* Path correction

* jc65 default folder set

set default pcb to qmk version

* default rules for v32a

set to enable backlight and rgb by default.
2018-02-10 17:24:54 -05:00
Fred Sundvik
8c2ae4a470 Fix reset for STM32 devices 2018-02-10 17:13:38 -05:00
Michael F. Lamb
fca31693df add conditional to perform check-size only for supported architectures 2018-02-08 16:47:18 -05:00
Michael F. Lamb
fae8132295 make check_size work across platforms 2018-02-08 16:47:18 -05:00
Drashna Jaelre
6835ae8209 Add the ability to disable Music Mode completely (#2339)
* Skip process_music in NO_MUSIC_MODE is defined

* Skip matrix_scan_music if NO_MUSIC_MODE is defined

* Skip music_all_notes_off if NO_MUSIC_MODE is defined

* Leave matrix_scan_music in, because it reduces firmware size by 150b....

* Add docs for NO_MUSIC_MODE
2018-02-08 15:16:06 -05:00
Danny Nguyen
c5d81a84a0 Switch from echo to printf for output without newlines 2018-02-08 15:15:12 -05:00
Danny Nguyen
361810dca8 Only search through newly detected devices and discard ones that disappeared 2018-02-08 15:15:12 -05:00
fredizzimo
53ff8a31b6 Merge ChibiOS and LUFA descriptor support (#2362)
* Move lufa descriptor to protocol/usb_descriptor

* Try to compile usb_descriptor on ChibiOS

* Add lufa_utils for ChibiOS

Lufa USB descriptors for ChibiOS

* More lufa_util compatibility fixes

* First compiling version of shared USB descriptor

* Send the usb descriptors

* Fix the CONSOLE output on ChibiOS

* Add errors for unsupported interfaces

* Enable support for vitual serial port USB descriptors

* Implement virtual serial port for ChibiOS

* Cleanup the lufa_utils

Use the default lufa header files

* Add raw hid support for ChibiOS

This is completely untested

* Enable midi compilation on ChibiOS

* Move midi functionality out of lufa.c

* Don't register sysex callback when not needed

* ChibiOS compilation fixes

* Update ChibiOS submodule

* Fix the Midi USB descriptor

It didn't work properly when both Midi and Virtual serial port was enabled.

* Add MIDI support for ChibiOS

* Fix USB descriptor strings on ChibiOS

* Use serial usb driver for raw hid

* Generalize the ChibiOS stream like drivers

This makes the initialization much more simple and eliminates a lot of
the code duplication.

* Convert console output to chibios stream driver

* Fixes for ChibiOS update

* Update the ChibiOS contrib submodule

To include the usb data toggle synchronization fixes

* Fix duplicate reset enumeration on ChibiOS

* Add missing include

* Add number of endpoints check for ChibiOS

* Enable serial USB driver on all keyboards

* Add missing includes when API is enabled withot midi

* Add another missing inlcude
2018-02-08 15:07:46 -05:00
Jack Humbert
63c16f4b63 ARM audio fixes, stack size increase (#2365)
* fix up arm audio implementation

* chibios stack size inc

* get one channel working

* update for chibios
2018-02-08 14:39:40 -05:00
jetpacktuxedo
7d79412f99 Fixed my minivan F-keys 2018-02-08 13:44:41 -05:00
Niles Christensen
57dde3ddba Makes layers consistent with comments 2018-02-08 13:42:58 -05:00
Danny Nguyen
8afbd649f0 Replace Right key on base layer with RShift, convert adjust to KC_KEYMAP format 2018-02-08 13:42:31 -05:00
Fred Sundvik
30b90de7c9 Send usb wakeup through ChibiOS 2018-02-07 17:16:01 -05:00
Fred Sundvik
30e413f985 Update Chibios Contrib with 17.6.3 support 2018-02-07 17:16:01 -05:00
Fred Sundvik
6a9617b1c6 Update ChibiOS to 17.6.3 2018-02-07 17:16:01 -05:00
Legonut
ad01e3c03a New keyboard added "Zen" (#2347)
* New keyboard added

Zen is a split ortholinear currently in group buy.

* remove bad keymap

Keymap was throwing errors

* remove other bad keymap

I should have checked these before haha

* small fix to update folder name

* renamed temp

* renamed to zen

* update folder name

* Slim down matrix code

Suggested by drashna

* move KC_NO

* Update keymap

* change from rev2 to rev1
2018-02-06 23:44:10 -05:00
Drashna Jaelre
9cfcd49406 Re-add Flip Installer (#2355)
* Re-add Flip Installer

Found the update URL for it.
http://www.microchip.com/developmenttools/productdetails.aspx?partno=flip

* Comment out JRE installer version
2018-02-06 23:21:03 -05:00
QMK Bot
f26e6fca8a convert to unix line-endings [skip ci] 2018-02-07 04:05:15 +00:00
KeLorean
0e31d85b8e made changes to my kelorean planck keymap (#2343)
* Planck-swapped up/down arrows,s65x-add dvorak

* Added Dvorak as first layer of default keymap

* planck-swap up and down arrows. s65x-added dvorak

* added colemak to kelorean s65x keymap

* made more changes to kelorean keymap

* just tryinng to fix bc i was not connected upstrem
2018-02-06 23:01:29 -05:00
U-LANDSRAAD\drashna
84a713b05c Remove _quantum functions from custom matrix.c code 2018-02-06 12:25:30 -05:00
skullydazed
9aaa491bc0 Add stm32 to drivers.txt 2018-02-05 08:54:49 -08:00
scauligi
9fcda95363 Fixes to get tap dance to fire at proper places (#2272)
* tap dance fixes: fire immediately upon completion and also get properly interrupted before macros

* bugfix for tapdance improvement

* fix build
2018-02-04 13:45:19 -05:00
KeLorean
2908c0f927 made kelorean keymaps for planck and s65x (#2331)
* Planck-swapped up/down arrows,s65x-add dvorak

* Added Dvorak as first layer of default keymap

* planck-swap up and down arrows. s65x-added dvorak

* added colemak to kelorean s65x keymap
2018-02-04 13:44:58 -05:00
Drashna Jaelre
598384bc10 Update to drashna userspace (Keymap Templating) (#2338)
* Change tapping term to be longer

* Make Audio/Underglow settings permanent

* Use wait_ms rather than _delay_ms

* Readd One Shot Mods

* Switch to Imperial March startup sound

* Move OSM to it's own layer

* Minor Formatting Tweaks

* Keymap Templates and formatting fixes
2018-02-04 13:44:02 -05:00
Harley Laue
ac82cd1ba7 Added personal nyquist & levinson layouts 2018-02-04 13:40:22 -05:00
f3d3
31f5229191 Added dz60 custom layout (#2302)
* Add files via upload

* Update keymap.c

* Delete keymap.c

* Added dz60 banana-split layout

* Added dz60 custom layout

Added layout for dz60 with split spacebar, arrows and other customizations.
2018-02-03 15:22:30 -05:00
jirgn
2f65ab183d just a planck layout (#2320)
* added jirgn keymap from dotfiles

* added jirgn s keymap as copy from default

* [TASK] removed unnecessary colemak and dvorak layouts

* [TASK] added right shift with tab to enter

* [TASK] added ctrl keys beside homerow

* [TASK] added Navigation Layer

removed unnecessary BACKLIT
removed Media Controls in Base Layers

* [TASK] added left Navigation mode  fixed some doc

* [Fix] locked navigation layer by adding a transparent key for nav_mod
keys

* [TASK] added some more symbols and removed lower F1-F12 keys

* [TASK] added some README and a layout design

* [FIX] forced for adding to repo

* [FIX] forced for adding to repo

* [FIX] problem with layerswitching and hanging ctrl

* removed image from repo

* removed github image link with permalink from layout designer

* removed github image link with permalink from layout designer

* replaced image with permalink to layout editor
2018-02-03 15:22:00 -05:00
yiancar
8350d7e607 Cu24 keyboard addition (#2330)
* 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

* CU24 Support

Addes Support for the upcoming CU24 keyboard sold by CapsUnlocked

* Removed modular keyboards to make stuff clear

* Lower Case folders

* Remove CU24 - Rename Folder

* Add CU24 - Renamed

* Fixed ignore list

I am stupid
2018-02-03 15:21:24 -05:00
Fred Sundvik
e7bb975482 Fix .editorconfig to not mess with line endings 2018-02-03 15:20:44 -05:00
Emily Soldal
a6be48681a Map num lock and caps lock LED events to the RXLED and TXLED 2018-02-02 01:51:01 -05:00
HagVcom
e9944bfc8e Added "hag" keymap to Iris (#2313)
* Create keymap.c

Add Hag keymap, a heavily modified dvorak swedish keymap with multiple layouts and often used stuff under the alpha cluster.

* Create config.h

* Create rules.mk
2018-02-02 01:50:22 -05:00
Kenneth Aloysius
9303b42e69 Update personal layouts, free up matrix_scan_user for JJ40 (#2319)
* Add NIU Mini keymap from Planck keymap

* Remove old keymap files

* Fix README, removed Planck references

* Add default layout, move Planck layout to separate folder

* Update README

* Add my XD60 keymap

* Change RShift to slash

* Fix keymap: stuck on MO(1)

* Move RESET to Fn+Enter

* Add: RGB saturation cycle

* Add numpad layer to keymap

* Fix last case

* Cleanup Mechmini keymap. Once the custom RGB function is defined, there is no need to manually handle RGB code.

* Change default to KEYMAP_MIT, not KEYMAP_OFFSET

* Add custom RGB code for JJ40

* Reset Mechmini advertised power draw to 500. Will have to test actual maximum power draw later.

* RGB working on JJ40.

* Fix: saturation increase/decrease flipped

* Add new directory for my custom keymap with RGB keycodes

* Swap LAlt and LGUI

* Update JJ40 max power draw with measured value

* Update: fun40 rules.mk to enable underglow; earlier failed Travis CI

* Fix: init RGB LEDs on boot. Also added HHKB-like keymap for XD60.

* Super rudimentary backlight test, init RGB LEDs on boot

* Backlighting works - stays on for now

* Toggling working

* Now can override backlight.c functions. Problem was functions in backlight.c weren't called before due to a lack of matrix_scan_quantum() in matrix.c

* Timers not working

* Delete global.h

* Cleanup

* Compiles

* Good sign: LEDs stop working again

* Handle timer1 overflow

* Progress: fix: forgot to init

* Backlighting fully working now except breathing.

* Revert keymap to original keycodes

* Update XD60 keymap README

* Update JJ40 keymap with backlight toggles

* Breathing working just fine.

* Update references

* Add backlight_set() call

* Cleanup code to disable backlight

* Fix: does not compile

* Fix: missing call to rgblight_task.

* Testing with BACKLIGHT_BREATHING

* Cleanup

* Cleanup comments

* More commenting cleanup.

* Do not enable BACKLIGHT_BREATHING by default

* Update XD60 keymap

* Update: move matrix_scan_kb out from matrix.c to jj40.c (kb-level)

* Cleanup for PR

* Fix conflict in readme.md for NIU mini

* Restore original power consumption figure

* Fix: matrix_scan_user() now has to be defined in the keymaps

* Add weak `matrix_scan_user` so it does not have to be defined in keymap

* Add weak matrix_init_user()
2018-02-02 01:30:47 -05:00
kifinnsson
042a450e24 Personal BEAKL9 based keymap (#2304)
* Adding personal BEAKL9 based keymap

Initial commit, very much a WIP/Proof of concept.

* Updating personal BEAKL9 based layout

* F-keys added to upper layer
2018-02-02 01:22:37 -05:00
jola5
2cf6bfe9ac Not quite neo (#2318)
* planck with a not-quite-neo layout for a de-DE OS/SW keymap

* ergodox infinity with a not-quite-neo layout for a de-DE OS/SW keymap

* add documentation
2018-02-02 01:21:41 -05:00
Donald
2917e55bd4 Added info.json and updated README for Deltasplit75 (#2266)
* Added info.json and updated README

* Updated info.json
2018-02-02 01:13:44 -05:00
Louis Orleans
55d4c9b162 🔧 create info.json for Infinity Ergodox (#2267)
* 🔧 create info.json for Infinity Ergodox

I'm not sure if the bootloader key is set correctly.

* 🐛 fix layout name
2018-02-02 01:11:56 -05:00
Erin Call
904b1b3f99 Use perl directly instead of grep -P
BSD grep (the one on OSX) lacks a -P flag. The grep -P command thus
fails and prints a usage message to the terminal. This fixes that.
2018-02-02 01:10:57 -05:00
mvs
0310eafdcf QWERTY based layout with thumb-chording (SHIFT + SPECIAL) and programming layer. 2018-02-02 01:02:58 -05:00
Stephen Tudor
f2459997ba Add smt keymap for KBD75 2018-02-02 01:01:41 -05:00
adiabatic
9f0aac22e9 zweihander: rename, ⌃ → ⌥, README revamp (#2311)
* zweihander-osx: Remove app keys, etc.

- add right command keys
- add F16 on ;' for Siri
- remove command-Q (too easy to hit)

* Rename zweihander-osx to zweihander-macos

zweihander-macos: / / ^ → / / ⌥; README revamp

zweihander: rename, ⌃ → ⌥, README revamp
2018-02-02 01:01:18 -05:00
Brosseau Valentin
3cf752f83f Xd75 : Bépo layout for the XD75 (#2166)
* Add xd75 layout

* Add Readme

* Update layout

* Remove Backlight keys

* Move ENTER / BACKSP / DEL

* Commit my bepo layout instead of the qwerty version since i will not use it

* Use 0 instead of 00

* Fix TODO key

* Update the readme

* Replace wrong key placment

* Update center column

* Update the layout with 2-u key

* Adjust the fn layer

* Adjust the main layer

* Adjust the fn layer
2018-02-02 01:00:39 -05:00
Christian Richter
087fa37b7a Added us based keyboard layout with cursor keys and mouse functionality for SATAN GH60 (#2180)
* Add chaser keymap

* Added missing readme

* Add missing mousewheel und mousebutton 3
2018-02-02 01:00:09 -05:00
Daniel Shields
4a04c7265e Replace custom tap dance keys with mod tap keys in planck/keymaps/dshields 2018-02-02 00:59:44 -05:00
Chris Lee
9584db055b Add support for key backlighting to bfake
If BACKLIGHT_ENABLE is set to `yes` in `rules.mk`, then the user
can use the `BL_*` keycodes to adjust the backlight. At the moment,
only on/off is supported.
2018-02-02 00:58:26 -05:00
Koen Klinkers
38ab86e8f2 updated xd75 layout (#2321)
* plank layout

* ergodone

* x75

* readmes

* added rgb controls

* bslash

* added backlighting based on layer/modifier

* changed colors
2018-02-01 23:08:39 -05:00
Oryhara
7636fdbbd0 Halfkey function for every layer (#2327)
* started work on halfkeyboard

* update to keymap

* halfkey layouts complete for dvorak and qwerty

* added plover layout to halfkeyboard mapping

* fixed error in dvorak layout right hand

* fixed error in dvorak layout right hand, comments updated

* thing

* added minus and equals to normal layouts

* added minus and equals to normal layouts

* adde visualizer matching halfkeyboard mappings

* adde visualizer matching halfkeyboard mappings

* updated keymaps for mirror handedness functionality for all layers.  Also added visualizer code for distinct color for each layer, and LCD text displaying the current layer.

* had a KC_TILD where should have had KC_GRAV

* its spelled KC_GRAVE
2018-02-01 23:08:18 -05:00
Null
cee0a33396 added my layout (#2326)
* added my layout

basically just default with proper arrow-keys

* fixed arrow keys now works properly
2018-02-01 23:07:47 -05:00
Mitchell van Manen
ee0a2b7dab Imperial Match (Darth Vader's Theme) added
crappy recording: https://clyp.it/0lufqils
2018-02-01 23:06:52 -05:00
Michael Kaylan
91c133f4e0 Add missing parenthesis back to backlight_tick 2018-02-01 23:06:00 -05:00
LEdiodes
b0805e38b9 added ATOM47 (Vortex Core QMK powered PCB) & DZ60 Custom config(LEdiodes) (#2310)
* added ATOM47 (Vortex Core QMK powered PCB)

* fixed broken\unfinished comment block

* moved Layer template to default template.

* moved Layer template to default template and removed template from the keymap.c file.

* Added LEdiodes config

* created readme.md

contains an image of 60% board(LEdiodes).

* updated readme.md with images

added images of the PCB and some feature details from https://geekhack.org/index.php?topic=93447.msg2545221#msg2545221

* removed excess words.

* followed the readme template to a T.

* formatting fix : added a return.
2018-01-28 15:58:42 -05:00
sanosis
2480e5d69a Support for YMDK NP21 (#2316)
* ymdk_np21 initial support

Base support of ymdk_np21 - based on jj40. Full grid layout

* Update README.md

Replacing description.

* Adding YMDK NP21 to comunity list.

Adding YMDK NP21 to community supported list.
2018-01-28 15:58:03 -05:00
sanosis
056ecb1463 Adding jj40 to keyboard list (#2315)
* Adding jj40 to keyboard list

Adding jj40 to Community-supported list.

* Update readme.md
2018-01-28 14:46:22 -05:00
skullydazed
9bfaf66792 Always copy the firmware file to the root qmk_firmware directory (#2314)
* Always copy the firmware file to the root qmk_firmware directory

* remove circular dependency
2018-01-28 11:11:28 -08:00
Sam Perman
f0f991dd89 update sed to work on mac
See https://stackoverflow.com/questions/19456518/invalid-command-code-despite-escaping-periods-using-sed
2018-01-28 12:23:28 -05:00
MakotoKurauchi
bceffdefca Add helix keyboard (#2308)
* Fork from Let's Split

* Organizing files

* Delete some keymaps

* I2C and serial enabled at the same time

* Change readme

* add #define HELIX_ROWS for multiple rows

* Delete avrdude flashing script

* Delete makefiles

* Subproject elimination

* Fix lufa path

* Remove PLAY_NOTE_ARRAY usages to get rid of warning.

Fix conflicting function name

* Mousekey change default to off

* Fix to oled display adjust

* make rev2

change pin assign
change keymap

* use master_buffer

* Timing adjustment

* Organizing files

* Change Keymap

* Change Keymap

Add EISU and KANA
Correct 4rows

* NKRO default to disable

* EXTRAKEY_ENABLE default to disable

* add rgb reset key

* rgb custom function enable

*  Extend font

* add RGBLED_POWER

default folder to helix/rev2
RGB_ENABLE to no

* renamed directory

* Disable RGBLIGHT_CUSTOM_DRIVER

* Disable LOCKING_SUPPORT_ENABLE

* Update bootloader setting

* Change readme

* Fixed argument error
2018-01-28 12:14:12 -05:00
Gabriel Rauter
86225ccc9b katana60: fix bootloader size to work with PCB
Fix the bootloader size so the `RESET` key actually resets to the
bootloader instead of just restarting the boards.
2018-01-28 12:13:21 -05:00
Mason McAllaster
13d288116f Adding personal keymap for planck/niu_mini (#2263)
* Adding mason keymap for planck/niu_mini

* Adding power shortcut
2018-01-25 01:09:37 -05:00
manofinterests
a9bbf9ee5c hi there friends 2018-01-25 01:09:23 -05:00
na7thana
ed659aa3a8 Hi there :) (#2273) 2018-01-25 01:04:31 -05:00
Alex Vogel
b9b67e9614 [Keymap] semi-ISO Spanish HHKB Keymap for Satan Keyboards (#2290)
* ISO HHKB first commit

* First version of my HHKB ISO Spanish Keymap

* Readme.md

* Added more media keys.
Caps Lock added on function layer.
Backlight toggle added on funtion layer.

* RGB support for WS2812B RGB led strip

* RGB and brightness control.
2018-01-25 01:03:49 -05:00
Greizgh
35b44ac699 Fix compilation error when RGB light is disabled 2018-01-25 01:03:10 -05:00
TerryMathews
61d851af65 Add SSD1306 OLED display support to TKC1800 (#2293)
* Add support for SSD1306 OLED display

* Correct keymap

Had tilde on keymap instead of grave, corrected.

* Winkeyless keymap
2018-01-25 01:00:59 -05:00
allo-world
7c3d2d5f64 Added KBD66 (#2292)
* Created default layout for KBD66.

* Added KBD66 ISO layout.
2018-01-25 01:00:31 -05:00
Thomas Järvstrand
d837ab586a Make new_project.sh a bit more robust 2018-01-25 00:59:35 -05:00
Danny Nguyen
9a91b42e92 Add Chocopad keyboard 2018-01-25 00:58:59 -05:00
Danny Nguyen
c73514a2b7 Update pinout for Rev. 1.0 Iris without LED 2018-01-23 14:42:11 -05:00
Joe DeVivo
ac642de9d7 Iris send backlight info over i2c 2018-01-23 14:29:13 -05:00
U-LANDSRAAD\drashna
7d8a20b07f Disable MIDI on Planck so all revisions compile without compilition size errors 2018-01-21 12:02:03 -05:00
Fred Sundvik
894fa0902f Enable FPU on Clueboard60 2018-01-21 01:10:16 -08:00
Fred Sundvik
a14d539ad6 Revert back to normal sleeping wait behaviour for STM32 2018-01-21 01:10:16 -08:00
Fred Sundvik
510a8d3339 Fix compiler settings for MCUs with floating point 2018-01-21 01:10:16 -08:00
skullY
2018df1a61 Clarify the format for layout names 2018-01-19 11:58:19 -08:00
Kenneth Aloysius
365b863578 Backlighting for JJ40 and underglow initialisation code (#2260)
* Cleanup Mechmini keymap. Once the custom RGB function is defined, there is no need to manually handle RGB code.

* Change default to KEYMAP_MIT, not KEYMAP_OFFSET

* Add custom RGB code for JJ40

* Reset Mechmini advertised power draw to 500. Will have to test actual maximum power draw later.

* RGB working on JJ40.

* Fix: saturation increase/decrease flipped

* Add new directory for my custom keymap with RGB keycodes

* Swap LAlt and LGUI

* Update JJ40 max power draw with measured value

* Update: fun40 rules.mk to enable underglow; earlier failed Travis CI

* Fix: init RGB LEDs on boot. Also added HHKB-like keymap for XD60.

* Super rudimentary backlight test, init RGB LEDs on boot

* Backlighting works - stays on for now

* Toggling working

* Now can override backlight.c functions. Problem was functions in backlight.c weren't called before due to a lack of matrix_scan_quantum() in matrix.c

* Timers not working

* Delete global.h

* Cleanup

* Compiles

* Good sign: LEDs stop working again

* Handle timer1 overflow

* Progress: fix: forgot to init

* Backlighting fully working now except breathing.

* Revert keymap to original keycodes

* Update XD60 keymap README

* Update JJ40 keymap with backlight toggles

* Breathing working just fine.

* Update references

* Add backlight_set() call

* Cleanup code to disable backlight

* Fix: does not compile

* Fix: missing call to rgblight_task.

* Testing with BACKLIGHT_BREATHING

* Cleanup

* Cleanup comments

* More commenting cleanup.

* Do not enable BACKLIGHT_BREATHING by default
2018-01-18 16:02:32 -05:00
amanda flagg
5b22ddf526 add dz60 map with arrow keys (#2270) 2018-01-17 15:13:52 -08:00
stephengrier
c776c1ce82 Adding stephengrier keymap for the tada68 keyboard. (#2269) 2018-01-17 11:44:12 -08:00
Drashna Jaelre
ccaacde4d6 Update to drashna keymaps (#2281)
* Move faux clicky into userspace

* Get Audio and RGB enabled on Orthodox-rev1

* Add faux click to userspace

* Add Orthodox Rev3 check to macros

* Hack Orthodox Name for drashna keymap

* No more One Shots

* Ergodox product name hack

* Enable Audio on Orthodox by default
2018-01-17 11:28:23 -08:00
skullydazed
5836d1a06a Fix up the ARM audio support (#2136)
* Get audio working on clueboard/60

* add keys for music mode

* Change doubles to floats

* add keys for all the songs

* revert to the default startup sound

* Remove music mode until we can figure out why it crashes
2018-01-13 23:38:25 -05:00
manofinterests
fd359e23e8 Update info.json 2018-01-12 20:24:48 -08:00
Jack Humbert
4aef0318aa Update info.json 2018-01-12 20:47:39 -05:00
Marco Scannadinari
8209304904 Reset color after submodule warning message
Fixes leaking bold text
2018-01-12 13:25:05 -05:00
noisebomb44
6bbe2366ec Update ergodone.c 2018-01-12 13:24:30 -05:00
Kaleb Elwert
3be81a2daf Fix call to memset for various keyboards 2018-01-12 13:23:38 -05:00
chancellorr
586a5e8d1d Adding my Tada68 Keymap. 2018-01-12 13:20:53 -05:00
Daniel Gordon
383a3c1e08 Add Daniel Gordon's Ergodox Infinity and Chimera
* gordon.c defines many aliases for KC codes.
   * gordon.c defines many advanced tap dance functions.
   * This is a squashed commit of about 6 months of work on chimera and
     ergodox infinity changes.
   * Ignore the change-id below.

Change-Id: I83927139e8a80fe08992ae91ec7d62571498f7f7
2018-01-12 13:14:19 -05:00
Mikkel Jeppesen
e2352d4fbf Updated files to better support sockets version (#2255) 2018-01-12 12:57:48 -05:00
Mason McAllaster
3a2acd4475 Updating default niu mini keymap to better reflect product 2018-01-12 12:57:17 -05:00
Kyle Sargent
ee15d2fe5e Layout for BananaSplit60 (#2257)
* Kamon bananasplit layout

* readme
2018-01-12 12:56:50 -05:00
pmalecka
a01dc4dd48 added the possibility to hav shifted(modded) tap dance 2018-01-12 12:56:21 -05:00
fauxpark
4764e77121 Clarify that we actually have max 16 total backlight levels 2018-01-12 12:52:35 -05:00
fauxpark
cfcf0fd36b Remove reference to BL_x in keycodes.md, and add BL_BRTG 2018-01-12 12:52:35 -05:00
Oryhara
dcb2627237 Halfkeyboard functionality for dvorak and qwerty (#2261)
* started work on halfkeyboard

* update to keymap

* halfkey layouts complete for dvorak and qwerty
2018-01-12 12:35:33 -05:00
Danny Nguyen
fe8942e55c Add -e to enable interpretation of escape characters 2018-01-12 12:35:03 -05:00
farmakon
8e0d9e2637 Adding XMMX (#2236)
* gh80_3000

* Add files via upload
2018-01-07 11:23:45 -05:00
Jack Humbert
81ae0fb10e Update info.json 2018-01-05 16:28:46 -05:00
Jack Humbert
e659bc4467 Info json fixes (#2232)
* Update info.json

* Update info.json

* Update info.json

* Update info.json
2018-01-05 15:44:59 -05:00
Jack Humbert
e3541853a9 Update info.json 2018-01-05 15:33:15 -05:00
Jack Humbert
0ea6cf719e Update info.json 2018-01-05 15:32:52 -05:00
Hannes Egler
c9d23f50f6 Added RGB and in-switch LED controls (#2227)
* Default layout with RGB and in-switch LED controls

This is a variation of the default keymap with added RGB underglow and in-switch LED controls.

* Readme for default_rgb keymap

* ISO keymap with RGB and in-switch LED controls

This is a variation of the default ISO keymap with added RGB Underglow and in-switch LED controls.

* readme for iso_rgb keymap
2018-01-05 11:50:28 -05:00
rooski15
c5c35f5f4b Rooski15: Update Prime_R ReadMe & Keymap (#2228)
* Rooski15: Updated prime_r Keymaps

* Rooski15: Updated Prime_R:Rooski

* Rooski15: Updated Prime_R readme

* Rooski15: Updated Prime_R readme

* Rooski15: Updated Prime_R readme
2018-01-05 11:37:53 -05:00
TurboMech
6b584a23c0 Updated ACR60, Mechmini, ALU84 readme information and config.h descripters (#2231)
* Updated ACR60, Mechmini, ALU84 readme information and config.h descripters

Update MECHKEYS keyboards to be uniform in readmes and config.h's PID, MANUFACTORER, and DESCRIPTIONS.   This allows the keyboards to be more uniform amongst the different types.

* Rename keyboards/alu84/keymaps/TurboMech/config.h to keyboards/alu84/keymaps/turbomech

* Rename keyboards/alu84/keymaps/turbomech to keyboards/alu84/keymaps/TurboMech/config.h

* Fixed folder naming for alu84/keymaps/turbomech

* fixed error from compile

removed double `return MACRO_NONE;` and `switch (id) {`
2018-01-05 11:37:22 -05:00
rooski15
6bb3fbd4e0 Prime_R (#2221)
* Rooski15: Add Prime_R Keyboard

* Rooski15: Added keymaps to xd60, xd75, planck, and prime_r

* Rooski15: Updated prime_r keymap

* Rooski15: Added Prime_R and Documentation

* Rooski15: Added Prime_R and Documentation

* Rooski15: Prime_R - Added futher documentation.

* Update config.h

Added device information

* Update readme.md

Updated Planck:EmilyH Readme

* Update readme.md

Updated XD75:EmilyH Readme
2018-01-04 13:32:51 -05:00
profanum429
9e0b244a34 profanum429@gmail.com (#2222)
* Added initial in-switch LED support for the Eagle/Viper V2.
Currently only has four modes: All ON, Mods/Nums ON, Alphas ON, or All OFF

* Revert keymap changes

* Changed switch curly bracket to match style.
2018-01-04 01:20:58 -05:00
Daniel Gordon
4b7fcf0af0 Add info.json file for Chimera Ortho (#2217)
* Add info.json file for Chimera Ortho

* Correct LAYOUT to KEYMAP 

Correct LAYOUT to KEYMAP in chimera ortho's json.info
2018-01-04 01:20:18 -05:00
MechMerlin
22b9303e2a Keeb json layouts (#2219)
* info.json committed to support the qmk configurator project

These are info.json for each of the keyboards I've contributed to
during my time here at QMK

* change LAYOUT to KEYMAP to adhere to matrix definitions
2018-01-04 01:19:59 -05:00
skullY
e956c11bc9 Update the urls for atmel tools 2018-01-03 10:00:40 -08:00
MechMerlin
cbc5de67be Duck Eagle/Viper V2 support (#2216)
* Preliminary support for Duck Eagle/Viper V2 60% board. This is a copy of the octagon/v2 with things changed to reach a compiling state

* Get a 60% keymap compiling, this might not be what the eagle/viper
really supports

* Update readme to point to correct GeekHack link

* Get keymap working on a Duck Eagle

* Add code submitted by profanum429

- Add HHKB style top row to v2.h
- Modify read_rows function to take into accout the caps lock firmware key
- Modify default keymap to match the new v2.h
- Adjust readmes

* Fix bug related to col 0 not working

* Add keymap for mechmerlin

* Add profanum429's viper hhkb layout

* Add visual representation for mechmerlin layout
Add navigation keys to keymap

* Add a better visual representation to the mechmerlin keymap

* Add profanum429's Viper layout!

* Updated profanum429 keymap to match a full HHKB
Enabled media keys in rules.mk

* Revert "Updated profanum429 keymap to match a full HHKB"

This reverts commit ed914160d7.

* Fix default keymap for Eagle

* Enable extra keys for audio control support

* Modified timings in indicator_leds to accomodate the WS2811S chips on the Eagle/Viper2 PCBs at 800kHz with a 16mHz clock
Modified the backlight settings to not interfere with the default RGB underglow code from QMK
Modified the order of the LEDs in the LED status bar at the top of the Eagle/Viper2 PCBs (3,2,1,6,5,4,8,7 order)

* Cleaned up indicator code to remove unused functions as the RGB underglow uses the
default driver provided by QMK

Commented out backlighting code in v2.c

* update readmes to reflect profanum's awesome contributions and fix typo in make instructions

* Remove custom RGB logic and just rely on QMK RGB underglow. We'll leave the backlighting in place for now
2018-01-03 12:17:09 -05:00
TurboMech
9cb1d36974 Added Mechmini 2.0 to Mechmini keyboard folder
This creates a v1 and v2 subproject.  V1 retains all the same implementations of the bootmapper-ported Mechmnini 1 including #2196.  V2 adds the Mechmini 2.0 kayboard support (I know it took me way to long to get it a pull request in).

All readme's updated to reflect compiling the two seperate keyboards.  Simply either `make mechmini/v1:default` or `make mechmini/v2:defualt`.  Utilizing the rules.mk using `make mechmini:default` will automatically create the Mechmini 2 default keymap as this is the current version and has a much wider user base.
2018-01-03 10:32:53 -05:00
Rickard von Essen
0a5d302622 Let's Split: Minor fixes in keymap.c comments
- Single quote (') is the un-shifted key, not double quote (")
- Fixed alignment
2018-01-02 22:19:10 -05:00
YouCanFly
6c24e28b8d ADD RGBLIGHT_LIMIT_VAL (#2214) 2018-01-02 21:54:56 -05:00
Jack Humbert
d19805f9de update avr url 2018-01-02 21:35:42 -05:00
Rickard von Essen
4beb5e72f8 macOS also requires avrdude 2018-01-02 14:07:10 -05:00
Stacy Devino
5f0a2e078f JC65 - Adding in CapsLock LED support and my personal keymap
Signed-off-by: Stacy Devino <stacydevino@gmail.com>
2018-01-01 20:37:48 -05:00
benlyall
feac994f6f Added support for V60 Type R Polestar backlight and RGB underglow (#1852)
* Added V60 Type R Polestar Backlight and RGB Underglow support

* made RGB Underglow stuff optional, to support the non Polestar V60

* updated readme and rules

* fixed typo in readme
2018-01-01 17:49:26 -05:00
Balz Guenat
4931510ad3 backlight breathing overhaul (#2187)
* add breathing to bananasplit

* backlight breathing overhaul

* fix the backlight_tick thing.

* fix for vision_division backlight

* fix a few keymaps and probably break breathing for some weirdly set-up boards.

* remove BL_x keycodes because they made unreasonable assumptions

* some fixes for BL keycodes

* integer cie lightness scaling

* use cie lightness for non-breathing backlight and make breathing able to reach true max brightness
2018-01-01 17:47:51 -05:00
John Ramsay
d6215ad6af Aviator Keymap (#2204)
* Create aviator.txt

* Add files via upload

* Delete aviator.txt

* Delete readme.md

* Add files via upload

* Update readme.md

* Update readme.md

* Delete keyboard-layout.png

* Update readme.md

* Update readme.md

* Update readme.md
2018-01-01 17:35:32 -05:00
Kenneth Aloysius
eba4cb7a04 RGB underglow support for JJ40, clean up redundant code in Mechmini keymap (#2196)
* Cleanup Mechmini keymap. Once the custom RGB function is defined, there is no need to manually handle RGB code.

* Change default to KEYMAP_MIT, not KEYMAP_OFFSET

* Add custom RGB code for JJ40

* Reset Mechmini advertised power draw to 500. Will have to test actual maximum power draw later.

* RGB working on JJ40.

* Fix: saturation increase/decrease flipped

* Add new directory for my custom keymap with RGB keycodes

* Swap LAlt and LGUI

* Update JJ40 max power draw with measured value

* Update: fun40 rules.mk to enable underglow; earlier failed Travis CI
2018-01-01 17:34:46 -05:00
James Neill
85ea963931 Remove residual Makefiles from the keyboards directory (#2193)
* Removed residual Makefiles from keyboards directory

* Removed reference to Makefile
2018-01-01 17:32:39 -05:00
wanleg
492a16308a wanleg's gherkin layout
my layout for the Gherkin
2018-01-01 17:22:50 -05:00
Drashna Jaelre
17200f4712 Clean up and tweaks of drashna keymaps and userspace (#2200)
* Minor tweaks

	modified:   users/drashna/drashna.c

* Fix Workman ASCII art

* Add OSM for shifts

* Make Viterbi's 00 code consistant

* Minor Cleanup off Userspace

* Change Tapping Term on Ergodox

* Re-add EEPROM code

* Minor updates and tweaks

* Use QMK_H variables to make keymaps more universal

* Forgot 'break;' for covecube layer

* Tweak Viterbi files now that I have hands on

* Add secrets to Ergodox

* RGB tweaks to Viterbi

* Viterbi RGB layout tweeks

* Minor tweaks

* Add One Shot Mod tap toggle

* Add Faux Clicky to Viterbi, and disable controller's LEDs

* Minor tweaks

* Move D3 keycode defines into userspace

* Updated Userspace Readme
2018-01-01 17:21:01 -05:00
Takahiro Miyamoto
eb903c7623 Add meira/takmiya keymap 2018-01-01 17:17:52 -05:00
Hannes Egler
c58921c64c KBD75 ISO support (#2201)
* iso_de_mac

ISO-DE layout with mac media controls

* Delete keymap.c

* iso_de_mac

ISO-DE support with Mac media keys

* Add files via upload

Layout overview

* iso layout support

Adds support for the extra key of ISO

* Update keymap.c

typo-fix

* fixed mac next key

* Delete Layout.png

* Delete keymap.c
2018-01-01 17:16:24 -05:00
Mikkel Jeppesen
9fc3e26f70 Fix of #2094 2017-12-31 22:46:31 -05:00
TurboMech
e9f44ee96d added ALU84 keyboard and TurboMech user space (#2206)
* Added ALU84

Added ALU84 from mechkeys.ca.  TurboMech keymap is MacOS oriented, need to still update the defualt keymap.

* added alu84 and TurboMech userspace

* updated keymap, config.h and rules.mk for alu84
2017-12-31 22:39:34 -05:00
skullY
9cb80d68e2 Add the missing rules.mk for my layout 2017-12-22 09:49:52 -08:00
skullY
4932f9566a capslock led fix for clueboard 60 2017-12-22 09:49:14 -08:00
Colin Miller
97c6b8143c Adding a Zelda Treasure sound.
It's the sound that's made when opening a treasure chest.
2017-12-21 21:12:08 -05:00
Ryan Mitchell
3b9e4967b8 fix breaking build: remove merge conflict text 2017-12-20 22:27:09 -05:00
adiabatic
7c57104b51 Zweihander: remove app keys, etc. (#2167)
* zweihander-osx: Remove app keys, etc.

- add right command keys
- add F16 on ;' for Siri
- remove command-Q (too easy to hit)

* Zweihander: update readme
2017-12-20 19:55:17 -05:00
Oscillope
846598541b Oscillope keymap: handy programming macros (#2176)
* Added macro to type -> since that symbol requres much finger acrobatics otherwise.

* Added macros for braces
2017-12-20 19:54:43 -05:00
MechMerlin
c68597d9ad Octagon V1 Support (Port) (#2184)
* Preliminary commit for Octagon V1 support

This is essentially a cp -R v2 v1 with a few things changed to
get it to compile and build.

* The Octagon V1 supports up to 84 keys as opposed to the V2 which
supports up to 86. This commit changes the keymap to match it.

* Temporary default keymap just to get things to compile

* Update readme file

* Fix switch matrix

* Fix underglow lighting option

* Fix keymap to take care of shifted columns

* Fix keymap formatting

* Remove un-needed files left over from rasmusx

* Make Octagon V1 have its own keymap directory with default keymap

* Make Octagon V2 have its own keymap directory with default keymap

* Cleanups and readme edits
2017-12-20 19:54:07 -05:00
U-LANDSRAAD\drashna
5ffec5d9b0 Disable MIDI on preonic to fix firmware compilation errors 2017-12-20 19:26:24 -05:00
Nicolas Guelpa
a8eaf0b666 Adding pok3r like layout to the let's split (#2135)
* adding new layout for the planck that helps when coming from the pok3r

* Fixing the function layer

* Update readme.md

* Update keymap.c

Making some small adjustments

* Update keymap.c

switching GUI and Esc

* Update keymap.c

* adding mod tap on left and right shift

* adding mod tap on left and right shift

* poker keymap for lets split

* fixing the FN layer

* removing unused file
2017-12-20 14:41:41 -05:00
Drashna Jael're
4f484bc1c9 Add on/off/toggle keycodes for Auto Shift 2017-12-20 14:38:56 -05:00
U-LANDSRAAD\drashna
a1fa70f94d Add toggle option to AutoShift 2017-12-20 14:38:56 -05:00
Hugo Gayosso
d8f0faabda Fixed typo 2017-12-20 14:38:24 -05:00
Kaleb Elwert
818042b2c3 k_type: add belak keymap 2017-12-19 10:52:22 -05:00
Jason Rosenman
8910f9b87e Marked util/atmega32a_program.py as executable so that programming script works. 2017-12-19 10:51:37 -05:00
MechMerlin
9dd3e08fdd Octagon V2 Refactor (#2170)
* rename octagon_v2 directory to octagon directory

* Move octagon_v2 files to v2 sub-directory

* Edit readme files

* setup header files for building multiple versions of the Duck
Octagon.

* Changes as per Jack's PR 2170 comments
2017-12-19 10:50:58 -05:00
fauxpark
b3bcafcc4b Unsign key argument in add_key_to_report 2017-12-19 09:25:26 -05:00
Arda Kılıçdağı
b8f08d936d Added Ardakilic keymap for Tada68 (#2174)
* Added Ardakilic keymap

more key fixes

* power key instead of eject
2017-12-19 09:24:39 -05:00
kimkimkeren
dd37245373 Custom Keymaps for Certain Layouts (#2161)
* Add keymap for my friend's KBD75\nBug : RGUI is read as RALT

* Add keymap for Nyquist

* Add Keymap for Whitefox (Truefox layout only)

* Add Keymap for XD75 and XD73 (XD75 with 1u blocker each on left and right bottom
2017-12-17 11:54:22 -05:00
kamisamamizu
eab41f7b38 Added default case to process_record_user
I tried using process_record_user and if I had to add the default case for it to compile.
2017-12-17 11:52:06 -05:00
Vlad Buslov
cca3dcc5ec Add my keymap for dz60 2017-12-17 11:44:42 -05:00
kamisamamizu
12e66330c5 Add COSPAD to QMK and add functions to read HSV (#2156)
* Added functions to read HSV values

I have added three functions to rgb_light.c to be able to read the hue, saturation and value from other places.
They are rgblight_get_hue(), rgblight_get_sat(), adn rgblight_get_val().

* Create keymap.c

* Add COSPAD support to QMK

I have ported the COSPAD numpad to qmk.

* Update readme.md

* Update cospad.c
2017-12-17 11:44:13 -05:00
That-Canadian
d91c9858c5 Christmas tree (#2160)
* Line ending stuff again

* Added initial files for Christmas Tree PCB

* Updated Readme and info json's, also config.

* Cleaned up keymap file, added proper comments for keymap. Removed readme leftover from original copy of planck folder structure.

* Forgot to push rules.mk for the V2017 folder, fixed now.
2017-12-16 18:25:46 -05:00
U-LANDSRAAD\drashna
8a0997709b Remove MIDI from Planck Rev5 to fix compile build size issue 2017-12-16 11:00:11 -05:00
Jack Humbert
0e1a731446 Update readme.md 2017-12-15 14:06:45 -05:00
Jack Humbert
57ef8a54e4 deletes the extra mechmini readme [doh] 2017-12-15 14:06:29 -05:00
root
1add90a6d2 reforked master and added changes to 7u and 6u iso layouts 2017-12-15 14:02:18 -05:00
Budi Dharmawan
e4230c84d0 [budi] tv44 arrow dvorak (#2151)
* [budi] tv44 arrow dvorak

* [tv44/budi] Removed qwerty, added readme
2017-12-15 13:24:12 -05:00
mechmerlin
1485cc1d26 Found some broken links while looking up ARM keyboard support 2017-12-15 13:23:52 -05:00
Colin T.A. Gray
4ea3bbdb4c add tests for action_layer.c and reset layer state after tests 2017-12-15 13:23:30 -05:00
Colin T.A. Gray
bad839e6ac make 'layer_state_set' visible to user code 2017-12-15 13:23:30 -05:00
Colin T.A. Gray
3aec9a4354 fixes 'layer_state_cmp' when layer is '1' (aka layer 0, aka layer 1<<0) 2017-12-15 13:23:30 -05:00
MechMerlin
163ddd5d15 Duck Octagon V2 QMK Support (#2153)
* Initial commit for Octagon V2 Support

This is still basically just a copy of lightsaver support with
names changed.

* Port xauser keymap from: https://github.com/xauser/tmk_keyboard/blob/xauser/keyboard/octagon_v2/keymap_common.h

* Temporary default keymap just to get things compiling

* Modify config.h to have the right keyboard info

* Partial port of xauser matrix code for octagon v2

* Fix readme.md
1. Fix link to geekhack GB
2. Add microchips
3. Add appropriate attributions

* Fix PORTD

* Intermediate fix to get LEDs working

* Update BACKLIGHT_AREAS enum

* Port the following:
backlight_set
backlight_toggle_rgb
backlight_set_rgb

and resolve dependencies in header files

* Port backlight_update_state to led_set_kb

* Change copyright notice author to MechMerlin

* Remove Rasmus keymap

* Get a default keymap that actually does something and let's you reset.

* Convert keymap into KC_XXXX format.

* Better formatting of the default keymap to make it more readable

* Fix keymap

* Get that Fn key working!

* Some code cleanup and small refactor

* Fix keymap in octagon_v2.h
2017-12-15 00:09:31 -05:00
Josh Sankey
dc7cc26dff Christmas tree (#2105)
* Line ending stuff again

* Added initial files for Christmas Tree PCB

* Updated Readme and info json's, also config.

* Cleaned up keymap file, added proper comments for keymap. Removed readme leftover from original copy of planck folder structure.
2017-12-14 15:58:40 -05:00
JWhy
a6e46b99b9 Fix reset key in Iris default keymap 2017-12-14 09:31:50 -05:00
Kaleb Elwert
ab197af2ea Initial K-Type support (#1963)
* Initial K-Type support

* Copy PJRC_TEENSY_3_1 to work around watchdog issues

* K-Type: Remove bootloader offset in rules.mk

* Ensure matrix and scan quantum functions are called when needed

This is porting a fix from f5422a70b6
2017-12-14 00:25:47 -05:00
Jean Olivier Simoneau
1226c69f4f Adding my xd60 layout. (#2078)
* Added xd60:Jos keymap

* Corrected Layout image for xd60:Jos layout

* Update README for xd60:Jos layout

* Created rules.mk for xd60:Jos layout

* Fixed an edge case for xd60:Jos layout

* Now using a specific  for xd60:Jos layout instead of modifying the main one

* Better physical layout image for xd60:Jos layout
2017-12-14 00:21:48 -05:00
Zach Richard
8a1e656099 new planck keymap, new feature - hybrid shift/enter action key (great for small keyboards!) (#2100)
* new planck keymap, new feature - hybrid shift/enter action key (great for small keyboards!)

* corrected documentation to specify rules.mk file instead of Makefile
2017-12-14 00:20:44 -05:00
Jon Nelson
56f266173c Adding my personal keymap (#2116)
* my personal keymap

* Add files via upload

* Delete baseLayer.JPG

* Delete fnLayer.JPG

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md
2017-12-14 00:16:38 -05:00
Cole Markham
2dfdafbd5b Update '?=' references in rules.mk. Add support for ortho_4x12 layout. 2017-12-14 00:13:42 -05:00
Cole Markham
5fe0fe3756 Fix keyboard not working if I2C pullups not enabled.
Disable backlighting by default.
2017-12-14 00:13:42 -05:00
Cole Markham
cc0d4b6513 Cleanup old code and comments 2017-12-14 00:13:42 -05:00
Drashna Jael're
23b1889241 Update revision default 2017-12-14 00:05:28 -05:00
Drashna Jael're
6cd001e337 Fixed orthodox KEYMAP so no londer requires blanks in keymap.c, and added orthodox rev3 2017-12-14 00:05:28 -05:00
Koen Klinkers
e4f26a9fcc Personal layout planck,ergodone,xd75 (#2140)
* plank layout

* ergodone

* x75

* readmes
2017-12-14 00:04:42 -05:00
mkende
9cda36238f Add a keymap for the Ergodox EZ meant to be used with a Bépo keyboard layout (French ergonomic layout) (#2141)
* Initial version of the Ergodox EZ Bépo keymap, TypeMatrix style.

* Update the readme file and add some handling of the keyboard LEDs.

* Toggling layer requires 2 taps.

* Remove a constant as it conflicts with an earier definition.

* Fix a typo in a type name.

* Fix the arrow layer that had a bad number.

* Second main version of my bepo keymap, after the tests of the first one.

* Fix the triggering of the function layer and the handling of the LED.

* Reduce the shining of the LEDs.

* Fix the swap layer (that required a keypress on the other side of the keyboard to be deactivated).

* Duplicate some of the mouse button for easy access.

* Move some of the secondary functions out of the center keys.

* Slightly slow down the mouse and mouse wheel.

* Update the comment and readme.md for the V2 of the keymap.

* Invert button 2 and 3 of the mouse. Really fix the SWAP layer.

* Test with the right alt modifier added as secondary function (on hold) of the space keys. The right alt key becomes a left alt one.

* Add specific shift/ctrl for the FN layer; move some mouse keys around to help with that.

* Remove one FN modifier-on-hold key that was not useful.

* Duplicate the FN layer inside the MOUSE layer.

* Add support (not tested yet) for macro recording and play on a single key as a tap dance.

* Allow to stop recording the macro by tapping once on the macro key (still un-tested).

* Add support for macro recording using some tap dance.

* shorten a comment.

* Reinstate the FN toggle on the percent key (so that there is an FN toggle on the right-hand-side).

* Fix some comments and update the link to the most up-to-date image.

* Small fix to the keymap images.
2017-12-14 00:04:21 -05:00
kristmascane
52630f6611 adds @kristmascane's keymap (#2144) 2017-12-14 00:03:58 -05:00
Drashna Jaelre
2ec1ab2b35 Update Drashna keymaps (#2145)
* Change overwatch to Gamepad

* Remove secrets file

* Add sample sensitive.h file

* Borrow @colinta's secrets.h include method

* Remove unnessary placeholder for macros

* Set secrets to use PROGMEM for char string

* Add readme files to my keymaps and userspace
2017-12-14 00:02:48 -05:00
Nico Hormazábal
557745ba9f Updated keymap and readme (#2147)
* added own keymap for planck

* Update Readme.md

* Update Readme.md

* Update Readme.md

* Update Readme.md

* Update Readme.md

* dynamic macros

* Update Readme.md

* moved the reset button

* Update readme for volume explanation

* Format

* Update Readme.md

* Update Readme.md

* added safe double shift

* changed the modified shift to regular shift, for allowing shift + F keys
2017-12-14 00:02:05 -05:00
bunnybugslpat
f229d22416 added iso support
added a keymap for an iso layout with 7u spacebar
2017-12-14 00:01:14 -05:00
Benny Powers
98ac32b417 Vim Layout for Ergodox-EZ (mac only) (#2112)
* ignore libs

* Clang complete file

* Add VIM_A, VIM_S, VIM_COMMAND_SHIFT_D, and VIM_COMMAND_SHIFT_A

Add VIM_A, VIM_S, VIM_COMMAND_SHIFT_D, and VIM_COMMAND_SHIFT_A

a s O

* Comment blocks for minimap

generated at
http://patorjk.com/software/taag/#p=display&h=0&v=0&c=c&f=Banner&t=COMMENT

* Be explicit

* More Comment blocks

* Add J

* add A, C, D, J, S, O

* Make h j k l explicitly vim commands (useful for JOIN)

* add cb ce cw ch cj ck cl db de dw dh dj dk dl vb ve vh vj vk vl x ciw diw viw

* debug messages for ci di vi

* Var capitalized

* Save bytes by disabling mouse keys

* Add Y P

* Be more explicit about which key was pressed

* Be more explicit about which key was sent

* Move project to new directory structure

* Remove non-vim layout folder

* Replace KC_TRNS with KC_NO on normal layer

* Insert Mode as default

* Try to prevent crashes

* Put normal mode back

* Revert "ignore libs"

This reverts commit 4c5d7592d6.

* add rules.mk

* Add mouse bindings

* Checkout most recent keymap following rebase

* Realign mouse button keys

* Make a macro for TO(NORMAL_MODE)
2017-12-11 21:06:05 -05:00
Balz Guenat
eeb6443767 actuation point adjustment for fc980c and fc660c (#2134)
* add i2c lib submodule

* add actuation point adjustment to fc980c

* add actuation point adjustment to fc660c also.

* use https for i2c submodule

* move to existing i2c lib

* properly remove old submodule

* oops, forgot some files for the fc660c
2017-12-11 21:05:12 -05:00
That-Canadian
c1a6ca46a7 The ruler (#2138)
* Line ending stuff again

* Added initital files and layout for the PCB Ruler keyboard/macro pad thing

* Updated Readme

* Changed make command to new format
2017-12-11 20:57:40 -05:00
Rasmus Schults
7c5428b56d Add rasmus keymap and fix default keymap readme 2017-12-10 15:17:00 -05:00
farmakon
d9983082c2 adds the gh80_3000 project (#2132) 2017-12-10 14:44:04 -05:00
Rasmus Schults
41d5d3e655 Add Lightsaver V3 keyboard 2017-12-10 13:28:37 -05:00
Jack Humbert
e6b91549e3 fixes audio/midi combinations 2017-12-10 11:54:36 -05:00
Jack Humbert
58898f77e3 fixes midi compile error 2017-12-10 11:32:36 -05:00
Jack Humbert
c2f4c4e29e update planck settings 2017-12-10 10:59:47 -05:00
Jack Humbert
a7c61f2947 fix up midi stuff w/music mode 2017-12-10 10:59:47 -05:00
Seebs
d1feb8744a Don't "unselect" left-hand rows
"unselecting" left-hand rows is a wasted i2c transaction.

On the left-hand side, the ergodox uses a GPIO expander. It
does *not* change "direction" (input/output) of pins, it just
sets pins high or low.

But all the pins are written at once. There's no way to
change just one pin's value; you send a full byte of all eight
row pins. (Not all of them are in use, but that doesn't matter.)
So every pin is either +V or ground. This is in contrast
with the right-hand side, which is using input mode to make pins
be neutral.

So there's no need to "deselect" the rows on the left side
at all. To select row 0, you set the GPIO register for the
rows to 0xFE. The previous code would then set it back to
0xFF, then set it to 0xFD on the next cycle. But we can just
omit the intervening step, and set it to 0xFD next cycle,
and get the same results.

And yes, I tested that the keyboard still works.

On my system, scan rate as reported by DEBUG_SCAN_RATE goes
from 445 or so to 579 or so, thus, from ~2.24ms to ~1.73ms.

Signed-off-by: seebs <seebs@seebs.net>
2017-12-10 00:40:41 -05:00
Balz Guenat
6d1b45fb84 change the ?= assignments to = 2017-12-10 00:40:19 -05:00
Balz Guenat
2c2e103457 some planck keymap shiftings and include proper-making 2017-12-10 00:40:19 -05:00
Balz Guenat
7235c93827 clean up bananasplit keymap 2017-12-10 00:40:19 -05:00
fauxpark
bb53635f33 Trim trailing whitespace 2017-12-09 10:46:11 -05:00
fauxpark
af37bb2f78 Fix some of the more obvious typos 2017-12-09 10:46:11 -05:00
fauxpark
4c675a83ba Format keycode tables 2017-12-09 10:46:11 -05:00
fauxpark
7b0356d1d4 Convert all headings to Title Case 2017-12-09 10:46:11 -05:00
Nico Hormazábal
6eb89ae906 New Planck Layout (#2123)
* added own keymap for planck

* Update Readme.md

* Update Readme.md

* Update Readme.md

* Update Readme.md

* Update Readme.md
2017-12-09 00:06:27 -05:00
Fredric Silberberg
b781cbf7e2 Turn on prevent stuck modifiers for my keymaps. 2017-12-09 00:06:08 -05:00
Cole Markham
a14518bf57 Updated copyright headers and peer review fixes 2017-12-09 00:05:35 -05:00
Cole Markham
f74f0ac06b Update Meira readme 2017-12-09 00:05:35 -05:00
Cole Markham
a9a46adba0 Add support for Meira 2017-12-09 00:05:35 -05:00
Scott Wilson
c51dfef958 Add support for LFKeyboard products: LFK78, LFK87 and SMK65 2017-12-09 00:01:58 -05:00
Balz Guenat
8b1862330a fix link for grave escape in docs 2017-12-08 16:12:46 -05:00
Martin Gondermann
dc6b341cf9 Updated readme 2017-12-08 16:12:31 -05:00
Martin Gondermann
155660ff9d Updated color for base layer to better match my key caps (Dasher) 2017-12-08 16:12:31 -05:00
Gaëtan Ark
6e25220eed Pointing to the right build URL
The previous URI used to point to the Nyquist keyboard build guide.
2017-12-08 16:12:05 -05:00
Colin T.A. Gray
16546ee06f Add 'rgblight_disable' and 'rgblight_setrgb_at/rgblight_sethsv_at'
Refactors rgblight_toggle to use rgblight_enable or rgblight_disable
Use 'rgblight_setrgb_at/rgblight_sethsv_at' to control an individual LED
2017-12-08 16:10:42 -05:00
Colin T.A. Gray
1620d78e73 helper to compare current layer_state to user layer
Performs the same bit comparison that the layer_move
functions perform
2017-12-08 16:09:47 -05:00
Cosmin Cojocar
fc54d62111 Add a slightly modified ordinary layout for OSX 2017-12-08 16:08:50 -05:00
andy
f5422a70b6 Enable tap dance and other features for Whitefox
The custom matrix code was missing calls to matrix_*_quantum, disabling quantum features.
2017-12-08 16:06:24 -05:00
Unknown
e3b3c1ef82 add do60 support 2017-12-08 16:03:57 -05:00
Jack Humbert
bba871df2f move lcd_backlight_keyframes to correct location 2017-12-07 12:41:13 -05:00
Biacco42
5bbad3147c Add support for 7x4 ortholinear split KB Ergo42 2017-12-07 11:10:39 -05:00
Colin T.A. Gray
2bac7cf414 F5 pin doesn't support PWM, so breathing isn't an option 2017-12-07 11:07:45 -05:00
Colin T.A. Gray
b7c76fda31 fixes case where BACKLIGHT_BREATHING is enabled, but pin doesn't support PWM 2017-12-07 11:07:45 -05:00
Drashna Jaelre
d5a76e899d Updates to drashna keymaps and userspace (#2093)
* Add "secret" macor

* Updating secret macros

* Re-add RGB to Ergodox

* Fixed issue when RGB was disabled

* Consistency changes

* Updated bootloader macro

* Fixing audio setup

* Fix bootloader typo

* Update to full list of stings (for completeness)

* Template fix

* Finally got woodpad to force numlock

* Fix for new RGB mode
2017-12-05 21:45:42 -05:00
Baris Tosun
dd05bf0d96 Katana60 (#2068)
* Add files via upload

* katana60 defaults, initial pull-request

* removed icons from google drive

* added simple readme files

* pull-request updates

* readme file updated

* readme file formatting

* improvements before live

* colemak readme

* updated readme files

* removed makefiles and updated readme
2017-12-05 11:14:10 -05:00
Drashna Jael're
95e68c4ae8 Fix Audio chime overrides in split keyboards 2017-12-04 18:16:26 -05:00
Colin T.A. Gray
d299d0e72d adds led control functions to XD75 layout 2017-12-04 18:16:07 -05:00
Cole Markham
6fddb31c4c Add Crawlpad 2017 files. 2017-12-04 18:14:08 -05:00
Colin T.A. Gray
53b043d4ef adds 'RGB_RMOD' to go through RGB modes in reverse 2017-12-04 11:12:52 -08:00
Drashna Jaelre
7b51f050d7 Fix typo in make example
It has `:all" when it clearly is referencing the command without `:all`.
2017-12-04 11:17:53 -05:00
Harshit Goel
7730dc3e5c Magicforce68 now in bluetooth flavour (#2051)
* Added working code for mf68_ble

* update read.md

* update read.md

* update read.md

* update readme

* Update README.md

* Update README.md

* added reddit post

* Update README.md

* Update README.md
2017-12-03 00:04:22 -05:00
mmikeww
0740e84d63 update advanced_keycodes; oneshot = sticky/dead keys 2017-12-03 00:03:04 -05:00
mmikeww
c917888262 update glossary; oneshot key = sticky/dead key 2017-12-03 00:03:04 -05:00
skullY
0b54e7f5ae Flesh out the grave escape overrides 2017-12-03 00:00:23 -05:00
Drashna Jaelre
8cac6088c6 Remove unnecessary audio code from orthodox (#2076)
* Remove unnecessary startup/shutdown code

* Leave functions intact

* Update rev1.c
2017-12-02 23:59:17 -05:00
khitsule
1548f4c24f Add keymap for atreus and minidox (#2079)
* keymap for atreus and minidox

* minidox keymap khitsule cleaned
2017-12-02 23:56:30 -05:00
mmikeww
b9f426ae1e Fix broken link in docs
This link was broken. And the latest, live version of that keymap link doesn't line up with the docs below, so the link will now point to the older version of the file in the git history
2017-12-02 23:55:58 -05:00
Ethan Madden
52b0ad649c Modified default keymap to match ps2avrgb default 2017-12-02 23:55:09 -05:00
Tim Dierks
c9d0f210bc Change awk detector to work with mawk; fixes #2073 2017-11-30 22:15:20 -05:00
Devin J. Pohly
7aaef16266 Fix internal links in docs/ (#2080)
One link in the summary (Modding your keyboard) referred to a page that
was deleted; the rest have been updated to point to the new names.
2017-11-30 10:18:01 -08:00
Drashna Jael're
28874a9f33 Fixed minor typo in bootloader code 2017-11-29 13:01:06 -05:00
Drashna Jael're
319ff649ab 16 byte optimization of macro ;) 2017-11-28 22:59:41 -05:00
Drashna Jael're
92f6d6ec02 Update Userspace info to include Bootloader detection 2017-11-27 23:36:55 -05:00
Jack Humbert
9fdc276260 Updates bootloader settings, adds file size check (#2029)
* pull fuse settings for bootloader jump

* fix 32a chips

* make automatic bootloader selection optional

* quantify bootloaders

* fixs #164, speeds up dfu reset

* fix for chips w/o usb

* missing an n

* fix bootloader sizes, use words for addresses

* fix bmini, pearl, and [[ issue, make things quiet

* ignore avr errors on arm for now

* update settings for the light

* document bootloader stuff

* add bootloader title
2017-11-27 23:08:21 -05:00
RandTrawick
9113f3387a JJ40 updates (#2056)
* my bits

* fixed
safdb

* readme

* readme

* better name, fixed compile error

* fixed matrix user

* cleanup
2017-11-27 16:08:53 -05:00
Erez Zukerman
0bd453b527 Merge pull request #2047 from seebs/seebs/ergodox_brightness
Make brightness easier to change
2017-11-27 08:25:24 -05:00
Erin Call
b697e1bff3 Fix build instructions in the Dactyl readme
Reflects the changes in #1784
2017-11-26 17:56:16 -05:00
Roman Volosatovs
833ec84921 shell.nix: add teensy loader 2017-11-26 17:55:24 -05:00
TerryMathews
53ad7375c7 Initial support for TKC1800 PCB (#2062)
* Initial support for TKC1800

* Correct typo
2017-11-26 17:54:53 -05:00
Eiji Onchi
5fd400faa9 Fixed bootloader access key 2017-11-26 02:22:23 -05:00
Erin Call
f2a0b0ee20 Handwired/Dactyl keyboard (#2058)
* Copy the ergodox_ez code to handwired/dactyl

Differences from the Ergodox:

* Use QMK_SUBPROJECT_H instead of QMK_KEYBOARD_H, since it's under
    handwired
* Omitted several keymaps. They'll eventually be broken (since the
    Dactyl has fewer keys), and I don't want to try to fix them.
* Omitted the keymap images for the default layout, since they depict
    a different keyboard.
* Everything that said Ergodox now says Dactyl, naturally.

* [whitespace] Delete trailing whitespace

My editor does this automatically so it's just gonna keep cropping up...

* Cut the dactyl down to the right number of columns

(Remember, throughout matrix.c, everything called "row" is really a
column, and vice-versa).

* Remove LED-related code

* Tighten up the Dactyl's build options

* Whitespace cleanup in twimaster.c

* Hardtabs -> spaces
* No more trailing whitespace

* Typo fix

* Correct the CPU frequency units

The Teensy's CPU definitely doesn't run at 16 petahertz...

* Restore access to ONEHAND_ENABLE

I turned it off in 26d47cb42622d990a7c3335e7fcc151aa3edfbf0 while
desperately debugging; I just wanted to ensure it wasn't causing the
problem I was seeing. It was not, in fact, causing the problem, so it's
back.

Also fixed the swap matrix in dactyl.c, since it still referred to
columns that exist in the Ergodox but not the Dactyl.

* Clearer phrasing about TWI's effect on scan rate

* Fix up the Dactyl's firmware-loading instructions

Sadly, the Dactyl has no hole for the onboard reset button.

* Dvorak keymap for the Dactyl

* The Erincalling Layout

* Erincalling layout: Add a := key

I've been working in Go, which uses := a lot, and it's awkward to type
in this layout.

* Dactyl README: link to the dactyl-keyboard repo

* Add a missing copyright line

I don't know how much this matters? Honestly, it's enough for me that my
name is on the git commit. But hey, let's be consistent until there's a
specific reason not to be, right?

* Dactyl: remove commented-out code

I hate it I hate it I hate it

There's not even any information about what it was trying to do!!!! >:(

* Add a note about the row/column ridiculousness

* [whitespace] realign some constants

* Don't claim B4 is tied to VCC

It doesn't matter at all? I honestly don't know what the reason ever
was. It looks like it dates back to the original ErgoDox and I've never
seen one sentence about the purpose.

I've been skipping that wire for some time, and I promise it works fine.

* Dactyl keymaps: Send RALT for right-hand alt key

Not terribly important but I just like things tidy OK

* typo fix

* Refer to "dactyl.h" explicitly

QMK_SUBPROJECT_H has been working locally, but fails in CI. Strange!

* Dactyl: Don't use QMK_SUBPROJECT_H at all

It's still breaking in CI, even though it was a never a problem locally.
2017-11-26 02:18:59 -05:00
Balz Guenat
18525aa17b Fc660c port (#2060)
* Port Hasu's FC660C controller to QMK

* fix column mask
2017-11-26 02:17:14 -05:00
Add Chan
ac3d9ab761 added addcninblue's layout (#2049)
* added addcninblue's layout

* vim layer
2017-11-26 02:12:26 -05:00
Callum Oakley
2fc727c154 Keymap update (#2045)
* linux shake-around

* move terminal and browser spawning keys

* add a shift to window resizing keys to free combo up for window management

* "jump to tab" shortcuts for firefox

* change window resize modifiers

* change wm keys

* change wm keys again, and reformat keymap to 80chars

* typos

* language key

* qwerty layer for SO, general cleanup
2017-11-26 02:09:28 -05:00
shela
d76cc09ed6 Update my keymap (#2042)
* fix bug

* update keymap
2017-11-26 02:09:02 -05:00
Colin T.A. Gray
2c0323bc98 Adds my XD75 layout (#2040)
* adds my xd75 layout

* add secret strings to 'secrets.h' behind compile flag, assign defaults

* macro keys now have defaults (hidden in colinta.h) before any recording, and after clearing the dynamic macros.

* fixed whitespace - using 4 spaces instead of 2
2017-11-26 02:08:28 -05:00
Seebs
7fbe6c3594 improve ergodox ez performance
With these changes, the ergodox ez goes from 315 scans per second
when no keys are pressed (~3.17ms/scan) to 447 (~2.24ms/scan).

The changes to the pin read are just condensing the logic, and
replacing a lot of conditional operations with a single bitwise
inversion.

The change to row scanning is more significant, and merits
explanation. In general, you can only scan one row of a keyboard
at a time, because if you scan two rows, you no longer know
which row is pulling a given column down. But in the Ergodox
design, this isn't the case; the left hand is controlled by an
I2C-based GPIO expander, and the columns and rows are *completely
separate* electrically from the columns and rows on the right-hand
side.

So simply reading rows in parallel offers two significant
improvements. One is that we no longer need the 30us delay after
each right-hand row, because we're spending more than 30us
communicating with the left hand over i2c. Another is that we're
no longer wastefully sending i2c messages to the left hand
to unselect rows when no rows had actually been selected in the
first place. These delays were, between them, coming out to
nearly 30% of the time spent in each scan.

Signed-off-by: seebs <seebs@seebs.net>
2017-11-26 02:07:06 -05:00
Seebs
55f3cd37af fix typo 2017-11-26 02:07:06 -05:00
Paul Ewing
d0f3c0576c Add my Atreus62 keymap 2017-11-26 02:03:44 -05:00
Balz Guenat
7d9070c514 I forgot to add a README.md for the FC980C
sorry for forgetting it in the first PR.
2017-11-23 23:41:37 -05:00
Seebs
534cd9d45e Make brightness easier to change
Don't make the #defines unconditional, make them
optional so users can override them with per-keymap
settings more easily.
2017-11-23 15:37:39 -06:00
Balz Guenat
2f5bb2506a QMK port of Hasu's fc980c alt controller (#2043)
* fc980c port, builds but yet untested.

* add my own keymap
2017-11-23 10:34:21 -05:00
Colin T.A. Gray
3e2fd64279 I found a typo! 2017-11-22 11:40:46 -05:00
Colin T.A. Gray
5b4b471a4f this number just looks wrong, should be 4096 not 4996 2017-11-22 11:40:46 -05:00
Maarten Dekkers
b8217eeff4 Add maartenwut's handwire build 2017-11-22 11:19:05 -05:00
Max
dcc363390f Added Daisy port (#2016)
* Add files via upload

* Update readme.md

* Update readme.md

* Update readme.md

* Add files via upload

* Delete config.h

* Delete rules.mk

* Add files via upload

* Update config.h

* revised config files

* revised readme

* Update readme.md

* Update readme.md
2017-11-22 10:52:42 -05:00
Jack Humbert
62eed0e4a3 Update config_options.md 2017-11-21 21:26:29 -05:00
Jack Humbert
c8bdc75e1d Update feature_layouts.md 2017-11-21 21:22:56 -05:00
Seebs
39d3d92364 Allow multiple process_record() calls per scan
This is particularly relevant for, e.g., the ergodox EZ and
other keyboards with slow scan rates. Without changing the API or
behavior of individual process_record() calls, we allow a
configuration flag to make multiple calls in a single scan.

This will probably have miniscule effects on non-steno users,
and it's not enabled by default for any keyboards. Added note
about it to ergodox README.

Signed-off-by: seebs <seebs@seebs.net>
2017-11-21 00:20:52 -05:00
Jack Humbert
b669d115c2 adds planck light keyboard 2017-11-20 23:37:38 -05:00
Gilbert Consellado
7ff96877d2 added SS_LSFT to featured macros 2017-11-20 12:25:42 -05:00
yellowmoneybank
c6cdd5422f Neo2Planck (#2032)
* Documentation

* Enabled Mouse-Keys in Makefile

* Layer 1 finished

* Small Bugfixes

* Updated documentation
2017-11-20 12:22:16 -05:00
d_r0ck
d6ca4e555a Added files 2017-11-20 12:21:31 -05:00
TerryMathews
d8aa018995 Kona_classic: ANSI arrows keymap with locking caps lock support 2017-11-20 12:21:04 -05:00
Marcus Young
08dab374da Add my layout 2017-11-20 12:20:40 -05:00
Drashna Jaelre
dbd33782f2 Update to drashna keymaps (#4)
* Minor updates to keymaps

* Minor updates to keymaps
2017-11-17 20:48:26 -05:00
Jack Humbert
1d703a476a update build script to not delete files 2017-11-17 14:09:27 -05:00
Jack Humbert
f5a9758cea Adds serial number string to USB descriptors (#1996)
* add serial number string to usb descriptors

* better name for serial number
2017-11-17 11:53:46 -05:00
Robert Llewellyn
f07e2cdd9d DZ60 own true HHKB layout after dz60.h fix (#2012) 2017-11-17 11:42:23 -05:00
Jack Humbert
f2c32b3ea4 Splits up ps2avrGB boards into their own folders (#2014)
* move underglow led count from parent to child

* Added pearl support

* Added personal keymap for pearl

* start splitting up ps2avrGB boards

* clean up ps2avrgb boards

* Move keycodes to their own section

* Clarify `KC_PWR` vs `KC_POWER`. Fixes #1994.

*  Cleaned uppersonal userspace and keymaps (#1998)

* Cleanup of keymaps

* Remove Tap Dance from Orthodox keymap

* Cleaned up userspace and keymaps

* Added sample (template)userspace files to my folder

* Document the Teensy hardware reset problem

* add mfluid keymap to atreus62

* Update hand_wire.md

Change "Resin" to "Rosin"

* Add keyboard: mt40 (#2001)

* add keyboard: chinese planck clone

* rename chinese_planck to mt40

* add image for the mt40 board

* lets_split: Fix matrix_init for ROW2COL

Signed-off-by: Marian Rusu <rusumarian91@gmail.com>

* Add Keymap for Whitefox Truefox layout

* Add keyboard: ACR60 (#1999)

* base acr60 keyboard folder created

* mitch acr60 keymap updates, documentation

* latest keymap updates

* slight modifications to layer switching

* Changes to Atreus and Ergodox EZ Dvorak 42key layout (#1997)

* importing 42 key dvorak layout

* added comment for build instructions

* adding atreus dvorak 42 key layout

* added readme

* add readme

* build instructions

* additional MEH shortcuts

* added shifted symbols on symbols layer

* working extra symbols on COMBINED layer

* bring atreus layout inline with the ergodox one

* add necessary macros

* working ls macro

* added more shell macros

* added screen rename / screen number macros

* add ctrl-a key in shell-nav to use screen more easily

* added shell screen layer

* assign screen switching macros to screen layer

* define all screen switching macros

* more screen-related shortcuts added on shell screen layer

* change shell nav bottom right row to match base layer (backspace / delete)

* remove some mappings on SHELL_NAV layer as they are now in the screen layer

* added more screen macros

* changes to COMBINED layer (pipe on the right) and modified shell nav

* moved pipe/backslash to then right

* documented SHELL_SCREEN layer

* put backspace/delete on SHELL_NAV layer

* add an explicit lisence file for github to pickup

* Updated keymaps to allow base layer alternation for QWERTY, Colemak & Dvorak (#1962)

* First commit of the Terminus_Mini firmware and the DivergeJM version of the Nyquist firmware

* Fix terminus_mini & nyquist/DivergeJM readme files

Previously an outdated copy of the default readme. Updated to match the  Nyquist/DivergeJM format (DivergeJM is a split 5x12 implementation of the terminus_mini layout)

* Update makefiles to rules.mk

Renamed both Makefiles to rules.mk, removed references to makefiles

* Updated rules.mk

Inadvertantly removed important code from the rules.mk in previous commit. This has been restored.

Also disabled Tap_Dance in both rules.mk files

* Moved terminus_mini to handwired

Realised that existing directory was not appropriate for the terminus_mini project, moved to handwired.

* New Frosty Flake layout for QFR TKL

Added a TKL layout for the Frosty Flake with a navigation cluster on LOWER under the left hand and a similarly functioning MOUSE layer that includes mouse navigation functionality.

* README fix & keymap update for 3 keyboards

Fixed the markdown for the handwired/terminus_mini:default, Nyqyist:DivergeJM & frosty_flake:QFR_JM.

Added TAPPING_TERM =  150 to config.h for all keyboards

Switched LT(LOWER) and LAlt on the mod row for ortholinear boards.

* Update readme for QFR_JM to include make instructions

* Revert "Merge branch 'master' of https://github.com/mogranjm/qmk_firmware"

This reverts commit a45f264ada, reversing
changes made to 62349c3341.

* Revert "Revert "Merge branch 'master' of https://github.com/mogranjm/qmk_firmware""

This reverts commit eae54fb3be.

* Added QWERTY support to the QFR_JM

Implemented variable default base layer from the Planck default keymap.

* Update README to reflect QWERTY support

* Nyquist:DivergeJM - Update RESET location

Add a reset button to both hands, accessible when halves are disconnected.

* Typo fix

* Update DivergeJM

Switched master to Left hand,
Moved Reset key to a different location

* Added macros to send R pointer & dplyr pipe

Macros added as a string of keypresses, couldn't figure out how to get SEND_STRING to work.

* Added ADJUST -> QWERTY, DVORAK, COLEMAK

Re-implemented update_tri_layer fuctionality to reset base layer for Terminus_Mini & DivergeJM Nyquist keymaps to QWERTY, DVORAK or COLEMAK via the ADJUST layer.

Updated ReadMe files accordingly.

* Fix base layout diagram for Terminus_Mini

Remove split from diagram

* Changed the R operators to SEND_STRING, rather than keypress macros

* Added Dvorak to the QFR_JM keymap

* fixed duplicate row in Nyquist keymap

* Fix readme - LAlt location on mouse layer

* Set EE_HANDS to allow either Nyquist hand to work as master.

* Update R operator strings, clean up layering for terminus_mini, QFR_JM and DivergeJM

"<-" to " <- "
"%>%" to " %>% "

Also played around with the layering, removed unnecessary TAP_TOGGLE for LOWER and shuffled FUNCTION and MOUSE momentary actions to reflect layer order.

* Update bottom alpha row to output symbols on LOWER

This row now outputs the following (z -> /) when in the LOWER layer:
 <-
 %>%
{
[
`
|
]
}
.
/

* Updated readme files for QFR_JM, terminus_mini & DivergeJM

QFR_JM readme reflects correct LOWER bottom row symbol output,
terminus_mini & DivergeJM reflect correct command line make instructions.

* Add media keys to QFR_JM LOWER - Replicate QFR default functionality

* Fix issue with Mouse layering

Stuck on mouse layer because the wrong macro was assigned to the 'exit layer' key. Reassigned that key.

* Changed " <- " to "<- " for QFR_JM, terminus_mini & DivergeJM

* Add "KC_MAKE" to userspace example

* QMK DFU bootloader generation (#2009)

* adds :bootloader target

* update planck and preonic revisions

* remove references to .h files for planck

* update preonic keymap

* only add keyboard.h files that exist

* add production target

* hook things up with the new lufa variables

* update rules for planck/preonic

* back backlight key turn of status led when pressed

* add manufacturer/product strings to bootloader

* fix push script

* Added support for let's split kailh socket version (#2010)

* Added support for socket version of the let's split

* renamed files

* socket-version-works

* fix up lets_split keymaps

* fix up lets_split keymaps

* shrink preonic by a bit

* fix lets_split keyboards

* update travis script

* update travis script

* update version silencing
2017-11-17 11:40:34 -05:00
Jack Humbert
92d47a55d4 update chibios 2017-11-17 11:40:13 -05:00
Jack Humbert
41f3f01167 Update .gitmodules 2017-11-16 15:09:45 -05:00
Damien
a8c4af5a45 Updated dbroqua layout for HHKB keyboard (#1990)
* - Fixed DK60 version in config.h

* - Updated dk60 readme with new QMK rules

* - Fixed wording in readme

* Added dbroqua layout for DZ60

I've also updated dz60.h to add "true HHKD" keymap definition (6U
spacebar).

With the default HHKB definition r_alt was not mapped and when I pressed
r_menu it was r_alt.

Regards

* Updated dbroqua layout for HHKB keyboard

Added default configuration and alternate (swap gui/alt keys).

Save user choice in keyboard memory (like plank, thanks for this
feature!).
2017-11-16 14:49:19 -05:00
Balz Guenat
858c09f370 add example keymap 2017-11-16 09:39:00 -05:00
Balz Guenat
179d64d33c extend macro docs a bit 2017-11-16 09:39:00 -05:00
Jack Humbert
eac4bab342 update version silencing 2017-11-14 22:56:29 -05:00
Jack Humbert
a8466df62d update travis script 2017-11-14 22:31:34 -05:00
Jack Humbert
cb64a886e9 update travis script 2017-11-14 22:14:59 -05:00
Jack Humbert
dbabfb082c fix lets_split keyboards 2017-11-14 22:14:03 -05:00
Jack Humbert
607876187d shrink preonic by a bit 2017-11-14 21:23:26 -05:00
Jack Humbert
7f3539aa76 fix up lets_split keymaps 2017-11-14 17:55:18 -05:00
Jack Humbert
4ad0bbd672 fix up lets_split keymaps 2017-11-14 17:37:57 -05:00
Mikkel Jeppesen
85172f4f85 Added support for let's split kailh socket version (#2010)
* Added support for socket version of the let's split

* renamed files

* socket-version-works
2017-11-14 17:27:27 -05:00
Jack Humbert
b702c08825 fix push script 2017-11-14 16:47:34 -05:00
Jack Humbert
ec3e065f0d QMK DFU bootloader generation (#2009)
* adds :bootloader target

* update planck and preonic revisions

* remove references to .h files for planck

* update preonic keymap

* only add keyboard.h files that exist

* add production target

* hook things up with the new lufa variables

* update rules for planck/preonic

* back backlight key turn of status led when pressed

* add manufacturer/product strings to bootloader
2017-11-14 16:11:29 -05:00
drashna
3c15c48e6a Add "KC_MAKE" to userspace example 2017-11-14 11:02:00 -05:00
James Morgan
49d8f1c5ed Updated keymaps to allow base layer alternation for QWERTY, Colemak & Dvorak (#1962)
* First commit of the Terminus_Mini firmware and the DivergeJM version of the Nyquist firmware

* Fix terminus_mini & nyquist/DivergeJM readme files

Previously an outdated copy of the default readme. Updated to match the  Nyquist/DivergeJM format (DivergeJM is a split 5x12 implementation of the terminus_mini layout)

* Update makefiles to rules.mk

Renamed both Makefiles to rules.mk, removed references to makefiles

* Updated rules.mk

Inadvertantly removed important code from the rules.mk in previous commit. This has been restored.

Also disabled Tap_Dance in both rules.mk files

* Moved terminus_mini to handwired

Realised that existing directory was not appropriate for the terminus_mini project, moved to handwired.

* New Frosty Flake layout for QFR TKL

Added a TKL layout for the Frosty Flake with a navigation cluster on LOWER under the left hand and a similarly functioning MOUSE layer that includes mouse navigation functionality.

* README fix & keymap update for 3 keyboards

Fixed the markdown for the handwired/terminus_mini:default, Nyqyist:DivergeJM & frosty_flake:QFR_JM.

Added TAPPING_TERM =  150 to config.h for all keyboards

Switched LT(LOWER) and LAlt on the mod row for ortholinear boards.

* Update readme for QFR_JM to include make instructions

* Revert "Merge branch 'master' of https://github.com/mogranjm/qmk_firmware"

This reverts commit a45f264ada, reversing
changes made to 62349c3341.

* Revert "Revert "Merge branch 'master' of https://github.com/mogranjm/qmk_firmware""

This reverts commit eae54fb3be.

* Added QWERTY support to the QFR_JM

Implemented variable default base layer from the Planck default keymap.

* Update README to reflect QWERTY support

* Nyquist:DivergeJM - Update RESET location

Add a reset button to both hands, accessible when halves are disconnected.

* Typo fix

* Update DivergeJM

Switched master to Left hand,
Moved Reset key to a different location

* Added macros to send R pointer & dplyr pipe

Macros added as a string of keypresses, couldn't figure out how to get SEND_STRING to work.

* Added ADJUST -> QWERTY, DVORAK, COLEMAK

Re-implemented update_tri_layer fuctionality to reset base layer for Terminus_Mini & DivergeJM Nyquist keymaps to QWERTY, DVORAK or COLEMAK via the ADJUST layer.

Updated ReadMe files accordingly.

* Fix base layout diagram for Terminus_Mini

Remove split from diagram

* Changed the R operators to SEND_STRING, rather than keypress macros

* Added Dvorak to the QFR_JM keymap

* fixed duplicate row in Nyquist keymap

* Fix readme - LAlt location on mouse layer

* Set EE_HANDS to allow either Nyquist hand to work as master.

* Update R operator strings, clean up layering for terminus_mini, QFR_JM and DivergeJM

"<-" to " <- "
"%>%" to " %>% "

Also played around with the layering, removed unnecessary TAP_TOGGLE for LOWER and shuffled FUNCTION and MOUSE momentary actions to reflect layer order.

* Update bottom alpha row to output symbols on LOWER

This row now outputs the following (z -> /) when in the LOWER layer:
 <-
 %>%
{
[
`
|
]
}
.
/

* Updated readme files for QFR_JM, terminus_mini & DivergeJM

QFR_JM readme reflects correct LOWER bottom row symbol output,
terminus_mini & DivergeJM reflect correct command line make instructions.

* Add media keys to QFR_JM LOWER - Replicate QFR default functionality

* Fix issue with Mouse layering

Stuck on mouse layer because the wrong macro was assigned to the 'exit layer' key. Reassigned that key.

* Changed " <- " to "<- " for QFR_JM, terminus_mini & DivergeJM
2017-11-13 20:55:14 -05:00
Jack Humbert
5cdf47a79e add an explicit lisence file for github to pickup 2017-11-13 20:50:54 -05:00
Marian Rusu
3f1aab0c2e lets_split: Fix matrix_init for ROW2COL
Signed-off-by: Marian Rusu <rusumarian91@gmail.com>
2017-11-13 18:52:57 -05:00
Andy Holder
43edc83998 Add Keymap for Whitefox Truefox layout 2017-11-13 18:51:54 -05:00
lucwastiaux
dd60038eeb Changes to Atreus and Ergodox EZ Dvorak 42key layout (#1997)
* importing 42 key dvorak layout

* added comment for build instructions

* adding atreus dvorak 42 key layout

* added readme

* add readme

* build instructions

* additional MEH shortcuts

* added shifted symbols on symbols layer

* working extra symbols on COMBINED layer

* bring atreus layout inline with the ergodox one

* add necessary macros

* working ls macro

* added more shell macros

* added screen rename / screen number macros

* add ctrl-a key in shell-nav to use screen more easily

* added shell screen layer

* assign screen switching macros to screen layer

* define all screen switching macros

* more screen-related shortcuts added on shell screen layer

* change shell nav bottom right row to match base layer (backspace / delete)

* remove some mappings on SHELL_NAV layer as they are now in the screen layer

* added more screen macros

* changes to COMBINED layer (pipe on the right) and modified shell nav

* moved pipe/backslash to then right

* documented SHELL_SCREEN layer

* put backspace/delete on SHELL_NAV layer
2017-11-13 18:50:39 -05:00
Ryan Mitchell
716ff76f5b Add keyboard: ACR60 (#1999)
* base acr60 keyboard folder created

* mitch acr60 keymap updates, documentation

* latest keymap updates

* slight modifications to layer switching
2017-11-13 18:50:09 -05:00
Thomas Dehaeze
eef94b0b40 add mfluid keymap to atreus62 2017-11-13 18:49:23 -05:00
James
309a400b3e Update hand_wire.md
Change "Resin" to "Rosin"
2017-11-13 18:48:55 -05:00
Thomas Dehaeze
c2c3aa4f08 Add keyboard: mt40 (#2001)
* add keyboard: chinese planck clone

* rename chinese_planck to mt40

* add image for the mt40 board
2017-11-13 18:44:53 -05:00
1580 changed files with 83280 additions and 8461 deletions

24
.clang_complete Normal file
View File

@@ -0,0 +1,24 @@
-I.
-I./drivers
-I./drivers/avr
-I./keyboards/ergodox_ez
-I./keyboards/ergodox_ez/keymaps/vim
-I./lib
-I./lib/lufa
-I./quantum
-I./quantum/api
-I./quantum/audio
-I./quantum/keymap_extras
-I./quantum/process_keycode
-I./quantum/serial_link
-I./quantum/template
-I./quantum/tools
-I./quantum/visualizer
-I./tmk_core
-I./tmk_core/common
-I./tmk_core/common/debug.h
-I./tmk_core/protocol
-I./tmk_core/protocol/lufa
-I./util
-DQMK_KEYBOARD=\"$(KEYBOARD)\" -DQMK_KEYMAP=\"$(KEYMAP)\"

View File

@@ -8,7 +8,6 @@ indent_style = space
indent_size = 2
# We recommend you to keep these unchanged
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
@@ -16,3 +15,22 @@ insert_final_newline = true
[*.md]
trim_trailing_whitespace = false
indent_size = 4
# Make these match what we have in .gitattributes
[*.mk]
end_of_line = lf
[Makefile]
end_of_line = lf
[*.sh]
end_of_line = lf
# The gitattributes file will handle the line endings conversion properly according to the operating system settings for other files
# We don't have gitattributes properly for these
# So if the user have for example core.autocrlf set to true
# the line endings would be wrong.
[lib/**]
end_of_line = unset

3
.gitignore vendored
View File

@@ -52,6 +52,7 @@ util/Win_Check_Output.txt
.vscode/last.sql
.vscode/temp.sql
.stfolder
.tags
# ignore image files
*.png
@@ -64,4 +65,4 @@ util/Win_Check_Output.txt
# things travis sees
secrets.tar
id_rsa_*
/.vs
/.vs

1
.gitmodules vendored
View File

@@ -4,6 +4,7 @@
[submodule "lib/chibios-contrib"]
path = lib/chibios-contrib
url = https://github.com/qmk/ChibiOS-Contrib
branch = k-type-fix
[submodule "lib/ugfx"]
path = lib/ugfx
url = https://github.com/qmk/uGFX

View File

@@ -11,7 +11,7 @@ env:
global:
- secure: vBTSL34BDPxDilKUuTXqU4CJ26Pv5hogD2nghatkxSQkI1/jbdnLj/DQdPUrMJFDIY6TK3AltsBx72MaMsLQ1JO/Ou24IeHINHXzUC1FlS9yQa48cpxnhX5kzXNyGs3oa0qaFbvnr7RgYRWtmD52n4bIZuSuW+xpBv05x2OCizdT2ZonH33nATaHGFasxROm4qYZ241VfzcUv766V6RVHgL4x9V08warugs+RENVkfzxxwhk3NmkrISabze0gSVJLHBPHxroZC6EUcf/ocobcuDrCwFqtEt90i7pNIAFUE7gZsN2uE75LmpzAWin21G7lLPcPL2k4FJVd8an1HiP2WmscJU6U89fOfMb2viObnKcCzebozBCmKGtHEuXZo9FcReOx49AnQSpmESJGs+q2dL/FApkTjQiyT4J6O5dJpoww0/r57Wx0cmmqjETKBb5rSgXM51Etk3wO09mvcPHsEwrT7qH8r9XWdyCDoEn7FCLX3/LYnf/D4SmZ633YPl5gv3v9XEwxR5+04akjgnvWDSNIaDbWBdxHNb7l4pMc+WR1bwCyMyA7KXj0RrftEGOrm9ZRLe6BkbT4cycA+j77nbPOMcyZChliV9pPQos+4TOJoTzcK2L8yWVoY409aDNVuAjdP6Yum0R2maBGl/etLmIMpJC35C5/lZ+dUNjJAM=
before_install:
- wget http://www.atmel.com/images/avr8-gnu-toolchain-3.5.4.1709-linux.any.x86_64.tar.gz || wget http://qmk.fm/avr8-gnu-toolchain-3.5.4.1709-linux.any.x86_64.tar.gz
- wget http://ww1.microchip.com/downloads/en/DeviceDoc/avr8-gnu-toolchain-3.5.4.1709-linux.any.x86_64.tar.gz || wget http://qmk.fm/avr8-gnu-toolchain-3.5.4.1709-linux.any.x86_64.tar.gz
install:
- tar -zxf avr8-gnu-toolchain-3.5.4.1709-linux.any.x86_64.tar.gz
- export PATH="$PATH:$TRAVIS_BUILD_DIR/avr8-gnu-toolchain-linux_x86_64/bin"
@@ -38,4 +38,4 @@ notifications:
- https://webhooks.gitter.im/e/afce403d65f143dfac09
on_success: always # options: [always|never|change] default: always
on_failure: always # options: [always|never|change] default: always
on_start: never # options: [always|never|change] default: always
on_start: never # options: [always|never|change] default: always

339
LICENSE Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -19,10 +19,12 @@ endif
# Otherwise the [OK], [ERROR] and [WARN] messages won't be displayed correctly
override SILENT := false
ifndef SUB_IS_SILENT
QMK_VERSION := $(shell git describe --abbrev=0 --tags 2>/dev/null)
ifneq ($(QMK_VERSION),)
$(info QMK Firmware $(QMK_VERSION))
endif
endif
ON_ERROR := error_occurred=1
@@ -114,6 +116,14 @@ list-keyboards:
echo $(KEYBOARDS)
exit 0
define PRINT_KEYBOARD
$(info $(PRINTING_KEYBOARD))
endef
generate-keyboards-file:
$(foreach PRINTING_KEYBOARD,$(KEYBOARDS),$(eval $(call PRINT_KEYBOARD)))
exit 0
#Compatibility with the old make variables, anything you specify directly on the command line
# always overrides the detected folders
ifdef keyboard

62
bootloader.mk Normal file
View File

@@ -0,0 +1,62 @@
# Copyright 2017 Jack Humbert
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# If it's possible that multiple bootloaders can be used for one project,
# you can leave this unset, and the correct size will be selected
# automatically.
#
# Sets the bootloader defined in the keyboard's/keymap's rules.mk
# Current options:
# atmel-dfu
# lufa-dfu
# qmk-dfu
# halfkay
# caterina
# bootloadHID
#
# BOOTLOADER_SIZE can still be defined manually, but it's recommended
# you add any possible configuration to this list
ifeq ($(strip $(BOOTLOADER)), atmel-dfu)
OPT_DEFS += -DBOOTLOADER_ATMEL_DFU
OPT_DEFS += -DBOOTLOADER_DFU
BOOTLOADER_SIZE = 4096
endif
ifeq ($(strip $(BOOTLOADER)), lufa-dfu)
OPT_DEFS += -DBOOTLOADER_LUFA_DFU
OPT_DEFS += -DBOOTLOADER_DFU
BOOTLOADER_SIZE = 4096
endif
ifeq ($(strip $(BOOTLOADER)), qmk-dfu)
OPT_DEFS += -DBOOTLOADER_QMK_DFU
OPT_DEFS += -DBOOTLOADER_DFU
BOOTLOADER_SIZE = 4096
endif
ifeq ($(strip $(BOOTLOADER)), halfkay)
OPT_DEFS += -DBOOTLOADER_HALFKAY
BOOTLOADER_SIZE = 512
endif
ifeq ($(strip $(BOOTLOADER)), caterina)
OPT_DEFS += -DBOOTLOADER_CATERINA
BOOTLOADER_SIZE = 4096
endif
ifeq ($(strip $(BOOTLOADER)), bootloadHID)
OPT_DEFS += -DBOOTLOADER_BOOTLOADHID
BOOTLOADER_SIZE = 4096
endif
ifdef BOOTLOADER_SIZE
OPT_DEFS += -DBOOTLOADER_SIZE=$(strip $(BOOTLOADER_SIZE))
endif

View File

@@ -94,15 +94,33 @@ endif
OPT_DEFS += -DKEYBOARD_$(KEYBOARD_FILESAFE)
ifneq ("$(wildcard $(KEYBOARD_PATH_1)/$(KEYBOARD_FOLDER_1).h)","")
QMK_KEYBOARD_H = $(KEYBOARD_FOLDER_1).h
endif
ifneq ("$(wildcard $(KEYBOARD_PATH_2)/$(KEYBOARD_FOLDER_2).h)","")
QMK_KEYBOARD_H = $(KEYBOARD_FOLDER_2).h
endif
ifneq ("$(wildcard $(KEYBOARD_PATH_3)/$(KEYBOARD_FOLDER_3).h)","")
QMK_KEYBOARD_H = $(KEYBOARD_FOLDER_3).h
endif
ifneq ("$(wildcard $(KEYBOARD_PATH_4)/$(KEYBOARD_FOLDER_4).h)","")
QMK_KEYBOARD_H = $(KEYBOARD_FOLDER_4).h
endif
ifneq ("$(wildcard $(KEYBOARD_PATH_5)/$(KEYBOARD_FOLDER_5).h)","")
QMK_KEYBOARD_H = $(KEYBOARD_FOLDER_5).h
endif
# We can assume a ChibiOS target When MCU_FAMILY is defined , since it's not used for LUFA
ifdef MCU_FAMILY
FIRMWARE_FORMAT=bin
PLATFORM=CHIBIOS
else
PLATFORM=AVR
FIRMWARE_FORMAT=hex
endif
ifeq ($(PLATFORM),CHIBIOS)
include $(TMK_PATH)/protocol/chibios.mk
include $(TMK_PATH)/chibios.mk
OPT_OS = chibios
ifneq ("$(wildcard $(KEYBOARD_PATH_5)/bootloader_defs.h)","")
@@ -178,7 +196,7 @@ else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_1)/keymap.c)","")
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_1)
else ifneq ($(LAYOUTS),)
include build_layout.mk
else
else
$(error Could not find keymap)
# this state should never be reached
endif
@@ -213,6 +231,7 @@ VPATH += $(USER_PATH)
include common_features.mk
include $(TMK_PATH)/protocol.mk
include $(TMK_PATH)/common.mk
include bootloader.mk
SRC += $(TMK_COMMON_SRC)
OPT_DEFS += $(TMK_COMMON_DEFS)
@@ -227,16 +246,22 @@ endif
include $(TMK_PATH)/avr.mk
endif
ifeq ($(PLATFORM),CHIBIOS)
include $(TMK_PATH)/protocol/chibios.mk
endif
ifeq ($(strip $(VISUALIZER_ENABLE)), yes)
VISUALIZER_DIR = $(QUANTUM_DIR)/visualizer
VISUALIZER_PATH = $(QUANTUM_PATH)/visualizer
include $(VISUALIZER_PATH)/visualizer.mk
endif
ALL_CONFIGS := $(PROJECT_CONFIG) $(CONFIG_H)
OUTPUTS := $(KEYMAP_OUTPUT) $(KEYBOARD_OUTPUT)
$(KEYMAP_OUTPUT)_SRC := $(SRC)
$(KEYMAP_OUTPUT)_DEFS := $(OPT_DEFS) $(GFXDEFS) \
-DQMK_KEYBOARD=\"$(KEYBOARD)\" -DQMK_KEYBOARD_H=\"$(KEYBOARD_FOLDER_1).h\" -DQMK_KEYBOARD_CONFIG_H=\"$(KEYBOARD_PATH_1)/config.h\" \
-DQMK_KEYBOARD=\"$(KEYBOARD)\" -DQMK_KEYBOARD_H=\"$(QMK_KEYBOARD_H)\" -DQMK_KEYBOARD_CONFIG_H=\"$(KEYBOARD_PATH_1)/config.h\" \
-DQMK_KEYMAP=\"$(KEYMAP)\" -DQMK_KEYMAP_H=\"$(KEYMAP).h\" -DQMK_KEYMAP_CONFIG_H=\"$(KEYMAP_PATH)/config.h\" \
-DQMK_SUBPROJECT -DQMK_SUBPROJECT_H -DQMK_SUBPROJECT_CONFIG_H
$(KEYMAP_OUTPUT)_INC := $(VPATH) $(EXTRAINCDIRS)
@@ -247,10 +272,10 @@ $(KEYBOARD_OUTPUT)_INC := $(PROJECT_INC) $(GFXINC)
$(KEYBOARD_OUTPUT)_CONFIG := $(PROJECT_CONFIG)
# Default target.
all: build sizeafter
all: build check-size
# Change the build target to build a HEX file or a library.
build: elf hex
build: elf cpfirmware
#build: elf hex eep lss sym
#build: lib

View File

@@ -34,7 +34,11 @@ ifeq ($(strip $(AUDIO_ENABLE)), yes)
OPT_DEFS += -DAUDIO_ENABLE
MUSIC_ENABLE := 1
SRC += $(QUANTUM_DIR)/process_keycode/process_audio.c
SRC += $(QUANTUM_DIR)/audio/audio.c
ifeq ($(PLATFORM),AVR)
SRC += $(QUANTUM_DIR)/audio/audio.c
else
SRC += $(QUANTUM_DIR)/audio/audio_arm.c
endif
SRC += $(QUANTUM_DIR)/audio/voices.c
SRC += $(QUANTUM_DIR)/audio/luts.c
endif
@@ -151,6 +155,9 @@ endif
ifeq ($(strip $(BACKLIGHT_ENABLE)), yes)
ifeq ($(strip $(VISUALIZER_ENABLE)), yes)
CIE1931_CURVE = yes
endif
ifeq ($(strip $(BACKLIGHT_CUSTOM_DRIVER)), yes)
OPT_DEFS += -DBACKLIGHT_CUSTOM_DRIVER
endif
endif

View File

@@ -4,13 +4,13 @@
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.
## How to get it {#how-to-get-it}
## How to Get It {#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 {#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:
@@ -20,6 +20,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 {#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).

View File

@@ -1,11 +1,18 @@
* [Getting started](README.md)
* [Getting Started](README.md)
* [QMK Introduction](getting_started_introduction.md)
* [Install Build Tools](getting_started_build_tools.md)
* Alternative: [Vagrant Guide](getting_started_vagrant_guide.md)
* [Build/Compile instructions](getting_started_make_guide.md)
* [Flashing instructions](flashing.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)
@@ -25,17 +32,20 @@
* [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)
* [Mouse Keys](feature_mouse_keys.md)
* [Pointing Device](feature_pointing_device.md)
* [PS2 Mouse](feature_ps2_mouse.md)
* [PS/2 Mouse](feature_ps2_mouse.md)
* [RGB Lighting](feature_rgblight.md)
* [Space Cadet](feature_space_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)
@@ -63,14 +73,13 @@
* [Customizing Functionality](custom_quantum_functions.md)
* [Documentation Best Practices](documentation_best_practices.md)
* [Documentation Templates](documentation_templates.md)
* [Glossary](glossary.md)
* [Keymap overview](keymap.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)
* [Modding your keyboard](modding_your_keyboard.md)
* [ISP Flashing Guide](isp_flashing_guide.md)
* For a Deeper Understanding
* [How Keyboards Work](how_keyboards_work.md)

View File

@@ -4,4 +4,4 @@ A QMK collaborator is a keyboard maker/designer that is interested in helping QM
* **Maintain the your keyboard's directory** - this may just require an initial setup to get your keyboard working, but it could also include accommodating changes made to QMK's core.
* **Approve and merge your keyboard's keymap pull requests** - we like to encourage users to contribute their keymaps for others to see and work from when creating their own.
If you feel you meet these requirements, shoot us an email at hello@qmk.fm with an introduction and some links to your keyboard!
If you feel you meet these requirements, shoot us an email at hello@qmk.fm with an introduction and some links to your keyboard!

View File

@@ -22,4 +22,4 @@ You can also use any ARM processor that [ChibiOS](http://www.chibios.org) suppor
* [Kinetis MKL26Z64](http://www.nxp.com/products/microcontrollers-and-processors/arm-processors/kinetis-cortex-m-mcus/l-series-ultra-low-power-m0-plus/kinetis-kl2x-48-mhz-usb-ultra-low-power-microcontrollers-mcus-based-on-arm-cortex-m0-plus-core:KL2x)
* [Kinetis MK20DX128](http://www.nxp.com/assets/documents/data/en/data-sheets/K20P64M50SF0.pdf)
* [Kinetis MK20DX128](http://www.nxp.com/assets/documents/data/en/data-sheets/K20P64M50SF0.pdf)
* [Kinetis MK20DX256](http://www.nxp.com/products/microcontrollers-and-processors/arm-processors/kinetis-cortex-m-mcus/k-series-performance-m4/k2x-usb/kinetis-k20-72-mhz-full-speed-usb-mixed-signal-integration-microcontrollers-mcus-based-on-arm-cortex-m4-core:K20_72)
* [Kinetis MK20DX256](http://www.nxp.com/products/microcontrollers-and-processors/arm-processors/kinetis-cortex-m-mcus/k-series-performance-m4/k2x-usb/kinetis-k20-72-mhz-full-speed-usb-mixed-signal-integration-microcontrollers-mcus-based-on-arm-cortex-m4-core:K20_72)

View File

@@ -25,9 +25,11 @@ Some keyboards have folders and sub-folders to allow for different hardware conf
This level contains all of the options for that particular keymap. If you wish to override a previous declaration, you can use `#undef <variable>` to undefine it, where you can then redefine it without an error.
# The `config.h` file
# The `config.h` File
This is a C header file that is one of the first things included, and will persist over the whole project (if included). Lots of variables can be set here and accessed elsewhere.
This is a C header file that is one of the first things included, and will persist over the whole project (if included). Lots of variables can be set here and accessed elsewhere. The `config.h` file shouldn't be including other `config.h` files, or anything besides this:
#include "config_common.h"
## `config.h` Options
@@ -67,7 +69,11 @@ This is a C header file that is one of the first things included, and will persi
* `#define BACKLIGHT_PIN B7`
* pin of the backlight - B5, B6, B7 use PWM, others use softPWM
* `#define BACKLIGHT_LEVELS 3`
* number of levels your backlight will have (not including off)
* number of levels your backlight will have (maximum 15 excluding off)
* `#define BACKLIGHT_BREATHING`
* enables backlight breathing (only works with backlight pins B5, B6 and B7)
* `#define BREATHING_PERIOD 6`
* the length of one backlight "breath" in seconds
* `#define DEBOUNCING_DELAY 5`
* the delay when reading the value of the pin (5 is default)
* `#define LOCKING_SUPPORT_ENABLE`
@@ -82,7 +88,7 @@ This is a C header file that is one of the first things included, and will persi
If you define these options you will disable the associated feature, which can save on code size.
* `#define NO_DEBUG`
* disable debuging
* disable debugging
* `#define NO_PRINT`
* disable printing/debugging using hid_listen
* `#define NO_ACTION_LAYER`
@@ -101,7 +107,7 @@ If you define these options you will disable the associated feature, which can s
If you define these options you will enable the associated feature, which may increase your code size.
* `#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.
* 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
@@ -123,6 +129,15 @@ If you define these options you will enable the associated feature, which may in
* how many taps before oneshot toggle is triggered
* `#define IGNORE_MOD_TAP_INTERRUPT`
* makes it possible to do rolling combos (zx) with keys that convert to other keys on hold
* `#define QMK_KEYS_PER_SCAN 4`
* Allows sending more than one key per scan. By default, only one key event gets
sent via `process_record()` per scan. This has little impact on most typing, but
if you're doing a lot of chords, or your scan rate is slow to begin with, you can
have some delay in processing key events. Each press and release is a separate
event. For a keyboard with 1ms or so scan times, even a very fast typist isn't
going to produce the 500 keystrokes a second needed to actually get more than a
few ms of delay from this. But if you're doing chording on something with 3-4ms
scan times? You probably want this.
### RGB Light Configuration
@@ -135,11 +150,11 @@ If you define these options you will enable the associated feature, which may in
* `#define RGBLIGHT_HUE_STEP 12`
* units to step when in/decreasing hue
* `#define RGBLIGHT_SAT_STEP 25`
* units to step when in/decresing saturation
* units to step when in/decreasing saturation
* `#define RGBLIGHT_VAL_STEP 12`
* units to step when in/decreasing value (brightness)
* `#define RGBW_BB_TWI`
* bit-bangs twi to EZ RGBW LEDs (only required for Ergodox EZ)
* bit-bangs TWI to EZ RGBW LEDs (only required for Ergodox EZ)
### Mouse Key Options
@@ -153,7 +168,7 @@ If you define these options you will enable the associated feature, which may in
This is a [make](https://www.gnu.org/software/make/manual/make.html) file that is included by the top-level `Makefile`. It is used to set some information about the MCU that we will be compiling for as well as enabling and disabling certain features.
## `rules.mk` options
## `rules.mk` Options
### Build Options
@@ -170,7 +185,13 @@ This is a [make](https://www.gnu.org/software/make/manual/make.html) file that i
* `ARCH = AVR8`
* `F_USB = $(F_CPU)`
* `OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT`
* `OPT_DEFS += -DBOOTLOADER_SIZE=4096`
* `BOOTLOADER = atmel-dfu` with the following options:
* `atmel-dfu`
* `lufa-dfu`
* `qmk-dfu`
* `halfkay`
* `caterina`
* `bootloadHID`
### Feature Options
@@ -187,7 +208,7 @@ Use these to enable or disable building certain features. The more you have enab
* `COMMAND_ENABLE`
* Commands for debug and configuration
* `NKRO_ENABLE`
* USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
* USB N-Key Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
* `AUDIO_ENABLE`
* Enable the audio subsystem.
* `RGBLIGHT_ENABLE`

View File

@@ -1,4 +1,4 @@
# How To Contribute
# How to Contribute
👍🎉 First off, thanks for taking the time to read this and contribute! 🎉👍
@@ -9,7 +9,7 @@ Third-party contributions help us grow and improve QMK. We want to make the pull
* [General Guidelines](#general-guidelines)
* [What does the Code of Conduct mean for me?](#what-does-the-code-of-conduct-mean-for-me)
## I Don't Want To Read This Whole Thing I Just Have a Question!
## I Don't Want to Read This Whole Thing! I Just Have a Question!
If you'd like to ask questions about QMK you can do so on the [OLKB Subreddit](https://reddit.com/r/olkb) or on [Gitter](https://gitter.im/qmk/qmk_firmware).
@@ -27,7 +27,7 @@ QMK is largely written in C, with specific features and parts written in C++. It
<!-- FIXME: We should include a list of resources for learning C here. -->
# Where can I go for help?
# Where Can I Go for Help?
If you need help you can [open an issue](https://github.com/qmk/qmk_firmware/issues) or [chat on gitter](http://gitter.im/QMK/qmk_firmware).
@@ -52,7 +52,7 @@ Never made an open source contribution before? Wondering how contributions work
14. Make changes to the pull request if the reviewing maintainer recommends them.
15. Celebrate your success after your pull request is merged!
# Coding conventions
# Coding Conventions
Most of our style is pretty easy to pick up on, but right now it's not entirely consistent. You should match the style of the code surrounding your change, but if that code is inconsistent or unclear use the following guidelines:
@@ -64,7 +64,7 @@ Most of our style is pretty easy to pick up on, but right now it's not entirely
* Optional Braces: Always include optional braces.
* Good: if (condition) { return false; }
* Bad: if (condition) return false;
* We use C style comments: /* */
* We use C style comments: `/* */`
* Think of them as a story describing the feature
* Use them liberally to explain why particular decisions were made.
* Do not write obvious comments
@@ -75,7 +75,7 @@ Most of our style is pretty easy to pick up on, but right now it's not entirely
We have a few different types of changes in QMK, each requiring a different level of rigor. We'd like you to keep the following guidelines in mind no matter what type of change you're making.
* Separate PR's into logical units. For example, do not submit one PR covering two separate features, instead submit a separate PR for each feature.
* Separate PR's into logical units. For example, do not submit one PR covering two separate features, instead submit a separate PR for each feature.
* Check for unnecessary whitespace with `git diff --check` before committing.
* Make sure your code change actually compiles.
* Keymaps: Make sure that `make keyboard:your_new_keymap` does not return an error
@@ -111,7 +111,7 @@ Most first-time QMK contributors start with their personal keymaps. We try to ke
Keyboards are the raison d'être for QMK. Some keyboards are community maintained, while others are maintained by the people responsible for making a particular keyboard. The `readme.md` should tell you who maintains a particular keyboard. If you have questions relating to a particular keyboard you can [Open An Issue](https://github.com/qmk/qmk_firmware/issues) and tag the maintainer in your question.
We also ask that you follow these guidelines:
We also ask that you follow these guidelines:
* Write a `readme.md` using [the template](https://docs.qmk.fm/documentation_templates.html#).
* Keep the number of commits reasonable or we will squash your PR
@@ -122,7 +122,7 @@ We also ask that you follow these guidelines:
## Quantum/TMK Core
Before you put a lot of work into building your new feature you should make sure you are implementing it in the best way. You can get a basic understanding of QMK by reading [Understaning QMK](understanding_qmk.html), which will take you on a tour of the QMK program flow. From here you should talk to us to get a sense of the best way to implement your idea. There are two main ways to do this:
Before you put a lot of work into building your new feature you should make sure you are implementing it in the best way. You can get a basic understanding of QMK by reading [Understanding QMK](understanding_qmk.md), which will take you on a tour of the QMK program flow. From here you should talk to us to get a sense of the best way to implement your idea. There are two main ways to do this:
* [Chat on Gitter](https://gitter.im/qmk/qmk_firmware)
* [Open an Issue](https://github.com/qmk/qmk_firmware/issues/new)
@@ -136,7 +136,7 @@ Here are some things to keep in mind when working on your feature or bug fix.
* **Consider revisions and different chip-bases** - there are several keyboards that have revisions that allow for slightly different configurations, and even different chip-bases. Try to make a feature supported in ARM and AVR, or automatically disabled on platforms it doesn't work on.
* **Explain your feature** - Document it in `docs/`, either as a new file or as part of an existing file. If you don't document it other people won't be able to benefit from your hard work.
We also ask that you follow these guidelines:
We also ask that you follow these guidelines:
* Keep the number of commits reasonable or we will squash your PR
* Do not lump keyboards or keymaps in with core changes. Submit your core changes first.
@@ -147,6 +147,6 @@ We also ask that you follow these guidelines:
To maintain a clear vision of how things are laid out in QMK we try to plan out refactors in-depth and have a collaborator make the changes. If you have an idea for refactoring, or suggestions, [open an issue](https://github.com/qmk/qmk_firmware/issues), we'd love to talk about how QMK can be improved.
# What does the Code of Conduct mean for me?
# What Does the Code of Conduct Mean for Me?
Our [Code of Conduct](https://github.com/qmk/qmk_firmware/blob/master/CODE_OF_CONDUCT.md) means that you are responsible for treating everyone on the project with respect and courtesy regardless of their identity. If you are the victim of any inappropriate behavior or comments as described in our Code of Conduct, we are here for you and will do the best to ensure that the abuser is reprimanded appropriately, per our code.

View File

@@ -1,8 +1,8 @@
# How To Customize Your Keyboard's Behavior
# How to Customize Your Keyboard's Behavior
For a lot of people a custom keyboard is about more than sending button presses to your computer. You want to be able to do things that are more complex than simple button presses and macros. QMK has hooks that allow you to inject code, override functionality, and otherwise customize how your keyboard behaves in different situations.
For a lot of people a custom keyboard is about more than sending button presses to your computer. You want to be able to do things that are more complex than simple button presses and macros. QMK has hooks that allow you to inject code, override functionality, and otherwise customize how your keyboard behaves in different situations.
This page does not assume any special knowledge about QMK, but reading [Understanding QMK](understanding_qmk.html) will help you understand what is going on at a more fundamental level.
This page does not assume any special knowledge about QMK, but reading [Understanding QMK](understanding_qmk.md) will help you understand what is going on at a more fundamental level.
## A Word on Core vs Keyboards vs Keymap
@@ -34,13 +34,13 @@ enum my_keycodes {
};
```
## Programming The Behavior Of Any Keycode
## Programming the Behavior of Any Keycode
When you want to override the behavior of an existing key, or define the behavior for a new key, you should use the `process_record_kb()` and `process_record_user()` functions. These are called by QMK during key processing before the actual key event is handled. If these functions return `true` QMK will process the keycodes as usual. That can be handy for extending the functionality of a key rather than replacing it. If these functions return `false` QMK will skip the normal key handling, and it will be up you to send any key up or down events that are required.
When you want to override the behavior of an existing key, or define the behavior for a new key, you should use the `process_record_kb()` and `process_record_user()` functions. These are called by QMK during key processing before the actual key event is handled. If these functions return `true` QMK will process the keycodes as usual. That can be handy for extending the functionality of a key rather than replacing it. If these functions return `false` QMK will skip the normal key handling, and it will be up to you to send any key up or down events that are required.
These function are called every time a key is pressed or released.
### Example `process_record_user()` implementation
### Example `process_record_user()` Implementation
This example does two things. It defines the behavior for a custom keycode called `FOO`, and it supplements our Enter key by playing a tone whenever it is pressed.
@@ -60,18 +60,20 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
PLAY_NOTE_ARRAY(tone_qwerty);
}
return true; // Let QMK send the enter press/release events
default:
return true; // Process all other keycodes normally
}
}
```
### `process_record_*` Function documentation
### `process_record_*` Function Documentation
* Keyboard/Revision: `bool process_record_kb(uint16_t keycode, keyrecord_t *record)`
* Keyboard/Revision: `bool process_record_kb(uint16_t keycode, keyrecord_t *record)`
* Keymap: `bool process_record_user(uint16_t keycode, keyrecord_t *record)`
The `keycode` argument is whatever is defined in your keymap, eg `MO(1)`, `KC_L`, etc. You should use a `switch...case` block to handle these events.
The `record` argument contains infomation about the actual press:
The `record` argument contains information about the actual press:
```
keyrecord_t record {
@@ -96,10 +98,10 @@ This allows you to control the 5 LED's defined as part of the USB Keyboard spec.
* `USB_LED_COMPOSE`
* `USB_LED_KANA`
### Example `led_set_kb()` implementation
### Example `led_set_user()` Implementation
```
void led_set_kb(uint8_t usb_led) {
void led_set_user(uint8_t usb_led) {
if (usb_led & (1<<USB_LED_NUM_LOCK)) {
PORTB |= (1<<0);
} else {
@@ -128,23 +130,22 @@ void led_set_kb(uint8_t usb_led) {
}
```
### `led_set_*` Function documentation
### `led_set_*` Function Documentation
* Keyboard/Revision: `void led_set_kb(uint8_t usb_led)`
* Keyboard/Revision: `void led_set_kb(uint8_t usb_led)`
* Keymap: `void led_set_user(uint8_t usb_led)`
# Matrix Initialization Code
Before a keyboard can be used the hardware must be initialized. QMK handles initialization of the keyboard matrix itself, but if you have other hardware like LED's or i&#xb2;c controllers you will need to set up that hardware before it can be used.
### Example `matrix_init_kb()` implementation
### Example `matrix_init_user()` Implementation
This example, at the keyboard level, sets up B1, B2, and B3 as LED pins.
```
void matrix_init_kb(void) {
void matrix_init_user(void) {
// Call the keymap level matrix init.
matrix_init_user();
// Set our LED pins as output
DDRB |= (1<<1);
@@ -153,20 +154,20 @@ void matrix_init_kb(void) {
}
```
### `matrix_init_*` Function documentation
### `matrix_init_*` Function Documentation
* Keyboard/Revision: `void matrix_init_kb(void)`
* Keyboard/Revision: `void matrix_init_kb(void)`
* Keymap: `void matrix_init_user(void)`
# Matrix Scanning Code
Whenever possible you should customize your keyboard by using `process_record_*()` and hooking into events that way, to ensure that your code does not have a negative performance impact on your keyboard. However, in rare cases it is necessary to hook into the matrix scanning. Be extremely careful with the performance of code in these functions, as it will be called at least 10 times per second.
### Example `matrix_scan_*` implementation
### Example `matrix_scan_*` Implementation
This example has been deliberately omitted. You should understand enough about QMK internals to write this without an example before hooking into such a performance sensitive area. If you need help please [open an issue](https://github.com/qmk/qmk_firmware/issues/new) or [chat with us on gitter](https://gitter.im/qmk/qmk_firmware).
### `matrix_scan_*` Function documentation
### `matrix_scan_*` Function Documentation
* Keyboard/Revision: `void matrix_scan_kb(void)`
* Keymap: `void matrix_scan_user(void)`
@@ -174,3 +175,41 @@ This example has been deliberately omitted. You should understand enough about Q
This function gets called at every matrix scan, which is basically as often as the MCU can handle. Be careful what you put here, as it will get run a lot.
You should use this function if you need custom matrix scanning code. It can also be used for custom status output (such as LED's or a display) or other functionality that you want to trigger regularly even when the user isn't typing.
# Layer Change Code
Thir runs code every time that the layers get changed. This can be useful for layer indication, or custom layer handling.
### Example `layer_state_set_*` Implementation
This example shows how to set the [RGB Underglow](feature_rgblight.md) lights based on the layer, using the Planck as an example
```
uint32_t layer_state_set_user(uint32_t state) {
switch (biton32(state)) {
case _RAISE:
rgblight_setrgb (0x00, 0x00, 0xFF);
break;
case _LOWER:
rgblight_setrgb (0xFF, 0x00, 0x00);
break;
case _PLOVER:
rgblight_setrgb (0x00, 0xFF, 0x00);
break;
case _ADJUST:
rgblight_setrgb (0x7A, 0x00, 0xFF);
break;
default: // for any other layers, or the default layer
rgblight_setrgb (0x00, 0xFF, 0xFF);
break;
}
return state;
}
```
### `matrix_init_*` Function Documentation
* Keyboard/Revision: `void uint32_t layer_state_set_kb(uint32_t state)`
* Keymap: `uint32_t layer_state_set_user(uint32_t state)`
The `state` is the bitmask of the active layers, as explained in the [Keymap Overview](keymap.md#keymap-layer-status)

View File

@@ -4,7 +4,7 @@ This page exists to document best practices when writing documentation for QMK.
# Page Opening
Your documentation page should generally start with an H1 heading, followed by a 1 paragrah description of what the user will find on this page. Keep in mind that this heading and paragraph will sit next to the Table of Contents, so keep the heading short and avoid long strings with no whitespace.
Your documentation page should generally start with an H1 heading, followed by a 1 paragraph description of what the user will find on this page. Keep in mind that this heading and paragraph will sit next to the Table of Contents, so keep the heading short and avoid long strings with no whitespace.
Example:
@@ -78,7 +78,7 @@ What about an error message?
# 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 sentances describing your feature and a table listing any relevant keycodes is enough. Here is a basic template:
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:
```markdown
# My Cool Feature

View File

@@ -1,6 +1,6 @@
# Setting Up Eclipse for QMK Development
# Setting up Eclipse for QMK Development
[Eclipse](https://en.wikipedia.org/wiki/Eclipse_(software)) is an open-source [Integrated Development Environment](https://en.wikipedia.org/wiki/Integrated_development_environment) (IDE) widely used for Java development, but with an extensible plugin system that allows to customize it for other languages and usages.
[Eclipse][1] is an open-source [Integrated Development Environment](https://en.wikipedia.org/wiki/Integrated_development_environment) (IDE) widely used for Java development, but with an extensible plugin system that allows to customize it for other languages and usages.
Using an IDE such as Eclipse provides many advantages over a plain text editor, such as:
* intelligent code completion
@@ -16,16 +16,16 @@ The purpose of the is page is to document how to set-up Eclipse for developing A
Note that this set-up has been tested on Ubuntu 16.04 only for the moment.
# Prerequisites
## Build environment
Before starting, you must have followed the [Getting Started](home.md#getting-started) section corresponding to your system. In particular, you must have been able to build the firmware with [the `make` command](../#the-make-command).
## Build Environment
Before starting, you must have followed the [Getting Started](README.md#getting-started) section corresponding to your system. In particular, you must have been able to build the firmware with [the `make` command](../#the-make-command).
## Java
Eclipse is a Java application, so you will need to install Java 8 or more recent to be able to run it. You may choose between the JRE or the JDK, the latter being useful if you intend to do Java development.
# Install Eclipse and its plugins
# Install Eclipse and Its Plugins
Eclipse comes in [several flavours](http://www.eclipse.org/downloads/eclipse-packages/) depending on the target usage that you will have. There is no package comprising the AVR stack, so we will need to start from Eclipse CDT (C/C++ Development Tooling) and install the necessary plugins.
## Download and install Eclipse CDT
## Download and Install Eclipse CDT
If you already have Eclipse CDT on your system, you can skip this step. However it is advised to keep it up-to-date for better support.
If you have another Eclipse package installed, it is normally possible to [install the CDT plugin over it](https://eclipse.org/cdt/downloads.php). However it is probably better to reinstall it from scratch to keep it light and avoid the clutter of tools that you don't need for the projects you will be working on.
@@ -41,10 +41,10 @@ When you are prompted with the Workspace Selector, select a directory that will
Once started, click the <kbd>Workbench</kbd> button at the top right to switch to the workbench view (there is a also checkbox at the bottom to skip the welcome screen at startup).
## Install the necessary plugins
## Install the Necessary Plugins
Note: you do not need to restart Eclipse after installing each plugin. Simply restart once all plugins are installed.
### [The AVR plugin](http://avr-eclipse.sourceforge.net/)
### [The AVR Plugin](http://avr-eclipse.sourceforge.net/)
This is the most important plugin as it will allow Eclipse to _understand_ AVR C code. Follow [the instructions for using the update site](http://avr-eclipse.sourceforge.net/wiki/index.php/Plugin_Download#Update_Site), and agree with the security warning for unsigned content.
### [ANSI Escape in Console](https://marketplace.eclipse.org/content/ansi-escape-console)
@@ -58,7 +58,7 @@ This plugin is necessary to properly display the colored build output generated
Once both plugins are installed, restart Eclipse as prompted.
# Configure Eclipse for QMK
## Importing the project
## Importing the Project
1. Click <kbd><kbd>File</kbd> > <kbd>New</kbd> > <kbd>Makefile Project with Existing Code</kbd></kbd>
2. On the next screen:
* Select the directory where you cloned the repository as _Existing Code Location_;
@@ -72,7 +72,7 @@ Once both plugins are installed, restart Eclipse as prompted.
¹ There might be issues for importing the project with a custom name. If it does not work properly, try leaving the default project name (i.e. the name of the directory, probably `qmk_firmware`).
## Build your keyboard
## Build Your Keyboard
We will now configure a make target that cleans the project and builds the keymap of your choice.
1. On the right side of the screen, select the <kbd>Make Target</kbd> tab
@@ -84,3 +84,5 @@ We will now configure a make target that cleans the project and builds the keyma
7. (Optional) Toggle the <kbd>Hide Empty Folders</kbd> icon button above the targets tree to only show your build target.
8. Double-click the build target you created to trigger a build.
9. Select the <kbd>Console</kbd> view at the bottom to view the running build.
[1]: https://en.wikipedia.org/wiki/Eclipse_(software)

View File

@@ -1,40 +1,25 @@
# Frequently Asked Build Questions
This page covers questions about building QMK. If you have not yet you should read the [Build Environment Setup](getting_started_build_tools.md) and [Make Instructions](make_instructions.md) guides.
This page covers questions about building QMK. If you haven't yet done so, you should read the [Build Environment Setup](getting_started_build_tools.md) and [Make Instructions](getting_started_make_guide.md) guides.
## Can't program on Linux
You will need proper permission to operate a device. For Linux users see udev rules below. Easy way is to use `sudo` command, if you are not familiar with this command check its manual with `man sudo` or this page on line.
## Can't Program on Linux
You will need proper permissions to operate a device. For Linux users, see the instructions regarding `udev` rules, below. If you have issues with `udev`, a work-around is to use the `sudo` command. If you are not familiar with this command, check its manual with `man sudo` or [see this webpage](https://linux.die.net/man/8/sudo).
An example of using `sudo`, when your controller is ATMega32u4:
In short when your controller is ATMega32u4,
$ sudo dfu-programmer atmega32u4 erase --force
$ sudo dfu-programmer atmega32u4 flash your.hex
$ sudo dfu-programmer atmega32u4 reset
or just
or just:
$ sudo make <keyboard>:<keymap>:dfu
But to run `make` with root privilege is not good idea. Use former method if possible.
Note that running `make` with `sudo` is generally *not* a good idea, and you should use one of the former methods, if possible.
## WINAVR is obsolete
It is no longer recommended and may cause some problem.
See [TMK Issue #99](https://github.com/tmk/tmk_keyboard/issues/99).
## USB VID and PID
You can use any ID you want with editing `config.h`. Using any presumably unused ID will be no problem in fact except for very low chance of collision with other product.
Most boards in QMK use `0xFEED` as the vendor ID. You should look through other keyboards to make sure you pick a unique Product ID.
Also see this.
https://github.com/tmk/tmk_keyboard/issues/150
You can buy a really unique VID:PID here. I don't think you need this for personal use.
- http://www.obdev.at/products/vusb/license.html
- http://www.mcselec.com/index.php?page=shop.product_details&flypage=shop.flypage&product_id=92&option=com_phpshop&Itemid=1
## Linux udev rules
On Linux you need proper privilege to access device file of MCU, you'll have to use `sudo` when flashing firmware. You can circumvent this with placing these files in `/etc/udev/rules.d/`.
## Linux `udev` Rules
On Linux, you'll need proper privileges to access the MCU. You can either use
`sudo` when flashing firmware, or place these files in `/etc/udev/rules.d/`.
**/etc/udev/rules.d/50-atmel-dfu.rules:**
```
@@ -52,8 +37,23 @@ SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff0", MODE:="066
SUBSYSTEMS=="usb", ATTRS{idVendor}=="feed", MODE:="0666"
```
## WINAVR is Obsolete
It is no longer recommended and may cause some problem.
See [TMK Issue #99](https://github.com/tmk/tmk_keyboard/issues/99).
## Cortex: cstddef: No such file or directory
## USB VID and PID
You can use any ID you want with editing `config.h`. Using any presumably unused ID will be no problem in fact except for very low chance of collision with other product.
Most boards in QMK use `0xFEED` as the vendor ID. You should look through other keyboards to make sure you pick a unique Product ID.
Also see this.
https://github.com/tmk/tmk_keyboard/issues/150
You can buy a really unique VID:PID here. I don't think you need this for personal use.
- http://www.obdev.at/products/vusb/license.html
- http://www.mcselec.com/index.php?page=shop.product_details&flypage=shop.flypage&product_id=92&option=com_phpshop&Itemid=1
## Cortex: `cstddef: No such file or directory`
GCC 4.8 of Ubuntu 14.04 had this problem and had to update to 4.9 with this PPA.
https://launchpad.net/~terry.guo/+archive/ubuntu/gcc-arm-embedded
@@ -61,8 +61,7 @@ https://github.com/tmk/tmk_keyboard/issues/212
https://github.com/tmk/tmk_keyboard/wiki/mbed-cortex-porting#compile-error-cstddef
https://developer.mbed.org/forum/mbed/topic/5205/
## `clock_prescale_set` and `clock_div_1` not available
## `clock_prescale_set` and `clock_div_1` Not Available
Your toolchain is too old to support the MCU. For example WinAVR 20100110 doesn't support ATMega32u2.
```
@@ -81,11 +80,11 @@ make: *** [obj_alps64/protocol/lufa/lufa.o] Error 1
Note that Teensy2.0++ bootloader size is 2048byte. Some Makefiles may have wrong comment.
```
# Boot Section Size in *bytes*
# Teensy halfKay 512
# Teensy++ halfKay 2048
# Boot Section Size in *bytes*
# Teensy halfKay 512
# Teensy++ halfKay 2048
# Atmel DFU loader 4096 (TMK Alt Controller)
# LUFA bootloader 4096
# USBaspLoader 2048
# LUFA bootloader 4096
# USBaspLoader 2048
OPT_DEFS += -DBOOTLOADER_SIZE=2048
```

View File

@@ -4,14 +4,14 @@ This page details various common questions people have about troubleshooting the
# Debug Console
## hid_listen can't recognize device
## `hid_listen` Can't Recognize Device
When debug console of your device is not ready you will see like this:
```
Waiting for device:.........
```
once the device is pluged in then *hid_listen* finds it you will get this message:
once the device is plugged in then *hid_listen* finds it you will get this message:
```
Waiting for new device:.........................
@@ -23,7 +23,7 @@ If you can't get this 'Listening:' message try building with `CONSOLE_ENABLE=yes
You may need privilege to access the device on OS like Linux.
- try `sudo hid_listen`
## Can't get message on console
## Can't Get Message on Console
Check:
- *hid_listen* finds your device. See above.
- Enable debug with pressing **Magic**+d. See [Magic Commands](https://github.com/tmk/tmk_keyboard#magic-commands).
@@ -31,7 +31,7 @@ Check:
- try using 'print' function instead of debug print. See **common/print.h**.
- disconnect other devices with console function. See [Issue #97](https://github.com/tmk/tmk_keyboard/issues/97).
## Linux or UNIX like system requires Super User privilege
## Linux or UNIX Like System Requires Super User Privilege
Just use 'sudo' to execute *hid_listen* with privilege.
```
$ sudo hid_listen
@@ -82,46 +82,46 @@ Size after:
consume extra memory; watch out for BOOTMAGIC_ENABLE,
MOUSEKEY_ENABLE, EXTRAKEY_ENABLE, CONSOLE_ENABLE, API_SYSEX_ENABLE
- DFU tools do /not/ allow you to write into the bootloader (unless
you throw in extra fruitsalad of options), so there is little risk
you throw in extra fruit salad of options), so there is little risk
there.
- EEPROM has around a 100000 write cycle. You shouldn't rewrite the
firmware repeatedly and continually; that'll burn the EEPROM
eventually.
## NKRO Doesn't work
First you have to compile frimware with this build option `NKRO_ENABLE` in **Makefile**.
First you have to compile firmware with this build option `NKRO_ENABLE` in **Makefile**.
Try `Magic` **N** command(`LShift+RShift+N` by default) when **NKRO** still doesn't work. You can use this command to toggle between **NKRO** and **6KRO** mode temporarily. In some situations **NKRO** doesn't work you need to switch to **6KRO** mode, in particular when you are in BIOS.
If your firmware built with `BOOTMAGIC_ENABLE` you need to turn its switch on by `BootMagic` **N** command(`Space+N` by default). This setting is stored in EEPROM and keeped over power cycles.
If your firmware built with `BOOTMAGIC_ENABLE` you need to turn its switch on by `BootMagic` **N** command(`Space+N` by default). This setting is stored in EEPROM and kept over power cycles.
https://github.com/tmk/tmk_keyboard#boot-magic-configuration---virtual-dip-switch
## TrackPoint needs reset circuit(PS/2 mouse support)
Without reset circuit you will have inconsistent reuslt due to improper initialize of the hardware. See circuit schematic of TPM754.
## TrackPoint Needs Reset Circuit (PS/2 Mouse Support)
Without reset circuit you will have inconsistent result due to improper initialize of the hardware. See circuit schematic of TPM754.
- http://geekhack.org/index.php?topic=50176.msg1127447#msg1127447
- http://www.mikrocontroller.net/attachment/52583/tpm754.pdf
## Can't read column of matrix beyond 16
## Can't Read Column of Matrix Beyond 16
Use `1UL<<16` instead of `1<<16` in `read_cols()` in [matrix.h] when your columns goes beyond 16.
In C `1` means one of [int] type which is [16bit] in case of AVR so you can't shift left more than 15. You will get unexpected zero when you say `1<<16`. You have to use [unsigned long] type with `1UL`.
In C `1` means one of [int] type which is [16 bit] in case of AVR so you can't shift left more than 15. You will get unexpected zero when you say `1<<16`. You have to use [unsigned long] type with `1UL`.
http://deskthority.net/workshop-f7/rebuilding-and-redesigning-a-classic-thinkpad-keyboard-t6181-60.html#p146279
## Bootloader jump doesn't work
## Bootloader Jump Doesn't Work
Properly configure bootloader size in **Makefile**. With wrong section size bootloader won't probably start with **Magic command** and **Boot Magic**.
```
# Size of Bootloaders in bytes:
# Atmel DFU loader(ATmega32U4) 4096
# Atmel DFU loader(AT90USB128) 8192
# LUFA bootloader(ATmega32U4) 4096
# Arduino Caterina(ATmega32U4) 4096
# USBaspLoader(ATmega***) 2048
# Teensy halfKay(ATmega32U4) 512
# Atmel DFU loader(ATmega32U4) 4096
# Atmel DFU loader(AT90USB128) 8192
# LUFA bootloader(ATmega32U4) 4096
# Arduino Caterina(ATmega32U4) 4096
# USBaspLoader(ATmega***) 2048
# Teensy halfKay(ATmega32U4) 512
# Teensy++ halfKay(AT90USB128) 2048
OPT_DEFS += -DBOOTLOADER_SIZE=4096
```
@@ -135,14 +135,14 @@ byte Atmel/LUFA(ATMega32u4) byte Atmel(AT90SUB1286)
| | | |
| | | |
| Application | | Application |
| | | |
| | | |
= = = =
| | 32KB-4KB | | 128KB-8KB
0x6000 +---------------+ 0x1E000 +---------------+
| Bootloader | 4KB | Bootloader | 8KB
0x7FFF +---------------+ 0x1FFFF +---------------+
byte Teensy(ATMega32u4) byte Teensy++(AT90SUB1286)
0x0000 +---------------+ 0x00000 +---------------+
| | | |
@@ -161,14 +161,14 @@ https://github.com/tmk/tmk_keyboard/issues/179
If you are using a TeensyUSB, there is a [known bug](https://github.com/qmk/qmk_firmware/issues/164) in which the hardware reset button prevents the RESET key from working. Unplugging the keyboard and plugging it back in should resolve the problem.
## Special Extra key doesn't work(System, Audio control keys)
## Special Extra Key Doesn't Work (System, Audio Control Keys)
You need to define `EXTRAKEY_ENABLE` in `rules.mk` to use them in QMK.
```
EXTRAKEY_ENABLE = yes # Audio control and System control
```
## Wakeup from sleep doesn't work
## Wakeup from Sleep Doesn't Work
In Windows check `Allow this device to wake the computer` setting in Power **Management property** tab of **Device Manager**. Also check BIOS setting.
@@ -181,11 +181,11 @@ Pressing any key during sleep should wake host.
- http://arduino.cc/en/uploads/Main/arduino-leonardo-schematic_3b.pdf
- http://arduino.cc/en/uploads/Main/arduino-micro-schematic.pdf
Arduino leonardo and micro have **ATMega32U4** and can be used for TMK, though Arduino bootloader may be a problem.
Arduino Leonardo and micro have **ATMega32U4** and can be used for TMK, though Arduino bootloader may be a problem.
## Using PF4-7 pins of USB AVR?
You need to set JTD bit of MCUCR yourself to use PF4-7 as GPIO. Those pins are configured to serve JTAG function by default. MCUs like ATMega*U* or AT90USB* are affeteced with this.
## Using PF4-7 Pins of USB AVR?
You need to set JTD bit of MCUCR yourself to use PF4-7 as GPIO. Those pins are configured to serve JTAG function by default. MCUs like ATMega*U* or AT90USB* are affected with this.
If you are using Teensy this isn't needed. Teensy is shipped with JTAGEN fuse bit unprogrammed to disable the function.
@@ -200,7 +200,7 @@ https://github.com/tmk/tmk_keyboard/blob/master/keyboard/hbkb/matrix.c#L67
And read **26.5.1 MCU Control Register MCUCR** of ATMega32U4 datasheet.
## Adding LED indicators of Lock keys
## Adding LED Indicators of Lock Keys
You need your own LED indicators for CapsLock, ScrollLock and NumLock? See this post.
http://deskthority.net/workshop-f7/tmk-keyboard-firmware-collection-t4478-120.html#p191560
@@ -218,26 +218,26 @@ http://arduino.cc/en/Main/ArduinoBoardMicro
https://geekhack.org/index.php?topic=14290.msg1563867#msg1563867
## USB 3 compatibility
## USB 3 Compatibility
I heard some people have a problem with USB 3 port, try USB 2 port.
## Mac compatibility
## Mac Compatibility
### OS X 10.11 and Hub
https://geekhack.org/index.php?topic=14290.msg1884034#msg1884034
## Problem on BIOS(UEFI)/Resume(Sleep&Wake)/Power cycles
## Problem on BIOS (UEFI)/Resume (Sleep & Wake)/Power Cycles
Some people reported their keyboard stops working on BIOS and/or after resume(power cycles).
As of now root of its cause is not clear but some build options seem to be related. In Makefile try to disable those options like `CONSOLE_ENABLE`, `NKRO_ENABLE`, `SLEEP_LED_ENABLE` and/or others.
As of now root of its cause is not clear but some build options seem to be related. In Makefile try to disable those options like `CONSOLE_ENABLE`, `NKRO_ENABLE`, `SLEEP_LED_ENABLE` and/or others.
https://github.com/tmk/tmk_keyboard/issues/266
https://geekhack.org/index.php?topic=41989.msg1967778#msg1967778
## FLIP doesn't work
### AtLibUsbDfu.dll not found
## FLIP Doesn't Work
### `AtLibUsbDfu.dll` Not Found
Remove current driver and reinstall one FLIP provides from DeviceManager.
http://imgur.com/a/bnwzy

View File

@@ -4,7 +4,7 @@
[QMK](https://github.com/qmk), short for Quantum Mechanical Keyboard, is a group of people building tools for custom keyboards. We started with the [QMK firmware](https://github.com/qmk/qmk_firmware), a heavily modified fork of [TMK](https://github.com/tmk/tmk_keyboard).
### Why the name Quantum?
### Why the Name Quantum?
<!-- FIXME -->
@@ -17,4 +17,3 @@ From a technical standpoint QMK builds upon TMK by adding several new features.
From a project and community management standpoint TMK maintains all the officially supported keyboards by himself, with a bit of community support. Separate community maintained forks exist or can be created for other keyboards. Only a few keymaps are provided by default, so users typically don't share keymaps with each other. QMK encourages sharing of both keyboards and keymaps through a centrally managed repository, accepting all pull requests that follow the quality standards. These are mostly community maintained, but the QMK team also helps when necessary.
Both approaches have their merits and their drawbacks, and code flows freely between TMK and QMK when it makes sense.

View File

@@ -7,48 +7,57 @@ See [Keycodes](keycodes.md) for an index of keycodes available to you. These lin
Keycodes are actually defined in [common/keycode.h](https://github.com/qmk/qmk_firmware/blob/master/tmk_core/common/keycode.h).
## What Are The Default Keycodes?
## What Are the Default Keycodes?
There are 3 standard keyboard layouts in use around the world- ANSI, ISO, and JIS. North America primarily uses ANSI, Europe and Africa primarily use ISO, and Japan uses JIS. Regions not mentioned typically use either ANSI or ISO. The keycodes corresponding to these layouts are shown here:
<!-- Source for this image: http://www.keyboard-layout-editor.com/#/gists/9ce023dc6caadc0cf11c88c782350a8c -->
![Keyboard Layout Image](https://i.imgur.com/45m4mRf.png)
## Some Of My Keys Are Swapped Or Not Working
QMK has two features, Bootmagic and Command, which allow you to change the behavior of your keyboard on the fly. This includes, but is not limited to, swapping Ctrl/Caps, disabling Gui, swapping Alt/Gui, swapping Backspace/Backslash, disabling all keys, and other behavioral modifications.
As a quick fix try holding down `Space`+`Backspace` while you plug in your keyboard. This will reset the stored settings on your keyboard, returning those keys to normal operation. If that doesn't work look here:
* [Bootmagic](feature_bootmagic.md)
* [Command](feature_command.md)
## The Menu Key Isn't Working
The key found on most modern keyboards that is located between `KC_RGUI` and `KC_RCTL` is actually called `KC_APP`. This is because when that key was invented there was already a key named `MENU` in the relevant standards, so MS chose to call that the `APP` key.
## `KC_SYSREQ` isn't working
## `KC_SYSREQ` Isn't Working
Use keycode for Print Screen(`KC_PSCREEN` or `KC_PSCR`) instead of `KC_SYSREQ`. Key combination of 'Alt + Print Screen' is recognized as 'System request'.
See [issue #168](https://github.com/tmk/tmk_keyboard/issues/168) and
- http://en.wikipedia.org/wiki/Magic_SysRq_key
- http://en.wikipedia.org/wiki/System_request
* http://en.wikipedia.org/wiki/Magic_SysRq_key
* http://en.wikipedia.org/wiki/System_request
## Power key doesn't work
## Power Key Doesn't Work
Use `KC_PWR` instead of `KC_POWER` or vice versa.
- `KC_PWR` works with Windows and Linux, not with OSX.
- `KC_POWER` works with OSX and Linux, not with Windows.
* `KC_PWR` works with Windows and Linux, not with OSX.
* `KC_POWER` works with OSX and Linux, not with Windows.
More info: http://geekhack.org/index.php?topic=14290.msg1327264#msg1327264
## Oneshot modifier
Solves my personal 'the' problem. I often got 'the' or 'THe' wrongly instead of 'The'. Oneshot Shift mitgates this for me.
## One Shot Modifier
Solves my personal 'the' problem. I often got 'the' or 'THe' wrongly instead of 'The'. One Shot Shift mitigates this for me.
https://github.com/tmk/tmk_keyboard/issues/67
## Modifier/Layer stuck
## Modifier/Layer Stuck
Modifier keys or layers can be stuck unless layer switching is configured properly.
For Modifier keys and layer actions you have to place `KC_TRANS` on same position of destination layer to unregister the modifier key or return to previous layer on release event.
- https://github.com/tmk/tmk_core/blob/master/doc/keymap.md#31-momentary-switching
- http://geekhack.org/index.php?topic=57008.msg1492604#msg1492604
- https://github.com/tmk/tmk_keyboard/issues/248
* https://github.com/tmk/tmk_core/blob/master/doc/keymap.md#31-momentary-switching
* http://geekhack.org/index.php?topic=57008.msg1492604#msg1492604
* https://github.com/tmk/tmk_keyboard/issues/248
## Mechanical Lock Switch Support
This feature is for *mechanical lock switch* like [this Alps one](http://deskthority.net/wiki/Alps_SKCL_Lock). You can enable it by adding this to your `config.h`:
```
#define LOCKING_SUPPORT_ENABLE
#define LOCKING_RESYNC_ENABLE
@@ -58,7 +67,7 @@ After enabling this feature use keycodes `KC_LCAP`, `KC_LNUM` and `KC_LSCR` in y
Old vintage mechanical keyboards occasionally have lock switches but modern ones don't have. ***You don't need this feature in most case and just use keycodes `KC_CAPS`, `KC_NLCK` and `KC_SLCK`.***
## Input special charactors other than ASCII like Cédille 'Ç'
## Input Special Characters Other Than ASCII like Cédille 'Ç'
NO UNIVERSAL METHOD TO INPUT THOSE WORKS OVER ALL SYSTEMS. You have to define **MACRO** in way specific to your OS or layout.
See this post for example **MACRO** code.
@@ -66,20 +75,20 @@ See this post for example **MACRO** code.
http://deskthority.net/workshop-f7/tmk-keyboard-firmware-collection-t4478-120.html#p195620
On **Windows** you can use `AltGr` key or **Alt code**.
- http://en.wikipedia.org/wiki/AltGr_key
- http://en.wikipedia.org/wiki/Alt_code
* http://en.wikipedia.org/wiki/AltGr_key
* http://en.wikipedia.org/wiki/Alt_code
On **Mac** OS defines `Option` key combinations.
- http://en.wikipedia.org/wiki/Option_key#Alternative_keyboard_input
* http://en.wikipedia.org/wiki/Option_key#Alternative_keyboard_input
On **Xorg** you can use `compose` key, instead.
- http://en.wikipedia.org/wiki/Compose_key
* http://en.wikipedia.org/wiki/Compose_key
And see this for **Unicode** input.
- http://en.wikipedia.org/wiki/Unicode_input
* http://en.wikipedia.org/wiki/Unicode_input
## Apple/Mac keyboard Fn
## Apple/Mac Keyboard `Fn`
Not supported.
Apple/Mac keyboard sends keycode for Fn unlike most of other keyboards.
@@ -88,13 +97,13 @@ I think you can send Apple Fn key using Apple venter specific Page 0xff01 and us
https://opensource.apple.com/source/IOHIDFamily/IOHIDFamily-606.1.7/IOHIDFamily/AppleHIDUsageTables.h
## Media control keys in Mac OSX
#### KC_MNXT and KC_MPRV does not work on Mac
## Media Control Keys in Mac OSX
#### KC_MNXT and KC_MPRV Does Not Work on Mac
Use `KC_MFFD`(`KC_MEDIA_FAST_FORWARD`) and `KC_MRWD`(`KC_MEDIA_REWIND`) instead of `KC_MNXT` and `KC_MPRV`.
See https://github.com/tmk/tmk_keyboard/issues/195
## Keys supported in Mac OSX?
## Keys Supported in Mac OSX?
You can know which keycodes are supported in OSX from this source code.
`usb_2_adb_keymap` array maps Keyboard/Keypad Page usages to ADB scancodes(OSX internal keycodes).
@@ -106,7 +115,7 @@ And `IOHIDConsumer::dispatchConsumerEvent` handles Consumer page usages.
https://opensource.apple.com/source/IOHIDFamily/IOHIDFamily-606.1.7/IOHIDFamily/IOHIDConsumer.cpp
## JIS keys in Mac OSX
## JIS Keys in Mac OSX
Japanese JIS keyboard specific keys like `無変換(Muhenkan)`, `変換(Henkan)`, `ひらがな(hiragana)` are not recognized on OSX. You can use **Seil** to enable those keys, try following options.
* Enable NFER Key on PC keyboard
@@ -116,23 +125,21 @@ Japanese JIS keyboard specific keys like `無変換(Muhenkan)`, `変換(Henkan)`
https://pqrs.org/osx/karabiner/seil.html
## RN-42 Bluetooth doesn't work with Karabiner
## RN-42 Bluetooth Doesn't Work with Karabiner
Karabiner - Keymapping tool on Mac OSX - ignores inputs from RN-42 module by default. You have to enable this option to make Karabiner working with your keyboard.
https://github.com/tekezo/Karabiner/issues/403#issuecomment-102559237
See these for the deail of this problem.
See these for the detail of this problem.
https://github.com/tmk/tmk_keyboard/issues/213
https://github.com/tekezo/Karabiner/issues/403
## Esc and `~ on a key
## Esc and <code>&#96;</code> on a Single Key
Use `GRAVE_ESC` or `KC_GESC` in your keymap. `GUI`+`GRAVE_ESC` results in `` ` `` and `SHIFT`+`GRAVE_ESC` results in `~`.
See the [Grave Escape](feature_grave_esc.md) feature.
Note that this will break the CTRL+SHIFT+ESC shortcut to the Windows task manager. Use `#define GRAVE_ESC_CTRL_OVERRIDE` in your `config.h` to get the shortcut back. With this option, `ESC_GRAVE` results in `ESC` if `CTRL` is held, even if `SHIFT` or `GUI` are also held.
## Arrow on Right Modifier keys with Dual-Role
This turns right modifer keys into arrow keys when the keys are tapped while still modifiers when the keys are hold. In TMK the dual-role function is dubbed **TAP**.
## Arrow on Right Modifier Keys with Dual-Role
This turns right modifier keys into arrow keys when the keys are tapped while still modifiers when the keys are hold. In TMK the dual-role function is dubbed **TAP**.
```
#include "keymap_common.h"
@@ -183,18 +190,18 @@ It seems Windows 10 ignores the code and Linux/Xorg recognizes but has no mappin
Not sure what keycode Eject is on genuine Apple keyboard actually. HHKB uses `F20` for Eject key(`Fn+f`) on Mac mode but this is not same as Apple Eject keycode probably.
## What's weak_mods and real_mods in action_util.c
## What's `weak_mods` and `real_mods` in `action_util.c`
___TO BE IMPROVED___
real_mods is intended to retains state of real/physical modifier key state, while
weak_mods retains state of virtual or temprary modifiers which should not affect state real modifier key.
weak_mods retains state of virtual or temporary modifiers which should not affect state real modifier key.
Let's say you hold down physical left shift key and type ACTION_MODS_KEY(LSHIFT, KC_A),
Let's say you hold down physical left shift key and type ACTION_MODS_KEY(LSHIFT, KC_A),
with weak_mods,
* (1) hold down left shift: real_mods |= MOD_BIT(LSHIFT)
* (2) press ACTION_MODS_KEY(LSHIFT, KC_A): weak_mods |= MOD_BIT(LSHIFT)
* (3) release ACTION_MODS_KEY(LSHIFT, KC_A): waek_mods &= ~MOD_BIT(LSHIFT)
* (3) release ACTION_MODS_KEY(LSHIFT, KC_A): weak_mods &= ~MOD_BIT(LSHIFT)
real_mods still keeps modifier state.
without weak mods,
@@ -206,7 +213,7 @@ here real_mods lost state for 'physical left shift'.
weak_mods is ORed with real_mods when keyboard report is sent.
https://github.com/tmk/tmk_core/blob/master/common/action_util.c#L57
## Timer functionality
## Timer Functionality
It's possible to start timers and read values for time-specific events - here's an example:

View File

@@ -13,11 +13,11 @@ People often define custom names using `#define`. For example:
This will allow you to use `FN_CAPS` and `ALT_TAB` in your `KEYMAP()`, keeping it more readable.
### Limits of these aliases
### Limits of These Aliases
Currently, the keycodes able to used with these functions are limited to the [Basic Keycodes](keycodes_basic.html), meaning you can't use keycodes like `KC_TILD`, or anything greater than 0xFF. For a full list of the keycodes able to be used see [Basic Keycodes](keycodes_basic.html).
Currently, the keycodes able to used with these functions are limited to the [Basic Keycodes](keycodes_basic.md), meaning you can't use keycodes like `KC_TILD`, or anything greater than 0xFF. For a full list of the keycodes able to be used see [Basic Keycodes](keycodes_basic.md).
# Switching and toggling layers
# Switching and Toggling Layers
These functions allow you to activate layers in various ways.
@@ -27,7 +27,7 @@ These functions allow you to activate layers in various ways.
* `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 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.
# Working With Layers
# Working with Layers
Care must be taken when switching layers, it's possible to lock yourself into a layer with no way to deactivate that layer (without unplugging your keyboard.) We've created some guidelines to help users avoid the most common problems.
@@ -41,7 +41,7 @@ If you are just getting started with QMK you will want to keep everything simple
### Intermediate Users
Sometimes you need more than one base layer. For example, if you want to switch between QWERTY and Dvorak, switch between layouts for different countries, or switch your layout for different videogames. Your base layers should always be the lowest numbered layers. When you have multiple base layers you should always treat them as mutually exclusive. When one base layer is on the others are off.
Sometimes you need more than one base layer. For example, if you want to switch between QWERTY and Dvorak, switch between layouts for different countries, or switch your layout for different videogames. Your base layers should always be the lowest numbered layers. When you have multiple base layers you should always treat them as mutually exclusive. When one base layer is on the others are off.
### Advanced Users
@@ -51,7 +51,7 @@ Layers stack on top of each other in numerical order. When determining what a ke
Sometimes, you might want to switch between layers in a macro or as part of a tap dance routine. `layer_on` activates a layer, and `layer_off` deactivates it. More layer-related functions can be found in [action_layer.h](../tmk_core/common/action_layer.h).
# Modifier keys
# Modifier Keys
These functions allow you to combine a mod with a keycode. When pressed the keydown for the mod will be sent first, and then *kc* will be sent. When released the keyup for *kc* will be sent and then the mod will be sent.
@@ -75,29 +75,29 @@ You can also chain these, like this:
The following shortcuts automatically add `LSFT()` to keycodes to get commonly used symbols.
|Name|Description|
|----|-----------|
| KC_TILD | ~ |
| KC_EXLM | ! |
| KC_QUES | ? |
| KC_AT | @ |
| KC_HASH | # |
| KC_DLR | $ |
| KC_PERC | % |
| KC_CIRC | ^ |
| KC_AMPR | & |
| KC_ASTR | * |
| KC_LPRN | ( |
| KC_RPRN | ) |
| KC_UNDS | _ |
| KC_PLUS | + |
| KC_DQUO | " |
| KC_LCBR | { |
| KC_RCBR | } |
| KC_LABK | < |
| KC_RABK | > |
| KC_PIPE | &#x7C; |
| KC_COLN | : |
|Key |Aliases |Description |
|------------------------|------------------|-------------------|
|`KC_TILDE` |`KC_TILD` |`~` |
|`KC_EXCLAIM` |`KC_EXLM` |`!` |
|`KC_AT` | |`@` |
|`KC_HASH` | |`#` |
|`KC_DOLLAR` |`KC_DLR` |`$` |
|`KC_PERCENT` |`KC_PERC` |`%` |
|`KC_CIRCUMFLEX` |`KC_CIRC` |`^` |
|`KC_AMPERSAND` |`KC_AMPR` |`&` |
|`KC_ASTERISK` |`KC_ASTR` |`*` |
|`KC_LEFT_PAREN` |`KC_LPRN` |`(` |
|`KC_RIGHT_PAREN` |`KC_RPRN` |`)` |
|`KC_UNDERSCORE` |`KC_UNDS` |`_` |
|`KC_PLUS` | |`+` |
|`KC_LEFT_CURLY_BRACE` |`KC_LCBR` |`{` |
|`KC_RIGHT_CURLY_BRACE` |`KC_RCBR` |`}` |
|`KC_PIPE` | |<code>&#124;</code>|
|`KC_COLON` |`KC_COLN` |`:` |
|`KC_DOUBLE_QUOTE` |`KC_DQT`/`KC_DQUO`|`"` |
|`KC_LEFT_ANGLE_BRACKET` |`KC_LT`/`KC_LABK` |`<` |
|`KC_RIGHT_ANGLE_BRACKET`|`KC_GT`/`KC_RABK` |`>` |
|`KC_QUESTION` |`KC_QUES` |`?` |
# Mod Tap
@@ -116,7 +116,7 @@ These are the values you can use for the `mod` in `MT()` and `OSM()`:
* MOD_HYPR
* MOD_MEH
These can also be combined like `MOD_LCTL | MOD_LSFT` e.g. `MT(MOD_LCTL | MOD_LSFT, KC_ESC)` which would activate Control and Shift when held, and send Escape when tapped. Note however, that you cannot mix right and left side modifiers.
These can also be combined like `MOD_LCTL | MOD_LSFT` e.g. `MT(MOD_LCTL | MOD_LSFT, KC_ESC)` which would activate Control and Shift when held, and send Escape when tapped.
We've added shortcuts to make common modifier/tap (mod-tap) mappings more compact:
@@ -129,9 +129,15 @@ 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.
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 %}
# One Shot Keys
One shot keys are keys that remain active until the next key is pressed, and then are releasd. This allows you to type keyboard combinations without pressing more than one key at a time.
One shot keys are keys that remain active until the next key is pressed, and then are released. This allows you to type keyboard combinations without pressing more than one key at a time. These keys are usually called "Sticky keys" or "Dead keys".
For example, if you define a key as `OSM(MOD_LSFT)`, you can type a capital A character by first pressing and releasing shift, and then pressing and releasing A. Your computer will see the shift key being held the moment shift is pressed, and it will see the shift key being released immediately after A is released.

View File

@@ -47,9 +47,9 @@ PLAY_LOOP(my_song);
It's advised that you wrap all audio features in `#ifdef AUDIO_ENABLE` / `#endif` to avoid causing problems when audio isn't built into the keyboard.
## Music mode
## Music Mode
The music mode maps your columns to a chromatic scale, and your rows to octaves. This works best with ortholinear keyboards, but can be made to work with others. All keycodes less than `0xFF` get blocked, so you won't type while playing notes - if you have special keys/mods, those will still work. A work-around for this is to jump to a different layer with KC_NOs before (or after) enabling music mode.
The music mode maps your columns to a chromatic scale, and your rows to octaves. This works best with ortholinear keyboards, but can be made to work with others. All keycodes less than `0xFF` get blocked, so you won't type while playing notes - if you have special keys/mods, those will still work. A work-around for this is to jump to a different layer with KC_NOs before (or after) enabling music mode.
Recording is experimental due to some memory issues - if you experience some weird behavior, unplugging/replugging your keyboard will fix things.
@@ -82,7 +82,11 @@ The pitch standard (`PITCH_STANDARD_A`) is 440.0f by default - to change this, a
#define PITCH_STANDARD_A 432.0f
## MIDI functionalty
You can completely disable Music Mode as well. This is useful, if you're pressed for space on your controller. To disable it, add this to your `config.h`:
#define NO_MUSIC_MODE
## 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

@@ -1,7 +1,7 @@
# Auto Shift: Why do we need a shift key?
# Auto Shift: Why Do We Need a Shift Key?
Tap a key and you get its character. Tap a key, but hold it *slightly* longer
and you get its shifted state. Viola! No shift key needed!
and you get its shifted state. Voilà! No shift key needed!
## Why Auto Shift?
@@ -10,7 +10,7 @@ fingers repetitively long distances. For us on the keyboard, the pinky does that
all too often when reaching for the shift key. Auto Shift looks to alleviate that
problem.
## How does it work?
## How Does It Work?
When you tap a key, it stays depressed for a short period of time before it is
then released. This depressed time is a different length for everyone. Auto Shift
@@ -20,7 +20,7 @@ when you release the key. If the time depressed is greater than or equal to the
`AUTO_SHIFT_TIMEOUT`, then a shifted version of the key is emitted. If the time
is less than the `AUTO_SHIFT_TIMEOUT` time, then the normal state is emitted.
## Are there limitations to Auto Shift?
## Are There Limitations to Auto Shift?
Yes, unfortunately.
@@ -38,7 +38,7 @@ Yes, unfortunately.
tapping the keys, but really we have held it for a little longer than
anticipated.
## How do I enable Auto Shift?
## How Do I Enable Auto Shift?
Add to your `rules.mk` in the keymap folder:
@@ -66,7 +66,7 @@ A sample is
#endif
### AUTO_SHIFT_TIMEOUT (value in ms)
### AUTO_SHIFT_TIMEOUT (Value in ms)
This controls how long you have to hold a key before you get the shifted state.
Obviously, this is different for everyone. For the common person, a setting of
@@ -75,7 +75,7 @@ is the default value. Then work down from there. The idea is to have the shortes
Play with this value until things are perfect. Many find that all will work well
at a given value, but one or two keys will still emit the shifted state on
occassion. This is simply due to habit and holding some keys a little longer
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.
@@ -86,7 +86,7 @@ quick. See "Auto Shift Setup" for more details!
### NO_AUTO_SHIFT_SPECIAL (simple define)
Do not Auto Shift special keys, which include -_, =+, [{, ]}, ;:, '", ,<, .>,
Do not Auto Shift special keys, which include -\_, =+, [{, ]}, ;:, '", ,<, .>,
and /?
### NO_AUTO_SHIFT_NUMERIC (simple define)
@@ -99,7 +99,7 @@ Do not Auto Shift alpha characters, which include A through Z.
## Using Auto Shift Setup
This will enable you to define three keys temporailiy to increase, decrease and report your `AUTO_SHIFT_TIMEOUT`.
This will enable you to define three keys temporarily to increase, decrease and report your `AUTO_SHIFT_TIMEOUT`.
### Setup
@@ -110,6 +110,9 @@ Map three keys temporarily in your keymap:
| KC_ASDN | Lower the Auto Shift timeout variable (down) |
| KC_ASUP | Raise the Auto Shift timeout variable (up) |
| KC_ASRP | Report your current Auto Shift timeout value |
| KC_ASON | Turns on the Auto Shift Function |
| KC_ASOFF | Turns off the Auto Shift Function |
| KC_ASTG | Toggles the statn of the Auto Shift feature |
Compile and upload your new firmware.
@@ -134,7 +137,7 @@ completely normal and with no intention of shifted keys.
9. Remove the key bindings `KC_ASDN`, `KC_ASUP` and `KC_ASRP`.
10. Compile and upload your new firmware.
#### An example run
#### An Example Run
hello world. my name is john doe. i am a computer programmer playing with
keyboards right now.
@@ -155,4 +158,4 @@ completely normal and with no intention of shifted keys.
The keyboard typed `115` which represents your current `AUTO_SHIFT_TIMEOUT`
value. You are now set! Practice on the *D* key a little bit that showed up
in the testing and you'll be golden.
in the testing and you'll be golden.

View File

@@ -6,12 +6,34 @@
These keycodes control the backlight. Most keyboards use this for single color in-switch lighting.
|Name|Description|
|----|-----------|
|`BL_x`|Set a specific backlight level between 0-9|
|`BL_ON`|An alias for `BL_9`|
|`BL_OFF`|An alias for `BL_0`|
|`BL_DEC`|Turn the backlight level down by 1|
|`BL_INC`|Turn the backlight level up by 1|
|`BL_TOGG`|Toggle the backlight on or off|
|`BL_STEP`|Step through backlight levels, wrapping around to 0 when you reach the top.|
|Key |Description |
|---------|------------------------------------------|
|`BL_TOGG`|Turn the backlight on or off |
|`BL_STEP`|Cycle through backlight levels |
|`BL_ON` |Set the backlight to max brightness |
|`BL_OFF` |Turn the backlight off |
|`BL_INC` |Increase the backlight level |
|`BL_DEC` |Decrease the backlight level |
|`BL_BRTG`|Toggle backlight breathing |
Note that for backlight breathing, you need to have `#define BACKLIGHT_BREATHING` in your config.h.
## Configuration Options in `config.h`
* `BACKLIGHT_PIN B7` defines the pin that controlls the LEDs. Unless you design your own keyboard, you don't need to set this.
* `BACKLIGHT_LEVELS 3` defines the number of brightness levels (maximum 15 excluding off).
* `BACKLIGHT_BREATHING` if defined, enables backlight breathing. Note that this is only available if `BACKLIGHT_PIN` is B5, B6 or B7.
* `BREATHING_PERIOD 6` defines the length of one backlight "breath" in seconds.
## Notes on Implementation
To change the brightness when using pins B5, B6 or B7, the PWM (Pulse Width Modulation) functionality of the on-chip timer is used.
The timer is a counter that counts up to a certain TOP value (`0xFFFF` set in ICR1) before resetting to 0.
We also set an OCR1x register.
When the counter reaches the value stored in that register, the PWM pin drops to low.
The PWM pin is pulled high again when the counter resets to 0.
Therefore, OCR1x basically sets the duty cycle of the LEDs and as such the brightness where `0` is the darkest and `0xFFFF` the brightest setting.
To enable the breathing effect, we register an interrupt handler to be called whenever the counter resets (with `ISR(TIMER1_OVF_vect)`).
In this handler, which gets called roughly 244 times per second, we compute the desired brightness using a precomputed brightness curve.
To disable breathing, we can just disable the respective interrupt vector and reset the brightness to the desired level.

View File

@@ -1,6 +1,6 @@
# Bluetooth
## Bluetooth functionality
## Bluetooth Functionality
This requires [some hardware changes](https://www.reddit.com/r/MechanicalKeyboards/comments/3psx0q/the_planck_keyboard_with_bluetooth_guide_and/?ref=search_posts), but can be enabled via the Makefile. The firmware will still output characters via USB, so be aware of this when charging via a computer. It would make sense to have a switch on the Bluefruit to turn it off at will.
@@ -10,8 +10,8 @@ This requires [some hardware changes](https://www.reddit.com/r/MechanicalKeyboar
This is used when multiple keyboard outputs can be selected. Currently this only allows for switching between USB and Bluetooth on keyboards that support both.
|Name|Description|
|----|-----------|
|`OUT_AUTO`|auto mode|
|`OUT_USB`|usb only|
|`OUT_BT`|bluetooth|
|Name |Description |
|----------|----------------------------------------------|
|`OUT_AUTO`|Automatically switch between USB and Bluetooth|
|`OUT_USB` |USB only |
|`OUT_BT` |Bluetooth only |

View File

@@ -1,29 +1,89 @@
# Bootmagic
# Bootmagic and Magic Keycodes
<!-- FIXME: Describe the bootmagic feature here. -->
There are 3 separate but related features that allow you to change the behavior of your keyboard without reflashing. While each of them have similar functionality you access that functionality in different ways depending on how your keyboard is configured.
## Bootmagic Keycodes
Bootmagic is a system for configuring your keyboard while it initializes. To trigger a Bootmagic command you hold down the bootmagic key (`KC_SPACE` on most keyboards) and one or more command keys.
Shortcuts for bootmagic options. You can use these even when bootmagic is off.
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.
|Name|Description|
|----|-----------|
|`MAGIC_SWAP_CONTROL_CAPSLOCK`|Swap Capslock and Left Control|
|`MAGIC_CAPSLOCK_TO_CONTROL`|Treat Capslock like a Control Key|
|`MAGIC_SWAP_LALT_LGUI`|Swap the left Alt and GUI keys|
|`MAGIC_SWAP_RALT_RGUI`|Swap the right Alt and GUI keys|
|`MAGIC_NO_GUI`|Disable the GUI key|
|`MAGIC_SWAP_GRAVE_ESC`|Swap the Grave and Esc key.|
|`MAGIC_SWAP_BACKSLASH_BACKSPACE`|Swap backslash and backspace|
|`MAGIC_HOST_NKRO`|Force NKRO on|
|`MAGIC_SWAP_ALT_GUI`/`AG_SWAP`|Swap Alt and Gui on both sides|
|`MAGIC_UNSWAP_CONTROL_CAPSLOCK`|Disable the Control/Capslock swap|
|`MAGIC_UNCAPSLOCK_TO_CONTROL`|Disable treating Capslock like Control |
|`MAGIC_UNSWAP_LALT_LGUI`|Disable Left Alt and GUI switching|
|`MAGIC_UNSWAP_RALT_RGUI`|Disable Right Alt and GUI switching|
|`MAGIC_UNNO_GUI`|Enable the GUI key |
|`MAGIC_UNSWAP_GRAVE_ESC`|Disable the Grave/Esc swap |
|`MAGIC_UNSWAP_BACKSLASH_BACKSPACE`|Disable the backslash/backspace swap|
|`MAGIC_UNHOST_NKRO`|Force NKRO off|
|`MAGIC_UNSWAP_ALT_GUI`/`AG_NORM`|Disable the Alt/GUI switching|
|`MAGIC_TOGGLE_NKRO`|Turn NKRO on or off|
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
Bootmagic is disabled by default. To use Bootmagic you need to enable it in your `rules.mk` file:
BOOTMAGIC_ENABLE = yes
## Bootmagic Hotkeys and Keycodes
This table describes the default Hotkeys for Bootmagic and the Keycodes for Magic. These may be overriden at the Keyboard or Keymap level. Some functionality is not available in both methods.
To use the Hotkey hold down `BOOTMAGIC_KEY_SALT` (`KC_SPACE` by default) and the Hotkey while plugging in your keyboard. To use the Keycode assign that keycode to a layer. For example, if you hold down Space+B while plugging in most keyboards, you will enter bootloader mode.
|Hotkey |Keycode |Description |
|-----------|----------------------------------|--------------------------------------------------------|
|`ESC` | |Skip bootmagic and saved eeprom configuration |
|`B` |`RESET` |Enter bootloader instead of firmware |
|`D` |`DEBUG` |Enable debugging (writes messages to serial) |
|`X` | |Enable matrix debugging |
|`K` | |Enable keyboard debugging |
|`M` | |Enable mouse debugging |
|`BACKSPACE`| |Clear the saved settings from flash |
|`CAPSLOCK` |`MAGIC_CAPSLOCK_TO_CONTROL` |Treat `Capslock` as `Control` |
| |`MAGIC_UNCAPSLOCK_TO_CONTROL` |Stop treating CapsLock as Control |
|`LCTRL` |`MAGIC_SWAP_CONTROL_CAPSLOCK` |Swap `Control` and `Capslock` |
| |`MAGIC_UNSWAP_CONTROL_CAPSLOCK` |Unswap Left Control and Caps Lock |
| |`MAGIC_SWAP_ALT_GUI` |Swap Alt and GUI on both sides |
| |`MAGIC_UNSWAP_ALT_GUI` |Unswap Left Alt and GUI |
|`LALT` |`MAGIC_SWAP_LALT_LGUI` |Swap Left `Alt` and `GUI`, e.g. for OSX Opt and Cmd |
| |`MAGIC_UNSWAP_LALT_LGUI` |Unswap Left Alt and GUI |
|`RALT` |`MAGIC_SWAP_RALT_RGUI` |Swap Right `Alt` and `GUI` |
| |`MAGIC_UNSWAP_RALT_RGUI` |Unswap Right Alt and GUI |
|`LGUI` |`MAGIC_NO_GUI` |Disable GUI key - e.g. disable Windows key during gaming|
| |`MAGIC_UNNO_GUI` |Enable the GUI key |
|`GRAVE` |`MAGIC_SWAP_GRAVE_ESC` |Swap `\`~` and `ESC` |
| |`MAGIC_UNSWAP_GRAVE_ESC` |Unswap `\`~` and Escape |
|`BACKSLASH`|`MAGIC_SWAP_BACKSLASH_BACKSPACE` |Swap Blackslash and Backspace |
| |`MAGIC_UNSWAP_BACKSLASH_BACKSPACE`|Unswap Backslash and Backspace |
|`N` |`MAGIC_HOST_NKRO` |Force N-Key Rollover (NKRO) on |
| |`MAGIC_UNHOST_NKRO` |Force NKRO off |
| |`MAGIC_TOGGLE_NKRO` |Toggle NKRO on or off |
|`0` |`DF(0)` |Make Layer 0 the default layer at bootup |
|`1` |`DF(1)` |Make Layer 1 the default layer at bootup |
|`2` |`DF(2)` |Make Layer 2 the default layer at bootup |
|`3` |`DF(3)` |Make Layer 3 the default layer at bootup |
|`4` |`DF(4)` |Make Layer 4 the default layer at bootup |
|`5` |`DF(5)` |Make Layer 5 the default layer at bootup |
|`6` |`DF(6)` |Make Layer 6 the default layer at bootup |
|`7` |`DF(7)` |Make Layer 7 the default layer at bootup |
## Bootmagic Configuration
When setting up your keyboard and/or keymap there are a number of `#define`s that control the behavior of Bootmagic. To use these put them in your `config.h`, either at the keyboard or keymap level.
|Define |Default|Description |
|-------|-------|------------|
|`BOOTMAGIC_KEY_SALT`|`KC_SPACE`|The key to hold down to trigger Bootmagic during initialization.|
|`BOOTMAGIC_KEY_SKIP`|`KC_ESC`|The Hotkey to ignore saved eeprom configuration.|
|`BOOTMAGIC_KEY_EEPROM_CLEAR`|`KC_BSPACE`|The hotkey to clear the saved eeprom configuration.|
|`BOOTMAGIC_KEY_BOOTLOADER`|`KC_B`|The hotkey to enter the bootloader.|
|`BOOTMAGIC_KEY_DEBUG_ENABLE`|`KC_D`|The hotkey to enable debug mode.|
|`BOOTMAGIC_KEY_DEBUG_MATRIX`|`KC_X`|The hotkey to enable matrix debugging mode.|
|`BOOTMAGIC_KEY_DEBUG_KEYBOARD`|`KC_K`|The hotkey to enable keyboard debugging mode.|
|`BOOTMAGIC_KEY_DEBUG_MOUSE`|`KC_M`|The hotkey to enable mouse debugging mode.|
|`BOOTMAGIC_KEY_SWAP_CONTROL_CAPSLOCK`|`KC_LCTRL`||
|`BOOTMAGIC_KEY_CAPSLOCK_TO_CONTROL`|`KC_CAPSLOCK`||
|`BOOTMAGIC_KEY_SWAP_LALT_LGUI`|`KC_LALT`||
|`BOOTMAGIC_KEY_SWAP_RALT_RGUI`|`KC_RALT`||
|`BOOTMAGIC_KEY_NO_GUI`|`KC_LGUI`||
|`BOOTMAGIC_KEY_SWAP_GRAVE_ESC`|`KC_GRAVE`||
|`BOOTMAGIC_KEY_SWAP_BACKSLASH_BACKSPACE`|`KC_BSLASH`||
|`BOOTMAGIC_HOST_NKRO`|`KC_N`||
|`BOOTMAGIC_KEY_DEFAULT_LAYER_0`|`KC_0`|Hotkey to set Layer 0 as the default layer|
|`BOOTMAGIC_KEY_DEFAULT_LAYER_1`|`KC_1`|Hotkey to set Layer 1 as the default layer|
|`BOOTMAGIC_KEY_DEFAULT_LAYER_2`|`KC_2`|Hotkey to set Layer 2 as the default layer|
|`BOOTMAGIC_KEY_DEFAULT_LAYER_3`|`KC_3`|Hotkey to set Layer 3 as the default layer|
|`BOOTMAGIC_KEY_DEFAULT_LAYER_4`|`KC_4`|Hotkey to set Layer 4 as the default layer|
|`BOOTMAGIC_KEY_DEFAULT_LAYER_5`|`KC_5`|Hotkey to set Layer 5 as the default layer|
|`BOOTMAGIC_KEY_DEFAULT_LAYER_6`|`KC_6`|Hotkey to set Layer 6 as the default layer|
|`BOOTMAGIC_KEY_DEFAULT_LAYER_7`|`KC_7`|Hotkey to set Layer 7 as the default layer|

52
docs/feature_command.md Normal file
View File

@@ -0,0 +1,52 @@
# Command (Formerly known as Magic)
Command is a way to change your keyboard's behavior without having to flash or unplug it to use [Bootmagic](feature_bootmagic.md). There is a lot of overlap between this functionality and the [Bootmagic Keycodes](feature_bootmagic.md). Whenever possible we encourage you to use that functionality instead of Command.
## Enabling Command
By default Command is disabled. You can enable it in your `rules.mk` file:
COMMAND_ENABLE = yes
## Usage
To use Command you hold down the key combination defined by `IS_COMMAND`. By default that combination is both shift keys. While holding the key combination press the key corresponding to the command you want.
For example, to write the current QMK version to the QMK Toolbox console, you can press `Left Shift`+`Right Shift`+`V`.
## Configuration
The following values can be defined in `config.h` to control the behavior of Command.
|Define |Default | Description |
|-------|--------|-------------|
|`IS_COMMAND()` |`(keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)))`|Key combination to activate Command|
|`MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS` |`true` |Do layer switching with Function row|
|`MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS` |`true` |Do layer switching with number keys.|
|`MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM`|`false` |Do layer switching with custom keys (`MAGIC_KEY_LAYER0..9` below.)|
|`MAGIC_KEY_HELP1` |`H` |Show help.|
|`MAGIC_KEY_HELP2` |`SLASH` |Show help.|
|`MAGIC_KEY_DEBUG` |`D` |Turn on debug mode.|
|`MAGIC_KEY_DEBUG_MATRIX` |`X` |Turn on matrix debugging.|
|`MAGIC_KEY_DEBUG_KBD` |`K` |Turn on keyboard debugging.|
|`MAGIC_KEY_DEBUG_MOUSE` |`M` |Turn on mouse debugging.|
|`MAGIC_KEY_VERSION` |`V` |Write the QMK version to the console|
|`MAGIC_KEY_STATUS` |`S` |Show the current keyboard status|
|`MAGIC_KEY_CONSOLE` |`C` |Enable the Command Console|
|`MAGIC_KEY_LAYER0_ALT1` |`ESC` |Alternate access to layer 0|
|`MAGIC_KEY_LAYER0_ALT2` |`GRAVE` |Alternate access to layer 0|
|`MAGIC_KEY_LAYER0` |`0` |Change default layer to 0|
|`MAGIC_KEY_LAYER1` |`1` |Change default layer to 1|
|`MAGIC_KEY_LAYER2` |`2` |Change default layer to 2|
|`MAGIC_KEY_LAYER3` |`3` |Change default layer to 3|
|`MAGIC_KEY_LAYER4` |`4` |Change default layer to 4|
|`MAGIC_KEY_LAYER5` |`5` |Change default layer to 5|
|`MAGIC_KEY_LAYER6` |`6` |Change default layer to 6|
|`MAGIC_KEY_LAYER7` |`7` |Change default layer to 7|
|`MAGIC_KEY_LAYER8` |`8` |Change default layer to 8|
|`MAGIC_KEY_LAYER9` |`9` |Change default layer to 9|
|`MAGIC_KEY_BOOTLOADER` |`PAUSE` |Exit keyboard and enter bootloader|
|`MAGIC_KEY_LOCK` |`CAPS` |Lock the keyboard so nothing can be typed|
|`MAGIC_KEY_EEPROM` |`E` |Erase EEPROM settings|
|`MAGIC_KEY_NKRO` |`N` |Toggle NKRO on/off|
|`MAGIC_KEY_SLEEP_LED` |`Z` |Toggle LED when computer is sleeping on/off|

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