Compare commits

..

322 Commits

Author SHA1 Message Date
6c81656e8e Merge pull request #1426 from rai-suta/master
Add JIS_KEYCODE layout for send_string()
2017-06-24 11:38:38 -04:00
5dae013ff8 Add JIS_KEYCODE layout for send_string() 2017-06-24 18:29:37 +09:00
c208a6d4e5 update docs for isp 2017-06-23 23:09:14 -04:00
b9987d65f9 Merge branch 'master' of https://github.com/qmk/qmk_firmware 2017-06-23 23:07:01 -04:00
2c65a17752 add other mcu bootloaders 2017-06-23 23:05:42 -04:00
dfa6417ae3 Merge pull request #1422 from nstickney/master
update ErgoDox "Familiar" layout
2017-06-23 21:48:17 -04:00
918aea5b47 Update _summary.md 2017-06-23 21:29:35 -04:00
b4f2f44a6f Create isp_flashing_guide.md 2017-06-23 21:29:04 -04:00
1524c2cb16 Merge pull request #1418 from npoirey/master
Frenchdev v1
2017-06-23 18:05:33 -04:00
8ad12b1eb7 Updated frenchdev readme 2017-06-23 23:59:30 +02:00
e43e58aad1 updated README.md 2017-06-23 16:28:06 -05:00
f4e4d6f8d0 Merge remote-tracking branch 'upstream/master' 2017-06-23 16:02:44 -05:00
37987837b1 added media keys; many bug fixes 2017-06-23 16:02:01 -05:00
a3f151b8e9 Refactoring frenchdev 2017-06-23 21:35:33 +02:00
de80e2c756 Moved frenchdev to handwired 2017-06-23 21:25:46 +02:00
a1ce43781a Merge pull request #1421 from 333fred/update-layout
Update my layout
2017-06-23 14:43:51 -04:00
91f3a73a28 Merge pull request #1419 from Wraul/phantom-improvements
Phantom improvements
2017-06-23 14:43:32 -04:00
6794495336 Doc updates 2017-06-23 11:36:14 -07:00
2b26abf9a9 Copy/paste additions. 2017-06-23 11:24:55 -07:00
946f4854c5 Added backlight control keys 2017-06-23 11:07:28 -07:00
a2fbd671ad Added a few more VS macros and another ctrl 2017-06-23 11:07:28 -07:00
7389beb18c Small keymap layout updates 2017-06-23 11:07:28 -07:00
dd9b00543b Update Phantom readme
Added basic description of the keyboard and some build and configuration
instructions.

Also moved the RGB underlight modification instructions to the readme.
2017-06-23 12:07:18 +02:00
7ca335cf5b Adjust Phantom for standard PCB
The previous default configuration and keymap was made for a Phantom
modified with RGB underlight.

This commit makes the default more in line with the "official"
configurations provided by the PCB.

The previous default have been moved to a separate keymap named
`rgbmod`. It has also been updated to better match the template keymap.
2017-06-23 12:07:18 +02:00
3522496f24 Update Phantom config to better match template 2017-06-23 12:07:18 +02:00
67b8bf8f70 Move Phantom LED handling to phantom.c
This is more in line with the structure provided by the keyboard
template.
2017-06-23 12:07:18 +02:00
98373f2fc1 added tapdance locking 2017-06-22 22:22:43 -05:00
a012c24225 Removed image from git and added references to imgur album for Frenchdev keyboard. 2017-06-22 22:19:50 +02:00
fa96d64f37 Merge remote-tracking branch 'upstream/master' 2017-06-22 13:06:30 -05:00
2b98ec67f3 Update _summary.md 2017-06-22 13:23:08 -04:00
7b3c9cc8de Create adding_a_keyboard_to_qmk.md 2017-06-22 13:22:21 -04:00
f32c68ee65 Update porting_your_keyboard_to_qmk.md 2017-06-22 13:21:43 -04:00
c21c2cc92b Merge pull request #1416 from geofflane/feature/s65_x_std_grv_esc
Use the new Quantum KC_GESC instead of custom code
2017-06-22 12:38:45 -04:00
fe9556104b Merge pull request #1331 from ariasuni/master
Fix undefined reference errors with avr-gcc 7.1
2017-06-22 08:40:59 -04:00
0fb835c54c Fix warning in frenchdev 2017-06-22 10:47:44 +02:00
23b0fc20e3 Frenchdev v1 2017-06-22 10:34:23 +02:00
9d22a1a6d8 add group edge via travis updates 2017-06-21 11:23:33 -04:00
8705ac408d Use the new Quantum KC_GESC instead of custom code 2017-06-21 09:37:20 -04:00
23df3016e8 Merge pull request #1405 from cquiroz/oneshot-mods-timeout
Oneshot mods timeout
2017-06-20 11:40:10 -04:00
9019d65b3c Merge pull request #1414 from dvdizon/kbd75
KBD75 - Initial KBD75 port from qmkeyboard.cn source files
2017-06-20 09:19:48 -04:00
2c171b3e5f Merge pull request #1413 from lasko/master
This is a complete redo of my keymap. It includes several
2017-06-20 09:18:02 -04:00
33a271b8e3 Merge pull request #1412 from nall/master
Fixed offset for knight rgb mode
2017-06-20 09:17:36 -04:00
e71b3c6572 KBD75 - Initial KBD75 port from qmkeyboard.cn source files 2017-06-19 22:59:17 -07:00
f169c715eb Added custom keymap and enabled Space Cadet 2017-06-19 22:44:42 -07:00
2ffcf47793 This is a complete redo of my keymap. It includes several
layers including qwerty, colemak, navigation, and gui layers.

I also was playing around with dancing tap keys.
2017-06-19 20:12:30 -07:00
7ce056cad7 Fixed offset for knight rgb mode 2017-06-19 19:51:37 -07:00
3e7bb19612 Merge pull request #1410 from belak/tv44-core
tv44: Add core layout based on the Core 47
2017-06-19 14:05:02 -04:00
e951317acb Merge pull request #1409 from fredizzimo/full_unit_test
Take first baby steps towards testing the whole QMK
2017-06-19 14:04:19 -04:00
f71c990215 tv44: Add core layout based on the Core 47 2017-06-18 22:44:52 -07:00
1aa0be4cf1 Fix serial_link vpath problem 2017-06-19 00:46:53 +03:00
0f163c0028 Add todo to timer.c 2017-06-19 00:24:32 +03:00
fb9b8dadb9 Add a couple of todos to keyboard_report_util.cpp
Also print the modifier state
2017-06-19 00:22:12 +03:00
43d8fa5bf1 More natural interface for setting keyboard leds 2017-06-19 00:19:09 +03:00
36f820be7e Add a test fixture
It only initializes QMK once, and clears the matrix after each test.
2017-06-18 23:49:38 +03:00
e85b185796 Test two keys pressed at once 2017-06-18 21:22:22 +03:00
6a76192fa4 Fix problems with undefined inlines in debug mode 2017-06-18 21:22:22 +03:00
bd1729d5be Actually test for correct key presses 2017-06-18 21:22:22 +03:00
fb95d86b39 Move functions for adding keys from to reports to report.h 2017-06-18 21:22:22 +03:00
017458a07b Move functionality from action_util to report
The functions also takes report_kebyoard_t parameters, so that they can
be used elsewhere.
2017-06-18 21:22:22 +03:00
c38589d861 Fix the order of init and driver creation 2017-06-18 21:22:22 +03:00
3bb0586acc Add a couple of basic tests and implement driver mock 2017-06-18 21:22:22 +03:00
617578399c Add keymap 2017-06-18 21:22:22 +03:00
c588fca06c Empty bootloader_jump 2017-06-18 21:22:22 +03:00
a72e8f0865 Dummy test matrix implementation 2017-06-18 21:22:22 +03:00
1c0fe956ac Split common.mk into common.mk and common_features.mk
To support including keyboard/keymap specific rules before it
2017-06-18 21:22:22 +03:00
d29906cb64 Emulate eeprom 2017-06-18 21:10:42 +03:00
f646f00b93 Rename native to test 2017-06-18 21:10:42 +03:00
83509adc3a Add empty timer functions 2017-06-18 21:10:42 +03:00
26eb97a4a8 Empty implementation of bootloader, suspend and timer 2017-06-18 21:10:42 +03:00
fdfd48e8c8 Fix program mem functionality 2017-06-18 21:10:42 +03:00
efaf0e830b Empty implementation of wait 2017-06-18 21:10:42 +03:00
585d646128 Define MATRIX_COLS and MATRIX_ROWS 2017-06-18 21:10:42 +03:00
8674f9c466 Make sure config.h is included 2017-06-18 21:10:42 +03:00
7424261dae Try to build tmk_common 2017-06-18 21:10:42 +03:00
30f22d450d Add basic infrastrucure for building full tests 2017-06-18 21:08:23 +03:00
621ae42a6c revert edit 2017-06-18 13:28:34 -04:00
4217cb5bbc Update key_functions.md 2017-06-18 13:26:20 -04:00
517f75d893 Merge pull request #1349 from jpetermans/infinity60
Infinity60 backlight support
2017-06-18 12:38:38 -04:00
dd73e14c9b Merge pull request #1407 from take-a-CHANCE/master
Adding a planck keymap
2017-06-18 12:35:08 -04:00
66e2d6a063 Merge pull request #1406 from jprMesh/atreus52
Atreus52
2017-06-18 12:34:33 -04:00
f2e1609801 remove hardware files, move arrow pad 2017-06-18 12:33:14 -04:00
74d752b531 Remove noisy debug line 2017-06-18 12:17:51 -04:00
3ab0f4d9e5 Deactivate oneshot mods once timedout 2017-06-18 12:17:51 -04:00
5682254f71 Merge pull request #1408 from fredizzimo/fix_build_improve_travis
Fix the two failing keymaps and improve the travis build script
2017-06-18 12:13:56 -04:00
45d437ca04 Make only modified keymaps 2017-06-18 18:30:59 +03:00
51a86b85f3 Merge pull request #1361 from fredizzimo/ergodox_infinity_backlight
Add Ergodox Infinity backlight support
2017-06-18 10:15:02 -04:00
2fd670bec0 Add missing include to Ergodox Belak keymap 2017-06-18 17:07:20 +03:00
6ba22b5f5e Don't define RGBLED_NUM in let-split khord keymap
It's already defined correctly by the parent keyboard project, and was
causing problems for rev1, where the pin is different.
2017-06-18 17:03:07 +03:00
a15510b57b Always build everything on master 2017-06-18 17:03:05 +03:00
5acc0e54aa Make all subprojects when a keymap is modified 2017-06-18 16:44:51 +03:00
1a8042ae91 Added personal keymap with underglow, right shift, numpad, and bright hidden behind raise/lower 2017-06-17 23:11:37 -04:00
a284245f77 Atreus52- moved parens and braces to left hand. 2017-06-17 22:51:50 -04:00
85d688e92c Atreus52- made dvorak layer default. 2017-06-17 21:21:46 -04:00
4c2f04986a Atreus52- added software reset key. 2017-06-17 21:21:38 -04:00
3007d01718 Atreus52- Modified BDO map. 2017-06-17 21:21:30 -04:00
3b9fabb9aa Atreus52- BDO keymap. 2017-06-17 21:21:21 -04:00
a8992a2cfe Atreus52- Added Nav layer keymap. 2017-06-17 21:20:16 -04:00
7837d96b6e Atreus52- Reworked keymap to be more 40% like. 2017-06-17 21:20:09 -04:00
56026dd4df Atreus52- Swapped thumb keys. 2017-06-17 21:19:59 -04:00
1552fd6ae1 Atreus52- Last changes to config to get it workin. 2017-06-17 21:19:48 -04:00
133908da74 Atreus52- Some keymap changes. 2017-06-17 21:19:45 -04:00
3c2c489768 Atreus52- Fixed spacing and changed to KC_KEYMAP macro. 2017-06-17 21:19:36 -04:00
b236e51b69 Atreus52- finished initial keymap layout. 2017-06-17 21:19:29 -04:00
17e81baab3 Atreus52- Fixed config. 2017-06-17 21:19:18 -04:00
f9eb11a674 Atreus52- Fixed Qwerty Dvorak switch 2017-06-17 21:18:58 -04:00
bb99d7117c Atreus52- Changed to KEYMAP macro format. 2017-06-17 21:18:40 -04:00
a5ba30338f Atreus52- Initial Atreus52 file creation. 2017-06-17 21:18:04 -04:00
7feadbd66d Merge pull request #1401 from geofflane/s65_x_fixes3
S65-X Fixes Part 3
2017-06-17 20:14:49 -04:00
206233d98c Merge pull request #1402 from belak/tv44-belak-tap-magic
tv44: Rearrange belak keymap and add some tap dance magic
2017-06-17 20:14:23 -04:00
82372d36af Merge pull request #1403 from Wraul/kmac-fixes
KMAC fixes
2017-06-17 20:14:05 -04:00
df26ede131 Unify KMAC code indentation
It's a little unclear what the style guidelines are for the QMK project.
But I figured that I should at least keep the indentation consistent
within the KMAC part.
2017-06-17 20:06:28 +02:00
67e150a08a Enable backlight support by default for KMAC 2017-06-17 20:06:28 +02:00
ba945c5e77 Correct layer switching in KMAC keymap readmes 2017-06-17 20:06:28 +02:00
be002137f9 Fix some KMAC code formating 2017-06-17 20:06:28 +02:00
a621c7f88b Don't include the console by default on the KMAC 2017-06-17 20:06:28 +02:00
722adce095 tv44: Rearrange belak keymap and add some tap dance magic 2017-06-16 17:08:00 -07:00
98316ef017 Added Grave Escape (#1391)
* added QK_GRAVE_ESC and KC_GESC

* fixed name

* Fixed keycode emnu

* Removed layer check, added left and right GUI mod detection for OSX GUI+~
2017-06-16 14:56:50 -07:00
ff2b01da49 Merge pull request #1400 from belak/belak-ergodox-theme
ergodox: initial addition of belak theme
2017-06-16 17:01:54 -04:00
6549e169f8 Merge pull request #1398 from belak/tv44-keymap-changes
TV44 keymap changes
2017-06-16 17:00:36 -04:00
e9a4a5e961 tv44: add belak keymap 2017-06-16 13:11:40 -07:00
ef4abfeb31 ergodox: initial addition of belak theme
Imported from external repo https://github.com/belak/ergodox-layout at commit
233008ad8c46a85cb118fca0be093c3e751075b0
2017-06-16 10:57:58 -07:00
b4802d7567 Fix home and end to be on <> 2017-06-16 11:57:43 -04:00
d2a11b523b LED control on the BL layer 2017-06-15 21:57:50 -04:00
086aad0d7e Make sure backlight is in the range 0-100 2017-06-16 02:06:30 +03:00
ec88a0b3cc Make sure that the backlight level is within the right range 2017-06-16 02:05:38 +03:00
7d5606085f Correctly calculate backlight level 2017-06-16 02:05:15 +03:00
19f0285a76 Fix typo in BACKLIGHT_ENABLE 2017-06-15 23:21:01 +03:00
29108d1477 tv44: update tong92 keymap to use KEYMAP macro 2017-06-15 12:48:59 -07:00
4cefb45a2d tv44: update xyverz keymap to use KEYMAP macro 2017-06-15 12:48:44 -07:00
f894103997 tv44: update default keymap to use KEYMAP macro 2017-06-15 12:47:57 -07:00
b56a9a9899 tv44: update jeebak keymap to use new macros and remove custom ones 2017-06-15 12:46:25 -07:00
e32e7dc0f5 tv44: update smt keymap to use new macros and remove custom ones 2017-06-15 12:45:53 -07:00
44ce179192 tv44: Fix up the KEYMAP macro
Previously KEYMAP referred to the KEYMAP_ARROW layout and had 45 keys. It makes
more sense for the default keymap to be the 44 key layout, as is implied by the
name.

Additionally keymaps for all other known layouts have been added:

KEYMAP - base layout
KEYMAP_ARROW - additional key in bottom right
KEYMAP_COMMAND - additional key in bottom left
KEYMAP_ARROW_COMMAND - combination of KEYMAP_ARROW and KEYMAP_COMMAND
2017-06-15 12:42:23 -07:00
d9ffd77ee7 Merge pull request #1397 from geofflane/s65x_fixes
S65x fixes
2017-06-15 15:16:52 -04:00
e553bb3af4 LED init works with just pin declared 2017-06-15 13:42:14 -04:00
b107d64d69 Use standard QMK key codes for RGB control 2017-06-15 13:12:36 -04:00
c81be932d2 Fix left shift in ansi layout 2017-06-15 13:12:36 -04:00
899584187f Fix esc key 2017-06-15 13:12:36 -04:00
6a75a7d672 Merge pull request #1394 from Khord/master
Adding custom keymap for Let's Split and updates to custom Planck keymap
2017-06-15 12:34:18 -04:00
be9fd4b4fa Merge pull request #1396 from shieldsd/master
Minor updates to planck/keymaps/dshields
2017-06-15 12:33:44 -04:00
cc158d90ae Minor updates to planck/keymaps/dshields
* tweaks to tap dance keys
* tidy up code
* save a few bytes
2017-06-15 09:41:59 +01:00
5c11ba74d8 tap dance and hold changes to make planck match lets split 2017-06-15 03:34:08 -04:00
a44ba492ea minor fixes 2017-06-15 03:26:04 -04:00
22f985eba7 Add custom let's split keymap 2017-06-15 07:15:27 +00:00
49cfdb544d Added HyperTab and Ctrl/Fn as well as Space cadet parens (#1390)
* Added HyperTab and Ctrl/Escape as well as Space cadet parens to magicmonty keymap

* Replaced CTL_ESC With FN_ESC
2017-06-14 07:20:43 -07:00
3aa620c1ac Update uGFX and Chibios submodules + fixes (#1363)
* Make submodules point to qmk

* Update uGFX to 2.7

* Use ugfx with custom fixes

* Fix the ChibiOs submodule commit hash

To match the hashes in the mabl/ChibiOS and therefore QMK repository.
2017-06-13 21:13:39 -07:00
c2c9cb2505 Merge pull request #1392 from jetpacktuxedo/whitefox
Added whitefox keymap
2017-06-13 22:21:52 -04:00
a7942c4f48 Added whitefox keymap 2017-06-13 16:01:28 -07:00
3d5d3e1b0c Merge pull request #1387 from antelaurijssen/master
Submitting my own custom layout for S60X keyboard
2017-06-12 20:47:35 -04:00
f37daa5343 Properly formatted unordered lists in readme.md 2017-06-12 20:24:56 -04:00
3ee346c07b Mods to readme.md 2017-06-12 20:20:28 -04:00
78a4cfd453 Modifications to readme.md and deletion of keyboard layout images 2017-06-12 20:13:17 -04:00
6b5d67fcc6 Merge pull request #1389 from geofflane/keyboard_s65_x_2
Keyboard S65-X Support #2
2017-06-12 17:08:27 -04:00
d1854e0e04 Merge pull request #1388 from bigbigtor/fix_spanish
Fix spanish keymap
2017-06-12 17:06:11 -04:00
0440c0f072 Add ISO layout for S65-X 2017-06-12 16:57:01 -04:00
568c662c14 Fix media controls in default layout 2017-06-12 16:19:57 -04:00
96b0382fb4 Fix backslash and some of the docs 2017-06-12 16:16:42 -04:00
21fa16651c Rename ES_RCRB to ES_RCBR for consistency reasons (left curly bracket is defined as ES_LCBR) 2017-06-12 21:44:40 +02:00
2c404cca12 Fix keymap definitions referencing inexistent macros 2017-06-12 21:43:34 +02:00
a5b5279da9 Add MIDI layer to magicmonty keymap (#1386)
* Add MIDI layer

* Respect brightness level on layer signalling

* Add hotkey in control layer for signalling state

* Update layout.png

* Remove image and replace it with imgur link
2017-06-12 08:48:01 -07:00
52f6bc164e Merge pull request #1385 from qmk/ez-images
Remove images and old .hex files
2017-06-11 22:50:40 -04:00
23c448b21d remove .hex, .PNG, .jpg 2017-06-11 22:16:42 -04:00
a7ce482d14 remove the rest of the .pngs 2017-06-11 21:24:23 -04:00
54d48140cd -MIDI Chords now using process_record_user instead of F(n) keys
-Morse Code shift keys implemented
2017-06-11 16:00:40 -04:00
c02f9a6ee4 remove most .pngs 2017-06-11 15:36:28 -04:00
6bd4df7a90 define limits to functions 2017-06-11 14:28:30 -04:00
c22a400603 Merge pull request #1384 from geofflane/keyboard_s65x
Support Sentraq S65-X
2017-06-10 22:18:17 -04:00
b1e01e9d1f Support Sentraq S65-X
Add initial support for ANSI layout of S65-X.
Includes support for controlling RGB underlighting.
2017-06-10 21:09:38 -04:00
b721779241 Merge pull request #1383 from qmk/deleting-files
Deleting uppercase docs files
2017-06-10 15:14:17 -04:00
06f0f92c1a Delete VAGRANT_GUIDE.md 2017-06-10 15:13:24 -04:00
7921834663 Delete USB_NKRO.txt 2017-06-10 15:13:15 -04:00
d942389e11 Delete TMK_README.md 2017-06-10 15:13:07 -04:00
3df614c942 Delete POWER.txt 2017-06-10 15:12:59 -04:00
08fdced65f Delete PCB_GUIDE.md 2017-06-10 15:12:52 -04:00
de4a38ab1b Delete Macros.md 2017-06-10 15:12:45 -04:00
ceb7a63c68 Delete Kiibohd.asciidoc 2017-06-10 15:12:39 -04:00
656744e7dd Delete Keymap.md 2017-06-10 15:12:32 -04:00
6442822efd Delete Keycodes.md 2017-06-10 15:12:20 -04:00
f320ac4bc6 Delete Home.md 2017-06-10 15:12:12 -04:00
ee595965ae Delete HAND_WIRE.md 2017-06-10 15:12:04 -04:00
4de370ccc3 Delete FUSE.txt 2017-06-10 15:11:53 -04:00
4092e45b6b Delete FAQ.md 2017-06-10 15:11:36 -04:00
296e8669f3 Delete Embedding.md 2017-06-10 15:11:26 -04:00
fa6044ab1d Delete Eclipse.md 2017-06-10 15:11:18 -04:00
401aab7d5a Delete CYGWIN_GUIDE.md 2017-06-10 15:11:02 -04:00
5e9d5a0a75 Delete BUILD_GUIDE.md 2017-06-10 15:10:44 -04:00
995c3141a6 convert docs to lowercase and underscores 2017-06-10 14:58:55 -04:00
ca01d94005 convert docs to lowercase and underscores 2017-06-10 14:58:24 -04:00
558db0e03f remove leading slash 2017-06-10 12:28:37 -04:00
2508b9b6e2 Merge pull request #1380 from qmk/improve_macro_docs
Clean up and improve the macro documentation
2017-06-10 12:27:05 -04:00
43b6179feb Merge branch 'master' into improve_macro_docs 2017-06-10 12:26:57 -04:00
163754f363 Create Home.md 2017-06-10 12:26:09 -04:00
ad49086be5 Create SUMMARY.md 2017-06-10 12:25:04 -04:00
2f942c9883 Create Custom-Quantum-Functions.md 2017-06-10 12:23:04 -04:00
1da0a19177 make searchable 2017-06-10 12:18:49 -04:00
d81135410c Merge pull request #1382 from binaryplease/handwired_binaryplease
Handwired binaryplease
2017-06-09 21:09:52 -04:00
1502c9c935 put colemak and qwert switching on the top right 2017-06-10 02:44:28 +02:00
0c1dc91d74 removed swapping keys in adjust layer 2017-06-10 02:42:27 +02:00
e3f657dfeb commented out unused layers 2017-06-10 02:01:51 +02:00
5801a1f8af update music docs 2017-06-09 16:42:30 -04:00
a0ac0d3cea Move Dynamic Macros into their own file 2017-06-09 12:25:12 -07:00
767bcac23c Clean up and improve the macro documentation 2017-06-09 11:47:53 -07:00
d2aec1625d removes some images 2017-06-09 14:05:33 -04:00
728f2f8d00 Merge pull request #1378 from nicinabox/fix-ls-avrdude
Let's Split avrdude portability fix
2017-06-09 10:35:33 -04:00
fc39a288ed remove mechmini keymap from ps2avrGB 2017-06-09 10:25:20 -04:00
8c4a59611a due diligence, etc 2017-06-09 10:22:58 -04:00
3b38e6954a Use single brackets for portability with other shells 2017-06-09 09:14:44 -05:00
9ac2ed280c move mechmini to own folder 2017-06-09 10:11:34 -04:00
2a667eba2a Cleanup the Clueboard readme files. 2017-06-08 20:42:37 -07:00
d9f95c5da9 Docfix (#1377)
* SCKLCK is now SCROLLLOCK

Yes, with all three Ls
At least it doesn't have a random K anymore lol

* Removed strange mystery trailing numbers in the docs
2017-06-08 20:05:55 -07:00
481797f92f Documents permissive hold 2017-06-08 23:00:28 -04:00
e4eb4eaa16 Fix layer LED signalling in magicmonty keymap (#1373)
* Fix layer LED signalling in magicmonty keymap

* Include the breathing modes in layer signalling

* Reverts mode to 1 as the other modes flicker

* Add Cursor keys on VIM positions and PAUSE to function layer
2017-06-08 19:55:34 -07:00
e82c089b4c SCKLCK is now SCROLLLOCK (#1376)
Yes, with all three Ls
At least it doesn't have a random K anymore lol
2017-06-08 19:54:49 -07:00
a3385b7a2f Merge pull request #1375 from Wraul/kmac
Add support for KMAC
2017-06-08 16:42:05 -04:00
1b02b2006e Add support for KMAC 2017-06-08 19:35:27 +02:00
4b50ab029d Revert "ugly workaround for ErgoDoxEZ LED bugs: turn 'em all off"
This reverts commit f397402e101774eedd1748b1e31c7386f927d4ed.
2017-06-08 08:59:33 -05:00
5a70cb30ee trying to fix LEDs 2017-06-08 08:59:30 -05:00
3af2bca1fc Merge remote-tracking branch 'upstream/master' 2017-06-08 08:52:32 -05:00
7146dfea6e Created special shift keys for Morse layer that change variable value, enabling to send “shifted” special morse code characters. 2017-06-07 23:57:14 -04:00
8f80f35186 Working on Morse Code Macros 2017-06-07 22:01:28 -04:00
00d9416626 Merge pull request #1372 from chilifries/master
Added support for Mechmini v1
2017-06-07 21:10:45 -04:00
c9e0068cf2 Added support for Mechmini v1 2017-06-07 16:24:40 -07:00
84012d8243 Merge pull request #1359 from agbell/PR
Permissive Hold, and two keymaps
2017-06-07 18:47:29 -04:00
035f7bb1bf Merge remote-tracking branch 'upstream/master' 2017-06-07 15:55:52 -05:00
8cc0035ea0 Add new keyboard layout for the ClueBoard (#1371) 2017-06-07 08:18:26 -07:00
5d83d320cb Merge pull request #1366 from abperiasamy/refine-layout
Replace enter with quote and few reorgs
2017-06-06 12:35:26 -04:00
05b0075391 Merge pull request #1368 from shieldsd/master
Additional tap dance keys/functions for planck/keymap/dshields
2017-06-06 12:35:04 -04:00
ad7a5bdc4f Additional tap dance keys/functions for planck/keymap/dshields 2017-06-06 13:09:55 +01:00
1b8ed53f21 Added a couple of custom keys and updated layer image 2017-06-05 22:17:35 -04:00
5e18e4ab48 update docs link 2017-06-05 16:25:59 -04:00
b51a0db6ed Add backlight support to the default Ergodox Infinity animations 2017-06-03 22:04:10 +03:00
0db6ac46aa remove build stuff 2017-06-03 14:32:02 -04:00
2a7f9a7e46 Add backlight control to the IS31FL3731 driver 2017-06-03 21:30:52 +03:00
effffa33a5 Backlight level handling for the visualizer 2017-06-03 21:14:26 +03:00
4ab61344f5 Adding permissive_hold 2017-06-03 10:28:46 -04:00
587b0de6e5 adding lets split keymap 2017-06-03 10:28:46 -04:00
82de4d039d Ergodox Adam keymap 2017-06-03 10:28:36 -04:00
6d6dee2956 Adding docker compose 2017-06-03 09:32:44 -04:00
0f9bfafb9e Turn off LED matrix by default 2017-06-03 15:31:02 +03:00
a916f4e8b8 Let BACKLIGHT_ENABLE control the Infinity LEDs 2017-06-03 14:34:50 +03:00
9cfa37bb3d Improvements and corrections to morse code macros layer 2017-06-02 22:57:57 -04:00
f397402e10 ugly workaround for ErgoDoxEZ LED bugs: turn 'em all off 2017-06-02 20:02:02 -05:00
4cf17210b6 moved alt out from under space 2017-06-02 19:51:29 -05:00
4ba9917f82 Merge remote-tracking branch 'upstream/master' 2017-06-02 19:50:54 -05:00
aaa67f6930 Merge pull request #1357 from shieldsd/gherkin
Initial commit for gherkin keyboard support. Compiles but untested.
2017-06-02 10:23:54 -04:00
7cbd16c902 Initial commit for gherkin keyboard support. Compiles but untested. 2017-06-02 14:45:42 +01:00
eefec19ad9 Update Keycodes.md 2017-06-02 09:44:08 -04:00
af931368ce Merge pull request #1356 from fabienheureux/patch-1
Broken Keymap docs link
2017-06-02 09:21:15 -04:00
47c209fa02 Update Keycodes.md 2017-06-02 09:21:01 -04:00
19816a4998 Broken Keymap docs link 2017-06-02 10:51:12 +02:00
9069edd934 Merge pull request #1347 from nooges/nyquist
Add Nyquist keyboard support
2017-06-01 12:58:33 -04:00
aae727d9ec Update keymap layout comments 2017-06-01 11:15:21 -04:00
db82b17d6e Remove OLED code and set I2C rate back to 100kHz 2017-06-01 01:26:06 -04:00
9af272e4bb Update lock led processing and remove debug msgs 2017-05-30 21:52:44 -07:00
fbaf964a85 Improvements to Midi and keymap 2017-05-30 21:27:00 -04:00
7a433a7f3d Update copyright info 2017-05-30 16:52:02 -04:00
fbec02c148 Remove Let’s Split plate files 2017-05-30 16:42:04 -04:00
be204f9cdd Update readme 2017-05-30 13:29:30 -04:00
06684555d2 Another typo... 2017-05-29 22:16:17 -04:00
cd4ccee703 Corrected typo in readme.md 2017-05-29 22:13:52 -04:00
1ef911d150 Added a few images 2017-05-29 22:11:48 -04:00
4c48c29c0e Added MIDI_CHORD layer and other little fixes.
Updated readme.md
2017-05-29 22:09:06 -04:00
4a8da0cb45 Modify pinout and layouts for Nyquist 2017-05-29 16:20:06 -04:00
aeade1b197 Fork Let’s Split files 2017-05-29 16:04:46 -04:00
3ea5726739 redefined options in config.h 2017-05-29 13:53:13 +02:00
a83662329d overwriting optins in makefile and configuration 2017-05-29 01:28:18 +02:00
64e4c47ae4 disabled backlight and audio 2017-05-29 01:14:25 +02:00
58af88eb51 copied default planck keymap to handwired_binaryplease; 2017-05-29 00:52:38 +02:00
a584675735 Midi Chord Function is now working! But some chords lag... 2017-05-28 08:14:17 -04:00
e87691fa5d Fix undefined reference errors with avr-gcc 7.1 2017-05-27 00:25:35 +02:00
6b1f707ce9 Still working on these MIDI CHORDS! 2017-05-26 09:54:40 -04:00
b4b06f81b5 More changes to keymap.c to try and get midi chords to work 2017-05-25 23:03:33 -04:00
ac97870801 reduce recurring writes to lock leds 2017-05-25 13:00:21 -07:00
1a0dfbbc96 More updates to keymap.c - still errors with midi when trying to compile 2017-05-24 21:15:41 -04:00
083267680d Restore deleted MEMO.txt from master 2017-05-24 12:26:56 -07:00
e6c9b07e1c Merge branch 'user_led_configuration' into infinity60
Conflicts:
	keyboards/infinity60/keymaps/jpetermans/keymap.c
2017-05-24 12:07:18 -07:00
2dcd6c38fa Merge remote-tracking branch 'upstream/master' into infinity60 2017-05-24 11:51:20 -07:00
f54b4771eb keymap example update and tweak to set_led_bit function 2017-05-24 11:20:50 -07:00
4d783d0e69 More work on my keymap.c and added .png images of my different layers. 2017-05-22 23:30:25 -04:00
06433eb1a0 More work on keymap.c and config.h 2017-05-21 22:37:20 -04:00
34a1bf9e20 Merge https://github.com/qmk/qmk_firmware
Update my qmk_firmware fork
2017-05-21 08:44:52 -04:00
b766407cbe Continuing work on keymap.c 2017-05-21 08:40:42 -04:00
c686793b59 Merge https://github.com/qmk/qmk_firmware
Update from QMK main
2017-05-17 23:06:57 -04:00
26c6f6a85c Added Space Cadet Rollover Disable to config.h 2017-05-16 22:08:45 -04:00
814b570ba1 Working on keymap.c file... 2017-05-15 22:56:33 -04:00
ee0b34feaf Started working on custom midi chord function 2017-05-14 20:07:35 -04:00
f006ebebbd Initial push of my keymap 2017-05-14 16:07:44 -04:00
164a6c994b reorder mailbox msg data; formatting 2017-05-10 15:53:59 -07:00
a144968807 remove breath functions from keymap 2017-05-08 16:38:44 -07:00
16774333ad last readme fix 2017-05-08 16:28:04 -07:00
5fc5661147 third readme fix attempt 2017-05-08 16:19:11 -07:00
d1ff2bb9db readme fix 2017-05-08 16:17:40 -07:00
821f72eae9 documentation cleanup 2017-05-08 16:15:20 -07:00
b5675e2025 Merge branch 'user_led_configuration' of https://github.com/jpetermans/qmk_firmware into user_led_configuration
Conflicts:
	keyboards/infinity60/led_controller.c
	keyboards/infinity60/led_controller.h
2017-05-08 15:42:27 -07:00
967cf0f6d4 Merge remote-tracking branch 'upstream/master' into user_led_configuration 2017-05-08 15:24:50 -07:00
5df74f3ba7 updated keymap for new led functions 2017-05-08 15:13:02 -07:00
f1d81d2cc6 minor change on lock leds 2017-05-08 14:55:57 -07:00
2c5b551970 CLeaned out debug code 2017-05-08 14:35:08 -07:00
52f671c23e small code cleanup 2017-05-08 11:57:40 -07:00
b27fb216ef Testing initial blink support 2017-04-30 16:27:46 -07:00
ff6beeb7a3 simplified lock led function 2017-04-29 09:22:40 -07:00
b3945c103c Simplified processing in led_controller; more control at user level. 2017-04-26 23:12:25 -07:00
8665ed3efc small changes 2017-04-18 09:46:07 -05:00
046f1baf30 more stable lock led process, added debugging code 2017-04-15 14:37:55 -07:00
c0ec1756af Added backlight step functionality 2017-04-14 18:20:12 -07:00
ec1e936dfb fixed bit shift in led_set_bit 2017-04-13 17:51:37 -07:00
1b1adf35bb more flexible led processing functions, all and on/off/toggle
functioning
2017-04-13 17:15:24 -07:00
15635817b5 Updated lock led init 2017-04-12 23:32:38 -07:00
0881f2dbfa fixed write_led_page col shift, added option for lock led display 2017-04-11 23:33:48 -07:00
d8e9c183be led init code missing pwm writes for Frame 1 2017-04-10 22:23:45 -07:00
dda858c437 revised led controller code to allow for more options
unable to switch picture displays
2017-04-10 17:36:47 -07:00
a2ac883779 add ability to toggle individual led by address 2017-04-07 15:58:17 -07:00
af13e9a12d Moved led page arrays to keymap.c and added keymap header to define
individual led addresses
2017-04-06 16:27:51 -07:00
d89114400c Small keymap tweak and clean up. 2017-04-06 15:22:13 -07:00
56be300757 Add Kinetis_i2c settings consistent with whitefox mcuconf 2017-04-06 14:23:14 -07:00
91f2e9fb5e match hal settings to whitefox, fix make rules 2017-04-06 13:53:18 -07:00
02ef122cbb Add led_controller.h to user keymap.c 2017-04-06 13:51:33 -07:00
f66361d678 add led init function to header for use in keymap.c 2017-04-06 13:48:31 -07:00
da4c2d2e3e Adjust led_controller.c matrix sttings and init function 2017-04-06 13:46:54 -07:00
b73c935d36 Added tmk whitefox led files 2017-04-06 13:45:15 -07:00
dfb0a512a0 Added personal configs and keymap to infinity60/keymaps 2017-04-06 13:43:22 -07:00
b20106d238 Replace enter with quote and few reorgs 2017-03-08 01:12:12 -08:00
559 changed files with 16611 additions and 26108 deletions

5
.gitignore vendored
View File

@ -34,3 +34,8 @@ CMakeLists.txt
util/Win_Check_Output.txt
.vscode
.stfolder
# ignore image files
*.png
*.jpg
*.gif

6
.gitmodules vendored
View File

@ -1,12 +1,12 @@
[submodule "lib/chibios"]
path = lib/chibios
url = https://github.com/ChibiOS/ChibiOS.git
url = https://github.com/qmk/ChibiOS
[submodule "lib/chibios-contrib"]
path = lib/chibios-contrib
url = https://github.com/ChibiOS/ChibiOS-Contrib.git
url = https://github.com/qmk/ChibiOS-Contrib
[submodule "lib/ugfx"]
path = lib/ugfx
url = https://bitbucket.org/Tectu/ugfx
url = https://github.com/qmk/uGFX
[submodule "lib/googletest"]
path = lib/googletest
url = https://github.com/google/googletest

View File

@ -1,6 +1,7 @@
os: linux
dist: trusty
sudo: required
group: edge
language: c
branches:
except:

View File

@ -15,6 +15,8 @@ RUN apt-get update && apt-get install --no-install-recommends -y build-essential
binutils-arm-none-eabi \
libnewlib-arm-none-eabi \
git \
software-properties-common \
avrdude \
&& rm -rf /var/lib/apt/lists/*
ENV keyboard=ergodox
@ -23,4 +25,4 @@ ENV keymap=default
VOLUME /qmk
WORKDIR /qmk
CMD make clean ; make keyboard=${keyboard} subproject=${subproject} keymap=${keymap}
CMD make clean; make;

View File

@ -419,7 +419,7 @@ define BUILD_TEST
MAKE_TARGET := $2
COMMAND := $1
MAKE_CMD := $$(MAKE) -r -R -C $(ROOT_DIR) -f build_test.mk $$(MAKE_TARGET)
MAKE_VARS := TEST=$$(TEST_NAME)
MAKE_VARS := TEST=$$(TEST_NAME) FULL_TESTS=$$(FULL_TESTS)
MAKE_MSG := $$(MSG_MAKE_TEST)
$$(eval $$(call BUILD))
ifneq ($$(MAKE_TARGET),clean)

View File

@ -1,6 +1,7 @@
{
"structure": {
"readme": "Home.md"
"readme": "home.md",
"summary": "_summary.md"
},
"plugins" : ["toolbar", "edit-link", "anchors"],
"pluginsConfig": {

30
build_full_test.mk Normal file
View File

@ -0,0 +1,30 @@
# Copyright 2017 Fred Sundvik
#
# 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/>.
#include $(TMK_PATH)/protocol.mk
TEST_PATH=tests/$(TEST)
$(TEST)_SRC= \
$(TEST_PATH)/test.cpp \
$(TMK_COMMON_SRC) \
$(QUANTUM_SRC) \
tests/test_common/matrix.c \
tests/test_common/test_driver.cpp \
tests/test_common/keyboard_report_util.cpp \
tests/test_common/test_fixture.cpp
$(TEST)_DEFS=$(TMK_COMMON_DEFS)
$(TEST)_CONFIG=$(TEST_PATH)/config.h
VPATH+=$(TOP_DIR)/tests/test_common

View File

@ -31,8 +31,6 @@ $(error MASTER does not have a valid value(left/right))
endif
endif
KEYBOARD_PATH := keyboards/$(KEYBOARD)
KEYBOARD_C := $(KEYBOARD_PATH)/$(KEYBOARD).c
@ -42,7 +40,6 @@ else
$(error "$(KEYBOARD_C)" does not exist)
endif
ifneq ($(SUBPROJECT),)
SUBPROJECT_PATH := keyboards/$(KEYBOARD)/$(SUBPROJECT)
SUBPROJECT_C := $(SUBPROJECT_PATH)/$(SUBPROJECT).c
@ -118,139 +115,12 @@ endif
# # project specific files
SRC += $(KEYBOARD_C) \
$(KEYMAP_C) \
$(QUANTUM_DIR)/quantum.c \
$(QUANTUM_DIR)/keymap_common.c \
$(QUANTUM_DIR)/keycode_config.c \
$(QUANTUM_DIR)/process_keycode/process_leader.c
$(QUANTUM_SRC)
ifneq ($(SUBPROJECT),)
SRC += $(SUBPROJECT_C)
endif
ifndef CUSTOM_MATRIX
SRC += $(QUANTUM_DIR)/matrix.c
endif
ifeq ($(strip $(API_SYSEX_ENABLE)), yes)
OPT_DEFS += -DAPI_SYSEX_ENABLE
SRC += $(QUANTUM_DIR)/api/api_sysex.c
OPT_DEFS += -DAPI_ENABLE
SRC += $(QUANTUM_DIR)/api.c
MIDI_ENABLE=yes
endif
MUSIC_ENABLE := 0
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
SRC += $(QUANTUM_DIR)/audio/voices.c
SRC += $(QUANTUM_DIR)/audio/luts.c
endif
ifeq ($(strip $(MIDI_ENABLE)), yes)
OPT_DEFS += -DMIDI_ENABLE
MUSIC_ENABLE := 1
SRC += $(QUANTUM_DIR)/process_keycode/process_midi.c
endif
ifeq ($(MUSIC_ENABLE), 1)
SRC += $(QUANTUM_DIR)/process_keycode/process_music.c
endif
ifeq ($(strip $(COMBO_ENABLE)), yes)
OPT_DEFS += -DCOMBO_ENABLE
SRC += $(QUANTUM_DIR)/process_keycode/process_combo.c
endif
ifeq ($(strip $(VIRTSER_ENABLE)), yes)
OPT_DEFS += -DVIRTSER_ENABLE
endif
ifeq ($(strip $(FAUXCLICKY_ENABLE)), yes)
OPT_DEFS += -DFAUXCLICKY_ENABLE
SRC += $(QUANTUM_DIR)/fauxclicky.c
endif
ifeq ($(strip $(UCIS_ENABLE)), yes)
OPT_DEFS += -DUCIS_ENABLE
UNICODE_COMMON = yes
SRC += $(QUANTUM_DIR)/process_keycode/process_ucis.c
endif
ifeq ($(strip $(UNICODEMAP_ENABLE)), yes)
OPT_DEFS += -DUNICODEMAP_ENABLE
UNICODE_COMMON = yes
SRC += $(QUANTUM_DIR)/process_keycode/process_unicodemap.c
endif
ifeq ($(strip $(UNICODE_ENABLE)), yes)
OPT_DEFS += -DUNICODE_ENABLE
UNICODE_COMMON = yes
SRC += $(QUANTUM_DIR)/process_keycode/process_unicode.c
endif
ifeq ($(strip $(UNICODE_COMMON)), yes)
SRC += $(QUANTUM_DIR)/process_keycode/process_unicode_common.c
endif
ifeq ($(strip $(RGBLIGHT_ENABLE)), yes)
OPT_DEFS += -DRGBLIGHT_ENABLE
SRC += $(QUANTUM_DIR)/light_ws2812.c
SRC += $(QUANTUM_DIR)/rgblight.c
CIE1931_CURVE = yes
LED_BREATHING_TABLE = yes
endif
ifeq ($(strip $(TAP_DANCE_ENABLE)), yes)
OPT_DEFS += -DTAP_DANCE_ENABLE
SRC += $(QUANTUM_DIR)/process_keycode/process_tap_dance.c
endif
ifeq ($(strip $(PRINTING_ENABLE)), yes)
OPT_DEFS += -DPRINTING_ENABLE
SRC += $(QUANTUM_DIR)/process_keycode/process_printer.c
SRC += $(TMK_DIR)/protocol/serial_uart.c
endif
ifeq ($(strip $(SERIAL_LINK_ENABLE)), yes)
SRC += $(patsubst $(QUANTUM_PATH)/%,%,$(SERIAL_SRC))
OPT_DEFS += $(SERIAL_DEFS)
VAPTH += $(SERIAL_PATH)
endif
ifneq ($(strip $(VARIABLE_TRACE)),)
SRC += $(QUANTUM_DIR)/variable_trace.c
OPT_DEFS += -DNUM_TRACED_VARIABLES=$(strip $(VARIABLE_TRACE))
ifneq ($(strip $(MAX_VARIABLE_TRACE_SIZE)),)
OPT_DEFS += -DMAX_VARIABLE_TRACE_SIZE=$(strip $(MAX_VARIABLE_TRACE_SIZE))
endif
endif
ifeq ($(strip $(LCD_ENABLE)), yes)
CIE1931_CURVE = yes
endif
ifeq ($(strip $(LED_ENABLE)), yes)
CIE1931_CURVE = yes
endif
ifeq ($(strip $(CIE1931_CURVE)), yes)
OPT_DEFS += -DUSE_CIE1931_CURVE
LED_TABLES = yes
endif
ifeq ($(strip $(LED_BREATHING_TABLE)), yes)
OPT_DEFS += -DUSE_LED_BREATHING_TABLE
LED_TABLES = yes
endif
ifeq ($(strip $(LED_TABLES)), yes)
SRC += $(QUANTUM_DIR)/led_tables.c
endif
# Optimize size but this may cause error "relocation truncated to fit"
#EXTRALDFLAGS = -Wl,--relax
@ -262,9 +132,10 @@ endif
VPATH += $(KEYBOARD_PATH)
VPATH += $(COMMON_VPATH)
include common_features.mk
include $(TMK_PATH)/protocol.mk
include $(TMK_PATH)/common.mk
SRC += $(TMK_COMMON_SRC)
OPT_DEFS += $(TMK_COMMON_DEFS)
EXTRALDFLAGS += $(TMK_COMMON_LDFLAGS)

View File

@ -40,13 +40,23 @@ VPATH +=\
all: elf
VPATH += $(COMMON_VPATH)
PLATFORM:=TEST
ifneq ($(filter $(FULL_TESTS),$(TEST)),)
include tests/$(TEST)/rules.mk
endif
include common_features.mk
include $(TMK_PATH)/common.mk
include $(QUANTUM_PATH)/serial_link/tests/rules.mk
ifneq ($(filter $(FULL_TESTS),$(TEST)),)
include build_full_test.mk
endif
$(TEST_OBJ)/$(TEST)_SRC := $($(TEST)_SRC)
$(TEST_OBJ)/$(TEST)_INC := $($(TEST)_INC) $(VPATH) $(GTEST_INC)
$(TEST_OBJ)/$(TEST)_DEFS := $($(TEST)_DEFS)
$(TEST_OBJ)/$(TEST)_CONFIG := $($(TEST)_CONFIG)
include $(TMK_PATH)/native.mk
include $(TMK_PATH)/rules.mk

View File

@ -11,17 +11,10 @@ QUANTUM_PATH = $(TOP_DIR)/$(QUANTUM_DIR)
BUILD_DIR := $(TOP_DIR)/.build
SERIAL_DIR := $(QUANTUM_DIR)/serial_link
SERIAL_PATH := $(QUANTUM_PATH)/serial_link
SERIAL_SRC := $(wildcard $(SERIAL_PATH)/protocol/*.c)
SERIAL_SRC += $(wildcard $(SERIAL_PATH)/system/*.c)
SERIAL_DEFS += -DSERIAL_LINK_ENABLE
COMMON_VPATH := $(TOP_DIR)
COMMON_VPATH += $(TMK_PATH)
COMMON_VPATH += $(QUANTUM_PATH)
COMMON_VPATH += $(QUANTUM_PATH)/keymap_extras
COMMON_VPATH += $(QUANTUM_PATH)/audio
COMMON_VPATH += $(QUANTUM_PATH)/process_keycode
COMMON_VPATH += $(QUANTUM_PATH)/api
COMMON_VPATH += $(SERIAL_PATH)
COMMON_VPATH += $(QUANTUM_PATH)/api

153
common_features.mk Normal file
View File

@ -0,0 +1,153 @@
# Copyright 2017 Fred Sundvik
#
# 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/>.
SERIAL_DIR := $(QUANTUM_DIR)/serial_link
SERIAL_PATH := $(QUANTUM_PATH)/serial_link
SERIAL_SRC := $(wildcard $(SERIAL_PATH)/protocol/*.c)
SERIAL_SRC += $(wildcard $(SERIAL_PATH)/system/*.c)
SERIAL_DEFS += -DSERIAL_LINK_ENABLE
COMMON_VPATH += $(SERIAL_PATH)
ifeq ($(strip $(API_SYSEX_ENABLE)), yes)
OPT_DEFS += -DAPI_SYSEX_ENABLE
SRC += $(QUANTUM_DIR)/api/api_sysex.c
OPT_DEFS += -DAPI_ENABLE
SRC += $(QUANTUM_DIR)/api.c
MIDI_ENABLE=yes
endif
MUSIC_ENABLE := 0
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
SRC += $(QUANTUM_DIR)/audio/voices.c
SRC += $(QUANTUM_DIR)/audio/luts.c
endif
ifeq ($(strip $(MIDI_ENABLE)), yes)
OPT_DEFS += -DMIDI_ENABLE
MUSIC_ENABLE := 1
SRC += $(QUANTUM_DIR)/process_keycode/process_midi.c
endif
ifeq ($(MUSIC_ENABLE), 1)
SRC += $(QUANTUM_DIR)/process_keycode/process_music.c
endif
ifeq ($(strip $(COMBO_ENABLE)), yes)
OPT_DEFS += -DCOMBO_ENABLE
SRC += $(QUANTUM_DIR)/process_keycode/process_combo.c
endif
ifeq ($(strip $(VIRTSER_ENABLE)), yes)
OPT_DEFS += -DVIRTSER_ENABLE
endif
ifeq ($(strip $(FAUXCLICKY_ENABLE)), yes)
OPT_DEFS += -DFAUXCLICKY_ENABLE
SRC += $(QUANTUM_DIR)/fauxclicky.c
endif
ifeq ($(strip $(UCIS_ENABLE)), yes)
OPT_DEFS += -DUCIS_ENABLE
UNICODE_COMMON = yes
SRC += $(QUANTUM_DIR)/process_keycode/process_ucis.c
endif
ifeq ($(strip $(UNICODEMAP_ENABLE)), yes)
OPT_DEFS += -DUNICODEMAP_ENABLE
UNICODE_COMMON = yes
SRC += $(QUANTUM_DIR)/process_keycode/process_unicodemap.c
endif
ifeq ($(strip $(UNICODE_ENABLE)), yes)
OPT_DEFS += -DUNICODE_ENABLE
UNICODE_COMMON = yes
SRC += $(QUANTUM_DIR)/process_keycode/process_unicode.c
endif
ifeq ($(strip $(UNICODE_COMMON)), yes)
SRC += $(QUANTUM_DIR)/process_keycode/process_unicode_common.c
endif
ifeq ($(strip $(RGBLIGHT_ENABLE)), yes)
OPT_DEFS += -DRGBLIGHT_ENABLE
SRC += $(QUANTUM_DIR)/light_ws2812.c
SRC += $(QUANTUM_DIR)/rgblight.c
CIE1931_CURVE = yes
LED_BREATHING_TABLE = yes
endif
ifeq ($(strip $(TAP_DANCE_ENABLE)), yes)
OPT_DEFS += -DTAP_DANCE_ENABLE
SRC += $(QUANTUM_DIR)/process_keycode/process_tap_dance.c
endif
ifeq ($(strip $(PRINTING_ENABLE)), yes)
OPT_DEFS += -DPRINTING_ENABLE
SRC += $(QUANTUM_DIR)/process_keycode/process_printer.c
SRC += $(TMK_DIR)/protocol/serial_uart.c
endif
ifeq ($(strip $(SERIAL_LINK_ENABLE)), yes)
SRC += $(patsubst $(QUANTUM_PATH)/%,%,$(SERIAL_SRC))
OPT_DEFS += $(SERIAL_DEFS)
VAPTH += $(SERIAL_PATH)
endif
ifneq ($(strip $(VARIABLE_TRACE)),)
SRC += $(QUANTUM_DIR)/variable_trace.c
OPT_DEFS += -DNUM_TRACED_VARIABLES=$(strip $(VARIABLE_TRACE))
ifneq ($(strip $(MAX_VARIABLE_TRACE_SIZE)),)
OPT_DEFS += -DMAX_VARIABLE_TRACE_SIZE=$(strip $(MAX_VARIABLE_TRACE_SIZE))
endif
endif
ifeq ($(strip $(LCD_ENABLE)), yes)
CIE1931_CURVE = yes
endif
ifeq ($(strip $(BACKLIGHT_ENABLE)), yes)
ifeq ($(strip $(VISUALIZER_ENABLE)), yes)
CIE1931_CURVE = yes
endif
endif
ifeq ($(strip $(CIE1931_CURVE)), yes)
OPT_DEFS += -DUSE_CIE1931_CURVE
LED_TABLES = yes
endif
ifeq ($(strip $(LED_BREATHING_TABLE)), yes)
OPT_DEFS += -DUSE_LED_BREATHING_TABLE
LED_TABLES = yes
endif
ifeq ($(strip $(LED_TABLES)), yes)
SRC += $(QUANTUM_DIR)/led_tables.c
endif
QUANTUM_SRC:= \
$(QUANTUM_DIR)/quantum.c \
$(QUANTUM_DIR)/keymap_common.c \
$(QUANTUM_DIR)/keycode_config.c \
$(QUANTUM_DIR)/process_keycode/process_leader.c
ifndef CUSTOM_MATRIX
QUANTUM_SRC += $(QUANTUM_DIR)/matrix.c
endif

View File

@ -1,215 +0,0 @@
# Macro shortcuts: Send a whole string when pressing just one key
Instead of using the `ACTION_MACRO` function, you can simply use `M(n)` to access macro *n* - *n* will get passed into the `action_get_macro` as the `id`, and you can use a switch statement to trigger it. This gets called on the keydown and keyup, so you'll need to use an if statement testing `record->event.pressed` (see keymap_default.c).
```c
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) // this is the function signature -- just copy/paste it into your keymap file as it is.
{
switch(id) {
case 0: // this would trigger when you hit a key mapped as M(0)
if (record->event.pressed) {
return MACRO( I(255), T(H), T(E), T(L), T(L), W(255), T(O), END ); // this sends the string 'hello' when the macro executes
}
break;
}
return MACRO_NONE;
};
```
A macro can include the following commands:
* I() change interval of stroke in milliseconds.
* D() press key.
* U() release key.
* T() type key(press and release).
* W() wait (milliseconds).
* END end mark.
So above you can see the stroke interval changed to 255ms between each keystroke, then a bunch of keys being typed, waits a while, then the macro ends.
Note: Using macros to have your keyboard send passwords for you is possible, but a bad idea.
## Advanced macro functions
To get more control over the keys/actions your keyboard takes, the following functions are available to you in the `action_get_macro` function block:
* `record->event.pressed`
This is a boolean value that can be tested to see if the switch is being pressed or released. An example of this is
```c
if (record->event.pressed) {
// on keydown
} else {
// on keyup
}
```
* `register_code(<kc>);`
This sends the `<kc>` keydown event to the computer. Some examples would be `KC_ESC`, `KC_C`, `KC_4`, and even modifiers such as `KC_LSFT` and `KC_LGUI`.
* `unregister_code(<kc>);`
Parallel to `register_code` function, this sends the `<kc>` keyup event to the computer. If you don't use this, the key will be held down until it's sent.
* `layer_on(<n>);`
This will turn on the layer `<n>` - the higher layer number will always take priority. Make sure you have `KC_TRNS` for the key you're pressing on the layer you're switching to, or you'll get stick there unless you have another plan.
* `layer_off(<n>);`
This will turn off the layer `<n>`.
* `clear_keyboard();`
This will clear all mods and keys currently pressed.
* `clear_mods();`
This will clear all mods currently pressed.
* `clear_keyboard_but_mods();`
This will clear all keys besides the mods currently pressed.
* `update_tri_layer(layer_1, layer_2, layer_3);`
If the user attempts to activate layer 1 AND layer 2 at the same time (for example, by hitting their respective layer keys), layer 3 will be activated. Layers 1 and 2 will _also_ be activated, for the purposes of fallbacks (so a given key will fall back from 3 to 2, to 1 -- and only then to 0).
### Naming your macros
If you have a bunch of macros you want to refer to from your keymap, while keeping the keymap easily readable, you can just name them like so:
```
#define AUD_OFF M(6)
#define AUD_ON M(7)
#define MUS_OFF M(8)
#define MUS_ON M(9)
#define VC_IN M(10)
#define VC_DE M(11)
#define PLOVER M(12)
#define EXT_PLV M(13)
```
As was done on the [Planck default keymap](https://github.com/qmk/qmk_firmware/blob/master/keyboards/planck/keymaps/default/keymap.c#L33-L40)
#### Timer functionality
It's possible to start timers and read values for time-specific events - here's an example:
```c
static uint16_t key_timer;
key_timer = timer_read();
if (timer_elapsed(key_timer) < 100) {
// do something if less than 100ms have passed
} else {
// do something if 100ms or more have passed
}
```
It's best to declare the `static uint16_t key_timer;` outside of the macro block (top of file, etc).
### Example: Single-key copy/paste (hold to copy, tap to paste)
With QMK, it's easy to make one key do two things, as long as one of those things is being a modifier. :) So if you want a key to act as Ctrl when held and send the letter R when tapped, that's easy: `CTL_T(KC_R)`. But what do you do when you want that key to send Ctrl-V (paste) when tapped, and Ctrl-C (copy) when held?
Here's what you do:
```
static uint16_t key_timer;
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
switch(id) {
case 0: {
if (record->event.pressed) {
key_timer = timer_read(); // if the key is being pressed, we start the timer.
}
else { // this means the key was just released, so we can figure out how long it was pressed for (tap or "held down").
if (timer_elapsed(key_timer) > 150) { // 150 being 150ms, the threshhold we pick for counting something as a tap.
return MACRO( D(LCTL), T(C), U(LCTL), END );
}
else {
return MACRO( D(LCTL), T(V), U(LCTL), END );
}
}
break;
}
}
return MACRO_NONE;
};
```
And then, to assign this macro to a key on your keyboard layout, you just use `M(0)` on the key you want to press for copy/paste.
# Dynamic macros: record and replay macros in runtime
In addition to the static macros described above, you may enable the dynamic macros which you may record while writing. They are forgotten as soon as the keyboard is unplugged. Only two such macros may be stored at the same time, with the total length of 64 keypresses (by default).
To enable them, first add a new element to the `planck_keycodes` enum — `DYNAMIC_MACRO_RANGE`:
enum planck_keycodes {
QWERTY = SAFE_RANGE,
COLEMAK,
DVORAK,
PLOVER,
LOWER,
RAISE,
BACKLIT,
EXT_PLV,
DYNAMIC_MACRO_RANGE,
};
It must be the last element because `dynamic_macros.h` will add some more keycodes after it.
Below it include the `dynamic_macro.h` header:
#include "dynamic_macro.h"`
Add the following keys to your keymap:
- `DYN_REC_START1` — start recording the macro 1,
- `DYN_REC_START2` — start recording the macro 2,
- `DYN_MACRO_PLAY1` — replay the macro 1,
- `DYN_MACRO_PLAY2` — replay the macro 2,
- `DYN_REC_STOP` — finish the macro that is currently being recorded.
Add the following code to the very beginning of your `process_record_user()` function:
if (!process_record_dynamic_macro(keycode, record)) {
return false;
}
That should be everything necessary. To start recording the macro, press either `DYN_REC_START1` or `DYN_REC_START2`. To finish the recording, press the `DYN_REC_STOP` layer button. To replay the macro, press either `DYN_MACRO_PLAY1` or `DYN_MACRO_PLAY2`.
Note that it's possible to replay a macro as part of a macro. It's ok to replay macro 2 while recording macro 1 and vice versa but never create recursive macros i.e. macro 1 that replays macro 1. If you do so and the keyboard will get unresponsive, unplug the keyboard and plug it again.
For users of the earlier versions of dynamic macros: It is still possible to finish the macro recording using just the layer modifier used to access the dynamic macro keys, without a dedicated `DYN_REC_STOP` key. If you want this behavior back, use the following snippet instead of the one above:
uint16_t macro_kc = (keycode == MO(_DYN) ? DYN_REC_STOP : keycode);
if (!process_record_dynamic_macro(macro_kc, record)) {
return false;
}
If the LED-s start blinking during the recording with each keypress, it means there is no more space for the macro in the macro buffer. To fit the macro in, either make the other macro shorter (they share the same buffer) or increase the buffer size by setting the `DYNAMIC_MACRO_SIZE` preprocessor macro (default value: 128; please read the comments for it in the header).
For the details about the internals of the dynamic macros, please read the comments in the `dynamic_macro.h` header.
# Sending strings
Some people want to have a password or some text on a key. This is possible without having to do every key individually using `SEND_STRING("<text>");`. Note the caps, because `send_string("<text>");` does something else. For example:
```c
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) // this is the function signature -- just copy/paste it into your keymap file as it is.
{
switch(id) {
case 0: // this would trigger when you hit a key mapped as M(0)
if (record->event.pressed) {
SEND_STRING("QMK is the best thing ever!"); // This would type "QMK is the best thing ever!" (without quotation marks).
return false; // This is false because it has to return something.
}
break;
}
return MACRO_NONE;
};
```
If you'd want it to press enter as well, just replace `return false;` with `return MACRO( T(ENT), END );`.

View File

@ -1,62 +0,0 @@
Keyboard Firmware Projects other than TMK
================================
## PJRC USB Keyboard/Mouse Example[USB][PJRC][Teensy][AVR]
- <http://www.pjrc.com/teensy/usb_keyboard.html>
- <http://www.pjrc.com/teensy/usb_mouse.html>
## kbupgrade[USB][V-USB][AVR]
- <http://github.com/rhomann/kbupgrade>
- <http://geekhack.org/showwiki.php?title=Island:8406>
## c64key[USB][V-USB][AVR]
- <http://symlink.dk/projects/c64key/>
## rump[USB][V-USB][AVR]
- <http://mg8.org/rump/>
- <http://github.com/clee/rump>
## dulcimer[USB][V-USB][AVR]
- <http://www.schatenseite.de/dulcimer.html>
## humblehacker-keyboard[USB][LUFA][AVR][Ergo]
- <http://github.com/humblehacker>
- <http://www.humblehacker.com/keyboard/>
- <http://geekhack.org/showwiki.php?title=Island:6292>
## ps2avr[PS/2][AVR]
- <http://sourceforge.net/projects/ps2avr/>
## ErgoDox[Ergo][Split][USB][AVR]
- <http://geekhack.org/index.php?topic=22780.0>
- <https://github.com/benblazak/ergodox-firmware>
- <https://github.com/cub-uanic/tmk_keyboard>
## Suka's keyboard collection[Ergo][Split][3DPrinting][USB][AVR]
- <http://deskthority.net/workshop-f7/my-diy-keyboard-collection-or-how-i-became-a-kb-geek-t2534.html>
- <https://github.com/frobiac/adnw>
## bpiphany's AVR-Keyboard[PJRC][AVR][USB]
- <https://github.com/BathroomEpiphanies/AVR-Keyboard>
- <http://deskthority.net/wiki/HID_Liberation_Device_-_DIY_Instructions>
- <http://deskthority.net/wiki/Phantom>
## USB-USB keyboard remapper[converter][USB-USB][AVR][Arduino]
- <http://forum.colemak.com/viewtopic.php?pid=10837>
- <https://github.com/darkytoothpaste/keymapper>
## USB-USB converter threads[converter][USB-USB]
- <http://deskthority.net/workshop-f7/is-remapping-a-usb-keyboard-using-teensy-possible-t2841-30.html>
- <http://geekhack.org/index.php?topic=19458.0>
## kbdbabel.org[converter][vintage][protocol][8051]
Great resource of vintage keyboard protocol information and code
- <http://www.kbdbabel.org/>
## Haata's kiibohd Controller[converter][vintage][protocol][AVR][PJRC][Cortex]
A lots of vintage keyboard protocol supports
- <https://github.com/kiibohd/controller>
## Kinesis ergonomic keyboard firmware replacement[V-USB][LUFA][Ergo]
- <https://github.com/chrisandreae/kinesis-firmware>

View File

@ -1,26 +0,0 @@
### Getting started
* [Introduction](/Home.md)
* [QMK Overview](/QMK-Overview.md)
* [Build Environment Setup](/Build-Environment-Setup.md)
### Making a keymap
* [Keymap overview](/Keymap.md)
* [Keycodes](/Keycodes.md)
* [Layer switching](/Key-Functions.md)
* [Leader Key](/Leader-Key.md)
* [Macros](/Macros.md)
* [Space Cadet](/Space-Cadet-Shift.md)
* [Tap Dance](/Tap-Dance.md)
* [Mouse keys](/Mouse-keys.md)
* [FAQ: Creating a Keymap](/FAQ-Keymap.md)
* [FAQ: Compiling QMK](/FAQ-Build.md)
### For hardware makers and modders
* [Modding your keyboard](/Modding-your-keyboard.md)
* [Porting your keyboard to QMK](/Porting-your-keyboard-to-QMK.md)
* [Adding features to QMK](/Adding-features-to-QMK.md)
### Other topics
* [General FAQ](/FAQ.md)
* [Differences from TMK](/Differences-from-TMK.md)

View File

@ -1,21 +0,0 @@
* [Wiki Home](/qmk/qmk_firmware/wiki)
* Getting started
* [QMK Overview](QMK-Overview)
* [Build Environment Setup](Build-Environment-Setup)
* [Overview for keymap creators](Keymap)
* [Keycodes](Keycodes)
* [Layer switching](Key-Functions)
* [Leader Key](Leader-Key)
* [Macros](Macros)
* [Space Cadet](Space-Cadet-Shift)
* [Tap Dance](Tap-Dance)
* [Mouse keys](Mouse-keys)
* [FAQ: Creating a Keymap](FAQ-Keymap)
* [FAQ: Compiling QMK](FAQ-Build)
* For hardware makers and modders
* [Modding your keyboard](Modding-your-keyboard)
* [Porting your keyboard to QMK](Porting-your-keyboard-to-QMK)
* [Adding features to QMK](Adding-features-to-QMK)
* [General FAQ](FAQ)

30
docs/_summary.md Normal file
View File

@ -0,0 +1,30 @@
### Getting started
* [Introduction](home.md)
* [QMK Overview](qmk_overview.md)
* [Build Environment Setup](build_environment_setup.md)
### Making a keymap
* [Keymap overview](keymap.md)
* [Custom Quantum Functions](custom_quantum_functions.md)
* [Keycodes](keycodes.md)
* [Layer switching](key_functions.md)
* [Leader Key](leader_key.md)
* [Macros](macros.md)
* [Dynamic Macros](dynamic_macros.md)
* [Space Cadet](space_cadet_shift.md)
* [Tap Dance](tap_dance.md)
* [Mouse keys](mouse_keys.md)
* [FAQ: Creating a Keymap](faq_keymap.md)
* [FAQ: Compiling QMK](faq_build.md)
### For hardware makers and modders
* [Adding a keyboard to QMK](adding_a_keyboard_to_qmk.md)
* [Porting your keyboard to QMK](porting_your_keyboard_to_qmk.md)
* [Modding your keyboard](modding_your_keyboard.md)
* [Adding features to QMK](adding_features_to_qmk.md)
* [ISP flashing guide](isp_flashing_guide.md)
### Other topics
* [General FAQ](faq.md)
* [Differences from TMK](differences_from_tmk.md)

View File

@ -0,0 +1,35 @@
# Adding your keyboard to QMK
We welcome all keyboard projects into QMK, but ask that you try to stick to a couple guidelines that help us keep things organised and consistent.
## Naming your directory/project
All names should be lowercase alphanumeric, and separated by an underscore (`_`), but not begin with one. Dashes (`-`) aren't allow by our build system, and will confuse it with keymaps/subprojects. Your directory and your `.h` and `.c` files should have exactly the same name. Subprojects/revision should follow the same format.
## `readme.md`
All projects need to have a `readme.md` file that explains what the keyboard is, who made it, where it is available, and links to move information (template coming).
## Image/Hardware files
In an effort to keep the repo size down, we're no longer accepting images of any format in the repo, with few exceptions. Hosting them elsewhere (imgur) and linking them in the readme.md is the preferred method.
Any sort of hardware file (plate, case, pcb) can't be stored in qmk_firmware, but we have the [qmk.fm repo](https://github.com/qmk/qmk.fm) where such files (as well as in-depth info) can be store, and viewed on [qmk.fm](http://qmk.fm). Downloadable files are stored in `/<keyboard>/` (name follows the same format as above) which are served at `http://qmk.fm/<keyboard>/`, and pages are generated from `/_pages/<keyboard>/` which are served at the same location (.md files are generated into .html files through Jekyll). Check out the `lets_split` directory for an example.
## Non-production/handwired projects
We're happy to accept any project that uses QMK, including prototypes and handwired ones, but we have a separate `/keyboards/handwired/` folder for them, so the main `/keyboards/` folder doesn't get overcrowded. If a prototype project becomes a production project at some point in the future, we'd be happy to move it to the main `/keyboards/` folder!
## Warnings as errors
When developing your keyboard, keep in mind that all warnings will be treated as errors - these small warnings can build-up and cause larger errors down the road (and keeping them is generally a bad practice).
## Licenses
If you're adapting your keyboard's setup from another project, but not using the same code, but sure to update the copyright header at the top of the files to show your name, it this format:
Copyright 2017 Your Name <your@email.com>
## Technical details
If you're looking for more information on making your keyboard work with QMK, [check out this guide](porting_your_keyboard_to_qmk.md)!

View File

@ -110,7 +110,7 @@ docker run -e keymap=default -e subproject=ez -e keyboard=ergobox --rm -v D:/Use
This will compile the targeted keyboard/keymap and leave it in your QMK directory for you to flash.
### Vagrant
If you have any problems building the firmware, you can try using a tool called Vagrant. It will set up a virtual computer with a known configuration that's ready-to-go for firmware building. OLKB does NOT host the files for this virtual computer. Details on how to set up Vagrant are in the [VAGRANT_GUIDE file](https://github.com/qmk/qmk_firmware/blob/master/doc/VAGRANT_GUIDE.md).
If you have any problems building the firmware, you can try using a tool called Vagrant. It will set up a virtual computer with a known configuration that's ready-to-go for firmware building. OLKB does NOT host the files for this virtual computer. Details on how to set up Vagrant are in the [vagrant guide](vagrant_guide.md).
## Verify Your Installation
1. If you haven't already, obtain this repository ([https://github.com/qmk/qmk_firmware](https://github.com/qmk/qmk_firmware)). You can either download it as a zip file and extract it, or clone it using the command line tool git or the Github Desktop application.

View File

@ -35,7 +35,7 @@ Debian/Ubuntu example:
sudo apt-get install gcc-avr avr-libc dfu-programmer
### Vagrant
If you have any problems building the firmware, you can try using a tool called Vagrant. It will set up a virtual computer with a known configuration that's ready-to-go for firmware building. OLKB does NOT host the files for this virtual computer. Details on how to set up Vagrant are in the [VAGRANT_GUIDE file](VAGRANT_GUIDE.md).
If you have any problems building the firmware, you can try using a tool called Vagrant. It will set up a virtual computer with a known configuration that's ready-to-go for firmware building. OLKB does NOT host the files for this virtual computer. Details on how to set up Vagrant are in the [vagrant guide](vagrant_guide.md).
## Verify Your Installation
1. If you haven't already, obtain this repository ([https://github.com/qmk/qmk_firmware](https://github.com/qmk/qmk_firmware)). You can either download it as a zip file and extract it, or clone it using the command line tool git or the Github Desktop application.

View File

@ -1,7 +1,7 @@
Build Firmware and Program Controller
=====================================
## This guide may be out-dated - use doc/BUILD_GUIDE.md instead
## This guide may be out-dated - use [build_guide.md](build_guide.md) instead
Download and Install
--------------------

View File

@ -4,7 +4,7 @@ A custom keyboard is about more than sending button presses to your computer. QM
We have structured QMK as a hierarchy:
* Core
* Core (`_quantum`)
* Keyboard/Revision (`_kb`)
* Keymap (`_user`)
@ -64,14 +64,14 @@ The `record` variable contains infomation about the actual press:
```
keyrecord_t record {
keyevent_t event {
keypos_t key {
uint8_t col
uint8_t row
}
bool pressed
uint16_t time
}
+-keyevent_t event {
| +-keypos_t key {
| | +-uint8_t col
| | +-uint8_t row
| | }
| +-bool pressed
| +-uint16_t time
| }
}
```
@ -120,4 +120,4 @@ void led_set_kb(uint8_t usb_led) {
PORTB &= ~(1<<4);
}
}
```
```

63
docs/dynamic_macros.md Normal file
View File

@ -0,0 +1,63 @@
# Dynamic macros: record and replay macros in runtime
QMK supports temporarily macros created on the fly. We call these Dynamic Macros. They are defined by the user from the keyboard and are lost when the keyboard is unplugged or otherwise rebooted.
You can store one or two macros and they may have a combined total of 128 keypresses. You can increase this size at the cost of RAM.
To enable them, first add a new element to the `planck_keycodes` enum — `DYNAMIC_MACRO_RANGE`:
```c
enum planck_keycodes {
QWERTY = SAFE_RANGE,
COLEMAK,
DVORAK,
PLOVER,
LOWER,
RAISE,
BACKLIT,
EXT_PLV,
DYNAMIC_MACRO_RANGE,
};
```
It must be the last element because `dynamic_macros.h` will add some more keycodes after it.
Below it include the `dynamic_macro.h` header:
```c
#include "dynamic_macro.h"`
```
Add the following keys to your keymap:
* `DYN_REC_START1` — start recording the macro 1,
* `DYN_REC_START2` — start recording the macro 2,
* `DYN_MACRO_PLAY1` — replay the macro 1,
* `DYN_MACRO_PLAY2` — replay the macro 2,
* `DYN_REC_STOP` — finish the macro that is currently being recorded.
Add the following code to the very beginning of your `process_record_user()` function:
```c
if (!process_record_dynamic_macro(keycode, record)) {
return false;
}
```
That should be everything necessary. To start recording the macro, press either `DYN_REC_START1` or `DYN_REC_START2`. To finish the recording, press the `DYN_REC_STOP` layer button. To replay the macro, press either `DYN_MACRO_PLAY1` or `DYN_MACRO_PLAY2`.
Note that it's possible to replay a macro as part of a macro. It's ok to replay macro 2 while recording macro 1 and vice versa but never create recursive macros i.e. macro 1 that replays macro 1. If you do so and the keyboard will get unresponsive, unplug the keyboard and plug it again.
For users of the earlier versions of dynamic macros: It is still possible to finish the macro recording using just the layer modifier used to access the dynamic macro keys, without a dedicated `DYN_REC_STOP` key. If you want this behavior back, use the following snippet instead of the one above:
```c
uint16_t macro_kc = (keycode == MO(_DYN) ? DYN_REC_STOP : keycode);
if (!process_record_dynamic_macro(macro_kc, record)) {
return false;
}
```
If the LED's start blinking during the recording with each keypress, it means there is no more space for the macro in the macro buffer. To fit the macro in, either make the other macro shorter (they share the same buffer) or increase the buffer size by setting the `DYNAMIC_MACRO_SIZE` preprocessor macro (default value: 128; please read the comments for it in the header).
For the details about the internals of the dynamic macros, please read the comments in the `dynamic_macro.h` header.

View File

@ -15,7 +15,7 @@ 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).
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).
## 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.

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