From b0365c7ac3e63a1f6538c59fc3bf828911b32728 Mon Sep 17 00:00:00 2001 From: tmk Date: Sun, 13 May 2012 18:36:16 -0700 Subject: [PATCH 001/517] Initial Commit --- Home.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 Home.md diff --git a/Home.md b/Home.md new file mode 100644 index 0000000000..78679a785b --- /dev/null +++ b/Home.md @@ -0,0 +1 @@ +Welcome to the tmk_keyboard wiki! \ No newline at end of file From f427a6c6d853ac981893dd46bbfb835676c8f440 Mon Sep 17 00:00:00 2001 From: Thomas Russell Murphy Date: Sun, 17 Nov 2013 11:47:36 -0800 Subject: [PATCH 002/517] Created page. Initial list is the ATmega32U4 from the Teensy. --- Compatible-Microcontrollers.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 Compatible-Microcontrollers.md diff --git a/Compatible-Microcontrollers.md b/Compatible-Microcontrollers.md new file mode 100644 index 0000000000..c48a0667bb --- /dev/null +++ b/Compatible-Microcontrollers.md @@ -0,0 +1,4 @@ +This runs on +* ATmega32U4 (Teensy) + +Please add any tested microcontrollers to this list. \ No newline at end of file From 444e7cc53bf2ac663ca4c950ab070abc86d70102 Mon Sep 17 00:00:00 2001 From: tmk Date: Sun, 17 Nov 2013 16:39:10 -0800 Subject: [PATCH 003/517] Updated Compatible Microcontrollers (markdown) --- Compatible-Microcontrollers.md | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/Compatible-Microcontrollers.md b/Compatible-Microcontrollers.md index c48a0667bb..f4bb490ca4 100644 --- a/Compatible-Microcontrollers.md +++ b/Compatible-Microcontrollers.md @@ -1,4 +1,12 @@ -This runs on -* ATmega32U4 (Teensy) +This runs on: +* ATmega32U4 ([PJRC Teensy 2.0](http://www.pjrc.com/teensy/)) +* AT90USB126 ([PJRC Teensy++ 2.0](http://www.pjrc.com/teensy/)) +* AT90USB127 ([Atmel USBKEY](http://www.atmel.com/tools/AT90USBKEY.aspx)) +* ATmega168P with using [V-USB](http://www.obdev.at/products/vusb/index.html) +* ATmega328P with using [V-USB](http://www.obdev.at/products/vusb/index.html) +* AT90USB127, 646, 647 should work but not tested +* ATmega32U2, AT90USB162 testing... + +NOTE: To enable full features of firmware you'll need 32KB flash size. Please add any tested microcontrollers to this list. \ No newline at end of file From 1f419424c4b4b62f372ef590188112c5b4bcf0cd Mon Sep 17 00:00:00 2001 From: Thomas Russell Murphy Date: Sat, 25 Jan 2014 18:10:11 -0800 Subject: [PATCH 004/517] Updated to confirm ATmega32U2 on a custom board. --- Compatible-Microcontrollers.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Compatible-Microcontrollers.md b/Compatible-Microcontrollers.md index f4bb490ca4..d4b827afbd 100644 --- a/Compatible-Microcontrollers.md +++ b/Compatible-Microcontrollers.md @@ -4,8 +4,9 @@ This runs on: * AT90USB127 ([Atmel USBKEY](http://www.atmel.com/tools/AT90USBKEY.aspx)) * ATmega168P with using [V-USB](http://www.obdev.at/products/vusb/index.html) * ATmega328P with using [V-USB](http://www.obdev.at/products/vusb/index.html) +* ATmega32U2 (custom board) * AT90USB127, 646, 647 should work but not tested -* ATmega32U2, AT90USB162 testing... +* AT90USB162 testing... NOTE: To enable full features of firmware you'll need 32KB flash size. From 767690aa59f1521a2076ff596f7f92fe51cdc026 Mon Sep 17 00:00:00 2001 From: Thomas Russell Murphy Date: Sat, 25 Jan 2014 18:11:37 -0800 Subject: [PATCH 005/517] Adding link to the Compatible Microcontrollers list. --- Home.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Home.md b/Home.md index 78679a785b..0456128209 100644 --- a/Home.md +++ b/Home.md @@ -1 +1,3 @@ -Welcome to the tmk_keyboard wiki! \ No newline at end of file +Welcome to the tmk_keyboard wiki! + +Check out [[Compatible Microcontrollers]]. \ No newline at end of file From 1a0be5e750d0477097668f33f02ceb0d0dcd2001 Mon Sep 17 00:00:00 2001 From: tmk Date: Fri, 28 Feb 2014 17:23:32 -0800 Subject: [PATCH 006/517] Updated Home (markdown) --- Home.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Home.md b/Home.md index 0456128209..50346d710a 100644 --- a/Home.md +++ b/Home.md @@ -1,3 +1,5 @@ Welcome to the tmk_keyboard wiki! -Check out [[Compatible Microcontrollers]]. \ No newline at end of file +- [[FAQ]] +- [Keymap Editor](http://tmk.github.io/tmk_keyboard/editor/index.html) (beta) +- [[Compatible Microcontrollers]] From 7a8e9cc13699391ebb923119b4e4f92492adab04 Mon Sep 17 00:00:00 2001 From: tmk Date: Fri, 28 Feb 2014 17:42:00 -0800 Subject: [PATCH 007/517] Created FAQ (markdown) --- FAQ.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 FAQ.md diff --git a/FAQ.md b/FAQ.md new file mode 100644 index 0000000000..94782630f1 --- /dev/null +++ b/FAQ.md @@ -0,0 +1,18 @@ +# Degug Console +## 'hid_listen' can't find 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: + + Waiting for new device:......................... + Listening: + +Check these if you can't get this 'Listening:' message: +- build with 'CONSOLE_ENABLE=yes' in Makefile + + +# NKRO + +# PS/2 mouse support \ No newline at end of file From 50fc1a5a5bd4a77708ba9991c148590534f75f4f Mon Sep 17 00:00:00 2001 From: tmk Date: Fri, 28 Feb 2014 17:44:30 -0800 Subject: [PATCH 008/517] Updated FAQ (markdown) --- FAQ.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FAQ.md b/FAQ.md index 94782630f1..9bfe5aab53 100644 --- a/FAQ.md +++ b/FAQ.md @@ -10,7 +10,7 @@ once the device is pluged in then 'hid_listen' finds it you will get this messag Listening: Check these if you can't get this 'Listening:' message: -- build with 'CONSOLE_ENABLE=yes' in Makefile +- build with `CONSOLE_ENABLE=yes` in Makefile # NKRO From 5e2f882230b04138ced6d332bb35068fe9dc4589 Mon Sep 17 00:00:00 2001 From: tmk Date: Fri, 28 Feb 2014 18:07:46 -0800 Subject: [PATCH 009/517] Updated FAQ (markdown) --- FAQ.md | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/FAQ.md b/FAQ.md index 9bfe5aab53..3fb7ab349a 100644 --- a/FAQ.md +++ b/FAQ.md @@ -1,17 +1,26 @@ # Degug Console -## 'hid_listen' can't find device +## hid_listen can't find 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 pluged in then *hid_listen* finds it you will get this message: Waiting for new device:......................... Listening: -Check these if you can't get this 'Listening:' message: -- build with `CONSOLE_ENABLE=yes` in Makefile +Check if you can't get this 'Listening:' message: +- build with `CONSOLE_ENABLE=yes` in **Makefile**. +## Can't get message from console +Check: +- the device is connected to *hid_listen*. See above. +- push **LShift+RShift+d** to enable debug. See [Magic Commands](https://github.com/tmk/tmk_keyboard#magic-commands). +- `debug_enable=yes` Usually in `matrix_init()` in **matrix.c**. +- 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). + +*** # NKRO From 81055457fae79513ef559552c5e48eb9f5d39150 Mon Sep 17 00:00:00 2001 From: tmk Date: Fri, 28 Feb 2014 18:09:22 -0800 Subject: [PATCH 010/517] Updated FAQ (markdown) --- FAQ.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/FAQ.md b/FAQ.md index 3fb7ab349a..9200dfa160 100644 --- a/FAQ.md +++ b/FAQ.md @@ -14,11 +14,11 @@ Check if you can't get this 'Listening:' message: ## Can't get message from console Check: -- the device is connected to *hid_listen*. See above. +- connect the device to *hid_listen*. See above. - push **LShift+RShift+d** to enable debug. See [Magic Commands](https://github.com/tmk/tmk_keyboard#magic-commands). -- `debug_enable=yes` Usually in `matrix_init()` in **matrix.c**. +- set `debug_enable=yes` usually in `matrix_init()` in **matrix.c**. - 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). +- disconnect other devices with console function. See [Issue #97](https://github.com/tmk/tmk_keyboard/issues/97). *** From 51e37dc5cd774b95d7bb325618c63caaa5c63918 Mon Sep 17 00:00:00 2001 From: tmk Date: Sat, 1 Mar 2014 12:12:59 -0800 Subject: [PATCH 011/517] Updated FAQ (markdown) --- FAQ.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/FAQ.md b/FAQ.md index 9200dfa160..67eddcd96f 100644 --- a/FAQ.md +++ b/FAQ.md @@ -1,3 +1,10 @@ +# Build +## 'make clean' needs after changing config.h +To build with new config.h + + $ make clean + + # Degug Console ## hid_listen can't find device When debug console of your device is not ready you will see like this: From ef9902f5ed45178648bf65b57f0d4da2127c9708 Mon Sep 17 00:00:00 2001 From: tmk Date: Sat, 1 Mar 2014 12:13:29 -0800 Subject: [PATCH 012/517] Updated FAQ (markdown) --- FAQ.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FAQ.md b/FAQ.md index 67eddcd96f..d221a14441 100644 --- a/FAQ.md +++ b/FAQ.md @@ -1,6 +1,6 @@ # Build ## 'make clean' needs after changing config.h -To build with new config.h +To build with new **config.h** you need $ make clean From cd7cba54fe84dfdddaddb28884cec71b666986f1 Mon Sep 17 00:00:00 2001 From: tmk Date: Sat, 1 Mar 2014 12:34:51 -0800 Subject: [PATCH 013/517] Updated FAQ (markdown) --- FAQ.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/FAQ.md b/FAQ.md index d221a14441..47ad814968 100644 --- a/FAQ.md +++ b/FAQ.md @@ -31,4 +31,8 @@ Check: # NKRO -# PS/2 mouse support \ No newline at end of file +# PS/2 mouse support +## TrackPoint needs reset circuit +Without reset circuit you will have inconsistent reuslt due to improper initialize of the hardware. + +http://geekhack.org/index.php?topic=50176.msg1127447#msg1127447 From e7069410ff315c3a984f2f5dcd593d941ced75e0 Mon Sep 17 00:00:00 2001 From: tmk Date: Sat, 1 Mar 2014 12:53:20 -0800 Subject: [PATCH 014/517] Updated FAQ (markdown) --- FAQ.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/FAQ.md b/FAQ.md index 47ad814968..1fe8bef9ea 100644 --- a/FAQ.md +++ b/FAQ.md @@ -33,6 +33,7 @@ Check: # PS/2 mouse support ## TrackPoint needs reset circuit -Without reset circuit you will have inconsistent reuslt due to improper initialize of the hardware. +Without reset circuit you will have inconsistent reuslt 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 From fb94b97e48e3b89d88e98dd2e86c185552223b25 Mon Sep 17 00:00:00 2001 From: tmk Date: Sun, 2 Mar 2014 22:16:28 -0800 Subject: [PATCH 015/517] Updated FAQ (markdown) --- FAQ.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/FAQ.md b/FAQ.md index 1fe8bef9ea..b62927dbb2 100644 --- a/FAQ.md +++ b/FAQ.md @@ -4,6 +4,9 @@ To build with new **config.h** you need $ make clean +## WINAVR is obsolete +It is no longer recommended and may cause some problem. +See [Issue #99](https://github.com/tmk/tmk_keyboard/issues/99). # Degug Console ## hid_listen can't find device From ab4f24a16a6a7e25a69cb202208d6efcb8f8f51c Mon Sep 17 00:00:00 2001 From: tmk Date: Mon, 3 Mar 2014 15:08:02 -0800 Subject: [PATCH 016/517] Updated FAQ (markdown) --- FAQ.md | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/FAQ.md b/FAQ.md index b62927dbb2..1ea5bcfd87 100644 --- a/FAQ.md +++ b/FAQ.md @@ -8,6 +8,8 @@ To build with new **config.h** you need It is no longer recommended and may cause some problem. See [Issue #99](https://github.com/tmk/tmk_keyboard/issues/99). + + # Degug Console ## hid_listen can't find device When debug console of your device is not ready you will see like this: @@ -32,10 +34,17 @@ Check: *** -# NKRO +# Miscellaneous +## NKRO Doesn't work +Build with this option of Makefile + + NKRO_ENABLE = yes + +And use `Magic` command **N** to toggle NKRO feature. +At this time NKRO is not used by default even if it is build with `NKRO_ENABLE`, you still need the `Magic`. + -# PS/2 mouse support -## TrackPoint needs reset circuit +## 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. http://geekhack.org/index.php?topic=50176.msg1127447#msg1127447 From f89362886595570e89017cebdd1416e52d16d6ea Mon Sep 17 00:00:00 2001 From: tmk Date: Mon, 3 Mar 2014 15:17:00 -0800 Subject: [PATCH 017/517] Updated FAQ (markdown) --- FAQ.md | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/FAQ.md b/FAQ.md index 1ea5bcfd87..bf598ef34b 100644 --- a/FAQ.md +++ b/FAQ.md @@ -43,9 +43,24 @@ Build with this option of Makefile And use `Magic` command **N** to toggle NKRO feature. At this time NKRO is not used by default even if it is build with `NKRO_ENABLE`, you still need the `Magic`. +To turn on NKRO by default see this fix. +https://github.com/shayneholmes/tmk_keyboard/commit/b8375a0 +``` +--- a/common/host.c ++++ b/common/host.c +@@ -24,7 +24,7 @@ along with this program. If not, see . + + + #ifdef NKRO_ENABLE +-bool keyboard_nkro = false; ++bool keyboard_nkro = true; + #endif + + static host_driver_t *driver; +``` ## 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. -http://geekhack.org/index.php?topic=50176.msg1127447#msg1127447 -http://www.mikrocontroller.net/attachment/52583/tpm754.pdf +- http://geekhack.org/index.php?topic=50176.msg1127447#msg1127447 +- http://www.mikrocontroller.net/attachment/52583/tpm754.pdf From 4464a288a1ab7a0bf7140a2ae6f5e89051c378c7 Mon Sep 17 00:00:00 2001 From: tmk Date: Mon, 3 Mar 2014 17:16:27 -0800 Subject: [PATCH 018/517] Updated FAQ (markdown) --- FAQ.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/FAQ.md b/FAQ.md index bf598ef34b..e5ccdcf784 100644 --- a/FAQ.md +++ b/FAQ.md @@ -64,3 +64,10 @@ Without reset circuit you will have inconsistent reuslt due to improper initiali - http://geekhack.org/index.php?topic=50176.msg1127447#msg1127447 - http://www.mikrocontroller.net/attachment/52583/tpm754.pdf + + +## Can't read comlumn of matrix beyond 16 +Use `1UL<<16` intead 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 `0` when you say `1<<16`. + +http://deskthority.net/workshop-f7/rebuilding-and-redesigning-a-classic-thinkpad-keyboard-t6181-60.html#p146279 \ No newline at end of file From 700a77a0f3d73526283ccc5ec38c314ffdb161e5 Mon Sep 17 00:00:00 2001 From: tmk Date: Mon, 3 Mar 2014 17:17:50 -0800 Subject: [PATCH 019/517] Updated FAQ (markdown) --- FAQ.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/FAQ.md b/FAQ.md index e5ccdcf784..7f0c0f03c4 100644 --- a/FAQ.md +++ b/FAQ.md @@ -68,6 +68,7 @@ Without reset circuit you will have inconsistent reuslt due to improper initiali ## Can't read comlumn of matrix beyond 16 Use `1UL<<16` intead 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 `0` when you say `1<<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`. http://deskthority.net/workshop-f7/rebuilding-and-redesigning-a-classic-thinkpad-keyboard-t6181-60.html#p146279 \ No newline at end of file From bf6d2b5ebdfcac2727a0ee639c299054143dd94a Mon Sep 17 00:00:00 2001 From: tmk Date: Mon, 3 Mar 2014 17:20:54 -0800 Subject: [PATCH 020/517] Updated FAQ (markdown) --- FAQ.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/FAQ.md b/FAQ.md index 7f0c0f03c4..e35044e695 100644 --- a/FAQ.md +++ b/FAQ.md @@ -69,6 +69,6 @@ Without reset circuit you will have inconsistent reuslt due to improper initiali ## Can't read comlumn of matrix beyond 16 Use `1UL<<16` intead 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`. +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`. -http://deskthority.net/workshop-f7/rebuilding-and-redesigning-a-classic-thinkpad-keyboard-t6181-60.html#p146279 \ No newline at end of file +http://deskthority.net/workshop-f7/rebuilding-and-redesigning-a-classic-thinkpad-keyboard-t6181-60.html#p146279 From a25df9432b4c38e1712d8c5224f05ba37b161cd8 Mon Sep 17 00:00:00 2001 From: tmk Date: Thu, 6 Mar 2014 17:04:09 -0800 Subject: [PATCH 021/517] Updated FAQ (markdown) --- FAQ.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/FAQ.md b/FAQ.md index e35044e695..f7c92ba3bd 100644 --- a/FAQ.md +++ b/FAQ.md @@ -8,7 +8,10 @@ To build with new **config.h** you need It is no longer recommended and may cause some problem. See [Issue #99](https://github.com/tmk/tmk_keyboard/issues/99). +## USB stack: LUFA or PJRC? +Use **LUFA**. **PJRC** stack won't be supported actively anymore. There is no reason to hesitate to use LUFA except for binary size(about 1KB lager?). +See also [Issue #50](https://github.com/tmk/tmk_keyboard/issues/50) and [Issue #58](https://github.com/tmk/tmk_keyboard/issues/58). # Degug Console ## hid_listen can't find device From 10932b8f9010a2979e6c5903f2f656d4e816ddd7 Mon Sep 17 00:00:00 2001 From: tmk Date: Thu, 6 Mar 2014 17:07:06 -0800 Subject: [PATCH 022/517] Updated FAQ (markdown) --- FAQ.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/FAQ.md b/FAQ.md index f7c92ba3bd..274a5350df 100644 --- a/FAQ.md +++ b/FAQ.md @@ -9,9 +9,11 @@ It is no longer recommended and may cause some problem. See [Issue #99](https://github.com/tmk/tmk_keyboard/issues/99). ## USB stack: LUFA or PJRC? -Use **LUFA**. **PJRC** stack won't be supported actively anymore. There is no reason to hesitate to use LUFA except for binary size(about 1KB lager?). +Use **LUFA**. -See also [Issue #50](https://github.com/tmk/tmk_keyboard/issues/50) and [Issue #58](https://github.com/tmk/tmk_keyboard/issues/58). +**PJRC** stack won't be supported actively anymore. There is no reason to hesitate to use LUFA except for binary size(about 1KB lager?). See also [Issue #50](https://github.com/tmk/tmk_keyboard/issues/50) and [Issue #58](https://github.com/tmk/tmk_keyboard/issues/58). + +But **PJRC** is still very useful for debug and development purpose. # Degug Console ## hid_listen can't find device From 5383d37925289dad8006b3d3cc0f012c84756b21 Mon Sep 17 00:00:00 2001 From: tmk Date: Thu, 6 Mar 2014 17:07:50 -0800 Subject: [PATCH 023/517] Updated FAQ (markdown) --- FAQ.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/FAQ.md b/FAQ.md index 274a5350df..a1681e6ce7 100644 --- a/FAQ.md +++ b/FAQ.md @@ -11,9 +11,10 @@ See [Issue #99](https://github.com/tmk/tmk_keyboard/issues/99). ## USB stack: LUFA or PJRC? Use **LUFA**. -**PJRC** stack won't be supported actively anymore. There is no reason to hesitate to use LUFA except for binary size(about 1KB lager?). See also [Issue #50](https://github.com/tmk/tmk_keyboard/issues/50) and [Issue #58](https://github.com/tmk/tmk_keyboard/issues/58). +**PJRC** stack won't be supported actively anymore. There is no reason to hesitate to use LUFA except for binary size(about 1KB lager?). But **PJRC** is still very useful for debug and development purpose. +See also [Issue #50](https://github.com/tmk/tmk_keyboard/issues/50) and [Issue #58](https://github.com/tmk/tmk_keyboard/issues/58). + -But **PJRC** is still very useful for debug and development purpose. # Degug Console ## hid_listen can't find device From 01a218f36b0dd60c01e2198ea47e54a88c78ff89 Mon Sep 17 00:00:00 2001 From: tmk Date: Sun, 16 Mar 2014 13:39:50 -0700 Subject: [PATCH 024/517] Updated FAQ (markdown) --- FAQ.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/FAQ.md b/FAQ.md index a1681e6ce7..2935d6be68 100644 --- a/FAQ.md +++ b/FAQ.md @@ -15,6 +15,16 @@ Use **LUFA**. See also [Issue #50](https://github.com/tmk/tmk_keyboard/issues/50) and [Issue #58](https://github.com/tmk/tmk_keyboard/issues/58). +## Edit configuration but not change +Try these. +### 1. make clean +This will be needed when you edit **config.h**. + +### 2. Remove Drivers from Device Manager(Windows) +Windows only. Linux, OSX and other OS's doesn't require this. It looks like Windows keeps using driver installed when device was connected first time even after the device changes its configuration. To load proper drivers for new configuration you need to remove existent drivers from **Drvice Manager**. + +You will need this after editing `CONSOLE_ENABLE`, `NKRO_ENABLE`, `EXTRAKEY_ENABLE` or `MOUSEKEY_ENABLE` option in **Makefile**. + # Degug Console ## hid_listen can't find device From 43669fb27060de485017cf6258901210a5bee07c Mon Sep 17 00:00:00 2001 From: tmk Date: Mon, 24 Mar 2014 17:01:43 -0700 Subject: [PATCH 025/517] Updated FAQ (markdown) --- FAQ.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/FAQ.md b/FAQ.md index 2935d6be68..8df23af92e 100644 --- a/FAQ.md +++ b/FAQ.md @@ -88,3 +88,22 @@ Use `1UL<<16` intead of `1<<16` in `read_cols()` in **matrix.h** when your colum 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`. http://deskthority.net/workshop-f7/rebuilding-and-redesigning-a-classic-thinkpad-keyboard-t6181-60.html#p146279 + + + +## Pull-up Resistor +In some case converters needed to have pull-up resistors to work correctly. Place the resistor between VCC and signal line in parallel. + +``` +Keyboard Conveter + ,------. +5V------+------|VCC | + | | | + R | | + | | | +Signal--+------|PD0 | + | | +GND------------|GND | + `------' +R: 1K Ohm resistor +``` \ No newline at end of file From ae74a813564c6188f35c8955bc03ba2364348dd2 Mon Sep 17 00:00:00 2001 From: tmk Date: Tue, 25 Mar 2014 08:00:41 -0700 Subject: [PATCH 026/517] Updated FAQ (markdown) --- FAQ.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/FAQ.md b/FAQ.md index 8df23af92e..ada0205caa 100644 --- a/FAQ.md +++ b/FAQ.md @@ -106,4 +106,9 @@ Signal--+------|PD0 | GND------------|GND | `------' R: 1K Ohm resistor -``` \ No newline at end of file +``` + + +## Arduino Micro with ATMega32U4 +Note that Arduino Micro PCB marking is different from real AVR port name. D0 of Arduino Micro is not PD0, PD0 is D3. Check schematic yourself. +http://arduino.cc/en/uploads/Main/arduino-micro-schematic.pdf \ No newline at end of file From 0e03275c40c45c9b21234bf289039c2ac7c66aad Mon Sep 17 00:00:00 2001 From: tmk Date: Tue, 25 Mar 2014 08:01:30 -0700 Subject: [PATCH 027/517] Updated FAQ (markdown) --- FAQ.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FAQ.md b/FAQ.md index ada0205caa..f1c91d163e 100644 --- a/FAQ.md +++ b/FAQ.md @@ -109,6 +109,6 @@ R: 1K Ohm resistor ``` -## Arduino Micro with ATMega32U4 +## Arduino Micro's Pin naming is confusing Note that Arduino Micro PCB marking is different from real AVR port name. D0 of Arduino Micro is not PD0, PD0 is D3. Check schematic yourself. http://arduino.cc/en/uploads/Main/arduino-micro-schematic.pdf \ No newline at end of file From 2f0837bd6e422887678afdc3869b4359295e8225 Mon Sep 17 00:00:00 2001 From: tmk Date: Tue, 25 Mar 2014 08:01:56 -0700 Subject: [PATCH 028/517] Updated FAQ (markdown) --- FAQ.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FAQ.md b/FAQ.md index f1c91d163e..63a6435cdf 100644 --- a/FAQ.md +++ b/FAQ.md @@ -109,6 +109,6 @@ R: 1K Ohm resistor ``` -## Arduino Micro's Pin naming is confusing +## Arduino Micro's pin naming is confusing Note that Arduino Micro PCB marking is different from real AVR port name. D0 of Arduino Micro is not PD0, PD0 is D3. Check schematic yourself. http://arduino.cc/en/uploads/Main/arduino-micro-schematic.pdf \ No newline at end of file From cecb912e536002ea888ccd56fd097848928cb52b Mon Sep 17 00:00:00 2001 From: tmk Date: Thu, 10 Apr 2014 19:14:41 -0700 Subject: [PATCH 029/517] Updated Compatible Microcontrollers (markdown) --- Compatible-Microcontrollers.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Compatible-Microcontrollers.md b/Compatible-Microcontrollers.md index d4b827afbd..a2dca53f72 100644 --- a/Compatible-Microcontrollers.md +++ b/Compatible-Microcontrollers.md @@ -1,11 +1,11 @@ This runs on: * ATmega32U4 ([PJRC Teensy 2.0](http://www.pjrc.com/teensy/)) * AT90USB126 ([PJRC Teensy++ 2.0](http://www.pjrc.com/teensy/)) -* AT90USB127 ([Atmel USBKEY](http://www.atmel.com/tools/AT90USBKEY.aspx)) +* AT90USB1287 ([Atmel USBKEY](http://www.atmel.com/tools/AT90USBKEY.aspx)) * ATmega168P with using [V-USB](http://www.obdev.at/products/vusb/index.html) * ATmega328P with using [V-USB](http://www.obdev.at/products/vusb/index.html) -* ATmega32U2 (custom board) -* AT90USB127, 646, 647 should work but not tested +* ATmega32U2 +* AT90USB1286, 646, 647 should work * AT90USB162 testing... NOTE: To enable full features of firmware you'll need 32KB flash size. From d3388d34682f6fc9a801442db7240689661e9a13 Mon Sep 17 00:00:00 2001 From: tmk Date: Fri, 11 Apr 2014 19:32:25 -0700 Subject: [PATCH 030/517] Updated FAQ (markdown) --- FAQ.md | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/FAQ.md b/FAQ.md index 63a6435cdf..a00b7c8b3c 100644 --- a/FAQ.md +++ b/FAQ.md @@ -111,4 +111,22 @@ R: 1K Ohm resistor ## Arduino Micro's pin naming is confusing Note that Arduino Micro PCB marking is different from real AVR port name. D0 of Arduino Micro is not PD0, PD0 is D3. Check schematic yourself. -http://arduino.cc/en/uploads/Main/arduino-micro-schematic.pdf \ No newline at end of file +http://arduino.cc/en/uploads/Main/arduino-micro-schematic.pdf + + + +## Bootloader jump doesn't work +Properly configure boot section size in Makefile. With wrong section size bootloader won't probably start with **Magic command** and **Boot Magic**. +- https://github.com/tmk/tmk_keyboard#magic-commands +- https://github.com/tmk/tmk_keyboard#bootloader + +``` +# Boot Section Size in *bytes* +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 (TMK Alt Controller) +# LUFA bootloader 4096 +# USBaspLoader 2048 +OPT_DEFS += -DBOOTLOADER_SIZE=4096 +``` +http://geekhack.org/index.php?topic=12047.msg1292018#msg1292018 \ No newline at end of file From 0f34b9fd449d5fec8c24570477ed11679b21233d Mon Sep 17 00:00:00 2001 From: tmk Date: Mon, 14 Apr 2014 15:31:02 -0700 Subject: [PATCH 031/517] Updated FAQ (markdown) --- FAQ.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/FAQ.md b/FAQ.md index a00b7c8b3c..dc770b75e7 100644 --- a/FAQ.md +++ b/FAQ.md @@ -129,4 +129,8 @@ Properly configure boot section size in Makefile. With wrong section size bootlo # USBaspLoader 2048 OPT_DEFS += -DBOOTLOADER_SIZE=4096 ``` -http://geekhack.org/index.php?topic=12047.msg1292018#msg1292018 \ No newline at end of file +http://geekhack.org/index.php?topic=12047.msg1292018#msg1292018 + + +## Special Extra key doesn't work(System, Audio control keys) +http://deskthority.net/workshop-f7/tmk-keyboard-firmware-collection-t4478-60.html#p157919 \ No newline at end of file From 7963233140f472a12d3f67db7444ac8b8b2bec53 Mon Sep 17 00:00:00 2001 From: tmk Date: Mon, 14 Apr 2014 16:16:06 -0700 Subject: [PATCH 032/517] Updated FAQ (markdown) --- FAQ.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/FAQ.md b/FAQ.md index dc770b75e7..c5fb2247b6 100644 --- a/FAQ.md +++ b/FAQ.md @@ -133,4 +133,8 @@ http://geekhack.org/index.php?topic=12047.msg1292018#msg1292018 ## Special Extra key doesn't work(System, Audio control keys) +You need to define `EXTRAKEY_ENABLE` in **makefile** to use them in TMK. +``` +EXTRAKEY_ENABLE = yes # Audio control and System control +``` http://deskthority.net/workshop-f7/tmk-keyboard-firmware-collection-t4478-60.html#p157919 \ No newline at end of file From 6fc76b224bd273a7ec54d92e165406802727f401 Mon Sep 17 00:00:00 2001 From: tmk Date: Mon, 21 Apr 2014 18:10:48 -0700 Subject: [PATCH 033/517] Updated FAQ (markdown) --- FAQ.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/FAQ.md b/FAQ.md index c5fb2247b6..bc22fbf738 100644 --- a/FAQ.md +++ b/FAQ.md @@ -137,4 +137,10 @@ You need to define `EXTRAKEY_ENABLE` in **makefile** to use them in TMK. ``` EXTRAKEY_ENABLE = yes # Audio control and System control ``` -http://deskthority.net/workshop-f7/tmk-keyboard-firmware-collection-t4478-60.html#p157919 \ No newline at end of file +http://deskthority.net/workshop-f7/tmk-keyboard-firmware-collection-t4478-60.html#p157919 + + +## 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. + +Pressing any key should wake host. \ No newline at end of file From 22d1aeb4099dfe076854b61ad26810fc4d7cd523 Mon Sep 17 00:00:00 2001 From: tmk Date: Mon, 21 Apr 2014 18:11:45 -0700 Subject: [PATCH 034/517] Updated FAQ (markdown) --- FAQ.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FAQ.md b/FAQ.md index bc22fbf738..5cf8b69696 100644 --- a/FAQ.md +++ b/FAQ.md @@ -143,4 +143,4 @@ http://deskthority.net/workshop-f7/tmk-keyboard-firmware-collection-t4478-60.htm ## 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. -Pressing any key should wake host. \ No newline at end of file +Pressing any key during sleep should wake host. \ No newline at end of file From 9893fac5c53ed99f7b249ae1386e57046474c4c1 Mon Sep 17 00:00:00 2001 From: tmk Date: Fri, 25 Apr 2014 20:37:46 -0700 Subject: [PATCH 035/517] Created Projects (markdown) --- Projects.md | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 Projects.md diff --git a/Projects.md b/Projects.md new file mode 100644 index 0000000000..8456b90ca8 --- /dev/null +++ b/Projects.md @@ -0,0 +1,42 @@ +### converter +* [ps2_usb](converter/ps2_usb/) - [PS/2 keyboard to USB][GH_ps2] +* [adb_usb](converter/adb_usb/) - [ADB keyboard to USB][GH_adb] +* [m0110_usb](converter/m0110_usb) - [Macintosh 128K/512K/Plus keyboard to USB][GH_m0110] +* [terminal_usb](converter/terminal_usb/) - [IBM Model M terminal keyboard(PS/2 scancode set3) to USB][GH_terminal] +* [news_usb](converter/news_usb/) - [Sony NEWS keyboard to USB][GH_news] +* [x68k_usb](converter/x68k_usb/) - [Sharp X68000 keyboard to USB][GH_x68k] +* [sun_usb](converter/sun_usb/) - [Sun] to USB(type4, 5 and 3?) +* [pc98_usb](converter/pc98_usb/) - [PC98] to USB +* [usb_usb](converter/usb_usb/) - USB to USB(experimental) +* [ascii_usb](converter/ascii_usb/) - ASCII(Serial console terminal) to USB +* [ibm4704_usb](converter/ibm4704_usb) - [IBM 4704 keyboard Converter][GH_ibm4704] + +### keyboard +* [hhkb](keyboard/hhkb/) - [Happy Hacking Keyboard pro][GH_hhkb] **my main board** +* [gh60](keyboard/gh60/) - [GH60] DIY 60% keyboard [prototype][GH60_proto] **my second board** +* [hbkb](keyboard/hbkb/) - [Happy Buckling spring keyboard][GH_hbkb](IBM Model M 60% mod) +* [hid_liber](keyboard/hid_liber/) - [HID liberation][HID_liber] controller (by alaricljs) +* [phantom](keyboard/phantom/) - [Phantom] keyboard (by Tranquilite) +* [IIgs_Standard](keyboard/IIgs/) - Apple [IIGS] keyboard mod(by JeffreySung) +* [macway](keyboard/macway/) - [Compact keyboard mod][GH_macway] [retired] +* [KMAC](keyboard/kmac/) - Korean custom keyboard +* [Lightsaber](keyboard/lightsaber/) - Korean custom keyboard + +[GH_macway]: http://geekhack.org/showwiki.php?title=Island:11930 +[GH_hhkb]: http://geekhack.org/showwiki.php?title=Island:12047 +[GH_ps2]: http://geekhack.org/showwiki.php?title=Island:14618 +[GH_adb]: http://geekhack.org/showwiki.php?title=Island:14290 +[GH_hhkb_bt]: http://geekhack.org/showwiki.php?title=Island:20851 +[GH_m0110]: http://geekhack.org/showwiki.php?title=Island:24965 +[GH_news]: http://geekhack.org/showwiki.php?title=Island:25759 +[GH_terminal]: http://geekhack.org/showwiki.php?title=Island:27272 +[GH_x68k]: http://geekhack.org/showwiki.php?title=Island:29060 +[GH_hbkb]: http://geekhack.org/showwiki.php?title=Island:29483 +[GH_ibm4704]: http://geekhack.org/index.php?topic=54706.0 +[HID_liber]: http://deskthority.net/wiki/HID_Liberation_Device_-_DIY_Instructions +[Phantom]: http://geekhack.org/index.php?topic=26742 +[GH60]: http://geekhack.org/index.php?topic=34959 +[GH60_proto]: http://geekhack.org/index.php?topic=37570.0 +[PC98]: http://en.wikipedia.org/wiki/NEC_PC-9801 +[Sun]: http://en.wikipedia.org/wiki/Sun-3 +[IIGS]: http://en.wikipedia.org/wiki/Apple_IIGS \ No newline at end of file From 2dbd047aa59930799471935d985a7d5b6f9131f4 Mon Sep 17 00:00:00 2001 From: tmk Date: Fri, 25 Apr 2014 20:38:27 -0700 Subject: [PATCH 036/517] Updated Home (markdown) --- Home.md | 1 + 1 file changed, 1 insertion(+) diff --git a/Home.md b/Home.md index 50346d710a..329d24e077 100644 --- a/Home.md +++ b/Home.md @@ -1,5 +1,6 @@ Welcome to the tmk_keyboard wiki! +- [[Projects]] - [[FAQ]] - [Keymap Editor](http://tmk.github.io/tmk_keyboard/editor/index.html) (beta) - [[Compatible Microcontrollers]] From 62d5ca9b81bf2317525a385c47d3505dcbef3fc6 Mon Sep 17 00:00:00 2001 From: tmk Date: Fri, 25 Apr 2014 21:13:36 -0700 Subject: [PATCH 037/517] Updated Projects (markdown) --- Projects.md | 73 ++++++++++++++++++++++++++++++++++------------------- 1 file changed, 47 insertions(+), 26 deletions(-) diff --git a/Projects.md b/Projects.md index 8456b90ca8..0536e9232e 100644 --- a/Projects.md +++ b/Projects.md @@ -1,27 +1,48 @@ -### converter -* [ps2_usb](converter/ps2_usb/) - [PS/2 keyboard to USB][GH_ps2] -* [adb_usb](converter/adb_usb/) - [ADB keyboard to USB][GH_adb] -* [m0110_usb](converter/m0110_usb) - [Macintosh 128K/512K/Plus keyboard to USB][GH_m0110] -* [terminal_usb](converter/terminal_usb/) - [IBM Model M terminal keyboard(PS/2 scancode set3) to USB][GH_terminal] -* [news_usb](converter/news_usb/) - [Sony NEWS keyboard to USB][GH_news] -* [x68k_usb](converter/x68k_usb/) - [Sharp X68000 keyboard to USB][GH_x68k] -* [sun_usb](converter/sun_usb/) - [Sun] to USB(type4, 5 and 3?) -* [pc98_usb](converter/pc98_usb/) - [PC98] to USB -* [usb_usb](converter/usb_usb/) - USB to USB(experimental) -* [ascii_usb](converter/ascii_usb/) - ASCII(Serial console terminal) to USB -* [ibm4704_usb](converter/ibm4704_usb) - [IBM 4704 keyboard Converter][GH_ibm4704] - -### keyboard -* [hhkb](keyboard/hhkb/) - [Happy Hacking Keyboard pro][GH_hhkb] **my main board** -* [gh60](keyboard/gh60/) - [GH60] DIY 60% keyboard [prototype][GH60_proto] **my second board** -* [hbkb](keyboard/hbkb/) - [Happy Buckling spring keyboard][GH_hbkb](IBM Model M 60% mod) -* [hid_liber](keyboard/hid_liber/) - [HID liberation][HID_liber] controller (by alaricljs) -* [phantom](keyboard/phantom/) - [Phantom] keyboard (by Tranquilite) -* [IIgs_Standard](keyboard/IIgs/) - Apple [IIGS] keyboard mod(by JeffreySung) -* [macway](keyboard/macway/) - [Compact keyboard mod][GH_macway] [retired] -* [KMAC](keyboard/kmac/) - Korean custom keyboard -* [Lightsaber](keyboard/lightsaber/) - Korean custom keyboard - +### converter +* [ps2_usb] - [PS/2 keyboard to USB][GH_ps2] +* [adb_usb] - [ADB keyboard to USB][GH_adb] +* [m0110_usb] - [Macintosh 128K/512K/Plus keyboard to USB][GH_m0110] +* [terminal_usb] - [IBM Model M terminal keyboard(PS/2 scancode set3) to USB][GH_terminal] +* [news_usb] - [Sony NEWS keyboard to USB][GH_news] +* [x68k_usb] - [Sharp X68000 keyboard to USB][GH_x68k] +* [sun_usb] - [Sun] to USB(type4, 5 and 3?) +* [pc98_usb] - [PC98] to USB +* [usb_usb] - USB to USB(experimental) +* [ascii_usb] - ASCII(Serial console terminal) to USB +* [ibm4704_usb] - [IBM 4704 keyboard Converter][GH_ibm4704] + +### keyboard +* [hhkb] - [Happy Hacking Keyboard pro][GH_hhkb] +* [gh60] - [GH60][GH60_diy] DIY 60% keyboard [prototype][GH60_proto] +* [hbkb] - [Happy Buckling spring keyboard][GH_hbkb](IBM Model M 60% mod) +* [hid_liber] - [HID liberation][HID_liber] controller (by alaricljs) +* [phantom] - [Phantom] keyboard (by Tranquilite) +* [IIgs_Standard] - Apple [IIGS] keyboard mod(by JeffreySung) +* [macway] - [Compact keyboard mod][GH_macway] [retired] +* [KMAC] - Korean custom keyboard +* [Lightsaber] - Korean custom keyboard + +[ps2_usb]: https://github.com/tmk/tmk_keyboard/tree/master/converter/ps2_usb/ +[adb_usb]: https://github.com/tmk/tmk_keyboard/tree/master/converter/adb_usb/ +[m0110_usb]: https://github.com/tmk/tmk_keyboard/tree/master/converter/m0110_usb +[terminal_usb]: https://github.com/tmk/tmk_keyboard/tree/master/converter/terminal_usb/ +[news_usb]: https://github.com/tmk/tmk_keyboard/tree/master/converter/news_usb/ +[x68k_usb]: https://github.com/tmk/tmk_keyboard/tree/master/converter/x68k_usb/ +[sun_usb]: https://github.com/tmk/tmk_keyboard/tree/master/converter/sun_usb/ +[pc98_usb]: https://github.com/tmk/tmk_keyboard/tree/master/converter/pc98_usb/ +[usb_usb]: https://github.com/tmk/tmk_keyboard/tree/master/converter/usb_usb/ +[ascii_usb]: https://github.com/tmk/tmk_keyboard/tree/master/converter/ascii_usb/ +[ibm4704_usb]: https://github.com/tmk/tmk_keyboard/tree/master/converter/ibm4704_usb +[hhkb]: https://github.com/tmk/tmk_keyboard/tree/master/keyboard/hhkb/ +[gh60]: https://github.com/tmk/tmk_keyboard/tree/master/keyboard/gh60/ +[hbkb]: https://github.com/tmk/tmk_keyboard/tree/master/keyboard/hbkb/ +[hid_liber]: https://github.com/tmk/tmk_keyboard/tree/master/keyboard/hid_liber/ +[phantom]: https://github.com/tmk/tmk_keyboard/tree/master/keyboard/phantom/ +[IIgs_Standard]: https://github.com/tmk/tmk_keyboard/tree/master/keyboard/IIgs/ +[macway]: https://github.com/tmk/tmk_keyboard/tree/master/keyboard/macway/ +[KMAC]: https://github.com/tmk/tmk_keyboard/tree/master/keyboard/kmac/ +[Lightsaber]: https://github.com/tmk/tmk_keyboard/tree/master/keyboard/lightsaber/ + [GH_macway]: http://geekhack.org/showwiki.php?title=Island:11930 [GH_hhkb]: http://geekhack.org/showwiki.php?title=Island:12047 [GH_ps2]: http://geekhack.org/showwiki.php?title=Island:14618 @@ -35,8 +56,8 @@ [GH_ibm4704]: http://geekhack.org/index.php?topic=54706.0 [HID_liber]: http://deskthority.net/wiki/HID_Liberation_Device_-_DIY_Instructions [Phantom]: http://geekhack.org/index.php?topic=26742 -[GH60]: http://geekhack.org/index.php?topic=34959 +[GH60_diy]: http://geekhack.org/index.php?topic=34959 [GH60_proto]: http://geekhack.org/index.php?topic=37570.0 [PC98]: http://en.wikipedia.org/wiki/NEC_PC-9801 [Sun]: http://en.wikipedia.org/wiki/Sun-3 -[IIGS]: http://en.wikipedia.org/wiki/Apple_IIGS \ No newline at end of file +[IIGS]: http://en.wikipedia.org/wiki/Apple_IIGS From b1a827aaa6e389edb7016b976405b51b164ecd0e Mon Sep 17 00:00:00 2001 From: tmk Date: Sat, 26 Apr 2014 12:53:55 -0700 Subject: [PATCH 038/517] Updated FAQ (markdown) --- FAQ.md | 25 +++++++------------------ 1 file changed, 7 insertions(+), 18 deletions(-) diff --git a/FAQ.md b/FAQ.md index 5cf8b69696..6c1a5b3bde 100644 --- a/FAQ.md +++ b/FAQ.md @@ -52,28 +52,17 @@ Check: # Miscellaneous ## NKRO Doesn't work -Build with this option of Makefile +1. Build with this option of Makefile NKRO_ENABLE = yes -And use `Magic` command **N** to toggle NKRO feature. -At this time NKRO is not used by default even if it is build with `NKRO_ENABLE`, you still need the `Magic`. +2. After boot keyboard may be in **boot mode**(6KRO), you will need to replug keyboard to enable NKRO. + +3. Or use `Magic` **N** command to toggle NKRO function. + + + -To turn on NKRO by default see this fix. -https://github.com/shayneholmes/tmk_keyboard/commit/b8375a0 -``` ---- a/common/host.c -+++ b/common/host.c -@@ -24,7 +24,7 @@ along with this program. If not, see . - - - #ifdef NKRO_ENABLE --bool keyboard_nkro = false; -+bool keyboard_nkro = true; - #endif - - static host_driver_t *driver; -``` ## 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. From fa9ce5771f069898e8477b2784dcf7031666847a Mon Sep 17 00:00:00 2001 From: tmk Date: Wed, 30 Apr 2014 20:45:43 -0700 Subject: [PATCH 039/517] Updated FAQ (markdown) --- FAQ.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/FAQ.md b/FAQ.md index 6c1a5b3bde..8e3879e671 100644 --- a/FAQ.md +++ b/FAQ.md @@ -58,9 +58,7 @@ Check: 2. After boot keyboard may be in **boot mode**(6KRO), you will need to replug keyboard to enable NKRO. -3. Or use `Magic` **N** command to toggle NKRO function. - - +3. Or use `Magic` **N** command to toggle NKRO function.(`LShift+RShift+N` by default) From 50a763a460b1553a6430427633d092d8327fed5f Mon Sep 17 00:00:00 2001 From: tmk Date: Mon, 12 May 2014 17:56:12 -0700 Subject: [PATCH 040/517] Updated FAQ (markdown) --- FAQ.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/FAQ.md b/FAQ.md index 8e3879e671..c648e41975 100644 --- a/FAQ.md +++ b/FAQ.md @@ -26,6 +26,16 @@ Windows only. Linux, OSX and other OS's doesn't require this. It looks like Wind You will need this after editing `CONSOLE_ENABLE`, `NKRO_ENABLE`, `EXTRAKEY_ENABLE` or `MOUSEKEY_ENABLE` option in **Makefile**. +# Keymap +## 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. + +http://geekhack.org/index.php?topic=14290.msg1327264#msg1327264 + + + # Degug Console ## hid_listen can't find device When debug console of your device is not ready you will see like this: From ea13eaf1c079c0acea1d0d1afcd21c6104a79462 Mon Sep 17 00:00:00 2001 From: tmk Date: Mon, 12 May 2014 17:56:34 -0700 Subject: [PATCH 041/517] Updated FAQ (markdown) --- FAQ.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FAQ.md b/FAQ.md index c648e41975..05d99cb7b2 100644 --- a/FAQ.md +++ b/FAQ.md @@ -28,7 +28,7 @@ You will need this after editing `CONSOLE_ENABLE`, `NKRO_ENABLE`, `EXTRAKEY_ENAB # Keymap ## Power key doesn't work -Use `KC_PWR` instead of 'KC_POWER` or vice versa. +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. From 7fad7ddb0bc9e256b7c2e25a96b226014d1c904b Mon Sep 17 00:00:00 2001 From: tmk Date: Wed, 14 May 2014 12:38:02 -0700 Subject: [PATCH 042/517] Updated FAQ (markdown) --- FAQ.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/FAQ.md b/FAQ.md index 05d99cb7b2..edcdbba954 100644 --- a/FAQ.md +++ b/FAQ.md @@ -1,4 +1,8 @@ # Build +## How to Build +See this first! +https://github.com/tmk/tmk_keyboard/blob/master/doc/build.md + ## 'make clean' needs after changing config.h To build with new **config.h** you need From b828fff7888239838a177b7caae0859688a608cf Mon Sep 17 00:00:00 2001 From: tmk Date: Fri, 16 May 2014 16:26:25 -0700 Subject: [PATCH 043/517] Updated FAQ (markdown) --- FAQ.md | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/FAQ.md b/FAQ.md index edcdbba954..2dc23b84a1 100644 --- a/FAQ.md +++ b/FAQ.md @@ -1,13 +1,38 @@ +# Documents You Need To Read +Read these yet? + +1. First **README** under top directory : https://github.com/tmk/tmk_keyboard/blob/master/README.md +2. For **Build**: https://github.com/tmk/tmk_keyboard/blob/master/doc/build.md +3. And **README** under each project(keyboard/converter) directory + +Note that you should read two **README**. + + # Build ## How to Build See this first! https://github.com/tmk/tmk_keyboard/blob/master/doc/build.md -## 'make clean' needs after changing config.h -To build with new **config.h** you need +In short, + + $ make clean + $ make [KEYMAP=...] + + +## Do 'make clean' before 'make' +You'll need `make clean` after you edit **config.h** or change options like `KEYMAP`. + +Frist remove all files made in previous build, $ make clean +then build new frimware. + + $ make [KEYMAP=...] + +Also you can always try `make clean` when you get other strange result during build. + + ## WINAVR is obsolete It is no longer recommended and may cause some problem. See [Issue #99](https://github.com/tmk/tmk_keyboard/issues/99). From f1ed69fa7badd5ffa2f60018c3a1600f974df1e4 Mon Sep 17 00:00:00 2001 From: tmk Date: Mon, 19 May 2014 18:38:09 -0700 Subject: [PATCH 044/517] Updated FAQ (markdown) --- FAQ.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/FAQ.md b/FAQ.md index 2dc23b84a1..d25795b70f 100644 --- a/FAQ.md +++ b/FAQ.md @@ -169,4 +169,12 @@ http://deskthority.net/workshop-f7/tmk-keyboard-firmware-collection-t4478-60.htm ## 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. -Pressing any key during sleep should wake host. \ No newline at end of file +Pressing any key during sleep should wake host. + + +## Using Arduino? +**Note that Arduino pin naming is different from actual chip.** For example, Arduino pin `D0` is not `PD0`. Check circuit with its schematics yourself. +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. \ No newline at end of file From 520ddc19a11f8b8ad0ec0740f5a4b8dab673c671 Mon Sep 17 00:00:00 2001 From: tmk Date: Mon, 19 May 2014 18:39:29 -0700 Subject: [PATCH 045/517] Updated FAQ (markdown) --- FAQ.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/FAQ.md b/FAQ.md index d25795b70f..9bb74c7276 100644 --- a/FAQ.md +++ b/FAQ.md @@ -174,7 +174,8 @@ Pressing any key during sleep should wake host. ## Using Arduino? **Note that Arduino pin naming is different from actual chip.** For example, Arduino pin `D0` is not `PD0`. Check circuit with its schematics yourself. -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. \ No newline at end of file +- 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. \ No newline at end of file From 3c446334e9ab2761af3c76855250183585b61aed Mon Sep 17 00:00:00 2001 From: tmk Date: Thu, 19 Jun 2014 21:12:04 -0700 Subject: [PATCH 046/517] Updated FAQ (markdown) --- FAQ.md | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/FAQ.md b/FAQ.md index 9bb74c7276..a411c7c6f1 100644 --- a/FAQ.md +++ b/FAQ.md @@ -178,4 +178,18 @@ 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. \ No newline at end of file +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(ATMega32U* or AT90USB*)? +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. If you are using Teensy this isn't needed. Teensy is shipped with JTAGEN fuse bit unprogrammed to disable the function. + +See this code. +``` + // JTAG disable for PORT F. write JTD bit twice within four cycles. + MCUCR |= (1< Date: Thu, 19 Jun 2014 21:14:25 -0700 Subject: [PATCH 047/517] Updated FAQ (markdown) --- FAQ.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/FAQ.md b/FAQ.md index a411c7c6f1..113948c0ef 100644 --- a/FAQ.md +++ b/FAQ.md @@ -181,8 +181,10 @@ Pressing any key during sleep should wake host. 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(ATMega32U* or AT90USB*)? -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. If you are using Teensy this isn't needed. Teensy is shipped with JTAGEN fuse bit unprogrammed to disable the function. +## 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. + +If you are using Teensy this isn't needed. Teensy is shipped with JTAGEN fuse bit unprogrammed to disable the function. See this code. ``` From 8daad815e8f36d5846461ca32784d7422e7ff305 Mon Sep 17 00:00:00 2001 From: tmk Date: Sun, 28 Sep 2014 00:41:36 -0700 Subject: [PATCH 048/517] Updated FAQ (markdown) --- FAQ.md | 395 +++++++++++++++++++++++++++++---------------------------- 1 file changed, 199 insertions(+), 196 deletions(-) diff --git a/FAQ.md b/FAQ.md index 113948c0ef..edac871904 100644 --- a/FAQ.md +++ b/FAQ.md @@ -1,197 +1,200 @@ -# Documents You Need To Read -Read these yet? - -1. First **README** under top directory : https://github.com/tmk/tmk_keyboard/blob/master/README.md -2. For **Build**: https://github.com/tmk/tmk_keyboard/blob/master/doc/build.md -3. And **README** under each project(keyboard/converter) directory - -Note that you should read two **README**. - - -# Build -## How to Build -See this first! -https://github.com/tmk/tmk_keyboard/blob/master/doc/build.md - -In short, - - $ make clean - $ make [KEYMAP=...] - - -## Do 'make clean' before 'make' -You'll need `make clean` after you edit **config.h** or change options like `KEYMAP`. - -Frist remove all files made in previous build, - - $ make clean - -then build new frimware. - - $ make [KEYMAP=...] - -Also you can always try `make clean` when you get other strange result during build. - - -## WINAVR is obsolete -It is no longer recommended and may cause some problem. -See [Issue #99](https://github.com/tmk/tmk_keyboard/issues/99). - -## USB stack: LUFA or PJRC? -Use **LUFA**. - -**PJRC** stack won't be supported actively anymore. There is no reason to hesitate to use LUFA except for binary size(about 1KB lager?). But **PJRC** is still very useful for debug and development purpose. -See also [Issue #50](https://github.com/tmk/tmk_keyboard/issues/50) and [Issue #58](https://github.com/tmk/tmk_keyboard/issues/58). - - -## Edit configuration but not change -Try these. -### 1. make clean -This will be needed when you edit **config.h**. - -### 2. Remove Drivers from Device Manager(Windows) -Windows only. Linux, OSX and other OS's doesn't require this. It looks like Windows keeps using driver installed when device was connected first time even after the device changes its configuration. To load proper drivers for new configuration you need to remove existent drivers from **Drvice Manager**. - -You will need this after editing `CONSOLE_ENABLE`, `NKRO_ENABLE`, `EXTRAKEY_ENABLE` or `MOUSEKEY_ENABLE` option in **Makefile**. - - -# Keymap -## 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. - -http://geekhack.org/index.php?topic=14290.msg1327264#msg1327264 - - - -# Degug Console -## hid_listen can't find 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: - - Waiting for new device:......................... - Listening: - -Check if you can't get this 'Listening:' message: -- build with `CONSOLE_ENABLE=yes` in **Makefile**. - -## Can't get message from console -Check: -- connect the device to *hid_listen*. See above. -- push **LShift+RShift+d** to enable debug. See [Magic Commands](https://github.com/tmk/tmk_keyboard#magic-commands). -- set `debug_enable=yes` usually in `matrix_init()` in **matrix.c**. -- 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). - -*** - -# Miscellaneous -## NKRO Doesn't work -1. Build with this option of Makefile - - NKRO_ENABLE = yes - -2. After boot keyboard may be in **boot mode**(6KRO), you will need to replug keyboard to enable NKRO. - -3. Or use `Magic` **N** command to toggle NKRO function.(`LShift+RShift+N` by default) - - - -## 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. - -- http://geekhack.org/index.php?topic=50176.msg1127447#msg1127447 -- http://www.mikrocontroller.net/attachment/52583/tpm754.pdf - - -## Can't read comlumn of matrix beyond 16 -Use `1UL<<16` intead 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`. - -http://deskthority.net/workshop-f7/rebuilding-and-redesigning-a-classic-thinkpad-keyboard-t6181-60.html#p146279 - - - -## Pull-up Resistor -In some case converters needed to have pull-up resistors to work correctly. Place the resistor between VCC and signal line in parallel. - -``` -Keyboard Conveter - ,------. -5V------+------|VCC | - | | | - R | | - | | | -Signal--+------|PD0 | - | | -GND------------|GND | - `------' -R: 1K Ohm resistor -``` - - -## Arduino Micro's pin naming is confusing -Note that Arduino Micro PCB marking is different from real AVR port name. D0 of Arduino Micro is not PD0, PD0 is D3. Check schematic yourself. -http://arduino.cc/en/uploads/Main/arduino-micro-schematic.pdf - - - -## Bootloader jump doesn't work -Properly configure boot section size in Makefile. With wrong section size bootloader won't probably start with **Magic command** and **Boot Magic**. -- https://github.com/tmk/tmk_keyboard#magic-commands -- https://github.com/tmk/tmk_keyboard#bootloader - -``` -# Boot Section Size in *bytes* -# Teensy halfKay 512 -# Teensy++ halfKay 1024 -# Atmel DFU loader 4096 (TMK Alt Controller) -# LUFA bootloader 4096 -# USBaspLoader 2048 -OPT_DEFS += -DBOOTLOADER_SIZE=4096 -``` -http://geekhack.org/index.php?topic=12047.msg1292018#msg1292018 - - -## Special Extra key doesn't work(System, Audio control keys) -You need to define `EXTRAKEY_ENABLE` in **makefile** to use them in TMK. -``` -EXTRAKEY_ENABLE = yes # Audio control and System control -``` -http://deskthority.net/workshop-f7/tmk-keyboard-firmware-collection-t4478-60.html#p157919 - - -## 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. - -Pressing any key during sleep should wake host. - - -## Using Arduino? -**Note that Arduino pin naming is different from actual chip.** For example, Arduino pin `D0` is not `PD0`. Check circuit with its schematics yourself. - -- 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. - - -## 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. - -If you are using Teensy this isn't needed. Teensy is shipped with JTAGEN fuse bit unprogrammed to disable the function. - -See this code. -``` - // JTAG disable for PORT F. write JTD bit twice within four cycles. - MCUCR |= (1< Date: Sun, 28 Sep 2014 00:44:31 -0700 Subject: [PATCH 049/517] Updated FAQ (markdown) --- FAQ.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/FAQ.md b/FAQ.md index edac871904..876cdd0519 100644 --- a/FAQ.md +++ b/FAQ.md @@ -63,7 +63,8 @@ Use `KC_PWR` instead of `KC_POWER` or vice versa. http://geekhack.org/index.php?topic=14290.msg1327264#msg1327264 - +## Oneshot modifier +https://github.com/tmk/tmk_keyboard/issues/71 # Degug Console ## hid_listen can't find device From 7219c4a4b6aa3657a722676965039411ec35c6f9 Mon Sep 17 00:00:00 2001 From: tmk Date: Sun, 28 Sep 2014 00:53:13 -0700 Subject: [PATCH 050/517] Updated FAQ (markdown) --- FAQ.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/FAQ.md b/FAQ.md index 876cdd0519..3e6f650322 100644 --- a/FAQ.md +++ b/FAQ.md @@ -64,7 +64,8 @@ Use `KC_PWR` instead of `KC_POWER` or vice versa. http://geekhack.org/index.php?topic=14290.msg1327264#msg1327264 ## Oneshot modifier -https://github.com/tmk/tmk_keyboard/issues/71 +Solves my personal 'the' problem. I often got 'the' or 'THe' wrongly instead of 'The'. Oneshot Shift mitgates this for me. +https://github.com/tmk/tmk_keyboard/issues/67 # Degug Console ## hid_listen can't find device From f91c584a4465c78885e6590cb2702fe5531aac73 Mon Sep 17 00:00:00 2001 From: tmk Date: Thu, 16 Oct 2014 23:42:21 -0700 Subject: [PATCH 051/517] Updated FAQ (markdown) --- FAQ.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/FAQ.md b/FAQ.md index 3e6f650322..df4aaf5825 100644 --- a/FAQ.md +++ b/FAQ.md @@ -67,6 +67,14 @@ http://geekhack.org/index.php?topic=14290.msg1327264#msg1327264 Solves my personal 'the' problem. I often got 'the' or 'THe' wrongly instead of 'The'. Oneshot Shift mitgates this for me. https://github.com/tmk/tmk_keyboard/issues/67 +## 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_keyboard/blob/master/doc/keymap.md#31-momentary-switching +http://geekhack.org/index.php?topic=57008.msg1492604#msg1492604 + + # Degug Console ## hid_listen can't find device When debug console of your device is not ready you will see like this: From b4eea94baa7f15ff95bd2f084d66b141807d533b Mon Sep 17 00:00:00 2001 From: tmk Date: Sun, 2 Nov 2014 17:58:42 -0800 Subject: [PATCH 052/517] Updated FAQ (markdown) --- FAQ.md | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/FAQ.md b/FAQ.md index df4aaf5825..5e17865e71 100644 --- a/FAQ.md +++ b/FAQ.md @@ -89,7 +89,7 @@ once the device is pluged in then *hid_listen* finds it you will get this messag Check if you can't get this 'Listening:' message: - build with `CONSOLE_ENABLE=yes` in **Makefile**. -## Can't get message from console +## Can't get message on console Check: - connect the device to *hid_listen*. See above. - push **LShift+RShift+d** to enable debug. See [Magic Commands](https://github.com/tmk/tmk_keyboard#magic-commands). @@ -97,6 +97,20 @@ 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 +Just use 'sudo' to execute 'hid_listen' with privilege. +``` +$ sudo hid_listen +``` + +Or add an *udev rule* for TMK devices with placing a file in rules directory. The directory may vary on each system. + +File: /etc/udev/rules.d/52-tmk-keyboard.rules(in case of Ubuntu) +``` +# tmk keyboard products https://github.com/tmk/tmk_keyboard +SUBSYSTEMS=="usb", ATTRS{idVendor}=="feed", MODE:="0666" +``` + *** # Miscellaneous From fb3c7c0572205e4f7c01e24e1ce250c45f68b24f Mon Sep 17 00:00:00 2001 From: tmk Date: Sun, 2 Nov 2014 18:02:12 -0800 Subject: [PATCH 053/517] Updated FAQ (markdown) --- FAQ.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/FAQ.md b/FAQ.md index 5e17865e71..a73176b479 100644 --- a/FAQ.md +++ b/FAQ.md @@ -76,7 +76,7 @@ http://geekhack.org/index.php?topic=57008.msg1492604#msg1492604 # Degug Console -## hid_listen can't find device +## hid_listen can't recognize device When debug console of your device is not ready you will see like this: Waiting for device:......... @@ -91,14 +91,14 @@ Check if you can't get this 'Listening:' message: ## Can't get message on console Check: -- connect the device to *hid_listen*. See above. -- push **LShift+RShift+d** to enable debug. See [Magic Commands](https://github.com/tmk/tmk_keyboard#magic-commands). +- *hid_listen* finds your device. See above. +- Enable debug with pressing **Magic**+d. See [Magic Commands](https://github.com/tmk/tmk_keyboard#magic-commands). - set `debug_enable=yes` usually in `matrix_init()` in **matrix.c**. - 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 -Just use 'sudo' to execute 'hid_listen' with privilege. +Just use 'sudo' to execute *hid_listen* with privilege. ``` $ sudo hid_listen ``` From 9e51e54240f60b77fd8452aad94da35940e94673 Mon Sep 17 00:00:00 2001 From: tmk Date: Sat, 8 Nov 2014 21:32:20 -0800 Subject: [PATCH 054/517] Updated FAQ (markdown) --- FAQ.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/FAQ.md b/FAQ.md index a73176b479..7025c49c4d 100644 --- a/FAQ.md +++ b/FAQ.md @@ -221,4 +221,8 @@ See this code. ``` 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. \ No newline at end of file +And read **26.5.1 MCU Control Register – MCUCR** of ATMega32U4 datasheet. + +## 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 \ No newline at end of file From e52a7cf4482b5e4279b6f7058c30d227b7626249 Mon Sep 17 00:00:00 2001 From: tmk Date: Sat, 8 Nov 2014 21:32:43 -0800 Subject: [PATCH 055/517] Updated FAQ (markdown) --- FAQ.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/FAQ.md b/FAQ.md index 7025c49c4d..c1ce6b0480 100644 --- a/FAQ.md +++ b/FAQ.md @@ -223,6 +223,8 @@ 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 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 \ No newline at end of file From e6d58d5ac23b87dd9c2e16421cda289b4c1a99cc Mon Sep 17 00:00:00 2001 From: tmk Date: Sun, 16 Nov 2014 21:49:31 -0800 Subject: [PATCH 056/517] Updated FAQ (markdown) --- FAQ.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/FAQ.md b/FAQ.md index c1ce6b0480..739cea5cb3 100644 --- a/FAQ.md +++ b/FAQ.md @@ -75,6 +75,17 @@ https://github.com/tmk/tmk_keyboard/blob/master/doc/keymap.md#31-momentary-switc http://geekhack.org/index.php?topic=57008.msg1492604#msg1492604 +## Mechanical Lock Switch Support +LOCKING_SUPPORT is for mechanical lock switch like this Alps one. http://deskthority.net/wiki/Alps_SKCL_Lock + +Using enabling LOCKING_SUPPORT and using LCAP keycode in keymap you can use physical locking Capslock key as you expected. For example, Apple Extended Keyboard(AEK) and AEK II have. + +Old vintage mechanical keyboard occasionally has lock switch but modern ones including your HHKB don't have. You don't need LOCKING_SUPPORT for HHKB and just use CAPS for Capslock. + +With default HHKB keymap you can register Capslock with FN0+Tab. This doesn't work for you? + + + # Degug Console ## hid_listen can't recognize device When debug console of your device is not ready you will see like this: From c5dfee04afe6fd224802b157d9932a489a26500b Mon Sep 17 00:00:00 2001 From: tmk Date: Sun, 16 Nov 2014 21:50:43 -0800 Subject: [PATCH 057/517] Updated FAQ (markdown) --- FAQ.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/FAQ.md b/FAQ.md index 739cea5cb3..19932de3a5 100644 --- a/FAQ.md +++ b/FAQ.md @@ -76,14 +76,14 @@ http://geekhack.org/index.php?topic=57008.msg1492604#msg1492604 ## Mechanical Lock Switch Support +https://github.com/tmk/tmk_keyboard#mechanical-locking-support + LOCKING_SUPPORT is for mechanical lock switch like this Alps one. http://deskthority.net/wiki/Alps_SKCL_Lock Using enabling LOCKING_SUPPORT and using LCAP keycode in keymap you can use physical locking Capslock key as you expected. For example, Apple Extended Keyboard(AEK) and AEK II have. Old vintage mechanical keyboard occasionally has lock switch but modern ones including your HHKB don't have. You don't need LOCKING_SUPPORT for HHKB and just use CAPS for Capslock. -With default HHKB keymap you can register Capslock with FN0+Tab. This doesn't work for you? - # Degug Console From 00a8847daf35b272b4dc2d3cf5cd2287058975af Mon Sep 17 00:00:00 2001 From: tmk Date: Sun, 16 Nov 2014 22:00:14 -0800 Subject: [PATCH 058/517] Updated FAQ (markdown) --- FAQ.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/FAQ.md b/FAQ.md index 19932de3a5..91f209d0ae 100644 --- a/FAQ.md +++ b/FAQ.md @@ -78,11 +78,12 @@ http://geekhack.org/index.php?topic=57008.msg1492604#msg1492604 ## Mechanical Lock Switch Support https://github.com/tmk/tmk_keyboard#mechanical-locking-support -LOCKING_SUPPORT is for mechanical lock switch like this Alps one. http://deskthority.net/wiki/Alps_SKCL_Lock +This feature is for *mechanical lock switch* like this Alps one. +http://deskthority.net/wiki/Alps_SKCL_Lock -Using enabling LOCKING_SUPPORT and using LCAP keycode in keymap you can use physical locking Capslock key as you expected. For example, Apple Extended Keyboard(AEK) and AEK II have. +Using enabling this feature and using keycodes `LCAP`, `LNUM` or `LSCR` in keymap you can use physical locking CapsLock, NumLock or ScrollLock keys as you expected. -Old vintage mechanical keyboard occasionally has lock switch but modern ones including your HHKB don't have. You don't need LOCKING_SUPPORT for HHKB and just use CAPS for Capslock. +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 `CAPS` for Capslock.*** From 67416629e3aa35cf76b98aa958c606a61d1b25e5 Mon Sep 17 00:00:00 2001 From: tmk Date: Sun, 16 Nov 2014 22:24:54 -0800 Subject: [PATCH 059/517] Updated FAQ (markdown) --- FAQ.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FAQ.md b/FAQ.md index 91f209d0ae..b4f2fde0c0 100644 --- a/FAQ.md +++ b/FAQ.md @@ -83,7 +83,7 @@ http://deskthority.net/wiki/Alps_SKCL_Lock Using enabling this feature and using keycodes `LCAP`, `LNUM` or `LSCR` in keymap you can use physical locking CapsLock, NumLock or ScrollLock keys as you expected. -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 `CAPS` for Capslock.*** +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 `CAPS`, `NLCK` and `SLCK`.*** From 3d9d4bfe3e9722f12cebe6bd5e62d1456143add3 Mon Sep 17 00:00:00 2001 From: tmk Date: Sun, 23 Nov 2014 19:03:45 -0800 Subject: [PATCH 060/517] Updated Home (markdown) --- Home.md | 1 + 1 file changed, 1 insertion(+) diff --git a/Home.md b/Home.md index 329d24e077..2ffc3ec72c 100644 --- a/Home.md +++ b/Home.md @@ -4,3 +4,4 @@ Welcome to the tmk_keyboard wiki! - [[FAQ]] - [Keymap Editor](http://tmk.github.io/tmk_keyboard/editor/index.html) (beta) - [[Compatible Microcontrollers]] +- [[HHKB Alt controller]] \ No newline at end of file From 43f121497f83070d493238104905d59ba7a33b67 Mon Sep 17 00:00:00 2001 From: tmk Date: Sun, 23 Nov 2014 19:07:09 -0800 Subject: [PATCH 061/517] Created HHKB Alt controller (markdown) --- HHKB-Alt-controller.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 HHKB-Alt-controller.md diff --git a/HHKB-Alt-controller.md b/HHKB-Alt-controller.md new file mode 100644 index 0000000000..c12d8d7ff9 --- /dev/null +++ b/HHKB-Alt-controller.md @@ -0,0 +1,5 @@ +# Alternative Controller for HHKB + +* [Geekhack.org thread](https://geekhack.org/index.php?topic=12047.0) + +* [Connector unmate](https://geekhack.org/index.php?topic=12047.msg1543860#msg1543860) \ No newline at end of file From ae8ddde1cf28c3414ae3087ff2a436b488da5e11 Mon Sep 17 00:00:00 2001 From: tmk Date: Wed, 26 Nov 2014 17:35:24 -0800 Subject: [PATCH 062/517] Updated Home (markdown) --- Home.md | 1 + 1 file changed, 1 insertion(+) diff --git a/Home.md b/Home.md index 2ffc3ec72c..35f315459b 100644 --- a/Home.md +++ b/Home.md @@ -2,6 +2,7 @@ Welcome to the tmk_keyboard wiki! - [[Projects]] - [[FAQ]] +- [[FAQ - keymap]] - [Keymap Editor](http://tmk.github.io/tmk_keyboard/editor/index.html) (beta) - [[Compatible Microcontrollers]] - [[HHKB Alt controller]] \ No newline at end of file From b129491366bd7fc7daa4c51c4ebb58f9690ef44c Mon Sep 17 00:00:00 2001 From: tmk Date: Wed, 26 Nov 2014 17:38:39 -0800 Subject: [PATCH 063/517] Updated Home (markdown) --- Home.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Home.md b/Home.md index 35f315459b..26064b5b57 100644 --- a/Home.md +++ b/Home.md @@ -2,7 +2,7 @@ Welcome to the tmk_keyboard wiki! - [[Projects]] - [[FAQ]] -- [[FAQ - keymap]] +- [[FAQ/keymap]] - [Keymap Editor](http://tmk.github.io/tmk_keyboard/editor/index.html) (beta) - [[Compatible Microcontrollers]] - [[HHKB Alt controller]] \ No newline at end of file From 1793bfd0966c0da91bbd79bebd4505e7981cc8ac Mon Sep 17 00:00:00 2001 From: tmk Date: Wed, 26 Nov 2014 17:38:54 -0800 Subject: [PATCH 064/517] Updated Home (markdown) --- Home.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Home.md b/Home.md index 26064b5b57..543d94694d 100644 --- a/Home.md +++ b/Home.md @@ -2,7 +2,7 @@ Welcome to the tmk_keyboard wiki! - [[Projects]] - [[FAQ]] -- [[FAQ/keymap]] +- [[FAQ/Keymap]] - [Keymap Editor](http://tmk.github.io/tmk_keyboard/editor/index.html) (beta) - [[Compatible Microcontrollers]] - [[HHKB Alt controller]] \ No newline at end of file From 083c77390a3c6cd2663259cba4fa431ad8400818 Mon Sep 17 00:00:00 2001 From: tmk Date: Wed, 26 Nov 2014 17:40:02 -0800 Subject: [PATCH 065/517] Created FAQ Keymap (markdown) --- FAQ-Keymap.md | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 FAQ-Keymap.md diff --git a/FAQ-Keymap.md b/FAQ-Keymap.md new file mode 100644 index 0000000000..0dc7e2426c --- /dev/null +++ b/FAQ-Keymap.md @@ -0,0 +1,29 @@ +# Keymap +## 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. + +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. +https://github.com/tmk/tmk_keyboard/issues/67 + +## 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_keyboard/blob/master/doc/keymap.md#31-momentary-switching +http://geekhack.org/index.php?topic=57008.msg1492604#msg1492604 + + +## Mechanical Lock Switch Support +https://github.com/tmk/tmk_keyboard#mechanical-locking-support + +This feature is for *mechanical lock switch* like this Alps one. +http://deskthority.net/wiki/Alps_SKCL_Lock + +Using enabling this feature and using keycodes `LCAP`, `LNUM` or `LSCR` in keymap you can use physical locking CapsLock, NumLock or ScrollLock keys as you expected. + +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 `CAPS`, `NLCK` and `SLCK`.*** \ No newline at end of file From bdafdf1ef8f7c5d5a1385462a95ba34bbd0d15b4 Mon Sep 17 00:00:00 2001 From: tmk Date: Wed, 26 Nov 2014 17:40:28 -0800 Subject: [PATCH 066/517] Updated FAQ (markdown) --- FAQ.md | 28 ---------------------------- 1 file changed, 28 deletions(-) diff --git a/FAQ.md b/FAQ.md index b4f2fde0c0..4b5a75fb0f 100644 --- a/FAQ.md +++ b/FAQ.md @@ -55,35 +55,7 @@ Windows only. Linux, OSX and other OS's doesn't require this. It looks like Wind You will need this after editing `CONSOLE_ENABLE`, `NKRO_ENABLE`, `EXTRAKEY_ENABLE` or `MOUSEKEY_ENABLE` option in **Makefile**. -# Keymap -## 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. -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. -https://github.com/tmk/tmk_keyboard/issues/67 - -## 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_keyboard/blob/master/doc/keymap.md#31-momentary-switching -http://geekhack.org/index.php?topic=57008.msg1492604#msg1492604 - - -## Mechanical Lock Switch Support -https://github.com/tmk/tmk_keyboard#mechanical-locking-support - -This feature is for *mechanical lock switch* like this Alps one. -http://deskthority.net/wiki/Alps_SKCL_Lock - -Using enabling this feature and using keycodes `LCAP`, `LNUM` or `LSCR` in keymap you can use physical locking CapsLock, NumLock or ScrollLock keys as you expected. - -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 `CAPS`, `NLCK` and `SLCK`.*** From e40086b2fe62c20f4c1d28cbb2e311b2432077d7 Mon Sep 17 00:00:00 2001 From: tmk Date: Wed, 26 Nov 2014 17:41:40 -0800 Subject: [PATCH 067/517] Updated FAQ (markdown) --- FAQ.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/FAQ.md b/FAQ.md index 4b5a75fb0f..51490bb5b6 100644 --- a/FAQ.md +++ b/FAQ.md @@ -7,6 +7,9 @@ Read these yet? Note that you should read two **README**. +Then FAQ. +- [[FAQ/Keymap]] + # Build ## How to Build From 2a7bd276a4aabf781c851a17b57b6a977494013a Mon Sep 17 00:00:00 2001 From: tmk Date: Wed, 26 Nov 2014 17:41:59 -0800 Subject: [PATCH 068/517] Updated FAQ (markdown) --- FAQ.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FAQ.md b/FAQ.md index 51490bb5b6..eadb398f92 100644 --- a/FAQ.md +++ b/FAQ.md @@ -7,7 +7,7 @@ Read these yet? Note that you should read two **README**. -Then FAQ. +4. And then, FAQ. - [[FAQ/Keymap]] From 686476fa9385b8767fee678ac77382ba4fda3f67 Mon Sep 17 00:00:00 2001 From: tmk Date: Wed, 26 Nov 2014 17:42:52 -0800 Subject: [PATCH 069/517] Updated FAQ (markdown) --- FAQ.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/FAQ.md b/FAQ.md index eadb398f92..8248fe226f 100644 --- a/FAQ.md +++ b/FAQ.md @@ -3,11 +3,9 @@ Read these yet? 1. First **README** under top directory : https://github.com/tmk/tmk_keyboard/blob/master/README.md 2. For **Build**: https://github.com/tmk/tmk_keyboard/blob/master/doc/build.md -3. And **README** under each project(keyboard/converter) directory - -Note that you should read two **README**. - +3. And **README** under each project(keyboard/converter) directory. Note that you should read two **README**. 4. And then, FAQ. + - [[FAQ/Keymap]] From 4178b005332e032240404ba57e759c40df242627 Mon Sep 17 00:00:00 2001 From: tmk Date: Wed, 26 Nov 2014 18:11:41 -0800 Subject: [PATCH 070/517] Updated FAQ Keymap (markdown) --- FAQ-Keymap.md | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/FAQ-Keymap.md b/FAQ-Keymap.md index 0dc7e2426c..410e399dbf 100644 --- a/FAQ-Keymap.md +++ b/FAQ-Keymap.md @@ -26,4 +26,24 @@ http://deskthority.net/wiki/Alps_SKCL_Lock Using enabling this feature and using keycodes `LCAP`, `LNUM` or `LSCR` in keymap you can use physical locking CapsLock, NumLock or ScrollLock keys as you expected. -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 `CAPS`, `NLCK` and `SLCK`.*** \ No newline at end of file +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 `CAPS`, `NLCK` and `SLCK`.*** + + +## Input language specific charactors 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 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 + +On **Mac** OS defines `Option` key combinations. +- 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 + +And see this for **Unicode** input. +- http://en.wikipedia.org/wiki/Unicode_input \ No newline at end of file From d4437d66945160af7af216ea0c71f9b5fc82add8 Mon Sep 17 00:00:00 2001 From: tmk Date: Wed, 26 Nov 2014 18:12:07 -0800 Subject: [PATCH 071/517] Updated FAQ Keymap (markdown) --- FAQ-Keymap.md | 1 + 1 file changed, 1 insertion(+) diff --git a/FAQ-Keymap.md b/FAQ-Keymap.md index 410e399dbf..87a21d0f25 100644 --- a/FAQ-Keymap.md +++ b/FAQ-Keymap.md @@ -33,6 +33,7 @@ Old vintage mechanical keyboards occasionally have lock switches but modern ones 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 code. + http://deskthority.net/workshop-f7/tmk-keyboard-firmware-collection-t4478-120.html#p195620 On **Windows** you can use `AltGr` key or **Alt code**. From cca7b107272892cc512b3cf68aa0de4723491b96 Mon Sep 17 00:00:00 2001 From: tmk Date: Wed, 26 Nov 2014 18:12:44 -0800 Subject: [PATCH 072/517] Updated FAQ Keymap (markdown) --- FAQ-Keymap.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/FAQ-Keymap.md b/FAQ-Keymap.md index 87a21d0f25..c1d57dc28a 100644 --- a/FAQ-Keymap.md +++ b/FAQ-Keymap.md @@ -30,9 +30,9 @@ Old vintage mechanical keyboards occasionally have lock switches but modern ones ## Input language specific charactors 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. +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 code. +See this post for example **MACRO** code. http://deskthority.net/workshop-f7/tmk-keyboard-firmware-collection-t4478-120.html#p195620 From f7172ff5a60cb501375aa147b806151a6b6d765e Mon Sep 17 00:00:00 2001 From: tmk Date: Wed, 26 Nov 2014 18:13:26 -0800 Subject: [PATCH 073/517] Updated FAQ Keymap (markdown) --- FAQ-Keymap.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FAQ-Keymap.md b/FAQ-Keymap.md index c1d57dc28a..a74228365c 100644 --- a/FAQ-Keymap.md +++ b/FAQ-Keymap.md @@ -29,7 +29,7 @@ Using enabling this feature and using keycodes `LCAP`, `LNUM` or `LSCR` in keyma 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 `CAPS`, `NLCK` and `SLCK`.*** -## Input language specific charactors other than ASCII like Cédille 'Ç' +## Input special charactors 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. From bf5638e51194f7c10fa95f2bdbe7bb443606216d Mon Sep 17 00:00:00 2001 From: tmk Date: Wed, 26 Nov 2014 20:17:46 -0800 Subject: [PATCH 074/517] Updated FAQ (markdown) --- FAQ.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/FAQ.md b/FAQ.md index 8248fe226f..6ab748e804 100644 --- a/FAQ.md +++ b/FAQ.md @@ -56,7 +56,26 @@ Windows only. Linux, OSX and other OS's doesn't require this. It looks like Wind You will need this after editing `CONSOLE_ENABLE`, `NKRO_ENABLE`, `EXTRAKEY_ENABLE` or `MOUSEKEY_ENABLE` option in **Makefile**. +## 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 least chance of collision with other product. So I don't think it is worth bugging them to get prototype VID. +For example TMK uses following numbers. +``` +keyboard: +hhkb: FEED:CAFE +gh60: FEED:6060 + +converter: +x68k: FEED:6800 +ps2: FEED:6512 +adb: FEED:0ADB +ibm4704: FEED:4704 +pc98: FEED:9898 +``` + +Also see this. +https://github.com/tmk/tmk_keyboard/issues/150 From 69fe8cf2325f1b25c82c6f6f2e23184a379e3ab6 Mon Sep 17 00:00:00 2001 From: tmk Date: Wed, 26 Nov 2014 21:06:32 -0800 Subject: [PATCH 075/517] Updated FAQ (markdown) --- FAQ.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/FAQ.md b/FAQ.md index 6ab748e804..1f5822a700 100644 --- a/FAQ.md +++ b/FAQ.md @@ -57,10 +57,9 @@ You will need this after editing `CONSOLE_ENABLE`, `NKRO_ENABLE`, `EXTRAKEY_ENAB ## 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 least chance of collision with other product. So I don't think it is worth bugging them to get prototype VID. +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 least chance of collision with other product. -For example TMK uses following numbers. +For example TMK uses following numbers by default. ``` keyboard: hhkb: FEED:CAFE @@ -77,6 +76,9 @@ pc98: FEED:9898 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 # Degug Console From b105d83bcebe154b76a18baa727c8f6569fe5f9d Mon Sep 17 00:00:00 2001 From: tmk Date: Mon, 15 Dec 2014 19:07:42 -0800 Subject: [PATCH 076/517] Updated FAQ (markdown) --- FAQ.md | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/FAQ.md b/FAQ.md index 1f5822a700..9d73012bcb 100644 --- a/FAQ.md +++ b/FAQ.md @@ -233,4 +233,16 @@ And read **26.5.1 MCU Control Register – MCUCR** of ATMega32U4 datasheet. ## 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 \ No newline at end of file +http://deskthority.net/workshop-f7/tmk-keyboard-firmware-collection-t4478-120.html#p191560 + +## Program Arduino Micro/Leonardo +Push reset button and then run command like this within 8 seconds. + +``` +avrdude -patmega32u4 -cavr109 -b57600 -Uflash:w:adb_usb.hex -P/dev/ttyACM0 +``` + +Device name will vary depending on your system. + +http://arduino.cc/en/Main/ArduinoBoardMicro +https://geekhack.org/index.php?topic=14290.msg1563867#msg1563867 \ No newline at end of file From 464b9a80d46c8e66f6952bdb016be8513b45b301 Mon Sep 17 00:00:00 2001 From: tmk Date: Mon, 29 Dec 2014 20:15:33 -0800 Subject: [PATCH 077/517] Updated Home (markdown) --- Home.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Home.md b/Home.md index 543d94694d..7cbd36091f 100644 --- a/Home.md +++ b/Home.md @@ -5,4 +5,5 @@ Welcome to the tmk_keyboard wiki! - [[FAQ/Keymap]] - [Keymap Editor](http://tmk.github.io/tmk_keyboard/editor/index.html) (beta) - [[Compatible Microcontrollers]] -- [[HHKB Alt controller]] \ No newline at end of file +- [[HHKB Alt controller]] +- [[mbed/cortex porting]] \ No newline at end of file From 75cb446d3644ba04f6ae31f63fa781c1c384d94a Mon Sep 17 00:00:00 2001 From: tmk Date: Mon, 29 Dec 2014 20:17:06 -0800 Subject: [PATCH 078/517] Created mbed cortex porting (markdown) --- mbed-cortex-porting.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 mbed-cortex-porting.md diff --git a/mbed-cortex-porting.md b/mbed-cortex-porting.md new file mode 100644 index 0000000000..2889bbfbab --- /dev/null +++ b/mbed-cortex-porting.md @@ -0,0 +1,22 @@ +## cstddef compile error + + +``` +$ make -f Makefile.mbed +mkdir -p build/. +arm-none-eabi-g++ -include config_mbed.h -mcpu=cortex-m0 -mthumb -c -g -fno-common -fmessage-length=0 -Wall -fno-exceptions -ffunction-sections -fdata-sections -fomit-frame-pointer -fshort-wchar -fno-builtin -MMD -MP -DNDEBUG -Os -DTARGET_LPC11U35_401 -DTARGET_M0 -DTARGET_NXP -DTARGET_LPC11UXX -DTOOLCHAIN_GCC_ARM -DTOOLCHAIN_GCC -D__CORTEX_M0 -DARM_MATH_CM0 -DMBED_BUILD_TIMESTAMP=1399108688.49 -D__MBED__=1 -std=gnu++98 -I. -I../../mbed-sdk/libraries/mbed/targets -I../../mbed-sdk/libraries/mbed/targets/cmsis -I../../mbed-sdk/libraries/mbed/targets/cmsis/TARGET_NXP -I../../mbed-sdk/libraries/mbed/targets/cmsis/TARGET_NXP/TARGET_LPC11UXX -I../../mbed-sdk/libraries/mbed/targets/cmsis/TARGET_NXP/TARGET_LPC11UXX/TOOLCHAIN_GCC_ARM -I../../mbed-sdk/libraries/mbed/targets/cmsis/TARGET_NXP/TARGET_LPC11UXX/TOOLCHAIN_GCC_ARM/TARGET_LPC11U35_501 -I../../mbed-sdk/libraries/mbed/targets/hal -I../../mbed-sdk/libraries/mbed/targets/hal/TARGET_NXP -I../../mbed-sdk/libraries/mbed/targets/hal/TARGET_NXP/TARGET_LPC11UXX -I../../mbed-sdk/libraries/mbed/targets/hal/TARGET_NXP/TARGET_LPC11UXX/TARGET_MCU_LPC11U35_501 -I../../mbed-sdk/libraries/mbed/targets/hal/TARGET_NXP/TARGET_LPC11UXX/TARGET_MCU_LPC11U35_501/TARGET_LPC11U35_501 -I../../mbed-sdk/libraries/mbed -I../../mbed-sdk/libraries/mbed/hal -I../../mbed-sdk/libraries/mbed/api -I../../mbed-sdk/libraries/mbed/common -I../../mbed-sdk/libraries/USBDevice -I../../mbed-sdk/libraries/USBDevice/USBHID -I../../mbed-sdk/libraries/USBDevice/USBDevice -I../../mbed-sdk/libraries/USBDevice/USBAudio -I../../mbed-sdk/libraries/USBDevice/USBSerial -I../../mbed-sdk/libraries/USBDevice/USBMSD -I../../mbed-sdk/libraries/USBDevice/USBMIDI -I../../protocol/mbed -I../../common -I../../protocol -o build/./main.o main.cpp +In file included from ../../mbed-sdk/libraries/mbed/api/mbed.h:21:0, + from main.cpp:1: +../../mbed-sdk/libraries/mbed/api/platform.h:25:19: fatal error: cstddef: No such file or directory + #include + ^ +compilation terminated. +make: *** [build/./main.o] Error 1 + +[13:13] noname@desk:/mnt/old_root/home/noname/tmp/tmk_keyboard/converter/ps2_usb +$ arm-none-eabi-gcc --version +arm-none-eabi-gcc (4.8.2-14ubuntu1+6) 4.8.2 +Copyright (C) 2013 Free Software Foundation, Inc. +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +``` \ No newline at end of file From edfb9363ddc3a7d64b7dc5786a8f823b93b27a14 Mon Sep 17 00:00:00 2001 From: tmk Date: Mon, 29 Dec 2014 20:18:04 -0800 Subject: [PATCH 079/517] Updated mbed cortex porting (markdown) --- mbed-cortex-porting.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mbed-cortex-porting.md b/mbed-cortex-porting.md index 2889bbfbab..87f7c1e2f3 100644 --- a/mbed-cortex-porting.md +++ b/mbed-cortex-porting.md @@ -1,5 +1,5 @@ -## cstddef compile error - +## compile error +with arm-none-eabi-gcc (4.8.2-14ubuntu1+6) 4.8.2 ``` $ make -f Makefile.mbed From 48a3cbf9b3f6d1f6206dd75d9c07fca2fb5b30d2 Mon Sep 17 00:00:00 2001 From: tmk Date: Mon, 29 Dec 2014 20:19:32 -0800 Subject: [PATCH 080/517] Updated mbed cortex porting (markdown) --- mbed-cortex-porting.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mbed-cortex-porting.md b/mbed-cortex-porting.md index 87f7c1e2f3..7e7cb3e28a 100644 --- a/mbed-cortex-porting.md +++ b/mbed-cortex-porting.md @@ -1,4 +1,4 @@ -## compile error +## compile error: cstddef with arm-none-eabi-gcc (4.8.2-14ubuntu1+6) 4.8.2 ``` From 4b46263952569ab766934b8793578cca94b1801f Mon Sep 17 00:00:00 2001 From: tmk Date: Mon, 29 Dec 2014 20:30:31 -0800 Subject: [PATCH 081/517] Updated mbed cortex porting (markdown) --- mbed-cortex-porting.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/mbed-cortex-porting.md b/mbed-cortex-porting.md index 7e7cb3e28a..a2a106c6de 100644 --- a/mbed-cortex-porting.md +++ b/mbed-cortex-porting.md @@ -1,5 +1,9 @@ ## compile error: cstddef -with arm-none-eabi-gcc (4.8.2-14ubuntu1+6) 4.8.2 +Experienced this with arm-none-eabi-gcc (4.8.2-14ubuntu1+6) 4.8.2 on ubuntu 14.04. + +And resolved with 4.9.3 installed from: +https://launchpad.net/gcc-arm-embedded +https://launchpad.net/~terry.guo/+archive/ubuntu/gcc-arm-embedded ``` $ make -f Makefile.mbed From 2acb2f0937e416854147574e6a1d1435918f8881 Mon Sep 17 00:00:00 2001 From: tmk Date: Mon, 29 Dec 2014 20:30:46 -0800 Subject: [PATCH 082/517] Updated mbed cortex porting (markdown) --- mbed-cortex-porting.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mbed-cortex-porting.md b/mbed-cortex-porting.md index a2a106c6de..cb3e95b96c 100644 --- a/mbed-cortex-porting.md +++ b/mbed-cortex-porting.md @@ -2,8 +2,8 @@ Experienced this with arm-none-eabi-gcc (4.8.2-14ubuntu1+6) 4.8.2 on ubuntu 14.04. And resolved with 4.9.3 installed from: -https://launchpad.net/gcc-arm-embedded -https://launchpad.net/~terry.guo/+archive/ubuntu/gcc-arm-embedded +- https://launchpad.net/gcc-arm-embedded +- https://launchpad.net/~terry.guo/+archive/ubuntu/gcc-arm-embedded ``` $ make -f Makefile.mbed From 59c8a733e6332100fde6ac26005ae0d5a1d463a9 Mon Sep 17 00:00:00 2001 From: tmk Date: Wed, 14 Jan 2015 05:03:47 +0900 Subject: [PATCH 083/517] Updated FAQ Keymap (markdown) --- FAQ-Keymap.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/FAQ-Keymap.md b/FAQ-Keymap.md index a74228365c..62054138bd 100644 --- a/FAQ-Keymap.md +++ b/FAQ-Keymap.md @@ -1,4 +1,7 @@ # Keymap +## Sysrq key +see #168 + ## 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. From 2f44de62405cc8610455485428549a592b56323d Mon Sep 17 00:00:00 2001 From: tmk Date: Wed, 14 Jan 2015 05:15:42 +0900 Subject: [PATCH 084/517] Updated FAQ Keymap (markdown) --- FAQ-Keymap.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/FAQ-Keymap.md b/FAQ-Keymap.md index 62054138bd..bdf9a90c3a 100644 --- a/FAQ-Keymap.md +++ b/FAQ-Keymap.md @@ -1,6 +1,10 @@ # Keymap ## Sysrq key -see #168 +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 ## Power key doesn't work Use `KC_PWR` instead of `KC_POWER` or vice versa. From f27207e80793ab3bb8e639f6f08a46de1b0b844b Mon Sep 17 00:00:00 2001 From: tmk Date: Wed, 14 Jan 2015 05:16:09 +0900 Subject: [PATCH 085/517] Updated FAQ Keymap (markdown) --- FAQ-Keymap.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/FAQ-Keymap.md b/FAQ-Keymap.md index bdf9a90c3a..ea7fea7cb2 100644 --- a/FAQ-Keymap.md +++ b/FAQ-Keymap.md @@ -1,10 +1,10 @@ # Keymap ## Sysrq key -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'. +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 Use `KC_PWR` instead of `KC_POWER` or vice versa. From a94c683ab9d56f9af5019510e51b86ae6d02cec7 Mon Sep 17 00:00:00 2001 From: tmk Date: Wed, 14 Jan 2015 05:19:43 +0900 Subject: [PATCH 086/517] Updated FAQ Keymap (markdown) --- FAQ-Keymap.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/FAQ-Keymap.md b/FAQ-Keymap.md index ea7fea7cb2..b201488790 100644 --- a/FAQ-Keymap.md +++ b/FAQ-Keymap.md @@ -1,4 +1,8 @@ # Keymap +## How to get keycode +See [doc/keycode.txt](https://github.com/tmk/tmk_keyboard/blob/master/doc/keycode.txt). +Keycodes are actually defined in [common/keycode.h](https://github.com/tmk/tmk_keyboard/blob/master/common/keycode.h). + ## Sysrq key 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'. From 4785e6d228245a6b3f2dbac81541c24ba93cebfa Mon Sep 17 00:00:00 2001 From: tmk Date: Wed, 14 Jan 2015 07:02:26 +0900 Subject: [PATCH 087/517] Updated mbed cortex porting (markdown) --- mbed-cortex-porting.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/mbed-cortex-porting.md b/mbed-cortex-porting.md index cb3e95b96c..5c3614b156 100644 --- a/mbed-cortex-porting.md +++ b/mbed-cortex-porting.md @@ -1,3 +1,10 @@ +## PS/2 converter +Confirmed it works on NXP LPC11U35. +http://developer.mbed.org/platforms/TG-LPC11U35-501/ + +## Infinity support +It runs on Freescale MK20DX128. + ## compile error: cstddef Experienced this with arm-none-eabi-gcc (4.8.2-14ubuntu1+6) 4.8.2 on ubuntu 14.04. From 111593b6d8ace2206c313068aeeacbb86b50f369 Mon Sep 17 00:00:00 2001 From: tmk Date: Wed, 14 Jan 2015 07:03:11 +0900 Subject: [PATCH 088/517] Updated mbed cortex porting (markdown) --- mbed-cortex-porting.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/mbed-cortex-porting.md b/mbed-cortex-porting.md index 5c3614b156..eac477dc10 100644 --- a/mbed-cortex-porting.md +++ b/mbed-cortex-porting.md @@ -1,10 +1,13 @@ -## PS/2 converter +## supported projects +### PS/2 converter Confirmed it works on NXP LPC11U35. http://developer.mbed.org/platforms/TG-LPC11U35-501/ -## Infinity support +### Infinity keyboard It runs on Freescale MK20DX128. + + ## compile error: cstddef Experienced this with arm-none-eabi-gcc (4.8.2-14ubuntu1+6) 4.8.2 on ubuntu 14.04. From b33cd7d7ec425f187b3bfa16aa4ac4550794d9ab Mon Sep 17 00:00:00 2001 From: tmk Date: Wed, 14 Jan 2015 07:03:23 +0900 Subject: [PATCH 089/517] Updated mbed cortex porting (markdown) --- mbed-cortex-porting.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mbed-cortex-porting.md b/mbed-cortex-porting.md index eac477dc10..b4b1314e6c 100644 --- a/mbed-cortex-porting.md +++ b/mbed-cortex-porting.md @@ -1,7 +1,7 @@ ## supported projects ### PS/2 converter Confirmed it works on NXP LPC11U35. -http://developer.mbed.org/platforms/TG-LPC11U35-501/ +- http://developer.mbed.org/platforms/TG-LPC11U35-501/ ### Infinity keyboard It runs on Freescale MK20DX128. From 07baa1b65dd3f285103b60c84cd9f7ef6d9ef485 Mon Sep 17 00:00:00 2001 From: tmk Date: Wed, 14 Jan 2015 09:11:36 +0900 Subject: [PATCH 090/517] Updated FAQ Keymap (markdown) --- FAQ-Keymap.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/FAQ-Keymap.md b/FAQ-Keymap.md index b201488790..fbd49929a9 100644 --- a/FAQ-Keymap.md +++ b/FAQ-Keymap.md @@ -1,4 +1,7 @@ # Keymap +## READ FIRST +https://github.com/tmk/tmk_keyboard/blob/master/doc/keymap.md + ## How to get keycode See [doc/keycode.txt](https://github.com/tmk/tmk_keyboard/blob/master/doc/keycode.txt). Keycodes are actually defined in [common/keycode.h](https://github.com/tmk/tmk_keyboard/blob/master/common/keycode.h). From 28c93398596af0ff0a1916b9cd47fa00af6e8cad Mon Sep 17 00:00:00 2001 From: tmk Date: Wed, 14 Jan 2015 09:13:36 +0900 Subject: [PATCH 091/517] Updated Home (markdown) --- Home.md | 1 + 1 file changed, 1 insertion(+) diff --git a/Home.md b/Home.md index 7cbd36091f..5ec9c374eb 100644 --- a/Home.md +++ b/Home.md @@ -2,6 +2,7 @@ Welcome to the tmk_keyboard wiki! - [[Projects]] - [[FAQ]] +- [[FAQ/Build]] - [[FAQ/Keymap]] - [Keymap Editor](http://tmk.github.io/tmk_keyboard/editor/index.html) (beta) - [[Compatible Microcontrollers]] From 3c27d7b048c54b3bfda15d17424791575921e0ef Mon Sep 17 00:00:00 2001 From: tmk Date: Wed, 14 Jan 2015 09:15:29 +0900 Subject: [PATCH 092/517] Updated FAQ (markdown) --- FAQ.md | 72 +++------------------------------------------------------- 1 file changed, 3 insertions(+), 69 deletions(-) diff --git a/FAQ.md b/FAQ.md index 9d73012bcb..631f98944a 100644 --- a/FAQ.md +++ b/FAQ.md @@ -6,79 +6,13 @@ Read these yet? 3. And **README** under each project(keyboard/converter) directory. Note that you should read two **README**. 4. And then, FAQ. -- [[FAQ/Keymap]] - # Build -## How to Build -See this first! -https://github.com/tmk/tmk_keyboard/blob/master/doc/build.md - -In short, - - $ make clean - $ make [KEYMAP=...] - - -## Do 'make clean' before 'make' -You'll need `make clean` after you edit **config.h** or change options like `KEYMAP`. - -Frist remove all files made in previous build, - - $ make clean - -then build new frimware. - - $ make [KEYMAP=...] - -Also you can always try `make clean` when you get other strange result during build. - - -## WINAVR is obsolete -It is no longer recommended and may cause some problem. -See [Issue #99](https://github.com/tmk/tmk_keyboard/issues/99). +- [[FAQ/Build] -## USB stack: LUFA or PJRC? -Use **LUFA**. -**PJRC** stack won't be supported actively anymore. There is no reason to hesitate to use LUFA except for binary size(about 1KB lager?). But **PJRC** is still very useful for debug and development purpose. -See also [Issue #50](https://github.com/tmk/tmk_keyboard/issues/50) and [Issue #58](https://github.com/tmk/tmk_keyboard/issues/58). - - -## Edit configuration but not change -Try these. -### 1. make clean -This will be needed when you edit **config.h**. - -### 2. Remove Drivers from Device Manager(Windows) -Windows only. Linux, OSX and other OS's doesn't require this. It looks like Windows keeps using driver installed when device was connected first time even after the device changes its configuration. To load proper drivers for new configuration you need to remove existent drivers from **Drvice Manager**. - -You will need this after editing `CONSOLE_ENABLE`, `NKRO_ENABLE`, `EXTRAKEY_ENABLE` or `MOUSEKEY_ENABLE` option in **Makefile**. - - -## 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 least chance of collision with other product. - -For example TMK uses following numbers by default. -``` -keyboard: -hhkb: FEED:CAFE -gh60: FEED:6060 - -converter: -x68k: FEED:6800 -ps2: FEED:6512 -adb: FEED:0ADB -ibm4704: FEED:4704 -pc98: FEED:9898 -``` - -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 +# Keymap +- [[FAQ/Keymap]] # Degug Console From 00ec258e317be35fdf176b75755a2aabd75b1f78 Mon Sep 17 00:00:00 2001 From: tmk Date: Wed, 14 Jan 2015 09:15:50 +0900 Subject: [PATCH 093/517] Created FAQ Build (markdown) --- FAQ-Build.md | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 FAQ-Build.md diff --git a/FAQ-Build.md b/FAQ-Build.md new file mode 100644 index 0000000000..29b653ed78 --- /dev/null +++ b/FAQ-Build.md @@ -0,0 +1,70 @@ +# FAQ/Build +## How to Build +See this first! +https://github.com/tmk/tmk_keyboard/blob/master/doc/build.md + +In short, + + $ make clean + $ make [KEYMAP=...] + + +## Do 'make clean' before 'make' +You'll need `make clean` after you edit **config.h** or change options like `KEYMAP`. + +Frist remove all files made in previous build, + + $ make clean + +then build new frimware. + + $ make [KEYMAP=...] + +Also you can always try `make clean` when you get other strange result during build. + + +## WINAVR is obsolete +It is no longer recommended and may cause some problem. +See [Issue #99](https://github.com/tmk/tmk_keyboard/issues/99). + +## USB stack: LUFA or PJRC? +Use **LUFA**. + +**PJRC** stack won't be supported actively anymore. There is no reason to hesitate to use LUFA except for binary size(about 1KB lager?). But **PJRC** is still very useful for debug and development purpose. +See also [Issue #50](https://github.com/tmk/tmk_keyboard/issues/50) and [Issue #58](https://github.com/tmk/tmk_keyboard/issues/58). + + +## Edit configuration but not change +Try these. +### 1. make clean +This will be needed when you edit **config.h**. + +### 2. Remove Drivers from Device Manager(Windows) +Windows only. Linux, OSX and other OS's doesn't require this. It looks like Windows keeps using driver installed when device was connected first time even after the device changes its configuration. To load proper drivers for new configuration you need to remove existent drivers from **Drvice Manager**. + +You will need this after editing `CONSOLE_ENABLE`, `NKRO_ENABLE`, `EXTRAKEY_ENABLE` or `MOUSEKEY_ENABLE` option in **Makefile**. + + +## 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 least chance of collision with other product. + +For example TMK uses following numbers by default. +``` +keyboard: +hhkb: FEED:CAFE +gh60: FEED:6060 + +converter: +x68k: FEED:6800 +ps2: FEED:6512 +adb: FEED:0ADB +ibm4704: FEED:4704 +pc98: FEED:9898 +``` + +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 \ No newline at end of file From 9f02c070cab31e349ec8b53033286b5f929c2354 Mon Sep 17 00:00:00 2001 From: tmk Date: Wed, 14 Jan 2015 09:16:02 +0900 Subject: [PATCH 094/517] Updated FAQ (markdown) --- FAQ.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FAQ.md b/FAQ.md index 631f98944a..a06aa9a56b 100644 --- a/FAQ.md +++ b/FAQ.md @@ -8,7 +8,7 @@ Read these yet? # Build -- [[FAQ/Build] +- [[FAQ/Build]] # Keymap From 416f94646389f48b158ffc4712a6593e6c35868f Mon Sep 17 00:00:00 2001 From: tmk Date: Wed, 14 Jan 2015 09:20:06 +0900 Subject: [PATCH 095/517] Updated FAQ (markdown) --- FAQ.md | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/FAQ.md b/FAQ.md index a06aa9a56b..3cb245ea77 100644 --- a/FAQ.md +++ b/FAQ.md @@ -1,10 +1,8 @@ -# Documents You Need To Read -Read these yet? - -1. First **README** under top directory : https://github.com/tmk/tmk_keyboard/blob/master/README.md -2. For **Build**: https://github.com/tmk/tmk_keyboard/blob/master/doc/build.md -3. And **README** under each project(keyboard/converter) directory. Note that you should read two **README**. -4. And then, FAQ. +# READ FIRST +- **README** of top directory : https://github.com/tmk/tmk_keyboard/blob/master/README.md +- **README** of target project(keyboard/converter) directory. + +Note that you'll need to read two **README**. # Build From 7c80d1d7771f9670159e724ce792491635384a19 Mon Sep 17 00:00:00 2001 From: tmk Date: Wed, 14 Jan 2015 09:20:55 +0900 Subject: [PATCH 096/517] Updated FAQ (markdown) --- FAQ.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FAQ.md b/FAQ.md index 3cb245ea77..8239546a54 100644 --- a/FAQ.md +++ b/FAQ.md @@ -2,7 +2,7 @@ - **README** of top directory : https://github.com/tmk/tmk_keyboard/blob/master/README.md - **README** of target project(keyboard/converter) directory. -Note that you'll need to read two **README**. +Note that you'll need to read **both**. # Build From c716bc0234147e873a9be8cf65f415db654cab15 Mon Sep 17 00:00:00 2001 From: tmk Date: Wed, 14 Jan 2015 09:23:20 +0900 Subject: [PATCH 097/517] Updated FAQ Build (markdown) --- FAQ-Build.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/FAQ-Build.md b/FAQ-Build.md index 29b653ed78..c49c6c5d43 100644 --- a/FAQ-Build.md +++ b/FAQ-Build.md @@ -1,12 +1,13 @@ # FAQ/Build -## How to Build -See this first! -https://github.com/tmk/tmk_keyboard/blob/master/doc/build.md + +## READ FIRST +- https://github.com/tmk/tmk_keyboard/blob/master/doc/build.md In short, - $ make clean - $ make [KEYMAP=...] + $ make [-f Makefile.] [KEYMAP=...] clean + $ make [-f Makefile.] [KEYMAP=...] + $ make [-f Makefile.] [KEYMAP=...] dfu ## Do 'make clean' before 'make' From 8bb74c6062e405e454045fe36b2e1dfe59e35029 Mon Sep 17 00:00:00 2001 From: tmk Date: Wed, 14 Jan 2015 09:24:15 +0900 Subject: [PATCH 098/517] Updated FAQ (markdown) --- FAQ.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FAQ.md b/FAQ.md index 8239546a54..0f8b263fa5 100644 --- a/FAQ.md +++ b/FAQ.md @@ -1,4 +1,4 @@ -# READ FIRST +## READ FIRST - **README** of top directory : https://github.com/tmk/tmk_keyboard/blob/master/README.md - **README** of target project(keyboard/converter) directory. From 126ba262ef584fc6dd73dfecb930f9fa1a0a6b09 Mon Sep 17 00:00:00 2001 From: tmk Date: Wed, 14 Jan 2015 09:25:15 +0900 Subject: [PATCH 099/517] Updated FAQ Build (markdown) --- FAQ-Build.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/FAQ-Build.md b/FAQ-Build.md index c49c6c5d43..cfd8465d70 100644 --- a/FAQ-Build.md +++ b/FAQ-Build.md @@ -1,5 +1,3 @@ -# FAQ/Build - ## READ FIRST - https://github.com/tmk/tmk_keyboard/blob/master/doc/build.md From 756706a704d8f90c4285c5d1bbf208070bef9bc0 Mon Sep 17 00:00:00 2001 From: tmk Date: Wed, 14 Jan 2015 09:25:28 +0900 Subject: [PATCH 100/517] Updated FAQ Keymap (markdown) --- FAQ-Keymap.md | 1 - 1 file changed, 1 deletion(-) diff --git a/FAQ-Keymap.md b/FAQ-Keymap.md index fbd49929a9..0f0e646c44 100644 --- a/FAQ-Keymap.md +++ b/FAQ-Keymap.md @@ -1,4 +1,3 @@ -# Keymap ## READ FIRST https://github.com/tmk/tmk_keyboard/blob/master/doc/keymap.md From 12e5912c9a5e970244e8aa3f23f6029c31a36ea9 Mon Sep 17 00:00:00 2001 From: tmk Date: Wed, 14 Jan 2015 09:35:19 +0900 Subject: [PATCH 101/517] Updated FAQ Build (markdown) --- FAQ-Build.md | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/FAQ-Build.md b/FAQ-Build.md index cfd8465d70..948a23a3fc 100644 --- a/FAQ-Build.md +++ b/FAQ-Build.md @@ -66,4 +66,24 @@ 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 \ No newline at end of file +- 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/`. + +**/etc/udev/rules.d/50-atmel-dfu.rules:** +``` +# Atmel ATMega32U4 +SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff4", MODE:="0666" +# Atmel USBKEY AT90USB1287 +SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ffb", MODE:="0666" +# Atmel ATMega32U2 +SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff0", MODE:="0666" +``` + +**/etc/udev/rules.d/52-tmk-keyboard.rules:** +``` +# tmk keyboard products https://github.com/tmk/tmk_keyboard +SUBSYSTEMS=="usb", ATTRS{idVendor}=="feed", MODE:="0666" +``` \ No newline at end of file From 64e64e5153c9659a09e0bd9f297fd69a91f4a61d Mon Sep 17 00:00:00 2001 From: tmk Date: Thu, 22 Jan 2015 13:13:53 +0900 Subject: [PATCH 102/517] Updated FAQ Build (markdown) --- FAQ-Build.md | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/FAQ-Build.md b/FAQ-Build.md index 948a23a3fc..41557d2ddb 100644 --- a/FAQ-Build.md +++ b/FAQ-Build.md @@ -32,16 +32,21 @@ Use **LUFA**. **PJRC** stack won't be supported actively anymore. There is no reason to hesitate to use LUFA except for binary size(about 1KB lager?). But **PJRC** is still very useful for debug and development purpose. See also [Issue #50](https://github.com/tmk/tmk_keyboard/issues/50) and [Issue #58](https://github.com/tmk/tmk_keyboard/issues/58). - ## Edit configuration but not change -Try these. +You will need followings after editing `CONSOLE_ENABLE`, `NKRO_ENABLE`, `EXTRAKEY_ENABLE` or `MOUSEKEY_ENABLE` option in **Makefile**. + ### 1. make clean This will be needed when you edit **config.h**. ### 2. Remove Drivers from Device Manager(Windows) -Windows only. Linux, OSX and other OS's doesn't require this. It looks like Windows keeps using driver installed when device was connected first time even after the device changes its configuration. To load proper drivers for new configuration you need to remove existent drivers from **Drvice Manager**. +**Windows only.** Linux, OSX and other OS's doesn't require this. It looks like Windows keeps using driver installed when device was connected first time even after the device changes its configuration. To load proper drivers for new configuration you need to remove existent drivers from **Drvice Manager**. + +### 3. Build with different VID:PID +**Windows only.** If method 2. does't work fou you try this. Change Vendor ID or Product ID in **config.h** and build firmware. Windows should recognize it as whole new device and start drivers install process. + +### 4. Just try other ports +This will be useful and the easiest workaround for **Windows**. -You will need this after editing `CONSOLE_ENABLE`, `NKRO_ENABLE`, `EXTRAKEY_ENABLE` or `MOUSEKEY_ENABLE` option in **Makefile**. ## USB VID and PID From 1650d4692caca6c272ba705168065236280f4889 Mon Sep 17 00:00:00 2001 From: tmk Date: Sat, 7 Mar 2015 14:19:44 +0900 Subject: [PATCH 103/517] Updated FAQ Keymap (markdown) --- FAQ-Keymap.md | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/FAQ-Keymap.md b/FAQ-Keymap.md index 0f0e646c44..135c86710c 100644 --- a/FAQ-Keymap.md +++ b/FAQ-Keymap.md @@ -60,4 +60,25 @@ On **Xorg** you can use `compose` key, instead. - http://en.wikipedia.org/wiki/Compose_key And see this for **Unicode** input. -- http://en.wikipedia.org/wiki/Unicode_input \ No newline at end of file +- http://en.wikipedia.org/wiki/Unicode_input + + +### Apple keyboard Fn +Not supported. + +Apple keyboard sends keycod for Fn unlike most of other keyboards. +I think you can send Apple Fn key using Appleventer Page 0xff00 and usage 0x0003. You have to change HID Report Descriptor, of course. + +https://opensource.apple.com/source/IOHIDFamily/IOHIDFamily-606.1.7/IOHIDFamily/AppleHIDUsageTables.h + + +## Mac OSX suppors key? +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). + +https://opensource.apple.com/source/IOHIDFamily/IOHIDFamily-606.1.7/IOHIDFamily/Cosmo_USB2ADB.c + +And `IOHIDConsumer::dispatchConsumerEvent` handles Consumer page usages. + +https://opensource.apple.com/source/IOHIDFamily/IOHIDFamily-606.1.7/IOHIDFamily/IOHIDConsumer.cpp \ No newline at end of file From b321f44ff612f4d9eed56b2900fc5c6134d7f654 Mon Sep 17 00:00:00 2001 From: tmk Date: Mon, 9 Mar 2015 20:22:02 +0900 Subject: [PATCH 104/517] Updated FAQ Keymap (markdown) --- FAQ-Keymap.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/FAQ-Keymap.md b/FAQ-Keymap.md index 135c86710c..d7307ec7bd 100644 --- a/FAQ-Keymap.md +++ b/FAQ-Keymap.md @@ -72,7 +72,13 @@ I think you can send Apple Fn key using Appleventer Page 0xff00 and usage 0x0003 https://opensource.apple.com/source/IOHIDFamily/IOHIDFamily-606.1.7/IOHIDFamily/AppleHIDUsageTables.h -## Mac OSX suppors key? +## Media control keys in Mac OSX +See #160 +>The "Play/Pause"(KC_MPLY) works good on Apple OS. But "Next/Prev Track" buttons are unfunctional. +Apple OS use "Fast Forwad"(F9 on Apple keyboard) & "Rewind"(F7 on Apple keyboard) instead. + + +## 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). From b64631d02c5c51a25a3e9e90473904ef840031d4 Mon Sep 17 00:00:00 2001 From: tmk Date: Mon, 9 Mar 2015 20:23:18 +0900 Subject: [PATCH 105/517] Updated FAQ Keymap (markdown) --- FAQ-Keymap.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/FAQ-Keymap.md b/FAQ-Keymap.md index d7307ec7bd..cb9d7f6fdd 100644 --- a/FAQ-Keymap.md +++ b/FAQ-Keymap.md @@ -73,7 +73,8 @@ https://opensource.apple.com/source/IOHIDFamily/IOHIDFamily-606.1.7/IOHIDFamily/ ## Media control keys in Mac OSX -See #160 +See issue #160. + >The "Play/Pause"(KC_MPLY) works good on Apple OS. But "Next/Prev Track" buttons are unfunctional. Apple OS use "Fast Forwad"(F9 on Apple keyboard) & "Rewind"(F7 on Apple keyboard) instead. From d6141c0bce14b864fe9044f76fb0adae0dae8004 Mon Sep 17 00:00:00 2001 From: tmk Date: Mon, 9 Mar 2015 20:28:55 +0900 Subject: [PATCH 106/517] Updated FAQ Keymap (markdown) --- FAQ-Keymap.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/FAQ-Keymap.md b/FAQ-Keymap.md index cb9d7f6fdd..79ae7cb102 100644 --- a/FAQ-Keymap.md +++ b/FAQ-Keymap.md @@ -73,11 +73,13 @@ https://opensource.apple.com/source/IOHIDFamily/IOHIDFamily-606.1.7/IOHIDFamily/ ## Media control keys in Mac OSX -See issue #160. +See [PR #160](https://github.com/tmk/tmk_keyboard/issues/160). >The "Play/Pause"(KC_MPLY) works good on Apple OS. But "Next/Prev Track" buttons are unfunctional. Apple OS use "Fast Forwad"(F9 on Apple keyboard) & "Rewind"(F7 on Apple keyboard) instead. +Use `KC_MFFD`(`KC_MEDIA_FAST_FORWARD`) and `KC_MRWD`(`KC_MEDIA_REWIND`) instead of KC_ and `KC_MNXT` and `KC_MPRV`. + ## Keys supported in Mac OSX? You can know which keycodes are supported in OSX from this source code. From 506c7763004651749920cd0821f8fd80944a95a9 Mon Sep 17 00:00:00 2001 From: tmk Date: Mon, 9 Mar 2015 20:30:35 +0900 Subject: [PATCH 107/517] Updated FAQ Keymap (markdown) --- FAQ-Keymap.md | 1 + 1 file changed, 1 insertion(+) diff --git a/FAQ-Keymap.md b/FAQ-Keymap.md index 79ae7cb102..f6c38e8259 100644 --- a/FAQ-Keymap.md +++ b/FAQ-Keymap.md @@ -80,6 +80,7 @@ Apple OS use "Fast Forwad"(F9 on Apple keyboard) & "Rewind"(F7 on Apple keyboard Use `KC_MFFD`(`KC_MEDIA_FAST_FORWARD`) and `KC_MRWD`(`KC_MEDIA_REWIND`) instead of KC_ and `KC_MNXT` and `KC_MPRV`. +https://github.com/tmk/tmk_keyboard/blob/5a8dbc63ea29eb454ad5f36de5c6c33172230f88/common/keycode.h#L141-L144 ## Keys supported in Mac OSX? You can know which keycodes are supported in OSX from this source code. From 5e5aee44e5a941e2eb81e720e1475d376b1c3242 Mon Sep 17 00:00:00 2001 From: tmk Date: Mon, 9 Mar 2015 20:34:06 +0900 Subject: [PATCH 108/517] Updated FAQ Keymap (markdown) --- FAQ-Keymap.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/FAQ-Keymap.md b/FAQ-Keymap.md index f6c38e8259..74e6e566ac 100644 --- a/FAQ-Keymap.md +++ b/FAQ-Keymap.md @@ -66,8 +66,8 @@ And see this for **Unicode** input. ### Apple keyboard Fn Not supported. -Apple keyboard sends keycod for Fn unlike most of other keyboards. -I think you can send Apple Fn key using Appleventer Page 0xff00 and usage 0x0003. You have to change HID Report Descriptor, of course. +Apple keyboard sends keycode for Fn unlike most of other keyboards. +I think you can send Apple Fn key using Apple venter specific Page 0xff00 and usage 0x0003. But you have to change HID Report Descriptor for this, of course. https://opensource.apple.com/source/IOHIDFamily/IOHIDFamily-606.1.7/IOHIDFamily/AppleHIDUsageTables.h @@ -82,6 +82,7 @@ Use `KC_MFFD`(`KC_MEDIA_FAST_FORWARD`) and `KC_MRWD`(`KC_MEDIA_REWIND`) instead https://github.com/tmk/tmk_keyboard/blob/5a8dbc63ea29eb454ad5f36de5c6c33172230f88/common/keycode.h#L141-L144 + ## Keys supported in Mac OSX? You can know which keycodes are supported in OSX from this source code. From 0eff2b199d3618a750bfc45968c72ed7b291e46b Mon Sep 17 00:00:00 2001 From: tmk Date: Tue, 24 Mar 2015 16:30:35 +0900 Subject: [PATCH 109/517] Updated FAQ Keymap (markdown) --- FAQ-Keymap.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/FAQ-Keymap.md b/FAQ-Keymap.md index 74e6e566ac..7b37779ba8 100644 --- a/FAQ-Keymap.md +++ b/FAQ-Keymap.md @@ -92,4 +92,14 @@ https://opensource.apple.com/source/IOHIDFamily/IOHIDFamily-606.1.7/IOHIDFamily/ And `IOHIDConsumer::dispatchConsumerEvent` handles Consumer page usages. -https://opensource.apple.com/source/IOHIDFamily/IOHIDFamily-606.1.7/IOHIDFamily/IOHIDConsumer.cpp \ No newline at end of file +https://opensource.apple.com/source/IOHIDFamily/IOHIDFamily-606.1.7/IOHIDFamily/IOHIDConsumer.cpp + + +## 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 fllowing options. + +***Enable NFER Key on PC keyboard*** +***Enable XFER Key on PC keyboard*** +***Enable KATAKANA Key on PC keyboard*** + +https://pqrs.org/osx/karabiner/seil.html \ No newline at end of file From 2931b8c18c222fe3884089961c0d0fd6ea2c6ae7 Mon Sep 17 00:00:00 2001 From: tmk Date: Tue, 24 Mar 2015 16:31:11 +0900 Subject: [PATCH 110/517] Updated FAQ Keymap (markdown) --- FAQ-Keymap.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/FAQ-Keymap.md b/FAQ-Keymap.md index 7b37779ba8..25dd2ecff3 100644 --- a/FAQ-Keymap.md +++ b/FAQ-Keymap.md @@ -98,8 +98,8 @@ https://opensource.apple.com/source/IOHIDFamily/IOHIDFamily-606.1.7/IOHIDFamily/ ## 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 fllowing options. -***Enable NFER Key on PC keyboard*** -***Enable XFER Key on PC keyboard*** -***Enable KATAKANA Key on PC keyboard*** +* **Enable NFER Key on PC keyboard** +* **Enable XFER Key on PC keyboard** +* **Enable KATAKANA Key on PC keyboard** https://pqrs.org/osx/karabiner/seil.html \ No newline at end of file From 9761907332a99f9a45f223ea9b8d8533f40035f9 Mon Sep 17 00:00:00 2001 From: tmk Date: Tue, 24 Mar 2015 16:39:04 +0900 Subject: [PATCH 111/517] Updated FAQ Keymap (markdown) --- FAQ-Keymap.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/FAQ-Keymap.md b/FAQ-Keymap.md index 25dd2ecff3..05b14e950f 100644 --- a/FAQ-Keymap.md +++ b/FAQ-Keymap.md @@ -96,10 +96,10 @@ https://opensource.apple.com/source/IOHIDFamily/IOHIDFamily-606.1.7/IOHIDFamily/ ## 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 fllowing options. +Japanese JIS keyboard specific keys like `無変換(Muhenkan)`, `変換(Henkan)`, `ひらがな(hiragana)` are not recognized on OSX. You can use **Seil** to enable those keys, try fllowing options. -* **Enable NFER Key on PC keyboard** -* **Enable XFER Key on PC keyboard** -* **Enable KATAKANA Key on PC keyboard** +* Enable NFER Key on PC keyboard +* Enable XFER Key on PC keyboard +* Enable KATAKANA Key on PC keyboard https://pqrs.org/osx/karabiner/seil.html \ No newline at end of file From 2c11165fb63cac448edc1a628734b1d4e5c46108 Mon Sep 17 00:00:00 2001 From: tmk Date: Tue, 24 Mar 2015 16:39:28 +0900 Subject: [PATCH 112/517] Updated FAQ Keymap (markdown) --- FAQ-Keymap.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FAQ-Keymap.md b/FAQ-Keymap.md index 05b14e950f..3f66943065 100644 --- a/FAQ-Keymap.md +++ b/FAQ-Keymap.md @@ -96,7 +96,7 @@ https://opensource.apple.com/source/IOHIDFamily/IOHIDFamily-606.1.7/IOHIDFamily/ ## 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 fllowing options. +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 * Enable XFER Key on PC keyboard From 5031ae08bf93c6ced32e3a146632265c54c729a3 Mon Sep 17 00:00:00 2001 From: tmk Date: Mon, 13 Apr 2015 10:50:34 +0900 Subject: [PATCH 113/517] Updated FAQ (markdown) --- FAQ.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/FAQ.md b/FAQ.md index 0f8b263fa5..52862f1310 100644 --- a/FAQ.md +++ b/FAQ.md @@ -53,14 +53,16 @@ SUBSYSTEMS=="usb", ATTRS{idVendor}=="feed", MODE:="0666" # Miscellaneous ## NKRO Doesn't work -1. Build with this option of Makefile +First you have to compile frimware with this build option in `Makefile`. NKRO_ENABLE = yes -2. After boot keyboard may be in **boot mode**(6KRO), you will need to replug keyboard to enable NKRO. +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. -3. Or use `Magic` **N** command to toggle NKRO function.(`LShift+RShift+N` by default) +If your firmeare 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. +https://github.com/tmk/tmk_keyboard#boot-magic-configuration---virtual-dip-switch +Note that host(in particular BIOS) can force keyboard to turn into **6KRO** mode. ## TrackPoint needs reset circuit(PS/2 mouse support) From ac01b69edf69c95c404a49929fa9af5c4aec0219 Mon Sep 17 00:00:00 2001 From: tmk Date: Mon, 13 Apr 2015 10:51:28 +0900 Subject: [PATCH 114/517] Updated FAQ (markdown) --- FAQ.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/FAQ.md b/FAQ.md index 52862f1310..ad70fa7ccc 100644 --- a/FAQ.md +++ b/FAQ.md @@ -53,9 +53,7 @@ SUBSYSTEMS=="usb", ATTRS{idVendor}=="feed", MODE:="0666" # Miscellaneous ## NKRO Doesn't work -First you have to compile frimware with this build option in `Makefile`. - - NKRO_ENABLE = yes +First you have to compile frimware 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. From 5d7a4e3059db0e71823f0e240154eddc075a6d5f Mon Sep 17 00:00:00 2001 From: tmk Date: Mon, 13 Apr 2015 10:53:40 +0900 Subject: [PATCH 115/517] Updated FAQ (markdown) --- FAQ.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/FAQ.md b/FAQ.md index ad70fa7ccc..3369bc52ee 100644 --- a/FAQ.md +++ b/FAQ.md @@ -55,12 +55,11 @@ SUBSYSTEMS=="usb", ATTRS{idVendor}=="feed", MODE:="0666" ## NKRO Doesn't work First you have to compile frimware 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. +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 firmeare 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. -https://github.com/tmk/tmk_keyboard#boot-magic-configuration---virtual-dip-switch -Note that host(in particular BIOS) can force keyboard to turn into **6KRO** mode. +https://github.com/tmk/tmk_keyboard#boot-magic-configuration---virtual-dip-switch ## TrackPoint needs reset circuit(PS/2 mouse support) From 398c4feed469172eaddacd9a87a18c81a8259e48 Mon Sep 17 00:00:00 2001 From: tmk Date: Tue, 28 Apr 2015 10:26:11 +0900 Subject: [PATCH 116/517] Created Git subtree (markdown) --- Git-subtree.md | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 Git-subtree.md diff --git a/Git-subtree.md b/Git-subtree.md new file mode 100644 index 0000000000..b2704ca2c5 --- /dev/null +++ b/Git-subtree.md @@ -0,0 +1,7 @@ +## Update core branch procedure + git co master + git subtree split -P tmk_core -b + git co core + git merge + git co master + git subtree merge -P tmk_core From 3e0c1937f4cddc490d5a2aa772b1b2f9e227d00a Mon Sep 17 00:00:00 2001 From: tmk Date: Tue, 28 Apr 2015 10:27:11 +0900 Subject: [PATCH 117/517] Updated Git subtree (markdown) --- Git-subtree.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Git-subtree.md b/Git-subtree.md index b2704ca2c5..4fd7f8beaa 100644 --- a/Git-subtree.md +++ b/Git-subtree.md @@ -4,4 +4,4 @@ git co core git merge git co master - git subtree merge -P tmk_core + git subtree merge -P tmk_core --squash From ff1130f76df7cf0ed4b5ecc0605bb8b55cc58b11 Mon Sep 17 00:00:00 2001 From: tmk Date: Wed, 6 May 2015 08:27:22 +0900 Subject: [PATCH 118/517] Updated FAQ (markdown) --- FAQ.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/FAQ.md b/FAQ.md index 3369bc52ee..4a89d6d50a 100644 --- a/FAQ.md +++ b/FAQ.md @@ -119,7 +119,9 @@ Properly configure boot section size in Makefile. With wrong section size bootlo # USBaspLoader 2048 OPT_DEFS += -DBOOTLOADER_SIZE=4096 ``` -http://geekhack.org/index.php?topic=12047.msg1292018#msg1292018 + +And see this discussion. +https://github.com/tmk/tmk_keyboard/issues/179 ## Special Extra key doesn't work(System, Audio control keys) From c9b11560bf41617adf75366517ccfe15e2c2aab3 Mon Sep 17 00:00:00 2001 From: tmk Date: Wed, 6 May 2015 10:07:23 +0900 Subject: [PATCH 119/517] Updated FAQ (markdown) --- FAQ.md | 51 ++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 40 insertions(+), 11 deletions(-) diff --git a/FAQ.md b/FAQ.md index 4a89d6d50a..39de3b5ef0 100644 --- a/FAQ.md +++ b/FAQ.md @@ -106,21 +106,50 @@ http://arduino.cc/en/uploads/Main/arduino-micro-schematic.pdf ## Bootloader jump doesn't work -Properly configure boot section size in Makefile. With wrong section size bootloader won't probably start with **Magic command** and **Boot Magic**. -- https://github.com/tmk/tmk_keyboard#magic-commands -- https://github.com/tmk/tmk_keyboard#bootloader - +Properly configure bootloader size in Makefile. With wrong section size bootloader won't probably start with **Magic command** and **Boot Magic**. ``` -# Boot Section Size in *bytes* -# Teensy halfKay 512 -# Teensy++ halfKay 1024 -# Atmel DFU loader 4096 (TMK Alt Controller) -# LUFA bootloader 4096 -# USBaspLoader 2048 +# 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 +# Teensy++ halfKay(AT90USB128) 1024 OPT_DEFS += -DBOOTLOADER_SIZE=4096 ``` +AVR Boot section size are defined by setting **BOOTSZ** fuse in fact. Consult with your MCU datasheet. +Note that **Word**(2 bytes) size and address are used in datasheet while TMK uses **Byte**. + +AVR Boot section is located at end of Flash memory like the followings. +``` +byte Atmel/LUFA(ATMega32u4) byte Atmel(AT90SUB1286) +0x0000 +---------------+ 0x00000 +---------------+ + | | | | + | | | | + | Application | | Application | + | | | | + = = = = + | | 32KB-4KB | | 128KB-8KB +0x6000 +---------------+ 0x1FC00 +---------------+ + | Bootloader | 4KB | Bootloader | 8KB +0x7FFF +---------------+ 0x1FFFF +---------------+ + + +byte Teensy(ATMega32u4) byte Teensy++(AT90SUB1286) +0x0000 +---------------+ 0x00000 +---------------+ + | | | | + | | | | + | Application | | Application | + | | | | + = = = = + | | 32KB-512B | | 128KB-1KB +0x7E00 +---------------+ 0x1FC00 +---------------+ + | Bootloader | 512B | Bootloader | 1KB +0x7FFF +---------------+ 0x1FFFF +---------------+ +``` -And see this discussion. +And see this discussion for further reference. https://github.com/tmk/tmk_keyboard/issues/179 From b4f163864333a30d67323fd61c03d1d88380c405 Mon Sep 17 00:00:00 2001 From: tmk Date: Wed, 6 May 2015 10:12:46 +0900 Subject: [PATCH 120/517] Updated FAQ (markdown) --- FAQ.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/FAQ.md b/FAQ.md index 39de3b5ef0..1e9c017b6d 100644 --- a/FAQ.md +++ b/FAQ.md @@ -53,7 +53,7 @@ SUBSYSTEMS=="usb", ATTRS{idVendor}=="feed", MODE:="0666" # Miscellaneous ## NKRO Doesn't work -First you have to compile frimware with this build option `NKRO_ENABLE` in `Makefile`. +First you have to compile frimware 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. @@ -106,7 +106,7 @@ http://arduino.cc/en/uploads/Main/arduino-micro-schematic.pdf ## 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**. +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 From 81545bbe1038909197b56859dfee05ab4e31b924 Mon Sep 17 00:00:00 2001 From: tmk Date: Sat, 9 May 2015 13:33:56 +0900 Subject: [PATCH 121/517] Updated FAQ Build (markdown) --- FAQ-Build.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/FAQ-Build.md b/FAQ-Build.md index 41557d2ddb..c3f168a719 100644 --- a/FAQ-Build.md +++ b/FAQ-Build.md @@ -91,4 +91,14 @@ SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff0", MODE:="066 ``` # tmk keyboard products https://github.com/tmk/tmk_keyboard SUBSYSTEMS=="usb", ATTRS{idVendor}=="feed", MODE:="0666" -``` \ No newline at end of file +``` + + + +## 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 + +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/ \ No newline at end of file From cd71aeb63e888742ca747b0acd35f3b5e27d8bd1 Mon Sep 17 00:00:00 2001 From: tmk Date: Sat, 16 May 2015 23:58:50 +0900 Subject: [PATCH 122/517] Updated FAQ Keymap (markdown) --- FAQ-Keymap.md | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/FAQ-Keymap.md b/FAQ-Keymap.md index 3f66943065..bc846057b3 100644 --- a/FAQ-Keymap.md +++ b/FAQ-Keymap.md @@ -102,4 +102,13 @@ Japanese JIS keyboard specific keys like `無変換(Muhenkan)`, `変換(Henkan)` * Enable XFER Key on PC keyboard * Enable KATAKANA Key on PC keyboard -https://pqrs.org/osx/karabiner/seil.html \ No newline at end of file +https://pqrs.org/osx/karabiner/seil.html + + +## 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. +https://github.com/tmk/tmk_keyboard/issues/213 +https://github.com/tekezo/Karabiner/issues/403 \ No newline at end of file From 410bc48e5a6eda48bac6c2d89e14a6a35e113a07 Mon Sep 17 00:00:00 2001 From: Ruslan Ohitin Date: Tue, 9 Jun 2015 16:32:24 +0600 Subject: [PATCH 123/517] Updated FAQ (markdown) --- FAQ.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FAQ.md b/FAQ.md index 1e9c017b6d..159959e337 100644 --- a/FAQ.md +++ b/FAQ.md @@ -13,7 +13,7 @@ Note that you'll need to read **both**. - [[FAQ/Keymap]] -# Degug Console +# Debug Console ## hid_listen can't recognize device When debug console of your device is not ready you will see like this: From 2c22bbda5a2fe0f1168c72383729a7f8f347795b Mon Sep 17 00:00:00 2001 From: tmk Date: Sat, 4 Jul 2015 06:10:28 +0900 Subject: [PATCH 124/517] Updated FAQ Keymap (markdown) --- FAQ-Keymap.md | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/FAQ-Keymap.md b/FAQ-Keymap.md index bc846057b3..a039556fcc 100644 --- a/FAQ-Keymap.md +++ b/FAQ-Keymap.md @@ -73,14 +73,9 @@ https://opensource.apple.com/source/IOHIDFamily/IOHIDFamily-606.1.7/IOHIDFamily/ ## Media control keys in Mac OSX -See [PR #160](https://github.com/tmk/tmk_keyboard/issues/160). - ->The "Play/Pause"(KC_MPLY) works good on Apple OS. But "Next/Prev Track" buttons are unfunctional. -Apple OS use "Fast Forwad"(F9 on Apple keyboard) & "Rewind"(F7 on Apple keyboard) instead. - -Use `KC_MFFD`(`KC_MEDIA_FAST_FORWARD`) and `KC_MRWD`(`KC_MEDIA_REWIND`) instead of KC_ and `KC_MNXT` and `KC_MPRV`. - -https://github.com/tmk/tmk_keyboard/blob/5a8dbc63ea29eb454ad5f36de5c6c33172230f88/common/keycode.h#L141-L144 +#### 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? From c25b5b00930801e792fa8ba51887ffa42e7e0087 Mon Sep 17 00:00:00 2001 From: tmk Date: Sun, 9 Aug 2015 16:12:01 +0900 Subject: [PATCH 125/517] Created Previously Asked Questions (markdown) --- Previously-Asked-Questions.md | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 Previously-Asked-Questions.md diff --git a/Previously-Asked-Questions.md b/Previously-Asked-Questions.md new file mode 100644 index 0000000000..4c23e30f15 --- /dev/null +++ b/Previously-Asked-Questions.md @@ -0,0 +1,2 @@ +### Columns beyond uint16_t cannot be read +https://github.com/tmk/tmk_keyboard/wiki/FAQ#cant-read-comlumn-of-matrix-beyond-16 \ No newline at end of file From 94ccc655429d984a29989ba0e957cbd7b9688c11 Mon Sep 17 00:00:00 2001 From: tmk Date: Sun, 9 Aug 2015 16:13:34 +0900 Subject: [PATCH 126/517] Updated Previously Asked Questions (markdown) --- Previously-Asked-Questions.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Previously-Asked-Questions.md b/Previously-Asked-Questions.md index 4c23e30f15..7a2f2fdc65 100644 --- a/Previously-Asked-Questions.md +++ b/Previously-Asked-Questions.md @@ -1,2 +1,6 @@ -### Columns beyond uint16_t cannot be read -https://github.com/tmk/tmk_keyboard/wiki/FAQ#cant-read-comlumn-of-matrix-beyond-16 \ No newline at end of file +# Question thread +http://deskthority.net/workshop-f7/how-to-build-your-very-own-keyboard-firmware-t7177-270.html + +# Questions +## Columns beyond uint16_t cannot be read +http://deskthority.net/workshop-f7/how-to-build-your-very-own-keyboard-firmware-t7177-270.html#p247051 \ No newline at end of file From dcc1abcdd5e6950152cbaf289070c0e555fcf384 Mon Sep 17 00:00:00 2001 From: tmk Date: Sun, 9 Aug 2015 16:17:05 +0900 Subject: [PATCH 127/517] Updated Previously Asked Questions (markdown) --- Previously-Asked-Questions.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Previously-Asked-Questions.md b/Previously-Asked-Questions.md index 7a2f2fdc65..20bfd9a478 100644 --- a/Previously-Asked-Questions.md +++ b/Previously-Asked-Questions.md @@ -2,5 +2,7 @@ http://deskthority.net/workshop-f7/how-to-build-your-very-own-keyboard-firmware-t7177-270.html # Questions -## Columns beyond uint16_t cannot be read -http://deskthority.net/workshop-f7/how-to-build-your-very-own-keyboard-firmware-t7177-270.html#p247051 \ No newline at end of file +# [Q] Columns beyond 16(uint16_t) cannot be read +https://github.com/tmk/tmk_keyboard/wiki/FAQ#cant-read-comlumn-of-matrix-beyond-16 +http://deskthority.net/workshop-f7/how-to-build-your-very-own-keyboard-firmware-t7177-270.html#p247051 +http://deskthority.net/workshop-f7/rebuilding-and-redesigning-a-classic-thinkpad-keyboard-t6181-60.html#p146279 From e451b38848216bdf242c392fe64e4b6f71e1287b Mon Sep 17 00:00:00 2001 From: tmk Date: Sun, 9 Aug 2015 16:17:29 +0900 Subject: [PATCH 128/517] Updated Previously Asked Questions (markdown) --- Previously-Asked-Questions.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Previously-Asked-Questions.md b/Previously-Asked-Questions.md index 20bfd9a478..ce4c6f02d9 100644 --- a/Previously-Asked-Questions.md +++ b/Previously-Asked-Questions.md @@ -3,6 +3,6 @@ http://deskthority.net/workshop-f7/how-to-build-your-very-own-keyboard-firmware- # Questions # [Q] Columns beyond 16(uint16_t) cannot be read -https://github.com/tmk/tmk_keyboard/wiki/FAQ#cant-read-comlumn-of-matrix-beyond-16 -http://deskthority.net/workshop-f7/how-to-build-your-very-own-keyboard-firmware-t7177-270.html#p247051 -http://deskthority.net/workshop-f7/rebuilding-and-redesigning-a-classic-thinkpad-keyboard-t6181-60.html#p146279 +* https://github.com/tmk/tmk_keyboard/wiki/FAQ#cant-read-comlumn-of-matrix-beyond-16 +* http://deskthority.net/workshop-f7/how-to-build-your-very-own-keyboard-firmware-t7177-270.html#p247051 +* http://deskthority.net/workshop-f7/rebuilding-and-redesigning-a-classic-thinkpad-keyboard-t6181-60.html#p146279 From 08e31e7995a3e424e8108fe52854ff60433151ae Mon Sep 17 00:00:00 2001 From: tmk Date: Mon, 10 Aug 2015 09:34:59 +0900 Subject: [PATCH 130/517] Updated Previously Asked Questions (markdown => mediawiki) --- ...sly-Asked-Questions.md => Previously-Asked-Questions.mediawiki | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename Previously-Asked-Questions.md => Previously-Asked-Questions.mediawiki (100%) diff --git a/Previously-Asked-Questions.md b/Previously-Asked-Questions.mediawiki similarity index 100% rename from Previously-Asked-Questions.md rename to Previously-Asked-Questions.mediawiki From 2945841985b88ba7ae579b8f872814b1526c116e Mon Sep 17 00:00:00 2001 From: tmk Date: Mon, 10 Aug 2015 09:35:55 +0900 Subject: [PATCH 131/517] Updated Previously Asked Questions (mediawiki) --- Previously-Asked-Questions.mediawiki | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Previously-Asked-Questions.mediawiki b/Previously-Asked-Questions.mediawiki index ce4c6f02d9..5724443018 100644 --- a/Previously-Asked-Questions.mediawiki +++ b/Previously-Asked-Questions.mediawiki @@ -1,8 +1,8 @@ -# Question thread += Question thread = http://deskthority.net/workshop-f7/how-to-build-your-very-own-keyboard-firmware-t7177-270.html -# Questions -# [Q] Columns beyond 16(uint16_t) cannot be read += Questions = +== Columns beyond 16(uint16_t) cannot be read == * https://github.com/tmk/tmk_keyboard/wiki/FAQ#cant-read-comlumn-of-matrix-beyond-16 * http://deskthority.net/workshop-f7/how-to-build-your-very-own-keyboard-firmware-t7177-270.html#p247051 * http://deskthority.net/workshop-f7/rebuilding-and-redesigning-a-classic-thinkpad-keyboard-t6181-60.html#p146279 From 4a379102950ac07f39937ec56f1c7e8f0d794e8a Mon Sep 17 00:00:00 2001 From: tmk Date: Mon, 10 Aug 2015 09:43:16 +0900 Subject: [PATCH 132/517] Updated Previously Asked Questions (mediawiki => asciidoc) --- ...ked-Questions.mediawiki => Previously-Asked-Questions.asciidoc | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename Previously-Asked-Questions.mediawiki => Previously-Asked-Questions.asciidoc (100%) diff --git a/Previously-Asked-Questions.mediawiki b/Previously-Asked-Questions.asciidoc similarity index 100% rename from Previously-Asked-Questions.mediawiki rename to Previously-Asked-Questions.asciidoc From 13b8908951bc8949b6598e931dcf60725052985c Mon Sep 17 00:00:00 2001 From: tmk Date: Mon, 10 Aug 2015 09:43:38 +0900 Subject: [PATCH 133/517] Updated Previously Asked Questions (asciidoc) --- Previously-Asked-Questions.asciidoc | 1 + 1 file changed, 1 insertion(+) diff --git a/Previously-Asked-Questions.asciidoc b/Previously-Asked-Questions.asciidoc index 5724443018..ae5613cd20 100644 --- a/Previously-Asked-Questions.asciidoc +++ b/Previously-Asked-Questions.asciidoc @@ -1,3 +1,4 @@ +:toc: = Question thread = http://deskthority.net/workshop-f7/how-to-build-your-very-own-keyboard-firmware-t7177-270.html From 3ea6555f88c03da03d14f57d40f4f3192f5e744d Mon Sep 17 00:00:00 2001 From: tmk Date: Mon, 10 Aug 2015 10:02:46 +0900 Subject: [PATCH 134/517] Updated Previously Asked Questions (asciidoc) --- Previously-Asked-Questions.asciidoc | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Previously-Asked-Questions.asciidoc b/Previously-Asked-Questions.asciidoc index ae5613cd20..7a2aefa1b6 100644 --- a/Previously-Asked-Questions.asciidoc +++ b/Previously-Asked-Questions.asciidoc @@ -1,9 +1,11 @@ :toc: -= Question thread = +:toc-placement!: + += Question thread http://deskthority.net/workshop-f7/how-to-build-your-very-own-keyboard-firmware-t7177-270.html -= Questions = -== Columns beyond 16(uint16_t) cannot be read == += Questions +== Columns beyond 16(uint16_t) cannot be read * https://github.com/tmk/tmk_keyboard/wiki/FAQ#cant-read-comlumn-of-matrix-beyond-16 * http://deskthority.net/workshop-f7/how-to-build-your-very-own-keyboard-firmware-t7177-270.html#p247051 * http://deskthority.net/workshop-f7/rebuilding-and-redesigning-a-classic-thinkpad-keyboard-t6181-60.html#p146279 From c84d220b07f007ba5f949aab41757edb12afebfe Mon Sep 17 00:00:00 2001 From: tmk Date: Mon, 10 Aug 2015 10:03:41 +0900 Subject: [PATCH 135/517] Updated Previously Asked Questions (asciidoc) --- Previously-Asked-Questions.asciidoc | 1 + 1 file changed, 1 insertion(+) diff --git a/Previously-Asked-Questions.asciidoc b/Previously-Asked-Questions.asciidoc index 7a2aefa1b6..4d10ed062f 100644 --- a/Previously-Asked-Questions.asciidoc +++ b/Previously-Asked-Questions.asciidoc @@ -1,3 +1,4 @@ += Previously Asked Questions :toc: :toc-placement!: From f98e803e5c64cb36496e3d439ebd15393aeb9fa5 Mon Sep 17 00:00:00 2001 From: tmk Date: Mon, 10 Aug 2015 10:04:23 +0900 Subject: [PATCH 136/517] Updated Previously Asked Questions (asciidoc) --- Previously-Asked-Questions.asciidoc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Previously-Asked-Questions.asciidoc b/Previously-Asked-Questions.asciidoc index 4d10ed062f..5cb7d5bf0b 100644 --- a/Previously-Asked-Questions.asciidoc +++ b/Previously-Asked-Questions.asciidoc @@ -2,6 +2,8 @@ :toc: :toc-placement!: +toc::[] + = Question thread http://deskthority.net/workshop-f7/how-to-build-your-very-own-keyboard-firmware-t7177-270.html From c797334f5193fe95e05bc381e5ca1276ec969730 Mon Sep 17 00:00:00 2001 From: tmk Date: Mon, 10 Aug 2015 10:15:47 +0900 Subject: [PATCH 137/517] Updated Previously Asked Questions (asciidoc) --- Previously-Asked-Questions.asciidoc | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Previously-Asked-Questions.asciidoc b/Previously-Asked-Questions.asciidoc index 5cb7d5bf0b..b6413a7680 100644 --- a/Previously-Asked-Questions.asciidoc +++ b/Previously-Asked-Questions.asciidoc @@ -1,6 +1,5 @@ = Previously Asked Questions -:toc: -:toc-placement!: + toc::[] From b216768cef2a2446e93c52afb5aa32427a3e84c2 Mon Sep 17 00:00:00 2001 From: tmk Date: Mon, 10 Aug 2015 10:16:16 +0900 Subject: [PATCH 138/517] Updated Previously Asked Questions (asciidoc) --- Previously-Asked-Questions.asciidoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Previously-Asked-Questions.asciidoc b/Previously-Asked-Questions.asciidoc index b6413a7680..2b1c675dfa 100644 --- a/Previously-Asked-Questions.asciidoc +++ b/Previously-Asked-Questions.asciidoc @@ -1,5 +1,5 @@ = Previously Asked Questions - +:toc: toc::[] From 3290a75dd01e9d71af9e7383bb55ec3c3959d023 Mon Sep 17 00:00:00 2001 From: tmk Date: Mon, 10 Aug 2015 10:16:36 +0900 Subject: [PATCH 139/517] Updated Previously Asked Questions (asciidoc) --- Previously-Asked-Questions.asciidoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Previously-Asked-Questions.asciidoc b/Previously-Asked-Questions.asciidoc index 2b1c675dfa..84e9c2ce8d 100644 --- a/Previously-Asked-Questions.asciidoc +++ b/Previously-Asked-Questions.asciidoc @@ -1,6 +1,6 @@ = Previously Asked Questions :toc: - +:toc-placement: toc::[] = Question thread From d5bbecc134cde9f56dc5db42c91e7681d2f2622e Mon Sep 17 00:00:00 2001 From: tmk Date: Mon, 10 Aug 2015 10:17:01 +0900 Subject: [PATCH 140/517] Updated Previously Asked Questions (asciidoc) --- Previously-Asked-Questions.asciidoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Previously-Asked-Questions.asciidoc b/Previously-Asked-Questions.asciidoc index 84e9c2ce8d..2a1468bac4 100644 --- a/Previously-Asked-Questions.asciidoc +++ b/Previously-Asked-Questions.asciidoc @@ -1,6 +1,6 @@ = Previously Asked Questions :toc: -:toc-placement: +:toc-placement: preamble toc::[] = Question thread From bd9d75701c27ffb34225ea6bc2f2cf4765eb1330 Mon Sep 17 00:00:00 2001 From: tmk Date: Mon, 10 Aug 2015 10:17:13 +0900 Subject: [PATCH 141/517] Updated Previously Asked Questions (asciidoc) --- Previously-Asked-Questions.asciidoc | 1 + 1 file changed, 1 insertion(+) diff --git a/Previously-Asked-Questions.asciidoc b/Previously-Asked-Questions.asciidoc index 2a1468bac4..36af1f2035 100644 --- a/Previously-Asked-Questions.asciidoc +++ b/Previously-Asked-Questions.asciidoc @@ -1,6 +1,7 @@ = Previously Asked Questions :toc: :toc-placement: preamble + toc::[] = Question thread From 7c8a062cd709b92a82fe3d81e0e50e01d7b20145 Mon Sep 17 00:00:00 2001 From: tmk Date: Mon, 10 Aug 2015 10:20:05 +0900 Subject: [PATCH 142/517] Updated Previously Asked Questions (asciidoc => mediawiki) --- ...ked-Questions.asciidoc => Previously-Asked-Questions.mediawiki | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename Previously-Asked-Questions.asciidoc => Previously-Asked-Questions.mediawiki (100%) diff --git a/Previously-Asked-Questions.asciidoc b/Previously-Asked-Questions.mediawiki similarity index 100% rename from Previously-Asked-Questions.asciidoc rename to Previously-Asked-Questions.mediawiki From 86fa48e1ee7d12a660fb99f9093320bd71c356f1 Mon Sep 17 00:00:00 2001 From: tmk Date: Mon, 10 Aug 2015 10:20:26 +0900 Subject: [PATCH 143/517] Updated Previously Asked Questions (mediawiki => markdown) --- ...sly-Asked-Questions.mediawiki => Previously-Asked-Questions.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename Previously-Asked-Questions.mediawiki => Previously-Asked-Questions.md (100%) diff --git a/Previously-Asked-Questions.mediawiki b/Previously-Asked-Questions.md similarity index 100% rename from Previously-Asked-Questions.mediawiki rename to Previously-Asked-Questions.md From 14466e820dd2e6730b711ef5e5b8f9264cf71068 Mon Sep 17 00:00:00 2001 From: tmk Date: Mon, 10 Aug 2015 10:20:55 +0900 Subject: [PATCH 144/517] Updated Previously Asked Questions (markdown => asciidoc) --- ...usly-Asked-Questions.md => Previously-Asked-Questions.asciidoc | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename Previously-Asked-Questions.md => Previously-Asked-Questions.asciidoc (100%) diff --git a/Previously-Asked-Questions.md b/Previously-Asked-Questions.asciidoc similarity index 100% rename from Previously-Asked-Questions.md rename to Previously-Asked-Questions.asciidoc From c8f3e845e700dd34b3c997ecb2e899e3a4c4758b Mon Sep 17 00:00:00 2001 From: tmk Date: Mon, 31 Aug 2015 10:40:59 +0900 Subject: [PATCH 145/517] Updated FAQ Build (markdown) --- FAQ-Build.md | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/FAQ-Build.md b/FAQ-Build.md index c3f168a719..c793891260 100644 --- a/FAQ-Build.md +++ b/FAQ-Build.md @@ -101,4 +101,19 @@ https://launchpad.net/~terry.guo/+archive/ubuntu/gcc-arm-embedded 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/ \ No newline at end of file +https://developer.mbed.org/forum/mbed/topic/5205/ + + +## '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. + +``` +Compiling C: ../../tmk_core/protocol/lufa/lufa.c +avr-gcc -c -mmcu=atmega32u2 -gdwarf-2 -DF_CPU=16000000UL -DINTERRUPT_CONTROL_ENDPOINT -DBOOTLOADER_SIZE=4096 -DF_USB=16000000UL -DARCH=ARCH_AVR8 -DUSB_DEVICE_ONLY -DUSE_FLASH_DESCRIPTORS -DUSE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)" -DFIXED_CONTROL_ENDPOINT_SIZE=8 -DFIXED_NUM_CONFIGURATIONS=1 -DPROTOCOL_LUFA -DEXTRAKEY_ENABLE -DCONSOLE_ENABLE -DCOMMAND_ENABLE -DVERSION=unknown -Os -funsigned-char -funsigned-bitfields -ffunction-sections -fdata-sections -fno-inline-small-functions -fpack-struct -fshort-enums -fno-strict-aliasing -Wall -Wstrict-prototypes -Wa,-adhlns=obj_alps64/protocol/lufa/lufa.lst -I. -I../../tmk_core -I../../tmk_core/protocol/lufa -I../../tmk_core/protocol/lufa/LUFA-git -I../../tmk_core/common -std=gnu99 -include config.h -MMD -MP -MF .dep/obj_alps64_protocol_lufa_lufa.o.d ../../tmk_core/protocol/lufa/lufa.c -o obj_alps64/protocol/lufa/lufa.o +../../tmk_core/protocol/lufa/lufa.c: In function 'setup_mcu': +../../tmk_core/protocol/lufa/lufa.c:575: warning: implicit declaration of function 'clock_prescale_set' +../../tmk_core/protocol/lufa/lufa.c:575: error: 'clock_div_1' undeclared (first use in this function) +../../tmk_core/protocol/lufa/lufa.c:575: error: (Each undeclared identifier is reported only once +../../tmk_core/protocol/lufa/lufa.c:575: error: for each function it appears in.) +make: *** [obj_alps64/protocol/lufa/lufa.o] Error 1 +``` \ No newline at end of file From 8008a8a9dc1f495922039f37969fce955d873d57 Mon Sep 17 00:00:00 2001 From: tmk Date: Sat, 19 Sep 2015 18:31:10 +0900 Subject: [PATCH 146/517] Updated FAQ (markdown) --- FAQ.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/FAQ.md b/FAQ.md index 159959e337..241854c2f9 100644 --- a/FAQ.md +++ b/FAQ.md @@ -27,11 +27,14 @@ once the device is pluged in then *hid_listen* finds it you will get this messag Check if you can't get this 'Listening:' message: - build with `CONSOLE_ENABLE=yes` in **Makefile**. +You may need privilege to access the device on OS like Linux. +- try `sudo hid_listen` + ## 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). -- set `debug_enable=yes` usually in `matrix_init()` in **matrix.c**. +- set `debug_enable=true` usually in `matrix_init()` in **matrix.c**. - 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). From 6163f0ea51184d75cf0b23b5d7bedbacc33a6bb3 Mon Sep 17 00:00:00 2001 From: tmk Date: Sun, 27 Sep 2015 05:48:41 +0900 Subject: [PATCH 147/517] Updated FAQ Keymap (markdown) --- FAQ-Keymap.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/FAQ-Keymap.md b/FAQ-Keymap.md index a039556fcc..b5c506b18d 100644 --- a/FAQ-Keymap.md +++ b/FAQ-Keymap.md @@ -27,8 +27,9 @@ https://github.com/tmk/tmk_keyboard/issues/67 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_keyboard/blob/master/doc/keymap.md#31-momentary-switching -http://geekhack.org/index.php?topic=57008.msg1492604#msg1492604 +- https://github.com/tmk/tmk_keyboard/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 From 8d47fe7bc7e67ecf09b842a983dc6886a2642e84 Mon Sep 17 00:00:00 2001 From: tmk Date: Sat, 3 Oct 2015 07:03:58 +0900 Subject: [PATCH 148/517] Updated FAQ (markdown) --- FAQ.md | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/FAQ.md b/FAQ.md index 241854c2f9..834822e1e8 100644 --- a/FAQ.md +++ b/FAQ.md @@ -210,4 +210,13 @@ avrdude -patmega32u4 -cavr109 -b57600 -Uflash:w:adb_usb.hex -P/dev/ttyACM0 Device name will vary depending on your system. http://arduino.cc/en/Main/ArduinoBoardMicro -https://geekhack.org/index.php?topic=14290.msg1563867#msg1563867 \ No newline at end of file +https://geekhack.org/index.php?topic=14290.msg1563867#msg1563867 + + +## USB 3 compatibility +I heard some people have a problem with USB 3 port, try USB 2 port. + + +## Mac compatibility +- OS X 10.11 and Hub: https://geekhack.org/index.php?topic=14290.msg1884034#msg1884034 +https://geekhack.org/index.php?topic=14290.msg1884034#msg1884034 \ No newline at end of file From db193b8cf9b142e3ee175c40e7611aee667a182f Mon Sep 17 00:00:00 2001 From: tmk Date: Sat, 3 Oct 2015 07:04:27 +0900 Subject: [PATCH 149/517] Updated FAQ (markdown) --- FAQ.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/FAQ.md b/FAQ.md index 834822e1e8..341fb4ddde 100644 --- a/FAQ.md +++ b/FAQ.md @@ -218,5 +218,5 @@ I heard some people have a problem with USB 3 port, try USB 2 port. ## Mac compatibility -- OS X 10.11 and Hub: https://geekhack.org/index.php?topic=14290.msg1884034#msg1884034 -https://geekhack.org/index.php?topic=14290.msg1884034#msg1884034 \ No newline at end of file +### OS X 10.11 and Hub +https://geekhack.org/index.php?topic=14290.msg1884034#msg1884034 From 08f1bde358f2f0c4a1594470447b457b34e27fc9 Mon Sep 17 00:00:00 2001 From: tmk Date: Mon, 5 Oct 2015 03:51:26 +0900 Subject: [PATCH 150/517] Updated FAQ Keymap (markdown) --- FAQ-Keymap.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/FAQ-Keymap.md b/FAQ-Keymap.md index b5c506b18d..a607cfb33b 100644 --- a/FAQ-Keymap.md +++ b/FAQ-Keymap.md @@ -107,4 +107,8 @@ https://github.com/tekezo/Karabiner/issues/403#issuecomment-102559237 See these for the deail of this problem. https://github.com/tmk/tmk_keyboard/issues/213 -https://github.com/tekezo/Karabiner/issues/403 \ No newline at end of file +https://github.com/tekezo/Karabiner/issues/403 + + +## Esc and `~ on a key +https://github.com/p3lim/keyboard_firmware/commit/fd799c12b69a5ab5addd1d4c03380a1b8ef8e9dc \ No newline at end of file From 9d25855bb03ea21a1a03c1e300f6bb4cd165ab45 Mon Sep 17 00:00:00 2001 From: tmk Date: Mon, 5 Oct 2015 04:02:42 +0900 Subject: [PATCH 151/517] Updated FAQ Keymap (markdown) --- FAQ-Keymap.md | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/FAQ-Keymap.md b/FAQ-Keymap.md index a607cfb33b..20b9cefc6b 100644 --- a/FAQ-Keymap.md +++ b/FAQ-Keymap.md @@ -111,4 +111,13 @@ https://github.com/tekezo/Karabiner/issues/403 ## Esc and `~ on a key -https://github.com/p3lim/keyboard_firmware/commit/fd799c12b69a5ab5addd1d4c03380a1b8ef8e9dc \ No newline at end of file +https://github.com/p3lim/keyboard_firmware/commit/fd799c12b69a5ab5addd1d4c03380a1b8ef8e9dc + + +## 32 Fn keys are not enough? +### actionmap +It uses 16 bit codes and no limitation of 32 Fn at the expense of memory space. TMK keymap is actually is 8 bit codes as subset of the actionmap. +https://github.com/tmk/tmk_keyboard/issues?utf8=%E2%9C%93&q=is%3Aissue+actionmap + +### extension for modified keys +https://geekhack.org/index.php?topic=41989.msg1885526#msg1885526 \ No newline at end of file From 7328ba0f3b3f6f65ae4b1d918cdb834fb54d83be Mon Sep 17 00:00:00 2001 From: tmk Date: Mon, 5 Oct 2015 04:05:56 +0900 Subject: [PATCH 152/517] Updated FAQ Keymap (markdown) --- FAQ-Keymap.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FAQ-Keymap.md b/FAQ-Keymap.md index 20b9cefc6b..60f69d9a16 100644 --- a/FAQ-Keymap.md +++ b/FAQ-Keymap.md @@ -116,7 +116,7 @@ https://github.com/p3lim/keyboard_firmware/commit/fd799c12b69a5ab5addd1d4c03380a ## 32 Fn keys are not enough? ### actionmap -It uses 16 bit codes and no limitation of 32 Fn at the expense of memory space. TMK keymap is actually is 8 bit codes as subset of the actionmap. +It uses 16 bit codes and has no limitation of 32 Fn at the expense of memory space. TMK keymap is actually is 8 bit codes as subset of the actionmap. https://github.com/tmk/tmk_keyboard/issues?utf8=%E2%9C%93&q=is%3Aissue+actionmap ### extension for modified keys From 1b0fec884f1a960758329c3dc7826a5c79349a71 Mon Sep 17 00:00:00 2001 From: tmk Date: Tue, 6 Oct 2015 15:43:51 +0900 Subject: [PATCH 153/517] Updated FAQ Keymap (markdown) --- FAQ-Keymap.md | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/FAQ-Keymap.md b/FAQ-Keymap.md index 60f69d9a16..6d922012a5 100644 --- a/FAQ-Keymap.md +++ b/FAQ-Keymap.md @@ -113,6 +113,51 @@ https://github.com/tekezo/Karabiner/issues/403 ## Esc and `~ on a key https://github.com/p3lim/keyboard_firmware/commit/fd799c12b69a5ab5addd1d4c03380a1b8ef8e9dc +You can define FC660 and Poker style ESC with `ACTION_LAYER_MODS`. +https://github.com/tmk/tmk_keyboard/blob/master/doc/keymap.md#35-momentary-switching-with-modifiers + +``` +#include "keymap_common.h" + + +/* Leopold FC660 + * https://elitekeyboards.com/products.php?sub=leopold,compact&pid=fc660c + * Shift + Esc = ~ + * Fn + Esc = ` + * + * Votex Poker II + * https://adprice.fedorapeople.org/poker2_manual.pdf + * Fn + Esc = ` + * Fn + Shift + Esc = ~ + */ +const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* 0: qwerty */ + [0] = KEYMAP( \ + ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, NUHS,BSPC, \ + TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, \ + LCTL,A, S, D, F, G, H, J, K, L, SCLN,QUOT,ENT, \ + FN0, NUBS,Z, X, C, V, B, N, M, COMM,DOT, SLSH,RSFT,ESC, \ + LCTL,LGUI,LALT, SPC, RALT,FN1, RGUI,RCTL), + [1] = KEYMAP( \ + GRV, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,\ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS), + [2] = KEYMAP( \ + GRV, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,\ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS), +}; + +const uint16_t PROGMEM fn_actions[] = { + // https://github.com/tmk/tmk_keyboard/blob/master/doc/keymap.md#35-momentary-switching-with-modifiers + [0] = ACTION_LAYER_MODS(1, MOD_LSFT), + [1] = ACTION_LAYER_MOMENTARY(2), +}; +``` ## 32 Fn keys are not enough? ### actionmap From f7ae70962c37f4b5c9fb4acabc50982f8c43a6a4 Mon Sep 17 00:00:00 2001 From: tmk Date: Tue, 6 Oct 2015 15:49:17 +0900 Subject: [PATCH 154/517] Updated FAQ Keymap (markdown) --- FAQ-Keymap.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/FAQ-Keymap.md b/FAQ-Keymap.md index 6d922012a5..dce2df7673 100644 --- a/FAQ-Keymap.md +++ b/FAQ-Keymap.md @@ -111,7 +111,7 @@ https://github.com/tekezo/Karabiner/issues/403 ## Esc and `~ on a key -https://github.com/p3lim/keyboard_firmware/commit/fd799c12b69a5ab5addd1d4c03380a1b8ef8e9dc + You can define FC660 and Poker style ESC with `ACTION_LAYER_MODS`. https://github.com/tmk/tmk_keyboard/blob/master/doc/keymap.md#35-momentary-switching-with-modifiers @@ -159,6 +159,10 @@ const uint16_t PROGMEM fn_actions[] = { }; ``` +Otherwise, you can write code, see this. +https://github.com/p3lim/keyboard_firmware/commit/fd799c12b69a5ab5addd1d4c03380a1b8ef8e9dc + + ## 32 Fn keys are not enough? ### actionmap It uses 16 bit codes and has no limitation of 32 Fn at the expense of memory space. TMK keymap is actually is 8 bit codes as subset of the actionmap. From 50e0b35560b92db5c830605073530d27859918ee Mon Sep 17 00:00:00 2001 From: tmk Date: Tue, 6 Oct 2015 15:56:44 +0900 Subject: [PATCH 155/517] Updated FAQ Keymap (markdown) --- FAQ-Keymap.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/FAQ-Keymap.md b/FAQ-Keymap.md index dce2df7673..650aa8fb8b 100644 --- a/FAQ-Keymap.md +++ b/FAQ-Keymap.md @@ -145,7 +145,7 @@ const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS), [2] = KEYMAP( \ - GRV, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS,TRNS, \ TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,\ TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ @@ -157,6 +157,7 @@ const uint16_t PROGMEM fn_actions[] = { [0] = ACTION_LAYER_MODS(1, MOD_LSFT), [1] = ACTION_LAYER_MOMENTARY(2), }; + ``` Otherwise, you can write code, see this. From 6e1a6d1981629b730d37d437fa74c5cb91d6cb0e Mon Sep 17 00:00:00 2001 From: tmk Date: Tue, 6 Oct 2015 15:57:00 +0900 Subject: [PATCH 156/517] Updated FAQ Keymap (markdown) --- FAQ-Keymap.md | 1 - 1 file changed, 1 deletion(-) diff --git a/FAQ-Keymap.md b/FAQ-Keymap.md index 650aa8fb8b..b83b41df7c 100644 --- a/FAQ-Keymap.md +++ b/FAQ-Keymap.md @@ -157,7 +157,6 @@ const uint16_t PROGMEM fn_actions[] = { [0] = ACTION_LAYER_MODS(1, MOD_LSFT), [1] = ACTION_LAYER_MOMENTARY(2), }; - ``` Otherwise, you can write code, see this. From eeaef60ffa2f6bfa2b9eac7c13d689f60c6ed3fd Mon Sep 17 00:00:00 2001 From: tmk Date: Wed, 7 Oct 2015 04:09:04 +0900 Subject: [PATCH 157/517] Updated FAQ Keymap (markdown) --- FAQ-Keymap.md | 47 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 46 insertions(+), 1 deletion(-) diff --git a/FAQ-Keymap.md b/FAQ-Keymap.md index b83b41df7c..909e356f60 100644 --- a/FAQ-Keymap.md +++ b/FAQ-Keymap.md @@ -169,4 +169,49 @@ It uses 16 bit codes and has no limitation of 32 Fn at the expense of memory spa https://github.com/tmk/tmk_keyboard/issues?utf8=%E2%9C%93&q=is%3Aissue+actionmap ### extension for modified keys -https://geekhack.org/index.php?topic=41989.msg1885526#msg1885526 \ No newline at end of file +https://geekhack.org/index.php?topic=41989.msg1885526#msg1885526 + + +## 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**. +``` +#include "keymap_common.h" + + +/* Arrow keys on right modifier keys with TMK dual role feature + * + * https://github.com/tmk/tmk_keyboard/blob/master/doc/keymap.md#213-modifier-with-tap-keydual-role + * https://en.wikipedia.org/wiki/Modifier_key#Dual-role_keys + */ +const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* 0: qwerty */ + [0] = KEYMAP( \ + ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, NUHS,BSPC, \ + TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, \ + LCTL,A, S, D, F, G, H, J, K, L, SCLN,QUOT,ENT, \ + LSFT,NUBS,Z, X, C, V, B, N, M, COMM,DOT, SLSH,FN0, ESC, \ + FN4, LGUI,LALT, SPC, APP, FN2, FN1, FN3), + [1] = KEYMAP( \ + GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS,TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,\ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,FN5, TRNS, \ + TRNS,TRNS,TRNS, TRNS, TRNS,FN7, FN6, FN8), +}; + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_UP), + [1] = ACTION_MODS_TAP_KEY(MOD_RGUI, KC_DOWN), + [2] = ACTION_MODS_TAP_KEY(MOD_RALT, KC_LEFT), + [3] = ACTION_MODS_TAP_KEY(MOD_RCTL, KC_RIGHT), + [4] = ACTION_LAYER_MOMENTARY(1), + [5] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_PGUP), + [6] = ACTION_MODS_TAP_KEY(MOD_RGUI, KC_PGDN), + [7] = ACTION_MODS_TAP_KEY(MOD_RALT, KC_HOME), + [8] = ACTION_MODS_TAP_KEY(MOD_RCTL, KC_END), +}; + +``` + + +Dual-role key: https://en.wikipedia.org/wiki/Modifier_key#Dual-role_keys \ No newline at end of file From d28ecc1e4a883dd5c33f2894f448aef216957813 Mon Sep 17 00:00:00 2001 From: tmk Date: Wed, 7 Oct 2015 16:29:38 +0900 Subject: [PATCH 158/517] Updated FAQ (markdown) --- FAQ.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/FAQ.md b/FAQ.md index 341fb4ddde..89719b0a19 100644 --- a/FAQ.md +++ b/FAQ.md @@ -118,7 +118,7 @@ Properly configure bootloader size in **Makefile**. With wrong section size boot # Arduino Caterina(ATmega32U4) 4096 # USBaspLoader(ATmega***) 2048 # Teensy halfKay(ATmega32U4) 512 -# Teensy++ halfKay(AT90USB128) 1024 +# Teensy++ halfKay(AT90USB128) 2048 OPT_DEFS += -DBOOTLOADER_SIZE=4096 ``` AVR Boot section size are defined by setting **BOOTSZ** fuse in fact. Consult with your MCU datasheet. @@ -134,7 +134,7 @@ byte Atmel/LUFA(ATMega32u4) byte Atmel(AT90SUB1286) | | | | = = = = | | 32KB-4KB | | 128KB-8KB -0x6000 +---------------+ 0x1FC00 +---------------+ +0x6000 +---------------+ 0x1E000 +---------------+ | Bootloader | 4KB | Bootloader | 8KB 0x7FFF +---------------+ 0x1FFFF +---------------+ @@ -148,7 +148,7 @@ byte Teensy(ATMega32u4) byte Teensy++(AT90SUB1286) = = = = | | 32KB-512B | | 128KB-1KB 0x7E00 +---------------+ 0x1FC00 +---------------+ - | Bootloader | 512B | Bootloader | 1KB + | Bootloader | 512B | Bootloader | 2KB 0x7FFF +---------------+ 0x1FFFF +---------------+ ``` From 2196a5facf435804cd5a8abdba4c2a3c2841b945 Mon Sep 17 00:00:00 2001 From: tmk Date: Wed, 7 Oct 2015 16:31:02 +0900 Subject: [PATCH 159/517] Updated FAQ (markdown) --- FAQ.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FAQ.md b/FAQ.md index 89719b0a19..d033e026b4 100644 --- a/FAQ.md +++ b/FAQ.md @@ -146,7 +146,7 @@ byte Teensy(ATMega32u4) byte Teensy++(AT90SUB1286) | Application | | Application | | | | | = = = = - | | 32KB-512B | | 128KB-1KB + | | 32KB-512B | | 128KB-2KB 0x7E00 +---------------+ 0x1FC00 +---------------+ | Bootloader | 512B | Bootloader | 2KB 0x7FFF +---------------+ 0x1FFFF +---------------+ From ee732d7753f341d7e803271a699f1c8c21866e86 Mon Sep 17 00:00:00 2001 From: tmk Date: Wed, 21 Oct 2015 07:03:01 +0900 Subject: [PATCH 160/517] Updated FAQ Keymap (markdown) --- FAQ-Keymap.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/FAQ-Keymap.md b/FAQ-Keymap.md index 909e356f60..4974cbc3a9 100644 --- a/FAQ-Keymap.md +++ b/FAQ-Keymap.md @@ -214,4 +214,8 @@ const uint16_t PROGMEM fn_actions[] = { ``` -Dual-role key: https://en.wikipedia.org/wiki/Modifier_key#Dual-role_keys \ No newline at end of file +Dual-role key: https://en.wikipedia.org/wiki/Modifier_key#Dual-role_keys + + +## Eject on Mac OSX +It is actually F20, at least HHKB use it for Eject key(Fn+f). \ No newline at end of file From caf197b9058118bf887950e0576b3958a18ff48e Mon Sep 17 00:00:00 2001 From: tmk Date: Wed, 21 Oct 2015 07:03:11 +0900 Subject: [PATCH 161/517] Updated FAQ Keymap (markdown) --- FAQ-Keymap.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FAQ-Keymap.md b/FAQ-Keymap.md index 4974cbc3a9..5a3874e9e4 100644 --- a/FAQ-Keymap.md +++ b/FAQ-Keymap.md @@ -218,4 +218,4 @@ Dual-role key: https://en.wikipedia.org/wiki/Modifier_key#Dual-role_keys ## Eject on Mac OSX -It is actually F20, at least HHKB use it for Eject key(Fn+f). \ No newline at end of file +It is actually F20, at least HHKB uses it for Eject key(Fn+f). \ No newline at end of file From 06e9019a06693375ac5621679d140620a03ad95e Mon Sep 17 00:00:00 2001 From: tmk Date: Wed, 21 Oct 2015 07:03:53 +0900 Subject: [PATCH 162/517] Updated FAQ Keymap (markdown) --- FAQ-Keymap.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FAQ-Keymap.md b/FAQ-Keymap.md index 5a3874e9e4..7912ad1309 100644 --- a/FAQ-Keymap.md +++ b/FAQ-Keymap.md @@ -218,4 +218,4 @@ Dual-role key: https://en.wikipedia.org/wiki/Modifier_key#Dual-role_keys ## Eject on Mac OSX -It is actually F20, at least HHKB uses it for Eject key(Fn+f). \ No newline at end of file +It is actually `F20`, at least HHKB uses it for Eject key(`Fn+f`) on Mac mode. \ No newline at end of file From 483de131147032d94ffbcb7acced83640fffd457 Mon Sep 17 00:00:00 2001 From: tmk Date: Thu, 29 Oct 2015 05:50:25 +0900 Subject: [PATCH 163/517] Updated FAQ Keymap (markdown) --- FAQ-Keymap.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/FAQ-Keymap.md b/FAQ-Keymap.md index 7912ad1309..3d1496d2b0 100644 --- a/FAQ-Keymap.md +++ b/FAQ-Keymap.md @@ -218,4 +218,6 @@ Dual-role key: https://en.wikipedia.org/wiki/Modifier_key#Dual-role_keys ## Eject on Mac OSX -It is actually `F20`, at least HHKB uses it for Eject key(`Fn+f`) on Mac mode. \ No newline at end of file +`EJCT` keycode works on OSX. https://github.com/tmk/tmk_keyboard/issues/250 + +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. \ No newline at end of file From c38bac480bb620beaf55e0a9c2e5710d27eb1d2c Mon Sep 17 00:00:00 2001 From: tmk Date: Thu, 29 Oct 2015 06:03:25 +0900 Subject: [PATCH 164/517] Updated FAQ Keymap (markdown) --- FAQ-Keymap.md | 1 + 1 file changed, 1 insertion(+) diff --git a/FAQ-Keymap.md b/FAQ-Keymap.md index 3d1496d2b0..663cdd6e36 100644 --- a/FAQ-Keymap.md +++ b/FAQ-Keymap.md @@ -219,5 +219,6 @@ Dual-role key: https://en.wikipedia.org/wiki/Modifier_key#Dual-role_keys ## Eject on Mac OSX `EJCT` keycode works on OSX. https://github.com/tmk/tmk_keyboard/issues/250 +It seems Windows 10 ignores the code and Linux/Xorg recognizes but has no mapping by default. 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. \ No newline at end of file From 8002d8dc29d4863ad30408c9fde4a7c788cd3fc2 Mon Sep 17 00:00:00 2001 From: tmk Date: Thu, 29 Oct 2015 06:21:33 +0900 Subject: [PATCH 165/517] Updated FAQ Keymap (markdown) --- FAQ-Keymap.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FAQ-Keymap.md b/FAQ-Keymap.md index 663cdd6e36..15c3c83a87 100644 --- a/FAQ-Keymap.md +++ b/FAQ-Keymap.md @@ -68,7 +68,7 @@ And see this for **Unicode** input. Not supported. Apple keyboard sends keycode for Fn unlike most of other keyboards. -I think you can send Apple Fn key using Apple venter specific Page 0xff00 and usage 0x0003. But you have to change HID Report Descriptor for this, of course. +I think you can send Apple Fn key using Apple venter specific Page 0xff01 and usage 0x0003. But you have to change HID Report Descriptor for this, of course. https://opensource.apple.com/source/IOHIDFamily/IOHIDFamily-606.1.7/IOHIDFamily/AppleHIDUsageTables.h From 03c1f72594204d1167c7e531cda1ba3f030681f5 Mon Sep 17 00:00:00 2001 From: Paul Williamson Date: Wed, 11 Nov 2015 12:06:40 +0000 Subject: [PATCH 166/517] Updated file path for `tmk_core` --- FAQ-Keymap.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FAQ-Keymap.md b/FAQ-Keymap.md index 15c3c83a87..c38641eb07 100644 --- a/FAQ-Keymap.md +++ b/FAQ-Keymap.md @@ -3,7 +3,7 @@ https://github.com/tmk/tmk_keyboard/blob/master/doc/keymap.md ## How to get keycode See [doc/keycode.txt](https://github.com/tmk/tmk_keyboard/blob/master/doc/keycode.txt). -Keycodes are actually defined in [common/keycode.h](https://github.com/tmk/tmk_keyboard/blob/master/common/keycode.h). +Keycodes are actually defined in [common/keycode.h](https://github.com/tmk/tmk_keyboard/blob/master/tmk_core/common/keycode.h). ## Sysrq key 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'. From a5fc9c91655c993ad697a9d36988f0b12faa908e Mon Sep 17 00:00:00 2001 From: tmk Date: Fri, 27 Nov 2015 10:56:20 +0900 Subject: [PATCH 167/517] Updated FAQ Build (markdown) --- FAQ-Build.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/FAQ-Build.md b/FAQ-Build.md index c793891260..074272d11a 100644 --- a/FAQ-Build.md +++ b/FAQ-Build.md @@ -8,6 +8,23 @@ In short, $ make [-f Makefile.] [KEYMAP=...] dfu +## Can't program on Linux and Mac +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. + +https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man8/sudo.8.html + +in short, + + $ sudo dfu-programmer atmega32u4 erase --force + $ sudo dfu-programmer atmega32u4 flash hhkb_rn42.hex + $ sudo dfu-programmer atmega32u4 reset + +or + + $ sudo make dfu + + ## Do 'make clean' before 'make' You'll need `make clean` after you edit **config.h** or change options like `KEYMAP`. From 79aa1f348455102e563693e0b3ec647cc73362ae Mon Sep 17 00:00:00 2001 From: tmk Date: Fri, 27 Nov 2015 10:59:07 +0900 Subject: [PATCH 168/517] Updated FAQ Build (markdown) --- FAQ-Build.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/FAQ-Build.md b/FAQ-Build.md index 074272d11a..4adbdddc33 100644 --- a/FAQ-Build.md +++ b/FAQ-Build.md @@ -14,16 +14,17 @@ Easy way is to use `sudo` command, if you are not familiar with this command che https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man8/sudo.8.html -in short, +In short when your controller is ATMega32u4, $ sudo dfu-programmer atmega32u4 erase --force $ sudo dfu-programmer atmega32u4 flash hhkb_rn42.hex $ sudo dfu-programmer atmega32u4 reset -or +or just $ sudo make dfu +But to run `make` with root privilege is not good idea. Use former method as possible. ## Do 'make clean' before 'make' You'll need `make clean` after you edit **config.h** or change options like `KEYMAP`. From 1ef3dee8214a614d28e287a419bb6d2cac31d190 Mon Sep 17 00:00:00 2001 From: tmk Date: Fri, 27 Nov 2015 10:59:33 +0900 Subject: [PATCH 169/517] Updated FAQ Build (markdown) --- FAQ-Build.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FAQ-Build.md b/FAQ-Build.md index 4adbdddc33..7569baeb74 100644 --- a/FAQ-Build.md +++ b/FAQ-Build.md @@ -17,7 +17,7 @@ https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/ In short when your controller is ATMega32u4, $ sudo dfu-programmer atmega32u4 erase --force - $ sudo dfu-programmer atmega32u4 flash hhkb_rn42.hex + $ sudo dfu-programmer atmega32u4 flash your.hex $ sudo dfu-programmer atmega32u4 reset or just From d03be6dbcb1238449b96ef08cfabbf8c9646ddbd Mon Sep 17 00:00:00 2001 From: tmk Date: Sat, 5 Dec 2015 13:43:04 +0900 Subject: [PATCH 170/517] Updated Projects (markdown) --- Projects.md => TMK-Projects.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename Projects.md => TMK-Projects.md (100%) diff --git a/Projects.md b/TMK-Projects.md similarity index 100% rename from Projects.md rename to TMK-Projects.md From 0e8f5b0d9189c5c8f6d903984606c442b141f931 Mon Sep 17 00:00:00 2001 From: tmk Date: Sat, 5 Dec 2015 13:43:32 +0900 Subject: [PATCH 171/517] Updated Home (markdown) --- Home.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Home.md b/Home.md index 5ec9c374eb..1274df8ae1 100644 --- a/Home.md +++ b/Home.md @@ -1,6 +1,6 @@ Welcome to the tmk_keyboard wiki! -- [[Projects]] +- [[TMK Projects]] - [[FAQ]] - [[FAQ/Build]] - [[FAQ/Keymap]] From b2d1c4950c20d42680276f57c244f2f5dce17dfa Mon Sep 17 00:00:00 2001 From: tmk Date: Sat, 5 Dec 2015 13:44:05 +0900 Subject: [PATCH 172/517] Updated Home (markdown) --- Home.md | 1 + 1 file changed, 1 insertion(+) diff --git a/Home.md b/Home.md index 1274df8ae1..fe7cc62389 100644 --- a/Home.md +++ b/Home.md @@ -1,6 +1,7 @@ Welcome to the tmk_keyboard wiki! - [[TMK Projects]] +- [[Other Protjects]] - [[FAQ]] - [[FAQ/Build]] - [[FAQ/Keymap]] From 70cf3324989106a8d9326e01b06f775a44d0d529 Mon Sep 17 00:00:00 2001 From: tmk Date: Sat, 5 Dec 2015 13:45:42 +0900 Subject: [PATCH 173/517] Created Other Protjects (markdown) --- Other-Protjects.md | 62 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 Other-Protjects.md diff --git a/Other-Protjects.md b/Other-Protjects.md new file mode 100644 index 0000000000..efbc25f6d4 --- /dev/null +++ b/Other-Protjects.md @@ -0,0 +1,62 @@ +Other Keyboard Firmware Projects +================================ +## PJRC USB Keyboard/Mouse Example[USB][PJRC][Teensy][AVR] +- +- + +## kbupgrade[USB][V-USB][AVR] +- +- + +## c64key[USB][V-USB][AVR] +- + +## rump[USB][V-USB][AVR] +- +- + +## dulcimer[USB][V-USB][AVR] +- + +## humblehacker-keyboard[USB][LUFA][AVR][Ergo] +- +- +- + +## ps2avr[PS/2][AVR] +- + +## ErgoDox[Ergo][Split][USB][AVR] +- +- +- + +## Suka's keyboard collection[Ergo][Split][3DPrinting][USB][AVR] +- +- + +## bpiphany's AVR-Keyboard[PJRC][AVR][USB] +- +- +- + +## USB-USB keyboard remapper[converter][USB-USB][AVR][Arduino] +- +- + +## USB-USB converter threads[converter][USB-USB] +- +- + +## kbdbabel.org[converter][vintage][protocol][8051] +Great resource of vintage keyboard protocol information and code + +- + +## Haata's kiibohd Controller[converter][vintage][protocol][AVR][PJRC][Cortex] +A lots of vintage keyboard protocol supports + +- + +## Kinesis ergonomic keyboard firmware replacement[V-USB][LUFA][Ergo] +- From 869e6316d015145cbfadfe583b347497a99e6984 Mon Sep 17 00:00:00 2001 From: tmk Date: Sat, 5 Dec 2015 13:47:59 +0900 Subject: [PATCH 174/517] Updated Other Protjects (markdown) --- Other-Protjects.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Other-Protjects.md b/Other-Protjects.md index efbc25f6d4..cce66e6e19 100644 --- a/Other-Protjects.md +++ b/Other-Protjects.md @@ -1,4 +1,4 @@ -Other Keyboard Firmware Projects +Keyboard Firmware Projects other than TMK ================================ ## PJRC USB Keyboard/Mouse Example[USB][PJRC][Teensy][AVR] - From 7139a0704b4ec15e0ca0bf6d5f2a90c89fb4e564 Mon Sep 17 00:00:00 2001 From: tmk Date: Sat, 5 Dec 2015 13:50:39 +0900 Subject: [PATCH 175/517] Updated Other Protjects (markdown) --- Other-Protjects.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Other-Protjects.md b/Other-Protjects.md index cce66e6e19..163c7c1cf4 100644 --- a/Other-Protjects.md +++ b/Other-Protjects.md @@ -56,7 +56,7 @@ Great resource of vintage keyboard protocol information and code ## Haata's kiibohd Controller[converter][vintage][protocol][AVR][PJRC][Cortex] A lots of vintage keyboard protocol supports -- +- ## Kinesis ergonomic keyboard firmware replacement[V-USB][LUFA][Ergo] - From 77a877f5d39ca6c3cb77f398bbe50428b121a278 Mon Sep 17 00:00:00 2001 From: tmk Date: Mon, 7 Dec 2015 09:47:32 +0900 Subject: [PATCH 176/517] Updated Home (markdown) --- Home.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Home.md b/Home.md index fe7cc62389..e4ca473f95 100644 --- a/Home.md +++ b/Home.md @@ -8,4 +8,5 @@ Welcome to the tmk_keyboard wiki! - [Keymap Editor](http://tmk.github.io/tmk_keyboard/editor/index.html) (beta) - [[Compatible Microcontrollers]] - [[HHKB Alt controller]] -- [[mbed/cortex porting]] \ No newline at end of file +- [[mbed/cortex porting]] +- [[Keymap examples]] \ No newline at end of file From 79a23399e85d8aa37db4c171e2805ff66bc6b665 Mon Sep 17 00:00:00 2001 From: tmk Date: Mon, 7 Dec 2015 09:47:52 +0900 Subject: [PATCH 177/517] Created Keymap examples (markdown) --- Keymap-examples.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 Keymap-examples.md diff --git a/Keymap-examples.md b/Keymap-examples.md new file mode 100644 index 0000000000..02c1e98044 --- /dev/null +++ b/Keymap-examples.md @@ -0,0 +1 @@ +Share your keymap idea here! \ No newline at end of file From 45ce7048d59981c25d3d91e9eca4cffab45066c0 Mon Sep 17 00:00:00 2001 From: tmk Date: Mon, 7 Dec 2015 09:48:35 +0900 Subject: [PATCH 178/517] Updated Keymap examples (markdown) --- Keymap-examples.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Keymap-examples.md b/Keymap-examples.md index 02c1e98044..643b3727e0 100644 --- a/Keymap-examples.md +++ b/Keymap-examples.md @@ -1 +1,4 @@ -Share your keymap idea here! \ No newline at end of file +# Share your keymap idea here! +https://github.com/tmk/tmk_keyboard/issues/265 + +--- \ No newline at end of file From 304be86c8002ac0118e2d1b4a865cc0fe06690d3 Mon Sep 17 00:00:00 2001 From: tmk Date: Wed, 9 Dec 2015 10:13:29 +0900 Subject: [PATCH 179/517] Updated Keymap examples (markdown) --- Keymap-examples.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Keymap-examples.md b/Keymap-examples.md index 643b3727e0..135decaff9 100644 --- a/Keymap-examples.md +++ b/Keymap-examples.md @@ -1,4 +1,8 @@ # Share your keymap idea here! https://github.com/tmk/tmk_keyboard/issues/265 ---- \ No newline at end of file +--- + +## Reverse-shifted for numbers +With pressing **1** key you get **!** and with pressing Shift+1 you get **1**. +- https://geekhack.org/index.php?topic=41989.msg1959718#msg1959718 \ No newline at end of file From fbbf8b501f151a4f69a34220ce388b603b213cce Mon Sep 17 00:00:00 2001 From: tmk Date: Wed, 9 Dec 2015 10:16:04 +0900 Subject: [PATCH 180/517] Updated Keymap examples (markdown) --- Keymap-examples.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Keymap-examples.md b/Keymap-examples.md index 135decaff9..6e98a169f9 100644 --- a/Keymap-examples.md +++ b/Keymap-examples.md @@ -4,5 +4,5 @@ https://github.com/tmk/tmk_keyboard/issues/265 --- ## Reverse-shifted for numbers -With pressing **1** key you get **!** and with pressing Shift+1 you get **1**. +With pressing Shift and '1' key you get **1** while with just '1' key you get **!**. - https://geekhack.org/index.php?topic=41989.msg1959718#msg1959718 \ No newline at end of file From 4e9170156ee83217a1379b2cae051de268831f38 Mon Sep 17 00:00:00 2001 From: tmk Date: Wed, 9 Dec 2015 12:03:07 +0900 Subject: [PATCH 181/517] Updated FAQ Keymap (markdown) --- FAQ-Keymap.md | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/FAQ-Keymap.md b/FAQ-Keymap.md index c38641eb07..e6f01f53c0 100644 --- a/FAQ-Keymap.md +++ b/FAQ-Keymap.md @@ -221,4 +221,29 @@ Dual-role key: https://en.wikipedia.org/wiki/Modifier_key#Dual-role_keys `EJCT` keycode works on OSX. https://github.com/tmk/tmk_keyboard/issues/250 It seems Windows 10 ignores the code and Linux/Xorg recognizes but has no mapping by default. -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. \ No newline at end of file +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 +___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. + +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) +real_mods still keeps modifier state. + +without weak mods, +(1) hold down left shift: real_mods |= MOD_BIT(LSHIFT) +(2) press ACTION_MODS_KEY(LSHIFT, KC_A): real_mods |= MOD_BIT(LSHIFT) +(3) release ACTION_MODS_KEY(LSHIFT, KC_A): real_mods &= ~MOD_BIT(LSHIFT) +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_keyboard/blob/master/tmk_core/common/action_util.c#L57 From bf88dfa5db57d5c90e1e5db549783873ded9253b Mon Sep 17 00:00:00 2001 From: tmk Date: Wed, 9 Dec 2015 12:04:14 +0900 Subject: [PATCH 182/517] Updated FAQ Keymap (markdown) --- FAQ-Keymap.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/FAQ-Keymap.md b/FAQ-Keymap.md index e6f01f53c0..6e02270fd6 100644 --- a/FAQ-Keymap.md +++ b/FAQ-Keymap.md @@ -234,15 +234,15 @@ weak_mods retains state of virtual or temprary modifiers which should not affect 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) +* (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) real_mods still keeps modifier state. without weak mods, -(1) hold down left shift: real_mods |= MOD_BIT(LSHIFT) -(2) press ACTION_MODS_KEY(LSHIFT, KC_A): real_mods |= MOD_BIT(LSHIFT) -(3) release ACTION_MODS_KEY(LSHIFT, KC_A): real_mods &= ~MOD_BIT(LSHIFT) +* (1) hold down left shift: real_mods |= MOD_BIT(LSHIFT) +* (2) press ACTION_MODS_KEY(LSHIFT, KC_A): real_mods |= MOD_BIT(LSHIFT) +* (3) release ACTION_MODS_KEY(LSHIFT, KC_A): real_mods &= ~MOD_BIT(LSHIFT) here real_mods lost state for 'physical left shift'. weak_mods is ORed with real_mods when keyboard report is sent. From f3b7863b56e7e5cbc68b16e6b02b590a70faa05b Mon Sep 17 00:00:00 2001 From: tmk Date: Wed, 9 Dec 2015 14:45:22 +0900 Subject: [PATCH 183/517] Updated FAQ Build (markdown) --- FAQ-Build.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/FAQ-Build.md b/FAQ-Build.md index 7569baeb74..7a4727f7fc 100644 --- a/FAQ-Build.md +++ b/FAQ-Build.md @@ -134,4 +134,18 @@ avr-gcc -c -mmcu=atmega32u2 -gdwarf-2 -DF_CPU=16000000UL -DINTERRUPT_CONTROL_END ../../tmk_core/protocol/lufa/lufa.c:575: error: (Each undeclared identifier is reported only once ../../tmk_core/protocol/lufa/lufa.c:575: error: for each function it appears in.) make: *** [obj_alps64/protocol/lufa/lufa.o] Error 1 +``` + + +## BOOTLOADER_SIZE for AVR +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 +# Atmel DFU loader 4096 (TMK Alt Controller) +# LUFA bootloader 4096 +# USBaspLoader 2048 +OPT_DEFS += -DBOOTLOADER_SIZE=2048 ``` \ No newline at end of file From 59adb168b4ce353550fd5f98df8027febb06fa5b Mon Sep 17 00:00:00 2001 From: tmk Date: Thu, 10 Dec 2015 06:11:33 +0900 Subject: [PATCH 184/517] Updated FAQ Build (markdown) --- FAQ-Build.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FAQ-Build.md b/FAQ-Build.md index 7a4727f7fc..e68ff6a4b4 100644 --- a/FAQ-Build.md +++ b/FAQ-Build.md @@ -1,5 +1,5 @@ ## READ FIRST -- https://github.com/tmk/tmk_keyboard/blob/master/doc/build.md +- https://github.com/tmk/tmk_keyboard/blob/master/tmk_core/doc/build.md In short, From 33b55c11a868e1fdd5888bd181261996669c377a Mon Sep 17 00:00:00 2001 From: tmk Date: Mon, 14 Dec 2015 15:55:43 +0900 Subject: [PATCH 185/517] Updated FAQ Keymap (markdown) --- FAQ-Keymap.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/FAQ-Keymap.md b/FAQ-Keymap.md index 6e02270fd6..883dbfe8be 100644 --- a/FAQ-Keymap.md +++ b/FAQ-Keymap.md @@ -64,10 +64,10 @@ And see this for **Unicode** input. - http://en.wikipedia.org/wiki/Unicode_input -### Apple keyboard Fn +## Apple/Mac keyboard Fn Not supported. -Apple keyboard sends keycode for Fn unlike most of other keyboards. +Apple/Mac keyboard sends keycode for Fn unlike most of other keyboards. I think you can send Apple Fn key using Apple venter specific Page 0xff01 and usage 0x0003. But you have to change HID Report Descriptor for this, of course. https://opensource.apple.com/source/IOHIDFamily/IOHIDFamily-606.1.7/IOHIDFamily/AppleHIDUsageTables.h From 23c6af02c278956db144f61023ee7470998313f0 Mon Sep 17 00:00:00 2001 From: tmk Date: Thu, 17 Dec 2015 12:28:56 +0900 Subject: [PATCH 187/517] Updated FAQ (markdown) --- FAQ.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/FAQ.md b/FAQ.md index d033e026b4..741361a6c6 100644 --- a/FAQ.md +++ b/FAQ.md @@ -220,3 +220,13 @@ I heard some people have a problem with USB 3 port, try USB 2 port. ## 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 +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. + +https://github.com/tmk/tmk_keyboard/issues/266 +https://geekhack.org/index.php?topic=41989.msg1967778#msg1967778 + From de235b3e0716955ed10ce7d2fb9e2234d8deb9f1 Mon Sep 17 00:00:00 2001 From: tmk Date: Thu, 17 Dec 2015 12:32:38 +0900 Subject: [PATCH 188/517] Updated Home (markdown) --- Home.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Home.md b/Home.md index e4ca473f95..487afd62c0 100644 --- a/Home.md +++ b/Home.md @@ -9,4 +9,7 @@ Welcome to the tmk_keyboard wiki! - [[Compatible Microcontrollers]] - [[HHKB Alt controller]] - [[mbed/cortex porting]] -- [[Keymap examples]] \ No newline at end of file +- [[Keymap examples]] + + +- [[Test for ASCIIDOC]] \ No newline at end of file From dd5bfb6f3ec792b966ffb1cfaae1799b47579c02 Mon Sep 17 00:00:00 2001 From: tmk Date: Thu, 17 Dec 2015 13:48:33 +0900 Subject: [PATCH 189/517] Created Test for ASCIIDOC (asciidoc) --- Test-for-ASCIIDOC.asciidoc | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 Test-for-ASCIIDOC.asciidoc diff --git a/Test-for-ASCIIDOC.asciidoc b/Test-for-ASCIIDOC.asciidoc new file mode 100644 index 0000000000..ce57d2781b --- /dev/null +++ b/Test-for-ASCIIDOC.asciidoc @@ -0,0 +1,17 @@ + + + +.Makefile +[source,Makefile] +---- +# Build Options +# comment out to disable the options. +# +BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = yes # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +#SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend +NKRO_ENABLE = yes # USB Nkey Rollover - not yet supported in LUFA +---- \ No newline at end of file From e6423f50a484daab94f6f6a7820722a9934f4bd2 Mon Sep 17 00:00:00 2001 From: abjr Date: Tue, 29 Dec 2015 17:05:50 -0500 Subject: [PATCH 190/517] Updated FAQ (markdown) --- FAQ.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/FAQ.md b/FAQ.md index 741361a6c6..f7ec5399e7 100644 --- a/FAQ.md +++ b/FAQ.md @@ -72,8 +72,8 @@ Without reset circuit you will have inconsistent reuslt due to improper initiali - http://www.mikrocontroller.net/attachment/52583/tpm754.pdf -## Can't read comlumn of matrix beyond 16 -Use `1UL<<16` intead of `1<<16` in `read_cols()` in **matrix.h** when your columns goes 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`. From b681171774d224111e63b6cf1fe6bbce4822a0d6 Mon Sep 17 00:00:00 2001 From: tmk Date: Mon, 4 Jan 2016 11:41:19 +0900 Subject: [PATCH 191/517] Updated FAQ (markdown) --- FAQ.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/FAQ.md b/FAQ.md index f7ec5399e7..03ccfa3032 100644 --- a/FAQ.md +++ b/FAQ.md @@ -230,3 +230,8 @@ As of now root of its cause is not clear but some build options seem to be relat 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 +Remove current driver and reinstall one FLIP provides from DeviceManager. \ No newline at end of file From f791834c68065c0c80d599fc9c9e8a01daf1c9a3 Mon Sep 17 00:00:00 2001 From: tmk Date: Mon, 4 Jan 2016 19:38:20 +0900 Subject: [PATCH 192/517] Updated FAQ (markdown) --- FAQ.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/FAQ.md b/FAQ.md index 03ccfa3032..417efad48a 100644 --- a/FAQ.md +++ b/FAQ.md @@ -234,4 +234,5 @@ https://geekhack.org/index.php?topic=41989.msg1967778#msg1967778 ## FLIP doesn't work ### AtLibUsbDfu.dll not found -Remove current driver and reinstall one FLIP provides from DeviceManager. \ No newline at end of file +Remove current driver and reinstall one FLIP provides from DeviceManager. +http://imgur.com/a/bnwzy \ No newline at end of file From 9335aa39658cfec6d0f00e8de2e59d8a3e44337a Mon Sep 17 00:00:00 2001 From: John Wells Date: Mon, 4 Jan 2016 09:57:49 -0700 Subject: [PATCH 193/517] Fix broken link to keymap --- FAQ-Keymap.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FAQ-Keymap.md b/FAQ-Keymap.md index 883dbfe8be..325686fe34 100644 --- a/FAQ-Keymap.md +++ b/FAQ-Keymap.md @@ -1,5 +1,5 @@ ## READ FIRST -https://github.com/tmk/tmk_keyboard/blob/master/doc/keymap.md +https://github.com/tmk/tmk_keyboard/blob/master/tmk_core/doc/keymap.md ## How to get keycode See [doc/keycode.txt](https://github.com/tmk/tmk_keyboard/blob/master/doc/keycode.txt). From a5bf8cc4e104c8a9e739abaab7292afe3758fffe Mon Sep 17 00:00:00 2001 From: tmk Date: Sat, 16 Jan 2016 10:17:09 +0900 Subject: [PATCH 194/517] Updated TMK Projects (markdown) --- TMK-Projects.md => TMK-based-Projects.md | 6 ++++++ 1 file changed, 6 insertions(+) rename TMK-Projects.md => TMK-based-Projects.md (97%) diff --git a/TMK-Projects.md b/TMK-based-Projects.md similarity index 97% rename from TMK-Projects.md rename to TMK-based-Projects.md index 0536e9232e..e56b2b7111 100644 --- a/TMK-Projects.md +++ b/TMK-based-Projects.md @@ -1,3 +1,9 @@ +## TMK based projects +Add your project here! + + + +## TMK own projects by hasu(in tmk_keyboard repository) ### converter * [ps2_usb] - [PS/2 keyboard to USB][GH_ps2] * [adb_usb] - [ADB keyboard to USB][GH_adb] From 4a34a192b554412364cc7c316423e3dfc2e60ba9 Mon Sep 17 00:00:00 2001 From: tmk Date: Sat, 16 Jan 2016 10:18:17 +0900 Subject: [PATCH 195/517] Updated Home (markdown) --- Home.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Home.md b/Home.md index 487afd62c0..ce8ba30290 100644 --- a/Home.md +++ b/Home.md @@ -1,6 +1,6 @@ Welcome to the tmk_keyboard wiki! -- [[TMK Projects]] +- [[TMK based Projects]] - [[Other Protjects]] - [[FAQ]] - [[FAQ/Build]] @@ -10,6 +10,6 @@ Welcome to the tmk_keyboard wiki! - [[HHKB Alt controller]] - [[mbed/cortex porting]] - [[Keymap examples]] - +- [[TMK own Projects]] - [[Test for ASCIIDOC]] \ No newline at end of file From 53278bc6580b59bf77225ccd1c1265744fdb7218 Mon Sep 17 00:00:00 2001 From: tmk Date: Sat, 16 Jan 2016 10:18:37 +0900 Subject: [PATCH 196/517] Updated TMK based Projects (markdown) --- TMK-based-Projects.md | 64 ------------------------------------------- 1 file changed, 64 deletions(-) diff --git a/TMK-based-Projects.md b/TMK-based-Projects.md index e56b2b7111..1fff68a708 100644 --- a/TMK-based-Projects.md +++ b/TMK-based-Projects.md @@ -3,67 +3,3 @@ Add your project here! -## TMK own projects by hasu(in tmk_keyboard repository) -### converter -* [ps2_usb] - [PS/2 keyboard to USB][GH_ps2] -* [adb_usb] - [ADB keyboard to USB][GH_adb] -* [m0110_usb] - [Macintosh 128K/512K/Plus keyboard to USB][GH_m0110] -* [terminal_usb] - [IBM Model M terminal keyboard(PS/2 scancode set3) to USB][GH_terminal] -* [news_usb] - [Sony NEWS keyboard to USB][GH_news] -* [x68k_usb] - [Sharp X68000 keyboard to USB][GH_x68k] -* [sun_usb] - [Sun] to USB(type4, 5 and 3?) -* [pc98_usb] - [PC98] to USB -* [usb_usb] - USB to USB(experimental) -* [ascii_usb] - ASCII(Serial console terminal) to USB -* [ibm4704_usb] - [IBM 4704 keyboard Converter][GH_ibm4704] - -### keyboard -* [hhkb] - [Happy Hacking Keyboard pro][GH_hhkb] -* [gh60] - [GH60][GH60_diy] DIY 60% keyboard [prototype][GH60_proto] -* [hbkb] - [Happy Buckling spring keyboard][GH_hbkb](IBM Model M 60% mod) -* [hid_liber] - [HID liberation][HID_liber] controller (by alaricljs) -* [phantom] - [Phantom] keyboard (by Tranquilite) -* [IIgs_Standard] - Apple [IIGS] keyboard mod(by JeffreySung) -* [macway] - [Compact keyboard mod][GH_macway] [retired] -* [KMAC] - Korean custom keyboard -* [Lightsaber] - Korean custom keyboard - -[ps2_usb]: https://github.com/tmk/tmk_keyboard/tree/master/converter/ps2_usb/ -[adb_usb]: https://github.com/tmk/tmk_keyboard/tree/master/converter/adb_usb/ -[m0110_usb]: https://github.com/tmk/tmk_keyboard/tree/master/converter/m0110_usb -[terminal_usb]: https://github.com/tmk/tmk_keyboard/tree/master/converter/terminal_usb/ -[news_usb]: https://github.com/tmk/tmk_keyboard/tree/master/converter/news_usb/ -[x68k_usb]: https://github.com/tmk/tmk_keyboard/tree/master/converter/x68k_usb/ -[sun_usb]: https://github.com/tmk/tmk_keyboard/tree/master/converter/sun_usb/ -[pc98_usb]: https://github.com/tmk/tmk_keyboard/tree/master/converter/pc98_usb/ -[usb_usb]: https://github.com/tmk/tmk_keyboard/tree/master/converter/usb_usb/ -[ascii_usb]: https://github.com/tmk/tmk_keyboard/tree/master/converter/ascii_usb/ -[ibm4704_usb]: https://github.com/tmk/tmk_keyboard/tree/master/converter/ibm4704_usb -[hhkb]: https://github.com/tmk/tmk_keyboard/tree/master/keyboard/hhkb/ -[gh60]: https://github.com/tmk/tmk_keyboard/tree/master/keyboard/gh60/ -[hbkb]: https://github.com/tmk/tmk_keyboard/tree/master/keyboard/hbkb/ -[hid_liber]: https://github.com/tmk/tmk_keyboard/tree/master/keyboard/hid_liber/ -[phantom]: https://github.com/tmk/tmk_keyboard/tree/master/keyboard/phantom/ -[IIgs_Standard]: https://github.com/tmk/tmk_keyboard/tree/master/keyboard/IIgs/ -[macway]: https://github.com/tmk/tmk_keyboard/tree/master/keyboard/macway/ -[KMAC]: https://github.com/tmk/tmk_keyboard/tree/master/keyboard/kmac/ -[Lightsaber]: https://github.com/tmk/tmk_keyboard/tree/master/keyboard/lightsaber/ - -[GH_macway]: http://geekhack.org/showwiki.php?title=Island:11930 -[GH_hhkb]: http://geekhack.org/showwiki.php?title=Island:12047 -[GH_ps2]: http://geekhack.org/showwiki.php?title=Island:14618 -[GH_adb]: http://geekhack.org/showwiki.php?title=Island:14290 -[GH_hhkb_bt]: http://geekhack.org/showwiki.php?title=Island:20851 -[GH_m0110]: http://geekhack.org/showwiki.php?title=Island:24965 -[GH_news]: http://geekhack.org/showwiki.php?title=Island:25759 -[GH_terminal]: http://geekhack.org/showwiki.php?title=Island:27272 -[GH_x68k]: http://geekhack.org/showwiki.php?title=Island:29060 -[GH_hbkb]: http://geekhack.org/showwiki.php?title=Island:29483 -[GH_ibm4704]: http://geekhack.org/index.php?topic=54706.0 -[HID_liber]: http://deskthority.net/wiki/HID_Liberation_Device_-_DIY_Instructions -[Phantom]: http://geekhack.org/index.php?topic=26742 -[GH60_diy]: http://geekhack.org/index.php?topic=34959 -[GH60_proto]: http://geekhack.org/index.php?topic=37570.0 -[PC98]: http://en.wikipedia.org/wiki/NEC_PC-9801 -[Sun]: http://en.wikipedia.org/wiki/Sun-3 -[IIGS]: http://en.wikipedia.org/wiki/Apple_IIGS From 053b3b9847ddd3e685dcf3a8514fb2f977d534b6 Mon Sep 17 00:00:00 2001 From: tmk Date: Sat, 16 Jan 2016 10:20:33 +0900 Subject: [PATCH 197/517] Created TMK own projects (markdown) --- TMK-own-projects.md | 67 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 TMK-own-projects.md diff --git a/TMK-own-projects.md b/TMK-own-projects.md new file mode 100644 index 0000000000..12e17cab34 --- /dev/null +++ b/TMK-own-projects.md @@ -0,0 +1,67 @@ +## TMK own projects by hasu(in tmk_keyboard repository) +### converter +* [ps2_usb] - [PS/2 keyboard to USB][GH_ps2] +* [adb_usb] - [ADB keyboard to USB][GH_adb] +* [m0110_usb] - [Macintosh 128K/512K/Plus keyboard to USB][GH_m0110] +* [terminal_usb] - [IBM Model M terminal keyboard(PS/2 scancode set3) to USB][GH_terminal] +* [news_usb] - [Sony NEWS keyboard to USB][GH_news] +* [x68k_usb] - [Sharp X68000 keyboard to USB][GH_x68k] +* [sun_usb] - [Sun] to USB(type4, 5 and 3?) +* [pc98_usb] - [PC98] to USB +* [usb_usb] - USB to USB(experimental) +* [ascii_usb] - ASCII(Serial console terminal) to USB +* [ibm4704_usb] - [IBM 4704 keyboard Converter][GH_ibm4704] + +### keyboard +* [hhkb] - [Happy Hacking Keyboard pro][GH_hhkb] +* [gh60] - [GH60][GH60_diy] DIY 60% keyboard [prototype][GH60_proto] +* [hbkb] - [Happy Buckling spring keyboard][GH_hbkb](IBM Model M 60% mod) +* [hid_liber] - [HID liberation][HID_liber] controller (by alaricljs) +* [phantom] - [Phantom] keyboard (by Tranquilite) +* [IIgs_Standard] - Apple [IIGS] keyboard mod(by JeffreySung) +* [macway] - [Compact keyboard mod][GH_macway] [retired] +* [KMAC] - Korean custom keyboard +* [Lightsaber] - Korean custom keyboard + +[ps2_usb]: https://github.com/tmk/tmk_keyboard/tree/master/converter/ps2_usb/ +[adb_usb]: https://github.com/tmk/tmk_keyboard/tree/master/converter/adb_usb/ +[m0110_usb]: https://github.com/tmk/tmk_keyboard/tree/master/converter/m0110_usb +[terminal_usb]: https://github.com/tmk/tmk_keyboard/tree/master/converter/terminal_usb/ +[news_usb]: https://github.com/tmk/tmk_keyboard/tree/master/converter/news_usb/ +[x68k_usb]: https://github.com/tmk/tmk_keyboard/tree/master/converter/x68k_usb/ +[sun_usb]: https://github.com/tmk/tmk_keyboard/tree/master/converter/sun_usb/ +[pc98_usb]: https://github.com/tmk/tmk_keyboard/tree/master/converter/pc98_usb/ +[usb_usb]: https://github.com/tmk/tmk_keyboard/tree/master/converter/usb_usb/ +[ascii_usb]: https://github.com/tmk/tmk_keyboard/tree/master/converter/ascii_usb/ +[ibm4704_usb]: https://github.com/tmk/tmk_keyboard/tree/master/converter/ibm4704_usb +[hhkb]: https://github.com/tmk/tmk_keyboard/tree/master/keyboard/hhkb/ +[gh60]: https://github.com/tmk/tmk_keyboard/tree/master/keyboard/gh60/ +[hbkb]: https://github.com/tmk/tmk_keyboard/tree/master/keyboard/hbkb/ +[hid_liber]: https://github.com/tmk/tmk_keyboard/tree/master/keyboard/hid_liber/ +[phantom]: https://github.com/tmk/tmk_keyboard/tree/master/keyboard/phantom/ +[IIgs_Standard]: https://github.com/tmk/tmk_keyboard/tree/master/keyboard/IIgs/ +[macway]: https://github.com/tmk/tmk_keyboard/tree/master/keyboard/macway/ +[KMAC]: https://github.com/tmk/tmk_keyboard/tree/master/keyboard/kmac/ +[Lightsaber]: https://github.com/tmk/tmk_keyboard/tree/master/keyboard/lightsaber/ + +[GH_macway]: http://geekhack.org/showwiki.php?title=Island:11930 +[GH_hhkb]: http://geekhack.org/showwiki.php?title=Island:12047 +[GH_ps2]: http://geekhack.org/showwiki.php?title=Island:14618 +[GH_adb]: http://geekhack.org/showwiki.php?title=Island:14290 +[GH_hhkb_bt]: http://geekhack.org/showwiki.php?title=Island:20851 +[GH_m0110]: http://geekhack.org/showwiki.php?title=Island:24965 +[GH_news]: http://geekhack.org/showwiki.php?title=Island:25759 +[GH_terminal]: http://geekhack.org/showwiki.php?title=Island:27272 +[GH_x68k]: http://geekhack.org/showwiki.php?title=Island:29060 +[GH_hbkb]: http://geekhack.org/showwiki.php?title=Island:29483 +[GH_ibm4704]: http://geekhack.org/index.php?topic=54706.0 +[HID_liber]: http://deskthority.net/wiki/HID_Liberation_Device_-_DIY_Instructions +[Phantom]: http://geekhack.org/index.php?topic=26742 +[GH60_diy]: http://geekhack.org/index.php?topic=34959 +[GH60_proto]: http://geekhack.org/index.php?topic=37570.0 +[PC98]: http://en.wikipedia.org/wiki/NEC_PC-9801 +[Sun]: http://en.wikipedia.org/wiki/Sun-3 +[IIGS]: http://en.wikipedia.org/wiki/Apple_IIGS + + +See other TMK based projects \ No newline at end of file From f95480e3ca5bc4777a3adcb877025fb4efb56a37 Mon Sep 17 00:00:00 2001 From: tmk Date: Sat, 16 Jan 2016 10:21:06 +0900 Subject: [PATCH 198/517] Updated TMK own projects (markdown) --- TMK-own-projects.md => TMK-Own-Projects.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename TMK-own-projects.md => TMK-Own-Projects.md (100%) diff --git a/TMK-own-projects.md b/TMK-Own-Projects.md similarity index 100% rename from TMK-own-projects.md rename to TMK-Own-Projects.md From 5133bb146ec341cdda9f97995aff97c52f7591a9 Mon Sep 17 00:00:00 2001 From: tmk Date: Sat, 16 Jan 2016 10:21:23 +0900 Subject: [PATCH 199/517] Updated TMK based Projects (markdown) --- TMK-based-Projects.md => TMK-Based-Projects.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename TMK-based-Projects.md => TMK-Based-Projects.md (100%) diff --git a/TMK-based-Projects.md b/TMK-Based-Projects.md similarity index 100% rename from TMK-based-Projects.md rename to TMK-Based-Projects.md From f743e65ab7bd430b9e227cac2c372f1f34401131 Mon Sep 17 00:00:00 2001 From: tmk Date: Sat, 16 Jan 2016 10:21:46 +0900 Subject: [PATCH 200/517] Updated Home (markdown) --- Home.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Home.md b/Home.md index ce8ba30290..f29e4d027d 100644 --- a/Home.md +++ b/Home.md @@ -1,6 +1,7 @@ Welcome to the tmk_keyboard wiki! -- [[TMK based Projects]] +- [[TMK Own Projects]] +- [[TMK Based Projects]] - [[Other Protjects]] - [[FAQ]] - [[FAQ/Build]] @@ -10,6 +11,6 @@ Welcome to the tmk_keyboard wiki! - [[HHKB Alt controller]] - [[mbed/cortex porting]] - [[Keymap examples]] -- [[TMK own Projects]] + - [[Test for ASCIIDOC]] \ No newline at end of file From b3f45e2efd276d674665baea53761dcc729b1697 Mon Sep 17 00:00:00 2001 From: tmk Date: Sat, 16 Jan 2016 10:22:35 +0900 Subject: [PATCH 201/517] Updated TMK Own Projects (markdown) --- TMK-Own-Projects.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TMK-Own-Projects.md b/TMK-Own-Projects.md index 12e17cab34..b75f203440 100644 --- a/TMK-Own-Projects.md +++ b/TMK-Own-Projects.md @@ -64,4 +64,4 @@ [IIGS]: http://en.wikipedia.org/wiki/Apple_IIGS -See other TMK based projects \ No newline at end of file +See other [[TMK Based Projects]] \ No newline at end of file From 8bccc5d21725d5fc871a5b5a41fb98453e7ec76b Mon Sep 17 00:00:00 2001 From: tmk Date: Sat, 16 Jan 2016 10:24:16 +0900 Subject: [PATCH 202/517] Updated TMK Own Projects (markdown) --- TMK-Own-Projects.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/TMK-Own-Projects.md b/TMK-Own-Projects.md index b75f203440..fb5b2c9906 100644 --- a/TMK-Own-Projects.md +++ b/TMK-Own-Projects.md @@ -1,4 +1,6 @@ -## TMK own projects by hasu(in tmk_keyboard repository) +## TMK own projects by hasu +Located in [tmk_keyboard](https://github.com/tmk/tmk_keyboard/tree/master/) repository. + ### converter * [ps2_usb] - [PS/2 keyboard to USB][GH_ps2] * [adb_usb] - [ADB keyboard to USB][GH_adb] From 32df47053b39d090c2f20ae9e19a89e156b12d46 Mon Sep 17 00:00:00 2001 From: tmk Date: Sat, 16 Jan 2016 10:24:45 +0900 Subject: [PATCH 203/517] Updated TMK Based Projects (markdown) --- TMK-Based-Projects.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/TMK-Based-Projects.md b/TMK-Based-Projects.md index 1fff68a708..49c4a3b2b8 100644 --- a/TMK-Based-Projects.md +++ b/TMK-Based-Projects.md @@ -1,5 +1,8 @@ ## TMK based projects Add your project here! +### keyboard + +### converter \ No newline at end of file From 97fe4201aa850649b4a0f33a7dac4b92b8ae799e Mon Sep 17 00:00:00 2001 From: tmk Date: Sat, 16 Jan 2016 10:56:01 +0900 Subject: [PATCH 204/517] Updated Keymap examples (markdown) --- Keymap-examples.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/Keymap-examples.md b/Keymap-examples.md index 6e98a169f9..27c8a07928 100644 --- a/Keymap-examples.md +++ b/Keymap-examples.md @@ -5,4 +5,12 @@ https://github.com/tmk/tmk_keyboard/issues/265 ## Reverse-shifted for numbers With pressing Shift and '1' key you get **1** while with just '1' key you get **!**. -- https://geekhack.org/index.php?topic=41989.msg1959718#msg1959718 \ No newline at end of file +- https://geekhack.org/index.php?topic=41989.msg1959718#msg1959718 + + +## KBT Pure layout +Keymap code on Alps64 +https://github.com/thisisshi/tmk_keyboard/blob/15fe63e8d181a8a95988dcc71929f0024df55caa/keyboard/alps64/keymap_pure.c + +and guide. +https://github.com/thisisshi/tmk_keyboard/blob/77ac0805ade565fb23657e3644c920ada71edccf/keyboard/alps64/Guide.md \ No newline at end of file From 85d56eea3859fc87a8f417253c2785aa2415bbeb Mon Sep 17 00:00:00 2001 From: tmk Date: Sat, 16 Jan 2016 11:08:36 +0900 Subject: [PATCH 205/517] Updated TMK Based Projects (markdown) --- TMK-Based-Projects.md | 1 + 1 file changed, 1 insertion(+) diff --git a/TMK-Based-Projects.md b/TMK-Based-Projects.md index 49c4a3b2b8..f4ca2d5abb 100644 --- a/TMK-Based-Projects.md +++ b/TMK-Based-Projects.md @@ -1,5 +1,6 @@ ## TMK based projects Add your project here! +See https://github.com/tmk/tmk_keyboard/issues/173 ### keyboard From 266aae0ebc1f50463b93639bca47debb5cc27645 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vin=C3=ADcius=20Cordeiro?= Date: Sat, 16 Jan 2016 00:16:12 -0200 Subject: [PATCH 206/517] Adding the S60-X to the list of supported keyboards. --- TMK-Based-Projects.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TMK-Based-Projects.md b/TMK-Based-Projects.md index f4ca2d5abb..3d4a06fd72 100644 --- a/TMK-Based-Projects.md +++ b/TMK-Based-Projects.md @@ -3,7 +3,7 @@ Add your project here! See https://github.com/tmk/tmk_keyboard/issues/173 ### keyboard - +**S60-X**: [DIY 60% keyboard](https://www.massdrop.com/buy/sentraq-60-diy-keyboard-kit?mode=guest_open) designed by [VinnyCordeiro](https://github.com/VinnyCordeiro) for Sentraq. ### converter \ No newline at end of file From c4f5db935131a4f2c2ccdbd40d37fd7cd99aae41 Mon Sep 17 00:00:00 2001 From: Adrian L Lange Date: Sat, 16 Jan 2016 16:12:40 +0100 Subject: [PATCH 207/517] Update links to documentation --- FAQ-Keymap.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/FAQ-Keymap.md b/FAQ-Keymap.md index 325686fe34..a26461c01c 100644 --- a/FAQ-Keymap.md +++ b/FAQ-Keymap.md @@ -1,9 +1,9 @@ ## READ FIRST -https://github.com/tmk/tmk_keyboard/blob/master/tmk_core/doc/keymap.md +https://github.com/tmk/tmk_core/blob/master/doc/keymap.md ## How to get keycode -See [doc/keycode.txt](https://github.com/tmk/tmk_keyboard/blob/master/doc/keycode.txt). -Keycodes are actually defined in [common/keycode.h](https://github.com/tmk/tmk_keyboard/blob/master/tmk_core/common/keycode.h). +See [doc/keycode.txt](https://github.com/tmk/tmk_core/blob/master/doc/keycode.txt). +Keycodes are actually defined in [common/keycode.h](https://github.com/tmk/tmk_core/blob/master/common/keycode.h). ## Sysrq key 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'. @@ -27,7 +27,7 @@ https://github.com/tmk/tmk_keyboard/issues/67 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_keyboard/blob/master/doc/keymap.md#31-momentary-switching +- 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 @@ -114,7 +114,7 @@ https://github.com/tekezo/Karabiner/issues/403 You can define FC660 and Poker style ESC with `ACTION_LAYER_MODS`. -https://github.com/tmk/tmk_keyboard/blob/master/doc/keymap.md#35-momentary-switching-with-modifiers +https://github.com/tmk/tmk_core/blob/master/doc/keymap.md#35-momentary-switching-with-modifiers ``` #include "keymap_common.h" @@ -153,7 +153,7 @@ const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; const uint16_t PROGMEM fn_actions[] = { - // https://github.com/tmk/tmk_keyboard/blob/master/doc/keymap.md#35-momentary-switching-with-modifiers + // https://github.com/tmk/tmk_core/blob/master/doc/keymap.md#35-momentary-switching-with-modifiers [0] = ACTION_LAYER_MODS(1, MOD_LSFT), [1] = ACTION_LAYER_MOMENTARY(2), }; @@ -180,7 +180,7 @@ This turns right modifer keys into arrow keys when the keys are tapped while sti /* Arrow keys on right modifier keys with TMK dual role feature * - * https://github.com/tmk/tmk_keyboard/blob/master/doc/keymap.md#213-modifier-with-tap-keydual-role + * https://github.com/tmk/tmk_core/blob/master/doc/keymap.md#213-modifier-with-tap-keydual-role * https://en.wikipedia.org/wiki/Modifier_key#Dual-role_keys */ const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -246,4 +246,4 @@ without weak mods, 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_keyboard/blob/master/tmk_core/common/action_util.c#L57 +https://github.com/tmk/tmk_core/blob/master/common/action_util.c#L57 From 0e5b64f092df72c33836810401098e649c51cec5 Mon Sep 17 00:00:00 2001 From: Adrian L Lange Date: Sat, 16 Jan 2016 16:52:46 +0100 Subject: [PATCH 208/517] Rename title --- Other-Protjects.md => Other-Projects.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename Other-Protjects.md => Other-Projects.md (100%) diff --git a/Other-Protjects.md b/Other-Projects.md similarity index 100% rename from Other-Protjects.md rename to Other-Projects.md From 006a1f806a0213039107dfe0422947dcc185f878 Mon Sep 17 00:00:00 2001 From: Adrian L Lange Date: Sat, 16 Jan 2016 16:53:55 +0100 Subject: [PATCH 209/517] Added link to project --- TMK-Based-Projects.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/TMK-Based-Projects.md b/TMK-Based-Projects.md index 3d4a06fd72..23d6ca69c9 100644 --- a/TMK-Based-Projects.md +++ b/TMK-Based-Projects.md @@ -3,7 +3,8 @@ Add your project here! See https://github.com/tmk/tmk_keyboard/issues/173 ### keyboard -**S60-X**: [DIY 60% keyboard](https://www.massdrop.com/buy/sentraq-60-diy-keyboard-kit?mode=guest_open) designed by [VinnyCordeiro](https://github.com/VinnyCordeiro) for Sentraq. +**S60-X**: [DIY 60% keyboard](https://www.massdrop.com/buy/sentraq-60-diy-keyboard-kit?mode=guest_open) designed by [VinnyCordeiro](https://github.com/VinnyCordeiro) for Sentraq: +- https://github.com/VinnyCordeiro/tmk_keyboard ### converter \ No newline at end of file From f4b5b8486f34ff3bc94ad2de326d505cb48b7933 Mon Sep 17 00:00:00 2001 From: Ralf Schmitt Date: Sat, 16 Jan 2016 17:18:58 +0100 Subject: [PATCH 210/517] Updated TMK Based Projects (markdown) --- TMK-Based-Projects.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/TMK-Based-Projects.md b/TMK-Based-Projects.md index 23d6ca69c9..b642daaafe 100644 --- a/TMK-Based-Projects.md +++ b/TMK-Based-Projects.md @@ -6,5 +6,10 @@ See https://github.com/tmk/tmk_keyboard/issues/173 **S60-X**: [DIY 60% keyboard](https://www.massdrop.com/buy/sentraq-60-diy-keyboard-kit?mode=guest_open) designed by [VinnyCordeiro](https://github.com/VinnyCordeiro) for Sentraq: - https://github.com/VinnyCordeiro/tmk_keyboard +**Octagon V1**: Korean custom keyboard designed by Duck. +- https://github.com/xauser/tmk_keyboard/tree/xauser + +**Compact L3**: Custom keyboard designed by LifeZone and LeeKu. +- https://github.com/xauser/tmk_keyboard/tree/xauser ### converter \ No newline at end of file From 943d1cc673636b6bc1d278aef0f956d97a2172b1 Mon Sep 17 00:00:00 2001 From: Hans Viktorin Date: Sun, 17 Jan 2016 15:53:36 +0100 Subject: [PATCH 211/517] Updated TMK Based Projects (markdown) --- TMK-Based-Projects.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/TMK-Based-Projects.md b/TMK-Based-Projects.md index b642daaafe..b33968fa46 100644 --- a/TMK-Based-Projects.md +++ b/TMK-Based-Projects.md @@ -12,4 +12,7 @@ See https://github.com/tmk/tmk_keyboard/issues/173 **Compact L3**: Custom keyboard designed by LifeZone and LeeKu. - https://github.com/xauser/tmk_keyboard/tree/xauser +**KMAC, 1,2 and Happy**: Custom keyboard designed by kbdmania. +- https://github.com/ageaenes/tmk_keyboard + ### converter \ No newline at end of file From 78783e23d870fae1f28a58c031e42b3389b45b93 Mon Sep 17 00:00:00 2001 From: tmk Date: Wed, 27 Jan 2016 08:48:49 +0900 Subject: [PATCH 212/517] Created Kiibohd (asciidoc) --- Kiibohd.asciidoc | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 Kiibohd.asciidoc diff --git a/Kiibohd.asciidoc b/Kiibohd.asciidoc new file mode 100644 index 0000000000..4a7ee64d8c --- /dev/null +++ b/Kiibohd.asciidoc @@ -0,0 +1,29 @@ +== KLL vs TMK +1. **Shift** = Memontary +1. Latch = One shot +1. Lock = Toggle + +## KLL terminology +### Fall-through +When a key is undefined on a particular layer, the key +definition on the previously stacked layer will be used. Eventually +the key definition will be set to using the default layer. If the None +keyword is used, then the fall-through will stop and no action will +take place. +###Latch +When referring to keyboards, a key function that is only enabled +until the release of the next keypress. +###Lock +When referring to keyboards, a key function that is enabled until +that key is pressed again (e.g. Caps Lock). +### NKRO +N-Key Rollover is the capability to press N number of keys at the +same time on a keyboard and have them all register on the OS simultaneously. +### Scan Code +Row x Column code or native protocol code used by the keyboard. +### Shift +When referring to keyboards, a key function that is enabled while +that key is held. +### USB Code +Keyboard Press/Release codes as defined by the USB HID +Spec. \ No newline at end of file From 9b9a1a946e72957f3c769b0c84afad6a61866ea9 Mon Sep 17 00:00:00 2001 From: Adrian L Lange Date: Wed, 27 Jan 2016 12:58:13 +0100 Subject: [PATCH 213/517] Typo --- Home.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Home.md b/Home.md index f29e4d027d..b8e77e7b39 100644 --- a/Home.md +++ b/Home.md @@ -2,7 +2,7 @@ Welcome to the tmk_keyboard wiki! - [[TMK Own Projects]] - [[TMK Based Projects]] -- [[Other Protjects]] +- [[Other Projects]] - [[FAQ]] - [[FAQ/Build]] - [[FAQ/Keymap]] From 5eef65f9b470f99b42b4a0aae6544d7e776d6ff7 Mon Sep 17 00:00:00 2001 From: Adrian L Lange Date: Wed, 27 Jan 2016 13:40:02 +0100 Subject: [PATCH 214/517] Created Embedding (markdown) --- Embedding.md | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 Embedding.md diff --git a/Embedding.md b/Embedding.md new file mode 100644 index 0000000000..e747b027dc --- /dev/null +++ b/Embedding.md @@ -0,0 +1,62 @@ +If you want to use TMK for your own keyboard project, you've got three options for embedding the [core][1]. +The recommended option is [subtrees](#1-git-subtree). + +After adding the embed you'll need to [modify the Makefile](#modifications-to-the-makefile) of your project to point to the core correctly. + +## 1. git subtree + +In order to set up the subtree in your project, first add the core repository as a remote: +``` +git remote add -f core https://github.com/tmk/tmk_core +``` + +Then add the core as a subtree (directory) in your local repository: +``` +git subtree add -P tmk_core core master --squash +``` + +And that's it! + +When you want to update the subtree in your repository to match the master on [tmk_core][1], do this: +``` +git subtree pull -P tmk_core core master --squash +``` + +## 2. git submodule + +In order to set up the submodule in your project, first add a new submodule: +``` +git submodule add https://github.com/tmk/tmk_core tmk_core +``` + +Then pull, sync and update the submodule: +``` +git pull +git submodule sync --recursive +git submodule update --init --recursive +``` + +And that's it! + +When you want to update the subtree in your repository to match the master on [tmk_core][1], follow the same steps as above. + +If you want to clone a repository from GitHub that has submodule(s) in it, pass --recursive when cloning, like so: +`git clone --recursive https://github.com//` + +## 3. Manually (without git) + +*Note: This is not recommended in any way, but it's still possible.* + +Download a zipped version of the [tmk_core][1] repository using this link: + + +Extract the zip in your project's directory, then rename the folder to tmk_core. + +## Modifications to the *Makefile* + +The one thing you have to make sure to change in the *Makefile* (compared to [tmk_keyboard](https://github.com/tmk/tmk_keyboard) drivers' *[Makefile](https://github.com/tmk/tmk_keyboard/blob/master/keyboard/gh60/Makefile#L45)*) is the "TMK_DIR" variable, which needs to point to the embed directory: +```Makefile +TMK_DIR = ./tmk_core +``` + +[1]: https://github.com/tmk/tmk_core \ No newline at end of file From 611ca009187c4b3696a0fa73a9a655c2cbe1bb34 Mon Sep 17 00:00:00 2001 From: Adrian L Lange Date: Wed, 27 Jan 2016 13:42:05 +0100 Subject: [PATCH 215/517] Added a warning --- Embedding.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Embedding.md b/Embedding.md index e747b027dc..10b1e9f1a0 100644 --- a/Embedding.md +++ b/Embedding.md @@ -1,3 +1,5 @@ +# WARNING: Until issue #173 goes through, the [core][1] repository will not be up-to-date with the latest changes and fixes, but can still be used. + If you want to use TMK for your own keyboard project, you've got three options for embedding the [core][1]. The recommended option is [subtrees](#1-git-subtree). From e13934c60a4c225033091068041173b95226ea0a Mon Sep 17 00:00:00 2001 From: Adrian L Lange Date: Wed, 27 Jan 2016 13:42:44 +0100 Subject: [PATCH 216/517] Updated Embedding (markdown) --- Embedding.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Embedding.md b/Embedding.md index 10b1e9f1a0..5c2f3b31e0 100644 --- a/Embedding.md +++ b/Embedding.md @@ -1,4 +1,4 @@ -# WARNING: Until issue #173 goes through, the [core][1] repository will not be up-to-date with the latest changes and fixes, but can still be used. +# WARNING: Until issue [#173](https://github.com/tmk/tmk_keyboard/issues/173) goes through, the [core][1] repository will not be up-to-date with the latest changes and fixes, but can still be used. If you want to use TMK for your own keyboard project, you've got three options for embedding the [core][1]. The recommended option is [subtrees](#1-git-subtree). From 6b368a8edc5bedc596f95a6e90c7d1060f71d1d9 Mon Sep 17 00:00:00 2001 From: Adrian L Lange Date: Wed, 27 Jan 2016 13:44:43 +0100 Subject: [PATCH 217/517] Added link to embedding page --- Home.md | 1 + 1 file changed, 1 insertion(+) diff --git a/Home.md b/Home.md index b8e77e7b39..13ce6c05a5 100644 --- a/Home.md +++ b/Home.md @@ -11,6 +11,7 @@ Welcome to the tmk_keyboard wiki! - [[HHKB Alt controller]] - [[mbed/cortex porting]] - [[Keymap examples]] +- [[Embedding]] - [[Test for ASCIIDOC]] \ No newline at end of file From aee41b1293a4e711aa0c07661ff7ca6135977de8 Mon Sep 17 00:00:00 2001 From: Adrian L Lange Date: Wed, 27 Jan 2016 13:45:50 +0100 Subject: [PATCH 218/517] Updated TMK Based Projects (markdown) --- TMK-Based-Projects.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/TMK-Based-Projects.md b/TMK-Based-Projects.md index b33968fa46..9df7d5ee08 100644 --- a/TMK-Based-Projects.md +++ b/TMK-Based-Projects.md @@ -2,7 +2,7 @@ Add your project here! See https://github.com/tmk/tmk_keyboard/issues/173 -### keyboard +### keyboards **S60-X**: [DIY 60% keyboard](https://www.massdrop.com/buy/sentraq-60-diy-keyboard-kit?mode=guest_open) designed by [VinnyCordeiro](https://github.com/VinnyCordeiro) for Sentraq: - https://github.com/VinnyCordeiro/tmk_keyboard @@ -15,4 +15,4 @@ See https://github.com/tmk/tmk_keyboard/issues/173 **KMAC, 1,2 and Happy**: Custom keyboard designed by kbdmania. - https://github.com/ageaenes/tmk_keyboard -### converter \ No newline at end of file +### converters \ No newline at end of file From 5a7d3dce95e4db2f1c0200793bf79c51f1d314fb Mon Sep 17 00:00:00 2001 From: Adrian L Lange Date: Wed, 27 Jan 2016 14:30:52 +0100 Subject: [PATCH 219/517] Updated TMK Based Projects (markdown) --- TMK-Based-Projects.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/TMK-Based-Projects.md b/TMK-Based-Projects.md index 9df7d5ee08..6640a55b12 100644 --- a/TMK-Based-Projects.md +++ b/TMK-Based-Projects.md @@ -15,4 +15,7 @@ See https://github.com/tmk/tmk_keyboard/issues/173 **KMAC, 1,2 and Happy**: Custom keyboard designed by kbdmania. - https://github.com/ageaenes/tmk_keyboard +**P60**: [DIY wired 60% keyboard](https://imgur.com/a/zwsDN) by [p3lim](https://github.com/p3lim). +- https://github.com/p3lim/keyboard_firmware + ### converters \ No newline at end of file From 79f28ac3bdf85bca2cfbc33fd6fd1fdf673df517 Mon Sep 17 00:00:00 2001 From: tmk Date: Fri, 29 Jan 2016 01:11:35 +0900 Subject: [PATCH 220/517] Created USB HID (markdown) --- USB-HID.md | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 USB-HID.md diff --git a/USB-HID.md b/USB-HID.md new file mode 100644 index 0000000000..1d0c458695 --- /dev/null +++ b/USB-HID.md @@ -0,0 +1,11 @@ +# Getting Report Descriptor +``` + $ cd /sys/bus/usb/drivers/usbhid + $ ls + 1-1.3.4:1.0 1-1.3.4:1.2 bind new_id uevent + 1-1.3.4:1.1 1-1.3.4:1.3 module remove_id unbind + $ echo -n 1-1.4\:1.0 | sudo tee unbind + $ sudo lsusb -vvv -d 046d:c01d + $ echo -n 1-1.4\:1.0 | sudo tee bind +``` + From a38fc1beae1817328a75346d18ae70bf82e7a269 Mon Sep 17 00:00:00 2001 From: tmk Date: Tue, 2 Feb 2016 14:41:14 +0900 Subject: [PATCH 221/517] Created Report Descriptor (markdown) --- Report-Descriptor.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 Report-Descriptor.md diff --git a/Report-Descriptor.md b/Report-Descriptor.md new file mode 100644 index 0000000000..fd5e96c67d --- /dev/null +++ b/Report-Descriptor.md @@ -0,0 +1 @@ +# Get Report Descriptor with lsusb \ No newline at end of file From 6778c175f5b963fd50cd006a7eec8c86ac1736eb Mon Sep 17 00:00:00 2001 From: tmk Date: Fri, 5 Feb 2016 09:22:01 +0900 Subject: [PATCH 222/517] Updated TMK Based Projects (markdown) --- TMK-Based-Projects.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/TMK-Based-Projects.md b/TMK-Based-Projects.md index 6640a55b12..b2b1bae5b4 100644 --- a/TMK-Based-Projects.md +++ b/TMK-Based-Projects.md @@ -18,4 +18,6 @@ See https://github.com/tmk/tmk_keyboard/issues/173 **P60**: [DIY wired 60% keyboard](https://imgur.com/a/zwsDN) by [p3lim](https://github.com/p3lim). - https://github.com/p3lim/keyboard_firmware +**Nerd, Kitten Paw, Lightsaber, Phantom, Lightpad, Ergodox by [@xauser](https://github.com/xauser)**: +- https://github.com/xauser/tmk_keyboard/tree/xauser ### converters \ No newline at end of file From e5e7dbebf62351e9222559429a7d57eca3331036 Mon Sep 17 00:00:00 2001 From: tmk Date: Fri, 5 Feb 2016 09:22:16 +0900 Subject: [PATCH 223/517] Updated TMK Based Projects (markdown) --- TMK-Based-Projects.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/TMK-Based-Projects.md b/TMK-Based-Projects.md index b2b1bae5b4..0aa0af6a61 100644 --- a/TMK-Based-Projects.md +++ b/TMK-Based-Projects.md @@ -20,4 +20,6 @@ See https://github.com/tmk/tmk_keyboard/issues/173 **Nerd, Kitten Paw, Lightsaber, Phantom, Lightpad, Ergodox by [@xauser](https://github.com/xauser)**: - https://github.com/xauser/tmk_keyboard/tree/xauser + + ### converters \ No newline at end of file From 29664234e255fa718e99227ca9599482541f40d6 Mon Sep 17 00:00:00 2001 From: tmk Date: Fri, 5 Feb 2016 13:33:43 +0900 Subject: [PATCH 224/517] Updated TMK Based Projects (markdown) --- TMK-Based-Projects.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/TMK-Based-Projects.md b/TMK-Based-Projects.md index 0aa0af6a61..aa10fe0351 100644 --- a/TMK-Based-Projects.md +++ b/TMK-Based-Projects.md @@ -18,8 +18,14 @@ See https://github.com/tmk/tmk_keyboard/issues/173 **P60**: [DIY wired 60% keyboard](https://imgur.com/a/zwsDN) by [p3lim](https://github.com/p3lim). - https://github.com/p3lim/keyboard_firmware -**Nerd, Kitten Paw, Lightsaber, Phantom, Lightpad, Ergodox by [@xauser](https://github.com/xauser)**: +**Nerd, Kitten Paw, Lightsaber, Phantom, Lightpad, Ergodox** on [xauser](https://github.com/xauser)'s repository - https://github.com/xauser/tmk_keyboard/tree/xauser +**ErgoDox** on [cub-unanic](https://github.com/cub-uanic)'s repository +- https://github.com/cub-uanic/tmk_keyboard/tree/master/keyboard/ergodox + +**[mcdox](https://github.com/DavidMcEwan/mcdox)** +- https://github.com/DavidMcEwan/tmk_keyboard/tree/master/keyboard/mcdox + ### converters \ No newline at end of file From 2b0b5d804ae4e9dc976c3d37a4ce30531b2bc8d5 Mon Sep 17 00:00:00 2001 From: Phil Hagelberg Date: Mon, 8 Feb 2016 18:23:15 +0700 Subject: [PATCH 225/517] Add Atreus --- TMK-Based-Projects.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/TMK-Based-Projects.md b/TMK-Based-Projects.md index aa10fe0351..0597b04c38 100644 --- a/TMK-Based-Projects.md +++ b/TMK-Based-Projects.md @@ -24,6 +24,9 @@ See https://github.com/tmk/tmk_keyboard/issues/173 **ErgoDox** on [cub-unanic](https://github.com/cub-uanic)'s repository - https://github.com/cub-uanic/tmk_keyboard/tree/master/keyboard/ergodox +**Atreus** by [technomancy](https://atreus.technomancy.us) +- https://github.com/technomancy/tmk_keyboard/tree/atreus/keyboard/atreus + **[mcdox](https://github.com/DavidMcEwan/mcdox)** - https://github.com/DavidMcEwan/tmk_keyboard/tree/master/keyboard/mcdox From b803589e293fcfd40dba64210aba77e510a6af62 Mon Sep 17 00:00:00 2001 From: leizzer Date: Mon, 28 Mar 2016 02:14:52 -0300 Subject: [PATCH 226/517] Build guide in the wiki section --- Build-Guide.md | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 Build-Guide.md diff --git a/Build-Guide.md b/Build-Guide.md new file mode 100644 index 0000000000..81c3ec44f2 --- /dev/null +++ b/Build-Guide.md @@ -0,0 +1,55 @@ +# Build Guide + +## Build Environment Setup + +### Windows +1. Install [MHV AVR Tools](https://infernoembedded.com/sites/default/files/project/MHV_AVR_Tools_20131101.exe). Disable smatch, but **be sure to leave the option to add the tools to the PATH checked**. +2. Install [MinGW](https://sourceforge.net/projects/mingw/files/Installer/mingw-get-setup.exe/download). During installation, uncheck the option to install a graphical user interface. **DO NOT change the default installation folder.** The scripts depend on the default location. +3. Clone this repository. [This link will download it as a zip file, which you'll need to extract.](https://github.com/jackhumbert/qmk_firmware/archive/master.zip) Open the extracted folder in Windows Explorer. +4. Right-click on the 1-setup-path-win batch script, select "Run as administrator", and accept the User Account Control prompt. Press the spacebar to dismiss the success message in the command prompt that pops up. +5. Right-click on the 2-setup-environment-win batch script, select "Run as administrator", and accept the User Account Control prompt. This part may take a couple of minutes, and you'll need to approve a driver installation, but once it finishes, your environment is complete! + +### Mac +If you're using [homebrew,](http://brew.sh/) you can use the following commands: + + brew tap osx-cross/avr + brew install avr-libc + brew install dfu-programmer + +This is the recommended method. If you don't have homebrew, [install it!](http://brew.sh/) It's very much worth it for anyone who works in the command line. + +You can also try these instructions: + +1. Install Xcode from the App Store. +2. Install the Command Line Tools from `Xcode->Preferences->Downloads`. +3. Install [DFU-Programmer][dfu-prog]. + +### Linux +Install AVR GCC and dfu-progammer with your favorite package manager. + +Debian/Ubuntu example: + + sudo apt-get update + sudo apt-get install gcc-avr 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). + +## Verify Your Installation +1. If you haven't already, obtain this repository ([https://github.com/jackhumbert/qmk_firmware](https://github.com/jackhumbert/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. +2. Open up a terminal or command prompt and navigate to the qmk_firmware folder using the `cd` command. The command prompt will typically open to your home directory. If, for example, you cloned the repository to your Documents folder, then you would type `cd Documents/qmk_firmware`. If you extracted the file from a zip, then it may be named `qmk_firmware-master` instead. +3. To confirm that you're in the correct location, you can display the contents of your current folder using the `dir` command on Windows, or the `ls` command on Linux or Mac. You should see several files, including `README.md` and a `quantum` folder. From here, you need to navigate to the appropriate folder under `keyboard/`. For example, if you're building for a Planck, run `cd keyboard/planck`. +4. Once you're in the correct keyboard-specific folder, run the `make` command. This should output a lot of information about the build process. + +## Customizing, Building, and Deploying Your Firmware +1. Running the `make` command from your keyboard's folder will generate a .hex file based on the default keymap. All keymaps for a particular keyboard live in the `keymaps` folder in that keyboard's folder. To create your own keymap, copy `keymaps/default/keymap.c` to the `keymaps` folder, and rename it with your name, for example jack.c. Or, if you don't care about the ability to share your keymap with the community via GitHub, you can just modify the default keymap itself. Details on how to program keymap files can be found in other guides. +2. To build a keymap other than the default, type `KEYMAP=` after `make`. So if I've named my keymap jack.c, the full command would be `make KEYMAP=jack`. +3. How you deploy the firmware will depend on whether you are using a PCB or a Teensy. In both cases, you'll need to put the keyboard in bootloader mode, either by pressing a button on the PCB/Teensy or pressing the key with the `RESET` keycode. Then, if you're using a PCB, just run `make KEYMAP= dfu` to both build and deploy the firmware. If you're using a Teensy, you'll probably need to take the .hex file that make produces in the keyboard's folder, and deploy it using the [Teensy Loader.](https://www.pjrc.com/teensy/loader.html) + +## Helpful Tips +1. On Linux or OS X, you can run `sleep 5; make KEYMAP= dfu` to delay building/deploying the firmware until for 5 seconds, giving you a chance to put the firmware into bootloader mode. You can change the 5 to any number of seconds. + +## Troubleshooting +1. Try running `make clean` if the make command fails. + + WIP \ No newline at end of file From 71614e5b98114ad6f3cd99b21457a6760e515b31 Mon Sep 17 00:00:00 2001 From: leizzer Date: Mon, 28 Mar 2016 02:20:27 -0300 Subject: [PATCH 227/517] Updated Home (markdown) --- Home.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Home.md b/Home.md index 13ce6c05a5..528791e177 100644 --- a/Home.md +++ b/Home.md @@ -1,3 +1,7 @@ +# qmk_firmware documentation: + +- [[Build Guide]] + Welcome to the tmk_keyboard wiki! - [[TMK Own Projects]] From 049e5916a485cc7a04b7cfc874498a320d9a2822 Mon Sep 17 00:00:00 2001 From: leizzer Date: Mon, 28 Mar 2016 02:22:04 -0300 Subject: [PATCH 228/517] Updated Home (markdown) --- Home.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Home.md b/Home.md index 528791e177..d6d5b5174c 100644 --- a/Home.md +++ b/Home.md @@ -1,7 +1,9 @@ -# qmk_firmware documentation: +# qmk_firmware documentation - [[Build Guide]] + +### tmk_firmware wiki Welcome to the tmk_keyboard wiki! - [[TMK Own Projects]] From e04aff10fa2f97640aeb3f351ed83f21b64ac12b Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sat, 4 Jun 2016 16:12:41 -0400 Subject: [PATCH 229/517] Updated FAQ Build (markdown) --- FAQ-Build.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FAQ-Build.md b/FAQ-Build.md index e68ff6a4b4..32ad844581 100644 --- a/FAQ-Build.md +++ b/FAQ-Build.md @@ -1,5 +1,5 @@ ## READ FIRST -- https://github.com/tmk/tmk_keyboard/blob/master/tmk_core/doc/build.md +- https://github.com/tmk/tmk_keyboard/blob/master/doc/BUILD_GUIDE.md In short, From c6d0da9a372601a52cf898366e6220e3f4717307 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sat, 4 Jun 2016 16:13:04 -0400 Subject: [PATCH 230/517] Updated FAQ Build (markdown) --- FAQ-Build.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FAQ-Build.md b/FAQ-Build.md index 32ad844581..2e21cb6921 100644 --- a/FAQ-Build.md +++ b/FAQ-Build.md @@ -1,5 +1,5 @@ ## READ FIRST -- https://github.com/tmk/tmk_keyboard/blob/master/doc/BUILD_GUIDE.md +- https://github.com/jackhumbert/qmk_firmware/blob/master/doc/BUILD_GUIDE.md In short, From 6b67129c5145f6d185b59094bf7283179c4f7ec9 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sun, 3 Jul 2016 21:33:40 -0400 Subject: [PATCH 231/517] Destroyed Build Guide (markdown) --- Build-Guide.md | 55 -------------------------------------------------- 1 file changed, 55 deletions(-) delete mode 100644 Build-Guide.md diff --git a/Build-Guide.md b/Build-Guide.md deleted file mode 100644 index 81c3ec44f2..0000000000 --- a/Build-Guide.md +++ /dev/null @@ -1,55 +0,0 @@ -# Build Guide - -## Build Environment Setup - -### Windows -1. Install [MHV AVR Tools](https://infernoembedded.com/sites/default/files/project/MHV_AVR_Tools_20131101.exe). Disable smatch, but **be sure to leave the option to add the tools to the PATH checked**. -2. Install [MinGW](https://sourceforge.net/projects/mingw/files/Installer/mingw-get-setup.exe/download). During installation, uncheck the option to install a graphical user interface. **DO NOT change the default installation folder.** The scripts depend on the default location. -3. Clone this repository. [This link will download it as a zip file, which you'll need to extract.](https://github.com/jackhumbert/qmk_firmware/archive/master.zip) Open the extracted folder in Windows Explorer. -4. Right-click on the 1-setup-path-win batch script, select "Run as administrator", and accept the User Account Control prompt. Press the spacebar to dismiss the success message in the command prompt that pops up. -5. Right-click on the 2-setup-environment-win batch script, select "Run as administrator", and accept the User Account Control prompt. This part may take a couple of minutes, and you'll need to approve a driver installation, but once it finishes, your environment is complete! - -### Mac -If you're using [homebrew,](http://brew.sh/) you can use the following commands: - - brew tap osx-cross/avr - brew install avr-libc - brew install dfu-programmer - -This is the recommended method. If you don't have homebrew, [install it!](http://brew.sh/) It's very much worth it for anyone who works in the command line. - -You can also try these instructions: - -1. Install Xcode from the App Store. -2. Install the Command Line Tools from `Xcode->Preferences->Downloads`. -3. Install [DFU-Programmer][dfu-prog]. - -### Linux -Install AVR GCC and dfu-progammer with your favorite package manager. - -Debian/Ubuntu example: - - sudo apt-get update - sudo apt-get install gcc-avr 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). - -## Verify Your Installation -1. If you haven't already, obtain this repository ([https://github.com/jackhumbert/qmk_firmware](https://github.com/jackhumbert/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. -2. Open up a terminal or command prompt and navigate to the qmk_firmware folder using the `cd` command. The command prompt will typically open to your home directory. If, for example, you cloned the repository to your Documents folder, then you would type `cd Documents/qmk_firmware`. If you extracted the file from a zip, then it may be named `qmk_firmware-master` instead. -3. To confirm that you're in the correct location, you can display the contents of your current folder using the `dir` command on Windows, or the `ls` command on Linux or Mac. You should see several files, including `README.md` and a `quantum` folder. From here, you need to navigate to the appropriate folder under `keyboard/`. For example, if you're building for a Planck, run `cd keyboard/planck`. -4. Once you're in the correct keyboard-specific folder, run the `make` command. This should output a lot of information about the build process. - -## Customizing, Building, and Deploying Your Firmware -1. Running the `make` command from your keyboard's folder will generate a .hex file based on the default keymap. All keymaps for a particular keyboard live in the `keymaps` folder in that keyboard's folder. To create your own keymap, copy `keymaps/default/keymap.c` to the `keymaps` folder, and rename it with your name, for example jack.c. Or, if you don't care about the ability to share your keymap with the community via GitHub, you can just modify the default keymap itself. Details on how to program keymap files can be found in other guides. -2. To build a keymap other than the default, type `KEYMAP=` after `make`. So if I've named my keymap jack.c, the full command would be `make KEYMAP=jack`. -3. How you deploy the firmware will depend on whether you are using a PCB or a Teensy. In both cases, you'll need to put the keyboard in bootloader mode, either by pressing a button on the PCB/Teensy or pressing the key with the `RESET` keycode. Then, if you're using a PCB, just run `make KEYMAP= dfu` to both build and deploy the firmware. If you're using a Teensy, you'll probably need to take the .hex file that make produces in the keyboard's folder, and deploy it using the [Teensy Loader.](https://www.pjrc.com/teensy/loader.html) - -## Helpful Tips -1. On Linux or OS X, you can run `sleep 5; make KEYMAP= dfu` to delay building/deploying the firmware until for 5 seconds, giving you a chance to put the firmware into bootloader mode. You can change the 5 to any number of seconds. - -## Troubleshooting -1. Try running `make clean` if the make command fails. - - WIP \ No newline at end of file From abfc9265c447b0746c0fbf8fe88160e400206e39 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sun, 3 Jul 2016 21:33:56 -0400 Subject: [PATCH 232/517] Updated Home (markdown) --- Home.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/Home.md b/Home.md index d6d5b5174c..368413dc06 100644 --- a/Home.md +++ b/Home.md @@ -1,7 +1,5 @@ # qmk_firmware documentation -- [[Build Guide]] - ### tmk_firmware wiki Welcome to the tmk_keyboard wiki! From cab29b61e4bb3245b80863387c49f0bafba4087a Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sun, 3 Jul 2016 21:34:20 -0400 Subject: [PATCH 233/517] Updated Home (markdown) --- Home.md | 22 +--------------------- 1 file changed, 1 insertion(+), 21 deletions(-) diff --git a/Home.md b/Home.md index 368413dc06..7355185ae1 100644 --- a/Home.md +++ b/Home.md @@ -1,21 +1 @@ -# qmk_firmware documentation - - -### tmk_firmware wiki -Welcome to the tmk_keyboard wiki! - -- [[TMK Own Projects]] -- [[TMK Based Projects]] -- [[Other Projects]] -- [[FAQ]] -- [[FAQ/Build]] -- [[FAQ/Keymap]] -- [Keymap Editor](http://tmk.github.io/tmk_keyboard/editor/index.html) (beta) -- [[Compatible Microcontrollers]] -- [[HHKB Alt controller]] -- [[mbed/cortex porting]] -- [[Keymap examples]] -- [[Embedding]] - - -- [[Test for ASCIIDOC]] \ No newline at end of file +none right now \ No newline at end of file From 22e234f9b58fd9f0c19e6f33da9d2d1f8ab9dd93 Mon Sep 17 00:00:00 2001 From: DidierLoiseau Date: Sun, 18 Sep 2016 13:27:27 +0200 Subject: [PATCH 234/517] Initial version --- Eclipse.md | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 Eclipse.md diff --git a/Eclipse.md b/Eclipse.md new file mode 100644 index 0000000000..26e69fac1d --- /dev/null +++ b/Eclipse.md @@ -0,0 +1,36 @@ +[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. + +Using an IDE such as Eclipse provides many advantages over a plain text editor, such as: +* intelligent code completion +* convenient navigation in the code +* refactoring tools +* build automation (no need for the command-line) +* a GUI for GIT +* static code analysis +* many other tools such as debugging, code formatting, showing call hierarchies etc. + +The goal of the is page is to document how to set-up Eclipse for developing AVR software, and working on the QMK code base. + +Note that this set-up has been tested on Ubuntu 16.04 only for the moment. + +# Prerequisites +Before starting, you must have followed the [Getting Started](../#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). + +# 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 +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. + +Installation is very simple: +* [Download Eclipse IDE for C/C++ Developers](http://www.eclipse.org/downloads/eclipse-packages/) ([direct link to current version](http://www.eclipse.org/downloads/packages/eclipse-ide-cc-developers/neonr)) from the official Eclipse website +* Extract the package to the location of your choice (this creates an `eclipse` folder) +* (optional) Rename the extracted `eclipse` folder to something more specific like `eclipse-cpp-neon-x64` (to avoid conflicts if you install several packages of Eclipse) + +## Install the necessary plugins +(todo) + +# Configure Eclipse for QMK +(todo) \ No newline at end of file From ae7c3a0692672878740b34487d191346ca0b0b55 Mon Sep 17 00:00:00 2001 From: DidierLoiseau Date: Sun, 18 Sep 2016 15:03:27 +0200 Subject: [PATCH 235/517] Instruct to use the Eclipse installer instead of extracting the package, describe first launch and plugin installation. --- Eclipse.md | 35 +++++++++++++++++++++++++++++------ 1 file changed, 29 insertions(+), 6 deletions(-) diff --git a/Eclipse.md b/Eclipse.md index 26e69fac1d..42a0cc275d 100644 --- a/Eclipse.md +++ b/Eclipse.md @@ -9,13 +9,17 @@ Using an IDE such as Eclipse provides many advantages over a plain text editor, * static code analysis * many other tools such as debugging, code formatting, showing call hierarchies etc. -The goal of the is page is to document how to set-up Eclipse for developing AVR software, and working on the QMK code base. +The purpose of the is page is to document how to set-up Eclipse for developing AVR software, and working on the QMK code base. 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](../#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 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. @@ -24,13 +28,32 @@ If you already have Eclipse CDT on your system, you can skip this step. However 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. -Installation is very simple: -* [Download Eclipse IDE for C/C++ Developers](http://www.eclipse.org/downloads/eclipse-packages/) ([direct link to current version](http://www.eclipse.org/downloads/packages/eclipse-ide-cc-developers/neonr)) from the official Eclipse website -* Extract the package to the location of your choice (this creates an `eclipse` folder) -* (optional) Rename the extracted `eclipse` folder to something more specific like `eclipse-cpp-neon-x64` (to avoid conflicts if you install several packages of Eclipse) +Installation is very simple: follow the [5 Steps to Install Eclipse](https://eclipse.org/downloads/eclipse-packages/?show_instructions=TRUE), and choose **Eclipse IDE for C/C++ Developers** at Step 3. + +Alternatively, you can also directly [download Eclipse IDE for C/C++ Developers](http://www.eclipse.org/downloads/eclipse-packages/) ([direct link to current version](http://www.eclipse.org/downloads/packages/eclipse-ide-cc-developers/neonr)) and extract the package to the location of your choice (this creates an `eclipse` folder). + +## First Launch +When installation is complete, click the Launch button. (If you extracted the package manually, open the Eclipse installation folder and double-click the `eclipse` executable) + +When you are prompted with the Workspace Selector, select a directory that will hold Eclipse metadata and usually your projects. **Do not select the `qmk_firmware` directory**, this will be the project directory. Select the parent folder instead, or another (preferably empty) folder of your choice (the default is fine if you do not use it yet). + +Once started, click the Workbench 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 -(todo) +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/) +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) +This plugin is necessary to properly display the colored build output generated by the QMK makefile. + +1. Open Help > Eclipse Marketplace… +2. Search for _ANSI Escape in Console_ +3. Click the Install button of the plugin +4. Follow the instructions and agree again with the security warning for unsigned content. + +Once both plugins are installed, restart Eclipse as prompted. # Configure Eclipse for QMK (todo) \ No newline at end of file From d352a8bc29a38084f72c2c97f0aef7aba7b9c954 Mon Sep 17 00:00:00 2001 From: DidierLoiseau Date: Sun, 18 Sep 2016 21:24:56 +0200 Subject: [PATCH 236/517] Importing and building the project --- Eclipse.md | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/Eclipse.md b/Eclipse.md index 42a0cc275d..21851a2fb2 100644 --- a/Eclipse.md +++ b/Eclipse.md @@ -56,4 +56,29 @@ 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 -(todo) \ No newline at end of file +## Importing the project +1. Click File > New > Makefile Project with Existing Code +2. On the next screen: + * Select the directory where you cloned the repository as _Existing Code Location_; + * (Optional) Give a different name to the project¹, e.g. _QMK_ or _Quantum_; + * Select the _AVR-GCC Toolchain_; + * Keep the rest as-is and click Finish + + ![Importing QMK in Eclipse](http://i.imgur.com/oHYR1yW.png) + +3. The project will now be loaded and indexed. Its files can be browsed easily through the _Project Explorer_ on the left. + +¹ 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 +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 Make Target tab +2. Expand the folder structure to the keyboard of your choice, e.g. `qmk_firmware/keyboards/ergodox` +3. Right-click on the keyboard folder and select New… (or select the folder and click the New Make Target icon above the tree) +4. Choose a name for your build target, e.g. _clean \_ +5. Make Target: this is the arguments that you give to `make` when building from the command line. If your target name does not match these arguments, uncheck Same as target name and input the correct arguments, e.g. `clean ` +6. Leave the other options checked and click OK. Your make target will now appear under the selected keyboard. +7. (Optional) Toggle the Hide Empty Folders 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 Console view at the bottom to view the running build. \ No newline at end of file From c66b090d4cf7c750a2ce9c9e3d877381a1406355 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Mon, 19 Sep 2016 15:27:06 -0400 Subject: [PATCH 237/517] Copy the main readme.md here --- Home.md | 1269 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 1268 insertions(+), 1 deletion(-) diff --git a/Home.md b/Home.md index 7355185ae1..ea20b5e017 100644 --- a/Home.md +++ b/Home.md @@ -1 +1,1268 @@ -none right now \ No newline at end of file +# Quantum Mechanical Keyboard Firmware + +[![Build Status](https://travis-ci.org/jackhumbert/qmk_firmware.svg?branch=master)](https://travis-ci.org/jackhumbert/qmk_firmware) + +This is a keyboard firmware based on the [tmk_keyboard firmware](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/). + +## Official website + +For an easy-to-read version of this document and the repository, check out [http://qmk.fm](http://qmk.fm). Nicely formatted keyboard and keymap listings are also available there, along with the ability to download .hex files instead of having to setup a build environment and compile them. + +## Included Keyboards + +* [Planck](/keyboards/planck/) +* [Preonic](/keyboards/preonic/) +* [Atomic](/keyboards/atomic/) +* [ErgoDox EZ](/keyboards/ergodox/) +* [Clueboard](/keyboards/clueboard/) +* [Cluepad](/keyboards/cluepad/) + +The project also includes community support for [lots of other keyboards](/keyboards/). + +## Maintainers + +QMK is developed and maintained by Jack Humbert of OLKB with contributions from the community, and of course, [Hasu](https://github.com/tmk). This repo used to be a fork of [TMK](https://github.com/tmk/tmk_keyboard), and we are incredibly grateful for his founding contributions to the firmware. We've had to break the fork due to purely technical reasons - it simply became too different over time, and we've had to start refactoring some of the basic bits and pieces. We are huge fans of TMK and Hasu :) + +This documentation is edited and maintained by Erez Zukerman of ErgoDox EZ. If you spot any typos or inaccuracies, please [open an issue](https://github.com/jackhumbert/qmk_firmware/issues/new). + +The OLKB product firmwares are maintained by [Jack Humbert](https://github.com/jackhumbert), the Ergodox EZ by [Erez Zukerman](https://github.com/ezuk), and the Clueboard by [Zach White](https://github.com/skullydazed). + +## Documentation roadmap + +This is not a tiny project. While this is the main readme, there are many other files you might want to consult. Here are some points of interest: + +* The readme for your own keyboard: This is found under `keyboards//`. So for the ErgoDox EZ, it's [here](keyboards/ergodox/ez/); for the Planck, it's [here](keyboards/planck/) and so on. +* The list of possible keycodes you can use in your keymap is actually spread out in a few different places: + * [doc/keycode.txt](doc/keycode.txt) - an explanation of those same keycodes. + * [quantum/keymap.h](quantum/keymap.h) - this is where the QMK-specific aliases are all set up. Things like the Hyper and Meh key, the Leader key, and all of the other QMK innovations. These are also explained and documented below, but `keymap.h` is where they're actually defined. +* The [TMK documentation](doc/TMK_README.md). QMK is based on TMK, and this explains how it works internally. + +# Getting started + +Before you are able to compile, you'll need to install an environment for AVR development. You'll find the instructions for any OS below. If you find another/better way to set things up from scratch, please consider [making a pull request](https://github.com/jackhumbert/qmk_firmware/pulls) with your changes! + +## Build Environment Setup + +### Windows 10 + +It's still recommended to use the method for Vista and later below. The reason for this is that the Windows 10 Subsystem for Linux lacks [USB support](https://wpdev.uservoice.com/forums/266908-command-prompt-console-bash-on-ubuntu-on-windo/suggestions/13355724-unable-to-access-usb-devices-from-bash), so it's not possible to flash the firmware to the keyboard. Please add your vote to the link! + +That said, it's still possible to use it for compilation. And recommended, if you need to compile much, since it's much faster than at least Cygwin (which is also supported, but currently lacking documentation). I haven't tried the method below, so I'm unable to tell. + +Here are the steps + +1. Install the Windows 10 subsystem for Linux, following [these instructions](http://www.howtogeek.com/249966/how-to-install-and-use-the-linux-bash-shell-on-windows-10/). +2. If you have previously cloned the repository using the normal Git bash, you will need to clean up the line endings. If you have cloned it after 20th of August 2016, you are likely fine. To clean up the line endings do the following + 1. Make sure that you have no changes you haven't committed by running `git status`, if you do commit them first + 2. From within the Git bash run `git rm --cached -r .` + 3. Followed by `git reset --hard` +3. Start the "Bash On Ubuntu On Windows" from the start menu +4. With the bash open, navigate to your Git checkout. The harddisk can be accessed from `/mnt` for example `/mnt/c` for the `c:\` drive. +5. Run `sudo util/install_dependencies.sh`. +6. After a while the installation will finish, and you are good to go + +**Note** From time to time, the dependencies might change, so just run `install_dependencies.sh` again if things are not working. + +**Warning:** If you edit Makefiles or shell scripts, make sure you are using an editor that saves the files with Unix line endings. Otherwise the compilation might not work. + + +### Windows (Vista and later) +1. If you have ever installed WinAVR, uninstall it. +2. Install [MHV AVR Tools](https://infernoembedded.com/sites/default/files/project/MHV_AVR_Tools_20131101.exe). Disable smatch, but **be sure to leave the option to add the tools to the PATH checked**. +3. If you are going to flash Infinity based keyboards you will need to install dfu-util, refer to the instructions by [Input Club](https://github.com/kiibohd/controller/wiki/Loading-DFU-Firmware). +4. Install [MinGW](https://sourceforge.net/projects/mingw/files/Installer/mingw-get-setup.exe/download). During installation, uncheck the option to install a graphical user interface. **DO NOT change the default installation folder.** The scripts depend on the default location. +5. Clone this repository. [This link will download it as a zip file, which you'll need to extract.](https://github.com/jackhumbert/qmk_firmware/archive/master.zip) Open the extracted folder in Windows Explorer. +6. Open the `\util` folder. +7. Double-click on the `1-setup-path-win` batch script to run it. You'll need to accept a User Account Control prompt. Press the spacebar to dismiss the success message in the command prompt that pops up. +8. Right-click on the `2-setup-environment-win` batch script, select "Run as administrator", and accept the User Account Control prompt. This part may take a couple of minutes, and you'll need to approve a driver installation, but once it finishes, your environment is complete! + +If you have trouble and want to ask for help, it is useful to generate a *Win_Check_Output.txt* file by running `Win_Check.bat` in the `\util` folder. + +### Mac +If you're using [homebrew,](http://brew.sh/) you can use the following commands: + + brew tap osx-cross/avr + brew install avr-libc + brew install dfu-programmer + +This is the recommended method. If you don't have homebrew, [install it!](http://brew.sh/) It's very much worth it for anyone who works in the command line. + +You can also try these instructions: + +1. Install Xcode from the App Store. +2. Install the Command Line Tools from `Xcode->Preferences->Downloads`. +3. Install [DFU-Programmer][dfu-prog]. + +If you are going to flash Infinity based keyboards you will also need dfu-util + + brew install dfu-util + +### Linux + +To ensure you are always up to date, you can just run `sudo util/install_dependencies.sh`. That should always install all the dependencies needed. + +You can also install things manually, but this documentation might not be always up to date with all requirements. + +The current requirements are the following, but not all might be needed depending on what you do. Also note that some systems might not have all the dependencies available as packages, or they might be named differently. + +``` +build-essential +gcc +unzip +wget +zip +gcc-avr +binutils-avr +avr-libc +dfu-programmer +dfu-util +gcc-arm-none-eabi +binutils-arm-none-eabi +libnewlib-arm-none-eabi +git +``` + +Install the dependencies with your favorite package manager. + +Debian/Ubuntu example: + + sudo apt-get update + sudo apt-get install gcc unzip wget zip gcc-avr binutils-avr avr-libc dfu-programmer dfu-util gcc-arm-none-eabi binutils-arm-none-eabi libnewlib-arm-none-eabi + +### Docker + +If this is a bit complex for you, Docker might be the turn-key solution you need. After installing [Docker](https://www.docker.com/products/docker), run the following command at the root of the QMK folder to build a keyboard/keymap: + +```bash +# You'll run this every time you want to build a keymap +# modify the keymap and keyboard assigment to compile what you want +# defaults are ergodox/default + +docker run -e keymap=gwen -e keyboard=ergodox --rm -v $('pwd'):/qmk:rw edasque/qmk_firmware + +``` + +This will compile the targetted 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](doc/VAGRANT_GUIDE.md). + +## Verify Your Installation +1. If you haven't already, obtain this repository ([https://github.com/jackhumbert/qmk_firmware](https://github.com/jackhumbert/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. +2. Open up a terminal or command prompt and navigate to the `qmk_firmware` folder using the `cd` command. The command prompt will typically open to your home directory. If, for example, you cloned the repository to your Documents folder, then you would type `cd Documents/qmk_firmware`. If you extracted the file from a zip, then it may be named `qmk_firmware-master` instead. +3. To confirm that you're in the correct location, you can display the contents of your current folder using the `dir` command on Windows, or the `ls` command on Linux or Mac. You should see several files, including `readme.md` and a `quantum` folder. From here, you need to navigate to the appropriate folder under `keyboards/`. For example, if you're building for a Planck, run `cd keyboards/planck`. +4. Once you're in the correct keyboard-specific folder, run the `make` command. This should output a lot of information about the build process. More information about the `make` command can be found below. + +# Customizing your keymap + +In every keymap folder, the following files are recommended: + +* `config.h` - the options to configure your keymap +* `keymap.c` - all of your keymap code, required +* `Makefile` - the features of QMK that are enabled, required to run `make` in your keymap folder +* `readme.md` - a description of your keymap, how others might use it, and explanations of features + +## The `make` command + +The `make` command is how you compile the firmware into a .hex file, which can be loaded by a dfu programmer (like dfu-progammer via `make dfu`) or the [Teensy loader](https://www.pjrc.com/teensy/loader.html) (only used with Teensys). + +**NOTE:** To abort a make command press `Ctrl-c` + +The following instruction refers to these folders. + +* The `root` (`/`) folder is the qmk_firmware folder, in which are `doc`, `keyboard`, `quantum`, etc. +* The `keyboard` folder is any keyboard project's folder, like `/keyboards/planck`. +* The `keymap` folder is any keymap's folder, like `/keyboards/planck/keymaps/default`. +* The `subproject` folder is the subproject folder of a keyboard, like `/keyboards/ergodox/ez` + +### Simple instructions for building and uploading a keyboard + +**Most keyboards have more specific instructions in the keyboard specific readme.md file, so please check that first** + +If the `keymap` folder contains a file name `Makefile` + +1. Change the directory to the `keymap` folder +2. Run `make -` + +Otherwise, if there's no `Makefile` in the `keymap` folder + +1. Enter the `keyboard` folder +2. Run `make --` + +In the above commands, replace: + +* `` with the name of your keymap +* `` with the name of the subproject (revision or sub-model of your keyboard). For example, for Ergodox it can be `ez` or `infinity`, and for Planck `rev3` or `rev4`. + * If the keyboard doesn't have a subproject, or if you are happy with the default (defined in `rules.mk` file of the `keyboard` folder), you can leave it out. But remember to also remove the dash (`-`) from the command. +* `` The programmer to use. Most keyboards use `dfu`, but some use `teensy`. Infinity keyboards use `dfu-util`. Check the readme file in the keyboard folder to find out which programmer to use. + * If you don't add `----`, where: + +* `` is the name of the keyboard, for example `planck` + * Use `allkb` to compile all keyboards +* `` is the name of the subproject (revision or sub-model of the keyboard). For example, for Ergodox it can be `ez` or `infinity`, and for Planck `rev3` or `rev4`. + * If the keyboard doesn't have any subprojects, it can be left out + * To compile the default subproject, you can leave it out, or specify `defaultsp` + * Use `allsp` to compile all subprojects +* `` is the name of the keymap, for example `algernon` + * Use `allkm` to compile all keymaps +* `` will be explained in more detail below. + +**Note:** When you leave some parts of the command out, you should also remove the dash (`-`). + +As mentioned above, there are some shortcuts, when you are in a: + +* `keyboard` folder, the command will automatically fill the `` part. So you only need to type `--` +* `subproject` folder, it will fill in both `` and `` +* `keymap` folder, then `` and `` will be filled in. If you need to specify the `` use the following syntax `-` + * Note in order to support this shortcut, the keymap needs its own Makefile (see the example [here](/doc/keymap_makefile_example.mk)) +* `keymap` folder of a `subproject`, then everything except the `` will be filled in + +The `` means the following +* If no target is given, then it's the same as `all` below +* `all` compiles the keyboard and generates a `_.hex` file in whichever folder you run `make` from. These files are ignored by git, so don't worry about deleting them when committing/creating pull requests. +* `dfu`, `teensy` or `dfu-util`, compile and upload the firmware to the keyboard. If the compilation fails, then nothing will be uploaded. The programmer to use depends on the keyboard. For most keyboards it's `dfu`, but for Infinity keyboards you should use `dfu-util`, and `teensy` for standard Teensys. To find out which command you should use for your keyboard, check the keyboard specific readme. **Note** that some operating systems needs root access for these commands to work, so in that case you need to run for example `sudo make dfu`. +* `clean`, cleans the build output folders to make sure that everything is built from scratch. Run this before normal compilation if you have some unexplainable problems. + +Some other targets are supported but, but not important enough to be documented here. Check the source code of the make files for more information. + +You can also add extra options at the end of the make command line, after the target + +* `make COLOR=false` - turns off color output +* `make SILENT=true` - turns off output besides errors/warnings +* `make VERBOSE=true` - outputs all of the gcc stuff (not interesting, unless you need to debug) + +The make command itself also has some additional options, type `make --help` for more information. The most useful is probably `-jx`, which specifies that you want to compile using more than one CPU, the `x` represents the number of CPUs that you want to use. Setting that can greatly reduce the compile times, especially if you are compiling many keyboards/keymaps. I usually set it to one less than the number of CPUs that I have, so that I have some left for doing other things while it's compiling. Note that not all operating systems and make versions supports that option. + +Here are some examples commands + +* `make allkb-allsp-allkm` builds everything (all keyboards, all subprojects, all keymaps). Running just `make` from the `root` will also run this. +* `make` from within a `keyboard` directory, is the same as `make keyboard-allsp-allkm`, which compiles all subprojects and keymaps of the keyboard. **NOTE** that this behaviour has changed. Previously it compiled just the default keymap. +* `make ergodox-infinity-algernon-clean` will clean the build output of the Ergodox Infinity keyboard. This example uses the full syntax and can be run from any folder with a `Makefile` +* `make dfu COLOR=false` from within a keymap folder, builds and uploads the keymap, but without color output. + +## The `Makefile` + +There are 5 different `make` and `Makefile` locations: + +* root (`/`) +* keyboard (`/keyboards//`) +* keymap (`/keyboards//keymaps//`) +* subproject (`/keyboards//`) +* subproject keymap (`/keyboards///keymaps/`) + +The root contains the code used to automatically figure out which keymap or keymaps to compile based on your current directory and commandline arguments. It's considered stable, and shouldn't be modified. The keyboard one will contain the MCU set-up and default settings for your keyboard, and shouldn't be modified unless you are the producer of that keyboard. The keymap Makefile can be modified by users, and is optional. It is included automatically if it exists. You can see an example [here](/doc/keymap_makefile_example.mk) - the last few lines are the most important. The settings you set here will override any defaults set in the keyboard Makefile. **The file is required if you want to run `make` in the keymap folder.** + +For keyboards and subprojects, the make files are split in two parts `Makefile` and `rules.mk`. All settings can be found in the `rules.mk` file, while the `Makefile` is just there for support and including the root `Makefile`. Keymaps contain just one `Makefile` for simplicity. + +### Makefile options + +Set the variables to `no` to disable them, and `yes` to enable them. + +`BOOTMAGIC_ENABLE` + +This allows you to hold a key and the salt key (space by default) and have access to a various EEPROM settings that persist over power loss. It's advised you keep this disabled, as the settings are often changed by accident, and produce confusing results that makes it difficult to debug. It's one of the more common problems encountered in help sessions. + +`MOUSEKEY_ENABLE` + +This gives you control over cursor movements and clicks via keycodes/custom functions. + +`EXTRAKEY_ENABLE` + +This allows you to use the system and audio control key codes. + +`CONSOLE_ENABLE` + +This allows you to print messages that can be read using [`hid_listen`](https://www.pjrc.com/teensy/hid_listen.html). + +By default, all debug (*dprint*) print (*print*, *xprintf*), and user print (*uprint*) messages will be enabled. This will eat up a significant portion of the flash and may make the keyboard .hex file too big to program. + +To disable debug messages (*dprint*) and reduce the .hex file size, include `#define NO_DEBUG` in your `config.h` file. + +To disable print messages (*print*, *xprintf*) and user print messages (*uprint*) and reduce the .hex file size, include `#define NO_PRINT` in your `config.h` file. + +To disable print messages (*print*, *xprintf*) and **KEEP** user print messages (*uprint*), include `#define USER_PRINT` in your `config.h` file. + +To see the text, open `hid_listen` and enjoy looking at your printed messages. + +**NOTE:** Do not include *uprint* messages in anything other than your keymap code. It must not be used within the QMK system framework. Otherwise, you will bloat other people's .hex files. + +`COMMAND_ENABLE` + +This enables magic commands, typically fired with the default magic key combo `LSHIFT+RSHIFT+KEY`. Magic commands include turning on debugging messages (`MAGIC+D`) or temporarily toggling NKRO (`MAGIC+N`). + +`SLEEP_LED_ENABLE` + +Enables your LED to breath while your computer is sleeping. Timer1 is being used here. This feature is largely unused and untested, and needs updating/abstracting. + +`NKRO_ENABLE` + +This allows the keyboard to tell the host OS that up to 248 keys are held down at once (default without NKRO is 6). NKRO is off by default, even if `NKRO_ENABLE` is set. NKRO can be forced by adding `#define FORCE_NKRO` to your config.h or by binding `MAGIC_TOGGLE_NKRO` to a key and then hitting the key. + +`BACKLIGHT_ENABLE` + +This enables your backlight on Timer1 and ports B5, B6, or B7 (for now). You can specify your port by putting this in your `config.h`: + + #define BACKLIGHT_PIN B7 + +`MIDI_ENABLE` + +This enables MIDI sending and receiving with your keyboard. To enter MIDI send mode, you can use the keycode `MI_ON`, and `MI_OFF` to turn it off. This is a largely untested feature, but more information can be found in the `quantum/quantum.c` file. + +`UNICODE_ENABLE` + +This allows you to send unicode symbols via `UC()` in your keymap. Only codes up to 0x7FFF are currently supported. + +`BLUETOOTH_ENABLE` + +This allows you to interface with a Bluefruit EZ-key to send keycodes wirelessly. It uses the D2 and D3 pins. + +`AUDIO_ENABLE` + +This allows you output audio on the C6 pin (needs abstracting). See the [audio section](#driving-a-speaker---audio-support) for more information. + +### Customizing Makefile options on a per-keymap basis + +If your keymap directory has a file called `Makefile` (note the filename), any Makefile options you set in that file will take precedence over other Makefile options for your particular keyboard. + +So let's say your keyboard's makefile has `BACKLIGHT_ENABLE = yes` (or maybe doesn't even list the `BACKLIGHT_ENABLE` option, which would cause it to be off). You want your particular keymap to not have the debug console, so you make a file called `Makefile` and specify `BACKLIGHT_ENABLE = no`. + +You can use the `doc/keymap_makefile_example.md` as a template/starting point. + +## The `config.h` file + +There are 2 `config.h` locations: + +* keyboard (`/keyboards//`) +* keymap (`/keyboards//keymaps//`) + +The keyboard `config.h` is included only if the keymap one doesn't exist. The format to use for your custom one [is here](/doc/keymap_config_h_example.h). If you want to override a setting from the parent `config.h` file, you need to do this: + +```c +#undef MY_SETTING +#define MY_SETTING 4 +``` + +For a value of `4` for this imaginary setting. So we `undef` it first, then `define` it. + +You can then override any settings, rather than having to copy and paste the whole thing. + +# Going beyond the keycodes + +Aside from the [basic keycodes](doc/keycode.txt), your keymap can include shortcuts to common operations. + +## Quick aliases to common actions + +Your keymap can include shortcuts to common operations (called "function actions" in tmk). + +These functions work the same way that their `ACTION_*` functions do - they're just quick aliases. To dig into all of the tmk `ACTION_*` functions, please see the [TMK documentation](https://github.com/jackhumbert/qmk_firmware/blob/master/doc/keymap.md#2-action). + +Instead of using `FNx` when defining `ACTION_*` functions, you can use `F(x)` - the benefit here is being able to use more than 32 function actions (up to 4096), if you happen to need them. + +### Switching and toggling layers + +`MO(layer)` - momentary switch to *layer*. As soon as you let go of the key, the layer is deactivated and you pop back out to the previous layer. When you apply this to a key, that same key must be set as `KC_TRNS` on the destination layer. Otherwise, you won't make it back to the original layer when you release the key (and you'll get a keycode sent). You can only switch to layers *above* your current layer. If you're on layer 0 and you use `MO(1)`, that will switch to layer 1 just fine. But if you include `MO(3)` on layer 5, that won't do anything for you -- because layer 3 is lower than layer 5 on the stack. + +`OSL(layer)` - momentary switch to *layer*, as a one-shot operation. So if you have a key that's defined as `OSL(1)`, and you tap that key, then only the very next keystroke would come from layer 1. You would drop back to layer zero immediately after that one keystroke. That's handy if you have a layer full of custom shortcuts -- for example, a dedicated key for closing a window. So you tap your one-shot layer mod, then tap that magic 'close window' key, and keep typing like a boss. Layer 1 would remain active as long as you hold that key down, too (so you can use it like a momentary toggle-layer key with extra powers). + +`LT(layer, kc)` - momentary switch to *layer* when held, and *kc* when tapped. Like `MO()`, this only works upwards in the layer stack (`layer` must be higher than the current layer). + +`TG(layer)` - toggles a layer on or off. As with `MO()`, you should set this key as `KC_TRNS` in the destination layer so that tapping it again actually toggles back to the original layer. Only works upwards in the layer stack. + + +### Fun with modifier keys + +* `LSFT(kc)` - applies left Shift to *kc* (keycode) - `S(kc)` is an alias +* `RSFT(kc)` - applies right Shift to *kc* +* `LCTL(kc)` - applies left Control to *kc* +* `RCTL(kc)` - applies right Control to *kc* +* `LALT(kc)` - applies left Alt to *kc* +* `RALT(kc)` - applies right Alt to *kc* +* `LGUI(kc)` - applies left GUI (command/win) to *kc* +* `RGUI(kc)` - applies right GUI (command/win) to *kc* +* `HYPR(kc)` - applies Hyper (all modifiers) to *kc* +* `MEH(kc)` - applies Meh (all modifiers except Win/Cmd) to *kc* +* `LCAG(kc)` - applies CtrlAltGui to *kc* + +You can also chain these, like this: + + LALT(LCTL(KC_DEL)) -- this makes a key that sends Alt, Control, and Delete in a single keypress. + +The following shortcuts automatically add `LSFT()` to keycodes to get commonly used symbols. Their long names are also available and documented in `/quantum/keymap_common.h`. + + KC_TILD ~ + KC_EXLM ! + 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 | + KC_COLN : + +`OSM(mod)` - this is a "one shot" modifier. So let's say you have your left Shift key defined as `OSM(MOD_LSFT)`. Tap it, let go, and Shift is "on" -- but only for the next character you'll type. So to write "The", you don't need to hold down Shift -- you tap it, tap t, and move on with life. And if you hold down the left Shift key, it just works as a left Shift key, as you would expect (so you could type THE). There's also a magical, secret way to "lock" a modifier by tapping it multiple times. If you want to learn more about that, open an issue. :) + +`MT(mod, kc)` - is *mod* (modifier key - MOD_LCTL, MOD_LSFT) when held, and *kc* when tapped. In other words, you can have a key that sends Esc (or the letter O or whatever) when you tap it, but works as a Control key or a Shift key when you hold it down. + +These are the values you can use for the `mod` in `MT()` and `OSM()` (right-hand modifiers are not available for `MT()`): + + * MOD_LCTL + * MOD_LSFT + * MOD_LALT + * MOD_LGUI + * 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. + +We've added shortcuts to make common modifier/tap (mod-tap) mappings more compact: + + * `CTL_T(kc)` - is LCTL when held and *kc* when tapped + * `SFT_T(kc)` - is LSFT when held and *kc* when tapped + * `ALT_T(kc)` - is LALT when held and *kc* when tapped + * `GUI_T(kc)` - is LGUI when held and *kc* when tapped + * `ALL_T(kc)` - is Hyper (all mods) when held and *kc* when tapped. To read more about what you can do with a Hyper key, see [this blog post by Brett Terpstra](http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/) + * `LCAG_T(kc)` - is CtrlAltGui when held and *kc* when tapped + * `MEH_T(kc)` - is like Hyper, but not as cool -- does not include the Cmd/Win key, so just sends Alt+Ctrl+Shift. + +## Space Cadet Shift: The future, built in + +Steve Losh [described](http://stevelosh.com/blog/2012/10/a-modern-space-cadet/) the Space Cadet Shift quite well. Essentially, you hit the left Shift on its own, and you get an opening parenthesis; hit the right Shift on its own, and you get the closing one. When hit with other keys, the Shift key keeps working as it always does. Yes, it's as cool as it sounds. + +To use it, use `KC_LSPO` (Left Shift, Parens Open) for your left Shift on your keymap, and `KC_RSPC` (Right Shift, Parens Close) for your right Shift. + +It's defaulted to work on US keyboards, but if your layout uses different keys for parenthesis, you can define those in your `config.h` like this: + + #define LSPO_KEY KC_9 + #define RSPC_KEY KC_0 + +You can also choose between different rollover behaviors of the shift keys by defining: + + #define DISABLE_SPACE_CADET_ROLLOVER + +in your `config.h`. Disabling rollover allows you to use the opposite shift key to cancel the space cadet state in the event of an erroneous press instead of emitting a pair of parentheses when the keys are released. + +The only other thing you're going to want to do is create a `Makefile` in your keymap directory and set the following: + +``` +COMMAND_ENABLE = no # Commands for debug and configuration +``` + +This is just to keep the keyboard from going into command mode when you hold both Shift keys at the same time. + +## The Leader key: A new kind of modifier + +If you've ever used Vim, you know what a Leader key is. If not, you're about to discover a wonderful concept. :) Instead of hitting Alt+Shift+W for example (holding down three keys at the same time), what if you could hit a _sequence_ of keys instead? So you'd hit our special modifier (the Leader key), followed by W and then C (just a rapid succession of keys), and something would happen. + +That's what `KC_LEAD` does. Here's an example: + +1. Pick a key on your keyboard you want to use as the Leader key. Assign it the keycode `KC_LEAD`. This key would be dedicated just for this -- it's a single action key, can't be used for anything else. +2. Include the line `#define LEADER_TIMEOUT 300` somewhere in your keymap.c file, probably near the top. The 300 there is 300ms -- that's how long you have for the sequence of keys following the leader. You can tweak this value for comfort, of course. +3. Within your `matrix_scan_user` function, do something like this: + +``` +LEADER_EXTERNS(); + +void matrix_scan_user(void) { + LEADER_DICTIONARY() { + leading = false; + leader_end(); + + SEQ_ONE_KEY(KC_F) { + register_code(KC_S); + unregister_code(KC_S); + } + SEQ_TWO_KEYS(KC_A, KC_S) { + register_code(KC_H); + unregister_code(KC_H); + } + SEQ_THREE_KEYS(KC_A, KC_S, KC_D) { + register_code(KC_LGUI); + register_code(KC_S); + unregister_code(KC_S); + unregister_code(KC_LGUI); + } + } +} +``` + +As you can see, you have three function. you can use - `SEQ_ONE_KEY` for single-key sequences (Leader followed by just one key), and `SEQ_TWO_KEYS` and `SEQ_THREE_KEYS` for longer sequences. Each of these accepts one or more keycodes as arguments. This is an important point: You can use keycodes from **any layer on your keyboard**. That layer would need to be active for the leader macro to fire, obviously. + +## Tap Dance: A single key can do 3, 5, or 100 different things + +Hit the semicolon key once, send a semicolon. Hit it twice, rapidly -- send a colon. Hit it three times, and your keyboard's LEDs do a wild dance. That's just one example of what Tap Dance can do. It's one of the nicest community-contributed features in the firmware, conceived and created by [algernon](https://github.com/algernon) in [#451](https://github.com/jackhumbert/qmk_firmware/pull/451). Here's how algernon describes the feature: + +With this feature one can specify keys that behave differently, based on the amount of times they have been tapped, and when interrupted, they get handled before the interrupter. + +To make it clear how this is different from `ACTION_FUNCTION_TAP`, lets explore a certain setup! We want one key to send `Space` on single tap, but `Enter` on double-tap. + +With `ACTION_FUNCTION_TAP`, it is quite a rain-dance to set this up, and has the problem that when the sequence is interrupted, the interrupting key will be send first. Thus, `SPC a` will result in `a SPC` being sent, if they are typed within `TAPPING_TERM`. With the tap dance feature, that'll come out as `SPC a`, correctly. + +The implementation hooks into two parts of the system, to achieve this: into `process_record_quantum()`, and the matrix scan. We need the latter to be able to time out a tap sequence even when a key is not being pressed, so `SPC` alone will time out and register after `TAPPING_TERM` time. + +But lets start with how to use it, first! + +First, you will need `TAP_DANCE_ENABLE=yes` in your `Makefile`, because the feature is disabled by default. This adds a little less than 1k to the firmware size. Next, you will want to define some tap-dance keys, which is easiest to do with the `TD()` macro, that - similar to `F()`, takes a number, which will later be used as an index into the `tap_dance_actions` array. + +This array specifies what actions shall be taken when a tap-dance key is in action. Currently, there are three possible options: + +* `ACTION_TAP_DANCE_DOUBLE(kc1, kc2)`: Sends the `kc1` keycode when tapped once, `kc2` otherwise. When the key is held, the appropriate keycode is registered: `kc1` when pressed and held, `kc2` when tapped once, then pressed and held. +* `ACTION_TAP_DANCE_FN(fn)`: Calls the specified function - defined in the user keymap - with the final tap count of the tap dance action. +* `ACTION_TAP_DANCE_FN_ADVANCED(on_each_tap_fn, on_dance_finished_fn, on_reset_fn)`: Calls the first specified function - defined in the user keymap - on every tap, the second function on when the dance action finishes (like the previous option), and the last function when the tap dance action resets. + +The first option is enough for a lot of cases, that just want dual roles. For example, `ACTION_TAP_DANCE(KC_SPC, KC_ENT)` will result in `Space` being sent on single-tap, `Enter` otherwise. + +And that's the bulk of it! + +And now, on to the explanation of how it works! + +The main entry point is `process_tap_dance()`, called from `process_record_quantum()`, which is run for every keypress, and our handler gets to run early. This function checks whether the key pressed is a tap-dance key. If it is not, and a tap-dance was in action, we handle that first, and enqueue the newly pressed key. If it is a tap-dance key, then we check if it is the same as the already active one (if there's one active, that is). If it is not, we fire off the old one first, then register the new one. If it was the same, we increment the counter and the timer. + +This means that you have `TAPPING_TERM` time to tap the key again, you do not have to input all the taps within that timeframe. This allows for longer tap counts, with minimal impact on responsiveness. + +Our next stop is `matrix_scan_tap_dance()`. This handles the timeout of tap-dance keys. + +For the sake of flexibility, tap-dance actions can be either a pair of keycodes, or a user function. The latter allows one to handle higher tap counts, or do extra things, like blink the LEDs, fiddle with the backlighting, and so on. This is accomplished by using an union, and some clever macros. + +### Examples + +Here's a simple example for a single definition: + +1. In your `makefile`, add `TAP_DANCE_ENABLE = yes` +2. In your `config.h` (which you can copy from `qmk_firmware/keyboards/planck/config.h` to your keymap directory), add `#define TAPPING_TERM 200` +3. In your `keymap.c` file, define the variables and definitions, then add to your keymap: + +```c +//Tap Dance Declarations +enum { + TD_ESC_CAPS = 0 +}; + +//Tap Dance Definitions +qk_tap_dance_action_t tap_dance_actions[] = { + //Tap once for Esc, twice for Caps Lock + [TD_ESC_CAPS] = ACTION_TAP_DANCE_DOUBLE(KC_ESC, KC_CAPS) +// Other declarations would go here, separated by commas, if you have them +}; + +//In Layer declaration, add tap dance item in place of a key code +TD(TD_ESC_CAPS) +``` + +Here's a more complex example involving custom actions: + +```c +enum { + CT_SE = 0, + CT_CLN, + CT_EGG, + CT_FLSH, +}; + +/* Have the above three on the keymap, TD(CT_SE), etc... */ + +void dance_cln_finished (qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1) { + register_code (KC_RSFT); + register_code (KC_SCLN); + } else { + register_code (KC_SCLN); + } +} + +void dance_cln_reset (qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1) { + unregister_code (KC_RSFT); + unregister_code (KC_SCLN); + } else { + unregister_code (KC_SCLN); + } +} + +void dance_egg (qk_tap_dance_state_t *state, void *user_data) { + if (state->count >= 100) { + SEND_STRING ("Safety dance!"); + reset_tap_dance (state); + } +} + +// on each tap, light up one led, from right to left +// on the forth tap, turn them off from right to left +void dance_flsh_each(qk_tap_dance_state_t *state, void *user_data) { + switch (state->count) { + case 1: + ergodox_right_led_3_on(); + break; + case 2: + ergodox_right_led_2_on(); + break; + case 3: + ergodox_right_led_1_on(); + break; + case 4: + ergodox_right_led_3_off(); + _delay_ms(50); + ergodox_right_led_2_off(); + _delay_ms(50); + ergodox_right_led_1_off(); + } +} + +// on the fourth tap, set the keyboard on flash state +void dance_flsh_finished(qk_tap_dance_state_t *state, void *user_data) { + if (state->count >= 4) { + reset_keyboard(); + reset_tap_dance(state); + } +} + +// if the flash state didnt happen, then turn off leds, left to right +void dance_flsh_reset(qk_tap_dance_state_t *state, void *user_data) { + ergodox_right_led_1_off(); + _delay_ms(50); + ergodox_right_led_2_off(); + _delay_ms(50); + ergodox_right_led_3_off(); +} + +qk_tap_dance_action_t tap_dance_actions[] = { + [CT_SE] = ACTION_TAP_DANCE_DOUBLE (KC_SPC, KC_ENT) + ,[CT_CLN] = ACTION_TAP_DANCE_FN_ADVANCED (NULL, dance_cln_finished, dance_cln_reset) + ,[CT_EGG] = ACTION_TAP_DANCE_FN (dance_egg) + ,[CT_FLSH] = ACTION_TAP_DANCE_FN_ADVANCED (dance_flsh_each, dance_flsh_finished, dance_flsh_reset) +}; +``` + +## Temporarily setting the default layer + +`DF(layer)` - sets default layer to *layer*. The default layer is the one at the "bottom" of the layer stack - the ultimate fallback layer. This currently does not persist over power loss. When you plug the keyboard back in, layer 0 will always be the default. It is theoretically possible to work around that, but that's not what `DF` does. + +## Prevent stuck modifiers + +Consider the following scenario: + +1. Layer 0 has a key defined as Shift. +2. The same key is defined on layer 1 as the letter A. +3. User presses Shift. +4. User switches to layer 1 for whatever reason. +5. User releases Shift, or rather the letter A. +6. User switches back to layer 0. + +Shift was actually never released and is still considered pressed. + +If such situation bothers you add this to your `config.h`: + + #define PREVENT_STUCK_MODIFIERS + +This option uses 5 bytes of memory per every 8 keys on the keyboard +rounded up (5 bits per key). For example on Planck (48 keys) it uses +(48/8)\*5 = 30 bytes. + +## 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();` + +This sends the `` 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();` + +Parallel to `register_code` function, this sends the `` keyup event to the computer. If you don't use this, the key will be held down until it's sent. + +* `layer_on();` + +This will turn on the layer `` - 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();` + +This will turn off the layer ``. + +* `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](/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 128 keypresses. + +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, + }; + +Afterwards create a new layer called `_DYN`: + + #define _DYN 6 /* almost any other free number should be ok */ + +Below these two modifications include the `dynamic_macro.h` header: + + #include "dynamic_macro.h"` + +Then define the `_DYN` layer with the following keys: `DYN_REC_START1`, `DYN_MACRO_PLAY1`,`DYN_REC_START2` and `DYN_MACRO_PLAY2`. It may also contain other keys, it doesn't matter apart from the fact that you won't be able to record these keys in the dynamic macros. + + [_DYN]= { + {_______, DYN_REC_START1, DYN_MACRO_PLAY1, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, DYN_REC_START2, DYN_MACRO_PLAY2, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} + }, + +Add the following code to the very beginning of your `process_record_user()` function: + + if (!process_record_dynamic_macro(keycode, record)) { + return false; + } + +To start recording the macro, press either `DYN_REC_START1` or `DYN_REC_START2`. To finish the recording, press the `_DYN` layer button. The handler awaits specifically for the `MO(_DYN)` keycode as the "stop signal" so please don't use any fancy ways to access this layer, use the regular `MO()` modifier. To replay the macro, press either `DYN_MACRO_PLAY1` or `DYN_MACRO_PLAY2`. + +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: 256; 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. + +## Additional keycode aliases for software-implemented layouts (Colemak, Dvorak, etc) + +Everything is assuming you're in Qwerty (in software) by default, but there is built-in support for using a Colemak or Dvorak layout by including this at the top of your keymap: + + #include + +If you use Dvorak, use `keymap_dvorak.h` instead of `keymap_colemak.h` for this line. After including this line, you will get access to: + + * `CM_*` for all of the Colemak-equivalent characters + * `DV_*` for all of the Dvorak-equivalent characters + +These implementations assume you're using Colemak or Dvorak on your OS, not on your keyboard - this is referred to as a software-implemented layout. If your computer is in Qwerty and your keymap is in Colemak or Dvorak, this is referred to as a firmware-implemented layout, and you won't need these features. + +To give an example, if you're using software-implemented Colemak, and want to get an `F`, you would use `CM_F` - `KC_F` under these same circumstances would result in `T`. + +## Additional language support + +In `quantum/keymap_extras/`, you'll see various language files - these work the same way as the alternative layout ones do. Most are defined by their two letter country/language code followed by an underscore and a 4-letter abbreviation of its name. `FR_UGRV` which will result in a `ù` when using a software-implemented AZERTY layout. It's currently difficult to send such characters in just the firmware (but it's being worked on - see Unicode support). + +## Unicode support + +You can currently send 4 hex digits with your OS-specific modifier key (RALT for OSX with the "Unicode Hex Input" layout) - this is currently limited to supporting one OS at a time, and requires a recompile for switching. 8 digit hex codes are being worked on. The keycode function is `UC(n)`, where *n* is a 4 digit hexidecimal. Enable from the Makefile. + +## Backlight Breathing + +In order to enable backlight breathing, the following line must be added to your config.h file. + + #define BACKLIGHT_BREATHING + +The following function calls are used to control the breathing effect. + +* ```breathing_enable()``` - Enable the free-running breathing effect. +* ```breathing_disable()``` - Disable the free-running breathing effect immediately. +* ```breathing_self_disable()``` - Disable the free-running breathing effect after the current effect ends. +* ```breathing_toggle()``` - Toggle the free-running breathing effect. +* ```breathing_defaults()``` - Reset the speed and brightness settings of the breathing effect. + +The following function calls are used to control the maximum brightness of the breathing effect. + +* ```breathing_intensity_set(value)``` - Set the brightness of the breathing effect when it is at its max value. +* ```breathing_intensity_default()``` - Reset the brightness of the breathing effect to the default value based on the current backlight intensity. + +The following function calls are used to control the cycling speed of the breathing effect. + +* ```breathing_speed_set(value)``` - Set the speed of the breathing effect - how fast it cycles. +* ```breathing_speed_inc(value)``` - Increase the speed of the breathing effect by a fixed value. +* ```breathing_speed_dec(value)``` - Decrease the speed of the breathing effect by a fixed value. +* ```breathing_speed_default()``` - Reset the speed of the breathing effect to the default value. + +The following example shows how to enable the backlight breathing effect when the FUNCTION layer macro button is pressed: + + case MACRO_FUNCTION: + if (record->event.pressed) + { + breathing_speed_set(3); + breathing_enable(); + layer_on(LAYER_FUNCTION); + } + else + { + breathing_speed_set(1); + breathing_self_disable(); + layer_off(LAYER_FUNCTION); + } + break; + +The following example shows how to pulse the backlight on-off-on when the RAISED layer macro button is pressed: + + case MACRO_RAISED: + if (record->event.pressed) + { + layer_on(LAYER_RAISED); + breathing_speed_set(2); + breathing_pulse(); + update_tri_layer(LAYER_LOWER, LAYER_RAISED, LAYER_ADJUST); + } + else + { + layer_off(LAYER_RAISED); + update_tri_layer(LAYER_LOWER, LAYER_RAISED, LAYER_ADJUST); + } + break; + +## Other firmware shortcut keycodes + +* `RESET` - puts the MCU in DFU mode for flashing new firmware (with `make dfu`) +* `DEBUG` - the firmware into debug mode - you'll need hid_listen to see things +* `BL_ON` - turns the backlight on +* `BL_OFF` - turns the backlight off +* `BL_` - sets the backlight to level *n* +* `BL_INC` - increments the backlight level by one +* `BL_DEC` - decrements the backlight level by one +* `BL_TOGG` - toggles the backlight +* `BL_STEP` - steps through the backlight levels + +Enable the backlight from the Makefile. + +# Custom Quantum functions + +All of these functions are available in the `*_kb()` or `*_user()` variety. `kb` ones should only be used in the `/.c` file, and `user` ones should only be used in the `keymap.c`. The keyboard ones call the user ones - it's necessary to keep these calls to allow the keymap functions to work correctly. + +## `void matrix_init_*(void)` + +This function gets called when the matrix is initiated, and can contain start-up code for your keyboard/keymap. + +## `void matrix_scan_*(void)` + +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. + +## `bool process_record_*(uint16_t keycode, keyrecord_t *record)` + +This function gets called on every keypress/release, and is where you can define custom functionality. The return value is whether or not QMK should continue processing the keycode - returning `false` stops the execution. + +The `keycode` variable is whatever is defined in your keymap, eg `MO(1)`, `KC_L`, etc. and can be switch-cased to execute code whenever a particular code is pressed. + +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 + } +} +``` + +The conditional `if (record->event.pressed)` can tell if the key is being pressed or released, and you can execute code based on that. + +## `void led_set_*(uint8_t usb_led)` + +This gets called whenever there is a state change on your host LEDs (eg caps lock, scroll lock, etc). The LEDs are defined as: + +``` +#define USB_LED_NUM_LOCK 0 +#define USB_LED_CAPS_LOCK 1 +#define USB_LED_SCROLL_LOCK 2 +#define USB_LED_COMPOSE 3 +#define USB_LED_KANA 4 +``` + +and can be tested against the `usb_led` with a conditional like `if (usb_led & (1<` script to help get you started - you can simply pass your keyboard's name into the script, and all of the necessary files will be created. The components of each are described below. + +## `/keyboards//config.h` + +The `USB Device descriptor parameter` block contains parameters are used to uniquely identify your keyboard, but they don't really matter to the machine. + +Your `MATRIX_ROWS` and `MATRIX_COLS` are the numbers of rows and cols in your keyboard matrix - this may be different than the number of actual rows and columns on your keyboard. There are some tricks you can pull to increase the number of keys in a given matrix, but most keyboards are pretty straight-forward. + +The `MATRIX_ROW_PINS` and `MATRIX_COL_PINS` are the pins your MCU uses on each row/column. Your schematic (if you have one) will have this information on it, and the values will vary depending on your setup. This is one of the most important things to double-check in getting your keyboard setup correctly. + +For the `DIODE_DIRECTION`, most hand-wiring guides will instruct you to wire the diodes in the `COL2ROW` position, but it's possible that they are in the other - people coming from EasyAVR often use `ROW2COL`. Nothing will function if this is incorrect. + +`BACKLIGHT_PIN` is the pin that your PWM-controlled backlight (if one exists) is hooked-up to. Currently only B5, B6, and B7 are supported. + +`BACKLIGHT_BREATHING` is a fancier backlight feature that adds breathing/pulsing/fading effects to the backlight. It uses the same timer as the normal backlight. These breathing effects must be called by code in your keymap. + +`BACKLIGHT_LEVELS` is how many levels exist for your backlight - max is 15, and they are computed automatically from this number. + +## `/keyboards//Makefile` + +The values at the top likely won't need to be changed, since most boards use the `atmega32u4` chip. The `BOOTLOADER_SIZE` will need to be adjusted based on your MCU type. It's defaulted to the Teensy, since that's the most common controller. Below is quoted from the `Makefile`. + +``` +# Boot Section Size in *bytes* +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +OPT_DEFS += -DBOOTLOADER_SIZE=512 +``` + +At the bottom of the file, you'll find lots of features to turn on and off - all of these options should be set with `?=` to allow for the keymap overrides. `?=` only assigns if the variable was previously undefined. For the full documenation of these features, see the [Makefile options](#makefile-options). + +## `/keyboards//readme.md` + +This is where you'll describe your keyboard - please write as much as you can about it! Talking about default functionality/features is useful here. Feel free to link to external pages/sites if necessary. Images can be included here as well. This file will be rendered into a webpage at qmk.fm/keyboards//. + +## `/keyboards//.c` + +This is where all of the custom logic for your keyboard goes - you may not need to put anything in this file, since a lot of things are configured automatically. All of the `*_kb()` functions are defined here. If you modify them, remember to keep the calls to `*_user()`, or things in the keymaps might not work. You can read more about the functions [here](#custom-quantum-functions-for-keyboards-and-keymaps) + +## `/keyboards//.h` + +Here is where you can (optionally) define your `KEYMAP` function to remap your matrix into a more readable format. With ortholinear boards, this isn't always necessary, but it can help to accomodate the dead spots on your matrix, where there are keys that take up more than one space (2u, staggering, 6.25u, etc). The example shows the difference between the physical keys, and the matrix design: + +``` +#define KEYMAP( \ + k00, k01, k02, \ + k10, k11 \ +) \ +{ \ + { k00, k01, k02 }, \ + { k10, KC_NO, k11 }, \ +} +``` + +Each of the `kxx` variables needs to be unique, and usually follows the format `k`. You can place `KC_NO` where your dead keys are in your matrix. + +# Unit Testing + +If you are new to unit testing, then you can find many good resources on internet. However most of it is scattered around in small pieces here and there, and there's also many different opinions, so I won't give any recommendations. + +Instead I recommend these two books, explaining two different styles of Unit Testing in detail. + +* "Test Driven Development: By Example: Kent Beck" +* "Growing Object-Oriented Software, Guided By Tests: Steve Freeman, Nat Pryce" + +If you prefer videos there are Uncle Bob's [Clean Coders Videos](https://cleancoders.com/), which unfortunately cost quite a bit, especially if you want to watch many of them. But James Shore has a free [Let's Play](http://www.jamesshore.com/Blog/Lets-Play) video series. + +## Google Test and Google Mock +It's possible to Unit Test your code using [Google Test](https://github.com/google/googletest). The Google Test framework also includes another component for writing testing mocks and stubs, called "Google Mock". For information how to write the actual tests, please refer to the documentation on that site. + +## Use of C++ + +Note that Google Test and therefore any test has to be written in C++, even if the rest of the QMK codebases is written in C. This should hopefully not be a problem even if you don't know any C++, since there's quite clear documentation and examples of the required C++ features, and you can write the rest of the test code almost as you would write normal C. Note that some compiler errors which you might get can look quite scary, but just read carefully what it says, and you should be ok. + +One thing to remember, is that you have to append `extern "C"` around all of your C file includes. + +## Adding tests for new or existing features + +If you want to unit test some feature, then take a look at the existing serial_link tests, in the `quantum/serial_link/tests folder`, and follow the steps below to create a similar structure. + +1. If it doesn't already exist, add a test subfolder to the folder containing the feature. +2. Create a `testlist.mk` and a `rules.mk` file in that folder. +3. Include those files from the root folder `testlist.mk`and `build_test.mk` respectively. +4. Add a new name for your testgroup to the `testlist.mk` file. Each group defined there will be a separate executable. And that's how you can support mocking out different parts. Note that it's worth adding some common prefix, just like it's done for the serial_link tests. The reason for that is that the make command allows substring filtering, so this way you can easily run a subset of the tests. +5. Define the source files and required options in the `rules.mk` file. + * `_SRC` for source files + * `_DEFS` for additional defines + * `_INC` for additional include folders +6. Write the tests in a new cpp file inside the test folder you created. That file has to be one of the files included from the `rules.mk` file. + +Note how there's several different tests, each mocking out a separate part. Also note that each of them only compiles the very minimum that's needed for the tests. It's recommend that you try to do the same. For a relevant video check out [Matt Hargett "Advanced Unit Testing in C & C++](https://www.youtube.com/watch?v=Wmy6g-aVgZI) + +## Running the tests + +To run all the tests in the codebase, type `make test`. You can also run test matching a substring by typing `make test-matchingsubstring` Note that the tests are always compiled with the native compiler of your platform, so they are also run like any other program on your computer. + +## Debugging the tests + +If there are problems with the tests, you can find the executable in the `./build/test` folder. You should be able to run those with GDB or a similar debugger. + +## Full Integration tests + +It's not yet possible to do a full integration test, where you would compile the whole firmware and define a keymap that you are going to test. However there are plans for doing that, because writing tests that way would probably be easier, at least for people that are not used to unit testing. + +In that model you would emulate the input, and expect a certain output from the emulated keyboard. From b7533e0abf1739196816519704c50528560b384c Mon Sep 17 00:00:00 2001 From: Erez Zukerman Date: Wed, 12 Oct 2016 22:19:35 -0400 Subject: [PATCH 238/517] Documents `TO`. --- Home.md | 1 + 1 file changed, 1 insertion(+) diff --git a/Home.md b/Home.md index ea20b5e017..6567e347cb 100644 --- a/Home.md +++ b/Home.md @@ -376,6 +376,7 @@ Instead of using `FNx` when defining `ACTION_*` functions, you can use `F(x)` - `TG(layer)` - toggles a layer on or off. As with `MO()`, you should set this key as `KC_TRNS` in the destination layer so that tapping it again actually toggles back to the original layer. Only works upwards in the layer stack. +`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). ### Fun with modifier keys From b22b1fd5fb2b75a451fa35970223e3a3a37d52ad Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Tue, 6 Dec 2016 09:44:22 -0500 Subject: [PATCH 239/517] copy over readme for final time --- Home.md | 362 +++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 345 insertions(+), 17 deletions(-) diff --git a/Home.md b/Home.md index 6567e347cb..b618334dc3 100644 --- a/Home.md +++ b/Home.md @@ -45,19 +45,19 @@ Before you are able to compile, you'll need to install an environment for AVR de ### Windows 10 -It's still recommended to use the method for Vista and later below. The reason for this is that the Windows 10 Subsystem for Linux lacks [USB support](https://wpdev.uservoice.com/forums/266908-command-prompt-console-bash-on-ubuntu-on-windo/suggestions/13355724-unable-to-access-usb-devices-from-bash), so it's not possible to flash the firmware to the keyboard. Please add your vote to the link! +Due to some issues with the "Windows (Vista and later)" instructions below, we now recommend following these instructions if you use Windows, which will allow you to use the Windows Subsystem for Linux to compile the firmware. If you are not using Windows 10 with the Anniversary Update installed (which came out in July 2016), you will need to use one of the other methods, such as Docker, Vagrant, or the instructions for Vista and later. -That said, it's still possible to use it for compilation. And recommended, if you need to compile much, since it's much faster than at least Cygwin (which is also supported, but currently lacking documentation). I haven't tried the method below, so I'm unable to tell. +If you use this method, you will need to use a standalone tool to flash the firmware to the keyboard after you compile it. We recommend the official [QMK Firmware Flasher](https://github.com/jackhumbert/qmk_firmware_flasher/releases). This is because the Windows 10 Subsystem for Linux lacks [libUSB support](https://wpdev.uservoice.com/forums/266908-command-prompt-console-bash-on-ubuntu-on-windo/suggestions/13355724-unable-to-access-usb-devices-from-bash), so it can't access the keyboard's microcontroller. Please add your vote for Microsoft to fix this issue using the link! Here are the steps 1. Install the Windows 10 subsystem for Linux, following [these instructions](http://www.howtogeek.com/249966/how-to-install-and-use-the-linux-bash-shell-on-windows-10/). -2. If you have previously cloned the repository using the normal Git bash, you will need to clean up the line endings. If you have cloned it after 20th of August 2016, you are likely fine. To clean up the line endings do the following - 1. Make sure that you have no changes you haven't committed by running `git status`, if you do commit them first - 2. From within the Git bash run `git rm --cached -r .` - 3. Followed by `git reset --hard` -3. Start the "Bash On Ubuntu On Windows" from the start menu -4. With the bash open, navigate to your Git checkout. The harddisk can be accessed from `/mnt` for example `/mnt/c` for the `c:\` drive. +2. If you have cloned the repository using git before August 20, 2016, clean up the line endings from wherever you currently access git: + 1. Make sure that you have no changes you haven't committed by running `git status`. ANY UNCOMMITTED CHANGES WILL BE PERMANENTLY LOST. + 2. Run `git rm --cached -r .` + 3. Run `git reset --hard` +3. Open "Bash On Ubuntu On Windows" from the start menu +4. With the bash window open, navigate to your copy of the [qmk_firmware repository](https://github.com/jackhumbert/qmk_firmware) using the `cd` command. The harddisks can be accessed from `/mnt/`. For example, your main hard drive (C:) can be accessed by executiing the command `cd /mnt/c`. If your username is John and the qmk_firmware folder is in your Downloads folder, you can move to it with the command `cd /mnt/c/Users/John/Downloads/qmk_firmware`. You can use the Tab key as you go to help you autocomplete the folder names. 5. Run `sudo util/install_dependencies.sh`. 6. After a while the installation will finish, and you are good to go @@ -140,6 +140,9 @@ If this is a bit complex for you, Docker might be the turn-key solution you need docker run -e keymap=gwen -e keyboard=ergodox --rm -v $('pwd'):/qmk:rw edasque/qmk_firmware +# On windows docker seems to have issue with VOLUME tag in Dockerfile, and $('pwd') won't print a windows compliant path, use full path instead like this +docker run -e keymap=default -e keyboard=ergobop --rm -v D:/Users/Sacapuces/Documents/Repositories/qmk:/qmk:rw edasque/qmk_firmware + ``` This will compile the targetted keyboard/keymap and leave it in your QMK directory for you to flash. @@ -238,6 +241,7 @@ You can also add extra options at the end of the make command line, after the ta * `make COLOR=false` - turns off color output * `make SILENT=true` - turns off output besides errors/warnings * `make VERBOSE=true` - outputs all of the gcc stuff (not interesting, unless you need to debug) +* `make EXTRAFLAGS=-E` - Preprocess the code without doing any compiling (useful if you are trying to debug #define commands) The make command itself also has some additional options, type `make --help` for more information. The most useful is probably `-jx`, which specifies that you want to compile using more than one CPU, the `x` represents the number of CPUs that you want to use. Setting that can greatly reduce the compile times, especially if you are compiling many keyboards/keymaps. I usually set it to one less than the number of CPUs that I have, so that I have some left for doing other things while it's compiling. Note that not all operating systems and make versions supports that option. @@ -320,6 +324,18 @@ This enables MIDI sending and receiving with your keyboard. To enter MIDI send m This allows you to send unicode symbols via `UC()` in your keymap. Only codes up to 0x7FFF are currently supported. +`UNICODEMAP_ENABLE` + +This allows sending unicode symbols using `X()` in your keymap. Codes +up to 0xFFFFFFFF are supported, including emojis. You will need to maintain +a separate mapping table in your keymap file. + +Known limitations: +- Under Mac OS, only codes up to 0xFFFF are supported. +- Under Linux ibus, only codes up to 0xFFFFF are supported (but anything important is still under this limit for now). + +Characters out of range supported by the OS will be ignored. + `BLUETOOTH_ENABLE` This allows you to interface with a Bluefruit EZ-key to send keycodes wirelessly. It uses the D2 and D3 pins. @@ -328,6 +344,14 @@ This allows you to interface with a Bluefruit EZ-key to send keycodes wirelessly This allows you output audio on the C6 pin (needs abstracting). See the [audio section](#driving-a-speaker---audio-support) for more information. +`VARIABLE_TRACE` + +Use this to debug changes to variable values, see the [tracing variables](#tracing-variables) section for more information. + +`API_SYSEX_ENABLE` + +This enables using the Quantum SYSEX API to send strings (somewhere?) + ### Customizing Makefile options on a per-keymap basis If your keymap directory has a file called `Makefile` (note the filename), any Makefile options you set in that file will take precedence over other Makefile options for your particular keyboard. @@ -378,6 +402,7 @@ Instead of using `FNx` when defining `ACTION_*` functions, you can use `F(x)` - `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). + ### Fun with modifier keys * `LSFT(kc)` - applies left Shift to *kc* (keycode) - `S(kc)` is an alias @@ -527,7 +552,7 @@ This array specifies what actions shall be taken when a tap-dance key is in acti * `ACTION_TAP_DANCE_DOUBLE(kc1, kc2)`: Sends the `kc1` keycode when tapped once, `kc2` otherwise. When the key is held, the appropriate keycode is registered: `kc1` when pressed and held, `kc2` when tapped once, then pressed and held. * `ACTION_TAP_DANCE_FN(fn)`: Calls the specified function - defined in the user keymap - with the final tap count of the tap dance action. -* `ACTION_TAP_DANCE_FN_ADVANCED(on_each_tap_fn, on_dance_finished_fn, on_reset_fn)`: Calls the first specified function - defined in the user keymap - on every tap, the second function on when the dance action finishes (like the previous option), and the last function when the tap dance action resets. +* `ACTION_TAP_DANCE_FN_ADVANCED(on_each_tap_fn, on_dance_finished_fn, on_dance_reset_fn)`: Calls the first specified function - defined in the user keymap - on every tap, the second function on when the dance action finishes (like the previous option), and the last function when the tap dance action resets. The first option is enough for a lot of cases, that just want dual roles. For example, `ACTION_TAP_DANCE(KC_SPC, KC_ENT)` will result in `Space` being sent on single-tap, `Enter` otherwise. @@ -824,7 +849,7 @@ And then, to assign this macro to a key on your keyboard layout, you just use `M ## 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 128 keypresses. +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`: @@ -865,7 +890,7 @@ Add the following code to the very beginning of your `process_record_user()` fun To start recording the macro, press either `DYN_REC_START1` or `DYN_REC_START2`. To finish the recording, press the `_DYN` layer button. The handler awaits specifically for the `MO(_DYN)` keycode as the "stop signal" so please don't use any fancy ways to access this layer, use the regular `MO()` modifier. To replay the macro, press either `DYN_MACRO_PLAY1` or `DYN_MACRO_PLAY2`. -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: 256; please read the comments for it in the header). +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. @@ -890,7 +915,33 @@ In `quantum/keymap_extras/`, you'll see various language files - these work the ## Unicode support -You can currently send 4 hex digits with your OS-specific modifier key (RALT for OSX with the "Unicode Hex Input" layout) - this is currently limited to supporting one OS at a time, and requires a recompile for switching. 8 digit hex codes are being worked on. The keycode function is `UC(n)`, where *n* is a 4 digit hexidecimal. Enable from the Makefile. +There are three Unicode keymap definition method available in QMK: + +### UNICODE_ENABLE + +Supports Unicode input up to 0xFFFF. The keycode function is `UC(n)` in +keymap file, where *n* is a 4 digit hexadecimal. + +### UNICODEMAP_ENABLE + +Supports Unicode up to 0xFFFFFFFF. You need to maintain a separate mapping +table `const uint32_t PROGMEM unicode_map[] = {...}` in your keymap file. +The keycode function is `X(n)` where *n* is the array index of the mapping +table. + +### UCIS_ENABLE + +TBD + +Unicode input in QMK works by inputing a sequence of characters to the OS, +sort of like macro. Unfortunately, each OS has different ideas on how Unicode is inputted. + +This is the current list of Unicode input method in QMK: + +* UC_OSX: MacOS Unicode Hex Input support. Works only up to 0xFFFF. Disabled by default. To enable: go to System Preferences -> Keyboard -> Input Sources, and enable Unicode Hex. +* UC_LNX: Unicode input method under Linux. Works up to 0xFFFFF. Should work almost anywhere on ibus enabled distros. Without ibus, this works under GTK apps, but rarely anywhere else. +* UC_WIN: (not recommended) Windows built-in Unicode input. To enable: create registry key under `HKEY_CURRENT_USER\Control Panel\Input Method\EnableHexNumpad` of type `REG_SZ` called `EnableHexNumpad`, set its value to 1, and reboot. This method is not recommended because of reliability and compatibility issue, use WinCompose method below instead. +* UC_WINC: Windows Unicode input using WinCompose. Requires [WinCompose](https://github.com/samhocevar/wincompose). Works reliably under many (all?) variations of Windows. ## Backlight Breathing @@ -1115,12 +1166,12 @@ For this mod, you need an unused pin wiring to DI of WS2812 strip. After wiring RGBLIGHT_ENABLE = yes -In order to use the underglow timer functions, you need to have `#define RGBLIGHT_TIMER` in your `config.h`, and have audio disabled (`AUDIO_ENABLE = no` in your Makefile). +In order to use the underglow animation functions, you need to have `#define RGBLIGHT_ANIMATIONS` in your `config.h`. Please add the following options into your config.h, and set them up according your hardware configuration. These settings are for the `F4` pin by default: #define RGB_DI_PIN F4 // The pin your RGB strip is wired to - #define RGBLIGHT_TIMER // Require for fancier stuff (not compatible with audio) + #define RGBLIGHT_ANIMATIONS // Require for fancier stuff (not compatible with audio) #define RGBLED_NUM 14 // Number of LEDs #define RGBLIGHT_HUE_STEP 10 #define RGBLIGHT_SAT_STEP 17 @@ -1136,20 +1187,278 @@ The firmware supports 5 different light effects, and the color (hue, saturation, Please note the USB port can only supply a limited amount of power to the keyboard (500mA by standard, however, modern computer and most usb hubs can provide 700+mA.). According to the data of NeoPixel from Adafruit, 30 WS2812 LEDs require a 5V 1A power supply, LEDs used in this mod should not more than 20. +## PS/2 Mouse Support + +Its possible to hook up a PS/2 mouse (for example touchpads or trackpoints) to your keyboard as a composite device. + +There are three available modes for hooking up PS/2 devices: USART (best), interrupts (better) or busywait (not recommended). + +### Busywait version + +Note: This is not recommended, you may encounter jerky movement or unsent inputs. Please use interrupt or USART version if possible. + +In rules.mk: + +``` +PS2_MOUSE_ENABLE = yes +PS2_USE_BUSYWAIT = yes +``` + +In your keyboard config.h: + +``` +#ifdef PS2_USE_BUSYWAIT +# define PS2_CLOCK_PORT PORTD +# define PS2_CLOCK_PIN PIND +# define PS2_CLOCK_DDR DDRD +# define PS2_CLOCK_BIT 1 +# define PS2_DATA_PORT PORTD +# define PS2_DATA_PIN PIND +# define PS2_DATA_DDR DDRD +# define PS2_DATA_BIT 2 +#endif +``` + +### Interrupt version + +The following example uses D2 for clock and D5 for data. You can use any INT or PCINT pin for clock, and any pin for data. + +In rules.mk: + +``` +PS2_MOUSE_ENABLE = yes +PS2_USE_INT = yes +``` + +In your keyboard config.h: + +``` +#ifdef PS2_USE_INT +#define PS2_CLOCK_PORT PORTD +#define PS2_CLOCK_PIN PIND +#define PS2_CLOCK_DDR DDRD +#define PS2_CLOCK_BIT 2 +#define PS2_DATA_PORT PORTD +#define PS2_DATA_PIN PIND +#define PS2_DATA_DDR DDRD +#define PS2_DATA_BIT 5 + +#define PS2_INT_INIT() do { \ + EICRA |= ((1< Date: Tue, 6 Dec 2016 09:48:37 -0500 Subject: [PATCH 240/517] Updated Home (markdown) --- Home.md | 39 --------------------------------------- 1 file changed, 39 deletions(-) diff --git a/Home.md b/Home.md index b618334dc3..ac0b8cca30 100644 --- a/Home.md +++ b/Home.md @@ -1,42 +1,3 @@ -# Quantum Mechanical Keyboard Firmware - -[![Build Status](https://travis-ci.org/jackhumbert/qmk_firmware.svg?branch=master)](https://travis-ci.org/jackhumbert/qmk_firmware) - -This is a keyboard firmware based on the [tmk_keyboard firmware](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/). - -## Official website - -For an easy-to-read version of this document and the repository, check out [http://qmk.fm](http://qmk.fm). Nicely formatted keyboard and keymap listings are also available there, along with the ability to download .hex files instead of having to setup a build environment and compile them. - -## Included Keyboards - -* [Planck](/keyboards/planck/) -* [Preonic](/keyboards/preonic/) -* [Atomic](/keyboards/atomic/) -* [ErgoDox EZ](/keyboards/ergodox/) -* [Clueboard](/keyboards/clueboard/) -* [Cluepad](/keyboards/cluepad/) - -The project also includes community support for [lots of other keyboards](/keyboards/). - -## Maintainers - -QMK is developed and maintained by Jack Humbert of OLKB with contributions from the community, and of course, [Hasu](https://github.com/tmk). This repo used to be a fork of [TMK](https://github.com/tmk/tmk_keyboard), and we are incredibly grateful for his founding contributions to the firmware. We've had to break the fork due to purely technical reasons - it simply became too different over time, and we've had to start refactoring some of the basic bits and pieces. We are huge fans of TMK and Hasu :) - -This documentation is edited and maintained by Erez Zukerman of ErgoDox EZ. If you spot any typos or inaccuracies, please [open an issue](https://github.com/jackhumbert/qmk_firmware/issues/new). - -The OLKB product firmwares are maintained by [Jack Humbert](https://github.com/jackhumbert), the Ergodox EZ by [Erez Zukerman](https://github.com/ezuk), and the Clueboard by [Zach White](https://github.com/skullydazed). - -## Documentation roadmap - -This is not a tiny project. While this is the main readme, there are many other files you might want to consult. Here are some points of interest: - -* The readme for your own keyboard: This is found under `keyboards//`. So for the ErgoDox EZ, it's [here](keyboards/ergodox/ez/); for the Planck, it's [here](keyboards/planck/) and so on. -* The list of possible keycodes you can use in your keymap is actually spread out in a few different places: - * [doc/keycode.txt](doc/keycode.txt) - an explanation of those same keycodes. - * [quantum/keymap.h](quantum/keymap.h) - this is where the QMK-specific aliases are all set up. Things like the Hyper and Meh key, the Leader key, and all of the other QMK innovations. These are also explained and documented below, but `keymap.h` is where they're actually defined. -* The [TMK documentation](doc/TMK_README.md). QMK is based on TMK, and this explains how it works internally. - # Getting started Before you are able to compile, you'll need to install an environment for AVR development. You'll find the instructions for any OS below. If you find another/better way to set things up from scratch, please consider [making a pull request](https://github.com/jackhumbert/qmk_firmware/pulls) with your changes! From dbf13e9c9827ec9825939aff7b71b0e5ac9cac97 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Tue, 20 Dec 2016 09:51:13 -0500 Subject: [PATCH 241/517] Created Memory write error, use debug for more info (markdown) --- Memory-write-error,-use-debug-for-more-info.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 Memory-write-error,-use-debug-for-more-info.md diff --git a/Memory-write-error,-use-debug-for-more-info.md b/Memory-write-error,-use-debug-for-more-info.md new file mode 100644 index 0000000000..01eb99211d --- /dev/null +++ b/Memory-write-error,-use-debug-for-more-info.md @@ -0,0 +1,14 @@ +In rare circumstances, your keyboard/device can become unwritable, and dfu-programmer will give you an error like this: + + Erasing flash... Success + Checking memory from 0x0 to 0x6FFF... Empty. + Checking memory from 0x0 to 0x607F... Empty. + 0% 100% Programming 0x6080 bytes... + [ X ERROR + Memory write error, use debug for more info. + +Currently the only way to solve this is to [reprogram the chip via ISP](https://www.reddit.com/r/olkb/comments/4rjzen/flashing_error_on_mac_os_x/d52rj8o/). This requires another device to be hooked-up to a couple exposed pins on the PCB. There is a guide on how to do this [here](https://learn.sparkfun.com/tutorials/installing-an-arduino-bootloader), and [this is where things are on the Planck PCB](http://imgur.com/lvbxbHt). + +An example command to flash the board once things are hooked up is: + + avrdude -c usbtiny -p m32u4 -U flash:w:planck_default_rev4.hex \ No newline at end of file From 7571474874990471d449dd91174c5c75b1487370 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Tue, 20 Dec 2016 11:11:45 -0500 Subject: [PATCH 242/517] Updated Memory write error, use debug for more info (markdown) --- Memory-write-error,-use-debug-for-more-info.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/Memory-write-error,-use-debug-for-more-info.md b/Memory-write-error,-use-debug-for-more-info.md index 01eb99211d..7a404106e7 100644 --- a/Memory-write-error,-use-debug-for-more-info.md +++ b/Memory-write-error,-use-debug-for-more-info.md @@ -11,4 +11,11 @@ Currently the only way to solve this is to [reprogram the chip via ISP](https:// An example command to flash the board once things are hooked up is: - avrdude -c usbtiny -p m32u4 -U flash:w:planck_default_rev4.hex \ No newline at end of file + avrdude -c usbtiny -p m32u4 -U flash:w:planck_default_rev4.hex + +Research is still being done on why this happens, but here are some cases: + +* [`make -f Makefile.rn42 dfu` and not the dfu-programmer commands worked for @tybenz](https://github.com/tmk/tmk_keyboard/issues/316) - also see [the hhkb keyboard on tmk](https://github.com/tmk/tmk_keyboard/tree/master/keyboard/hhkb) +* [Doing a force erase works here](https://geekhack.org/index.php?topic=12047.msg1520147#msg1520147) +* [`dfu-programmer atmega32u4 erase --force` works here as well](https://forum.fhem.de/index.php?topic=29777.0) [DE] +* [Unresolved, but some data dumps](https://github.com/dfu-programmer/dfu-programmer/issues/29) \ No newline at end of file From bdca5c22fea486ca40043122db9da2fc4f15381c Mon Sep 17 00:00:00 2001 From: Erez Zukerman Date: Wed, 21 Dec 2016 21:54:04 -0500 Subject: [PATCH 243/517] Language edits --- Memory-write-error,-use-debug-for-more-info.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Memory-write-error,-use-debug-for-more-info.md b/Memory-write-error,-use-debug-for-more-info.md index 7a404106e7..adef2601f0 100644 --- a/Memory-write-error,-use-debug-for-more-info.md +++ b/Memory-write-error,-use-debug-for-more-info.md @@ -1,4 +1,4 @@ -In rare circumstances, your keyboard/device can become unwritable, and dfu-programmer will give you an error like this: +In rare circumstances, your keyboard/device can become unwritable, and `dfu-programmer` will give you an error like this: Erasing flash... Success Checking memory from 0x0 to 0x6FFF... Empty. @@ -7,7 +7,7 @@ In rare circumstances, your keyboard/device can become unwritable, and dfu-progr [ X ERROR Memory write error, use debug for more info. -Currently the only way to solve this is to [reprogram the chip via ISP](https://www.reddit.com/r/olkb/comments/4rjzen/flashing_error_on_mac_os_x/d52rj8o/). This requires another device to be hooked-up to a couple exposed pins on the PCB. There is a guide on how to do this [here](https://learn.sparkfun.com/tutorials/installing-an-arduino-bootloader), and [this is where things are on the Planck PCB](http://imgur.com/lvbxbHt). +Currently the only way to solve this is to [reprogram the chip via ISP](https://www.reddit.com/r/olkb/comments/4rjzen/flashing_error_on_mac_os_x/d52rj8o/). This requires another device to be hooked up to a couple of exposed pins on the PCB. There is a guide on how to do this [here](https://learn.sparkfun.com/tutorials/installing-an-arduino-bootloader), and [this is where things are on the Planck PCB](http://imgur.com/lvbxbHt). An example command to flash the board once things are hooked up is: From 4587248cda848fd15b72a92d8bd6b58a69b365d1 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Fri, 30 Dec 2016 11:09:58 -0500 Subject: [PATCH 244/517] add warning to install_dep --- Home.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Home.md b/Home.md index ac0b8cca30..352fc9825b 100644 --- a/Home.md +++ b/Home.md @@ -19,7 +19,7 @@ Here are the steps 3. Run `git reset --hard` 3. Open "Bash On Ubuntu On Windows" from the start menu 4. With the bash window open, navigate to your copy of the [qmk_firmware repository](https://github.com/jackhumbert/qmk_firmware) using the `cd` command. The harddisks can be accessed from `/mnt/`. For example, your main hard drive (C:) can be accessed by executiing the command `cd /mnt/c`. If your username is John and the qmk_firmware folder is in your Downloads folder, you can move to it with the command `cd /mnt/c/Users/John/Downloads/qmk_firmware`. You can use the Tab key as you go to help you autocomplete the folder names. -5. Run `sudo util/install_dependencies.sh`. +5. Run `sudo util/install_dependencies.sh`. **This will run `apt-get upgrade`.** 6. After a while the installation will finish, and you are good to go **Note** From time to time, the dependencies might change, so just run `install_dependencies.sh` again if things are not working. @@ -60,7 +60,7 @@ If you are going to flash Infinity based keyboards you will also need dfu-util ### Linux -To ensure you are always up to date, you can just run `sudo util/install_dependencies.sh`. That should always install all the dependencies needed. +To ensure you are always up to date, you can just run `sudo util/install_dependencies.sh`. That should always install all the dependencies needed. **This will run `apt-get upgrade`.** You can also install things manually, but this documentation might not be always up to date with all requirements. From 166f428a2ba06380980e8d77fce4a51b0dfd3907 Mon Sep 17 00:00:00 2001 From: Balz Guenat Date: Mon, 9 Jan 2017 16:29:04 +0100 Subject: [PATCH 245/517] Updated Home (markdown) --- Home.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Home.md b/Home.md index 352fc9825b..c51cefc08d 100644 --- a/Home.md +++ b/Home.md @@ -303,7 +303,7 @@ This allows you to interface with a Bluefruit EZ-key to send keycodes wirelessly `AUDIO_ENABLE` -This allows you output audio on the C6 pin (needs abstracting). See the [audio section](#driving-a-speaker---audio-support) for more information. +This allows you output audio on the C6 pin (needs abstracting). See the [audio section](#audio-output-from-a-speaker) for more information. `VARIABLE_TRACE` From 8d61e884f2131dc272e4443026399dcef902fe1d Mon Sep 17 00:00:00 2001 From: Noah Andrews Date: Tue, 10 Jan 2017 14:58:56 -0500 Subject: [PATCH 246/517] Fix dfu-programmer link --- Home.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Home.md b/Home.md index c51cefc08d..c7a138e65b 100644 --- a/Home.md +++ b/Home.md @@ -52,7 +52,7 @@ You can also try these instructions: 1. Install Xcode from the App Store. 2. Install the Command Line Tools from `Xcode->Preferences->Downloads`. -3. Install [DFU-Programmer][dfu-prog]. +3. Install [DFU-Programmer](https://dfu-programmer.github.io/). If you are going to flash Infinity based keyboards you will also need dfu-util From 67868d39f8c4b98269e766a93ee6c2fb65418222 Mon Sep 17 00:00:00 2001 From: Christopher Browne Date: Wed, 11 Jan 2017 18:21:41 -0500 Subject: [PATCH 247/517] Created Build Options (org) --- Build-Options.org | 78 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 Build-Options.org diff --git a/Build-Options.org b/Build-Options.org new file mode 100644 index 0000000000..50174381c6 --- /dev/null +++ b/Build-Options.org @@ -0,0 +1,78 @@ +There are several Build Options commonly configured in the Makefile. Various of these will cause the firmware to be substantially larger. + +** BOOTMAGIC_ENABLE + +This controls whether or not Virtual DIP switch configuration is supported. (+1000 bytes) + +Seldom used (only in one Planck keymap) + +** MOUSEKEY_ENABLE + +Should some keys simulate mouse activity? (+4700 bytes) + +Frequently used in Planck keymaps. + +** EXTRAKEY_ENABLE +Controls whether keys for audio and system control are supported. (+450 bytes) + +Frequently used in Planck keymaps. + +** CONSOLE_ENABLE +Is a debugging console enabled? (+400 bytes) + +Infrequently used in Planck keymaps. + +** COMMAND_ENABLE +Support commands for debug and configuration + +Frequently used +** NKRO_ENABLE + +Nkey Rollover - if this doesn't work, see here: [[https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work][TMK FAQ on NKRO]] + +Nearly always enabled. + +** BACKLIGHT_ENABLE +Enable keyboard backlight functionality + +Often enabled + +** MIDI_ENABLE + +MIDI controls + +Seldom enabled. + +** AUDIO_ENABLE +Support audio output on port C6 + +Enabled fairly often + +** UNICODE_ENABLE +Enable direct generation of Unicode output + +Rarely enabled + +** BLUETOOTH_ENABLE + +Enable Bluetooth with the Adafruit EZ-Key HID + +Only supported on GH60 keyboards with additional Bluetooth HID addon. + +** RGBLIGHT_ENABLE + +Enable WS2812 RGB underlight. Do not enable this with audio at the same time. + +Rarely enabled. + +** API_SYSEX_ENABLE + +Enable SYSEX API (+5390 bytes) + +This may be useful eventually to enable having events published between keyboard and desktop. + +** SLEEP_LED_ENABLE + +Breathing sleep LED during USB suspend + +It is recommended to not enable SLEEP_LED_ENABLE as it uses the same timer as BACKLIGHT_ENABLE From e7fb34a910ff9038a3f172c67c181239d1831301 Mon Sep 17 00:00:00 2001 From: Christopher Browne Date: Wed, 11 Jan 2017 18:25:02 -0500 Subject: [PATCH 248/517] Updated Build Options (org) --- Build-Options.org | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Build-Options.org b/Build-Options.org index 50174381c6..2e7532ce63 100644 --- a/Build-Options.org +++ b/Build-Options.org @@ -1,4 +1,6 @@ -There are several Build Options commonly configured in the Makefile. Various of these will cause the firmware to be substantially larger. +There are several Build Options commonly configured in the Makefile. If you build a custom keymap with your own ~keymap.c~ and ~Makefile~, you will need to determine which of these should be enabled. + +Various of these will cause the firmware to be substantially larger; enabling all of them is probably not possible as the aggregate consumes more memory than is available on the Atmel32U4 used on the Planck. ** BOOTMAGIC_ENABLE @@ -7,7 +9,6 @@ This controls whether or not Virtual DIP switch configuration is supported. (+10 Seldom used (only in one Planck keymap) ** MOUSEKEY_ENABLE - Should some keys simulate mouse activity? (+4700 bytes) Frequently used in Planck keymaps. @@ -26,8 +27,8 @@ Infrequently used in Planck keymaps. Support commands for debug and configuration Frequently used -** NKRO_ENABLE +** NKRO_ENABLE Nkey Rollover - if this doesn't work, see here: [[https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work][TMK FAQ on NKRO]] Nearly always enabled. From 1cefc940825a4db7ec18d6133584e9e3d1333c9e Mon Sep 17 00:00:00 2001 From: Christopher Browne Date: Wed, 11 Jan 2017 18:36:08 -0500 Subject: [PATCH 249/517] Destroyed Build Options (org) --- Build-Options.org | 79 ----------------------------------------------- 1 file changed, 79 deletions(-) delete mode 100644 Build-Options.org diff --git a/Build-Options.org b/Build-Options.org deleted file mode 100644 index 2e7532ce63..0000000000 --- a/Build-Options.org +++ /dev/null @@ -1,79 +0,0 @@ -There are several Build Options commonly configured in the Makefile. If you build a custom keymap with your own ~keymap.c~ and ~Makefile~, you will need to determine which of these should be enabled. - -Various of these will cause the firmware to be substantially larger; enabling all of them is probably not possible as the aggregate consumes more memory than is available on the Atmel32U4 used on the Planck. - -** BOOTMAGIC_ENABLE - -This controls whether or not Virtual DIP switch configuration is supported. (+1000 bytes) - -Seldom used (only in one Planck keymap) - -** MOUSEKEY_ENABLE -Should some keys simulate mouse activity? (+4700 bytes) - -Frequently used in Planck keymaps. - -** EXTRAKEY_ENABLE -Controls whether keys for audio and system control are supported. (+450 bytes) - -Frequently used in Planck keymaps. - -** CONSOLE_ENABLE -Is a debugging console enabled? (+400 bytes) - -Infrequently used in Planck keymaps. - -** COMMAND_ENABLE -Support commands for debug and configuration - -Frequently used - -** NKRO_ENABLE -Nkey Rollover - if this doesn't work, see here: [[https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work][TMK FAQ on NKRO]] - -Nearly always enabled. - -** BACKLIGHT_ENABLE -Enable keyboard backlight functionality - -Often enabled - -** MIDI_ENABLE - -MIDI controls - -Seldom enabled. - -** AUDIO_ENABLE -Support audio output on port C6 - -Enabled fairly often - -** UNICODE_ENABLE -Enable direct generation of Unicode output - -Rarely enabled - -** BLUETOOTH_ENABLE - -Enable Bluetooth with the Adafruit EZ-Key HID - -Only supported on GH60 keyboards with additional Bluetooth HID addon. - -** RGBLIGHT_ENABLE - -Enable WS2812 RGB underlight. Do not enable this with audio at the same time. - -Rarely enabled. - -** API_SYSEX_ENABLE - -Enable SYSEX API (+5390 bytes) - -This may be useful eventually to enable having events published between keyboard and desktop. - -** SLEEP_LED_ENABLE - -Breathing sleep LED during USB suspend - -It is recommended to not enable SLEEP_LED_ENABLE as it uses the same timer as BACKLIGHT_ENABLE From 942b78e8c2406f0631a25f21a166c74a4ef21f3d Mon Sep 17 00:00:00 2001 From: Christopher Browne Date: Wed, 11 Jan 2017 18:36:44 -0500 Subject: [PATCH 250/517] Updated Home (markdown) --- Home.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Home.md b/Home.md index c7a138e65b..2b9527bed2 100644 --- a/Home.md +++ b/Home.md @@ -229,12 +229,14 @@ For keyboards and subprojects, the make files are split in two parts `Makefile` ### Makefile options -Set the variables to `no` to disable them, and `yes` to enable them. +Set these variables to `no` to disable them, and `yes` to enable them. `BOOTMAGIC_ENABLE` This allows you to hold a key and the salt key (space by default) and have access to a various EEPROM settings that persist over power loss. It's advised you keep this disabled, as the settings are often changed by accident, and produce confusing results that makes it difficult to debug. It's one of the more common problems encountered in help sessions. +Consumes about 1000 bytes. + `MOUSEKEY_ENABLE` This gives you control over cursor movements and clicks via keycodes/custom functions. @@ -259,6 +261,8 @@ To see the text, open `hid_listen` and enjoy looking at your printed messages. **NOTE:** Do not include *uprint* messages in anything other than your keymap code. It must not be used within the QMK system framework. Otherwise, you will bloat other people's .hex files. +Consumes about 400 bytes. + `COMMAND_ENABLE` This enables magic commands, typically fired with the default magic key combo `LSHIFT+RSHIFT+KEY`. Magic commands include turning on debugging messages (`MAGIC+D`) or temporarily toggling NKRO (`MAGIC+N`). @@ -313,6 +317,8 @@ Use this to debug changes to variable values, see the [tracing variables](#traci This enables using the Quantum SYSEX API to send strings (somewhere?) +This consumes about 5390 bytes. + ### Customizing Makefile options on a per-keymap basis If your keymap directory has a file called `Makefile` (note the filename), any Makefile options you set in that file will take precedence over other Makefile options for your particular keyboard. From 032712866f0b280b464a1168bfe7d632027075f5 Mon Sep 17 00:00:00 2001 From: Noah Andrews Date: Fri, 13 Jan 2017 10:21:47 -0500 Subject: [PATCH 251/517] Link correctly to keycode.txt --- Home.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Home.md b/Home.md index 2b9527bed2..0c33a425b1 100644 --- a/Home.md +++ b/Home.md @@ -347,7 +347,7 @@ You can then override any settings, rather than having to copy and paste the who # Going beyond the keycodes -Aside from the [basic keycodes](doc/keycode.txt), your keymap can include shortcuts to common operations. +Aside from the [basic keycodes](https://github.com/jackhumbert/qmk_firmware/blob/master/doc/keycode.txt), your keymap can include shortcuts to common operations. ## Quick aliases to common actions From b420185f5bc67f46d4733e52bd0ee01e98e75fd0 Mon Sep 17 00:00:00 2001 From: Erez Zukerman Date: Thu, 19 Jan 2017 20:38:13 -0500 Subject: [PATCH 252/517] Added KC_QUES, updated file path. --- Home.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Home.md b/Home.md index 0c33a425b1..60a80a7cae 100644 --- a/Home.md +++ b/Home.md @@ -388,10 +388,11 @@ You can also chain these, like this: LALT(LCTL(KC_DEL)) -- this makes a key that sends Alt, Control, and Delete in a single keypress. -The following shortcuts automatically add `LSFT()` to keycodes to get commonly used symbols. Their long names are also available and documented in `/quantum/keymap_common.h`. +The following shortcuts automatically add `LSFT()` to keycodes to get commonly used symbols. Their long names are also available and documented in `quantum/quantum_keycodes.h`. KC_TILD ~ KC_EXLM ! + KC_QUES ? KC_AT @ KC_HASH # KC_DLR $ From 228e4add0b648c23ffa9ccdf4731e4759e81d46a Mon Sep 17 00:00:00 2001 From: skullydazed Date: Fri, 27 Jan 2017 10:02:33 -0800 Subject: [PATCH 253/517] Created License Clarification (markdown) --- License-Clarification.md | 124 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 124 insertions(+) create mode 100644 License-Clarification.md diff --git a/License-Clarification.md b/License-Clarification.md new file mode 100644 index 0000000000..5943b487b7 --- /dev/null +++ b/License-Clarification.md @@ -0,0 +1,124 @@ +# Overview + +As raised in #1038 and other issues, the licensing status of QMK is not clear. In an effort to remove ambiguity and to clarify the licensing status of the quantum code we are identifying the providence of our source code files and clarifying what license applies to each one. + +# Files + +## quantum/analog.c +## quantum/analog.h +## quantum/api/api_sysex.c +## quantum/api/api_sysex.h +## quantum/api.c +## quantum/api.h +## quantum/audio/audio.c +## quantum/audio/audio.h +## quantum/audio/audio_pwm.c +## quantum/audio/luts.c +## quantum/audio/luts.h +## quantum/audio/musical_notes.h +## quantum/audio/song_list.h +## quantum/audio/voices.c +## quantum/audio/voices.h +## quantum/audio/wave.h +## quantum/config_common.h +## quantum/dynamic_macro.h +## quantum/keycode_config.c +## quantum/keycode_config.h +## quantum/keymap.h +## quantum/keymap_common.c +## quantum/keymap_extras/keymap_bepo.h +## quantum/keymap_extras/keymap_br_abnt2.h +## quantum/keymap_extras/keymap_canadian_multilingual.h +## quantum/keymap_extras/keymap_colemak.h +## quantum/keymap_extras/keymap_dvorak.h +## quantum/keymap_extras/keymap_dvp.h +## quantum/keymap_extras/keymap_fr_ch.h +## quantum/keymap_extras/keymap_french.h +## quantum/keymap_extras/keymap_french_osx.h +## quantum/keymap_extras/keymap_german.h +## quantum/keymap_extras/keymap_german_ch.h +## quantum/keymap_extras/keymap_german_osx.h +## quantum/keymap_extras/keymap_jp.h +## quantum/keymap_extras/keymap_neo2.h +## quantum/keymap_extras/keymap_nordic.h +## quantum/keymap_extras/keymap_norwegian.h +## quantum/keymap_extras/keymap_plover.h +## quantum/keymap_extras/keymap_russian.h +## quantum/keymap_extras/keymap_spanish.h +## quantum/keymap_extras/keymap_uk.h +## quantum/keymap_extras/keymap_unicode_cyrillic.h +## quantum/light_ws2812.c +## quantum/light_ws2812.h +## quantum/matrix.c +## quantum/pincontrol.h +## quantum/process_keycode/process_chording.c +## quantum/process_keycode/process_chording.h +## quantum/process_keycode/process_leader.c +## quantum/process_keycode/process_leader.h +## quantum/process_keycode/process_midi.c +## quantum/process_keycode/process_midi.h +## quantum/process_keycode/process_music.c +## quantum/process_keycode/process_music.h +## quantum/process_keycode/process_printer.c +## quantum/process_keycode/process_printer.h +## quantum/process_keycode/process_printer_bb.c +## quantum/process_keycode/process_tap_dance.c +## quantum/process_keycode/process_tap_dance.h +## quantum/process_keycode/process_unicode.c +## quantum/process_keycode/process_unicode.h +## quantum/quantum.c +## quantum/quantum.h +## quantum/quantum_keycodes.h +## quantum/rgblight.c +## quantum/rgblight.h +## quantum/serial_link/LICENSE +## quantum/serial_link/protocol/byte_stuffer.c +## quantum/serial_link/protocol/byte_stuffer.h +## quantum/serial_link/protocol/frame_router.c +## quantum/serial_link/protocol/frame_router.h +## quantum/serial_link/protocol/frame_validator.c +## quantum/serial_link/protocol/frame_validator.h +## quantum/serial_link/protocol/physical.h +## quantum/serial_link/protocol/transport.c +## quantum/serial_link/protocol/transport.h +## quantum/serial_link/protocol/triple_buffered_object.c +## quantum/serial_link/protocol/triple_buffered_object.h +## quantum/serial_link/README.md +## quantum/serial_link/system/serial_link.c +## quantum/serial_link/system/serial_link.h +## quantum/serial_link/tests/byte_stuffer_tests.cpp +## quantum/serial_link/tests/frame_router_tests.cpp +## quantum/serial_link/tests/frame_validator_tests.cpp +## quantum/serial_link/tests/Makefile +## quantum/serial_link/tests/rules.mk +## quantum/serial_link/tests/testlist.mk +## quantum/serial_link/tests/transport_tests.cpp +## quantum/serial_link/tests/triple_buffered_object_tests.cpp +## quantum/template/config.h +## quantum/template/keymaps/default/config.h +## quantum/template/keymaps/default/keymap.c +## quantum/template/keymaps/default/Makefile +## quantum/template/keymaps/default/readme.md +## quantum/template/Makefile +## quantum/template/readme.md +## quantum/template/rules.mk +## quantum/template/template.c +## quantum/template/template.h +## quantum/tools/eeprom_reset.hex +## quantum/tools/readme.md +## quantum/variable_trace.c +## quantum/variable_trace.h +## quantum/version.h +## quantum/visualizer/example_integration/callbacks.c +## quantum/visualizer/example_integration/gfxconf.h +## quantum/visualizer/example_integration/lcd_backlight_hal.c +## quantum/visualizer/example_integration/visualizer_user.c +## quantum/visualizer/lcd_backlight.c +## quantum/visualizer/lcd_backlight.h +## quantum/visualizer/led_test.c +## quantum/visualizer/led_test.h +## quantum/visualizer/LICENSE.md +## quantum/visualizer/readme.md +## quantum/visualizer/visualizer.c +## quantum/visualizer/visualizer.h +## quantum/visualizer/visualizer.mk \ No newline at end of file From 4bba3be825bc9682d1e94e9ee9919cd195571e74 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Fri, 27 Jan 2017 10:35:54 -0800 Subject: [PATCH 254/517] Updated License Clarification (markdown) --- License-Clarification.md | 853 +++++++++++++++++++++++++++++++++------ 1 file changed, 733 insertions(+), 120 deletions(-) diff --git a/License-Clarification.md b/License-Clarification.md index 5943b487b7..55058bf53f 100644 --- a/License-Clarification.md +++ b/License-Clarification.md @@ -2,123 +2,736 @@ As raised in #1038 and other issues, the licensing status of QMK is not clear. In an effort to remove ambiguity and to clarify the licensing status of the quantum code we are identifying the providence of our source code files and clarifying what license applies to each one. -# Files - -## quantum/analog.c -## quantum/analog.h -## quantum/api/api_sysex.c -## quantum/api/api_sysex.h -## quantum/api.c -## quantum/api.h -## quantum/audio/audio.c -## quantum/audio/audio.h -## quantum/audio/audio_pwm.c -## quantum/audio/luts.c -## quantum/audio/luts.h -## quantum/audio/musical_notes.h -## quantum/audio/song_list.h -## quantum/audio/voices.c -## quantum/audio/voices.h -## quantum/audio/wave.h -## quantum/config_common.h -## quantum/dynamic_macro.h -## quantum/keycode_config.c -## quantum/keycode_config.h -## quantum/keymap.h -## quantum/keymap_common.c -## quantum/keymap_extras/keymap_bepo.h -## quantum/keymap_extras/keymap_br_abnt2.h -## quantum/keymap_extras/keymap_canadian_multilingual.h -## quantum/keymap_extras/keymap_colemak.h -## quantum/keymap_extras/keymap_dvorak.h -## quantum/keymap_extras/keymap_dvp.h -## quantum/keymap_extras/keymap_fr_ch.h -## quantum/keymap_extras/keymap_french.h -## quantum/keymap_extras/keymap_french_osx.h -## quantum/keymap_extras/keymap_german.h -## quantum/keymap_extras/keymap_german_ch.h -## quantum/keymap_extras/keymap_german_osx.h -## quantum/keymap_extras/keymap_jp.h -## quantum/keymap_extras/keymap_neo2.h -## quantum/keymap_extras/keymap_nordic.h -## quantum/keymap_extras/keymap_norwegian.h -## quantum/keymap_extras/keymap_plover.h -## quantum/keymap_extras/keymap_russian.h -## quantum/keymap_extras/keymap_spanish.h -## quantum/keymap_extras/keymap_uk.h -## quantum/keymap_extras/keymap_unicode_cyrillic.h -## quantum/light_ws2812.c -## quantum/light_ws2812.h -## quantum/matrix.c -## quantum/pincontrol.h -## quantum/process_keycode/process_chording.c -## quantum/process_keycode/process_chording.h -## quantum/process_keycode/process_leader.c -## quantum/process_keycode/process_leader.h -## quantum/process_keycode/process_midi.c -## quantum/process_keycode/process_midi.h -## quantum/process_keycode/process_music.c -## quantum/process_keycode/process_music.h -## quantum/process_keycode/process_printer.c -## quantum/process_keycode/process_printer.h -## quantum/process_keycode/process_printer_bb.c -## quantum/process_keycode/process_tap_dance.c -## quantum/process_keycode/process_tap_dance.h -## quantum/process_keycode/process_unicode.c -## quantum/process_keycode/process_unicode.h -## quantum/quantum.c -## quantum/quantum.h -## quantum/quantum_keycodes.h -## quantum/rgblight.c -## quantum/rgblight.h -## quantum/serial_link/LICENSE -## quantum/serial_link/protocol/byte_stuffer.c -## quantum/serial_link/protocol/byte_stuffer.h -## quantum/serial_link/protocol/frame_router.c -## quantum/serial_link/protocol/frame_router.h -## quantum/serial_link/protocol/frame_validator.c -## quantum/serial_link/protocol/frame_validator.h -## quantum/serial_link/protocol/physical.h -## quantum/serial_link/protocol/transport.c -## quantum/serial_link/protocol/transport.h -## quantum/serial_link/protocol/triple_buffered_object.c -## quantum/serial_link/protocol/triple_buffered_object.h -## quantum/serial_link/README.md -## quantum/serial_link/system/serial_link.c -## quantum/serial_link/system/serial_link.h -## quantum/serial_link/tests/byte_stuffer_tests.cpp -## quantum/serial_link/tests/frame_router_tests.cpp -## quantum/serial_link/tests/frame_validator_tests.cpp -## quantum/serial_link/tests/Makefile -## quantum/serial_link/tests/rules.mk -## quantum/serial_link/tests/testlist.mk -## quantum/serial_link/tests/transport_tests.cpp -## quantum/serial_link/tests/triple_buffered_object_tests.cpp -## quantum/template/config.h -## quantum/template/keymaps/default/config.h -## quantum/template/keymaps/default/keymap.c -## quantum/template/keymaps/default/Makefile -## quantum/template/keymaps/default/readme.md -## quantum/template/Makefile -## quantum/template/readme.md -## quantum/template/rules.mk -## quantum/template/template.c -## quantum/template/template.h -## quantum/tools/eeprom_reset.hex -## quantum/tools/readme.md -## quantum/variable_trace.c -## quantum/variable_trace.h -## quantum/version.h -## quantum/visualizer/example_integration/callbacks.c -## quantum/visualizer/example_integration/gfxconf.h -## quantum/visualizer/example_integration/lcd_backlight_hal.c -## quantum/visualizer/example_integration/visualizer_user.c -## quantum/visualizer/lcd_backlight.c -## quantum/visualizer/lcd_backlight.h -## quantum/visualizer/led_test.c -## quantum/visualizer/led_test.h -## quantum/visualizer/LICENSE.md -## quantum/visualizer/readme.md -## quantum/visualizer/visualizer.c -## quantum/visualizer/visualizer.h -## quantum/visualizer/visualizer.mk \ No newline at end of file + +## quantum/analog.c + +* 46e7fb2d3ccd699c0a1b1fd9d02860b1f2a44141 Mon Oct 26 14:49:46 2015 -0400 + +## quantum/analog.h + +* 46e7fb2d3ccd699c0a1b1fd9d02860b1f2a44141 Mon Oct 26 14:49:46 2015 -0400 + +## quantum/api.c + +* 7edac212c8ed8442bf4207e70dc8194631b2bf27 Sat Nov 26 15:37:46 2016 -0500 +* 06c64bbff3e228df542149acde64eadaf59b9b0f Mon Dec 19 11:18:18 2016 -0500 + +## quantum/api.h + +* 7edac212c8ed8442bf4207e70dc8194631b2bf27 Sat Nov 26 15:37:46 2016 -0500 + +## quantum/config_common.h + +* 35a81f5b8b081e1607a7c04489b01f551c3213cc Mon Oct 26 16:32:37 2015 -0400 +* b36e532b5e0eef219f33075e6e60b68d104484ee Sat Jun 4 00:10:47 2016 -0400 + +## quantum/dynamic_macro.h + +* 39e8e61258b51a2c33a94dd877e983f0b1dae0c1 Thu Aug 18 01:37:13 2016 +0200 +* 70f32842e5d94f14d05c1f9adcb1b1144a25a132 Sun Oct 9 12:52:39 2016 +0200 + +## quantum/keycode_config.c + +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 + +## quantum/keycode_config.h + +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 +* 4d4f7684e684bec319f166121463a88cd4a62703 Fri Jul 1 17:04:53 2016 +0300 +* 558f3ec1eb325caf706efc15e2fab26121aba442 Tue Sep 6 23:19:01 2016 -0500 + +## quantum/keymap.h + +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 +* 76076db72545bbb649f11394a12721f61579527f Mon Jun 20 22:36:36 2016 -0400 +* 1a0bac8bccf0e156d2f3c5f14a7214f9677b6370 Tue Jun 21 17:42:29 2016 -0400 +* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 +* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 +* 4d4f7684e684bec319f166121463a88cd4a62703 Fri Jul 1 17:04:53 2016 +0300 +* 50c686587ed49d8079ba1b11d45ceb6a55d6cd4b Thu Jul 7 23:34:33 2016 -0400 +* e692ebf86a962e90c51302e7b17a953ea2858f79 Fri Aug 12 20:38:26 2016 +0900 +* 558f3ec1eb325caf706efc15e2fab26121aba442 Tue Sep 6 23:19:01 2016 -0500 +* 1048a588c750e27ff0f900cd6aaf670e034086d0 Fri Oct 7 17:15:11 2016 +0200 +* 5b2e455d3b71bfb90754930d1f22d3e8ce98b927 Mon Oct 10 00:46:20 2016 +0700 +* e27a754b70434de88a37c4a572e4ca5f7730ff58 Wed Oct 12 22:18:27 2016 -0400 +* 5f91fb413624781ac79db641549b9e08753c04b5 Sun Oct 16 16:03:33 2016 -0400 +* 01038ab54ca6c2858ea9e856c717a1129ffe4156 Fri Dec 23 21:51:11 2016 +0200 +* d8a608f3ff4cb4d73cd57be500fd9881e230099d Thu Dec 29 18:28:48 2016 +1100 + +## quantum/keymap_common.c + +* 46e7fb2d3ccd699c0a1b1fd9d02860b1f2a44141 Mon Oct 26 14:49:46 2015 -0400 + +## quantum/light_ws2812.c + +* ba9ac457b2159097ecfd9848c5171c52e3a68260 Sun Jan 24 17:05:47 2016 -0800 + +## quantum/light_ws2812.h + +* ba9ac457b2159097ecfd9848c5171c52e3a68260 Sun Jan 24 17:05:47 2016 -0800 + +## quantum/matrix.c + +* 46e7fb2d3ccd699c0a1b1fd9d02860b1f2a44141 Mon Oct 26 14:49:46 2015 -0400 + +## quantum/pincontrol.h + +* 8485bb34d2e291db5b6c81f892850da1cdca37ba Sun Nov 27 22:43:11 2016 -0800 + +## quantum/quantum.c + +* 1a8c0dd22d6a2255511d0db6a456315541b5815b Sun May 15 00:27:32 2016 -0400 +* 15719f3574c6274ee0f3ec87431927c5a523aa3e Sun May 15 00:40:59 2016 -0400 +* bf5c2ccee5497523c214dae7aacdc27fdbb0f235 Sun May 15 00:47:25 2016 -0400 +* fde477a927edc6b4207a6968d44aeed021e8b300 Sun May 15 00:51:06 2016 -0400 +* 0428214b905e5f8b3bed721885957ce249ba4991 Wed May 18 23:14:00 2016 -0400 +* b732b79b49b098dba8e14493c745075f336747d8 Wed May 18 23:47:16 2016 -0400 +* 0275d444d77c9d85d2189b09d8813fb76dc4d566 Thu May 19 15:36:28 2016 +0300 +* 287eb7ad148abc8fe3fb014218d71e205fd9131d Tue May 24 11:56:53 2016 -0400 +* 1237025963484d70bbe5185a790bec6544653ccc Tue May 24 23:27:59 2016 -0400 +* 8bc69afc633d3e199e3ac0a5bf39e4d255f2ce4a Tue May 24 23:48:46 2016 -0400 +* 17977a7e24ddab6ca101341b33c8fe7ad13e68f5 Sat May 28 15:22:30 2016 -0400 +* 1c9f33c06a6ef18c9c21e5841180af5ae554c34b Wed Jun 1 22:49:55 2016 -0400 +* 4635b4453335b61df11008fa907eef221db5912b Wed Jun 1 23:00:55 2016 -0400 +* 794aed37a0da5a277a07e7fa86263e0852fa9f6d Fri Jun 3 12:48:40 2016 -0700 +* b70248fa2144d297504eedbc80a76dfdc40d9f1f Fri Jun 17 21:42:59 2016 -0400 +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 +* 76076db72545bbb649f11394a12721f61579527f Mon Jun 20 22:36:36 2016 -0400 +* 98f0807359cfa78d25442b91ff4c5bbfc5679661 Tue Jun 21 22:55:54 2016 -0400 +* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 +* b68b722325e1f0f68387e161365fa8e31c79b7b2 Thu Jun 23 23:14:21 2016 -0400 +* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 +* 197f152dee834a737cd820f2a95d1ade98be4898 Wed Jun 29 18:29:20 2016 -0400 +* 60fd885a6e540509baa2193932e15caeaeb8f4c5 Wed Jun 29 18:35:29 2016 -0400 +* 4d4f7684e684bec319f166121463a88cd4a62703 Fri Jul 1 17:04:53 2016 +0300 +* 1412076df68ac00f9a00173977d2826603c12ddf Mon Jul 4 19:56:08 2016 -0700 +* 6b0c9cc905c0985f96a80306cf5fe0d6724b28fc Mon Jul 4 19:58:26 2016 -0700 +* a4bf46f9b1d0a0be0cecb2cd0f0d941aa7c71bd3 Wed Jul 6 22:48:19 2016 -0400 +* 50c686587ed49d8079ba1b11d45ceb6a55d6cd4b Thu Jul 7 23:34:33 2016 -0400 +* f7a86822266603b8ffd21e9f89ec1de8d4950791 Fri Jul 8 03:32:28 2016 -0400 +* b12fe6abb25db1feca6a7649097a8d1cb67a063f Sun Jul 10 19:04:01 2016 -0700 +* a28a6e5b79c819e5f9323f62686498eca3ef399f Wed Jul 13 16:38:02 2016 +0200 +* 857aa5bef6a74f8785a7039feea5286c07bf7067 Sat Aug 13 11:14:42 2016 +0200 +* 644c8c79271db8cf1bd934b9a80a0215585e46e7 Thu Aug 18 01:34:05 2016 +0200 +* 0d28787c5cf2173d12f57b397515f91cffaa820a Thu Aug 18 11:29:53 2016 +0200 +* e571d4656cd283ce8d793fe3dd2ac176b84b0bf5 Tue Sep 6 18:02:43 2016 -0500 +* 558f3ec1eb325caf706efc15e2fab26121aba442 Tue Sep 6 23:19:01 2016 -0500 +* 5b2e455d3b71bfb90754930d1f22d3e8ce98b927 Mon Oct 10 00:46:20 2016 +0700 +* 5f91fb413624781ac79db641549b9e08753c04b5 Sun Oct 16 16:03:33 2016 -0400 +* e9f748751808de2f1e85cf7fb670d78773bd5e76 Sun Nov 13 23:02:38 2016 -0500 +* ffa5b1e7ea6697acf9ebfcade1149031642f7870 Sat Nov 19 11:32:09 2016 +0100 +* 74a1f00713d1407fb1d2e20d58da93919ab0c221 Sat Nov 19 18:19:18 2016 +0100 +* 664c0a036b3d7c3ed39f4a7a78d97f4a9cc7d20c Mon Nov 21 19:50:55 2016 -0500 +* cefa8468fb5f28bd67a0c02d371a4aef0964e20c Wed Nov 23 20:16:38 2016 -0500 +* 7edac212c8ed8442bf4207e70dc8194631b2bf27 Sat Nov 26 15:37:46 2016 -0500 +* 01038ab54ca6c2858ea9e856c717a1129ffe4156 Fri Dec 23 21:51:11 2016 +0200 + +## quantum/quantum.h + +* 1a8c0dd22d6a2255511d0db6a456315541b5815b Sun May 15 00:27:32 2016 -0400 +* fde477a927edc6b4207a6968d44aeed021e8b300 Sun May 15 00:51:06 2016 -0400 +* 0428214b905e5f8b3bed721885957ce249ba4991 Wed May 18 23:14:00 2016 -0400 +* b732b79b49b098dba8e14493c745075f336747d8 Wed May 18 23:47:16 2016 -0400 +* 287eb7ad148abc8fe3fb014218d71e205fd9131d Tue May 24 11:56:53 2016 -0400 +* de57799530d3184722532f93d156364067d8fcd5 Sat May 28 11:56:06 2016 -0400 +* 17977a7e24ddab6ca101341b33c8fe7ad13e68f5 Sat May 28 15:22:30 2016 -0400 +* 1c9f33c06a6ef18c9c21e5841180af5ae554c34b Wed Jun 1 22:49:55 2016 -0400 +* 794aed37a0da5a277a07e7fa86263e0852fa9f6d Fri Jun 3 12:48:40 2016 -0700 +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 +* 98f0807359cfa78d25442b91ff4c5bbfc5679661 Tue Jun 21 22:55:54 2016 -0400 +* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 +* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 +* 197f152dee834a737cd820f2a95d1ade98be4898 Wed Jun 29 18:29:20 2016 -0400 +* 8125cdb88ce1201fcfd16ed4c5313222ef4c230c Wed Jun 29 18:36:52 2016 -0400 +* 4d4f7684e684bec319f166121463a88cd4a62703 Fri Jul 1 17:04:53 2016 +0300 +* a28a6e5b79c819e5f9323f62686498eca3ef399f Wed Jul 13 16:38:02 2016 +0200 +* e01b4c3fd9a7b66276ffd22dcac25d569d7bb7ff Sat Jul 9 00:41:15 2016 +0300 +* 0d28787c5cf2173d12f57b397515f91cffaa820a Thu Aug 18 11:29:53 2016 +0200 +* 5f91fb413624781ac79db641549b9e08753c04b5 Sun Oct 16 16:03:33 2016 -0400 +* 664c0a036b3d7c3ed39f4a7a78d97f4a9cc7d20c Mon Nov 21 19:50:55 2016 -0500 +* cefa8468fb5f28bd67a0c02d371a4aef0964e20c Wed Nov 23 20:16:38 2016 -0500 +* 7edac212c8ed8442bf4207e70dc8194631b2bf27 Sat Nov 26 15:37:46 2016 -0500 + +## quantum/quantum_keycodes.h + +* d8a608f3ff4cb4d73cd57be500fd9881e230099d Thu Dec 29 18:28:48 2016 +1100 + +## quantum/rgblight.c + +* ba9ac457b2159097ecfd9848c5171c52e3a68260 Sun Jan 24 17:05:47 2016 -0800 + +## quantum/rgblight.h + +* ba9ac457b2159097ecfd9848c5171c52e3a68260 Sun Jan 24 17:05:47 2016 -0800 + +## quantum/variable_trace.c + +* f519b94be7086852f2afe4ec248786b47968f7ff Sun Nov 6 21:57:26 2016 +0200 +* a377017c95b826d83ac7a46ef176d39a58294b44 Sun Nov 6 22:11:24 2016 +0200 + +## quantum/variable_trace.h + +* a377017c95b826d83ac7a46ef176d39a58294b44 Sun Nov 6 22:11:24 2016 +0200 +* 0ba3e523a7c124e4ce54dfd043dc32e72ad3233b Sun Nov 6 22:44:43 2016 +0200 + +## quantum/version.h + + +## quantum/api/api_sysex.c + +* 7edac212c8ed8442bf4207e70dc8194631b2bf27 Sat Nov 26 15:37:46 2016 -0500 +* dd685eceb2045371d38f24d454f1ab08ca7416f4 Thu Dec 29 12:13:30 2016 +0200 + +## quantum/api/api_sysex.h + +* 7edac212c8ed8442bf4207e70dc8194631b2bf27 Sat Nov 26 15:37:46 2016 -0500 + +## quantum/audio/audio.c + +* 73228f5e5d1d4cd31a46e5e93aa893a8f727e3b9 Thu Apr 21 00:37:45 2016 -0400 + +## quantum/audio/audio.h + +* 73228f5e5d1d4cd31a46e5e93aa893a8f727e3b9 Thu Apr 21 00:37:45 2016 -0400 + +## quantum/audio/audio_pwm.c + +* 83e1cc241e3aabd69f6cdcd2581477d4b85bb8d3 Tue May 3 12:56:40 2016 -0500 +* 3f02637f4dd765803671c2611191beb096d60b36 Mon May 9 13:17:15 2016 -0400 +* 15719f3574c6274ee0f3ec87431927c5a523aa3e Sun May 15 00:40:59 2016 -0400 +* 0428214b905e5f8b3bed721885957ce249ba4991 Wed May 18 23:14:00 2016 -0400 +* 287eb7ad148abc8fe3fb014218d71e205fd9131d Tue May 24 11:56:53 2016 -0400 +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 +* 06c64bbff3e228df542149acde64eadaf59b9b0f Mon Dec 19 11:18:18 2016 -0500 + +## quantum/audio/luts.c + +* 83e1cc241e3aabd69f6cdcd2581477d4b85bb8d3 Tue May 3 12:56:40 2016 -0500 + +## quantum/audio/luts.h + +* 83e1cc241e3aabd69f6cdcd2581477d4b85bb8d3 Tue May 3 12:56:40 2016 -0500 + +## quantum/audio/musical_notes.h + +* 73228f5e5d1d4cd31a46e5e93aa893a8f727e3b9 Thu Apr 21 00:37:45 2016 -0400 + +## quantum/audio/song_list.h + +* 73228f5e5d1d4cd31a46e5e93aa893a8f727e3b9 Thu Apr 21 00:37:45 2016 -0400 + +## quantum/audio/voices.c + +* 73228f5e5d1d4cd31a46e5e93aa893a8f727e3b9 Thu Apr 21 00:37:45 2016 -0400 +* e89b806b850ad1b5484176664288b71b0131683e Thu Apr 21 00:40:00 2016 -0400 +* 9828aba2a12f03fccbc1095bc8e4918ae58fa31b Thu Apr 21 18:14:25 2016 -0400 +* 7b3f212500210ae85063b043952b5b3ef6988ad6 Thu Apr 21 23:10:47 2016 -0400 +* 082a0f313d8c842a5de7bae30ec8a3597e35880b Fri Apr 22 00:01:38 2016 -0500 +* b1900c8dde2a68e87aaabd84280a99bf6658ea9f Fri Apr 22 01:02:50 2016 -0400 +* a718c53fe77f0b3b4361c850531eee5f23e3e13d Fri Apr 22 11:58:29 2016 -0400 +* e7b6bb641c0636c01e3781fe51865fdb20014eeb Mon Apr 25 00:59:47 2016 -0400 +* 140b97a1cd226432a8ec647004943698e3d87f0b Tue Apr 26 01:16:47 2016 -0400 +* 66e0323881a5a3da65e14daeec41a1e9cfbda431 Fri Apr 29 12:42:55 2016 -0400 +* 83e1cc241e3aabd69f6cdcd2581477d4b85bb8d3 Tue May 3 12:56:40 2016 -0500 +* 0edfe55bfe4afd037918ff73e49552a28f39a5ca Mon Dec 12 15:39:07 2016 -0500 +* 06c64bbff3e228df542149acde64eadaf59b9b0f Mon Dec 19 11:18:18 2016 -0500 +* 438a5d685bb7b726ff59109ce4229eca6303cd8e Tue Dec 20 19:38:22 2016 -0500 +* 2fa36e38cf28f07ad4a4d74722486921fa7b8706 Wed Dec 21 00:22:32 2016 -0500 + +## quantum/audio/voices.h + +* 73228f5e5d1d4cd31a46e5e93aa893a8f727e3b9 Thu Apr 21 00:37:45 2016 -0400 +* e89b806b850ad1b5484176664288b71b0131683e Thu Apr 21 00:40:00 2016 -0400 +* 9828aba2a12f03fccbc1095bc8e4918ae58fa31b Thu Apr 21 18:14:25 2016 -0400 +* 7b3f212500210ae85063b043952b5b3ef6988ad6 Thu Apr 21 23:10:47 2016 -0400 +* 082a0f313d8c842a5de7bae30ec8a3597e35880b Fri Apr 22 00:01:38 2016 -0500 +* b1900c8dde2a68e87aaabd84280a99bf6658ea9f Fri Apr 22 01:02:50 2016 -0400 +* a718c53fe77f0b3b4361c850531eee5f23e3e13d Fri Apr 22 11:58:29 2016 -0400 +* e7b6bb641c0636c01e3781fe51865fdb20014eeb Mon Apr 25 00:59:47 2016 -0400 +* 140b97a1cd226432a8ec647004943698e3d87f0b Tue Apr 26 01:16:47 2016 -0400 +* 83e1cc241e3aabd69f6cdcd2581477d4b85bb8d3 Tue May 3 12:56:40 2016 -0500 +* 0edfe55bfe4afd037918ff73e49552a28f39a5ca Mon Dec 12 15:39:07 2016 -0500 +* 06c64bbff3e228df542149acde64eadaf59b9b0f Mon Dec 19 11:18:18 2016 -0500 +* 438a5d685bb7b726ff59109ce4229eca6303cd8e Tue Dec 20 19:38:22 2016 -0500 + +## quantum/audio/wave.h + +* 73228f5e5d1d4cd31a46e5e93aa893a8f727e3b9 Thu Apr 21 00:37:45 2016 -0400 + +## quantum/keymap_extras/keymap_bepo.h + +* 7c33f8493fb4ecd664390232c8de856158f9fcae Sun Feb 7 19:29:49 2016 +0100 +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 +* 7b4d30ee50aa534a973473c715924964991739f0 Sun Jul 24 10:57:49 2016 +0200 + +## quantum/keymap_extras/keymap_br_abnt2.h + +* 7aa31ad338325477199f752ac3e344a6ab9b27d0 Tue Nov 8 13:32:04 2016 -0200 + +## quantum/keymap_extras/keymap_canadian_multilingual.h + +* a7cef2ca0a2322448d02008337013936b1d550ec Wed Feb 17 21:45:38 2016 +0100 +* 7840e69bfaee1d67de273c235b532d6f20c905a9 Thu Feb 18 00:47:23 2016 +0100 +* 911222892ecb1c01551e0abdfbe98ed1dbf82139 Fri Feb 26 00:55:39 2016 +0100 +* 3a91ddb0745ae0f52007984793ea1b48abb2098c Tue Mar 1 22:59:38 2016 +0100 +* aa5eb49edd993e2abe3adf814e030fcdda4a3596 Wed Mar 2 00:22:41 2016 +0100 +* 1aeb59335f2fe67613df25308a630ca453975ac0 Sun Sep 11 02:19:55 2016 +0200 + +## quantum/keymap_extras/keymap_colemak.h + +* 46e7fb2d3ccd699c0a1b1fd9d02860b1f2a44141 Mon Oct 26 14:49:46 2015 -0400 +* 39915b1748cefd99f841fa03b7f6e7c20439fbcf Thu Oct 29 15:12:51 2015 -0400 +* 3c683aa9f23288ddada760fb49abcc5fa7324f5e Fri Feb 5 16:28:24 2016 +0200 +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 + +## quantum/keymap_extras/keymap_dvorak.h + +* 46e7fb2d3ccd699c0a1b1fd9d02860b1f2a44141 Mon Oct 26 14:49:46 2015 -0400 +* 233af3a41c69d456583bfcfd897233b9c117caa6 Mon Feb 22 13:06:26 2016 -0500 +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 +* 4278d8861526ed285d9d00badcdc8c121454be60 Thu Jul 14 11:32:43 2016 -0500 +* f0021c9cb9e30d47d5a3ab5ec75e59e626c3d244 Mon Sep 19 14:25:44 2016 -0500 + +## quantum/keymap_extras/keymap_dvp.h + +* 6e003b1e3fa844cfde0069004e755aae7a9539f3 Wed Oct 19 23:45:55 2016 +0300 + +## quantum/keymap_extras/keymap_fr_ch.h + +* 1934e8a270820ff6f08c95f4399b26162623e4e0 Sat Feb 20 14:01:28 2016 +0100 +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 +* 25938a09a6bfb2624bc96841b53897eda532e293 Thu Jul 14 11:13:35 2016 -0500 + +## quantum/keymap_extras/keymap_french.h + +* 46e7fb2d3ccd699c0a1b1fd9d02860b1f2a44141 Mon Oct 26 14:49:46 2015 -0400 + +## quantum/keymap_extras/keymap_french_osx.h + +* 48eff6dd89672c6c71afd8a3d1cdc5d35b0bf768 Tue Jan 5 10:49:36 2016 +0100 +* 4a19cc054dc7aeb0a35613d608143bf51fa791cc Sat Feb 27 15:22:54 2016 +0100 +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 +* 010dd1308420e25b327fa4d5d6b13f67a849408b Thu Jul 14 11:04:25 2016 -0500 +* 25938a09a6bfb2624bc96841b53897eda532e293 Thu Jul 14 11:13:35 2016 -0500 + +## quantum/keymap_extras/keymap_german.h + +* 3dbcad51d1217b32c3c17917c2646fa7a9a9165b Sat Dec 19 01:22:12 2015 +0100 +* da09312dd56e3b085fb217cc7cc2abf06f401992 Tue Jan 19 20:04:08 2016 +0100 +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 +* 25938a09a6bfb2624bc96841b53897eda532e293 Thu Jul 14 11:13:35 2016 -0500 + +## quantum/keymap_extras/keymap_german_ch.h + +* 465aabe11dbd673fb4c68ecbffbfb062273def1a Wed May 18 21:22:04 2016 +0200 +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 +* 25938a09a6bfb2624bc96841b53897eda532e293 Thu Jul 14 11:13:35 2016 -0500 + +## quantum/keymap_extras/keymap_german_osx.h + +* e44c30f2030dd4c481a6e38e9392f147be7b0ae2 Fri Jan 15 15:55:00 2016 +0100 +* bfc6eca44aeb3ad22a1c37206005dcfe617431cd Mon Mar 14 13:35:34 2016 +0100 +* dbd4ab3457dd001ab4bbcec14315047b815f7dfe Thu Mar 31 23:15:59 2016 +0200 +* 6d40f7c5060f608068b0c4fc90871687c70b4f05 Sun Apr 17 22:19:47 2016 +0200 +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 +* 1a0bac8bccf0e156d2f3c5f14a7214f9677b6370 Tue Jun 21 17:42:29 2016 -0400 + +## quantum/keymap_extras/keymap_jp.h + +* 2febf9b9f7d610fc2eca666a842272cb90a87919 Tue Nov 22 20:40:12 2016 +0900 + +## quantum/keymap_extras/keymap_neo2.h + +* 7b7870bae178c80138be5c587238fdedeb837df9 Sat Dec 19 01:41:23 2015 +0100 +* 4ca43225011ac94bd0a7976baf7f84059274dfbf Fri Feb 19 21:04:30 2016 +0100 +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 +* e329729d3a11b5798f4e2b9f65ac9bc2dcc84a9e Tue Jun 21 18:32:28 2016 -0400 + +## quantum/keymap_extras/keymap_nordic.h + +* 46e7fb2d3ccd699c0a1b1fd9d02860b1f2a44141 Mon Oct 26 14:49:46 2015 -0400 + +## quantum/keymap_extras/keymap_norwegian.h + +* e329729d3a11b5798f4e2b9f65ac9bc2dcc84a9e Tue Jun 21 18:32:28 2016 -0400 + +## quantum/keymap_extras/keymap_plover.h + +* 7ccfaf750d08bdb3a25ef2869cac251b7cd4d3ad Sat Apr 23 18:49:10 2016 +0100 +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 + +## quantum/keymap_extras/keymap_russian.h + +* c5ee24a6c3ea39e9725dfc276c92d5bce726ca78 Sun Aug 7 11:01:12 2016 -0500 +* 2a0121a78643b1dc774d82352f8c9e246010803e Sun Aug 7 11:07:38 2016 -0500 + +## quantum/keymap_extras/keymap_spanish.h + +* 46e7fb2d3ccd699c0a1b1fd9d02860b1f2a44141 Mon Oct 26 14:49:46 2015 -0400 + +## quantum/keymap_extras/keymap_uk.h + +* 46e7fb2d3ccd699c0a1b1fd9d02860b1f2a44141 Mon Oct 26 14:49:46 2015 -0400 +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 +* 010dd1308420e25b327fa4d5d6b13f67a849408b Thu Jul 14 11:04:25 2016 -0500 +* 25938a09a6bfb2624bc96841b53897eda532e293 Thu Jul 14 11:13:35 2016 -0500 + +## quantum/keymap_extras/keymap_unicode_cyrillic.h + +* c5ee24a6c3ea39e9725dfc276c92d5bce726ca78 Sun Aug 7 11:01:12 2016 -0500 + +## quantum/process_keycode/process_chording.c + +* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 + +## quantum/process_keycode/process_chording.h + +* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 + +## quantum/process_keycode/process_leader.c + +* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 + +## quantum/process_keycode/process_leader.h + +* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 + +## quantum/process_keycode/process_midi.c + +* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 +* 8b94e26d7c3b30cc57d710a11e5651d15e8e3b20 Sun Jul 24 22:07:43 2016 -0400 +* 8d99140d1b80bf497b2198138d3f481e93b0fbab Thu Sep 29 14:46:10 2016 -0500 + +## quantum/process_keycode/process_midi.h + +* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 + +## quantum/process_keycode/process_music.c + +* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 +* 3ea738e450e9326b0d3ee4192da881cffb4c13c1 Sun Jul 24 10:00:39 2016 -0400 +* ae95834f5af7404c04e6fe3446019046278d814b Mon Dec 12 16:06:41 2016 -0500 +* 273faa4d9cd5a84207548f83ba550c9efee90933 Fri Dec 23 20:59:00 2016 -0500 +* 841d7e6a1d74b1fc45575ed551132ec27353ebf3 Mon Jan 23 13:55:24 2017 -0500 + +## quantum/process_keycode/process_music.h + +* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 + +## quantum/process_keycode/process_printer.c + +* a889b899e2cf52b3b7807d8a7ad39f12e0761a10 Sun Oct 16 16:03:56 2016 -0400 + +## quantum/process_keycode/process_printer.h + +* a889b899e2cf52b3b7807d8a7ad39f12e0761a10 Sun Oct 16 16:03:56 2016 -0400 + +## quantum/process_keycode/process_printer_bb.c + +* a889b899e2cf52b3b7807d8a7ad39f12e0761a10 Sun Oct 16 16:03:56 2016 -0400 + +## quantum/process_keycode/process_tap_dance.c + +* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 +* 1a7e954f9fc4d250ba1ae46e3bfc168aca2b5cce Wed Jul 13 00:20:28 2016 +0200 +* f3b56701ed7e6c622dc48e429780124ba5fde172 Wed Jul 13 16:47:45 2016 +0200 +* d3091faf363afc8fef73ddf4948f872439b0e827 Fri Jul 15 23:54:08 2016 +0200 +* dda2fd6ff3984ed96f8275c661b47a0484f9ee18 Mon Jul 18 23:34:02 2016 +0200 +* d5daec2a58019ebdb9804787e0f786e4fc3c05b9 Tue Jul 19 18:00:59 2016 +0200 +* 4e6a8627d8ebd7af942f68142d1a959d60361d90 Tue Jul 19 18:02:13 2016 +0200 +* 70e42489dec375e558d8e81ed5ebfb69b4f3dbd9 Wed Jul 20 10:22:52 2016 +0200 +* ce8cc9219fca5dde077f1142d03d011b38d27479 Wed Jul 20 11:34:45 2016 +0200 +* 44e16ffc80620b61eaa17aedcfdd8233d9c99bd9 Wed Jul 20 11:49:59 2016 +0200 +* b21e8b97acb722bfa7b85831cfd010716ed77962 Wed Jul 27 08:42:09 2016 +0200 +* d78058cc75a9b05a6885991506d5f807ebb2a9f9 Wed Aug 17 10:28:08 2016 +0200 +* 29f64d7a93d941167c6c6e95f893ab84586b2205 Wed Aug 17 13:04:50 2016 +0200 +* 0d28787c5cf2173d12f57b397515f91cffaa820a Thu Aug 18 11:29:53 2016 +0200 +* acda2b793f69c6e0e9b9667e9ebe8a0325eb5ecd Thu Sep 1 08:32:47 2016 +0200 +* e1f131db8e59c6ed3471906d3a62457d593f51af Wed Sep 21 10:11:42 2016 +0200 + +## quantum/process_keycode/process_tap_dance.h + +* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 +* f3b56701ed7e6c622dc48e429780124ba5fde172 Wed Jul 13 16:47:45 2016 +0200 +* d3091faf363afc8fef73ddf4948f872439b0e827 Fri Jul 15 23:54:08 2016 +0200 +* 70e42489dec375e558d8e81ed5ebfb69b4f3dbd9 Wed Jul 20 10:22:52 2016 +0200 +* ce8cc9219fca5dde077f1142d03d011b38d27479 Wed Jul 20 11:34:45 2016 +0200 +* b21e8b97acb722bfa7b85831cfd010716ed77962 Wed Jul 27 08:42:09 2016 +0200 +* 29f64d7a93d941167c6c6e95f893ab84586b2205 Wed Aug 17 13:04:50 2016 +0200 +* 0edc82f0300924394324e2f3c4d2f8f0008439db Wed Sep 21 11:29:34 2016 +0200 +* cda4b534fa4921c2d8f9884aa6a144333e7b07c4 Wed Sep 21 11:29:43 2016 +0200 + +## quantum/process_keycode/process_unicode.c + +* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 +* 8bdf745909bc2581491acce11225f56a85bc8f24 Sat Aug 13 10:33:47 2016 +0200 +* 63e5782d2cdf0ee282ad434c773463d9da9db6b3 Sat Aug 13 10:43:22 2016 +0200 +* fa06a163607e8c6c4bd0968c2de96a9a298b777c Sat Aug 13 10:46:38 2016 +0200 +* 0b6861827faea747345ea38202d64c8004ab128c Sat Aug 13 11:11:22 2016 +0200 +* 857aa5bef6a74f8785a7039feea5286c07bf7067 Sat Aug 13 11:14:42 2016 +0200 +* 234dd276cf03be6fd6961473e9d9c8f35deec682 Sun Aug 14 10:37:51 2016 +0200 +* a312cbf712764277e0dbbbb99410c2f6fc6c7484 Sun Aug 14 14:34:52 2016 +0200 +* 43d08629cf275d0b32281ffe8785258fff226b49 Mon Aug 15 10:02:05 2016 +0200 +* e8845f0daf8dc7a7674dc5420cc5a684bbbea09b Mon Aug 15 10:07:13 2016 +0200 +* dffdeb50b79d3c623e2ed9fd1c1d82d6d0ae7bf0 Sun Aug 21 20:25:19 2016 +0200 +* 81594c7883deefedbcd317c72c1b1f1d32e65cd7 Sun Aug 21 21:02:18 2016 +0200 +* a058ae40e268b34ba5db45f5fd5d557d50fa5437 Wed Aug 24 15:39:23 2016 +0200 +* c9ea236fc35d350c0ff33de0af84d3dee7d0eb95 Wed Aug 31 08:21:52 2016 +0200 +* a3f5a4cf5839fe29dd37400d72c5e353812002f8 Sun Oct 2 10:35:09 2016 +0200 +* 5b2e455d3b71bfb90754930d1f22d3e8ce98b927 Mon Oct 10 00:46:20 2016 +0700 +* e7d5dc89f2890007d776f6b613dc9deb473cff22 Sun Oct 23 05:36:26 2016 +0700 +* 4a666c201007eacf13a9031e3c9b156e2e04afe6 Sun Oct 23 19:15:33 2016 +0700 +* 30b80a23f3cafd846937b37b249f2df4411e1f5a Mon Jan 9 02:59:10 2017 +0700 + +## quantum/process_keycode/process_unicode.h + +* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 + +## quantum/serial_link/LICENSE + + +## quantum/serial_link/README.md + +* d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 + +## quantum/serial_link/protocol/byte_stuffer.c + +* d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 + +## quantum/serial_link/protocol/byte_stuffer.h + +* d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 + +## quantum/serial_link/protocol/frame_router.c + +* d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 + +## quantum/serial_link/protocol/frame_router.h + +* d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 + +## quantum/serial_link/protocol/frame_validator.c + +* d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 + +## quantum/serial_link/protocol/frame_validator.h + +* d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 + +## quantum/serial_link/protocol/physical.h + +* d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 + +## quantum/serial_link/protocol/transport.c + +* d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 + +## quantum/serial_link/protocol/transport.h + +* d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 + +## quantum/serial_link/protocol/triple_buffered_object.c + +* d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 + +## quantum/serial_link/protocol/triple_buffered_object.h + +* d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 + +## quantum/serial_link/system/serial_link.c + +* d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 + +## quantum/serial_link/system/serial_link.h + +* d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 + +## quantum/serial_link/tests/byte_stuffer_tests.cpp + +* 0a11460175d6a838c71343c19eb4ce4699936247 Wed Aug 24 22:23:17 2016 +0300 + +## quantum/serial_link/tests/frame_router_tests.cpp + +* cdd0913bcc63334fa20f1a7bd46bdce4d4f2843b Sat Aug 27 13:43:46 2016 +0300 + +## quantum/serial_link/tests/frame_validator_tests.cpp + +* b3eba797af74ace19b9f2e762bdd33d9449e3f94 Sat Aug 27 13:54:16 2016 +0300 + +## quantum/serial_link/tests/Makefile + +* d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 + +## quantum/serial_link/tests/rules.mk + +* 0a11460175d6a838c71343c19eb4ce4699936247 Wed Aug 24 22:23:17 2016 +0300 +* cdd0913bcc63334fa20f1a7bd46bdce4d4f2843b Sat Aug 27 13:43:46 2016 +0300 +* b3eba797af74ace19b9f2e762bdd33d9449e3f94 Sat Aug 27 13:54:16 2016 +0300 +* bcdf9ab76bf3723e6015d4255d53e7c1e7259b61 Sat Aug 27 14:18:49 2016 +0300 +* ffb0a126f5b2484eda7f6b1c62ea61924eec6521 Sat Aug 27 14:25:52 2016 +0300 + +## quantum/serial_link/tests/testlist.mk + +* 6d7cd639a5e4503f00162c7cfa4bc7302b82c71c Sun Aug 21 16:29:54 2016 +0300 +* ffb0a126f5b2484eda7f6b1c62ea61924eec6521 Sat Aug 27 14:25:52 2016 +0300 + +## quantum/serial_link/tests/transport_tests.cpp + +* bcdf9ab76bf3723e6015d4255d53e7c1e7259b61 Sat Aug 27 14:18:49 2016 +0300 + +## quantum/serial_link/tests/triple_buffered_object_tests.cpp + +* ffb0a126f5b2484eda7f6b1c62ea61924eec6521 Sat Aug 27 14:25:52 2016 +0300 + +## quantum/template/config.h + +* 6f3141965e88c4ee0ebf7c18a243e4c2d9c5021b Tue Oct 27 14:33:18 2015 -0400 +* 0a40654b82520849fcc587e8fb76c823378649a6 Sun Jan 24 13:14:50 2016 -0800 +* ba9ac457b2159097ecfd9848c5171c52e3a68260 Sun Jan 24 17:05:47 2016 -0800 +* 5ef6978cab7de2821eb6bfce4fd04067655a8937 Tue Apr 12 06:55:26 2016 -0500 +* 390fd3107a84277151ceb63255c859307221a290 Wed Apr 13 18:48:25 2016 -0500 +* 95a44cdf01a98180363e8039d769fa7be92b0194 Wed Apr 13 22:00:36 2016 -0500 +* cf17687f29820b6bf9b8feb3b23dec6e271572c5 Thu Apr 14 12:59:16 2016 -0500 +* 2597fb7c508cf36704291cd48b2c752dd21f2b0d Thu Apr 14 23:33:46 2016 -0400 +* aaa758f1d3f97dda39879f2b055ad2da9680adfe Mon May 23 20:42:21 2016 -0700 +* 649b33d7783cf3021928534b7ae127e0a89e8807 Tue Jun 21 22:39:54 2016 -0400 + +## quantum/template/Makefile + +* 6f3141965e88c4ee0ebf7c18a243e4c2d9c5021b Tue Oct 27 14:33:18 2015 -0400 +* 6485c7d7dae01c499a7e1f27e7956f12ce0f6901 Thu Nov 5 12:07:03 2015 -0500 +* 29de37d5c0ea9fc6b5539ce4493c7b10a2a7f33f Mon Jan 11 16:53:33 2016 -0500 +* dfe7004bc545ff7247a0dbef4788b9e1952f9c5d Sat Jan 16 00:51:24 2016 -0500 +* c9a096dc99a2af45d288f9915d70fa339c0e5a6e Sat Jan 16 00:57:35 2016 -0500 +* eb61700912f1713ba27d34c23d7f07be66ee6513 Wed Jan 20 00:06:52 2016 -0500 +* a820533ab770e1919f190c102a091c1060f6302e Wed Jan 20 00:15:29 2016 -0500 +* fd72a46c139c0450299e6e4ebbf4ffba531c9e2d Sat Jan 23 20:52:01 2016 -0500 +* 0a40654b82520849fcc587e8fb76c823378649a6 Sun Jan 24 13:14:50 2016 -0800 +* ba9ac457b2159097ecfd9848c5171c52e3a68260 Sun Jan 24 17:05:47 2016 -0800 +* f277079dfa831d44456f00f307e26cf79d36c03d Sun Jan 24 18:16:40 2016 -0800 +* 2ae44470e01287c48f3852ac54a87d7fc4e747c2 Tue Mar 29 12:06:32 2016 -0400 +* 5ef6978cab7de2821eb6bfce4fd04067655a8937 Tue Apr 12 06:55:26 2016 -0500 +* 9ff9317720d4fcee6b35800f71d598f9a59de661 Wed Apr 13 21:55:04 2016 -0500 +* cf17687f29820b6bf9b8feb3b23dec6e271572c5 Thu Apr 14 12:59:16 2016 -0500 +* ddbe4307789b6087c3e6f146a5e02f1084f3cecc Thu Apr 14 19:13:24 2016 -0400 +* 63462bf8c12cea1c13ca1bd1f105fe53f556806e Thu Apr 14 20:42:14 2016 -0400 +* 43a4ffc25971b2aea94b65ca1db66371e653ec5f Thu Apr 14 23:53:35 2016 -0400 +* bb0836c62016f482f517771a9f5a8dbc68bd0a1c Fri Apr 15 00:26:22 2016 -0400 +* 8f85117aa9e060371177e3b523bc89dc7aad19e8 Fri Apr 15 14:42:50 2016 -0500 +* a67d425f4d5278595e7ab785a0f246b83fb1a09f Sun Apr 17 01:00:39 2016 -0400 +* 0656f2fa10e25e160617c3e5d14cfbae35dd9c8d Fri Apr 29 22:19:40 2016 -0400 +* d9e4dad0a828a8a904f44dda090a4d6d08fe2948 Sat Jun 11 13:31:31 2016 -0400 +* a8375fa15a6ca9285eb15ae89bcda898349e06f8 Tue Jun 21 10:21:43 2016 -0400 +* 649b33d7783cf3021928534b7ae127e0a89e8807 Tue Jun 21 22:39:54 2016 -0400 + +## quantum/template/readme.md + +* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 + +## quantum/template/rules.mk + +* ab4d7adbb96fa034fd20364247d615f527661594 Fri Aug 19 09:06:28 2016 +0300 + +## quantum/template/template.c + +* 6f3141965e88c4ee0ebf7c18a243e4c2d9c5021b Tue Oct 27 14:33:18 2015 -0400 +* 29de37d5c0ea9fc6b5539ce4493c7b10a2a7f33f Mon Jan 11 16:53:33 2016 -0500 +* 263344d42f8b16e1cd80c4c871e15fa86208d086 Mon Jan 11 18:00:07 2016 -0500 +* 0a40654b82520849fcc587e8fb76c823378649a6 Sun Jan 24 13:14:50 2016 -0800 +* d58b14e880580671a297be81303acbef5e28e0b3 Wed Mar 9 14:04:14 2016 -0500 +* 641859df84bf40025b2c14319d1a168a435562e2 Thu Mar 10 11:28:34 2016 -0500 +* bcebb3447c155056819d42668943110ab0868517 Mon Mar 28 16:14:54 2016 +0200 +* 0656f2fa10e25e160617c3e5d14cfbae35dd9c8d Fri Apr 29 22:19:40 2016 -0400 +* 3f02637f4dd765803671c2611191beb096d60b36 Mon May 9 13:17:15 2016 -0400 +* 1a8c0dd22d6a2255511d0db6a456315541b5815b Sun May 15 00:27:32 2016 -0400 +* 6955719075a9a07524814e4183f3f90f83db1c6a Sun Jun 12 15:01:55 2016 -0700 +* 649b33d7783cf3021928534b7ae127e0a89e8807 Tue Jun 21 22:39:54 2016 -0400 + +## quantum/template/template.h + +* 6f3141965e88c4ee0ebf7c18a243e4c2d9c5021b Tue Oct 27 14:33:18 2015 -0400 +* 29de37d5c0ea9fc6b5539ce4493c7b10a2a7f33f Mon Jan 11 16:53:33 2016 -0500 +* eb61700912f1713ba27d34c23d7f07be66ee6513 Wed Jan 20 00:06:52 2016 -0500 +* 0a40654b82520849fcc587e8fb76c823378649a6 Sun Jan 24 13:14:50 2016 -0800 +* d58b14e880580671a297be81303acbef5e28e0b3 Wed Mar 9 14:04:14 2016 -0500 +* 641859df84bf40025b2c14319d1a168a435562e2 Thu Mar 10 11:28:34 2016 -0500 +* bcebb3447c155056819d42668943110ab0868517 Mon Mar 28 16:14:54 2016 +0200 +* 0656f2fa10e25e160617c3e5d14cfbae35dd9c8d Fri Apr 29 22:19:40 2016 -0400 +* 3f02637f4dd765803671c2611191beb096d60b36 Mon May 9 13:17:15 2016 -0400 +* 1a8c0dd22d6a2255511d0db6a456315541b5815b Sun May 15 00:27:32 2016 -0400 +* 1a0bac8bccf0e156d2f3c5f14a7214f9677b6370 Tue Jun 21 17:42:29 2016 -0400 +* 649b33d7783cf3021928534b7ae127e0a89e8807 Tue Jun 21 22:39:54 2016 -0400 + +## quantum/template/keymaps/default/config.h + +* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 + +## quantum/template/keymaps/default/keymap.c + +* d9e4dad0a828a8a904f44dda090a4d6d08fe2948 Sat Jun 11 13:31:31 2016 -0400 + +## quantum/template/keymaps/default/Makefile + +* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 + +## quantum/template/keymaps/default/readme.md + +* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 + +## quantum/tools/eeprom_reset.hex + +* 0b0ec82427aff54481103559066213056b6d7598 Sat Apr 16 00:01:22 2016 -0400 + +## quantum/tools/readme.md + +* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 + +## quantum/visualizer/lcd_backlight.c + + +## quantum/visualizer/lcd_backlight.h + + +## quantum/visualizer/led_test.c + +* 07d0d5cbe48d7afaf0bc8c9916d40179ec51cb42 Thu Jul 7 12:46:10 2016 +0300 + +## quantum/visualizer/led_test.h + + +## quantum/visualizer/LICENSE.md + + +## quantum/visualizer/readme.md + + +## quantum/visualizer/visualizer.c + +* 70797bb8f21c72cba15b314b2d0a6684bfedc369 Thu Jul 7 00:20:20 2016 +0300 +* 7229751ba9d402b2a6c9dc1b7b29385b5162fe41 Thu Jul 7 14:01:20 2016 +0300 +* dae7c9bfb3325412c542fbbe4342c9c8e0fc1904 Thu Jul 7 14:12:56 2016 +0300 +* 9eb8d05246fba4f46c04b8fa1884b8f2d2ee0664 Tue Jan 17 21:47:07 2017 -0500 + +## quantum/visualizer/visualizer.h + +* 70797bb8f21c72cba15b314b2d0a6684bfedc369 Thu Jul 7 00:20:20 2016 +0300 +* 9eb8d05246fba4f46c04b8fa1884b8f2d2ee0664 Tue Jan 17 21:47:07 2017 -0500 + +## quantum/visualizer/visualizer.mk + +* 70797bb8f21c72cba15b314b2d0a6684bfedc369 Thu Jul 7 00:20:20 2016 +0300 +* 07d0d5cbe48d7afaf0bc8c9916d40179ec51cb42 Thu Jul 7 12:46:10 2016 +0300 +* 7229751ba9d402b2a6c9dc1b7b29385b5162fe41 Thu Jul 7 14:01:20 2016 +0300 +* aaac254ebce2005272e7385488b5690bbbe6d7c8 Thu Jul 7 14:29:53 2016 +0300 +* caedec92d2c22480313c43a364408fb920c55364 Thu Jul 7 14:42:16 2016 +0300 + +## quantum/visualizer/example_integration/callbacks.c + + +## quantum/visualizer/example_integration/gfxconf.h + + +## quantum/visualizer/example_integration/lcd_backlight_hal.c + + +## quantum/visualizer/example_integration/visualizer_user.c From bc68d4ef2c600b25ac909fc9c4ec566e97483dd2 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Fri, 27 Jan 2017 10:38:03 -0800 Subject: [PATCH 255/517] Updated License Clarification (markdown) --- License-Clarification.md | 269 +++++++++++++++++++++++++++++++-------- 1 file changed, 216 insertions(+), 53 deletions(-) diff --git a/License-Clarification.md b/License-Clarification.md index 55058bf53f..2a6a1b847b 100644 --- a/License-Clarification.md +++ b/License-Clarification.md @@ -2,7 +2,6 @@ As raised in #1038 and other issues, the licensing status of QMK is not clear. In an effort to remove ambiguity and to clarify the licensing status of the quantum code we are identifying the providence of our source code files and clarifying what license applies to each one. - ## quantum/analog.c * 46e7fb2d3ccd699c0a1b1fd9d02860b1f2a44141 Mon Oct 26 14:49:46 2015 -0400 @@ -23,7 +22,19 @@ As raised in #1038 and other issues, the licensing status of QMK is not clear. I ## quantum/config_common.h * 35a81f5b8b081e1607a7c04489b01f551c3213cc Mon Oct 26 16:32:37 2015 -0400 -* b36e532b5e0eef219f33075e6e60b68d104484ee Sat Jun 4 00:10:47 2016 -0400 +* aaa758f1d3f97dda39879f2b055ad2da9680adfe Mon May 23 20:42:21 2016 -0700 +* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 +* 705c775a4a433249081321cea0c2def2627817dc Sun Aug 21 22:05:55 2016 -0500 +* 936a26d04ffa12801031c058f27e221174e3fabd Thu Aug 25 00:15:41 2016 -0500 +* 6390033e8688550826a4bd3004a2e76568600657 Mon Nov 21 20:14:16 2016 -0500 +* 03d6e165bb0baf9d0093250d3c3c0771290df4d6 Fri Nov 25 09:17:40 2016 +0200 +* 0c9d66eb59add717397ba83d508577073412ce86 Fri Nov 25 09:20:41 2016 +0200 +* de1df639535817e17f1c01f07e7a629cec478526 Sat Nov 26 13:55:41 2016 +0700 +* 17acde94ee2695ab69ea336742c904d649dce17c Sat Nov 26 14:02:38 2016 +0700 +* d9d67e7b7686fdcbc7269a76d2a54c42325bdd03 Sat Nov 26 15:26:02 2016 +0700 +* f2214ce1cb6cfe7a0efabe870a2c00fb8451ee80 Sat Nov 26 15:57:48 2016 +0700 +* 6e0f994950435aa5867e7b7ce780186d881d74ac Mon Nov 28 23:51:07 2016 -0500 +* dd685eceb2045371d38f24d454f1ab08ca7416f4 Thu Dec 29 12:13:30 2016 +0200 ## quantum/dynamic_macro.h @@ -54,25 +65,92 @@ As raised in #1038 and other issues, the licensing status of QMK is not clear. I * 1048a588c750e27ff0f900cd6aaf670e034086d0 Fri Oct 7 17:15:11 2016 +0200 * 5b2e455d3b71bfb90754930d1f22d3e8ce98b927 Mon Oct 10 00:46:20 2016 +0700 * e27a754b70434de88a37c4a572e4ca5f7730ff58 Wed Oct 12 22:18:27 2016 -0400 +* 52d7f7d2770a35adf0b0b0c803e05ae8719f539f Sun Oct 16 15:49:45 2016 -0400 * 5f91fb413624781ac79db641549b9e08753c04b5 Sun Oct 16 16:03:33 2016 -0400 +* 33e62c080c9161a0fc921c90ed299a67fc2e1799 Sat Nov 12 20:54:37 2016 -0500 * 01038ab54ca6c2858ea9e856c717a1129ffe4156 Fri Dec 23 21:51:11 2016 +0200 * d8a608f3ff4cb4d73cd57be500fd9881e230099d Thu Dec 29 18:28:48 2016 +1100 ## quantum/keymap_common.c * 46e7fb2d3ccd699c0a1b1fd9d02860b1f2a44141 Mon Oct 26 14:49:46 2015 -0400 +* 35a81f5b8b081e1607a7c04489b01f551c3213cc Mon Oct 26 16:32:37 2015 -0400 +* cc1c32671eb1eb43a87e55ac4ffa60b15115e48d Mon Oct 26 20:02:25 2015 -0400 +* d9f08e6177271594fa573993d9f4dbc2d98c7416 Tue Oct 27 22:00:52 2015 -0400 +* 18da1e6801335b0d9515ab72e9236a01d629915f Tue Oct 27 23:06:18 2015 -0400 +* d3db8d62f6fc6a7dee43978ddc8356579b502b37 Wed Oct 28 04:07:15 2015 +0200 +* 7d6716beded4a60cd9de24e95d8ec60694692b6f Fri Jan 29 23:27:36 2016 -0500 +* 65b41e2e59e274354e57ed36cad097823f111f1a Sun Feb 7 11:48:28 2016 +0100 +* 47dcec29456106828b83fe5b85fa7a7427ddc710 Sun Jan 3 17:49:28 2016 -0500 +* 1d13aa933bbb57bf0c1fe0196981b81233c3df97 Mon Mar 28 19:45:20 2016 -0500 +* 3755ef5ddbdad9f25a53fee951c3eb78035b52c3 Wed Apr 13 20:57:51 2016 -0500 +* ee2ee7f4f049dda385a9db7dddd8e7e91681315b Fri Apr 15 13:44:07 2016 -0400 +* 9cfc74c35b940884618b0fe1e6fd25c570e1c974 Thu Apr 7 15:21:06 2016 +0300 +* ab19ebd08a8b955775e6fa94cdf6b8d128d8b43c Sat Apr 16 18:51:58 2016 -0400 +* c83aa16f1d614c1c10f7597a67ffb9f2ae871951 Sat Apr 16 20:26:02 2016 -0400 +* 41cc35425ab32c9a9492006da8b667d01d32dfa6 Sat Apr 16 21:31:40 2016 -0400 +* 8bbd064cf52a76508589579f19595607a1f3af21 Sat Apr 16 23:07:50 2016 -0400 +* 45f10b4c4b308226fa1568277654a13853a03ab4 Sat Apr 16 22:10:18 2016 -0500 +* e7b9959819e709d7df2e96a94bdaf36e4e9e23e3 Sat Apr 16 23:15:40 2016 -0400 +* a67d425f4d5278595e7ab785a0f246b83fb1a09f Sun Apr 17 01:00:39 2016 -0400 +* d5b72e7bde5ede25f7d5699b50b7d9eb6f31ba92 Sun Apr 17 12:54:32 2016 -0500 +* 3103ea542f0039637a1a266df79a97a7a13fa6b4 Sun Apr 17 12:55:19 2016 -0500 +* 23231fa577f7c6c585124226a83f21a7668e62dd Sun Apr 17 14:16:03 2016 -0500 +* 5c98ad59606ee95b82c27bf2525383a9ec88542b Sun Apr 17 20:14:37 2016 -0500 +* e49712b5593b887c8af18aeb7196513f1c7b7bcf Mon Apr 18 21:01:48 2016 -0400 +* 620ac4b260fa663d12b11a0b15ac50379523c125 Thu Apr 21 19:35:18 2016 -0700 +* 83e1cc241e3aabd69f6cdcd2581477d4b85bb8d3 Tue May 3 12:56:40 2016 -0500 +* 41b3e399b1d43db9574c6016951d92974b3d93e7 Thu May 5 21:50:51 2016 -0400 +* 1a8c0dd22d6a2255511d0db6a456315541b5815b Sun May 15 00:27:32 2016 -0400 +* fde477a927edc6b4207a6968d44aeed021e8b300 Sun May 15 00:51:06 2016 -0400 +* b732b79b49b098dba8e14493c745075f336747d8 Wed May 18 23:47:16 2016 -0400 +* 287eb7ad148abc8fe3fb014218d71e205fd9131d Tue May 24 11:56:53 2016 -0400 +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 +* 4d4f7684e684bec319f166121463a88cd4a62703 Fri Jul 1 17:04:53 2016 +0300 +* 9870082a06386eba8c0c5f22da90d0256ef6244b Thu Jul 7 19:48:39 2016 +0300 +* 8b94e26d7c3b30cc57d710a11e5651d15e8e3b20 Sun Jul 24 22:07:43 2016 -0400 +* d8a608f3ff4cb4d73cd57be500fd9881e230099d Thu Dec 29 18:28:48 2016 +1100 ## quantum/light_ws2812.c * ba9ac457b2159097ecfd9848c5171c52e3a68260 Sun Jan 24 17:05:47 2016 -0800 +* 57e08eb8badc5db2fb44d2df684f32ea48cce411 Thu Jul 7 11:33:32 2016 -0400 +* 5f91fb413624781ac79db641549b9e08753c04b5 Sun Oct 16 16:03:33 2016 -0400 +* 33e62c080c9161a0fc921c90ed299a67fc2e1799 Sat Nov 12 20:54:37 2016 -0500 +* e9f748751808de2f1e85cf7fb670d78773bd5e76 Sun Nov 13 23:02:38 2016 -0500 +* 530dd3377e4d409a7ca2fee7e47b60b735ebc0fa Tue Nov 15 13:18:10 2016 -0500 +* 3774a7fcdab5544fc787f4c200be05fcd417e31f Thu Nov 17 17:42:14 2016 -0500 ## quantum/light_ws2812.h * ba9ac457b2159097ecfd9848c5171c52e3a68260 Sun Jan 24 17:05:47 2016 -0800 +* 5f91fb413624781ac79db641549b9e08753c04b5 Sun Oct 16 16:03:33 2016 -0400 +* e9f748751808de2f1e85cf7fb670d78773bd5e76 Sun Nov 13 23:02:38 2016 -0500 +* 664c0a036b3d7c3ed39f4a7a78d97f4a9cc7d20c Mon Nov 21 19:50:55 2016 -0500 +* 06c64bbff3e228df542149acde64eadaf59b9b0f Mon Dec 19 11:18:18 2016 -0500 ## quantum/matrix.c * 46e7fb2d3ccd699c0a1b1fd9d02860b1f2a44141 Mon Oct 26 14:49:46 2015 -0400 +* 35a81f5b8b081e1607a7c04489b01f551c3213cc Mon Oct 26 16:32:37 2015 -0400 +* 641859df84bf40025b2c14319d1a168a435562e2 Thu Mar 10 11:28:34 2016 -0500 +* 684793360cdb08ac1e50a6d27e1796fadd527adb Mon May 9 00:36:23 2016 -0400 +* 1a8c0dd22d6a2255511d0db6a456315541b5815b Sun May 15 00:27:32 2016 -0400 +* aaa758f1d3f97dda39879f2b055ad2da9680adfe Mon May 23 20:42:21 2016 -0700 +* 1ae6011cef2230826a9e6db6c5b638677bc640b7 Tue May 24 08:44:40 2016 -0700 +* de57799530d3184722532f93d156364067d8fcd5 Sat May 28 11:56:06 2016 -0400 +* 008c8d54a0a1a1e908d372d0fe9edb45a2d491e5 Fri Jun 17 22:09:59 2016 -0400 +* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 +* 215c2119af5281072d5a6efb0308408793cadd08 Wed Jun 29 16:21:41 2016 -0400 +* 4d4f7684e684bec319f166121463a88cd4a62703 Fri Jul 1 17:04:53 2016 +0300 +* 8e88d55bfd7c88cb15845e0c6415e4e892532861 Mon Jul 4 11:45:58 2016 -0400 +* 3577e26fd9916ceab58779ec6323d43da54eb3b5 Wed Jul 6 00:24:31 2016 -0400 +* 17170ba76d3c94edcf1ab263520238fdb0384774 Sun Oct 23 23:00:43 2016 -0500 +* 508eddf8ba8548d3f71e1c09a404839beb49f45c Fri Oct 28 14:21:38 2016 -0500 +* 4c6960835c0a6e29670dabdc27117d7d3c7f99f5 Fri Oct 28 16:24:20 2016 -0500 +* 32f88c07173b795c6981c779057dceba00aeb1cb Sat Oct 29 10:39:03 2016 -0500 +* f4030289744fc6dc82dd85c955070c0845813cc5 Sat Oct 29 16:12:58 2016 -0500 +* a06115df19a74d39b08758472b221e630c3680d3 Fri Nov 18 23:20:07 2016 -0500 ## quantum/pincontrol.h @@ -110,6 +188,7 @@ As raised in #1038 and other issues, the licensing status of QMK is not clear. I * 50c686587ed49d8079ba1b11d45ceb6a55d6cd4b Thu Jul 7 23:34:33 2016 -0400 * f7a86822266603b8ffd21e9f89ec1de8d4950791 Fri Jul 8 03:32:28 2016 -0400 * b12fe6abb25db1feca6a7649097a8d1cb67a063f Sun Jul 10 19:04:01 2016 -0700 +* a998a48673372e409991066d7d2d9ba282f79d59 Mon Jul 11 09:14:43 2016 -0400 * a28a6e5b79c819e5f9323f62686498eca3ef399f Wed Jul 13 16:38:02 2016 +0200 * 857aa5bef6a74f8785a7039feea5286c07bf7067 Sat Aug 13 11:14:42 2016 +0200 * 644c8c79271db8cf1bd934b9a80a0215585e46e7 Thu Aug 18 01:34:05 2016 +0200 @@ -118,10 +197,12 @@ As raised in #1038 and other issues, the licensing status of QMK is not clear. I * 558f3ec1eb325caf706efc15e2fab26121aba442 Tue Sep 6 23:19:01 2016 -0500 * 5b2e455d3b71bfb90754930d1f22d3e8ce98b927 Mon Oct 10 00:46:20 2016 +0700 * 5f91fb413624781ac79db641549b9e08753c04b5 Sun Oct 16 16:03:33 2016 -0400 +* 33e62c080c9161a0fc921c90ed299a67fc2e1799 Sat Nov 12 20:54:37 2016 -0500 * e9f748751808de2f1e85cf7fb670d78773bd5e76 Sun Nov 13 23:02:38 2016 -0500 * ffa5b1e7ea6697acf9ebfcade1149031642f7870 Sat Nov 19 11:32:09 2016 +0100 * 74a1f00713d1407fb1d2e20d58da93919ab0c221 Sat Nov 19 18:19:18 2016 +0100 * 664c0a036b3d7c3ed39f4a7a78d97f4a9cc7d20c Mon Nov 21 19:50:55 2016 -0500 +* 450a8fb5b61de8166fe21eb4f57e1c00514afe32 Mon Nov 21 20:17:45 2016 -0500 * cefa8468fb5f28bd67a0c02d371a4aef0964e20c Wed Nov 23 20:16:38 2016 -0500 * 7edac212c8ed8442bf4207e70dc8194631b2bf27 Sat Nov 26 15:37:46 2016 -0500 * 01038ab54ca6c2858ea9e856c717a1129ffe4156 Fri Dec 23 21:51:11 2016 +0200 @@ -155,14 +236,55 @@ As raised in #1038 and other issues, the licensing status of QMK is not clear. I ## quantum/quantum_keycodes.h * d8a608f3ff4cb4d73cd57be500fd9881e230099d Thu Dec 29 18:28:48 2016 +1100 +* 8459bb97c1e8bcb9ccce55a1ed849d373bd7706c Wed Jan 11 21:57:41 2017 -0500 +* 3717cf5864d6505e406b5eb75f315e6dc2392912 Thu Jan 12 07:38:07 2017 -0500 +* 7288e5ab9c005a7b035d91e68358aa2b6a12420c Fri Jan 13 14:04:51 2017 -0500 ## quantum/rgblight.c * ba9ac457b2159097ecfd9848c5171c52e3a68260 Sun Jan 24 17:05:47 2016 -0800 +* 2647c7cd84820a833b85e41ea86caf76b36e6ee1 Sun Jan 24 17:19:33 2016 -0800 +* 97f8f378761506914b69d4fd2d5661bfcae28295 Sun Apr 10 21:16:49 2016 -0700 +* 620ac4b260fa663d12b11a0b15ac50379523c125 Thu Apr 21 19:35:18 2016 -0700 +* c37d52d2137acf5739c481cc0c8917ad6fd77161 Tue Apr 26 13:48:36 2016 -0400 +* e024c11f7a849a38e478cda9fb9939a838cfa2e0 Tue Apr 26 13:50:04 2016 -0400 +* 80c87054193b9243670aeb85adefbe1aa6c0fda0 Tue Jun 21 12:53:21 2016 -0400 +* 57e08eb8badc5db2fb44d2df684f32ea48cce411 Thu Jul 7 11:33:32 2016 -0400 +* 3a860c4bc210857f03ef9fae5043d6d5736d140d Tue Jul 26 14:43:45 2016 -0500 <0xdec@users.noreply.github.com> +* 899c88cd8bf024792760fcf3ee8be6fed13fb315 Tue Jul 26 14:46:30 2016 -0500 <0xdec@users.noreply.github.com> +* ea2d2f5d5841791745c93ef27cd1528a7fd69c97 Tue Jul 26 15:31:22 2016 -0500 <0xdec@users.noreply.github.com> +* b8679bbe045a2285d6ab6bbc420121b26f516b9a Wed Oct 5 20:41:33 2016 -0400 +* 9b0e21f87f446935f29254bb623c2cfe29472b6e Sun Oct 9 19:26:16 2016 +0300 +* 92a3a96849aee708753a6623b0db228023e3baf8 Sun Oct 9 19:47:05 2016 +0300 +* ffae9d84c5279b463da112ee15568d536649b819 Sun Oct 9 19:53:41 2016 +0300 +* 03b6fcdaf034392e27752a9bd2c11de06a166e39 Mon Oct 10 00:20:24 2016 -0400 +* 33e62c080c9161a0fc921c90ed299a67fc2e1799 Sat Nov 12 20:54:37 2016 -0500 +* e9f748751808de2f1e85cf7fb670d78773bd5e76 Sun Nov 13 23:02:38 2016 -0500 +* 3774a7fcdab5544fc787f4c200be05fcd417e31f Thu Nov 17 17:42:14 2016 -0500 +* 285c5a91f23e972d9c579184283443111186329d Thu Nov 17 20:56:36 2016 -0500 +* 2e23689b8e3222982082c1f5a4f8ce7686f9658b Wed Nov 23 18:52:02 2016 -0500 +* 4094544d41450617bc21ab58646603b8964eae0e Tue Nov 29 09:23:16 2016 -0500 +* cae269b08b642b07ee06dec7120a784a3c3d7aab Fri Dec 23 10:29:19 2016 -0500 +* 748181dccddb8c9fa52a776f4fcd904ddca9aa31 Wed Dec 28 16:29:02 2016 -0500 +* b8e74c378b1f118178edf0634d9fa7f0f9dd5e08 Thu Dec 29 09:32:02 2016 -0500 ## quantum/rgblight.h * ba9ac457b2159097ecfd9848c5171c52e3a68260 Sun Jan 24 17:05:47 2016 -0800 +* 2647c7cd84820a833b85e41ea86caf76b36e6ee1 Sun Jan 24 17:19:33 2016 -0800 +* 620ac4b260fa663d12b11a0b15ac50379523c125 Thu Apr 21 19:35:18 2016 -0700 +* 80c87054193b9243670aeb85adefbe1aa6c0fda0 Tue Jun 21 12:53:21 2016 -0400 +* 57e08eb8badc5db2fb44d2df684f32ea48cce411 Thu Jul 7 11:33:32 2016 -0400 +* b8679bbe045a2285d6ab6bbc420121b26f516b9a Wed Oct 5 20:41:33 2016 -0400 +* 9b0e21f87f446935f29254bb623c2cfe29472b6e Sun Oct 9 19:26:16 2016 +0300 +* 33e62c080c9161a0fc921c90ed299a67fc2e1799 Sat Nov 12 20:54:37 2016 -0500 +* e9f748751808de2f1e85cf7fb670d78773bd5e76 Sun Nov 13 23:02:38 2016 -0500 +* 3774a7fcdab5544fc787f4c200be05fcd417e31f Thu Nov 17 17:42:14 2016 -0500 +* 285c5a91f23e972d9c579184283443111186329d Thu Nov 17 20:56:36 2016 -0500 +* 2e23689b8e3222982082c1f5a4f8ce7686f9658b Wed Nov 23 18:52:02 2016 -0500 +* 4094544d41450617bc21ab58646603b8964eae0e Tue Nov 29 09:23:16 2016 -0500 +* cae269b08b642b07ee06dec7120a784a3c3d7aab Fri Dec 23 10:29:19 2016 -0500 +* 748181dccddb8c9fa52a776f4fcd904ddca9aa31 Wed Dec 28 16:29:02 2016 -0500 ## quantum/variable_trace.c @@ -176,6 +298,7 @@ As raised in #1038 and other issues, the licensing status of QMK is not clear. I ## quantum/version.h +* None None None ## quantum/api/api_sysex.c @@ -189,20 +312,30 @@ As raised in #1038 and other issues, the licensing status of QMK is not clear. I ## quantum/audio/audio.c * 73228f5e5d1d4cd31a46e5e93aa893a8f727e3b9 Thu Apr 21 00:37:45 2016 -0400 +* 620ac4b260fa663d12b11a0b15ac50379523c125 Thu Apr 21 19:35:18 2016 -0700 +* 83e1cc241e3aabd69f6cdcd2581477d4b85bb8d3 Tue May 3 12:56:40 2016 -0500 +* 3f02637f4dd765803671c2611191beb096d60b36 Mon May 9 13:17:15 2016 -0400 +* 15719f3574c6274ee0f3ec87431927c5a523aa3e Sun May 15 00:40:59 2016 -0400 +* 0428214b905e5f8b3bed721885957ce249ba4991 Wed May 18 23:14:00 2016 -0400 +* 287eb7ad148abc8fe3fb014218d71e205fd9131d Tue May 24 11:56:53 2016 -0400 +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 +* 06c64bbff3e228df542149acde64eadaf59b9b0f Mon Dec 19 11:18:18 2016 -0500 ## quantum/audio/audio.h * 73228f5e5d1d4cd31a46e5e93aa893a8f727e3b9 Thu Apr 21 00:37:45 2016 -0400 - -## quantum/audio/audio_pwm.c - +* 082a0f313d8c842a5de7bae30ec8a3597e35880b Fri Apr 22 00:01:38 2016 -0500 * 83e1cc241e3aabd69f6cdcd2581477d4b85bb8d3 Tue May 3 12:56:40 2016 -0500 * 3f02637f4dd765803671c2611191beb096d60b36 Mon May 9 13:17:15 2016 -0400 * 15719f3574c6274ee0f3ec87431927c5a523aa3e Sun May 15 00:40:59 2016 -0400 * 0428214b905e5f8b3bed721885957ce249ba4991 Wed May 18 23:14:00 2016 -0400 * 287eb7ad148abc8fe3fb014218d71e205fd9131d Tue May 24 11:56:53 2016 -0400 +* 215c2119af5281072d5a6efb0308408793cadd08 Wed Jun 29 16:21:41 2016 -0400 + +## quantum/audio/audio_pwm.c + +* 83e1cc241e3aabd69f6cdcd2581477d4b85bb8d3 Tue May 3 12:56:40 2016 -0500 * db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 -* 06c64bbff3e228df542149acde64eadaf59b9b0f Mon Dec 19 11:18:18 2016 -0500 ## quantum/audio/luts.c @@ -219,6 +352,7 @@ As raised in #1038 and other issues, the licensing status of QMK is not clear. I ## quantum/audio/song_list.h * 73228f5e5d1d4cd31a46e5e93aa893a8f727e3b9 Thu Apr 21 00:37:45 2016 -0400 +* 7d0345ef25b5e1924f1e98c76d78607778e0b17d Sat Jul 30 01:52:33 2016 -0700 ## quantum/audio/voices.c @@ -228,6 +362,7 @@ As raised in #1038 and other issues, the licensing status of QMK is not clear. I * 7b3f212500210ae85063b043952b5b3ef6988ad6 Thu Apr 21 23:10:47 2016 -0400 * 082a0f313d8c842a5de7bae30ec8a3597e35880b Fri Apr 22 00:01:38 2016 -0500 * b1900c8dde2a68e87aaabd84280a99bf6658ea9f Fri Apr 22 01:02:50 2016 -0400 +* a8086126fecbdce1c192036cf1011329d406949d Fri Apr 22 01:04:13 2016 -0400 * a718c53fe77f0b3b4361c850531eee5f23e3e13d Fri Apr 22 11:58:29 2016 -0400 * e7b6bb641c0636c01e3781fe51865fdb20014eeb Mon Apr 25 00:59:47 2016 -0400 * 140b97a1cd226432a8ec647004943698e3d87f0b Tue Apr 26 01:16:47 2016 -0400 @@ -246,6 +381,7 @@ As raised in #1038 and other issues, the licensing status of QMK is not clear. I * 7b3f212500210ae85063b043952b5b3ef6988ad6 Thu Apr 21 23:10:47 2016 -0400 * 082a0f313d8c842a5de7bae30ec8a3597e35880b Fri Apr 22 00:01:38 2016 -0500 * b1900c8dde2a68e87aaabd84280a99bf6658ea9f Fri Apr 22 01:02:50 2016 -0400 +* a8086126fecbdce1c192036cf1011329d406949d Fri Apr 22 01:04:13 2016 -0400 * a718c53fe77f0b3b4361c850531eee5f23e3e13d Fri Apr 22 11:58:29 2016 -0400 * e7b6bb641c0636c01e3781fe51865fdb20014eeb Mon Apr 25 00:59:47 2016 -0400 * 140b97a1cd226432a8ec647004943698e3d87f0b Tue Apr 26 01:16:47 2016 -0400 @@ -305,14 +441,15 @@ As raised in #1038 and other issues, the licensing status of QMK is not clear. I ## quantum/keymap_extras/keymap_french.h * 46e7fb2d3ccd699c0a1b1fd9d02860b1f2a44141 Mon Oct 26 14:49:46 2015 -0400 +* 4a19cc054dc7aeb0a35613d608143bf51fa791cc Sat Feb 27 15:22:54 2016 +0100 +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 +* 010dd1308420e25b327fa4d5d6b13f67a849408b Thu Jul 14 11:04:25 2016 -0500 +* 25938a09a6bfb2624bc96841b53897eda532e293 Thu Jul 14 11:13:35 2016 -0500 ## quantum/keymap_extras/keymap_french_osx.h * 48eff6dd89672c6c71afd8a3d1cdc5d35b0bf768 Tue Jan 5 10:49:36 2016 +0100 -* 4a19cc054dc7aeb0a35613d608143bf51fa791cc Sat Feb 27 15:22:54 2016 +0100 * db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 -* 010dd1308420e25b327fa4d5d6b13f67a849408b Thu Jul 14 11:04:25 2016 -0500 -* 25938a09a6bfb2624bc96841b53897eda532e293 Thu Jul 14 11:13:35 2016 -0500 ## quantum/keymap_extras/keymap_german.h @@ -350,10 +487,16 @@ As raised in #1038 and other issues, the licensing status of QMK is not clear. I ## quantum/keymap_extras/keymap_nordic.h * 46e7fb2d3ccd699c0a1b1fd9d02860b1f2a44141 Mon Oct 26 14:49:46 2015 -0400 +* c29ad125a7a58d5a2ced0a619165204136da9019 Fri Feb 5 01:50:54 2016 +0100 +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 +* 25938a09a6bfb2624bc96841b53897eda532e293 Thu Jul 14 11:13:35 2016 -0500 +* 283ebbe14298fe75128765fa42c46f02534fb761 Mon Jul 25 12:50:27 2016 +0200 +* 555e41d9e5f8d393637898e2c77c64066b648245 Fri Dec 2 13:03:51 2016 -0500 ## quantum/keymap_extras/keymap_norwegian.h * e329729d3a11b5798f4e2b9f65ac9bc2dcc84a9e Tue Jun 21 18:32:28 2016 -0400 +* b6fa762234fb5a3590d0ff91ffdf5aa3ae322c8f Mon Jul 25 11:29:54 2016 +0200 ## quantum/keymap_extras/keymap_plover.h @@ -368,6 +511,9 @@ As raised in #1038 and other issues, the licensing status of QMK is not clear. I ## quantum/keymap_extras/keymap_spanish.h * 46e7fb2d3ccd699c0a1b1fd9d02860b1f2a44141 Mon Oct 26 14:49:46 2015 -0400 +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 +* 132c04746910f7230b63ed33717c4ed65599ed1b Sat Jul 2 10:26:04 2016 +0200 +* 25938a09a6bfb2624bc96841b53897eda532e293 Thu Jul 14 11:13:35 2016 -0500 ## quantum/keymap_extras/keymap_uk.h @@ -481,26 +627,43 @@ As raised in #1038 and other issues, the licensing status of QMK is not clear. I * 5b2e455d3b71bfb90754930d1f22d3e8ce98b927 Mon Oct 10 00:46:20 2016 +0700 * e7d5dc89f2890007d776f6b613dc9deb473cff22 Sun Oct 23 05:36:26 2016 +0700 * 4a666c201007eacf13a9031e3c9b156e2e04afe6 Sun Oct 23 19:15:33 2016 +0700 +* 8d60354d5a116b6cb1fc32eac7461eb125543c7d Wed Oct 26 00:48:44 2016 -0400 * 30b80a23f3cafd846937b37b249f2df4411e1f5a Mon Jan 9 02:59:10 2017 +0700 ## quantum/process_keycode/process_unicode.h * 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 +* 63e5782d2cdf0ee282ad434c773463d9da9db6b3 Sat Aug 13 10:43:22 2016 +0200 +* fa06a163607e8c6c4bd0968c2de96a9a298b777c Sat Aug 13 10:46:38 2016 +0200 +* 857aa5bef6a74f8785a7039feea5286c07bf7067 Sat Aug 13 11:14:42 2016 +0200 +* 234dd276cf03be6fd6961473e9d9c8f35deec682 Sun Aug 14 10:37:51 2016 +0200 +* a312cbf712764277e0dbbbb99410c2f6fc6c7484 Sun Aug 14 14:34:52 2016 +0200 +* 43d08629cf275d0b32281ffe8785258fff226b49 Mon Aug 15 10:02:05 2016 +0200 +* e8845f0daf8dc7a7674dc5420cc5a684bbbea09b Mon Aug 15 10:07:13 2016 +0200 +* a058ae40e268b34ba5db45f5fd5d557d50fa5437 Wed Aug 24 15:39:23 2016 +0200 +* c9ea236fc35d350c0ff33de0af84d3dee7d0eb95 Wed Aug 31 08:21:52 2016 +0200 +* 5b2e455d3b71bfb90754930d1f22d3e8ce98b927 Mon Oct 10 00:46:20 2016 +0700 +* 4a666c201007eacf13a9031e3c9b156e2e04afe6 Sun Oct 23 19:15:33 2016 +0700 +* 6fee7e178f7c949213a124d78de60bc30267d367 Sat Nov 26 23:53:15 2016 +0700 ## quantum/serial_link/LICENSE +* 639cdd363e35c13fe331939d0972aa4db5f5198d Tue Jul 5 23:27:47 2016 +0300 ## quantum/serial_link/README.md +* 639cdd363e35c13fe331939d0972aa4db5f5198d Tue Jul 5 23:27:47 2016 +0300 * d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 ## quantum/serial_link/protocol/byte_stuffer.c * d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 +* 0a11460175d6a838c71343c19eb4ce4699936247 Wed Aug 24 22:23:17 2016 +0300 ## quantum/serial_link/protocol/byte_stuffer.h * d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 +* 0a11460175d6a838c71343c19eb4ce4699936247 Wed Aug 24 22:23:17 2016 +0300 ## quantum/serial_link/protocol/frame_router.c @@ -525,10 +688,12 @@ As raised in #1038 and other issues, the licensing status of QMK is not clear. I ## quantum/serial_link/protocol/transport.c * d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 +* bcdf9ab76bf3723e6015d4255d53e7c1e7259b61 Sat Aug 27 14:18:49 2016 +0300 ## quantum/serial_link/protocol/transport.h * d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 +* bcdf9ab76bf3723e6015d4255d53e7c1e7259b61 Sat Aug 27 14:18:49 2016 +0300 ## quantum/serial_link/protocol/triple_buffered_object.c @@ -586,47 +751,29 @@ As raised in #1038 and other issues, the licensing status of QMK is not clear. I ## quantum/template/config.h * 6f3141965e88c4ee0ebf7c18a243e4c2d9c5021b Tue Oct 27 14:33:18 2015 -0400 -* 0a40654b82520849fcc587e8fb76c823378649a6 Sun Jan 24 13:14:50 2016 -0800 -* ba9ac457b2159097ecfd9848c5171c52e3a68260 Sun Jan 24 17:05:47 2016 -0800 -* 5ef6978cab7de2821eb6bfce4fd04067655a8937 Tue Apr 12 06:55:26 2016 -0500 -* 390fd3107a84277151ceb63255c859307221a290 Wed Apr 13 18:48:25 2016 -0500 -* 95a44cdf01a98180363e8039d769fa7be92b0194 Wed Apr 13 22:00:36 2016 -0500 -* cf17687f29820b6bf9b8feb3b23dec6e271572c5 Thu Apr 14 12:59:16 2016 -0500 -* 2597fb7c508cf36704291cd48b2c752dd21f2b0d Thu Apr 14 23:33:46 2016 -0400 +* 24f2698fba0055128eb90fbde793e3c84900df69 Sat Jan 23 20:45:52 2016 -0500 +* 577971ab07a49405e1dcd8e5f75b3ecb87e710b9 Mon Mar 28 00:03:21 2016 -0500 +* 1d13aa933bbb57bf0c1fe0196981b81233c3df97 Mon Mar 28 19:45:20 2016 -0500 * aaa758f1d3f97dda39879f2b055ad2da9680adfe Mon May 23 20:42:21 2016 -0700 -* 649b33d7783cf3021928534b7ae127e0a89e8807 Tue Jun 21 22:39:54 2016 -0400 +* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 ## quantum/template/Makefile * 6f3141965e88c4ee0ebf7c18a243e4c2d9c5021b Tue Oct 27 14:33:18 2015 -0400 * 6485c7d7dae01c499a7e1f27e7956f12ce0f6901 Thu Nov 5 12:07:03 2015 -0500 -* 29de37d5c0ea9fc6b5539ce4493c7b10a2a7f33f Mon Jan 11 16:53:33 2016 -0500 -* dfe7004bc545ff7247a0dbef4788b9e1952f9c5d Sat Jan 16 00:51:24 2016 -0500 -* c9a096dc99a2af45d288f9915d70fa339c0e5a6e Sat Jan 16 00:57:35 2016 -0500 -* eb61700912f1713ba27d34c23d7f07be66ee6513 Wed Jan 20 00:06:52 2016 -0500 -* a820533ab770e1919f190c102a091c1060f6302e Wed Jan 20 00:15:29 2016 -0500 -* fd72a46c139c0450299e6e4ebbf4ffba531c9e2d Sat Jan 23 20:52:01 2016 -0500 -* 0a40654b82520849fcc587e8fb76c823378649a6 Sun Jan 24 13:14:50 2016 -0800 -* ba9ac457b2159097ecfd9848c5171c52e3a68260 Sun Jan 24 17:05:47 2016 -0800 -* f277079dfa831d44456f00f307e26cf79d36c03d Sun Jan 24 18:16:40 2016 -0800 -* 2ae44470e01287c48f3852ac54a87d7fc4e747c2 Tue Mar 29 12:06:32 2016 -0400 -* 5ef6978cab7de2821eb6bfce4fd04067655a8937 Tue Apr 12 06:55:26 2016 -0500 -* 9ff9317720d4fcee6b35800f71d598f9a59de661 Wed Apr 13 21:55:04 2016 -0500 -* cf17687f29820b6bf9b8feb3b23dec6e271572c5 Thu Apr 14 12:59:16 2016 -0500 -* ddbe4307789b6087c3e6f146a5e02f1084f3cecc Thu Apr 14 19:13:24 2016 -0400 -* 63462bf8c12cea1c13ca1bd1f105fe53f556806e Thu Apr 14 20:42:14 2016 -0400 -* 43a4ffc25971b2aea94b65ca1db66371e653ec5f Thu Apr 14 23:53:35 2016 -0400 -* bb0836c62016f482f517771a9f5a8dbc68bd0a1c Fri Apr 15 00:26:22 2016 -0400 -* 8f85117aa9e060371177e3b523bc89dc7aad19e8 Fri Apr 15 14:42:50 2016 -0500 -* a67d425f4d5278595e7ab785a0f246b83fb1a09f Sun Apr 17 01:00:39 2016 -0400 +* 24f2698fba0055128eb90fbde793e3c84900df69 Sat Jan 23 20:45:52 2016 -0500 +* 577971ab07a49405e1dcd8e5f75b3ecb87e710b9 Mon Mar 28 00:03:21 2016 -0500 * 0656f2fa10e25e160617c3e5d14cfbae35dd9c8d Fri Apr 29 22:19:40 2016 -0400 +* 38987d4c1589d2d457459f42e179be24b712be30 Sat May 28 12:05:17 2016 -0400 * d9e4dad0a828a8a904f44dda090a4d6d08fe2948 Sat Jun 11 13:31:31 2016 -0400 * a8375fa15a6ca9285eb15ae89bcda898349e06f8 Tue Jun 21 10:21:43 2016 -0400 -* 649b33d7783cf3021928534b7ae127e0a89e8807 Tue Jun 21 22:39:54 2016 -0400 +* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 +* ab4d7adbb96fa034fd20364247d615f527661594 Fri Aug 19 09:06:28 2016 +0300 ## quantum/template/readme.md * 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 +* 1f5838a28679975f689e35471a35720ed5c7e7c5 Sat Aug 27 23:29:37 2016 +0300 ## quantum/template/rules.mk @@ -635,32 +782,30 @@ As raised in #1038 and other issues, the licensing status of QMK is not clear. I ## quantum/template/template.c * 6f3141965e88c4ee0ebf7c18a243e4c2d9c5021b Tue Oct 27 14:33:18 2015 -0400 -* 29de37d5c0ea9fc6b5539ce4493c7b10a2a7f33f Mon Jan 11 16:53:33 2016 -0500 -* 263344d42f8b16e1cd80c4c871e15fa86208d086 Mon Jan 11 18:00:07 2016 -0500 -* 0a40654b82520849fcc587e8fb76c823378649a6 Sun Jan 24 13:14:50 2016 -0800 -* d58b14e880580671a297be81303acbef5e28e0b3 Wed Mar 9 14:04:14 2016 -0500 * 641859df84bf40025b2c14319d1a168a435562e2 Thu Mar 10 11:28:34 2016 -0500 -* bcebb3447c155056819d42668943110ab0868517 Mon Mar 28 16:14:54 2016 +0200 +* eba9a7d74db0be548cddc107f0370dabf43b017f Tue Mar 15 23:52:51 2016 -0500 +* ec62d9e85cab5cf166241b0536120d005fa7c898 Tue Mar 22 20:39:05 2016 -0500 +* 3d56ec052ed485d4b717da930c4024b4a3f792e0 Tue Mar 22 21:06:22 2016 -0500 +* 2181be029e01d9cf46ae3cadcdf25f5bca02c631 Mon Mar 28 16:13:37 2016 +0200 * 0656f2fa10e25e160617c3e5d14cfbae35dd9c8d Fri Apr 29 22:19:40 2016 -0400 -* 3f02637f4dd765803671c2611191beb096d60b36 Mon May 9 13:17:15 2016 -0400 * 1a8c0dd22d6a2255511d0db6a456315541b5815b Sun May 15 00:27:32 2016 -0400 -* 6955719075a9a07524814e4183f3f90f83db1c6a Sun Jun 12 15:01:55 2016 -0700 -* 649b33d7783cf3021928534b7ae127e0a89e8807 Tue Jun 21 22:39:54 2016 -0400 +* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 +* 589df84d6cd19ad7d776cc19bcddade1cd178ddc Thu Jul 7 09:58:44 2016 -0400 +* c1dfb636ef61159456bdb24f4fee3f27e5babbeb Thu Jul 7 12:22:10 2016 -0400 ## quantum/template/template.h * 6f3141965e88c4ee0ebf7c18a243e4c2d9c5021b Tue Oct 27 14:33:18 2015 -0400 -* 29de37d5c0ea9fc6b5539ce4493c7b10a2a7f33f Mon Jan 11 16:53:33 2016 -0500 -* eb61700912f1713ba27d34c23d7f07be66ee6513 Wed Jan 20 00:06:52 2016 -0500 -* 0a40654b82520849fcc587e8fb76c823378649a6 Sun Jan 24 13:14:50 2016 -0800 -* d58b14e880580671a297be81303acbef5e28e0b3 Wed Mar 9 14:04:14 2016 -0500 +* 24f2698fba0055128eb90fbde793e3c84900df69 Sat Jan 23 20:45:52 2016 -0500 +* ee1b94045e5bebda517119cb1853b0ab3fd0f499 Fri Mar 4 10:53:58 2016 -0500 * 641859df84bf40025b2c14319d1a168a435562e2 Thu Mar 10 11:28:34 2016 -0500 -* bcebb3447c155056819d42668943110ab0868517 Mon Mar 28 16:14:54 2016 +0200 +* eba9a7d74db0be548cddc107f0370dabf43b017f Tue Mar 15 23:52:51 2016 -0500 +* ec62d9e85cab5cf166241b0536120d005fa7c898 Tue Mar 22 20:39:05 2016 -0500 +* 2181be029e01d9cf46ae3cadcdf25f5bca02c631 Mon Mar 28 16:13:37 2016 +0200 * 0656f2fa10e25e160617c3e5d14cfbae35dd9c8d Fri Apr 29 22:19:40 2016 -0400 -* 3f02637f4dd765803671c2611191beb096d60b36 Mon May 9 13:17:15 2016 -0400 * 1a8c0dd22d6a2255511d0db6a456315541b5815b Sun May 15 00:27:32 2016 -0400 -* 1a0bac8bccf0e156d2f3c5f14a7214f9677b6370 Tue Jun 21 17:42:29 2016 -0400 -* 649b33d7783cf3021928534b7ae127e0a89e8807 Tue Jun 21 22:39:54 2016 -0400 +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 +* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 ## quantum/template/keymaps/default/config.h @@ -669,6 +814,7 @@ As raised in #1038 and other issues, the licensing status of QMK is not clear. I ## quantum/template/keymaps/default/keymap.c * d9e4dad0a828a8a904f44dda090a4d6d08fe2948 Sat Jun 11 13:31:31 2016 -0400 +* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 ## quantum/template/keymaps/default/Makefile @@ -688,25 +834,33 @@ As raised in #1038 and other issues, the licensing status of QMK is not clear. I ## quantum/visualizer/lcd_backlight.c +* 9f33a5593cc70dfb0885328061f1aa4b2c2fa386 Wed Jul 6 20:15:45 2016 +0300 ## quantum/visualizer/lcd_backlight.h +* 9f33a5593cc70dfb0885328061f1aa4b2c2fa386 Wed Jul 6 20:15:45 2016 +0300 ## quantum/visualizer/led_test.c +* 6c296557909501b71fe344ce379e74094cf77c8e Wed Jul 6 20:30:58 2016 +0300 * 07d0d5cbe48d7afaf0bc8c9916d40179ec51cb42 Thu Jul 7 12:46:10 2016 +0300 ## quantum/visualizer/led_test.h +* 6c296557909501b71fe344ce379e74094cf77c8e Wed Jul 6 20:30:58 2016 +0300 ## quantum/visualizer/LICENSE.md +* 9f33a5593cc70dfb0885328061f1aa4b2c2fa386 Wed Jul 6 20:15:45 2016 +0300 ## quantum/visualizer/readme.md +* 9f33a5593cc70dfb0885328061f1aa4b2c2fa386 Wed Jul 6 20:15:45 2016 +0300 ## quantum/visualizer/visualizer.c +* 9f33a5593cc70dfb0885328061f1aa4b2c2fa386 Wed Jul 6 20:15:45 2016 +0300 +* 6c296557909501b71fe344ce379e74094cf77c8e Wed Jul 6 20:30:58 2016 +0300 * 70797bb8f21c72cba15b314b2d0a6684bfedc369 Thu Jul 7 00:20:20 2016 +0300 * 7229751ba9d402b2a6c9dc1b7b29385b5162fe41 Thu Jul 7 14:01:20 2016 +0300 * dae7c9bfb3325412c542fbbe4342c9c8e0fc1904 Thu Jul 7 14:12:56 2016 +0300 @@ -714,11 +868,15 @@ As raised in #1038 and other issues, the licensing status of QMK is not clear. I ## quantum/visualizer/visualizer.h +* 9f33a5593cc70dfb0885328061f1aa4b2c2fa386 Wed Jul 6 20:15:45 2016 +0300 +* 6c296557909501b71fe344ce379e74094cf77c8e Wed Jul 6 20:30:58 2016 +0300 * 70797bb8f21c72cba15b314b2d0a6684bfedc369 Thu Jul 7 00:20:20 2016 +0300 * 9eb8d05246fba4f46c04b8fa1884b8f2d2ee0664 Tue Jan 17 21:47:07 2017 -0500 ## quantum/visualizer/visualizer.mk +* 9f33a5593cc70dfb0885328061f1aa4b2c2fa386 Wed Jul 6 20:15:45 2016 +0300 +* 6c296557909501b71fe344ce379e74094cf77c8e Wed Jul 6 20:30:58 2016 +0300 * 70797bb8f21c72cba15b314b2d0a6684bfedc369 Thu Jul 7 00:20:20 2016 +0300 * 07d0d5cbe48d7afaf0bc8c9916d40179ec51cb42 Thu Jul 7 12:46:10 2016 +0300 * 7229751ba9d402b2a6c9dc1b7b29385b5162fe41 Thu Jul 7 14:01:20 2016 +0300 @@ -727,11 +885,16 @@ As raised in #1038 and other issues, the licensing status of QMK is not clear. I ## quantum/visualizer/example_integration/callbacks.c +* 9f33a5593cc70dfb0885328061f1aa4b2c2fa386 Wed Jul 6 20:15:45 2016 +0300 ## quantum/visualizer/example_integration/gfxconf.h +* 9f33a5593cc70dfb0885328061f1aa4b2c2fa386 Wed Jul 6 20:15:45 2016 +0300 ## quantum/visualizer/example_integration/lcd_backlight_hal.c +* 9f33a5593cc70dfb0885328061f1aa4b2c2fa386 Wed Jul 6 20:15:45 2016 +0300 ## quantum/visualizer/example_integration/visualizer_user.c + +* 9f33a5593cc70dfb0885328061f1aa4b2c2fa386 Wed Jul 6 20:15:45 2016 +0300 From 69581f47d5d18289863884ca92713f1aef184cd6 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Fri, 27 Jan 2017 10:39:31 -0800 Subject: [PATCH 256/517] Updated License Clarification (markdown) --- License-Clarification.md | 1085 +++++++++++++++++++------------------- 1 file changed, 543 insertions(+), 542 deletions(-) diff --git a/License-Clarification.md b/License-Clarification.md index 2a6a1b847b..b100cb5bfb 100644 --- a/License-Clarification.md +++ b/License-Clarification.md @@ -2,299 +2,300 @@ As raised in #1038 and other issues, the licensing status of QMK is not clear. In an effort to remove ambiguity and to clarify the licensing status of the quantum code we are identifying the providence of our source code files and clarifying what license applies to each one. + ## quantum/analog.c -* 46e7fb2d3ccd699c0a1b1fd9d02860b1f2a44141 Mon Oct 26 14:49:46 2015 -0400 +* 46e7fb2d3ccd699c0a1b1fd9d02860b1f2a44141 Mon Oct 26 14:49:46 2015 -0400 Jack Humbert ## quantum/analog.h -* 46e7fb2d3ccd699c0a1b1fd9d02860b1f2a44141 Mon Oct 26 14:49:46 2015 -0400 +* 46e7fb2d3ccd699c0a1b1fd9d02860b1f2a44141 Mon Oct 26 14:49:46 2015 -0400 Jack Humbert ## quantum/api.c -* 7edac212c8ed8442bf4207e70dc8194631b2bf27 Sat Nov 26 15:37:46 2016 -0500 -* 06c64bbff3e228df542149acde64eadaf59b9b0f Mon Dec 19 11:18:18 2016 -0500 +* 7edac212c8ed8442bf4207e70dc8194631b2bf27 Sat Nov 26 15:37:46 2016 -0500 Jack Humbert +* 06c64bbff3e228df542149acde64eadaf59b9b0f Mon Dec 19 11:18:18 2016 -0500 Jack Humbert ## quantum/api.h -* 7edac212c8ed8442bf4207e70dc8194631b2bf27 Sat Nov 26 15:37:46 2016 -0500 +* 7edac212c8ed8442bf4207e70dc8194631b2bf27 Sat Nov 26 15:37:46 2016 -0500 Jack Humbert ## quantum/config_common.h -* 35a81f5b8b081e1607a7c04489b01f551c3213cc Mon Oct 26 16:32:37 2015 -0400 -* aaa758f1d3f97dda39879f2b055ad2da9680adfe Mon May 23 20:42:21 2016 -0700 -* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 -* 705c775a4a433249081321cea0c2def2627817dc Sun Aug 21 22:05:55 2016 -0500 -* 936a26d04ffa12801031c058f27e221174e3fabd Thu Aug 25 00:15:41 2016 -0500 -* 6390033e8688550826a4bd3004a2e76568600657 Mon Nov 21 20:14:16 2016 -0500 -* 03d6e165bb0baf9d0093250d3c3c0771290df4d6 Fri Nov 25 09:17:40 2016 +0200 -* 0c9d66eb59add717397ba83d508577073412ce86 Fri Nov 25 09:20:41 2016 +0200 -* de1df639535817e17f1c01f07e7a629cec478526 Sat Nov 26 13:55:41 2016 +0700 -* 17acde94ee2695ab69ea336742c904d649dce17c Sat Nov 26 14:02:38 2016 +0700 -* d9d67e7b7686fdcbc7269a76d2a54c42325bdd03 Sat Nov 26 15:26:02 2016 +0700 -* f2214ce1cb6cfe7a0efabe870a2c00fb8451ee80 Sat Nov 26 15:57:48 2016 +0700 -* 6e0f994950435aa5867e7b7ce780186d881d74ac Mon Nov 28 23:51:07 2016 -0500 -* dd685eceb2045371d38f24d454f1ab08ca7416f4 Thu Dec 29 12:13:30 2016 +0200 +* 35a81f5b8b081e1607a7c04489b01f551c3213cc Mon Oct 26 16:32:37 2015 -0400 Jack Humbert +* aaa758f1d3f97dda39879f2b055ad2da9680adfe Mon May 23 20:42:21 2016 -0700 Eric Tang +* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 Jack Humbert +* 705c775a4a433249081321cea0c2def2627817dc Sun Aug 21 22:05:55 2016 -0500 IBNobody +* 936a26d04ffa12801031c058f27e221174e3fabd Thu Aug 25 00:15:41 2016 -0500 IBNobody +* 6390033e8688550826a4bd3004a2e76568600657 Mon Nov 21 20:14:16 2016 -0500 Jack Humbert +* 03d6e165bb0baf9d0093250d3c3c0771290df4d6 Fri Nov 25 09:17:40 2016 +0200 ofples +* 0c9d66eb59add717397ba83d508577073412ce86 Fri Nov 25 09:20:41 2016 +0200 ofples +* de1df639535817e17f1c01f07e7a629cec478526 Sat Nov 26 13:55:41 2016 +0700 Priyadi Iman Nurcahyo +* 17acde94ee2695ab69ea336742c904d649dce17c Sat Nov 26 14:02:38 2016 +0700 Priyadi Iman Nurcahyo +* d9d67e7b7686fdcbc7269a76d2a54c42325bdd03 Sat Nov 26 15:26:02 2016 +0700 Priyadi Iman Nurcahyo +* f2214ce1cb6cfe7a0efabe870a2c00fb8451ee80 Sat Nov 26 15:57:48 2016 +0700 Priyadi Iman Nurcahyo +* 6e0f994950435aa5867e7b7ce780186d881d74ac Mon Nov 28 23:51:07 2016 -0500 Jack Humbert +* dd685eceb2045371d38f24d454f1ab08ca7416f4 Thu Dec 29 12:13:30 2016 +0200 Fred Sundvik ## quantum/dynamic_macro.h -* 39e8e61258b51a2c33a94dd877e983f0b1dae0c1 Thu Aug 18 01:37:13 2016 +0200 -* 70f32842e5d94f14d05c1f9adcb1b1144a25a132 Sun Oct 9 12:52:39 2016 +0200 +* 39e8e61258b51a2c33a94dd877e983f0b1dae0c1 Thu Aug 18 01:37:13 2016 +0200 Wojciech Siewierski +* 70f32842e5d94f14d05c1f9adcb1b1144a25a132 Sun Oct 9 12:52:39 2016 +0200 Wojciech Siewierski ## quantum/keycode_config.c -* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert ## quantum/keycode_config.h -* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 -* 4d4f7684e684bec319f166121463a88cd4a62703 Fri Jul 1 17:04:53 2016 +0300 -* 558f3ec1eb325caf706efc15e2fab26121aba442 Tue Sep 6 23:19:01 2016 -0500 +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert +* 4d4f7684e684bec319f166121463a88cd4a62703 Fri Jul 1 17:04:53 2016 +0300 fredizzimo +* 558f3ec1eb325caf706efc15e2fab26121aba442 Tue Sep 6 23:19:01 2016 -0500 IBNobody ## quantum/keymap.h -* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 -* 76076db72545bbb649f11394a12721f61579527f Mon Jun 20 22:36:36 2016 -0400 -* 1a0bac8bccf0e156d2f3c5f14a7214f9677b6370 Tue Jun 21 17:42:29 2016 -0400 -* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 -* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 -* 4d4f7684e684bec319f166121463a88cd4a62703 Fri Jul 1 17:04:53 2016 +0300 -* 50c686587ed49d8079ba1b11d45ceb6a55d6cd4b Thu Jul 7 23:34:33 2016 -0400 -* e692ebf86a962e90c51302e7b17a953ea2858f79 Fri Aug 12 20:38:26 2016 +0900 -* 558f3ec1eb325caf706efc15e2fab26121aba442 Tue Sep 6 23:19:01 2016 -0500 -* 1048a588c750e27ff0f900cd6aaf670e034086d0 Fri Oct 7 17:15:11 2016 +0200 -* 5b2e455d3b71bfb90754930d1f22d3e8ce98b927 Mon Oct 10 00:46:20 2016 +0700 -* e27a754b70434de88a37c4a572e4ca5f7730ff58 Wed Oct 12 22:18:27 2016 -0400 -* 52d7f7d2770a35adf0b0b0c803e05ae8719f539f Sun Oct 16 15:49:45 2016 -0400 -* 5f91fb413624781ac79db641549b9e08753c04b5 Sun Oct 16 16:03:33 2016 -0400 -* 33e62c080c9161a0fc921c90ed299a67fc2e1799 Sat Nov 12 20:54:37 2016 -0500 -* 01038ab54ca6c2858ea9e856c717a1129ffe4156 Fri Dec 23 21:51:11 2016 +0200 -* d8a608f3ff4cb4d73cd57be500fd9881e230099d Thu Dec 29 18:28:48 2016 +1100 +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert +* 76076db72545bbb649f11394a12721f61579527f Mon Jun 20 22:36:36 2016 -0400 Jack & Erez +* 1a0bac8bccf0e156d2f3c5f14a7214f9677b6370 Tue Jun 21 17:42:29 2016 -0400 Jack Humbert +* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 Jack Humbert +* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 Jack Humbert +* 4d4f7684e684bec319f166121463a88cd4a62703 Fri Jul 1 17:04:53 2016 +0300 fredizzimo +* 50c686587ed49d8079ba1b11d45ceb6a55d6cd4b Thu Jul 7 23:34:33 2016 -0400 TerryMathews +* e692ebf86a962e90c51302e7b17a953ea2858f79 Fri Aug 12 20:38:26 2016 +0900 shela +* 558f3ec1eb325caf706efc15e2fab26121aba442 Tue Sep 6 23:19:01 2016 -0500 IBNobody +* 1048a588c750e27ff0f900cd6aaf670e034086d0 Fri Oct 7 17:15:11 2016 +0200 npoirey +* 5b2e455d3b71bfb90754930d1f22d3e8ce98b927 Mon Oct 10 00:46:20 2016 +0700 Priyadi Iman Nurcahyo +* e27a754b70434de88a37c4a572e4ca5f7730ff58 Wed Oct 12 22:18:27 2016 -0400 Jack & Erez +* 52d7f7d2770a35adf0b0b0c803e05ae8719f539f Sun Oct 16 15:49:45 2016 -0400 Jack Humbert +* 5f91fb413624781ac79db641549b9e08753c04b5 Sun Oct 16 16:03:33 2016 -0400 Jack Humbert +* 33e62c080c9161a0fc921c90ed299a67fc2e1799 Sat Nov 12 20:54:37 2016 -0500 Jack Humbert +* 01038ab54ca6c2858ea9e856c717a1129ffe4156 Fri Dec 23 21:51:11 2016 +0200 Ofer Plesser +* d8a608f3ff4cb4d73cd57be500fd9881e230099d Thu Dec 29 18:28:48 2016 +1100 Wilba6582 ## quantum/keymap_common.c -* 46e7fb2d3ccd699c0a1b1fd9d02860b1f2a44141 Mon Oct 26 14:49:46 2015 -0400 -* 35a81f5b8b081e1607a7c04489b01f551c3213cc Mon Oct 26 16:32:37 2015 -0400 -* cc1c32671eb1eb43a87e55ac4ffa60b15115e48d Mon Oct 26 20:02:25 2015 -0400 -* d9f08e6177271594fa573993d9f4dbc2d98c7416 Tue Oct 27 22:00:52 2015 -0400 -* 18da1e6801335b0d9515ab72e9236a01d629915f Tue Oct 27 23:06:18 2015 -0400 -* d3db8d62f6fc6a7dee43978ddc8356579b502b37 Wed Oct 28 04:07:15 2015 +0200 -* 7d6716beded4a60cd9de24e95d8ec60694692b6f Fri Jan 29 23:27:36 2016 -0500 -* 65b41e2e59e274354e57ed36cad097823f111f1a Sun Feb 7 11:48:28 2016 +0100 -* 47dcec29456106828b83fe5b85fa7a7427ddc710 Sun Jan 3 17:49:28 2016 -0500 -* 1d13aa933bbb57bf0c1fe0196981b81233c3df97 Mon Mar 28 19:45:20 2016 -0500 -* 3755ef5ddbdad9f25a53fee951c3eb78035b52c3 Wed Apr 13 20:57:51 2016 -0500 -* ee2ee7f4f049dda385a9db7dddd8e7e91681315b Fri Apr 15 13:44:07 2016 -0400 -* 9cfc74c35b940884618b0fe1e6fd25c570e1c974 Thu Apr 7 15:21:06 2016 +0300 -* ab19ebd08a8b955775e6fa94cdf6b8d128d8b43c Sat Apr 16 18:51:58 2016 -0400 -* c83aa16f1d614c1c10f7597a67ffb9f2ae871951 Sat Apr 16 20:26:02 2016 -0400 -* 41cc35425ab32c9a9492006da8b667d01d32dfa6 Sat Apr 16 21:31:40 2016 -0400 -* 8bbd064cf52a76508589579f19595607a1f3af21 Sat Apr 16 23:07:50 2016 -0400 -* 45f10b4c4b308226fa1568277654a13853a03ab4 Sat Apr 16 22:10:18 2016 -0500 -* e7b9959819e709d7df2e96a94bdaf36e4e9e23e3 Sat Apr 16 23:15:40 2016 -0400 -* a67d425f4d5278595e7ab785a0f246b83fb1a09f Sun Apr 17 01:00:39 2016 -0400 -* d5b72e7bde5ede25f7d5699b50b7d9eb6f31ba92 Sun Apr 17 12:54:32 2016 -0500 -* 3103ea542f0039637a1a266df79a97a7a13fa6b4 Sun Apr 17 12:55:19 2016 -0500 -* 23231fa577f7c6c585124226a83f21a7668e62dd Sun Apr 17 14:16:03 2016 -0500 -* 5c98ad59606ee95b82c27bf2525383a9ec88542b Sun Apr 17 20:14:37 2016 -0500 -* e49712b5593b887c8af18aeb7196513f1c7b7bcf Mon Apr 18 21:01:48 2016 -0400 -* 620ac4b260fa663d12b11a0b15ac50379523c125 Thu Apr 21 19:35:18 2016 -0700 -* 83e1cc241e3aabd69f6cdcd2581477d4b85bb8d3 Tue May 3 12:56:40 2016 -0500 -* 41b3e399b1d43db9574c6016951d92974b3d93e7 Thu May 5 21:50:51 2016 -0400 -* 1a8c0dd22d6a2255511d0db6a456315541b5815b Sun May 15 00:27:32 2016 -0400 -* fde477a927edc6b4207a6968d44aeed021e8b300 Sun May 15 00:51:06 2016 -0400 -* b732b79b49b098dba8e14493c745075f336747d8 Wed May 18 23:47:16 2016 -0400 -* 287eb7ad148abc8fe3fb014218d71e205fd9131d Tue May 24 11:56:53 2016 -0400 -* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 -* 4d4f7684e684bec319f166121463a88cd4a62703 Fri Jul 1 17:04:53 2016 +0300 -* 9870082a06386eba8c0c5f22da90d0256ef6244b Thu Jul 7 19:48:39 2016 +0300 -* 8b94e26d7c3b30cc57d710a11e5651d15e8e3b20 Sun Jul 24 22:07:43 2016 -0400 -* d8a608f3ff4cb4d73cd57be500fd9881e230099d Thu Dec 29 18:28:48 2016 +1100 +* 46e7fb2d3ccd699c0a1b1fd9d02860b1f2a44141 Mon Oct 26 14:49:46 2015 -0400 Jack Humbert +* 35a81f5b8b081e1607a7c04489b01f551c3213cc Mon Oct 26 16:32:37 2015 -0400 Jack Humbert +* cc1c32671eb1eb43a87e55ac4ffa60b15115e48d Mon Oct 26 20:02:25 2015 -0400 Jack Humbert +* d9f08e6177271594fa573993d9f4dbc2d98c7416 Tue Oct 27 22:00:52 2015 -0400 Jack Humbert +* 18da1e6801335b0d9515ab72e9236a01d629915f Tue Oct 27 23:06:18 2015 -0400 Jack Humbert +* d3db8d62f6fc6a7dee43978ddc8356579b502b37 Wed Oct 28 04:07:15 2015 +0200 Erez Zukerman +* 7d6716beded4a60cd9de24e95d8ec60694692b6f Fri Jan 29 23:27:36 2016 -0500 Jack Humbert +* 65b41e2e59e274354e57ed36cad097823f111f1a Sun Feb 7 11:48:28 2016 +0100 Wojciech Siewierski +* 47dcec29456106828b83fe5b85fa7a7427ddc710 Sun Jan 3 17:49:28 2016 -0500 Chris Gerber +* 1d13aa933bbb57bf0c1fe0196981b81233c3df97 Mon Mar 28 19:45:20 2016 -0500 IBNobody +* 3755ef5ddbdad9f25a53fee951c3eb78035b52c3 Wed Apr 13 20:57:51 2016 -0500 IBNobody +* ee2ee7f4f049dda385a9db7dddd8e7e91681315b Fri Apr 15 13:44:07 2016 -0400 Jack Humbert +* 9cfc74c35b940884618b0fe1e6fd25c570e1c974 Thu Apr 7 15:21:06 2016 +0300 Erez Zukerman +* ab19ebd08a8b955775e6fa94cdf6b8d128d8b43c Sat Apr 16 18:51:58 2016 -0400 Jack Humbert +* c83aa16f1d614c1c10f7597a67ffb9f2ae871951 Sat Apr 16 20:26:02 2016 -0400 Jack Humbert +* 41cc35425ab32c9a9492006da8b667d01d32dfa6 Sat Apr 16 21:31:40 2016 -0400 Jack Humbert +* 8bbd064cf52a76508589579f19595607a1f3af21 Sat Apr 16 23:07:50 2016 -0400 Jack Humbert +* 45f10b4c4b308226fa1568277654a13853a03ab4 Sat Apr 16 22:10:18 2016 -0500 IBNobody +* e7b9959819e709d7df2e96a94bdaf36e4e9e23e3 Sat Apr 16 23:15:40 2016 -0400 Jack Humbert +* a67d425f4d5278595e7ab785a0f246b83fb1a09f Sun Apr 17 01:00:39 2016 -0400 Jack Humbert +* d5b72e7bde5ede25f7d5699b50b7d9eb6f31ba92 Sun Apr 17 12:54:32 2016 -0500 IBNobody +* 3103ea542f0039637a1a266df79a97a7a13fa6b4 Sun Apr 17 12:55:19 2016 -0500 IBNobody +* 23231fa577f7c6c585124226a83f21a7668e62dd Sun Apr 17 14:16:03 2016 -0500 IBNobody +* 5c98ad59606ee95b82c27bf2525383a9ec88542b Sun Apr 17 20:14:37 2016 -0500 IBNobody +* e49712b5593b887c8af18aeb7196513f1c7b7bcf Mon Apr 18 21:01:48 2016 -0400 Jack Humbert +* 620ac4b260fa663d12b11a0b15ac50379523c125 Thu Apr 21 19:35:18 2016 -0700 Eric Tang +* 83e1cc241e3aabd69f6cdcd2581477d4b85bb8d3 Tue May 3 12:56:40 2016 -0500 IBNobody +* 41b3e399b1d43db9574c6016951d92974b3d93e7 Thu May 5 21:50:51 2016 -0400 Jack Humbert +* 1a8c0dd22d6a2255511d0db6a456315541b5815b Sun May 15 00:27:32 2016 -0400 Erez Zukerman +* fde477a927edc6b4207a6968d44aeed021e8b300 Sun May 15 00:51:06 2016 -0400 Jack Humbert +* b732b79b49b098dba8e14493c745075f336747d8 Wed May 18 23:47:16 2016 -0400 Jack Humbert +* 287eb7ad148abc8fe3fb014218d71e205fd9131d Tue May 24 11:56:53 2016 -0400 Jack Humbert +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert +* 4d4f7684e684bec319f166121463a88cd4a62703 Fri Jul 1 17:04:53 2016 +0300 fredizzimo +* 9870082a06386eba8c0c5f22da90d0256ef6244b Thu Jul 7 19:48:39 2016 +0300 Fred Sundvik +* 8b94e26d7c3b30cc57d710a11e5651d15e8e3b20 Sun Jul 24 22:07:43 2016 -0400 Jack Humbert +* d8a608f3ff4cb4d73cd57be500fd9881e230099d Thu Dec 29 18:28:48 2016 +1100 Wilba6582 ## quantum/light_ws2812.c -* ba9ac457b2159097ecfd9848c5171c52e3a68260 Sun Jan 24 17:05:47 2016 -0800 -* 57e08eb8badc5db2fb44d2df684f32ea48cce411 Thu Jul 7 11:33:32 2016 -0400 -* 5f91fb413624781ac79db641549b9e08753c04b5 Sun Oct 16 16:03:33 2016 -0400 -* 33e62c080c9161a0fc921c90ed299a67fc2e1799 Sat Nov 12 20:54:37 2016 -0500 -* e9f748751808de2f1e85cf7fb670d78773bd5e76 Sun Nov 13 23:02:38 2016 -0500 -* 530dd3377e4d409a7ca2fee7e47b60b735ebc0fa Tue Nov 15 13:18:10 2016 -0500 -* 3774a7fcdab5544fc787f4c200be05fcd417e31f Thu Nov 17 17:42:14 2016 -0500 +* ba9ac457b2159097ecfd9848c5171c52e3a68260 Sun Jan 24 17:05:47 2016 -0800 Yang Liu +* 57e08eb8badc5db2fb44d2df684f32ea48cce411 Thu Jul 7 11:33:32 2016 -0400 Jack Humbert +* 5f91fb413624781ac79db641549b9e08753c04b5 Sun Oct 16 16:03:33 2016 -0400 Jack Humbert +* 33e62c080c9161a0fc921c90ed299a67fc2e1799 Sat Nov 12 20:54:37 2016 -0500 Jack Humbert +* e9f748751808de2f1e85cf7fb670d78773bd5e76 Sun Nov 13 23:02:38 2016 -0500 Jack Humbert +* 530dd3377e4d409a7ca2fee7e47b60b735ebc0fa Tue Nov 15 13:18:10 2016 -0500 Jack Humbert +* 3774a7fcdab5544fc787f4c200be05fcd417e31f Thu Nov 17 17:42:14 2016 -0500 Jack Humbert ## quantum/light_ws2812.h -* ba9ac457b2159097ecfd9848c5171c52e3a68260 Sun Jan 24 17:05:47 2016 -0800 -* 5f91fb413624781ac79db641549b9e08753c04b5 Sun Oct 16 16:03:33 2016 -0400 -* e9f748751808de2f1e85cf7fb670d78773bd5e76 Sun Nov 13 23:02:38 2016 -0500 -* 664c0a036b3d7c3ed39f4a7a78d97f4a9cc7d20c Mon Nov 21 19:50:55 2016 -0500 -* 06c64bbff3e228df542149acde64eadaf59b9b0f Mon Dec 19 11:18:18 2016 -0500 +* ba9ac457b2159097ecfd9848c5171c52e3a68260 Sun Jan 24 17:05:47 2016 -0800 Yang Liu +* 5f91fb413624781ac79db641549b9e08753c04b5 Sun Oct 16 16:03:33 2016 -0400 Jack Humbert +* e9f748751808de2f1e85cf7fb670d78773bd5e76 Sun Nov 13 23:02:38 2016 -0500 Jack Humbert +* 664c0a036b3d7c3ed39f4a7a78d97f4a9cc7d20c Mon Nov 21 19:50:55 2016 -0500 Jack Humbert +* 06c64bbff3e228df542149acde64eadaf59b9b0f Mon Dec 19 11:18:18 2016 -0500 Jack Humbert ## quantum/matrix.c -* 46e7fb2d3ccd699c0a1b1fd9d02860b1f2a44141 Mon Oct 26 14:49:46 2015 -0400 -* 35a81f5b8b081e1607a7c04489b01f551c3213cc Mon Oct 26 16:32:37 2015 -0400 -* 641859df84bf40025b2c14319d1a168a435562e2 Thu Mar 10 11:28:34 2016 -0500 -* 684793360cdb08ac1e50a6d27e1796fadd527adb Mon May 9 00:36:23 2016 -0400 -* 1a8c0dd22d6a2255511d0db6a456315541b5815b Sun May 15 00:27:32 2016 -0400 -* aaa758f1d3f97dda39879f2b055ad2da9680adfe Mon May 23 20:42:21 2016 -0700 -* 1ae6011cef2230826a9e6db6c5b638677bc640b7 Tue May 24 08:44:40 2016 -0700 -* de57799530d3184722532f93d156364067d8fcd5 Sat May 28 11:56:06 2016 -0400 -* 008c8d54a0a1a1e908d372d0fe9edb45a2d491e5 Fri Jun 17 22:09:59 2016 -0400 -* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 -* 215c2119af5281072d5a6efb0308408793cadd08 Wed Jun 29 16:21:41 2016 -0400 -* 4d4f7684e684bec319f166121463a88cd4a62703 Fri Jul 1 17:04:53 2016 +0300 -* 8e88d55bfd7c88cb15845e0c6415e4e892532861 Mon Jul 4 11:45:58 2016 -0400 -* 3577e26fd9916ceab58779ec6323d43da54eb3b5 Wed Jul 6 00:24:31 2016 -0400 -* 17170ba76d3c94edcf1ab263520238fdb0384774 Sun Oct 23 23:00:43 2016 -0500 -* 508eddf8ba8548d3f71e1c09a404839beb49f45c Fri Oct 28 14:21:38 2016 -0500 -* 4c6960835c0a6e29670dabdc27117d7d3c7f99f5 Fri Oct 28 16:24:20 2016 -0500 -* 32f88c07173b795c6981c779057dceba00aeb1cb Sat Oct 29 10:39:03 2016 -0500 -* f4030289744fc6dc82dd85c955070c0845813cc5 Sat Oct 29 16:12:58 2016 -0500 -* a06115df19a74d39b08758472b221e630c3680d3 Fri Nov 18 23:20:07 2016 -0500 +* 46e7fb2d3ccd699c0a1b1fd9d02860b1f2a44141 Mon Oct 26 14:49:46 2015 -0400 Jack Humbert +* 35a81f5b8b081e1607a7c04489b01f551c3213cc Mon Oct 26 16:32:37 2015 -0400 Jack Humbert +* 641859df84bf40025b2c14319d1a168a435562e2 Thu Mar 10 11:28:34 2016 -0500 yoyoerx +* 684793360cdb08ac1e50a6d27e1796fadd527adb Mon May 9 00:36:23 2016 -0400 Jack Humbert +* 1a8c0dd22d6a2255511d0db6a456315541b5815b Sun May 15 00:27:32 2016 -0400 Erez Zukerman +* aaa758f1d3f97dda39879f2b055ad2da9680adfe Mon May 23 20:42:21 2016 -0700 Eric Tang +* 1ae6011cef2230826a9e6db6c5b638677bc640b7 Tue May 24 08:44:40 2016 -0700 Eric Tang +* de57799530d3184722532f93d156364067d8fcd5 Sat May 28 11:56:06 2016 -0400 Jack Humbert +* 008c8d54a0a1a1e908d372d0fe9edb45a2d491e5 Fri Jun 17 22:09:59 2016 -0400 Jack Humbert +* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 Jack Humbert +* 215c2119af5281072d5a6efb0308408793cadd08 Wed Jun 29 16:21:41 2016 -0400 Jack Humbert +* 4d4f7684e684bec319f166121463a88cd4a62703 Fri Jul 1 17:04:53 2016 +0300 fredizzimo +* 8e88d55bfd7c88cb15845e0c6415e4e892532861 Mon Jul 4 11:45:58 2016 -0400 Jack Humbert +* 3577e26fd9916ceab58779ec6323d43da54eb3b5 Wed Jul 6 00:24:31 2016 -0400 Jack Humbert +* 17170ba76d3c94edcf1ab263520238fdb0384774 Sun Oct 23 23:00:43 2016 -0500 IBNobody +* 508eddf8ba8548d3f71e1c09a404839beb49f45c Fri Oct 28 14:21:38 2016 -0500 IBNobody +* 4c6960835c0a6e29670dabdc27117d7d3c7f99f5 Fri Oct 28 16:24:20 2016 -0500 IBNobody +* 32f88c07173b795c6981c779057dceba00aeb1cb Sat Oct 29 10:39:03 2016 -0500 IBNobody +* f4030289744fc6dc82dd85c955070c0845813cc5 Sat Oct 29 16:12:58 2016 -0500 IBNobody +* a06115df19a74d39b08758472b221e630c3680d3 Fri Nov 18 23:20:07 2016 -0500 Jack Humbert ## quantum/pincontrol.h -* 8485bb34d2e291db5b6c81f892850da1cdca37ba Sun Nov 27 22:43:11 2016 -0800 +* 8485bb34d2e291db5b6c81f892850da1cdca37ba Sun Nov 27 22:43:11 2016 -0800 Wez Furlong ## quantum/quantum.c -* 1a8c0dd22d6a2255511d0db6a456315541b5815b Sun May 15 00:27:32 2016 -0400 -* 15719f3574c6274ee0f3ec87431927c5a523aa3e Sun May 15 00:40:59 2016 -0400 -* bf5c2ccee5497523c214dae7aacdc27fdbb0f235 Sun May 15 00:47:25 2016 -0400 -* fde477a927edc6b4207a6968d44aeed021e8b300 Sun May 15 00:51:06 2016 -0400 -* 0428214b905e5f8b3bed721885957ce249ba4991 Wed May 18 23:14:00 2016 -0400 -* b732b79b49b098dba8e14493c745075f336747d8 Wed May 18 23:47:16 2016 -0400 -* 0275d444d77c9d85d2189b09d8813fb76dc4d566 Thu May 19 15:36:28 2016 +0300 -* 287eb7ad148abc8fe3fb014218d71e205fd9131d Tue May 24 11:56:53 2016 -0400 -* 1237025963484d70bbe5185a790bec6544653ccc Tue May 24 23:27:59 2016 -0400 -* 8bc69afc633d3e199e3ac0a5bf39e4d255f2ce4a Tue May 24 23:48:46 2016 -0400 -* 17977a7e24ddab6ca101341b33c8fe7ad13e68f5 Sat May 28 15:22:30 2016 -0400 -* 1c9f33c06a6ef18c9c21e5841180af5ae554c34b Wed Jun 1 22:49:55 2016 -0400 -* 4635b4453335b61df11008fa907eef221db5912b Wed Jun 1 23:00:55 2016 -0400 -* 794aed37a0da5a277a07e7fa86263e0852fa9f6d Fri Jun 3 12:48:40 2016 -0700 -* b70248fa2144d297504eedbc80a76dfdc40d9f1f Fri Jun 17 21:42:59 2016 -0400 -* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 -* 76076db72545bbb649f11394a12721f61579527f Mon Jun 20 22:36:36 2016 -0400 -* 98f0807359cfa78d25442b91ff4c5bbfc5679661 Tue Jun 21 22:55:54 2016 -0400 -* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 -* b68b722325e1f0f68387e161365fa8e31c79b7b2 Thu Jun 23 23:14:21 2016 -0400 -* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 -* 197f152dee834a737cd820f2a95d1ade98be4898 Wed Jun 29 18:29:20 2016 -0400 -* 60fd885a6e540509baa2193932e15caeaeb8f4c5 Wed Jun 29 18:35:29 2016 -0400 -* 4d4f7684e684bec319f166121463a88cd4a62703 Fri Jul 1 17:04:53 2016 +0300 -* 1412076df68ac00f9a00173977d2826603c12ddf Mon Jul 4 19:56:08 2016 -0700 -* 6b0c9cc905c0985f96a80306cf5fe0d6724b28fc Mon Jul 4 19:58:26 2016 -0700 -* a4bf46f9b1d0a0be0cecb2cd0f0d941aa7c71bd3 Wed Jul 6 22:48:19 2016 -0400 -* 50c686587ed49d8079ba1b11d45ceb6a55d6cd4b Thu Jul 7 23:34:33 2016 -0400 -* f7a86822266603b8ffd21e9f89ec1de8d4950791 Fri Jul 8 03:32:28 2016 -0400 -* b12fe6abb25db1feca6a7649097a8d1cb67a063f Sun Jul 10 19:04:01 2016 -0700 -* a998a48673372e409991066d7d2d9ba282f79d59 Mon Jul 11 09:14:43 2016 -0400 -* a28a6e5b79c819e5f9323f62686498eca3ef399f Wed Jul 13 16:38:02 2016 +0200 -* 857aa5bef6a74f8785a7039feea5286c07bf7067 Sat Aug 13 11:14:42 2016 +0200 -* 644c8c79271db8cf1bd934b9a80a0215585e46e7 Thu Aug 18 01:34:05 2016 +0200 -* 0d28787c5cf2173d12f57b397515f91cffaa820a Thu Aug 18 11:29:53 2016 +0200 -* e571d4656cd283ce8d793fe3dd2ac176b84b0bf5 Tue Sep 6 18:02:43 2016 -0500 -* 558f3ec1eb325caf706efc15e2fab26121aba442 Tue Sep 6 23:19:01 2016 -0500 -* 5b2e455d3b71bfb90754930d1f22d3e8ce98b927 Mon Oct 10 00:46:20 2016 +0700 -* 5f91fb413624781ac79db641549b9e08753c04b5 Sun Oct 16 16:03:33 2016 -0400 -* 33e62c080c9161a0fc921c90ed299a67fc2e1799 Sat Nov 12 20:54:37 2016 -0500 -* e9f748751808de2f1e85cf7fb670d78773bd5e76 Sun Nov 13 23:02:38 2016 -0500 -* ffa5b1e7ea6697acf9ebfcade1149031642f7870 Sat Nov 19 11:32:09 2016 +0100 -* 74a1f00713d1407fb1d2e20d58da93919ab0c221 Sat Nov 19 18:19:18 2016 +0100 -* 664c0a036b3d7c3ed39f4a7a78d97f4a9cc7d20c Mon Nov 21 19:50:55 2016 -0500 -* 450a8fb5b61de8166fe21eb4f57e1c00514afe32 Mon Nov 21 20:17:45 2016 -0500 -* cefa8468fb5f28bd67a0c02d371a4aef0964e20c Wed Nov 23 20:16:38 2016 -0500 -* 7edac212c8ed8442bf4207e70dc8194631b2bf27 Sat Nov 26 15:37:46 2016 -0500 -* 01038ab54ca6c2858ea9e856c717a1129ffe4156 Fri Dec 23 21:51:11 2016 +0200 +* 1a8c0dd22d6a2255511d0db6a456315541b5815b Sun May 15 00:27:32 2016 -0400 Erez Zukerman +* 15719f3574c6274ee0f3ec87431927c5a523aa3e Sun May 15 00:40:59 2016 -0400 Jack Humbert +* bf5c2ccee5497523c214dae7aacdc27fdbb0f235 Sun May 15 00:47:25 2016 -0400 Jack Humbert +* fde477a927edc6b4207a6968d44aeed021e8b300 Sun May 15 00:51:06 2016 -0400 Jack Humbert +* 0428214b905e5f8b3bed721885957ce249ba4991 Wed May 18 23:14:00 2016 -0400 Jack Humbert +* b732b79b49b098dba8e14493c745075f336747d8 Wed May 18 23:47:16 2016 -0400 Jack Humbert +* 0275d444d77c9d85d2189b09d8813fb76dc4d566 Thu May 19 15:36:28 2016 +0300 purpleP +* 287eb7ad148abc8fe3fb014218d71e205fd9131d Tue May 24 11:56:53 2016 -0400 Jack Humbert +* 1237025963484d70bbe5185a790bec6544653ccc Tue May 24 23:27:59 2016 -0400 Erez Zukerman +* 8bc69afc633d3e199e3ac0a5bf39e4d255f2ce4a Tue May 24 23:48:46 2016 -0400 Erez Zukerman +* 17977a7e24ddab6ca101341b33c8fe7ad13e68f5 Sat May 28 15:22:30 2016 -0400 Jack Humbert +* 1c9f33c06a6ef18c9c21e5841180af5ae554c34b Wed Jun 1 22:49:55 2016 -0400 Jack Humbert +* 4635b4453335b61df11008fa907eef221db5912b Wed Jun 1 23:00:55 2016 -0400 Jack Humbert +* 794aed37a0da5a277a07e7fa86263e0852fa9f6d Fri Jun 3 12:48:40 2016 -0700 Eric Tang +* b70248fa2144d297504eedbc80a76dfdc40d9f1f Fri Jun 17 21:42:59 2016 -0400 Jack Humbert +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert +* 76076db72545bbb649f11394a12721f61579527f Mon Jun 20 22:36:36 2016 -0400 Jack & Erez +* 98f0807359cfa78d25442b91ff4c5bbfc5679661 Tue Jun 21 22:55:54 2016 -0400 Jack Humbert +* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 Jack Humbert +* b68b722325e1f0f68387e161365fa8e31c79b7b2 Thu Jun 23 23:14:21 2016 -0400 Jack Humbert +* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 Jack Humbert +* 197f152dee834a737cd820f2a95d1ade98be4898 Wed Jun 29 18:29:20 2016 -0400 Jack Humbert +* 60fd885a6e540509baa2193932e15caeaeb8f4c5 Wed Jun 29 18:35:29 2016 -0400 Jack Humbert +* 4d4f7684e684bec319f166121463a88cd4a62703 Fri Jul 1 17:04:53 2016 +0300 fredizzimo +* 1412076df68ac00f9a00173977d2826603c12ddf Mon Jul 4 19:56:08 2016 -0700 Smilliam +* 6b0c9cc905c0985f96a80306cf5fe0d6724b28fc Mon Jul 4 19:58:26 2016 -0700 Smilliam +* a4bf46f9b1d0a0be0cecb2cd0f0d941aa7c71bd3 Wed Jul 6 22:48:19 2016 -0400 Jack Humbert +* 50c686587ed49d8079ba1b11d45ceb6a55d6cd4b Thu Jul 7 23:34:33 2016 -0400 TerryMathews +* f7a86822266603b8ffd21e9f89ec1de8d4950791 Fri Jul 8 03:32:28 2016 -0400 TerryMathews +* b12fe6abb25db1feca6a7649097a8d1cb67a063f Sun Jul 10 19:04:01 2016 -0700 Smilliam +* a998a48673372e409991066d7d2d9ba282f79d59 Mon Jul 11 09:14:43 2016 -0400 Jack Humbert +* a28a6e5b79c819e5f9323f62686498eca3ef399f Wed Jul 13 16:38:02 2016 +0200 Pavlos Vinieratos +* 857aa5bef6a74f8785a7039feea5286c07bf7067 Sat Aug 13 11:14:42 2016 +0200 Gergely Nagy +* 644c8c79271db8cf1bd934b9a80a0215585e46e7 Thu Aug 18 01:34:05 2016 +0200 Wojciech Siewierski +* 0d28787c5cf2173d12f57b397515f91cffaa820a Thu Aug 18 11:29:53 2016 +0200 Gergely Nagy +* e571d4656cd283ce8d793fe3dd2ac176b84b0bf5 Tue Sep 6 18:02:43 2016 -0500 IBNobody +* 558f3ec1eb325caf706efc15e2fab26121aba442 Tue Sep 6 23:19:01 2016 -0500 IBNobody +* 5b2e455d3b71bfb90754930d1f22d3e8ce98b927 Mon Oct 10 00:46:20 2016 +0700 Priyadi Iman Nurcahyo +* 5f91fb413624781ac79db641549b9e08753c04b5 Sun Oct 16 16:03:33 2016 -0400 Jack Humbert +* 33e62c080c9161a0fc921c90ed299a67fc2e1799 Sat Nov 12 20:54:37 2016 -0500 Jack Humbert +* e9f748751808de2f1e85cf7fb670d78773bd5e76 Sun Nov 13 23:02:38 2016 -0500 Jack Humbert +* ffa5b1e7ea6697acf9ebfcade1149031642f7870 Sat Nov 19 11:32:09 2016 +0100 Gergely Nagy +* 74a1f00713d1407fb1d2e20d58da93919ab0c221 Sat Nov 19 18:19:18 2016 +0100 Gergely Nagy +* 664c0a036b3d7c3ed39f4a7a78d97f4a9cc7d20c Mon Nov 21 19:50:55 2016 -0500 Jack Humbert +* 450a8fb5b61de8166fe21eb4f57e1c00514afe32 Mon Nov 21 20:17:45 2016 -0500 Jack Humbert +* cefa8468fb5f28bd67a0c02d371a4aef0964e20c Wed Nov 23 20:16:38 2016 -0500 Jack Humbert +* 7edac212c8ed8442bf4207e70dc8194631b2bf27 Sat Nov 26 15:37:46 2016 -0500 Jack Humbert +* 01038ab54ca6c2858ea9e856c717a1129ffe4156 Fri Dec 23 21:51:11 2016 +0200 Ofer Plesser ## quantum/quantum.h -* 1a8c0dd22d6a2255511d0db6a456315541b5815b Sun May 15 00:27:32 2016 -0400 -* fde477a927edc6b4207a6968d44aeed021e8b300 Sun May 15 00:51:06 2016 -0400 -* 0428214b905e5f8b3bed721885957ce249ba4991 Wed May 18 23:14:00 2016 -0400 -* b732b79b49b098dba8e14493c745075f336747d8 Wed May 18 23:47:16 2016 -0400 -* 287eb7ad148abc8fe3fb014218d71e205fd9131d Tue May 24 11:56:53 2016 -0400 -* de57799530d3184722532f93d156364067d8fcd5 Sat May 28 11:56:06 2016 -0400 -* 17977a7e24ddab6ca101341b33c8fe7ad13e68f5 Sat May 28 15:22:30 2016 -0400 -* 1c9f33c06a6ef18c9c21e5841180af5ae554c34b Wed Jun 1 22:49:55 2016 -0400 -* 794aed37a0da5a277a07e7fa86263e0852fa9f6d Fri Jun 3 12:48:40 2016 -0700 -* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 -* 98f0807359cfa78d25442b91ff4c5bbfc5679661 Tue Jun 21 22:55:54 2016 -0400 -* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 -* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 -* 197f152dee834a737cd820f2a95d1ade98be4898 Wed Jun 29 18:29:20 2016 -0400 -* 8125cdb88ce1201fcfd16ed4c5313222ef4c230c Wed Jun 29 18:36:52 2016 -0400 -* 4d4f7684e684bec319f166121463a88cd4a62703 Fri Jul 1 17:04:53 2016 +0300 -* a28a6e5b79c819e5f9323f62686498eca3ef399f Wed Jul 13 16:38:02 2016 +0200 -* e01b4c3fd9a7b66276ffd22dcac25d569d7bb7ff Sat Jul 9 00:41:15 2016 +0300 -* 0d28787c5cf2173d12f57b397515f91cffaa820a Thu Aug 18 11:29:53 2016 +0200 -* 5f91fb413624781ac79db641549b9e08753c04b5 Sun Oct 16 16:03:33 2016 -0400 -* 664c0a036b3d7c3ed39f4a7a78d97f4a9cc7d20c Mon Nov 21 19:50:55 2016 -0500 -* cefa8468fb5f28bd67a0c02d371a4aef0964e20c Wed Nov 23 20:16:38 2016 -0500 -* 7edac212c8ed8442bf4207e70dc8194631b2bf27 Sat Nov 26 15:37:46 2016 -0500 +* 1a8c0dd22d6a2255511d0db6a456315541b5815b Sun May 15 00:27:32 2016 -0400 Erez Zukerman +* fde477a927edc6b4207a6968d44aeed021e8b300 Sun May 15 00:51:06 2016 -0400 Jack Humbert +* 0428214b905e5f8b3bed721885957ce249ba4991 Wed May 18 23:14:00 2016 -0400 Jack Humbert +* b732b79b49b098dba8e14493c745075f336747d8 Wed May 18 23:47:16 2016 -0400 Jack Humbert +* 287eb7ad148abc8fe3fb014218d71e205fd9131d Tue May 24 11:56:53 2016 -0400 Jack Humbert +* de57799530d3184722532f93d156364067d8fcd5 Sat May 28 11:56:06 2016 -0400 Jack Humbert +* 17977a7e24ddab6ca101341b33c8fe7ad13e68f5 Sat May 28 15:22:30 2016 -0400 Jack Humbert +* 1c9f33c06a6ef18c9c21e5841180af5ae554c34b Wed Jun 1 22:49:55 2016 -0400 Jack Humbert +* 794aed37a0da5a277a07e7fa86263e0852fa9f6d Fri Jun 3 12:48:40 2016 -0700 Eric Tang +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert +* 98f0807359cfa78d25442b91ff4c5bbfc5679661 Tue Jun 21 22:55:54 2016 -0400 Jack Humbert +* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 Jack Humbert +* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 Jack Humbert +* 197f152dee834a737cd820f2a95d1ade98be4898 Wed Jun 29 18:29:20 2016 -0400 Jack Humbert +* 8125cdb88ce1201fcfd16ed4c5313222ef4c230c Wed Jun 29 18:36:52 2016 -0400 Jack Humbert +* 4d4f7684e684bec319f166121463a88cd4a62703 Fri Jul 1 17:04:53 2016 +0300 fredizzimo +* a28a6e5b79c819e5f9323f62686498eca3ef399f Wed Jul 13 16:38:02 2016 +0200 Pavlos Vinieratos +* e01b4c3fd9a7b66276ffd22dcac25d569d7bb7ff Sat Jul 9 00:41:15 2016 +0300 Fred Sundvik +* 0d28787c5cf2173d12f57b397515f91cffaa820a Thu Aug 18 11:29:53 2016 +0200 Gergely Nagy +* 5f91fb413624781ac79db641549b9e08753c04b5 Sun Oct 16 16:03:33 2016 -0400 Jack Humbert +* 664c0a036b3d7c3ed39f4a7a78d97f4a9cc7d20c Mon Nov 21 19:50:55 2016 -0500 Jack Humbert +* cefa8468fb5f28bd67a0c02d371a4aef0964e20c Wed Nov 23 20:16:38 2016 -0500 Jack Humbert +* 7edac212c8ed8442bf4207e70dc8194631b2bf27 Sat Nov 26 15:37:46 2016 -0500 Jack Humbert ## quantum/quantum_keycodes.h -* d8a608f3ff4cb4d73cd57be500fd9881e230099d Thu Dec 29 18:28:48 2016 +1100 -* 8459bb97c1e8bcb9ccce55a1ed849d373bd7706c Wed Jan 11 21:57:41 2017 -0500 -* 3717cf5864d6505e406b5eb75f315e6dc2392912 Thu Jan 12 07:38:07 2017 -0500 -* 7288e5ab9c005a7b035d91e68358aa2b6a12420c Fri Jan 13 14:04:51 2017 -0500 +* d8a608f3ff4cb4d73cd57be500fd9881e230099d Thu Dec 29 18:28:48 2016 +1100 Wilba6582 +* 8459bb97c1e8bcb9ccce55a1ed849d373bd7706c Wed Jan 11 21:57:41 2017 -0500 Erez Zukerman +* 3717cf5864d6505e406b5eb75f315e6dc2392912 Thu Jan 12 07:38:07 2017 -0500 Erez Zukerman +* 7288e5ab9c005a7b035d91e68358aa2b6a12420c Fri Jan 13 14:04:51 2017 -0500 Jack Humbert ## quantum/rgblight.c -* ba9ac457b2159097ecfd9848c5171c52e3a68260 Sun Jan 24 17:05:47 2016 -0800 -* 2647c7cd84820a833b85e41ea86caf76b36e6ee1 Sun Jan 24 17:19:33 2016 -0800 -* 97f8f378761506914b69d4fd2d5661bfcae28295 Sun Apr 10 21:16:49 2016 -0700 -* 620ac4b260fa663d12b11a0b15ac50379523c125 Thu Apr 21 19:35:18 2016 -0700 -* c37d52d2137acf5739c481cc0c8917ad6fd77161 Tue Apr 26 13:48:36 2016 -0400 -* e024c11f7a849a38e478cda9fb9939a838cfa2e0 Tue Apr 26 13:50:04 2016 -0400 -* 80c87054193b9243670aeb85adefbe1aa6c0fda0 Tue Jun 21 12:53:21 2016 -0400 -* 57e08eb8badc5db2fb44d2df684f32ea48cce411 Thu Jul 7 11:33:32 2016 -0400 -* 3a860c4bc210857f03ef9fae5043d6d5736d140d Tue Jul 26 14:43:45 2016 -0500 <0xdec@users.noreply.github.com> -* 899c88cd8bf024792760fcf3ee8be6fed13fb315 Tue Jul 26 14:46:30 2016 -0500 <0xdec@users.noreply.github.com> -* ea2d2f5d5841791745c93ef27cd1528a7fd69c97 Tue Jul 26 15:31:22 2016 -0500 <0xdec@users.noreply.github.com> -* b8679bbe045a2285d6ab6bbc420121b26f516b9a Wed Oct 5 20:41:33 2016 -0400 -* 9b0e21f87f446935f29254bb623c2cfe29472b6e Sun Oct 9 19:26:16 2016 +0300 -* 92a3a96849aee708753a6623b0db228023e3baf8 Sun Oct 9 19:47:05 2016 +0300 -* ffae9d84c5279b463da112ee15568d536649b819 Sun Oct 9 19:53:41 2016 +0300 -* 03b6fcdaf034392e27752a9bd2c11de06a166e39 Mon Oct 10 00:20:24 2016 -0400 -* 33e62c080c9161a0fc921c90ed299a67fc2e1799 Sat Nov 12 20:54:37 2016 -0500 -* e9f748751808de2f1e85cf7fb670d78773bd5e76 Sun Nov 13 23:02:38 2016 -0500 -* 3774a7fcdab5544fc787f4c200be05fcd417e31f Thu Nov 17 17:42:14 2016 -0500 -* 285c5a91f23e972d9c579184283443111186329d Thu Nov 17 20:56:36 2016 -0500 -* 2e23689b8e3222982082c1f5a4f8ce7686f9658b Wed Nov 23 18:52:02 2016 -0500 -* 4094544d41450617bc21ab58646603b8964eae0e Tue Nov 29 09:23:16 2016 -0500 -* cae269b08b642b07ee06dec7120a784a3c3d7aab Fri Dec 23 10:29:19 2016 -0500 -* 748181dccddb8c9fa52a776f4fcd904ddca9aa31 Wed Dec 28 16:29:02 2016 -0500 -* b8e74c378b1f118178edf0634d9fa7f0f9dd5e08 Thu Dec 29 09:32:02 2016 -0500 +* ba9ac457b2159097ecfd9848c5171c52e3a68260 Sun Jan 24 17:05:47 2016 -0800 Yang Liu +* 2647c7cd84820a833b85e41ea86caf76b36e6ee1 Sun Jan 24 17:19:33 2016 -0800 Yang Liu +* 97f8f378761506914b69d4fd2d5661bfcae28295 Sun Apr 10 21:16:49 2016 -0700 skullY +* 620ac4b260fa663d12b11a0b15ac50379523c125 Thu Apr 21 19:35:18 2016 -0700 Eric Tang +* c37d52d2137acf5739c481cc0c8917ad6fd77161 Tue Apr 26 13:48:36 2016 -0400 Jack Humbert +* e024c11f7a849a38e478cda9fb9939a838cfa2e0 Tue Apr 26 13:50:04 2016 -0400 Jack Humbert +* 80c87054193b9243670aeb85adefbe1aa6c0fda0 Tue Jun 21 12:53:21 2016 -0400 Jack Humbert +* 57e08eb8badc5db2fb44d2df684f32ea48cce411 Thu Jul 7 11:33:32 2016 -0400 Jack Humbert +* 3a860c4bc210857f03ef9fae5043d6d5736d140d Tue Jul 26 14:43:45 2016 -0500 Jordi Orlando +* 899c88cd8bf024792760fcf3ee8be6fed13fb315 Tue Jul 26 14:46:30 2016 -0500 Jordi Orlando +* ea2d2f5d5841791745c93ef27cd1528a7fd69c97 Tue Jul 26 15:31:22 2016 -0500 Jordi Orlando +* b8679bbe045a2285d6ab6bbc420121b26f516b9a Wed Oct 5 20:41:33 2016 -0400 Jack Humbert +* 9b0e21f87f446935f29254bb623c2cfe29472b6e Sun Oct 9 19:26:16 2016 +0300 Fred Sundvik +* 92a3a96849aee708753a6623b0db228023e3baf8 Sun Oct 9 19:47:05 2016 +0300 Fred Sundvik +* ffae9d84c5279b463da112ee15568d536649b819 Sun Oct 9 19:53:41 2016 +0300 Fred Sundvik +* 03b6fcdaf034392e27752a9bd2c11de06a166e39 Mon Oct 10 00:20:24 2016 -0400 Jack Humbert +* 33e62c080c9161a0fc921c90ed299a67fc2e1799 Sat Nov 12 20:54:37 2016 -0500 Jack Humbert +* e9f748751808de2f1e85cf7fb670d78773bd5e76 Sun Nov 13 23:02:38 2016 -0500 Jack Humbert +* 3774a7fcdab5544fc787f4c200be05fcd417e31f Thu Nov 17 17:42:14 2016 -0500 Jack Humbert +* 285c5a91f23e972d9c579184283443111186329d Thu Nov 17 20:56:36 2016 -0500 Erez Zukerman +* 2e23689b8e3222982082c1f5a4f8ce7686f9658b Wed Nov 23 18:52:02 2016 -0500 Jack Humbert +* 4094544d41450617bc21ab58646603b8964eae0e Tue Nov 29 09:23:16 2016 -0500 Erez Zukerman +* cae269b08b642b07ee06dec7120a784a3c3d7aab Fri Dec 23 10:29:19 2016 -0500 Jack Humbert +* 748181dccddb8c9fa52a776f4fcd904ddca9aa31 Wed Dec 28 16:29:02 2016 -0500 Scott Wilson +* b8e74c378b1f118178edf0634d9fa7f0f9dd5e08 Thu Dec 29 09:32:02 2016 -0500 Scott Wilson ## quantum/rgblight.h -* ba9ac457b2159097ecfd9848c5171c52e3a68260 Sun Jan 24 17:05:47 2016 -0800 -* 2647c7cd84820a833b85e41ea86caf76b36e6ee1 Sun Jan 24 17:19:33 2016 -0800 -* 620ac4b260fa663d12b11a0b15ac50379523c125 Thu Apr 21 19:35:18 2016 -0700 -* 80c87054193b9243670aeb85adefbe1aa6c0fda0 Tue Jun 21 12:53:21 2016 -0400 -* 57e08eb8badc5db2fb44d2df684f32ea48cce411 Thu Jul 7 11:33:32 2016 -0400 -* b8679bbe045a2285d6ab6bbc420121b26f516b9a Wed Oct 5 20:41:33 2016 -0400 -* 9b0e21f87f446935f29254bb623c2cfe29472b6e Sun Oct 9 19:26:16 2016 +0300 -* 33e62c080c9161a0fc921c90ed299a67fc2e1799 Sat Nov 12 20:54:37 2016 -0500 -* e9f748751808de2f1e85cf7fb670d78773bd5e76 Sun Nov 13 23:02:38 2016 -0500 -* 3774a7fcdab5544fc787f4c200be05fcd417e31f Thu Nov 17 17:42:14 2016 -0500 -* 285c5a91f23e972d9c579184283443111186329d Thu Nov 17 20:56:36 2016 -0500 -* 2e23689b8e3222982082c1f5a4f8ce7686f9658b Wed Nov 23 18:52:02 2016 -0500 -* 4094544d41450617bc21ab58646603b8964eae0e Tue Nov 29 09:23:16 2016 -0500 -* cae269b08b642b07ee06dec7120a784a3c3d7aab Fri Dec 23 10:29:19 2016 -0500 -* 748181dccddb8c9fa52a776f4fcd904ddca9aa31 Wed Dec 28 16:29:02 2016 -0500 +* ba9ac457b2159097ecfd9848c5171c52e3a68260 Sun Jan 24 17:05:47 2016 -0800 Yang Liu +* 2647c7cd84820a833b85e41ea86caf76b36e6ee1 Sun Jan 24 17:19:33 2016 -0800 Yang Liu +* 620ac4b260fa663d12b11a0b15ac50379523c125 Thu Apr 21 19:35:18 2016 -0700 Eric Tang +* 80c87054193b9243670aeb85adefbe1aa6c0fda0 Tue Jun 21 12:53:21 2016 -0400 Jack Humbert +* 57e08eb8badc5db2fb44d2df684f32ea48cce411 Thu Jul 7 11:33:32 2016 -0400 Jack Humbert +* b8679bbe045a2285d6ab6bbc420121b26f516b9a Wed Oct 5 20:41:33 2016 -0400 Jack Humbert +* 9b0e21f87f446935f29254bb623c2cfe29472b6e Sun Oct 9 19:26:16 2016 +0300 Fred Sundvik +* 33e62c080c9161a0fc921c90ed299a67fc2e1799 Sat Nov 12 20:54:37 2016 -0500 Jack Humbert +* e9f748751808de2f1e85cf7fb670d78773bd5e76 Sun Nov 13 23:02:38 2016 -0500 Jack Humbert +* 3774a7fcdab5544fc787f4c200be05fcd417e31f Thu Nov 17 17:42:14 2016 -0500 Jack Humbert +* 285c5a91f23e972d9c579184283443111186329d Thu Nov 17 20:56:36 2016 -0500 Erez Zukerman +* 2e23689b8e3222982082c1f5a4f8ce7686f9658b Wed Nov 23 18:52:02 2016 -0500 Jack Humbert +* 4094544d41450617bc21ab58646603b8964eae0e Tue Nov 29 09:23:16 2016 -0500 Erez Zukerman +* cae269b08b642b07ee06dec7120a784a3c3d7aab Fri Dec 23 10:29:19 2016 -0500 Jack Humbert +* 748181dccddb8c9fa52a776f4fcd904ddca9aa31 Wed Dec 28 16:29:02 2016 -0500 Scott Wilson ## quantum/variable_trace.c -* f519b94be7086852f2afe4ec248786b47968f7ff Sun Nov 6 21:57:26 2016 +0200 -* a377017c95b826d83ac7a46ef176d39a58294b44 Sun Nov 6 22:11:24 2016 +0200 +* f519b94be7086852f2afe4ec248786b47968f7ff Sun Nov 6 21:57:26 2016 +0200 Fred Sundvik +* a377017c95b826d83ac7a46ef176d39a58294b44 Sun Nov 6 22:11:24 2016 +0200 Fred Sundvik ## quantum/variable_trace.h -* a377017c95b826d83ac7a46ef176d39a58294b44 Sun Nov 6 22:11:24 2016 +0200 -* 0ba3e523a7c124e4ce54dfd043dc32e72ad3233b Sun Nov 6 22:44:43 2016 +0200 +* a377017c95b826d83ac7a46ef176d39a58294b44 Sun Nov 6 22:11:24 2016 +0200 Fred Sundvik +* 0ba3e523a7c124e4ce54dfd043dc32e72ad3233b Sun Nov 6 22:44:43 2016 +0200 Fred Sundvik ## quantum/version.h @@ -302,599 +303,599 @@ As raised in #1038 and other issues, the licensing status of QMK is not clear. I ## quantum/api/api_sysex.c -* 7edac212c8ed8442bf4207e70dc8194631b2bf27 Sat Nov 26 15:37:46 2016 -0500 -* dd685eceb2045371d38f24d454f1ab08ca7416f4 Thu Dec 29 12:13:30 2016 +0200 +* 7edac212c8ed8442bf4207e70dc8194631b2bf27 Sat Nov 26 15:37:46 2016 -0500 Jack Humbert +* dd685eceb2045371d38f24d454f1ab08ca7416f4 Thu Dec 29 12:13:30 2016 +0200 Fred Sundvik ## quantum/api/api_sysex.h -* 7edac212c8ed8442bf4207e70dc8194631b2bf27 Sat Nov 26 15:37:46 2016 -0500 +* 7edac212c8ed8442bf4207e70dc8194631b2bf27 Sat Nov 26 15:37:46 2016 -0500 Jack Humbert ## quantum/audio/audio.c -* 73228f5e5d1d4cd31a46e5e93aa893a8f727e3b9 Thu Apr 21 00:37:45 2016 -0400 -* 620ac4b260fa663d12b11a0b15ac50379523c125 Thu Apr 21 19:35:18 2016 -0700 -* 83e1cc241e3aabd69f6cdcd2581477d4b85bb8d3 Tue May 3 12:56:40 2016 -0500 -* 3f02637f4dd765803671c2611191beb096d60b36 Mon May 9 13:17:15 2016 -0400 -* 15719f3574c6274ee0f3ec87431927c5a523aa3e Sun May 15 00:40:59 2016 -0400 -* 0428214b905e5f8b3bed721885957ce249ba4991 Wed May 18 23:14:00 2016 -0400 -* 287eb7ad148abc8fe3fb014218d71e205fd9131d Tue May 24 11:56:53 2016 -0400 -* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 -* 06c64bbff3e228df542149acde64eadaf59b9b0f Mon Dec 19 11:18:18 2016 -0500 +* 73228f5e5d1d4cd31a46e5e93aa893a8f727e3b9 Thu Apr 21 00:37:45 2016 -0400 Jack Humbert +* 620ac4b260fa663d12b11a0b15ac50379523c125 Thu Apr 21 19:35:18 2016 -0700 Eric Tang +* 83e1cc241e3aabd69f6cdcd2581477d4b85bb8d3 Tue May 3 12:56:40 2016 -0500 IBNobody +* 3f02637f4dd765803671c2611191beb096d60b36 Mon May 9 13:17:15 2016 -0400 Jack Humbert +* 15719f3574c6274ee0f3ec87431927c5a523aa3e Sun May 15 00:40:59 2016 -0400 Jack Humbert +* 0428214b905e5f8b3bed721885957ce249ba4991 Wed May 18 23:14:00 2016 -0400 Jack Humbert +* 287eb7ad148abc8fe3fb014218d71e205fd9131d Tue May 24 11:56:53 2016 -0400 Jack Humbert +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert +* 06c64bbff3e228df542149acde64eadaf59b9b0f Mon Dec 19 11:18:18 2016 -0500 Jack Humbert ## quantum/audio/audio.h -* 73228f5e5d1d4cd31a46e5e93aa893a8f727e3b9 Thu Apr 21 00:37:45 2016 -0400 -* 082a0f313d8c842a5de7bae30ec8a3597e35880b Fri Apr 22 00:01:38 2016 -0500 -* 83e1cc241e3aabd69f6cdcd2581477d4b85bb8d3 Tue May 3 12:56:40 2016 -0500 -* 3f02637f4dd765803671c2611191beb096d60b36 Mon May 9 13:17:15 2016 -0400 -* 15719f3574c6274ee0f3ec87431927c5a523aa3e Sun May 15 00:40:59 2016 -0400 -* 0428214b905e5f8b3bed721885957ce249ba4991 Wed May 18 23:14:00 2016 -0400 -* 287eb7ad148abc8fe3fb014218d71e205fd9131d Tue May 24 11:56:53 2016 -0400 -* 215c2119af5281072d5a6efb0308408793cadd08 Wed Jun 29 16:21:41 2016 -0400 +* 73228f5e5d1d4cd31a46e5e93aa893a8f727e3b9 Thu Apr 21 00:37:45 2016 -0400 Jack Humbert +* 082a0f313d8c842a5de7bae30ec8a3597e35880b Fri Apr 22 00:01:38 2016 -0500 IBNobody +* 83e1cc241e3aabd69f6cdcd2581477d4b85bb8d3 Tue May 3 12:56:40 2016 -0500 IBNobody +* 3f02637f4dd765803671c2611191beb096d60b36 Mon May 9 13:17:15 2016 -0400 Jack Humbert +* 15719f3574c6274ee0f3ec87431927c5a523aa3e Sun May 15 00:40:59 2016 -0400 Jack Humbert +* 0428214b905e5f8b3bed721885957ce249ba4991 Wed May 18 23:14:00 2016 -0400 Jack Humbert +* 287eb7ad148abc8fe3fb014218d71e205fd9131d Tue May 24 11:56:53 2016 -0400 Jack Humbert +* 215c2119af5281072d5a6efb0308408793cadd08 Wed Jun 29 16:21:41 2016 -0400 Jack Humbert ## quantum/audio/audio_pwm.c -* 83e1cc241e3aabd69f6cdcd2581477d4b85bb8d3 Tue May 3 12:56:40 2016 -0500 -* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 +* 83e1cc241e3aabd69f6cdcd2581477d4b85bb8d3 Tue May 3 12:56:40 2016 -0500 IBNobody +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert ## quantum/audio/luts.c -* 83e1cc241e3aabd69f6cdcd2581477d4b85bb8d3 Tue May 3 12:56:40 2016 -0500 +* 83e1cc241e3aabd69f6cdcd2581477d4b85bb8d3 Tue May 3 12:56:40 2016 -0500 IBNobody ## quantum/audio/luts.h -* 83e1cc241e3aabd69f6cdcd2581477d4b85bb8d3 Tue May 3 12:56:40 2016 -0500 +* 83e1cc241e3aabd69f6cdcd2581477d4b85bb8d3 Tue May 3 12:56:40 2016 -0500 IBNobody ## quantum/audio/musical_notes.h -* 73228f5e5d1d4cd31a46e5e93aa893a8f727e3b9 Thu Apr 21 00:37:45 2016 -0400 +* 73228f5e5d1d4cd31a46e5e93aa893a8f727e3b9 Thu Apr 21 00:37:45 2016 -0400 Jack Humbert ## quantum/audio/song_list.h -* 73228f5e5d1d4cd31a46e5e93aa893a8f727e3b9 Thu Apr 21 00:37:45 2016 -0400 -* 7d0345ef25b5e1924f1e98c76d78607778e0b17d Sat Jul 30 01:52:33 2016 -0700 +* 73228f5e5d1d4cd31a46e5e93aa893a8f727e3b9 Thu Apr 21 00:37:45 2016 -0400 Jack Humbert +* 7d0345ef25b5e1924f1e98c76d78607778e0b17d Sat Jul 30 01:52:33 2016 -0700 JeeBak Kim ## quantum/audio/voices.c -* 73228f5e5d1d4cd31a46e5e93aa893a8f727e3b9 Thu Apr 21 00:37:45 2016 -0400 -* e89b806b850ad1b5484176664288b71b0131683e Thu Apr 21 00:40:00 2016 -0400 -* 9828aba2a12f03fccbc1095bc8e4918ae58fa31b Thu Apr 21 18:14:25 2016 -0400 -* 7b3f212500210ae85063b043952b5b3ef6988ad6 Thu Apr 21 23:10:47 2016 -0400 -* 082a0f313d8c842a5de7bae30ec8a3597e35880b Fri Apr 22 00:01:38 2016 -0500 -* b1900c8dde2a68e87aaabd84280a99bf6658ea9f Fri Apr 22 01:02:50 2016 -0400 -* a8086126fecbdce1c192036cf1011329d406949d Fri Apr 22 01:04:13 2016 -0400 -* a718c53fe77f0b3b4361c850531eee5f23e3e13d Fri Apr 22 11:58:29 2016 -0400 -* e7b6bb641c0636c01e3781fe51865fdb20014eeb Mon Apr 25 00:59:47 2016 -0400 -* 140b97a1cd226432a8ec647004943698e3d87f0b Tue Apr 26 01:16:47 2016 -0400 -* 66e0323881a5a3da65e14daeec41a1e9cfbda431 Fri Apr 29 12:42:55 2016 -0400 -* 83e1cc241e3aabd69f6cdcd2581477d4b85bb8d3 Tue May 3 12:56:40 2016 -0500 -* 0edfe55bfe4afd037918ff73e49552a28f39a5ca Mon Dec 12 15:39:07 2016 -0500 -* 06c64bbff3e228df542149acde64eadaf59b9b0f Mon Dec 19 11:18:18 2016 -0500 -* 438a5d685bb7b726ff59109ce4229eca6303cd8e Tue Dec 20 19:38:22 2016 -0500 -* 2fa36e38cf28f07ad4a4d74722486921fa7b8706 Wed Dec 21 00:22:32 2016 -0500 +* 73228f5e5d1d4cd31a46e5e93aa893a8f727e3b9 Thu Apr 21 00:37:45 2016 -0400 Jack Humbert +* e89b806b850ad1b5484176664288b71b0131683e Thu Apr 21 00:40:00 2016 -0400 Jack Humbert +* 9828aba2a12f03fccbc1095bc8e4918ae58fa31b Thu Apr 21 18:14:25 2016 -0400 Jack Humbert +* 7b3f212500210ae85063b043952b5b3ef6988ad6 Thu Apr 21 23:10:47 2016 -0400 Jack Humbert +* 082a0f313d8c842a5de7bae30ec8a3597e35880b Fri Apr 22 00:01:38 2016 -0500 IBNobody +* b1900c8dde2a68e87aaabd84280a99bf6658ea9f Fri Apr 22 01:02:50 2016 -0400 Jack Humbert +* a8086126fecbdce1c192036cf1011329d406949d Fri Apr 22 01:04:13 2016 -0400 Jack Humbert +* a718c53fe77f0b3b4361c850531eee5f23e3e13d Fri Apr 22 11:58:29 2016 -0400 Jack Humbert +* e7b6bb641c0636c01e3781fe51865fdb20014eeb Mon Apr 25 00:59:47 2016 -0400 Jack Humbert +* 140b97a1cd226432a8ec647004943698e3d87f0b Tue Apr 26 01:16:47 2016 -0400 Jack Humbert +* 66e0323881a5a3da65e14daeec41a1e9cfbda431 Fri Apr 29 12:42:55 2016 -0400 Jack Humbert +* 83e1cc241e3aabd69f6cdcd2581477d4b85bb8d3 Tue May 3 12:56:40 2016 -0500 IBNobody +* 0edfe55bfe4afd037918ff73e49552a28f39a5ca Mon Dec 12 15:39:07 2016 -0500 Jack Humbert +* 06c64bbff3e228df542149acde64eadaf59b9b0f Mon Dec 19 11:18:18 2016 -0500 Jack Humbert +* 438a5d685bb7b726ff59109ce4229eca6303cd8e Tue Dec 20 19:38:22 2016 -0500 Jack Humbert +* 2fa36e38cf28f07ad4a4d74722486921fa7b8706 Wed Dec 21 00:22:32 2016 -0500 Jack Humbert ## quantum/audio/voices.h -* 73228f5e5d1d4cd31a46e5e93aa893a8f727e3b9 Thu Apr 21 00:37:45 2016 -0400 -* e89b806b850ad1b5484176664288b71b0131683e Thu Apr 21 00:40:00 2016 -0400 -* 9828aba2a12f03fccbc1095bc8e4918ae58fa31b Thu Apr 21 18:14:25 2016 -0400 -* 7b3f212500210ae85063b043952b5b3ef6988ad6 Thu Apr 21 23:10:47 2016 -0400 -* 082a0f313d8c842a5de7bae30ec8a3597e35880b Fri Apr 22 00:01:38 2016 -0500 -* b1900c8dde2a68e87aaabd84280a99bf6658ea9f Fri Apr 22 01:02:50 2016 -0400 -* a8086126fecbdce1c192036cf1011329d406949d Fri Apr 22 01:04:13 2016 -0400 -* a718c53fe77f0b3b4361c850531eee5f23e3e13d Fri Apr 22 11:58:29 2016 -0400 -* e7b6bb641c0636c01e3781fe51865fdb20014eeb Mon Apr 25 00:59:47 2016 -0400 -* 140b97a1cd226432a8ec647004943698e3d87f0b Tue Apr 26 01:16:47 2016 -0400 -* 83e1cc241e3aabd69f6cdcd2581477d4b85bb8d3 Tue May 3 12:56:40 2016 -0500 -* 0edfe55bfe4afd037918ff73e49552a28f39a5ca Mon Dec 12 15:39:07 2016 -0500 -* 06c64bbff3e228df542149acde64eadaf59b9b0f Mon Dec 19 11:18:18 2016 -0500 -* 438a5d685bb7b726ff59109ce4229eca6303cd8e Tue Dec 20 19:38:22 2016 -0500 +* 73228f5e5d1d4cd31a46e5e93aa893a8f727e3b9 Thu Apr 21 00:37:45 2016 -0400 Jack Humbert +* e89b806b850ad1b5484176664288b71b0131683e Thu Apr 21 00:40:00 2016 -0400 Jack Humbert +* 9828aba2a12f03fccbc1095bc8e4918ae58fa31b Thu Apr 21 18:14:25 2016 -0400 Jack Humbert +* 7b3f212500210ae85063b043952b5b3ef6988ad6 Thu Apr 21 23:10:47 2016 -0400 Jack Humbert +* 082a0f313d8c842a5de7bae30ec8a3597e35880b Fri Apr 22 00:01:38 2016 -0500 IBNobody +* b1900c8dde2a68e87aaabd84280a99bf6658ea9f Fri Apr 22 01:02:50 2016 -0400 Jack Humbert +* a8086126fecbdce1c192036cf1011329d406949d Fri Apr 22 01:04:13 2016 -0400 Jack Humbert +* a718c53fe77f0b3b4361c850531eee5f23e3e13d Fri Apr 22 11:58:29 2016 -0400 Jack Humbert +* e7b6bb641c0636c01e3781fe51865fdb20014eeb Mon Apr 25 00:59:47 2016 -0400 Jack Humbert +* 140b97a1cd226432a8ec647004943698e3d87f0b Tue Apr 26 01:16:47 2016 -0400 Jack Humbert +* 83e1cc241e3aabd69f6cdcd2581477d4b85bb8d3 Tue May 3 12:56:40 2016 -0500 IBNobody +* 0edfe55bfe4afd037918ff73e49552a28f39a5ca Mon Dec 12 15:39:07 2016 -0500 Jack Humbert +* 06c64bbff3e228df542149acde64eadaf59b9b0f Mon Dec 19 11:18:18 2016 -0500 Jack Humbert +* 438a5d685bb7b726ff59109ce4229eca6303cd8e Tue Dec 20 19:38:22 2016 -0500 Jack Humbert ## quantum/audio/wave.h -* 73228f5e5d1d4cd31a46e5e93aa893a8f727e3b9 Thu Apr 21 00:37:45 2016 -0400 +* 73228f5e5d1d4cd31a46e5e93aa893a8f727e3b9 Thu Apr 21 00:37:45 2016 -0400 Jack Humbert ## quantum/keymap_extras/keymap_bepo.h -* 7c33f8493fb4ecd664390232c8de856158f9fcae Sun Feb 7 19:29:49 2016 +0100 -* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 -* 7b4d30ee50aa534a973473c715924964991739f0 Sun Jul 24 10:57:49 2016 +0200 +* 7c33f8493fb4ecd664390232c8de856158f9fcae Sun Feb 7 19:29:49 2016 +0100 Didier Loiseau +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert +* 7b4d30ee50aa534a973473c715924964991739f0 Sun Jul 24 10:57:49 2016 +0200 Vivien Alger ## quantum/keymap_extras/keymap_br_abnt2.h -* 7aa31ad338325477199f752ac3e344a6ab9b27d0 Tue Nov 8 13:32:04 2016 -0200 +* 7aa31ad338325477199f752ac3e344a6ab9b27d0 Tue Nov 8 13:32:04 2016 -0200 Potiguar Faga ## quantum/keymap_extras/keymap_canadian_multilingual.h -* a7cef2ca0a2322448d02008337013936b1d550ec Wed Feb 17 21:45:38 2016 +0100 -* 7840e69bfaee1d67de273c235b532d6f20c905a9 Thu Feb 18 00:47:23 2016 +0100 -* 911222892ecb1c01551e0abdfbe98ed1dbf82139 Fri Feb 26 00:55:39 2016 +0100 -* 3a91ddb0745ae0f52007984793ea1b48abb2098c Tue Mar 1 22:59:38 2016 +0100 -* aa5eb49edd993e2abe3adf814e030fcdda4a3596 Wed Mar 2 00:22:41 2016 +0100 -* 1aeb59335f2fe67613df25308a630ca453975ac0 Sun Sep 11 02:19:55 2016 +0200 +* a7cef2ca0a2322448d02008337013936b1d550ec Wed Feb 17 21:45:38 2016 +0100 Didier Loiseau +* 7840e69bfaee1d67de273c235b532d6f20c905a9 Thu Feb 18 00:47:23 2016 +0100 Didier Loiseau +* 911222892ecb1c01551e0abdfbe98ed1dbf82139 Fri Feb 26 00:55:39 2016 +0100 Didier Loiseau +* 3a91ddb0745ae0f52007984793ea1b48abb2098c Tue Mar 1 22:59:38 2016 +0100 Didier Loiseau +* aa5eb49edd993e2abe3adf814e030fcdda4a3596 Wed Mar 2 00:22:41 2016 +0100 Didier Loiseau +* 1aeb59335f2fe67613df25308a630ca453975ac0 Sun Sep 11 02:19:55 2016 +0200 Didier Loiseau ## quantum/keymap_extras/keymap_colemak.h -* 46e7fb2d3ccd699c0a1b1fd9d02860b1f2a44141 Mon Oct 26 14:49:46 2015 -0400 -* 39915b1748cefd99f841fa03b7f6e7c20439fbcf Thu Oct 29 15:12:51 2015 -0400 -* 3c683aa9f23288ddada760fb49abcc5fa7324f5e Fri Feb 5 16:28:24 2016 +0200 -* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 +* 46e7fb2d3ccd699c0a1b1fd9d02860b1f2a44141 Mon Oct 26 14:49:46 2015 -0400 Jack Humbert +* 39915b1748cefd99f841fa03b7f6e7c20439fbcf Thu Oct 29 15:12:51 2015 -0400 Jack Humbert +* 3c683aa9f23288ddada760fb49abcc5fa7324f5e Fri Feb 5 16:28:24 2016 +0200 Erez Zukerman +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert ## quantum/keymap_extras/keymap_dvorak.h -* 46e7fb2d3ccd699c0a1b1fd9d02860b1f2a44141 Mon Oct 26 14:49:46 2015 -0400 -* 233af3a41c69d456583bfcfd897233b9c117caa6 Mon Feb 22 13:06:26 2016 -0500 -* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 -* 4278d8861526ed285d9d00badcdc8c121454be60 Thu Jul 14 11:32:43 2016 -0500 -* f0021c9cb9e30d47d5a3ab5ec75e59e626c3d244 Mon Sep 19 14:25:44 2016 -0500 +* 46e7fb2d3ccd699c0a1b1fd9d02860b1f2a44141 Mon Oct 26 14:49:46 2015 -0400 Jack Humbert +* 233af3a41c69d456583bfcfd897233b9c117caa6 Mon Feb 22 13:06:26 2016 -0500 Keller-Laminar +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert +* 4278d8861526ed285d9d00badcdc8c121454be60 Thu Jul 14 11:32:43 2016 -0500 Jonathan A. Kollasch +* f0021c9cb9e30d47d5a3ab5ec75e59e626c3d244 Mon Sep 19 14:25:44 2016 -0500 Jonathan A. Kollasch ## quantum/keymap_extras/keymap_dvp.h -* 6e003b1e3fa844cfde0069004e755aae7a9539f3 Wed Oct 19 23:45:55 2016 +0300 +* 6e003b1e3fa844cfde0069004e755aae7a9539f3 Wed Oct 19 23:45:55 2016 +0300 Artyom Mironov ## quantum/keymap_extras/keymap_fr_ch.h -* 1934e8a270820ff6f08c95f4399b26162623e4e0 Sat Feb 20 14:01:28 2016 +0100 -* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 -* 25938a09a6bfb2624bc96841b53897eda532e293 Thu Jul 14 11:13:35 2016 -0500 +* 1934e8a270820ff6f08c95f4399b26162623e4e0 Sat Feb 20 14:01:28 2016 +0100 Vincent Pochet +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert +* 25938a09a6bfb2624bc96841b53897eda532e293 Thu Jul 14 11:13:35 2016 -0500 Jonathan A. Kollasch ## quantum/keymap_extras/keymap_french.h -* 46e7fb2d3ccd699c0a1b1fd9d02860b1f2a44141 Mon Oct 26 14:49:46 2015 -0400 -* 4a19cc054dc7aeb0a35613d608143bf51fa791cc Sat Feb 27 15:22:54 2016 +0100 -* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 -* 010dd1308420e25b327fa4d5d6b13f67a849408b Thu Jul 14 11:04:25 2016 -0500 -* 25938a09a6bfb2624bc96841b53897eda532e293 Thu Jul 14 11:13:35 2016 -0500 +* 46e7fb2d3ccd699c0a1b1fd9d02860b1f2a44141 Mon Oct 26 14:49:46 2015 -0400 Jack Humbert +* 4a19cc054dc7aeb0a35613d608143bf51fa791cc Sat Feb 27 15:22:54 2016 +0100 Kévin Letord +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert +* 010dd1308420e25b327fa4d5d6b13f67a849408b Thu Jul 14 11:04:25 2016 -0500 Jonathan A. Kollasch +* 25938a09a6bfb2624bc96841b53897eda532e293 Thu Jul 14 11:13:35 2016 -0500 Jonathan A. Kollasch ## quantum/keymap_extras/keymap_french_osx.h -* 48eff6dd89672c6c71afd8a3d1cdc5d35b0bf768 Tue Jan 5 10:49:36 2016 +0100 -* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 +* 48eff6dd89672c6c71afd8a3d1cdc5d35b0bf768 Tue Jan 5 10:49:36 2016 +0100 Sébastien Pérochon +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert ## quantum/keymap_extras/keymap_german.h -* 3dbcad51d1217b32c3c17917c2646fa7a9a9165b Sat Dec 19 01:22:12 2015 +0100 -* da09312dd56e3b085fb217cc7cc2abf06f401992 Tue Jan 19 20:04:08 2016 +0100 -* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 -* 25938a09a6bfb2624bc96841b53897eda532e293 Thu Jul 14 11:13:35 2016 -0500 +* 3dbcad51d1217b32c3c17917c2646fa7a9a9165b Sat Dec 19 01:22:12 2015 +0100 Matthias Schmitt +* da09312dd56e3b085fb217cc7cc2abf06f401992 Tue Jan 19 20:04:08 2016 +0100 plgruener +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert +* 25938a09a6bfb2624bc96841b53897eda532e293 Thu Jul 14 11:13:35 2016 -0500 Jonathan A. Kollasch ## quantum/keymap_extras/keymap_german_ch.h -* 465aabe11dbd673fb4c68ecbffbfb062273def1a Wed May 18 21:22:04 2016 +0200 -* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 -* 25938a09a6bfb2624bc96841b53897eda532e293 Thu Jul 14 11:13:35 2016 -0500 +* 465aabe11dbd673fb4c68ecbffbfb062273def1a Wed May 18 21:22:04 2016 +0200 heartsekai +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert +* 25938a09a6bfb2624bc96841b53897eda532e293 Thu Jul 14 11:13:35 2016 -0500 Jonathan A. Kollasch ## quantum/keymap_extras/keymap_german_osx.h -* e44c30f2030dd4c481a6e38e9392f147be7b0ae2 Fri Jan 15 15:55:00 2016 +0100 -* bfc6eca44aeb3ad22a1c37206005dcfe617431cd Mon Mar 14 13:35:34 2016 +0100 -* dbd4ab3457dd001ab4bbcec14315047b815f7dfe Thu Mar 31 23:15:59 2016 +0200 -* 6d40f7c5060f608068b0c4fc90871687c70b4f05 Sun Apr 17 22:19:47 2016 +0200 -* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 -* 1a0bac8bccf0e156d2f3c5f14a7214f9677b6370 Tue Jun 21 17:42:29 2016 -0400 +* e44c30f2030dd4c481a6e38e9392f147be7b0ae2 Fri Jan 15 15:55:00 2016 +0100 Stephan Bösebeck +* bfc6eca44aeb3ad22a1c37206005dcfe617431cd Mon Mar 14 13:35:34 2016 +0100 Daniel Kriesten +* dbd4ab3457dd001ab4bbcec14315047b815f7dfe Thu Mar 31 23:15:59 2016 +0200 Stephan Bösebeck +* 6d40f7c5060f608068b0c4fc90871687c70b4f05 Sun Apr 17 22:19:47 2016 +0200 Stephan Bösebeck +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert +* 1a0bac8bccf0e156d2f3c5f14a7214f9677b6370 Tue Jun 21 17:42:29 2016 -0400 Jack Humbert ## quantum/keymap_extras/keymap_jp.h -* 2febf9b9f7d610fc2eca666a842272cb90a87919 Tue Nov 22 20:40:12 2016 +0900 +* 2febf9b9f7d610fc2eca666a842272cb90a87919 Tue Nov 22 20:40:12 2016 +0900 h-youhei ## quantum/keymap_extras/keymap_neo2.h -* 7b7870bae178c80138be5c587238fdedeb837df9 Sat Dec 19 01:41:23 2015 +0100 -* 4ca43225011ac94bd0a7976baf7f84059274dfbf Fri Feb 19 21:04:30 2016 +0100 -* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 -* e329729d3a11b5798f4e2b9f65ac9bc2dcc84a9e Tue Jun 21 18:32:28 2016 -0400 +* 7b7870bae178c80138be5c587238fdedeb837df9 Sat Dec 19 01:41:23 2015 +0100 Matthias Schmitt +* 4ca43225011ac94bd0a7976baf7f84059274dfbf Fri Feb 19 21:04:30 2016 +0100 plgruener +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert +* e329729d3a11b5798f4e2b9f65ac9bc2dcc84a9e Tue Jun 21 18:32:28 2016 -0400 Jack Humbert ## quantum/keymap_extras/keymap_nordic.h -* 46e7fb2d3ccd699c0a1b1fd9d02860b1f2a44141 Mon Oct 26 14:49:46 2015 -0400 -* c29ad125a7a58d5a2ced0a619165204136da9019 Fri Feb 5 01:50:54 2016 +0100 -* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 -* 25938a09a6bfb2624bc96841b53897eda532e293 Thu Jul 14 11:13:35 2016 -0500 -* 283ebbe14298fe75128765fa42c46f02534fb761 Mon Jul 25 12:50:27 2016 +0200 -* 555e41d9e5f8d393637898e2c77c64066b648245 Fri Dec 2 13:03:51 2016 -0500 +* 46e7fb2d3ccd699c0a1b1fd9d02860b1f2a44141 Mon Oct 26 14:49:46 2015 -0400 Jack Humbert +* c29ad125a7a58d5a2ced0a619165204136da9019 Fri Feb 5 01:50:54 2016 +0100 Fernando Mendonca +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert +* 25938a09a6bfb2624bc96841b53897eda532e293 Thu Jul 14 11:13:35 2016 -0500 Jonathan A. Kollasch +* 283ebbe14298fe75128765fa42c46f02534fb761 Mon Jul 25 12:50:27 2016 +0200 Andreas Lindhé +* 555e41d9e5f8d393637898e2c77c64066b648245 Fri Dec 2 13:03:51 2016 -0500 Erez Zukerman ## quantum/keymap_extras/keymap_norwegian.h -* e329729d3a11b5798f4e2b9f65ac9bc2dcc84a9e Tue Jun 21 18:32:28 2016 -0400 -* b6fa762234fb5a3590d0ff91ffdf5aa3ae322c8f Mon Jul 25 11:29:54 2016 +0200 +* e329729d3a11b5798f4e2b9f65ac9bc2dcc84a9e Tue Jun 21 18:32:28 2016 -0400 Jack Humbert +* b6fa762234fb5a3590d0ff91ffdf5aa3ae322c8f Mon Jul 25 11:29:54 2016 +0200 Andreas Lindhé ## quantum/keymap_extras/keymap_plover.h -* 7ccfaf750d08bdb3a25ef2869cac251b7cd4d3ad Sat Apr 23 18:49:10 2016 +0100 -* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 +* 7ccfaf750d08bdb3a25ef2869cac251b7cd4d3ad Sat Apr 23 18:49:10 2016 +0100 James ‘Twey’ Kay +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert ## quantum/keymap_extras/keymap_russian.h -* c5ee24a6c3ea39e9725dfc276c92d5bce726ca78 Sun Aug 7 11:01:12 2016 -0500 -* 2a0121a78643b1dc774d82352f8c9e246010803e Sun Aug 7 11:07:38 2016 -0500 +* c5ee24a6c3ea39e9725dfc276c92d5bce726ca78 Sun Aug 7 11:01:12 2016 -0500 kuel +* 2a0121a78643b1dc774d82352f8c9e246010803e Sun Aug 7 11:07:38 2016 -0500 kuel ## quantum/keymap_extras/keymap_spanish.h -* 46e7fb2d3ccd699c0a1b1fd9d02860b1f2a44141 Mon Oct 26 14:49:46 2015 -0400 -* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 -* 132c04746910f7230b63ed33717c4ed65599ed1b Sat Jul 2 10:26:04 2016 +0200 -* 25938a09a6bfb2624bc96841b53897eda532e293 Thu Jul 14 11:13:35 2016 -0500 +* 46e7fb2d3ccd699c0a1b1fd9d02860b1f2a44141 Mon Oct 26 14:49:46 2015 -0400 Jack Humbert +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert +* 132c04746910f7230b63ed33717c4ed65599ed1b Sat Jul 2 10:26:04 2016 +0200 Rubén Díaz-Jorge +* 25938a09a6bfb2624bc96841b53897eda532e293 Thu Jul 14 11:13:35 2016 -0500 Jonathan A. Kollasch ## quantum/keymap_extras/keymap_uk.h -* 46e7fb2d3ccd699c0a1b1fd9d02860b1f2a44141 Mon Oct 26 14:49:46 2015 -0400 -* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 -* 010dd1308420e25b327fa4d5d6b13f67a849408b Thu Jul 14 11:04:25 2016 -0500 -* 25938a09a6bfb2624bc96841b53897eda532e293 Thu Jul 14 11:13:35 2016 -0500 +* 46e7fb2d3ccd699c0a1b1fd9d02860b1f2a44141 Mon Oct 26 14:49:46 2015 -0400 Jack Humbert +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert +* 010dd1308420e25b327fa4d5d6b13f67a849408b Thu Jul 14 11:04:25 2016 -0500 Jonathan A. Kollasch +* 25938a09a6bfb2624bc96841b53897eda532e293 Thu Jul 14 11:13:35 2016 -0500 Jonathan A. Kollasch ## quantum/keymap_extras/keymap_unicode_cyrillic.h -* c5ee24a6c3ea39e9725dfc276c92d5bce726ca78 Sun Aug 7 11:01:12 2016 -0500 +* c5ee24a6c3ea39e9725dfc276c92d5bce726ca78 Sun Aug 7 11:01:12 2016 -0500 kuel ## quantum/process_keycode/process_chording.c -* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 +* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 Jack Humbert ## quantum/process_keycode/process_chording.h -* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 +* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 Jack Humbert ## quantum/process_keycode/process_leader.c -* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 +* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 Jack Humbert ## quantum/process_keycode/process_leader.h -* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 +* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 Jack Humbert ## quantum/process_keycode/process_midi.c -* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 -* 8b94e26d7c3b30cc57d710a11e5651d15e8e3b20 Sun Jul 24 22:07:43 2016 -0400 -* 8d99140d1b80bf497b2198138d3f481e93b0fbab Thu Sep 29 14:46:10 2016 -0500 +* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 Jack Humbert +* 8b94e26d7c3b30cc57d710a11e5651d15e8e3b20 Sun Jul 24 22:07:43 2016 -0400 Jack Humbert +* 8d99140d1b80bf497b2198138d3f481e93b0fbab Thu Sep 29 14:46:10 2016 -0500 Adam Gausmann ## quantum/process_keycode/process_midi.h -* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 +* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 Jack Humbert ## quantum/process_keycode/process_music.c -* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 -* 3ea738e450e9326b0d3ee4192da881cffb4c13c1 Sun Jul 24 10:00:39 2016 -0400 -* ae95834f5af7404c04e6fe3446019046278d814b Mon Dec 12 16:06:41 2016 -0500 -* 273faa4d9cd5a84207548f83ba550c9efee90933 Fri Dec 23 20:59:00 2016 -0500 -* 841d7e6a1d74b1fc45575ed551132ec27353ebf3 Mon Jan 23 13:55:24 2017 -0500 +* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 Jack Humbert +* 3ea738e450e9326b0d3ee4192da881cffb4c13c1 Sun Jul 24 10:00:39 2016 -0400 Robert Dale +* ae95834f5af7404c04e6fe3446019046278d814b Mon Dec 12 16:06:41 2016 -0500 Jack Humbert +* 273faa4d9cd5a84207548f83ba550c9efee90933 Fri Dec 23 20:59:00 2016 -0500 Jack Humbert +* 841d7e6a1d74b1fc45575ed551132ec27353ebf3 Mon Jan 23 13:55:24 2017 -0500 Jack Humbert ## quantum/process_keycode/process_music.h -* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 +* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 Jack Humbert ## quantum/process_keycode/process_printer.c -* a889b899e2cf52b3b7807d8a7ad39f12e0761a10 Sun Oct 16 16:03:56 2016 -0400 +* a889b899e2cf52b3b7807d8a7ad39f12e0761a10 Sun Oct 16 16:03:56 2016 -0400 Jack Humbert ## quantum/process_keycode/process_printer.h -* a889b899e2cf52b3b7807d8a7ad39f12e0761a10 Sun Oct 16 16:03:56 2016 -0400 +* a889b899e2cf52b3b7807d8a7ad39f12e0761a10 Sun Oct 16 16:03:56 2016 -0400 Jack Humbert ## quantum/process_keycode/process_printer_bb.c -* a889b899e2cf52b3b7807d8a7ad39f12e0761a10 Sun Oct 16 16:03:56 2016 -0400 +* a889b899e2cf52b3b7807d8a7ad39f12e0761a10 Sun Oct 16 16:03:56 2016 -0400 Jack Humbert ## quantum/process_keycode/process_tap_dance.c -* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 -* 1a7e954f9fc4d250ba1ae46e3bfc168aca2b5cce Wed Jul 13 00:20:28 2016 +0200 -* f3b56701ed7e6c622dc48e429780124ba5fde172 Wed Jul 13 16:47:45 2016 +0200 -* d3091faf363afc8fef73ddf4948f872439b0e827 Fri Jul 15 23:54:08 2016 +0200 -* dda2fd6ff3984ed96f8275c661b47a0484f9ee18 Mon Jul 18 23:34:02 2016 +0200 -* d5daec2a58019ebdb9804787e0f786e4fc3c05b9 Tue Jul 19 18:00:59 2016 +0200 -* 4e6a8627d8ebd7af942f68142d1a959d60361d90 Tue Jul 19 18:02:13 2016 +0200 -* 70e42489dec375e558d8e81ed5ebfb69b4f3dbd9 Wed Jul 20 10:22:52 2016 +0200 -* ce8cc9219fca5dde077f1142d03d011b38d27479 Wed Jul 20 11:34:45 2016 +0200 -* 44e16ffc80620b61eaa17aedcfdd8233d9c99bd9 Wed Jul 20 11:49:59 2016 +0200 -* b21e8b97acb722bfa7b85831cfd010716ed77962 Wed Jul 27 08:42:09 2016 +0200 -* d78058cc75a9b05a6885991506d5f807ebb2a9f9 Wed Aug 17 10:28:08 2016 +0200 -* 29f64d7a93d941167c6c6e95f893ab84586b2205 Wed Aug 17 13:04:50 2016 +0200 -* 0d28787c5cf2173d12f57b397515f91cffaa820a Thu Aug 18 11:29:53 2016 +0200 -* acda2b793f69c6e0e9b9667e9ebe8a0325eb5ecd Thu Sep 1 08:32:47 2016 +0200 -* e1f131db8e59c6ed3471906d3a62457d593f51af Wed Sep 21 10:11:42 2016 +0200 +* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 Jack Humbert +* 1a7e954f9fc4d250ba1ae46e3bfc168aca2b5cce Wed Jul 13 00:20:28 2016 +0200 Pavlos Vinieratos +* f3b56701ed7e6c622dc48e429780124ba5fde172 Wed Jul 13 16:47:45 2016 +0200 Pavlos Vinieratos +* d3091faf363afc8fef73ddf4948f872439b0e827 Fri Jul 15 23:54:08 2016 +0200 Pavlos Vinieratos +* dda2fd6ff3984ed96f8275c661b47a0484f9ee18 Mon Jul 18 23:34:02 2016 +0200 Pavlos Vinieratos +* d5daec2a58019ebdb9804787e0f786e4fc3c05b9 Tue Jul 19 18:00:59 2016 +0200 Pavlos Vinieratos +* 4e6a8627d8ebd7af942f68142d1a959d60361d90 Tue Jul 19 18:02:13 2016 +0200 Pavlos Vinieratos +* 70e42489dec375e558d8e81ed5ebfb69b4f3dbd9 Wed Jul 20 10:22:52 2016 +0200 Gergely Nagy +* ce8cc9219fca5dde077f1142d03d011b38d27479 Wed Jul 20 11:34:45 2016 +0200 Gergely Nagy +* 44e16ffc80620b61eaa17aedcfdd8233d9c99bd9 Wed Jul 20 11:49:59 2016 +0200 Gergely Nagy +* b21e8b97acb722bfa7b85831cfd010716ed77962 Wed Jul 27 08:42:09 2016 +0200 Gergely Nagy +* d78058cc75a9b05a6885991506d5f807ebb2a9f9 Wed Aug 17 10:28:08 2016 +0200 Gergely Nagy +* 29f64d7a93d941167c6c6e95f893ab84586b2205 Wed Aug 17 13:04:50 2016 +0200 Gergely Nagy +* 0d28787c5cf2173d12f57b397515f91cffaa820a Thu Aug 18 11:29:53 2016 +0200 Gergely Nagy +* acda2b793f69c6e0e9b9667e9ebe8a0325eb5ecd Thu Sep 1 08:32:47 2016 +0200 Gergely Nagy +* e1f131db8e59c6ed3471906d3a62457d593f51af Wed Sep 21 10:11:42 2016 +0200 Pavlos Vinieratos ## quantum/process_keycode/process_tap_dance.h -* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 -* f3b56701ed7e6c622dc48e429780124ba5fde172 Wed Jul 13 16:47:45 2016 +0200 -* d3091faf363afc8fef73ddf4948f872439b0e827 Fri Jul 15 23:54:08 2016 +0200 -* 70e42489dec375e558d8e81ed5ebfb69b4f3dbd9 Wed Jul 20 10:22:52 2016 +0200 -* ce8cc9219fca5dde077f1142d03d011b38d27479 Wed Jul 20 11:34:45 2016 +0200 -* b21e8b97acb722bfa7b85831cfd010716ed77962 Wed Jul 27 08:42:09 2016 +0200 -* 29f64d7a93d941167c6c6e95f893ab84586b2205 Wed Aug 17 13:04:50 2016 +0200 -* 0edc82f0300924394324e2f3c4d2f8f0008439db Wed Sep 21 11:29:34 2016 +0200 -* cda4b534fa4921c2d8f9884aa6a144333e7b07c4 Wed Sep 21 11:29:43 2016 +0200 +* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 Jack Humbert +* f3b56701ed7e6c622dc48e429780124ba5fde172 Wed Jul 13 16:47:45 2016 +0200 Pavlos Vinieratos +* d3091faf363afc8fef73ddf4948f872439b0e827 Fri Jul 15 23:54:08 2016 +0200 Pavlos Vinieratos +* 70e42489dec375e558d8e81ed5ebfb69b4f3dbd9 Wed Jul 20 10:22:52 2016 +0200 Gergely Nagy +* ce8cc9219fca5dde077f1142d03d011b38d27479 Wed Jul 20 11:34:45 2016 +0200 Gergely Nagy +* b21e8b97acb722bfa7b85831cfd010716ed77962 Wed Jul 27 08:42:09 2016 +0200 Gergely Nagy +* 29f64d7a93d941167c6c6e95f893ab84586b2205 Wed Aug 17 13:04:50 2016 +0200 Gergely Nagy +* 0edc82f0300924394324e2f3c4d2f8f0008439db Wed Sep 21 11:29:34 2016 +0200 Pavlos Vinieratos +* cda4b534fa4921c2d8f9884aa6a144333e7b07c4 Wed Sep 21 11:29:43 2016 +0200 Pavlos Vinieratos ## quantum/process_keycode/process_unicode.c -* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 -* 8bdf745909bc2581491acce11225f56a85bc8f24 Sat Aug 13 10:33:47 2016 +0200 -* 63e5782d2cdf0ee282ad434c773463d9da9db6b3 Sat Aug 13 10:43:22 2016 +0200 -* fa06a163607e8c6c4bd0968c2de96a9a298b777c Sat Aug 13 10:46:38 2016 +0200 -* 0b6861827faea747345ea38202d64c8004ab128c Sat Aug 13 11:11:22 2016 +0200 -* 857aa5bef6a74f8785a7039feea5286c07bf7067 Sat Aug 13 11:14:42 2016 +0200 -* 234dd276cf03be6fd6961473e9d9c8f35deec682 Sun Aug 14 10:37:51 2016 +0200 -* a312cbf712764277e0dbbbb99410c2f6fc6c7484 Sun Aug 14 14:34:52 2016 +0200 -* 43d08629cf275d0b32281ffe8785258fff226b49 Mon Aug 15 10:02:05 2016 +0200 -* e8845f0daf8dc7a7674dc5420cc5a684bbbea09b Mon Aug 15 10:07:13 2016 +0200 -* dffdeb50b79d3c623e2ed9fd1c1d82d6d0ae7bf0 Sun Aug 21 20:25:19 2016 +0200 -* 81594c7883deefedbcd317c72c1b1f1d32e65cd7 Sun Aug 21 21:02:18 2016 +0200 -* a058ae40e268b34ba5db45f5fd5d557d50fa5437 Wed Aug 24 15:39:23 2016 +0200 -* c9ea236fc35d350c0ff33de0af84d3dee7d0eb95 Wed Aug 31 08:21:52 2016 +0200 -* a3f5a4cf5839fe29dd37400d72c5e353812002f8 Sun Oct 2 10:35:09 2016 +0200 -* 5b2e455d3b71bfb90754930d1f22d3e8ce98b927 Mon Oct 10 00:46:20 2016 +0700 -* e7d5dc89f2890007d776f6b613dc9deb473cff22 Sun Oct 23 05:36:26 2016 +0700 -* 4a666c201007eacf13a9031e3c9b156e2e04afe6 Sun Oct 23 19:15:33 2016 +0700 -* 8d60354d5a116b6cb1fc32eac7461eb125543c7d Wed Oct 26 00:48:44 2016 -0400 -* 30b80a23f3cafd846937b37b249f2df4411e1f5a Mon Jan 9 02:59:10 2017 +0700 +* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 Jack Humbert +* 8bdf745909bc2581491acce11225f56a85bc8f24 Sat Aug 13 10:33:47 2016 +0200 Gergely Nagy +* 63e5782d2cdf0ee282ad434c773463d9da9db6b3 Sat Aug 13 10:43:22 2016 +0200 Gergely Nagy +* fa06a163607e8c6c4bd0968c2de96a9a298b777c Sat Aug 13 10:46:38 2016 +0200 Gergely Nagy +* 0b6861827faea747345ea38202d64c8004ab128c Sat Aug 13 11:11:22 2016 +0200 Gergely Nagy +* 857aa5bef6a74f8785a7039feea5286c07bf7067 Sat Aug 13 11:14:42 2016 +0200 Gergely Nagy +* 234dd276cf03be6fd6961473e9d9c8f35deec682 Sun Aug 14 10:37:51 2016 +0200 Gergely Nagy +* a312cbf712764277e0dbbbb99410c2f6fc6c7484 Sun Aug 14 14:34:52 2016 +0200 Gergely Nagy +* 43d08629cf275d0b32281ffe8785258fff226b49 Mon Aug 15 10:02:05 2016 +0200 Gergely Nagy +* e8845f0daf8dc7a7674dc5420cc5a684bbbea09b Mon Aug 15 10:07:13 2016 +0200 Gergely Nagy +* dffdeb50b79d3c623e2ed9fd1c1d82d6d0ae7bf0 Sun Aug 21 20:25:19 2016 +0200 coderkun +* 81594c7883deefedbcd317c72c1b1f1d32e65cd7 Sun Aug 21 21:02:18 2016 +0200 coderkun +* a058ae40e268b34ba5db45f5fd5d557d50fa5437 Wed Aug 24 15:39:23 2016 +0200 Gergely Nagy +* c9ea236fc35d350c0ff33de0af84d3dee7d0eb95 Wed Aug 31 08:21:52 2016 +0200 Gergely Nagy +* a3f5a4cf5839fe29dd37400d72c5e353812002f8 Sun Oct 2 10:35:09 2016 +0200 coderkun +* 5b2e455d3b71bfb90754930d1f22d3e8ce98b927 Mon Oct 10 00:46:20 2016 +0700 Priyadi Iman Nurcahyo +* e7d5dc89f2890007d776f6b613dc9deb473cff22 Sun Oct 23 05:36:26 2016 +0700 Priyadi Iman Nurcahyo +* 4a666c201007eacf13a9031e3c9b156e2e04afe6 Sun Oct 23 19:15:33 2016 +0700 Priyadi Iman Nurcahyo +* 8d60354d5a116b6cb1fc32eac7461eb125543c7d Wed Oct 26 00:48:44 2016 -0400 Jack Humbert +* 30b80a23f3cafd846937b37b249f2df4411e1f5a Mon Jan 9 02:59:10 2017 +0700 Priyadi Iman Nurcahyo ## quantum/process_keycode/process_unicode.h -* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 -* 63e5782d2cdf0ee282ad434c773463d9da9db6b3 Sat Aug 13 10:43:22 2016 +0200 -* fa06a163607e8c6c4bd0968c2de96a9a298b777c Sat Aug 13 10:46:38 2016 +0200 -* 857aa5bef6a74f8785a7039feea5286c07bf7067 Sat Aug 13 11:14:42 2016 +0200 -* 234dd276cf03be6fd6961473e9d9c8f35deec682 Sun Aug 14 10:37:51 2016 +0200 -* a312cbf712764277e0dbbbb99410c2f6fc6c7484 Sun Aug 14 14:34:52 2016 +0200 -* 43d08629cf275d0b32281ffe8785258fff226b49 Mon Aug 15 10:02:05 2016 +0200 -* e8845f0daf8dc7a7674dc5420cc5a684bbbea09b Mon Aug 15 10:07:13 2016 +0200 -* a058ae40e268b34ba5db45f5fd5d557d50fa5437 Wed Aug 24 15:39:23 2016 +0200 -* c9ea236fc35d350c0ff33de0af84d3dee7d0eb95 Wed Aug 31 08:21:52 2016 +0200 -* 5b2e455d3b71bfb90754930d1f22d3e8ce98b927 Mon Oct 10 00:46:20 2016 +0700 -* 4a666c201007eacf13a9031e3c9b156e2e04afe6 Sun Oct 23 19:15:33 2016 +0700 -* 6fee7e178f7c949213a124d78de60bc30267d367 Sat Nov 26 23:53:15 2016 +0700 +* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 Jack Humbert +* 63e5782d2cdf0ee282ad434c773463d9da9db6b3 Sat Aug 13 10:43:22 2016 +0200 Gergely Nagy +* fa06a163607e8c6c4bd0968c2de96a9a298b777c Sat Aug 13 10:46:38 2016 +0200 Gergely Nagy +* 857aa5bef6a74f8785a7039feea5286c07bf7067 Sat Aug 13 11:14:42 2016 +0200 Gergely Nagy +* 234dd276cf03be6fd6961473e9d9c8f35deec682 Sun Aug 14 10:37:51 2016 +0200 Gergely Nagy +* a312cbf712764277e0dbbbb99410c2f6fc6c7484 Sun Aug 14 14:34:52 2016 +0200 Gergely Nagy +* 43d08629cf275d0b32281ffe8785258fff226b49 Mon Aug 15 10:02:05 2016 +0200 Gergely Nagy +* e8845f0daf8dc7a7674dc5420cc5a684bbbea09b Mon Aug 15 10:07:13 2016 +0200 Gergely Nagy +* a058ae40e268b34ba5db45f5fd5d557d50fa5437 Wed Aug 24 15:39:23 2016 +0200 Gergely Nagy +* c9ea236fc35d350c0ff33de0af84d3dee7d0eb95 Wed Aug 31 08:21:52 2016 +0200 Gergely Nagy +* 5b2e455d3b71bfb90754930d1f22d3e8ce98b927 Mon Oct 10 00:46:20 2016 +0700 Priyadi Iman Nurcahyo +* 4a666c201007eacf13a9031e3c9b156e2e04afe6 Sun Oct 23 19:15:33 2016 +0700 Priyadi Iman Nurcahyo +* 6fee7e178f7c949213a124d78de60bc30267d367 Sat Nov 26 23:53:15 2016 +0700 Priyadi Iman Nurcahyo ## quantum/serial_link/LICENSE -* 639cdd363e35c13fe331939d0972aa4db5f5198d Tue Jul 5 23:27:47 2016 +0300 +* 639cdd363e35c13fe331939d0972aa4db5f5198d Tue Jul 5 23:27:47 2016 +0300 Fred Sundvik ## quantum/serial_link/README.md -* 639cdd363e35c13fe331939d0972aa4db5f5198d Tue Jul 5 23:27:47 2016 +0300 -* d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 +* 639cdd363e35c13fe331939d0972aa4db5f5198d Tue Jul 5 23:27:47 2016 +0300 Fred Sundvik +* d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 Fred Sundvik ## quantum/serial_link/protocol/byte_stuffer.c -* d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 -* 0a11460175d6a838c71343c19eb4ce4699936247 Wed Aug 24 22:23:17 2016 +0300 +* d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 Fred Sundvik +* 0a11460175d6a838c71343c19eb4ce4699936247 Wed Aug 24 22:23:17 2016 +0300 Fred Sundvik ## quantum/serial_link/protocol/byte_stuffer.h -* d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 -* 0a11460175d6a838c71343c19eb4ce4699936247 Wed Aug 24 22:23:17 2016 +0300 +* d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 Fred Sundvik +* 0a11460175d6a838c71343c19eb4ce4699936247 Wed Aug 24 22:23:17 2016 +0300 Fred Sundvik ## quantum/serial_link/protocol/frame_router.c -* d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 +* d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 Fred Sundvik ## quantum/serial_link/protocol/frame_router.h -* d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 +* d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 Fred Sundvik ## quantum/serial_link/protocol/frame_validator.c -* d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 +* d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 Fred Sundvik ## quantum/serial_link/protocol/frame_validator.h -* d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 +* d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 Fred Sundvik ## quantum/serial_link/protocol/physical.h -* d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 +* d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 Fred Sundvik ## quantum/serial_link/protocol/transport.c -* d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 -* bcdf9ab76bf3723e6015d4255d53e7c1e7259b61 Sat Aug 27 14:18:49 2016 +0300 +* d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 Fred Sundvik +* bcdf9ab76bf3723e6015d4255d53e7c1e7259b61 Sat Aug 27 14:18:49 2016 +0300 Fred Sundvik ## quantum/serial_link/protocol/transport.h -* d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 -* bcdf9ab76bf3723e6015d4255d53e7c1e7259b61 Sat Aug 27 14:18:49 2016 +0300 +* d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 Fred Sundvik +* bcdf9ab76bf3723e6015d4255d53e7c1e7259b61 Sat Aug 27 14:18:49 2016 +0300 Fred Sundvik ## quantum/serial_link/protocol/triple_buffered_object.c -* d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 +* d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 Fred Sundvik ## quantum/serial_link/protocol/triple_buffered_object.h -* d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 +* d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 Fred Sundvik ## quantum/serial_link/system/serial_link.c -* d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 +* d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 Fred Sundvik ## quantum/serial_link/system/serial_link.h -* d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 +* d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 Fred Sundvik ## quantum/serial_link/tests/byte_stuffer_tests.cpp -* 0a11460175d6a838c71343c19eb4ce4699936247 Wed Aug 24 22:23:17 2016 +0300 +* 0a11460175d6a838c71343c19eb4ce4699936247 Wed Aug 24 22:23:17 2016 +0300 Fred Sundvik ## quantum/serial_link/tests/frame_router_tests.cpp -* cdd0913bcc63334fa20f1a7bd46bdce4d4f2843b Sat Aug 27 13:43:46 2016 +0300 +* cdd0913bcc63334fa20f1a7bd46bdce4d4f2843b Sat Aug 27 13:43:46 2016 +0300 Fred Sundvik ## quantum/serial_link/tests/frame_validator_tests.cpp -* b3eba797af74ace19b9f2e762bdd33d9449e3f94 Sat Aug 27 13:54:16 2016 +0300 +* b3eba797af74ace19b9f2e762bdd33d9449e3f94 Sat Aug 27 13:54:16 2016 +0300 Fred Sundvik ## quantum/serial_link/tests/Makefile -* d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 +* d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 Fred Sundvik ## quantum/serial_link/tests/rules.mk -* 0a11460175d6a838c71343c19eb4ce4699936247 Wed Aug 24 22:23:17 2016 +0300 -* cdd0913bcc63334fa20f1a7bd46bdce4d4f2843b Sat Aug 27 13:43:46 2016 +0300 -* b3eba797af74ace19b9f2e762bdd33d9449e3f94 Sat Aug 27 13:54:16 2016 +0300 -* bcdf9ab76bf3723e6015d4255d53e7c1e7259b61 Sat Aug 27 14:18:49 2016 +0300 -* ffb0a126f5b2484eda7f6b1c62ea61924eec6521 Sat Aug 27 14:25:52 2016 +0300 +* 0a11460175d6a838c71343c19eb4ce4699936247 Wed Aug 24 22:23:17 2016 +0300 Fred Sundvik +* cdd0913bcc63334fa20f1a7bd46bdce4d4f2843b Sat Aug 27 13:43:46 2016 +0300 Fred Sundvik +* b3eba797af74ace19b9f2e762bdd33d9449e3f94 Sat Aug 27 13:54:16 2016 +0300 Fred Sundvik +* bcdf9ab76bf3723e6015d4255d53e7c1e7259b61 Sat Aug 27 14:18:49 2016 +0300 Fred Sundvik +* ffb0a126f5b2484eda7f6b1c62ea61924eec6521 Sat Aug 27 14:25:52 2016 +0300 Fred Sundvik ## quantum/serial_link/tests/testlist.mk -* 6d7cd639a5e4503f00162c7cfa4bc7302b82c71c Sun Aug 21 16:29:54 2016 +0300 -* ffb0a126f5b2484eda7f6b1c62ea61924eec6521 Sat Aug 27 14:25:52 2016 +0300 +* 6d7cd639a5e4503f00162c7cfa4bc7302b82c71c Sun Aug 21 16:29:54 2016 +0300 Fred Sundvik +* ffb0a126f5b2484eda7f6b1c62ea61924eec6521 Sat Aug 27 14:25:52 2016 +0300 Fred Sundvik ## quantum/serial_link/tests/transport_tests.cpp -* bcdf9ab76bf3723e6015d4255d53e7c1e7259b61 Sat Aug 27 14:18:49 2016 +0300 +* bcdf9ab76bf3723e6015d4255d53e7c1e7259b61 Sat Aug 27 14:18:49 2016 +0300 Fred Sundvik ## quantum/serial_link/tests/triple_buffered_object_tests.cpp -* ffb0a126f5b2484eda7f6b1c62ea61924eec6521 Sat Aug 27 14:25:52 2016 +0300 +* ffb0a126f5b2484eda7f6b1c62ea61924eec6521 Sat Aug 27 14:25:52 2016 +0300 Fred Sundvik ## quantum/template/config.h -* 6f3141965e88c4ee0ebf7c18a243e4c2d9c5021b Tue Oct 27 14:33:18 2015 -0400 -* 24f2698fba0055128eb90fbde793e3c84900df69 Sat Jan 23 20:45:52 2016 -0500 -* 577971ab07a49405e1dcd8e5f75b3ecb87e710b9 Mon Mar 28 00:03:21 2016 -0500 -* 1d13aa933bbb57bf0c1fe0196981b81233c3df97 Mon Mar 28 19:45:20 2016 -0500 -* aaa758f1d3f97dda39879f2b055ad2da9680adfe Mon May 23 20:42:21 2016 -0700 -* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 +* 6f3141965e88c4ee0ebf7c18a243e4c2d9c5021b Tue Oct 27 14:33:18 2015 -0400 Jack Humbert +* 24f2698fba0055128eb90fbde793e3c84900df69 Sat Jan 23 20:45:52 2016 -0500 Jack Humbert +* 577971ab07a49405e1dcd8e5f75b3ecb87e710b9 Mon Mar 28 00:03:21 2016 -0500 IBNobody +* 1d13aa933bbb57bf0c1fe0196981b81233c3df97 Mon Mar 28 19:45:20 2016 -0500 IBNobody +* aaa758f1d3f97dda39879f2b055ad2da9680adfe Mon May 23 20:42:21 2016 -0700 Eric Tang +* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 Jack Humbert ## quantum/template/Makefile -* 6f3141965e88c4ee0ebf7c18a243e4c2d9c5021b Tue Oct 27 14:33:18 2015 -0400 -* 6485c7d7dae01c499a7e1f27e7956f12ce0f6901 Thu Nov 5 12:07:03 2015 -0500 -* 24f2698fba0055128eb90fbde793e3c84900df69 Sat Jan 23 20:45:52 2016 -0500 -* 577971ab07a49405e1dcd8e5f75b3ecb87e710b9 Mon Mar 28 00:03:21 2016 -0500 -* 0656f2fa10e25e160617c3e5d14cfbae35dd9c8d Fri Apr 29 22:19:40 2016 -0400 -* 38987d4c1589d2d457459f42e179be24b712be30 Sat May 28 12:05:17 2016 -0400 -* d9e4dad0a828a8a904f44dda090a4d6d08fe2948 Sat Jun 11 13:31:31 2016 -0400 -* a8375fa15a6ca9285eb15ae89bcda898349e06f8 Tue Jun 21 10:21:43 2016 -0400 -* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 -* ab4d7adbb96fa034fd20364247d615f527661594 Fri Aug 19 09:06:28 2016 +0300 +* 6f3141965e88c4ee0ebf7c18a243e4c2d9c5021b Tue Oct 27 14:33:18 2015 -0400 Jack Humbert +* 6485c7d7dae01c499a7e1f27e7956f12ce0f6901 Thu Nov 5 12:07:03 2015 -0500 Jack Humbert +* 24f2698fba0055128eb90fbde793e3c84900df69 Sat Jan 23 20:45:52 2016 -0500 Jack Humbert +* 577971ab07a49405e1dcd8e5f75b3ecb87e710b9 Mon Mar 28 00:03:21 2016 -0500 IBNobody +* 0656f2fa10e25e160617c3e5d14cfbae35dd9c8d Fri Apr 29 22:19:40 2016 -0400 Jack Humbert +* 38987d4c1589d2d457459f42e179be24b712be30 Sat May 28 12:05:17 2016 -0400 Jack Humbert +* d9e4dad0a828a8a904f44dda090a4d6d08fe2948 Sat Jun 11 13:31:31 2016 -0400 Jack Humbert +* a8375fa15a6ca9285eb15ae89bcda898349e06f8 Tue Jun 21 10:21:43 2016 -0400 Jack Humbert +* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 Jack Humbert +* ab4d7adbb96fa034fd20364247d615f527661594 Fri Aug 19 09:06:28 2016 +0300 Fred Sundvik ## quantum/template/readme.md -* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 -* 1f5838a28679975f689e35471a35720ed5c7e7c5 Sat Aug 27 23:29:37 2016 +0300 +* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 Jack Humbert +* 1f5838a28679975f689e35471a35720ed5c7e7c5 Sat Aug 27 23:29:37 2016 +0300 Fred Sundvik ## quantum/template/rules.mk -* ab4d7adbb96fa034fd20364247d615f527661594 Fri Aug 19 09:06:28 2016 +0300 +* ab4d7adbb96fa034fd20364247d615f527661594 Fri Aug 19 09:06:28 2016 +0300 Fred Sundvik ## quantum/template/template.c -* 6f3141965e88c4ee0ebf7c18a243e4c2d9c5021b Tue Oct 27 14:33:18 2015 -0400 -* 641859df84bf40025b2c14319d1a168a435562e2 Thu Mar 10 11:28:34 2016 -0500 -* eba9a7d74db0be548cddc107f0370dabf43b017f Tue Mar 15 23:52:51 2016 -0500 -* ec62d9e85cab5cf166241b0536120d005fa7c898 Tue Mar 22 20:39:05 2016 -0500 -* 3d56ec052ed485d4b717da930c4024b4a3f792e0 Tue Mar 22 21:06:22 2016 -0500 -* 2181be029e01d9cf46ae3cadcdf25f5bca02c631 Mon Mar 28 16:13:37 2016 +0200 -* 0656f2fa10e25e160617c3e5d14cfbae35dd9c8d Fri Apr 29 22:19:40 2016 -0400 -* 1a8c0dd22d6a2255511d0db6a456315541b5815b Sun May 15 00:27:32 2016 -0400 -* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 -* 589df84d6cd19ad7d776cc19bcddade1cd178ddc Thu Jul 7 09:58:44 2016 -0400 -* c1dfb636ef61159456bdb24f4fee3f27e5babbeb Thu Jul 7 12:22:10 2016 -0400 +* 6f3141965e88c4ee0ebf7c18a243e4c2d9c5021b Tue Oct 27 14:33:18 2015 -0400 Jack Humbert +* 641859df84bf40025b2c14319d1a168a435562e2 Thu Mar 10 11:28:34 2016 -0500 yoyoerx +* eba9a7d74db0be548cddc107f0370dabf43b017f Tue Mar 15 23:52:51 2016 -0500 IBNobody +* ec62d9e85cab5cf166241b0536120d005fa7c898 Tue Mar 22 20:39:05 2016 -0500 IBNobody +* 3d56ec052ed485d4b717da930c4024b4a3f792e0 Tue Mar 22 21:06:22 2016 -0500 IBNobody +* 2181be029e01d9cf46ae3cadcdf25f5bca02c631 Mon Mar 28 16:13:37 2016 +0200 Damien Pollet +* 0656f2fa10e25e160617c3e5d14cfbae35dd9c8d Fri Apr 29 22:19:40 2016 -0400 Jack Humbert +* 1a8c0dd22d6a2255511d0db6a456315541b5815b Sun May 15 00:27:32 2016 -0400 Erez Zukerman +* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 Jack Humbert +* 589df84d6cd19ad7d776cc19bcddade1cd178ddc Thu Jul 7 09:58:44 2016 -0400 Jack Humbert +* c1dfb636ef61159456bdb24f4fee3f27e5babbeb Thu Jul 7 12:22:10 2016 -0400 Jack Humbert ## quantum/template/template.h -* 6f3141965e88c4ee0ebf7c18a243e4c2d9c5021b Tue Oct 27 14:33:18 2015 -0400 -* 24f2698fba0055128eb90fbde793e3c84900df69 Sat Jan 23 20:45:52 2016 -0500 -* ee1b94045e5bebda517119cb1853b0ab3fd0f499 Fri Mar 4 10:53:58 2016 -0500 -* 641859df84bf40025b2c14319d1a168a435562e2 Thu Mar 10 11:28:34 2016 -0500 -* eba9a7d74db0be548cddc107f0370dabf43b017f Tue Mar 15 23:52:51 2016 -0500 -* ec62d9e85cab5cf166241b0536120d005fa7c898 Tue Mar 22 20:39:05 2016 -0500 -* 2181be029e01d9cf46ae3cadcdf25f5bca02c631 Mon Mar 28 16:13:37 2016 +0200 -* 0656f2fa10e25e160617c3e5d14cfbae35dd9c8d Fri Apr 29 22:19:40 2016 -0400 -* 1a8c0dd22d6a2255511d0db6a456315541b5815b Sun May 15 00:27:32 2016 -0400 -* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 -* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 +* 6f3141965e88c4ee0ebf7c18a243e4c2d9c5021b Tue Oct 27 14:33:18 2015 -0400 Jack Humbert +* 24f2698fba0055128eb90fbde793e3c84900df69 Sat Jan 23 20:45:52 2016 -0500 Jack Humbert +* ee1b94045e5bebda517119cb1853b0ab3fd0f499 Fri Mar 4 10:53:58 2016 -0500 Noah Andrews +* 641859df84bf40025b2c14319d1a168a435562e2 Thu Mar 10 11:28:34 2016 -0500 yoyoerx +* eba9a7d74db0be548cddc107f0370dabf43b017f Tue Mar 15 23:52:51 2016 -0500 IBNobody +* ec62d9e85cab5cf166241b0536120d005fa7c898 Tue Mar 22 20:39:05 2016 -0500 IBNobody +* 2181be029e01d9cf46ae3cadcdf25f5bca02c631 Mon Mar 28 16:13:37 2016 +0200 Damien Pollet +* 0656f2fa10e25e160617c3e5d14cfbae35dd9c8d Fri Apr 29 22:19:40 2016 -0400 Jack Humbert +* 1a8c0dd22d6a2255511d0db6a456315541b5815b Sun May 15 00:27:32 2016 -0400 Erez Zukerman +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert +* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 Jack Humbert ## quantum/template/keymaps/default/config.h -* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 +* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 Jack Humbert ## quantum/template/keymaps/default/keymap.c -* d9e4dad0a828a8a904f44dda090a4d6d08fe2948 Sat Jun 11 13:31:31 2016 -0400 -* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 +* d9e4dad0a828a8a904f44dda090a4d6d08fe2948 Sat Jun 11 13:31:31 2016 -0400 Jack Humbert +* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 Jack Humbert ## quantum/template/keymaps/default/Makefile -* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 +* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 Jack Humbert ## quantum/template/keymaps/default/readme.md -* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 +* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 Jack Humbert ## quantum/tools/eeprom_reset.hex -* 0b0ec82427aff54481103559066213056b6d7598 Sat Apr 16 00:01:22 2016 -0400 +* 0b0ec82427aff54481103559066213056b6d7598 Sat Apr 16 00:01:22 2016 -0400 Jack Humbert ## quantum/tools/readme.md -* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 +* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 Jack Humbert ## quantum/visualizer/lcd_backlight.c -* 9f33a5593cc70dfb0885328061f1aa4b2c2fa386 Wed Jul 6 20:15:45 2016 +0300 +* 9f33a5593cc70dfb0885328061f1aa4b2c2fa386 Wed Jul 6 20:15:45 2016 +0300 Fred Sundvik ## quantum/visualizer/lcd_backlight.h -* 9f33a5593cc70dfb0885328061f1aa4b2c2fa386 Wed Jul 6 20:15:45 2016 +0300 +* 9f33a5593cc70dfb0885328061f1aa4b2c2fa386 Wed Jul 6 20:15:45 2016 +0300 Fred Sundvik ## quantum/visualizer/led_test.c -* 6c296557909501b71fe344ce379e74094cf77c8e Wed Jul 6 20:30:58 2016 +0300 -* 07d0d5cbe48d7afaf0bc8c9916d40179ec51cb42 Thu Jul 7 12:46:10 2016 +0300 +* 6c296557909501b71fe344ce379e74094cf77c8e Wed Jul 6 20:30:58 2016 +0300 Fred Sundvik +* 07d0d5cbe48d7afaf0bc8c9916d40179ec51cb42 Thu Jul 7 12:46:10 2016 +0300 Fred Sundvik ## quantum/visualizer/led_test.h -* 6c296557909501b71fe344ce379e74094cf77c8e Wed Jul 6 20:30:58 2016 +0300 +* 6c296557909501b71fe344ce379e74094cf77c8e Wed Jul 6 20:30:58 2016 +0300 Fred Sundvik ## quantum/visualizer/LICENSE.md -* 9f33a5593cc70dfb0885328061f1aa4b2c2fa386 Wed Jul 6 20:15:45 2016 +0300 +* 9f33a5593cc70dfb0885328061f1aa4b2c2fa386 Wed Jul 6 20:15:45 2016 +0300 Fred Sundvik ## quantum/visualizer/readme.md -* 9f33a5593cc70dfb0885328061f1aa4b2c2fa386 Wed Jul 6 20:15:45 2016 +0300 +* 9f33a5593cc70dfb0885328061f1aa4b2c2fa386 Wed Jul 6 20:15:45 2016 +0300 Fred Sundvik ## quantum/visualizer/visualizer.c -* 9f33a5593cc70dfb0885328061f1aa4b2c2fa386 Wed Jul 6 20:15:45 2016 +0300 -* 6c296557909501b71fe344ce379e74094cf77c8e Wed Jul 6 20:30:58 2016 +0300 -* 70797bb8f21c72cba15b314b2d0a6684bfedc369 Thu Jul 7 00:20:20 2016 +0300 -* 7229751ba9d402b2a6c9dc1b7b29385b5162fe41 Thu Jul 7 14:01:20 2016 +0300 -* dae7c9bfb3325412c542fbbe4342c9c8e0fc1904 Thu Jul 7 14:12:56 2016 +0300 -* 9eb8d05246fba4f46c04b8fa1884b8f2d2ee0664 Tue Jan 17 21:47:07 2017 -0500 +* 9f33a5593cc70dfb0885328061f1aa4b2c2fa386 Wed Jul 6 20:15:45 2016 +0300 Fred Sundvik +* 6c296557909501b71fe344ce379e74094cf77c8e Wed Jul 6 20:30:58 2016 +0300 Fred Sundvik +* 70797bb8f21c72cba15b314b2d0a6684bfedc369 Thu Jul 7 00:20:20 2016 +0300 Fred Sundvik +* 7229751ba9d402b2a6c9dc1b7b29385b5162fe41 Thu Jul 7 14:01:20 2016 +0300 Fred Sundvik +* dae7c9bfb3325412c542fbbe4342c9c8e0fc1904 Thu Jul 7 14:12:56 2016 +0300 Fred Sundvik +* 9eb8d05246fba4f46c04b8fa1884b8f2d2ee0664 Tue Jan 17 21:47:07 2017 -0500 SjB ## quantum/visualizer/visualizer.h -* 9f33a5593cc70dfb0885328061f1aa4b2c2fa386 Wed Jul 6 20:15:45 2016 +0300 -* 6c296557909501b71fe344ce379e74094cf77c8e Wed Jul 6 20:30:58 2016 +0300 -* 70797bb8f21c72cba15b314b2d0a6684bfedc369 Thu Jul 7 00:20:20 2016 +0300 -* 9eb8d05246fba4f46c04b8fa1884b8f2d2ee0664 Tue Jan 17 21:47:07 2017 -0500 +* 9f33a5593cc70dfb0885328061f1aa4b2c2fa386 Wed Jul 6 20:15:45 2016 +0300 Fred Sundvik +* 6c296557909501b71fe344ce379e74094cf77c8e Wed Jul 6 20:30:58 2016 +0300 Fred Sundvik +* 70797bb8f21c72cba15b314b2d0a6684bfedc369 Thu Jul 7 00:20:20 2016 +0300 Fred Sundvik +* 9eb8d05246fba4f46c04b8fa1884b8f2d2ee0664 Tue Jan 17 21:47:07 2017 -0500 SjB ## quantum/visualizer/visualizer.mk -* 9f33a5593cc70dfb0885328061f1aa4b2c2fa386 Wed Jul 6 20:15:45 2016 +0300 -* 6c296557909501b71fe344ce379e74094cf77c8e Wed Jul 6 20:30:58 2016 +0300 -* 70797bb8f21c72cba15b314b2d0a6684bfedc369 Thu Jul 7 00:20:20 2016 +0300 -* 07d0d5cbe48d7afaf0bc8c9916d40179ec51cb42 Thu Jul 7 12:46:10 2016 +0300 -* 7229751ba9d402b2a6c9dc1b7b29385b5162fe41 Thu Jul 7 14:01:20 2016 +0300 -* aaac254ebce2005272e7385488b5690bbbe6d7c8 Thu Jul 7 14:29:53 2016 +0300 -* caedec92d2c22480313c43a364408fb920c55364 Thu Jul 7 14:42:16 2016 +0300 +* 9f33a5593cc70dfb0885328061f1aa4b2c2fa386 Wed Jul 6 20:15:45 2016 +0300 Fred Sundvik +* 6c296557909501b71fe344ce379e74094cf77c8e Wed Jul 6 20:30:58 2016 +0300 Fred Sundvik +* 70797bb8f21c72cba15b314b2d0a6684bfedc369 Thu Jul 7 00:20:20 2016 +0300 Fred Sundvik +* 07d0d5cbe48d7afaf0bc8c9916d40179ec51cb42 Thu Jul 7 12:46:10 2016 +0300 Fred Sundvik +* 7229751ba9d402b2a6c9dc1b7b29385b5162fe41 Thu Jul 7 14:01:20 2016 +0300 Fred Sundvik +* aaac254ebce2005272e7385488b5690bbbe6d7c8 Thu Jul 7 14:29:53 2016 +0300 Fred Sundvik +* caedec92d2c22480313c43a364408fb920c55364 Thu Jul 7 14:42:16 2016 +0300 Fred Sundvik ## quantum/visualizer/example_integration/callbacks.c -* 9f33a5593cc70dfb0885328061f1aa4b2c2fa386 Wed Jul 6 20:15:45 2016 +0300 +* 9f33a5593cc70dfb0885328061f1aa4b2c2fa386 Wed Jul 6 20:15:45 2016 +0300 Fred Sundvik ## quantum/visualizer/example_integration/gfxconf.h -* 9f33a5593cc70dfb0885328061f1aa4b2c2fa386 Wed Jul 6 20:15:45 2016 +0300 +* 9f33a5593cc70dfb0885328061f1aa4b2c2fa386 Wed Jul 6 20:15:45 2016 +0300 Fred Sundvik ## quantum/visualizer/example_integration/lcd_backlight_hal.c -* 9f33a5593cc70dfb0885328061f1aa4b2c2fa386 Wed Jul 6 20:15:45 2016 +0300 +* 9f33a5593cc70dfb0885328061f1aa4b2c2fa386 Wed Jul 6 20:15:45 2016 +0300 Fred Sundvik ## quantum/visualizer/example_integration/visualizer_user.c -* 9f33a5593cc70dfb0885328061f1aa4b2c2fa386 Wed Jul 6 20:15:45 2016 +0300 +* 9f33a5593cc70dfb0885328061f1aa4b2c2fa386 Wed Jul 6 20:15:45 2016 +0300 Fred Sundvik From 5c277651a3208b66c3d7d16721d8af4d582926b9 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Fri, 27 Jan 2017 11:30:25 -0800 Subject: [PATCH 257/517] Updated License Clarification (markdown) --- License-Clarification.md | 62 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 61 insertions(+), 1 deletion(-) diff --git a/License-Clarification.md b/License-Clarification.md index b100cb5bfb..dd6544d8b0 100644 --- a/License-Clarification.md +++ b/License-Clarification.md @@ -2,6 +2,66 @@ As raised in #1038 and other issues, the licensing status of QMK is not clear. In an effort to remove ambiguity and to clarify the licensing status of the quantum code we are identifying the providence of our source code files and clarifying what license applies to each one. +# Single Author Files + +These files have only a single author and so clarifying licensing should be pretty straightforward. + +* quantum/analog.c: Jack Humbert +* quantum/analog.h: Jack Humbert +* quantum/api.h: Jack Humbert +* quantum/keycode_config.c: Jack Humbert +* quantum/pincontrol.h: Wez Furlong +* quantum/api/api_sysex.h: Jack Humbert +* quantum/audio/luts.c: IBNobody +* quantum/audio/luts.h: IBNobody +* quantum/audio/musical_notes.h: Jack Humbert +* quantum/audio/wave.h: Jack Humbert +* quantum/keymap_extras/keymap_br_abnt2.h: Potiguar Faga +* quantum/keymap_extras/keymap_dvp.h: Artyom Mironov +* quantum/keymap_extras/keymap_jp.h: h-youhei +* quantum/keymap_extras/keymap_unicode_cyrillic.h: kuel +* quantum/process_keycode/process_chording.c: Jack Humbert +* quantum/process_keycode/process_chording.h: Jack Humbert +* quantum/process_keycode/process_leader.c: Jack Humbert +* quantum/process_keycode/process_leader.h: Jack Humbert +* quantum/process_keycode/process_midi.h: Jack Humbert +* quantum/process_keycode/process_music.h: Jack Humbert +* quantum/process_keycode/process_printer.c: Jack Humbert +* quantum/process_keycode/process_printer.h: Jack Humbert +* quantum/process_keycode/process_printer_bb.c: Jack Humbert +* quantum/serial_link/LICENSE: Fred Sundvik +* quantum/serial_link/protocol/frame_router.c: Fred Sundvik +* quantum/serial_link/protocol/frame_router.h: Fred Sundvik +* quantum/serial_link/protocol/frame_validator.c: Fred Sundvik +* quantum/serial_link/protocol/frame_validator.h: Fred Sundvik +* quantum/serial_link/protocol/physical.h: Fred Sundvik +* quantum/serial_link/protocol/triple_buffered_object.c: Fred Sundvik +* quantum/serial_link/protocol/triple_buffered_object.h: Fred Sundvik +* quantum/serial_link/system/serial_link.c: Fred Sundvik +* quantum/serial_link/system/serial_link.h: Fred Sundvik +* quantum/serial_link/tests/byte_stuffer_tests.cpp: Fred Sundvik +* quantum/serial_link/tests/frame_router_tests.cpp: Fred Sundvik +* quantum/serial_link/tests/frame_validator_tests.cpp: Fred Sundvik +* quantum/serial_link/tests/Makefile: Fred Sundvik +* quantum/serial_link/tests/transport_tests.cpp: Fred Sundvik +* quantum/serial_link/tests/triple_buffered_object_tests.cpp: Fred Sundvik +* quantum/template/rules.mk: Fred Sundvik +* quantum/template/keymaps/default/config.h: Jack Humbert +* quantum/template/keymaps/default/Makefile: Jack Humbert +* quantum/template/keymaps/default/readme.md: Jack Humbert +* quantum/tools/eeprom_reset.hex: Jack Humbert +* quantum/tools/readme.md: Jack Humbert +* quantum/visualizer/lcd_backlight.c: Fred Sundvik +* quantum/visualizer/lcd_backlight.h: Fred Sundvik +* quantum/visualizer/led_test.h: Fred Sundvik +* quantum/visualizer/LICENSE.md: Fred Sundvik +* quantum/visualizer/readme.md: Fred Sundvik +* quantum/visualizer/example_integration/callbacks.c: Fred Sundvik +* quantum/visualizer/example_integration/gfxconf.h: Fred Sundvik +* quantum/visualizer/example_integration/lcd_backlight_hal.c: Fred Sundvik +* quantum/visualizer/example_integration/visualizer_user.c: Fred Sundvik + +# Files ## quantum/analog.c @@ -898,4 +958,4 @@ As raised in #1038 and other issues, the licensing status of QMK is not clear. I ## quantum/visualizer/example_integration/visualizer_user.c -* 9f33a5593cc70dfb0885328061f1aa4b2c2fa386 Wed Jul 6 20:15:45 2016 +0300 Fred Sundvik +* 9f33a5593cc70dfb0885328061f1aa4b2c2fa386 Wed Jul 6 20:15:45 2016 +0300 Fred Sundvik \ No newline at end of file From 9adb6f777b26d72f304939d2039cd24153d40a1c Mon Sep 17 00:00:00 2001 From: skullydazed Date: Fri, 27 Jan 2017 14:14:19 -0800 Subject: [PATCH 258/517] Updated License Clarification (markdown) --- License-Clarification.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/License-Clarification.md b/License-Clarification.md index dd6544d8b0..f967caa842 100644 --- a/License-Clarification.md +++ b/License-Clarification.md @@ -4,6 +4,14 @@ As raised in #1038 and other issues, the licensing status of QMK is not clear. I # Single Author Files +These are the single author files that still need to have their license clarified. + +* quantum/pincontrol.h: Wez Furlong +* quantum/keymap_extras/keymap_jp.h: h-youhei +* quantum/keymap_extras/keymap_unicode_cyrillic.h: kuel + +## All Single Author Files + These files have only a single author and so clarifying licensing should be pretty straightforward. * quantum/analog.c: Jack Humbert From c0a04929f27feb377ce59cd1235404d5b74467f5 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Fri, 27 Jan 2017 14:21:31 -0800 Subject: [PATCH 259/517] Updated License Clarification (markdown) --- License-Clarification.md | 588 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 586 insertions(+), 2 deletions(-) diff --git a/License-Clarification.md b/License-Clarification.md index f967caa842..48b7400f70 100644 --- a/License-Clarification.md +++ b/License-Clarification.md @@ -10,7 +10,591 @@ These are the single author files that still need to have their license clarifie * quantum/keymap_extras/keymap_jp.h: h-youhei * quantum/keymap_extras/keymap_unicode_cyrillic.h: kuel -## All Single Author Files +# Multi Author Files + +## quantum/config_common.h + +* 35a81f5b8b081e1607a7c04489b01f551c3213cc Mon Oct 26 16:32:37 2015 -0400 Jack Humbert +* aaa758f1d3f97dda39879f2b055ad2da9680adfe Mon May 23 20:42:21 2016 -0700 Eric Tang +* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 Jack Humbert +* 705c775a4a433249081321cea0c2def2627817dc Sun Aug 21 22:05:55 2016 -0500 IBNobody +* 936a26d04ffa12801031c058f27e221174e3fabd Thu Aug 25 00:15:41 2016 -0500 IBNobody +* 6390033e8688550826a4bd3004a2e76568600657 Mon Nov 21 20:14:16 2016 -0500 Jack Humbert +* 03d6e165bb0baf9d0093250d3c3c0771290df4d6 Fri Nov 25 09:17:40 2016 +0200 ofples +* 0c9d66eb59add717397ba83d508577073412ce86 Fri Nov 25 09:20:41 2016 +0200 ofples +* de1df639535817e17f1c01f07e7a629cec478526 Sat Nov 26 13:55:41 2016 +0700 Priyadi Iman Nurcahyo +* 17acde94ee2695ab69ea336742c904d649dce17c Sat Nov 26 14:02:38 2016 +0700 Priyadi Iman Nurcahyo +* d9d67e7b7686fdcbc7269a76d2a54c42325bdd03 Sat Nov 26 15:26:02 2016 +0700 Priyadi Iman Nurcahyo +* f2214ce1cb6cfe7a0efabe870a2c00fb8451ee80 Sat Nov 26 15:57:48 2016 +0700 Priyadi Iman Nurcahyo +* 6e0f994950435aa5867e7b7ce780186d881d74ac Mon Nov 28 23:51:07 2016 -0500 Jack Humbert +* dd685eceb2045371d38f24d454f1ab08ca7416f4 Thu Dec 29 12:13:30 2016 +0200 Fred Sundvik + +## quantum/dynamic_macro.h + +* 39e8e61258b51a2c33a94dd877e983f0b1dae0c1 Thu Aug 18 01:37:13 2016 +0200 Wojciech Siewierski +* 70f32842e5d94f14d05c1f9adcb1b1144a25a132 Sun Oct 9 12:52:39 2016 +0200 Wojciech Siewierski + +## quantum/keycode_config.h + +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert +* 4d4f7684e684bec319f166121463a88cd4a62703 Fri Jul 1 17:04:53 2016 +0300 fredizzimo +* 558f3ec1eb325caf706efc15e2fab26121aba442 Tue Sep 6 23:19:01 2016 -0500 IBNobody + +## quantum/keymap.h + +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert +* 76076db72545bbb649f11394a12721f61579527f Mon Jun 20 22:36:36 2016 -0400 Jack & Erez +* 1a0bac8bccf0e156d2f3c5f14a7214f9677b6370 Tue Jun 21 17:42:29 2016 -0400 Jack Humbert +* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 Jack Humbert +* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 Jack Humbert +* 4d4f7684e684bec319f166121463a88cd4a62703 Fri Jul 1 17:04:53 2016 +0300 fredizzimo +* 50c686587ed49d8079ba1b11d45ceb6a55d6cd4b Thu Jul 7 23:34:33 2016 -0400 TerryMathews +* e692ebf86a962e90c51302e7b17a953ea2858f79 Fri Aug 12 20:38:26 2016 +0900 shela +* 558f3ec1eb325caf706efc15e2fab26121aba442 Tue Sep 6 23:19:01 2016 -0500 IBNobody +* 1048a588c750e27ff0f900cd6aaf670e034086d0 Fri Oct 7 17:15:11 2016 +0200 npoirey +* 5b2e455d3b71bfb90754930d1f22d3e8ce98b927 Mon Oct 10 00:46:20 2016 +0700 Priyadi Iman Nurcahyo +* e27a754b70434de88a37c4a572e4ca5f7730ff58 Wed Oct 12 22:18:27 2016 -0400 Jack & Erez +* 52d7f7d2770a35adf0b0b0c803e05ae8719f539f Sun Oct 16 15:49:45 2016 -0400 Jack Humbert +* 5f91fb413624781ac79db641549b9e08753c04b5 Sun Oct 16 16:03:33 2016 -0400 Jack Humbert +* 33e62c080c9161a0fc921c90ed299a67fc2e1799 Sat Nov 12 20:54:37 2016 -0500 Jack Humbert +* 01038ab54ca6c2858ea9e856c717a1129ffe4156 Fri Dec 23 21:51:11 2016 +0200 Ofer Plesser +* d8a608f3ff4cb4d73cd57be500fd9881e230099d Thu Dec 29 18:28:48 2016 +1100 Wilba6582 + +## quantum/keymap_common.c + +* 46e7fb2d3ccd699c0a1b1fd9d02860b1f2a44141 Mon Oct 26 14:49:46 2015 -0400 Jack Humbert +* 35a81f5b8b081e1607a7c04489b01f551c3213cc Mon Oct 26 16:32:37 2015 -0400 Jack Humbert +* cc1c32671eb1eb43a87e55ac4ffa60b15115e48d Mon Oct 26 20:02:25 2015 -0400 Jack Humbert +* d9f08e6177271594fa573993d9f4dbc2d98c7416 Tue Oct 27 22:00:52 2015 -0400 Jack Humbert +* 18da1e6801335b0d9515ab72e9236a01d629915f Tue Oct 27 23:06:18 2015 -0400 Jack Humbert +* d3db8d62f6fc6a7dee43978ddc8356579b502b37 Wed Oct 28 04:07:15 2015 +0200 Erez Zukerman +* 7d6716beded4a60cd9de24e95d8ec60694692b6f Fri Jan 29 23:27:36 2016 -0500 Jack Humbert +* 65b41e2e59e274354e57ed36cad097823f111f1a Sun Feb 7 11:48:28 2016 +0100 Wojciech Siewierski +* 47dcec29456106828b83fe5b85fa7a7427ddc710 Sun Jan 3 17:49:28 2016 -0500 Chris Gerber +* 1d13aa933bbb57bf0c1fe0196981b81233c3df97 Mon Mar 28 19:45:20 2016 -0500 IBNobody +* 3755ef5ddbdad9f25a53fee951c3eb78035b52c3 Wed Apr 13 20:57:51 2016 -0500 IBNobody +* ee2ee7f4f049dda385a9db7dddd8e7e91681315b Fri Apr 15 13:44:07 2016 -0400 Jack Humbert +* 9cfc74c35b940884618b0fe1e6fd25c570e1c974 Thu Apr 7 15:21:06 2016 +0300 Erez Zukerman +* ab19ebd08a8b955775e6fa94cdf6b8d128d8b43c Sat Apr 16 18:51:58 2016 -0400 Jack Humbert +* c83aa16f1d614c1c10f7597a67ffb9f2ae871951 Sat Apr 16 20:26:02 2016 -0400 Jack Humbert +* 41cc35425ab32c9a9492006da8b667d01d32dfa6 Sat Apr 16 21:31:40 2016 -0400 Jack Humbert +* 8bbd064cf52a76508589579f19595607a1f3af21 Sat Apr 16 23:07:50 2016 -0400 Jack Humbert +* 45f10b4c4b308226fa1568277654a13853a03ab4 Sat Apr 16 22:10:18 2016 -0500 IBNobody +* e7b9959819e709d7df2e96a94bdaf36e4e9e23e3 Sat Apr 16 23:15:40 2016 -0400 Jack Humbert +* a67d425f4d5278595e7ab785a0f246b83fb1a09f Sun Apr 17 01:00:39 2016 -0400 Jack Humbert +* d5b72e7bde5ede25f7d5699b50b7d9eb6f31ba92 Sun Apr 17 12:54:32 2016 -0500 IBNobody +* 3103ea542f0039637a1a266df79a97a7a13fa6b4 Sun Apr 17 12:55:19 2016 -0500 IBNobody +* 23231fa577f7c6c585124226a83f21a7668e62dd Sun Apr 17 14:16:03 2016 -0500 IBNobody +* 5c98ad59606ee95b82c27bf2525383a9ec88542b Sun Apr 17 20:14:37 2016 -0500 IBNobody +* e49712b5593b887c8af18aeb7196513f1c7b7bcf Mon Apr 18 21:01:48 2016 -0400 Jack Humbert +* 620ac4b260fa663d12b11a0b15ac50379523c125 Thu Apr 21 19:35:18 2016 -0700 Eric Tang +* 83e1cc241e3aabd69f6cdcd2581477d4b85bb8d3 Tue May 3 12:56:40 2016 -0500 IBNobody +* 41b3e399b1d43db9574c6016951d92974b3d93e7 Thu May 5 21:50:51 2016 -0400 Jack Humbert +* 1a8c0dd22d6a2255511d0db6a456315541b5815b Sun May 15 00:27:32 2016 -0400 Erez Zukerman +* fde477a927edc6b4207a6968d44aeed021e8b300 Sun May 15 00:51:06 2016 -0400 Jack Humbert +* b732b79b49b098dba8e14493c745075f336747d8 Wed May 18 23:47:16 2016 -0400 Jack Humbert +* 287eb7ad148abc8fe3fb014218d71e205fd9131d Tue May 24 11:56:53 2016 -0400 Jack Humbert +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert +* 4d4f7684e684bec319f166121463a88cd4a62703 Fri Jul 1 17:04:53 2016 +0300 fredizzimo +* 9870082a06386eba8c0c5f22da90d0256ef6244b Thu Jul 7 19:48:39 2016 +0300 Fred Sundvik +* 8b94e26d7c3b30cc57d710a11e5651d15e8e3b20 Sun Jul 24 22:07:43 2016 -0400 Jack Humbert +* d8a608f3ff4cb4d73cd57be500fd9881e230099d Thu Dec 29 18:28:48 2016 +1100 Wilba6582 + +## quantum/light_ws2812.c + +* ba9ac457b2159097ecfd9848c5171c52e3a68260 Sun Jan 24 17:05:47 2016 -0800 Yang Liu +* 57e08eb8badc5db2fb44d2df684f32ea48cce411 Thu Jul 7 11:33:32 2016 -0400 Jack Humbert +* 5f91fb413624781ac79db641549b9e08753c04b5 Sun Oct 16 16:03:33 2016 -0400 Jack Humbert +* 33e62c080c9161a0fc921c90ed299a67fc2e1799 Sat Nov 12 20:54:37 2016 -0500 Jack Humbert +* e9f748751808de2f1e85cf7fb670d78773bd5e76 Sun Nov 13 23:02:38 2016 -0500 Jack Humbert +* 530dd3377e4d409a7ca2fee7e47b60b735ebc0fa Tue Nov 15 13:18:10 2016 -0500 Jack Humbert +* 3774a7fcdab5544fc787f4c200be05fcd417e31f Thu Nov 17 17:42:14 2016 -0500 Jack Humbert + +## quantum/light_ws2812.h + +* ba9ac457b2159097ecfd9848c5171c52e3a68260 Sun Jan 24 17:05:47 2016 -0800 Yang Liu +* 5f91fb413624781ac79db641549b9e08753c04b5 Sun Oct 16 16:03:33 2016 -0400 Jack Humbert +* e9f748751808de2f1e85cf7fb670d78773bd5e76 Sun Nov 13 23:02:38 2016 -0500 Jack Humbert +* 664c0a036b3d7c3ed39f4a7a78d97f4a9cc7d20c Mon Nov 21 19:50:55 2016 -0500 Jack Humbert +* 06c64bbff3e228df542149acde64eadaf59b9b0f Mon Dec 19 11:18:18 2016 -0500 Jack Humbert + +## quantum/matrix.c + +* 46e7fb2d3ccd699c0a1b1fd9d02860b1f2a44141 Mon Oct 26 14:49:46 2015 -0400 Jack Humbert +* 35a81f5b8b081e1607a7c04489b01f551c3213cc Mon Oct 26 16:32:37 2015 -0400 Jack Humbert +* 641859df84bf40025b2c14319d1a168a435562e2 Thu Mar 10 11:28:34 2016 -0500 yoyoerx +* 684793360cdb08ac1e50a6d27e1796fadd527adb Mon May 9 00:36:23 2016 -0400 Jack Humbert +* 1a8c0dd22d6a2255511d0db6a456315541b5815b Sun May 15 00:27:32 2016 -0400 Erez Zukerman +* aaa758f1d3f97dda39879f2b055ad2da9680adfe Mon May 23 20:42:21 2016 -0700 Eric Tang +* 1ae6011cef2230826a9e6db6c5b638677bc640b7 Tue May 24 08:44:40 2016 -0700 Eric Tang +* de57799530d3184722532f93d156364067d8fcd5 Sat May 28 11:56:06 2016 -0400 Jack Humbert +* 008c8d54a0a1a1e908d372d0fe9edb45a2d491e5 Fri Jun 17 22:09:59 2016 -0400 Jack Humbert +* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 Jack Humbert +* 215c2119af5281072d5a6efb0308408793cadd08 Wed Jun 29 16:21:41 2016 -0400 Jack Humbert +* 4d4f7684e684bec319f166121463a88cd4a62703 Fri Jul 1 17:04:53 2016 +0300 fredizzimo +* 8e88d55bfd7c88cb15845e0c6415e4e892532861 Mon Jul 4 11:45:58 2016 -0400 Jack Humbert +* 3577e26fd9916ceab58779ec6323d43da54eb3b5 Wed Jul 6 00:24:31 2016 -0400 Jack Humbert +* 17170ba76d3c94edcf1ab263520238fdb0384774 Sun Oct 23 23:00:43 2016 -0500 IBNobody +* 508eddf8ba8548d3f71e1c09a404839beb49f45c Fri Oct 28 14:21:38 2016 -0500 IBNobody +* 4c6960835c0a6e29670dabdc27117d7d3c7f99f5 Fri Oct 28 16:24:20 2016 -0500 IBNobody +* 32f88c07173b795c6981c779057dceba00aeb1cb Sat Oct 29 10:39:03 2016 -0500 IBNobody +* f4030289744fc6dc82dd85c955070c0845813cc5 Sat Oct 29 16:12:58 2016 -0500 IBNobody +* a06115df19a74d39b08758472b221e630c3680d3 Fri Nov 18 23:20:07 2016 -0500 Jack Humbert + +## quantum/quantum.c + +* 1a8c0dd22d6a2255511d0db6a456315541b5815b Sun May 15 00:27:32 2016 -0400 Erez Zukerman +* 15719f3574c6274ee0f3ec87431927c5a523aa3e Sun May 15 00:40:59 2016 -0400 Jack Humbert +* bf5c2ccee5497523c214dae7aacdc27fdbb0f235 Sun May 15 00:47:25 2016 -0400 Jack Humbert +* fde477a927edc6b4207a6968d44aeed021e8b300 Sun May 15 00:51:06 2016 -0400 Jack Humbert +* 0428214b905e5f8b3bed721885957ce249ba4991 Wed May 18 23:14:00 2016 -0400 Jack Humbert +* b732b79b49b098dba8e14493c745075f336747d8 Wed May 18 23:47:16 2016 -0400 Jack Humbert +* 0275d444d77c9d85d2189b09d8813fb76dc4d566 Thu May 19 15:36:28 2016 +0300 purpleP +* 287eb7ad148abc8fe3fb014218d71e205fd9131d Tue May 24 11:56:53 2016 -0400 Jack Humbert +* 1237025963484d70bbe5185a790bec6544653ccc Tue May 24 23:27:59 2016 -0400 Erez Zukerman +* 8bc69afc633d3e199e3ac0a5bf39e4d255f2ce4a Tue May 24 23:48:46 2016 -0400 Erez Zukerman +* 17977a7e24ddab6ca101341b33c8fe7ad13e68f5 Sat May 28 15:22:30 2016 -0400 Jack Humbert +* 1c9f33c06a6ef18c9c21e5841180af5ae554c34b Wed Jun 1 22:49:55 2016 -0400 Jack Humbert +* 4635b4453335b61df11008fa907eef221db5912b Wed Jun 1 23:00:55 2016 -0400 Jack Humbert +* 794aed37a0da5a277a07e7fa86263e0852fa9f6d Fri Jun 3 12:48:40 2016 -0700 Eric Tang +* b70248fa2144d297504eedbc80a76dfdc40d9f1f Fri Jun 17 21:42:59 2016 -0400 Jack Humbert +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert +* 76076db72545bbb649f11394a12721f61579527f Mon Jun 20 22:36:36 2016 -0400 Jack & Erez +* 98f0807359cfa78d25442b91ff4c5bbfc5679661 Tue Jun 21 22:55:54 2016 -0400 Jack Humbert +* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 Jack Humbert +* b68b722325e1f0f68387e161365fa8e31c79b7b2 Thu Jun 23 23:14:21 2016 -0400 Jack Humbert +* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 Jack Humbert +* 197f152dee834a737cd820f2a95d1ade98be4898 Wed Jun 29 18:29:20 2016 -0400 Jack Humbert +* 60fd885a6e540509baa2193932e15caeaeb8f4c5 Wed Jun 29 18:35:29 2016 -0400 Jack Humbert +* 4d4f7684e684bec319f166121463a88cd4a62703 Fri Jul 1 17:04:53 2016 +0300 fredizzimo +* 1412076df68ac00f9a00173977d2826603c12ddf Mon Jul 4 19:56:08 2016 -0700 Smilliam +* 6b0c9cc905c0985f96a80306cf5fe0d6724b28fc Mon Jul 4 19:58:26 2016 -0700 Smilliam +* a4bf46f9b1d0a0be0cecb2cd0f0d941aa7c71bd3 Wed Jul 6 22:48:19 2016 -0400 Jack Humbert +* 50c686587ed49d8079ba1b11d45ceb6a55d6cd4b Thu Jul 7 23:34:33 2016 -0400 TerryMathews +* f7a86822266603b8ffd21e9f89ec1de8d4950791 Fri Jul 8 03:32:28 2016 -0400 TerryMathews +* b12fe6abb25db1feca6a7649097a8d1cb67a063f Sun Jul 10 19:04:01 2016 -0700 Smilliam +* a998a48673372e409991066d7d2d9ba282f79d59 Mon Jul 11 09:14:43 2016 -0400 Jack Humbert +* a28a6e5b79c819e5f9323f62686498eca3ef399f Wed Jul 13 16:38:02 2016 +0200 Pavlos Vinieratos +* 857aa5bef6a74f8785a7039feea5286c07bf7067 Sat Aug 13 11:14:42 2016 +0200 Gergely Nagy +* 644c8c79271db8cf1bd934b9a80a0215585e46e7 Thu Aug 18 01:34:05 2016 +0200 Wojciech Siewierski +* 0d28787c5cf2173d12f57b397515f91cffaa820a Thu Aug 18 11:29:53 2016 +0200 Gergely Nagy +* e571d4656cd283ce8d793fe3dd2ac176b84b0bf5 Tue Sep 6 18:02:43 2016 -0500 IBNobody +* 558f3ec1eb325caf706efc15e2fab26121aba442 Tue Sep 6 23:19:01 2016 -0500 IBNobody +* 5b2e455d3b71bfb90754930d1f22d3e8ce98b927 Mon Oct 10 00:46:20 2016 +0700 Priyadi Iman Nurcahyo +* 5f91fb413624781ac79db641549b9e08753c04b5 Sun Oct 16 16:03:33 2016 -0400 Jack Humbert +* 33e62c080c9161a0fc921c90ed299a67fc2e1799 Sat Nov 12 20:54:37 2016 -0500 Jack Humbert +* e9f748751808de2f1e85cf7fb670d78773bd5e76 Sun Nov 13 23:02:38 2016 -0500 Jack Humbert +* ffa5b1e7ea6697acf9ebfcade1149031642f7870 Sat Nov 19 11:32:09 2016 +0100 Gergely Nagy +* 74a1f00713d1407fb1d2e20d58da93919ab0c221 Sat Nov 19 18:19:18 2016 +0100 Gergely Nagy +* 664c0a036b3d7c3ed39f4a7a78d97f4a9cc7d20c Mon Nov 21 19:50:55 2016 -0500 Jack Humbert +* 450a8fb5b61de8166fe21eb4f57e1c00514afe32 Mon Nov 21 20:17:45 2016 -0500 Jack Humbert +* cefa8468fb5f28bd67a0c02d371a4aef0964e20c Wed Nov 23 20:16:38 2016 -0500 Jack Humbert +* 7edac212c8ed8442bf4207e70dc8194631b2bf27 Sat Nov 26 15:37:46 2016 -0500 Jack Humbert +* 01038ab54ca6c2858ea9e856c717a1129ffe4156 Fri Dec 23 21:51:11 2016 +0200 Ofer Plesser + +## quantum/quantum.h + +* 1a8c0dd22d6a2255511d0db6a456315541b5815b Sun May 15 00:27:32 2016 -0400 Erez Zukerman +* fde477a927edc6b4207a6968d44aeed021e8b300 Sun May 15 00:51:06 2016 -0400 Jack Humbert +* 0428214b905e5f8b3bed721885957ce249ba4991 Wed May 18 23:14:00 2016 -0400 Jack Humbert +* b732b79b49b098dba8e14493c745075f336747d8 Wed May 18 23:47:16 2016 -0400 Jack Humbert +* 287eb7ad148abc8fe3fb014218d71e205fd9131d Tue May 24 11:56:53 2016 -0400 Jack Humbert +* de57799530d3184722532f93d156364067d8fcd5 Sat May 28 11:56:06 2016 -0400 Jack Humbert +* 17977a7e24ddab6ca101341b33c8fe7ad13e68f5 Sat May 28 15:22:30 2016 -0400 Jack Humbert +* 1c9f33c06a6ef18c9c21e5841180af5ae554c34b Wed Jun 1 22:49:55 2016 -0400 Jack Humbert +* 794aed37a0da5a277a07e7fa86263e0852fa9f6d Fri Jun 3 12:48:40 2016 -0700 Eric Tang +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert +* 98f0807359cfa78d25442b91ff4c5bbfc5679661 Tue Jun 21 22:55:54 2016 -0400 Jack Humbert +* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 Jack Humbert +* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 Jack Humbert +* 197f152dee834a737cd820f2a95d1ade98be4898 Wed Jun 29 18:29:20 2016 -0400 Jack Humbert +* 8125cdb88ce1201fcfd16ed4c5313222ef4c230c Wed Jun 29 18:36:52 2016 -0400 Jack Humbert +* 4d4f7684e684bec319f166121463a88cd4a62703 Fri Jul 1 17:04:53 2016 +0300 fredizzimo +* a28a6e5b79c819e5f9323f62686498eca3ef399f Wed Jul 13 16:38:02 2016 +0200 Pavlos Vinieratos +* e01b4c3fd9a7b66276ffd22dcac25d569d7bb7ff Sat Jul 9 00:41:15 2016 +0300 Fred Sundvik +* 0d28787c5cf2173d12f57b397515f91cffaa820a Thu Aug 18 11:29:53 2016 +0200 Gergely Nagy +* 5f91fb413624781ac79db641549b9e08753c04b5 Sun Oct 16 16:03:33 2016 -0400 Jack Humbert +* 664c0a036b3d7c3ed39f4a7a78d97f4a9cc7d20c Mon Nov 21 19:50:55 2016 -0500 Jack Humbert +* cefa8468fb5f28bd67a0c02d371a4aef0964e20c Wed Nov 23 20:16:38 2016 -0500 Jack Humbert +* 7edac212c8ed8442bf4207e70dc8194631b2bf27 Sat Nov 26 15:37:46 2016 -0500 Jack Humbert + +## quantum/quantum_keycodes.h + +* d8a608f3ff4cb4d73cd57be500fd9881e230099d Thu Dec 29 18:28:48 2016 +1100 Wilba6582 +* 8459bb97c1e8bcb9ccce55a1ed849d373bd7706c Wed Jan 11 21:57:41 2017 -0500 Erez Zukerman +* 3717cf5864d6505e406b5eb75f315e6dc2392912 Thu Jan 12 07:38:07 2017 -0500 Erez Zukerman +* 7288e5ab9c005a7b035d91e68358aa2b6a12420c Fri Jan 13 14:04:51 2017 -0500 Jack Humbert + +## quantum/rgblight.c + +* ba9ac457b2159097ecfd9848c5171c52e3a68260 Sun Jan 24 17:05:47 2016 -0800 Yang Liu +* 2647c7cd84820a833b85e41ea86caf76b36e6ee1 Sun Jan 24 17:19:33 2016 -0800 Yang Liu +* 97f8f378761506914b69d4fd2d5661bfcae28295 Sun Apr 10 21:16:49 2016 -0700 skullY +* 620ac4b260fa663d12b11a0b15ac50379523c125 Thu Apr 21 19:35:18 2016 -0700 Eric Tang +* c37d52d2137acf5739c481cc0c8917ad6fd77161 Tue Apr 26 13:48:36 2016 -0400 Jack Humbert +* e024c11f7a849a38e478cda9fb9939a838cfa2e0 Tue Apr 26 13:50:04 2016 -0400 Jack Humbert +* 80c87054193b9243670aeb85adefbe1aa6c0fda0 Tue Jun 21 12:53:21 2016 -0400 Jack Humbert +* 57e08eb8badc5db2fb44d2df684f32ea48cce411 Thu Jul 7 11:33:32 2016 -0400 Jack Humbert +* 3a860c4bc210857f03ef9fae5043d6d5736d140d Tue Jul 26 14:43:45 2016 -0500 Jordi Orlando +* 899c88cd8bf024792760fcf3ee8be6fed13fb315 Tue Jul 26 14:46:30 2016 -0500 Jordi Orlando +* ea2d2f5d5841791745c93ef27cd1528a7fd69c97 Tue Jul 26 15:31:22 2016 -0500 Jordi Orlando +* b8679bbe045a2285d6ab6bbc420121b26f516b9a Wed Oct 5 20:41:33 2016 -0400 Jack Humbert +* 9b0e21f87f446935f29254bb623c2cfe29472b6e Sun Oct 9 19:26:16 2016 +0300 Fred Sundvik +* 92a3a96849aee708753a6623b0db228023e3baf8 Sun Oct 9 19:47:05 2016 +0300 Fred Sundvik +* ffae9d84c5279b463da112ee15568d536649b819 Sun Oct 9 19:53:41 2016 +0300 Fred Sundvik +* 03b6fcdaf034392e27752a9bd2c11de06a166e39 Mon Oct 10 00:20:24 2016 -0400 Jack Humbert +* 33e62c080c9161a0fc921c90ed299a67fc2e1799 Sat Nov 12 20:54:37 2016 -0500 Jack Humbert +* e9f748751808de2f1e85cf7fb670d78773bd5e76 Sun Nov 13 23:02:38 2016 -0500 Jack Humbert +* 3774a7fcdab5544fc787f4c200be05fcd417e31f Thu Nov 17 17:42:14 2016 -0500 Jack Humbert +* 285c5a91f23e972d9c579184283443111186329d Thu Nov 17 20:56:36 2016 -0500 Erez Zukerman +* 2e23689b8e3222982082c1f5a4f8ce7686f9658b Wed Nov 23 18:52:02 2016 -0500 Jack Humbert +* 4094544d41450617bc21ab58646603b8964eae0e Tue Nov 29 09:23:16 2016 -0500 Erez Zukerman +* cae269b08b642b07ee06dec7120a784a3c3d7aab Fri Dec 23 10:29:19 2016 -0500 Jack Humbert +* 748181dccddb8c9fa52a776f4fcd904ddca9aa31 Wed Dec 28 16:29:02 2016 -0500 Scott Wilson +* b8e74c378b1f118178edf0634d9fa7f0f9dd5e08 Thu Dec 29 09:32:02 2016 -0500 Scott Wilson + +## quantum/rgblight.h + +* ba9ac457b2159097ecfd9848c5171c52e3a68260 Sun Jan 24 17:05:47 2016 -0800 Yang Liu +* 2647c7cd84820a833b85e41ea86caf76b36e6ee1 Sun Jan 24 17:19:33 2016 -0800 Yang Liu +* 620ac4b260fa663d12b11a0b15ac50379523c125 Thu Apr 21 19:35:18 2016 -0700 Eric Tang +* 80c87054193b9243670aeb85adefbe1aa6c0fda0 Tue Jun 21 12:53:21 2016 -0400 Jack Humbert +* 57e08eb8badc5db2fb44d2df684f32ea48cce411 Thu Jul 7 11:33:32 2016 -0400 Jack Humbert +* b8679bbe045a2285d6ab6bbc420121b26f516b9a Wed Oct 5 20:41:33 2016 -0400 Jack Humbert +* 9b0e21f87f446935f29254bb623c2cfe29472b6e Sun Oct 9 19:26:16 2016 +0300 Fred Sundvik +* 33e62c080c9161a0fc921c90ed299a67fc2e1799 Sat Nov 12 20:54:37 2016 -0500 Jack Humbert +* e9f748751808de2f1e85cf7fb670d78773bd5e76 Sun Nov 13 23:02:38 2016 -0500 Jack Humbert +* 3774a7fcdab5544fc787f4c200be05fcd417e31f Thu Nov 17 17:42:14 2016 -0500 Jack Humbert +* 285c5a91f23e972d9c579184283443111186329d Thu Nov 17 20:56:36 2016 -0500 Erez Zukerman +* 2e23689b8e3222982082c1f5a4f8ce7686f9658b Wed Nov 23 18:52:02 2016 -0500 Jack Humbert +* 4094544d41450617bc21ab58646603b8964eae0e Tue Nov 29 09:23:16 2016 -0500 Erez Zukerman +* cae269b08b642b07ee06dec7120a784a3c3d7aab Fri Dec 23 10:29:19 2016 -0500 Jack Humbert +* 748181dccddb8c9fa52a776f4fcd904ddca9aa31 Wed Dec 28 16:29:02 2016 -0500 Scott Wilson + +## quantum/api/api_sysex.c + +* 7edac212c8ed8442bf4207e70dc8194631b2bf27 Sat Nov 26 15:37:46 2016 -0500 Jack Humbert +* dd685eceb2045371d38f24d454f1ab08ca7416f4 Thu Dec 29 12:13:30 2016 +0200 Fred Sundvik + +## quantum/audio/audio.c + +* 73228f5e5d1d4cd31a46e5e93aa893a8f727e3b9 Thu Apr 21 00:37:45 2016 -0400 Jack Humbert +* 620ac4b260fa663d12b11a0b15ac50379523c125 Thu Apr 21 19:35:18 2016 -0700 Eric Tang +* 83e1cc241e3aabd69f6cdcd2581477d4b85bb8d3 Tue May 3 12:56:40 2016 -0500 IBNobody +* 3f02637f4dd765803671c2611191beb096d60b36 Mon May 9 13:17:15 2016 -0400 Jack Humbert +* 15719f3574c6274ee0f3ec87431927c5a523aa3e Sun May 15 00:40:59 2016 -0400 Jack Humbert +* 0428214b905e5f8b3bed721885957ce249ba4991 Wed May 18 23:14:00 2016 -0400 Jack Humbert +* 287eb7ad148abc8fe3fb014218d71e205fd9131d Tue May 24 11:56:53 2016 -0400 Jack Humbert +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert +* 06c64bbff3e228df542149acde64eadaf59b9b0f Mon Dec 19 11:18:18 2016 -0500 Jack Humbert + +## quantum/audio/audio.h + +* 73228f5e5d1d4cd31a46e5e93aa893a8f727e3b9 Thu Apr 21 00:37:45 2016 -0400 Jack Humbert +* 082a0f313d8c842a5de7bae30ec8a3597e35880b Fri Apr 22 00:01:38 2016 -0500 IBNobody +* 83e1cc241e3aabd69f6cdcd2581477d4b85bb8d3 Tue May 3 12:56:40 2016 -0500 IBNobody +* 3f02637f4dd765803671c2611191beb096d60b36 Mon May 9 13:17:15 2016 -0400 Jack Humbert +* 15719f3574c6274ee0f3ec87431927c5a523aa3e Sun May 15 00:40:59 2016 -0400 Jack Humbert +* 0428214b905e5f8b3bed721885957ce249ba4991 Wed May 18 23:14:00 2016 -0400 Jack Humbert +* 287eb7ad148abc8fe3fb014218d71e205fd9131d Tue May 24 11:56:53 2016 -0400 Jack Humbert +* 215c2119af5281072d5a6efb0308408793cadd08 Wed Jun 29 16:21:41 2016 -0400 Jack Humbert + +## quantum/audio/audio_pwm.c + +* 83e1cc241e3aabd69f6cdcd2581477d4b85bb8d3 Tue May 3 12:56:40 2016 -0500 IBNobody +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert + +## quantum/audio/song_list.h + +* 73228f5e5d1d4cd31a46e5e93aa893a8f727e3b9 Thu Apr 21 00:37:45 2016 -0400 Jack Humbert +* 7d0345ef25b5e1924f1e98c76d78607778e0b17d Sat Jul 30 01:52:33 2016 -0700 JeeBak Kim + +## quantum/audio/voices.c + +* 73228f5e5d1d4cd31a46e5e93aa893a8f727e3b9 Thu Apr 21 00:37:45 2016 -0400 Jack Humbert +* e89b806b850ad1b5484176664288b71b0131683e Thu Apr 21 00:40:00 2016 -0400 Jack Humbert +* 9828aba2a12f03fccbc1095bc8e4918ae58fa31b Thu Apr 21 18:14:25 2016 -0400 Jack Humbert +* 7b3f212500210ae85063b043952b5b3ef6988ad6 Thu Apr 21 23:10:47 2016 -0400 Jack Humbert +* 082a0f313d8c842a5de7bae30ec8a3597e35880b Fri Apr 22 00:01:38 2016 -0500 IBNobody +* b1900c8dde2a68e87aaabd84280a99bf6658ea9f Fri Apr 22 01:02:50 2016 -0400 Jack Humbert +* a8086126fecbdce1c192036cf1011329d406949d Fri Apr 22 01:04:13 2016 -0400 Jack Humbert +* a718c53fe77f0b3b4361c850531eee5f23e3e13d Fri Apr 22 11:58:29 2016 -0400 Jack Humbert +* e7b6bb641c0636c01e3781fe51865fdb20014eeb Mon Apr 25 00:59:47 2016 -0400 Jack Humbert +* 140b97a1cd226432a8ec647004943698e3d87f0b Tue Apr 26 01:16:47 2016 -0400 Jack Humbert +* 66e0323881a5a3da65e14daeec41a1e9cfbda431 Fri Apr 29 12:42:55 2016 -0400 Jack Humbert +* 83e1cc241e3aabd69f6cdcd2581477d4b85bb8d3 Tue May 3 12:56:40 2016 -0500 IBNobody +* 0edfe55bfe4afd037918ff73e49552a28f39a5ca Mon Dec 12 15:39:07 2016 -0500 Jack Humbert +* 06c64bbff3e228df542149acde64eadaf59b9b0f Mon Dec 19 11:18:18 2016 -0500 Jack Humbert +* 438a5d685bb7b726ff59109ce4229eca6303cd8e Tue Dec 20 19:38:22 2016 -0500 Jack Humbert +* 2fa36e38cf28f07ad4a4d74722486921fa7b8706 Wed Dec 21 00:22:32 2016 -0500 Jack Humbert + +## quantum/audio/voices.h + +* 73228f5e5d1d4cd31a46e5e93aa893a8f727e3b9 Thu Apr 21 00:37:45 2016 -0400 Jack Humbert +* e89b806b850ad1b5484176664288b71b0131683e Thu Apr 21 00:40:00 2016 -0400 Jack Humbert +* 9828aba2a12f03fccbc1095bc8e4918ae58fa31b Thu Apr 21 18:14:25 2016 -0400 Jack Humbert +* 7b3f212500210ae85063b043952b5b3ef6988ad6 Thu Apr 21 23:10:47 2016 -0400 Jack Humbert +* 082a0f313d8c842a5de7bae30ec8a3597e35880b Fri Apr 22 00:01:38 2016 -0500 IBNobody +* b1900c8dde2a68e87aaabd84280a99bf6658ea9f Fri Apr 22 01:02:50 2016 -0400 Jack Humbert +* a8086126fecbdce1c192036cf1011329d406949d Fri Apr 22 01:04:13 2016 -0400 Jack Humbert +* a718c53fe77f0b3b4361c850531eee5f23e3e13d Fri Apr 22 11:58:29 2016 -0400 Jack Humbert +* e7b6bb641c0636c01e3781fe51865fdb20014eeb Mon Apr 25 00:59:47 2016 -0400 Jack Humbert +* 140b97a1cd226432a8ec647004943698e3d87f0b Tue Apr 26 01:16:47 2016 -0400 Jack Humbert +* 83e1cc241e3aabd69f6cdcd2581477d4b85bb8d3 Tue May 3 12:56:40 2016 -0500 IBNobody +* 0edfe55bfe4afd037918ff73e49552a28f39a5ca Mon Dec 12 15:39:07 2016 -0500 Jack Humbert +* 06c64bbff3e228df542149acde64eadaf59b9b0f Mon Dec 19 11:18:18 2016 -0500 Jack Humbert +* 438a5d685bb7b726ff59109ce4229eca6303cd8e Tue Dec 20 19:38:22 2016 -0500 Jack Humbert + +## quantum/keymap_extras/keymap_bepo.h + +* 7c33f8493fb4ecd664390232c8de856158f9fcae Sun Feb 7 19:29:49 2016 +0100 Didier Loiseau +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert +* 7b4d30ee50aa534a973473c715924964991739f0 Sun Jul 24 10:57:49 2016 +0200 Vivien Alger + +## quantum/keymap_extras/keymap_canadian_multilingual.h + +* a7cef2ca0a2322448d02008337013936b1d550ec Wed Feb 17 21:45:38 2016 +0100 Didier Loiseau +* 7840e69bfaee1d67de273c235b532d6f20c905a9 Thu Feb 18 00:47:23 2016 +0100 Didier Loiseau +* 911222892ecb1c01551e0abdfbe98ed1dbf82139 Fri Feb 26 00:55:39 2016 +0100 Didier Loiseau +* 3a91ddb0745ae0f52007984793ea1b48abb2098c Tue Mar 1 22:59:38 2016 +0100 Didier Loiseau +* aa5eb49edd993e2abe3adf814e030fcdda4a3596 Wed Mar 2 00:22:41 2016 +0100 Didier Loiseau +* 1aeb59335f2fe67613df25308a630ca453975ac0 Sun Sep 11 02:19:55 2016 +0200 Didier Loiseau + +## quantum/keymap_extras/keymap_colemak.h + +* 46e7fb2d3ccd699c0a1b1fd9d02860b1f2a44141 Mon Oct 26 14:49:46 2015 -0400 Jack Humbert +* 39915b1748cefd99f841fa03b7f6e7c20439fbcf Thu Oct 29 15:12:51 2015 -0400 Jack Humbert +* 3c683aa9f23288ddada760fb49abcc5fa7324f5e Fri Feb 5 16:28:24 2016 +0200 Erez Zukerman +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert + +## quantum/keymap_extras/keymap_dvorak.h + +* 46e7fb2d3ccd699c0a1b1fd9d02860b1f2a44141 Mon Oct 26 14:49:46 2015 -0400 Jack Humbert +* 233af3a41c69d456583bfcfd897233b9c117caa6 Mon Feb 22 13:06:26 2016 -0500 Keller-Laminar +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert +* 4278d8861526ed285d9d00badcdc8c121454be60 Thu Jul 14 11:32:43 2016 -0500 Jonathan A. Kollasch +* f0021c9cb9e30d47d5a3ab5ec75e59e626c3d244 Mon Sep 19 14:25:44 2016 -0500 Jonathan A. Kollasch + +## quantum/keymap_extras/keymap_dvp.h + +* 6e003b1e3fa844cfde0069004e755aae7a9539f3 Wed Oct 19 23:45:55 2016 +0300 Artyom Mironov + +## quantum/keymap_extras/keymap_fr_ch.h + +* 1934e8a270820ff6f08c95f4399b26162623e4e0 Sat Feb 20 14:01:28 2016 +0100 Vincent Pochet +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert +* 25938a09a6bfb2624bc96841b53897eda532e293 Thu Jul 14 11:13:35 2016 -0500 Jonathan A. Kollasch + +## quantum/keymap_extras/keymap_french.h + +* 46e7fb2d3ccd699c0a1b1fd9d02860b1f2a44141 Mon Oct 26 14:49:46 2015 -0400 Jack Humbert +* 4a19cc054dc7aeb0a35613d608143bf51fa791cc Sat Feb 27 15:22:54 2016 +0100 Kévin Letord +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert +* 010dd1308420e25b327fa4d5d6b13f67a849408b Thu Jul 14 11:04:25 2016 -0500 Jonathan A. Kollasch +* 25938a09a6bfb2624bc96841b53897eda532e293 Thu Jul 14 11:13:35 2016 -0500 Jonathan A. Kollasch + +## quantum/keymap_extras/keymap_french_osx.h + +* 48eff6dd89672c6c71afd8a3d1cdc5d35b0bf768 Tue Jan 5 10:49:36 2016 +0100 Sébastien Pérochon +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert + +## quantum/keymap_extras/keymap_german.h + +* 3dbcad51d1217b32c3c17917c2646fa7a9a9165b Sat Dec 19 01:22:12 2015 +0100 Matthias Schmitt +* da09312dd56e3b085fb217cc7cc2abf06f401992 Tue Jan 19 20:04:08 2016 +0100 plgruener +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert +* 25938a09a6bfb2624bc96841b53897eda532e293 Thu Jul 14 11:13:35 2016 -0500 Jonathan A. Kollasch + +## quantum/keymap_extras/keymap_german_ch.h + +* 465aabe11dbd673fb4c68ecbffbfb062273def1a Wed May 18 21:22:04 2016 +0200 heartsekai +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert +* 25938a09a6bfb2624bc96841b53897eda532e293 Thu Jul 14 11:13:35 2016 -0500 Jonathan A. Kollasch + +## quantum/keymap_extras/keymap_german_osx.h + +* e44c30f2030dd4c481a6e38e9392f147be7b0ae2 Fri Jan 15 15:55:00 2016 +0100 Stephan Bösebeck +* bfc6eca44aeb3ad22a1c37206005dcfe617431cd Mon Mar 14 13:35:34 2016 +0100 Daniel Kriesten +* dbd4ab3457dd001ab4bbcec14315047b815f7dfe Thu Mar 31 23:15:59 2016 +0200 Stephan Bösebeck +* 6d40f7c5060f608068b0c4fc90871687c70b4f05 Sun Apr 17 22:19:47 2016 +0200 Stephan Bösebeck +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert +* 1a0bac8bccf0e156d2f3c5f14a7214f9677b6370 Tue Jun 21 17:42:29 2016 -0400 Jack Humbert + +## quantum/keymap_extras/keymap_jp.h + +* 2febf9b9f7d610fc2eca666a842272cb90a87919 Tue Nov 22 20:40:12 2016 +0900 h-youhei + +## quantum/keymap_extras/keymap_neo2.h + +* 7b7870bae178c80138be5c587238fdedeb837df9 Sat Dec 19 01:41:23 2015 +0100 Matthias Schmitt +* 4ca43225011ac94bd0a7976baf7f84059274dfbf Fri Feb 19 21:04:30 2016 +0100 plgruener +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert +* e329729d3a11b5798f4e2b9f65ac9bc2dcc84a9e Tue Jun 21 18:32:28 2016 -0400 Jack Humbert + +## quantum/keymap_extras/keymap_nordic.h + +* 46e7fb2d3ccd699c0a1b1fd9d02860b1f2a44141 Mon Oct 26 14:49:46 2015 -0400 Jack Humbert +* c29ad125a7a58d5a2ced0a619165204136da9019 Fri Feb 5 01:50:54 2016 +0100 Fernando Mendonca +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert +* 25938a09a6bfb2624bc96841b53897eda532e293 Thu Jul 14 11:13:35 2016 -0500 Jonathan A. Kollasch +* 283ebbe14298fe75128765fa42c46f02534fb761 Mon Jul 25 12:50:27 2016 +0200 Andreas Lindhé +* 555e41d9e5f8d393637898e2c77c64066b648245 Fri Dec 2 13:03:51 2016 -0500 Erez Zukerman + +## quantum/keymap_extras/keymap_norwegian.h + +* e329729d3a11b5798f4e2b9f65ac9bc2dcc84a9e Tue Jun 21 18:32:28 2016 -0400 Jack Humbert +* b6fa762234fb5a3590d0ff91ffdf5aa3ae322c8f Mon Jul 25 11:29:54 2016 +0200 Andreas Lindhé + +## quantum/keymap_extras/keymap_plover.h + +* 7ccfaf750d08bdb3a25ef2869cac251b7cd4d3ad Sat Apr 23 18:49:10 2016 +0100 James ‘Twey’ Kay +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert + +## quantum/keymap_extras/keymap_russian.h + +* c5ee24a6c3ea39e9725dfc276c92d5bce726ca78 Sun Aug 7 11:01:12 2016 -0500 kuel +* 2a0121a78643b1dc774d82352f8c9e246010803e Sun Aug 7 11:07:38 2016 -0500 kuel + +## quantum/keymap_extras/keymap_spanish.h + +* 46e7fb2d3ccd699c0a1b1fd9d02860b1f2a44141 Mon Oct 26 14:49:46 2015 -0400 Jack Humbert +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert +* 132c04746910f7230b63ed33717c4ed65599ed1b Sat Jul 2 10:26:04 2016 +0200 Rubén Díaz-Jorge +* 25938a09a6bfb2624bc96841b53897eda532e293 Thu Jul 14 11:13:35 2016 -0500 Jonathan A. Kollasch + +## quantum/keymap_extras/keymap_uk.h + +* 46e7fb2d3ccd699c0a1b1fd9d02860b1f2a44141 Mon Oct 26 14:49:46 2015 -0400 Jack Humbert +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert +* 010dd1308420e25b327fa4d5d6b13f67a849408b Thu Jul 14 11:04:25 2016 -0500 Jonathan A. Kollasch +* 25938a09a6bfb2624bc96841b53897eda532e293 Thu Jul 14 11:13:35 2016 -0500 Jonathan A. Kollasch + +## quantum/keymap_extras/keymap_unicode_cyrillic.h + +* c5ee24a6c3ea39e9725dfc276c92d5bce726ca78 Sun Aug 7 11:01:12 2016 -0500 kuel + +## quantum/process_keycode/process_midi.c + +* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 Jack Humbert +* 8b94e26d7c3b30cc57d710a11e5651d15e8e3b20 Sun Jul 24 22:07:43 2016 -0400 Jack Humbert +* 8d99140d1b80bf497b2198138d3f481e93b0fbab Thu Sep 29 14:46:10 2016 -0500 Adam Gausmann + +## quantum/process_keycode/process_music.c + +* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 Jack Humbert +* 3ea738e450e9326b0d3ee4192da881cffb4c13c1 Sun Jul 24 10:00:39 2016 -0400 Robert Dale +* ae95834f5af7404c04e6fe3446019046278d814b Mon Dec 12 16:06:41 2016 -0500 Jack Humbert +* 273faa4d9cd5a84207548f83ba550c9efee90933 Fri Dec 23 20:59:00 2016 -0500 Jack Humbert +* 841d7e6a1d74b1fc45575ed551132ec27353ebf3 Mon Jan 23 13:55:24 2017 -0500 Jack Humbert + +## quantum/process_keycode/process_tap_dance.c + +* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 Jack Humbert +* 1a7e954f9fc4d250ba1ae46e3bfc168aca2b5cce Wed Jul 13 00:20:28 2016 +0200 Pavlos Vinieratos +* f3b56701ed7e6c622dc48e429780124ba5fde172 Wed Jul 13 16:47:45 2016 +0200 Pavlos Vinieratos +* d3091faf363afc8fef73ddf4948f872439b0e827 Fri Jul 15 23:54:08 2016 +0200 Pavlos Vinieratos +* dda2fd6ff3984ed96f8275c661b47a0484f9ee18 Mon Jul 18 23:34:02 2016 +0200 Pavlos Vinieratos +* d5daec2a58019ebdb9804787e0f786e4fc3c05b9 Tue Jul 19 18:00:59 2016 +0200 Pavlos Vinieratos +* 4e6a8627d8ebd7af942f68142d1a959d60361d90 Tue Jul 19 18:02:13 2016 +0200 Pavlos Vinieratos +* 70e42489dec375e558d8e81ed5ebfb69b4f3dbd9 Wed Jul 20 10:22:52 2016 +0200 Gergely Nagy +* ce8cc9219fca5dde077f1142d03d011b38d27479 Wed Jul 20 11:34:45 2016 +0200 Gergely Nagy +* 44e16ffc80620b61eaa17aedcfdd8233d9c99bd9 Wed Jul 20 11:49:59 2016 +0200 Gergely Nagy +* b21e8b97acb722bfa7b85831cfd010716ed77962 Wed Jul 27 08:42:09 2016 +0200 Gergely Nagy +* d78058cc75a9b05a6885991506d5f807ebb2a9f9 Wed Aug 17 10:28:08 2016 +0200 Gergely Nagy +* 29f64d7a93d941167c6c6e95f893ab84586b2205 Wed Aug 17 13:04:50 2016 +0200 Gergely Nagy +* 0d28787c5cf2173d12f57b397515f91cffaa820a Thu Aug 18 11:29:53 2016 +0200 Gergely Nagy +* acda2b793f69c6e0e9b9667e9ebe8a0325eb5ecd Thu Sep 1 08:32:47 2016 +0200 Gergely Nagy +* e1f131db8e59c6ed3471906d3a62457d593f51af Wed Sep 21 10:11:42 2016 +0200 Pavlos Vinieratos + +## quantum/process_keycode/process_tap_dance.h + +* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 Jack Humbert +* f3b56701ed7e6c622dc48e429780124ba5fde172 Wed Jul 13 16:47:45 2016 +0200 Pavlos Vinieratos +* d3091faf363afc8fef73ddf4948f872439b0e827 Fri Jul 15 23:54:08 2016 +0200 Pavlos Vinieratos +* 70e42489dec375e558d8e81ed5ebfb69b4f3dbd9 Wed Jul 20 10:22:52 2016 +0200 Gergely Nagy +* ce8cc9219fca5dde077f1142d03d011b38d27479 Wed Jul 20 11:34:45 2016 +0200 Gergely Nagy +* b21e8b97acb722bfa7b85831cfd010716ed77962 Wed Jul 27 08:42:09 2016 +0200 Gergely Nagy +* 29f64d7a93d941167c6c6e95f893ab84586b2205 Wed Aug 17 13:04:50 2016 +0200 Gergely Nagy +* 0edc82f0300924394324e2f3c4d2f8f0008439db Wed Sep 21 11:29:34 2016 +0200 Pavlos Vinieratos +* cda4b534fa4921c2d8f9884aa6a144333e7b07c4 Wed Sep 21 11:29:43 2016 +0200 Pavlos Vinieratos + +## quantum/process_keycode/process_unicode.c + +* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 Jack Humbert +* 8bdf745909bc2581491acce11225f56a85bc8f24 Sat Aug 13 10:33:47 2016 +0200 Gergely Nagy +* 63e5782d2cdf0ee282ad434c773463d9da9db6b3 Sat Aug 13 10:43:22 2016 +0200 Gergely Nagy +* fa06a163607e8c6c4bd0968c2de96a9a298b777c Sat Aug 13 10:46:38 2016 +0200 Gergely Nagy +* 0b6861827faea747345ea38202d64c8004ab128c Sat Aug 13 11:11:22 2016 +0200 Gergely Nagy +* 857aa5bef6a74f8785a7039feea5286c07bf7067 Sat Aug 13 11:14:42 2016 +0200 Gergely Nagy +* 234dd276cf03be6fd6961473e9d9c8f35deec682 Sun Aug 14 10:37:51 2016 +0200 Gergely Nagy +* a312cbf712764277e0dbbbb99410c2f6fc6c7484 Sun Aug 14 14:34:52 2016 +0200 Gergely Nagy +* 43d08629cf275d0b32281ffe8785258fff226b49 Mon Aug 15 10:02:05 2016 +0200 Gergely Nagy +* e8845f0daf8dc7a7674dc5420cc5a684bbbea09b Mon Aug 15 10:07:13 2016 +0200 Gergely Nagy +* dffdeb50b79d3c623e2ed9fd1c1d82d6d0ae7bf0 Sun Aug 21 20:25:19 2016 +0200 coderkun +* 81594c7883deefedbcd317c72c1b1f1d32e65cd7 Sun Aug 21 21:02:18 2016 +0200 coderkun +* a058ae40e268b34ba5db45f5fd5d557d50fa5437 Wed Aug 24 15:39:23 2016 +0200 Gergely Nagy +* c9ea236fc35d350c0ff33de0af84d3dee7d0eb95 Wed Aug 31 08:21:52 2016 +0200 Gergely Nagy +* a3f5a4cf5839fe29dd37400d72c5e353812002f8 Sun Oct 2 10:35:09 2016 +0200 coderkun +* 5b2e455d3b71bfb90754930d1f22d3e8ce98b927 Mon Oct 10 00:46:20 2016 +0700 Priyadi Iman Nurcahyo +* e7d5dc89f2890007d776f6b613dc9deb473cff22 Sun Oct 23 05:36:26 2016 +0700 Priyadi Iman Nurcahyo +* 4a666c201007eacf13a9031e3c9b156e2e04afe6 Sun Oct 23 19:15:33 2016 +0700 Priyadi Iman Nurcahyo +* 8d60354d5a116b6cb1fc32eac7461eb125543c7d Wed Oct 26 00:48:44 2016 -0400 Jack Humbert +* 30b80a23f3cafd846937b37b249f2df4411e1f5a Mon Jan 9 02:59:10 2017 +0700 Priyadi Iman Nurcahyo + +## quantum/process_keycode/process_unicode.h + +* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 Jack Humbert +* 63e5782d2cdf0ee282ad434c773463d9da9db6b3 Sat Aug 13 10:43:22 2016 +0200 Gergely Nagy +* fa06a163607e8c6c4bd0968c2de96a9a298b777c Sat Aug 13 10:46:38 2016 +0200 Gergely Nagy +* 857aa5bef6a74f8785a7039feea5286c07bf7067 Sat Aug 13 11:14:42 2016 +0200 Gergely Nagy +* 234dd276cf03be6fd6961473e9d9c8f35deec682 Sun Aug 14 10:37:51 2016 +0200 Gergely Nagy +* a312cbf712764277e0dbbbb99410c2f6fc6c7484 Sun Aug 14 14:34:52 2016 +0200 Gergely Nagy +* 43d08629cf275d0b32281ffe8785258fff226b49 Mon Aug 15 10:02:05 2016 +0200 Gergely Nagy +* e8845f0daf8dc7a7674dc5420cc5a684bbbea09b Mon Aug 15 10:07:13 2016 +0200 Gergely Nagy +* a058ae40e268b34ba5db45f5fd5d557d50fa5437 Wed Aug 24 15:39:23 2016 +0200 Gergely Nagy +* c9ea236fc35d350c0ff33de0af84d3dee7d0eb95 Wed Aug 31 08:21:52 2016 +0200 Gergely Nagy +* 5b2e455d3b71bfb90754930d1f22d3e8ce98b927 Mon Oct 10 00:46:20 2016 +0700 Priyadi Iman Nurcahyo +* 4a666c201007eacf13a9031e3c9b156e2e04afe6 Sun Oct 23 19:15:33 2016 +0700 Priyadi Iman Nurcahyo +* 6fee7e178f7c949213a124d78de60bc30267d367 Sat Nov 26 23:53:15 2016 +0700 Priyadi Iman Nurcahyo + +## quantum/template/config.h + +* 6f3141965e88c4ee0ebf7c18a243e4c2d9c5021b Tue Oct 27 14:33:18 2015 -0400 Jack Humbert +* 24f2698fba0055128eb90fbde793e3c84900df69 Sat Jan 23 20:45:52 2016 -0500 Jack Humbert +* 577971ab07a49405e1dcd8e5f75b3ecb87e710b9 Mon Mar 28 00:03:21 2016 -0500 IBNobody +* 1d13aa933bbb57bf0c1fe0196981b81233c3df97 Mon Mar 28 19:45:20 2016 -0500 IBNobody +* aaa758f1d3f97dda39879f2b055ad2da9680adfe Mon May 23 20:42:21 2016 -0700 Eric Tang +* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 Jack Humbert + +## quantum/template/template.c + +* 6f3141965e88c4ee0ebf7c18a243e4c2d9c5021b Tue Oct 27 14:33:18 2015 -0400 Jack Humbert +* 641859df84bf40025b2c14319d1a168a435562e2 Thu Mar 10 11:28:34 2016 -0500 yoyoerx +* eba9a7d74db0be548cddc107f0370dabf43b017f Tue Mar 15 23:52:51 2016 -0500 IBNobody +* ec62d9e85cab5cf166241b0536120d005fa7c898 Tue Mar 22 20:39:05 2016 -0500 IBNobody +* 3d56ec052ed485d4b717da930c4024b4a3f792e0 Tue Mar 22 21:06:22 2016 -0500 IBNobody +* 2181be029e01d9cf46ae3cadcdf25f5bca02c631 Mon Mar 28 16:13:37 2016 +0200 Damien Pollet +* 0656f2fa10e25e160617c3e5d14cfbae35dd9c8d Fri Apr 29 22:19:40 2016 -0400 Jack Humbert +* 1a8c0dd22d6a2255511d0db6a456315541b5815b Sun May 15 00:27:32 2016 -0400 Erez Zukerman +* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 Jack Humbert +* 589df84d6cd19ad7d776cc19bcddade1cd178ddc Thu Jul 7 09:58:44 2016 -0400 Jack Humbert +* c1dfb636ef61159456bdb24f4fee3f27e5babbeb Thu Jul 7 12:22:10 2016 -0400 Jack Humbert + +## quantum/template/template.h + +* 6f3141965e88c4ee0ebf7c18a243e4c2d9c5021b Tue Oct 27 14:33:18 2015 -0400 Jack Humbert +* 24f2698fba0055128eb90fbde793e3c84900df69 Sat Jan 23 20:45:52 2016 -0500 Jack Humbert +* ee1b94045e5bebda517119cb1853b0ab3fd0f499 Fri Mar 4 10:53:58 2016 -0500 Noah Andrews +* 641859df84bf40025b2c14319d1a168a435562e2 Thu Mar 10 11:28:34 2016 -0500 yoyoerx +* eba9a7d74db0be548cddc107f0370dabf43b017f Tue Mar 15 23:52:51 2016 -0500 IBNobody +* ec62d9e85cab5cf166241b0536120d005fa7c898 Tue Mar 22 20:39:05 2016 -0500 IBNobody +* 2181be029e01d9cf46ae3cadcdf25f5bca02c631 Mon Mar 28 16:13:37 2016 +0200 Damien Pollet +* 0656f2fa10e25e160617c3e5d14cfbae35dd9c8d Fri Apr 29 22:19:40 2016 -0400 Jack Humbert +* 1a8c0dd22d6a2255511d0db6a456315541b5815b Sun May 15 00:27:32 2016 -0400 Erez Zukerman +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert +* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 Jack Humbert + +# All Single Author Files These files have only a single author and so clarifying licensing should be pretty straightforward. @@ -69,7 +653,7 @@ These files have only a single author and so clarifying licensing should be pret * quantum/visualizer/example_integration/lcd_backlight_hal.c: Fred Sundvik * quantum/visualizer/example_integration/visualizer_user.c: Fred Sundvik -# Files +# All Files ## quantum/analog.c From d524b3f5e523b05c4b0202032739a56c7f55f403 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Fri, 27 Jan 2017 14:26:21 -0800 Subject: [PATCH 260/517] Updated License Clarification (markdown) --- License-Clarification.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/License-Clarification.md b/License-Clarification.md index 48b7400f70..076e7b76e2 100644 --- a/License-Clarification.md +++ b/License-Clarification.md @@ -6,9 +6,10 @@ As raised in #1038 and other issues, the licensing status of QMK is not clear. I These are the single author files that still need to have their license clarified. -* quantum/pincontrol.h: Wez Furlong -* quantum/keymap_extras/keymap_jp.h: h-youhei -* quantum/keymap_extras/keymap_unicode_cyrillic.h: kuel +* quantum/dynamic_macro.h: @Vifon +* quantum/pincontrol.h: @wez +* quantum/keymap_extras/keymap_jp.h: @h-youhei +* quantum/keymap_extras/keymap_unicode_cyrillic.h: @kuel # Multi Author Files From 0eebccb2832589b148651c47da252e15a42a9c35 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Fri, 27 Jan 2017 14:51:58 -0800 Subject: [PATCH 261/517] Updated License Clarification (markdown) --- License-Clarification.md | 401 +++++++++------------------------------ 1 file changed, 92 insertions(+), 309 deletions(-) diff --git a/License-Clarification.md b/License-Clarification.md index 076e7b76e2..336769b0a9 100644 --- a/License-Clarification.md +++ b/License-Clarification.md @@ -8,391 +8,174 @@ These are the single author files that still need to have their license clarifie * quantum/dynamic_macro.h: @Vifon * quantum/pincontrol.h: @wez +* quantum/keymap_extras/keymap_canadian_multilingual.h: @DidierLoiseau * quantum/keymap_extras/keymap_jp.h: @h-youhei * quantum/keymap_extras/keymap_unicode_cyrillic.h: @kuel # Multi Author Files -## quantum/config_common.h - -* 35a81f5b8b081e1607a7c04489b01f551c3213cc Mon Oct 26 16:32:37 2015 -0400 Jack Humbert -* aaa758f1d3f97dda39879f2b055ad2da9680adfe Mon May 23 20:42:21 2016 -0700 Eric Tang -* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 Jack Humbert -* 705c775a4a433249081321cea0c2def2627817dc Sun Aug 21 22:05:55 2016 -0500 IBNobody -* 936a26d04ffa12801031c058f27e221174e3fabd Thu Aug 25 00:15:41 2016 -0500 IBNobody -* 6390033e8688550826a4bd3004a2e76568600657 Mon Nov 21 20:14:16 2016 -0500 Jack Humbert -* 03d6e165bb0baf9d0093250d3c3c0771290df4d6 Fri Nov 25 09:17:40 2016 +0200 ofples -* 0c9d66eb59add717397ba83d508577073412ce86 Fri Nov 25 09:20:41 2016 +0200 ofples -* de1df639535817e17f1c01f07e7a629cec478526 Sat Nov 26 13:55:41 2016 +0700 Priyadi Iman Nurcahyo -* 17acde94ee2695ab69ea336742c904d649dce17c Sat Nov 26 14:02:38 2016 +0700 Priyadi Iman Nurcahyo -* d9d67e7b7686fdcbc7269a76d2a54c42325bdd03 Sat Nov 26 15:26:02 2016 +0700 Priyadi Iman Nurcahyo -* f2214ce1cb6cfe7a0efabe870a2c00fb8451ee80 Sat Nov 26 15:57:48 2016 +0700 Priyadi Iman Nurcahyo -* 6e0f994950435aa5867e7b7ce780186d881d74ac Mon Nov 28 23:51:07 2016 -0500 Jack Humbert -* dd685eceb2045371d38f24d454f1ab08ca7416f4 Thu Dec 29 12:13:30 2016 +0200 Fred Sundvik +Each file listed below has more than one author and needs to have copyright resolved. The number of lines contributed by each author is shown. -## quantum/dynamic_macro.h +## quantum/config_common.h -* 39e8e61258b51a2c33a94dd877e983f0b1dae0c1 Thu Aug 18 01:37:13 2016 +0200 Wojciech Siewierski -* 70f32842e5d94f14d05c1f9adcb1b1144a25a132 Sun Oct 9 12:52:39 2016 +0200 Wojciech Siewierski +* 24 Eric Tang +* 2 Fred Sundvik +* 58 Jack Humbert +* 1 ofples ## quantum/keycode_config.h -* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert -* 4d4f7684e684bec319f166121463a88cd4a62703 Fri Jul 1 17:04:53 2016 +0300 fredizzimo -* 558f3ec1eb325caf706efc15e2fab26121aba442 Tue Sep 6 23:19:01 2016 -0500 IBNobody +* 5 IBNobody +* 20 Jack Humbert +* 1 fredizzimo ## quantum/keymap.h -* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert -* 76076db72545bbb649f11394a12721f61579527f Mon Jun 20 22:36:36 2016 -0400 Jack & Erez -* 1a0bac8bccf0e156d2f3c5f14a7214f9677b6370 Tue Jun 21 17:42:29 2016 -0400 Jack Humbert -* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 Jack Humbert -* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 Jack Humbert -* 4d4f7684e684bec319f166121463a88cd4a62703 Fri Jul 1 17:04:53 2016 +0300 fredizzimo -* 50c686587ed49d8079ba1b11d45ceb6a55d6cd4b Thu Jul 7 23:34:33 2016 -0400 TerryMathews -* e692ebf86a962e90c51302e7b17a953ea2858f79 Fri Aug 12 20:38:26 2016 +0900 shela -* 558f3ec1eb325caf706efc15e2fab26121aba442 Tue Sep 6 23:19:01 2016 -0500 IBNobody -* 1048a588c750e27ff0f900cd6aaf670e034086d0 Fri Oct 7 17:15:11 2016 +0200 npoirey -* 5b2e455d3b71bfb90754930d1f22d3e8ce98b927 Mon Oct 10 00:46:20 2016 +0700 Priyadi Iman Nurcahyo -* e27a754b70434de88a37c4a572e4ca5f7730ff58 Wed Oct 12 22:18:27 2016 -0400 Jack & Erez -* 52d7f7d2770a35adf0b0b0c803e05ae8719f539f Sun Oct 16 15:49:45 2016 -0400 Jack Humbert -* 5f91fb413624781ac79db641549b9e08753c04b5 Sun Oct 16 16:03:33 2016 -0400 Jack Humbert -* 33e62c080c9161a0fc921c90ed299a67fc2e1799 Sat Nov 12 20:54:37 2016 -0500 Jack Humbert -* 01038ab54ca6c2858ea9e856c717a1129ffe4156 Fri Dec 23 21:51:11 2016 +0200 Ofer Plesser -* d8a608f3ff4cb4d73cd57be500fd9881e230099d Thu Dec 29 18:28:48 2016 +1100 Wilba6582 +* 39 Jack Humbert +* 6 Wilba6582 +* 8 fredizzimo ## quantum/keymap_common.c -* 46e7fb2d3ccd699c0a1b1fd9d02860b1f2a44141 Mon Oct 26 14:49:46 2015 -0400 Jack Humbert -* 35a81f5b8b081e1607a7c04489b01f551c3213cc Mon Oct 26 16:32:37 2015 -0400 Jack Humbert -* cc1c32671eb1eb43a87e55ac4ffa60b15115e48d Mon Oct 26 20:02:25 2015 -0400 Jack Humbert -* d9f08e6177271594fa573993d9f4dbc2d98c7416 Tue Oct 27 22:00:52 2015 -0400 Jack Humbert -* 18da1e6801335b0d9515ab72e9236a01d629915f Tue Oct 27 23:06:18 2015 -0400 Jack Humbert -* d3db8d62f6fc6a7dee43978ddc8356579b502b37 Wed Oct 28 04:07:15 2015 +0200 Erez Zukerman -* 7d6716beded4a60cd9de24e95d8ec60694692b6f Fri Jan 29 23:27:36 2016 -0500 Jack Humbert -* 65b41e2e59e274354e57ed36cad097823f111f1a Sun Feb 7 11:48:28 2016 +0100 Wojciech Siewierski -* 47dcec29456106828b83fe5b85fa7a7427ddc710 Sun Jan 3 17:49:28 2016 -0500 Chris Gerber -* 1d13aa933bbb57bf0c1fe0196981b81233c3df97 Mon Mar 28 19:45:20 2016 -0500 IBNobody -* 3755ef5ddbdad9f25a53fee951c3eb78035b52c3 Wed Apr 13 20:57:51 2016 -0500 IBNobody -* ee2ee7f4f049dda385a9db7dddd8e7e91681315b Fri Apr 15 13:44:07 2016 -0400 Jack Humbert -* 9cfc74c35b940884618b0fe1e6fd25c570e1c974 Thu Apr 7 15:21:06 2016 +0300 Erez Zukerman -* ab19ebd08a8b955775e6fa94cdf6b8d128d8b43c Sat Apr 16 18:51:58 2016 -0400 Jack Humbert -* c83aa16f1d614c1c10f7597a67ffb9f2ae871951 Sat Apr 16 20:26:02 2016 -0400 Jack Humbert -* 41cc35425ab32c9a9492006da8b667d01d32dfa6 Sat Apr 16 21:31:40 2016 -0400 Jack Humbert -* 8bbd064cf52a76508589579f19595607a1f3af21 Sat Apr 16 23:07:50 2016 -0400 Jack Humbert -* 45f10b4c4b308226fa1568277654a13853a03ab4 Sat Apr 16 22:10:18 2016 -0500 IBNobody -* e7b9959819e709d7df2e96a94bdaf36e4e9e23e3 Sat Apr 16 23:15:40 2016 -0400 Jack Humbert -* a67d425f4d5278595e7ab785a0f246b83fb1a09f Sun Apr 17 01:00:39 2016 -0400 Jack Humbert -* d5b72e7bde5ede25f7d5699b50b7d9eb6f31ba92 Sun Apr 17 12:54:32 2016 -0500 IBNobody -* 3103ea542f0039637a1a266df79a97a7a13fa6b4 Sun Apr 17 12:55:19 2016 -0500 IBNobody -* 23231fa577f7c6c585124226a83f21a7668e62dd Sun Apr 17 14:16:03 2016 -0500 IBNobody -* 5c98ad59606ee95b82c27bf2525383a9ec88542b Sun Apr 17 20:14:37 2016 -0500 IBNobody -* e49712b5593b887c8af18aeb7196513f1c7b7bcf Mon Apr 18 21:01:48 2016 -0400 Jack Humbert -* 620ac4b260fa663d12b11a0b15ac50379523c125 Thu Apr 21 19:35:18 2016 -0700 Eric Tang -* 83e1cc241e3aabd69f6cdcd2581477d4b85bb8d3 Tue May 3 12:56:40 2016 -0500 IBNobody -* 41b3e399b1d43db9574c6016951d92974b3d93e7 Thu May 5 21:50:51 2016 -0400 Jack Humbert -* 1a8c0dd22d6a2255511d0db6a456315541b5815b Sun May 15 00:27:32 2016 -0400 Erez Zukerman -* fde477a927edc6b4207a6968d44aeed021e8b300 Sun May 15 00:51:06 2016 -0400 Jack Humbert -* b732b79b49b098dba8e14493c745075f336747d8 Wed May 18 23:47:16 2016 -0400 Jack Humbert -* 287eb7ad148abc8fe3fb014218d71e205fd9131d Tue May 24 11:56:53 2016 -0400 Jack Humbert -* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert -* 4d4f7684e684bec319f166121463a88cd4a62703 Fri Jul 1 17:04:53 2016 +0300 fredizzimo -* 9870082a06386eba8c0c5f22da90d0256ef6244b Thu Jul 7 19:48:39 2016 +0300 Fred Sundvik -* 8b94e26d7c3b30cc57d710a11e5651d15e8e3b20 Sun Jul 24 22:07:43 2016 -0400 Jack Humbert -* d8a608f3ff4cb4d73cd57be500fd9881e230099d Thu Dec 29 18:28:48 2016 +1100 Wilba6582 +* 1 Fred Sundvik +* 162 Jack Humbert +* 11 Wilba6582 +* 3 fredizzimo ## quantum/light_ws2812.c -* ba9ac457b2159097ecfd9848c5171c52e3a68260 Sun Jan 24 17:05:47 2016 -0800 Yang Liu -* 57e08eb8badc5db2fb44d2df684f32ea48cce411 Thu Jul 7 11:33:32 2016 -0400 Jack Humbert -* 5f91fb413624781ac79db641549b9e08753c04b5 Sun Oct 16 16:03:33 2016 -0400 Jack Humbert -* 33e62c080c9161a0fc921c90ed299a67fc2e1799 Sat Nov 12 20:54:37 2016 -0500 Jack Humbert -* e9f748751808de2f1e85cf7fb670d78773bd5e76 Sun Nov 13 23:02:38 2016 -0500 Jack Humbert -* 530dd3377e4d409a7ca2fee7e47b60b735ebc0fa Tue Nov 15 13:18:10 2016 -0500 Jack Humbert -* 3774a7fcdab5544fc787f4c200be05fcd417e31f Thu Nov 17 17:42:14 2016 -0500 Jack Humbert +* 163 Jack Humbert +* 168 Yang Liu ## quantum/light_ws2812.h -* ba9ac457b2159097ecfd9848c5171c52e3a68260 Sun Jan 24 17:05:47 2016 -0800 Yang Liu -* 5f91fb413624781ac79db641549b9e08753c04b5 Sun Oct 16 16:03:33 2016 -0400 Jack Humbert -* e9f748751808de2f1e85cf7fb670d78773bd5e76 Sun Nov 13 23:02:38 2016 -0500 Jack Humbert -* 664c0a036b3d7c3ed39f4a7a78d97f4a9cc7d20c Mon Nov 21 19:50:55 2016 -0500 Jack Humbert -* 06c64bbff3e228df542149acde64eadaf59b9b0f Mon Dec 19 11:18:18 2016 -0500 Jack Humbert +* 11 Jack Humbert +* 70 Yang Liu ## quantum/matrix.c -* 46e7fb2d3ccd699c0a1b1fd9d02860b1f2a44141 Mon Oct 26 14:49:46 2015 -0400 Jack Humbert -* 35a81f5b8b081e1607a7c04489b01f551c3213cc Mon Oct 26 16:32:37 2015 -0400 Jack Humbert -* 641859df84bf40025b2c14319d1a168a435562e2 Thu Mar 10 11:28:34 2016 -0500 yoyoerx -* 684793360cdb08ac1e50a6d27e1796fadd527adb Mon May 9 00:36:23 2016 -0400 Jack Humbert -* 1a8c0dd22d6a2255511d0db6a456315541b5815b Sun May 15 00:27:32 2016 -0400 Erez Zukerman -* aaa758f1d3f97dda39879f2b055ad2da9680adfe Mon May 23 20:42:21 2016 -0700 Eric Tang -* 1ae6011cef2230826a9e6db6c5b638677bc640b7 Tue May 24 08:44:40 2016 -0700 Eric Tang -* de57799530d3184722532f93d156364067d8fcd5 Sat May 28 11:56:06 2016 -0400 Jack Humbert -* 008c8d54a0a1a1e908d372d0fe9edb45a2d491e5 Fri Jun 17 22:09:59 2016 -0400 Jack Humbert -* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 Jack Humbert -* 215c2119af5281072d5a6efb0308408793cadd08 Wed Jun 29 16:21:41 2016 -0400 Jack Humbert -* 4d4f7684e684bec319f166121463a88cd4a62703 Fri Jul 1 17:04:53 2016 +0300 fredizzimo -* 8e88d55bfd7c88cb15845e0c6415e4e892532861 Mon Jul 4 11:45:58 2016 -0400 Jack Humbert -* 3577e26fd9916ceab58779ec6323d43da54eb3b5 Wed Jul 6 00:24:31 2016 -0400 Jack Humbert -* 17170ba76d3c94edcf1ab263520238fdb0384774 Sun Oct 23 23:00:43 2016 -0500 IBNobody -* 508eddf8ba8548d3f71e1c09a404839beb49f45c Fri Oct 28 14:21:38 2016 -0500 IBNobody -* 4c6960835c0a6e29670dabdc27117d7d3c7f99f5 Fri Oct 28 16:24:20 2016 -0500 IBNobody -* 32f88c07173b795c6981c779057dceba00aeb1cb Sat Oct 29 10:39:03 2016 -0500 IBNobody -* f4030289744fc6dc82dd85c955070c0845813cc5 Sat Oct 29 16:12:58 2016 -0500 IBNobody -* a06115df19a74d39b08758472b221e630c3680d3 Fri Nov 18 23:20:07 2016 -0500 Jack Humbert +* 3 Erez Zukerman +* 15 Eric Tang +* 239 IBNobody +* 152 Jack Humbert +* 2 fredizzimo +* 2 yoyoerx ## quantum/quantum.c -* 1a8c0dd22d6a2255511d0db6a456315541b5815b Sun May 15 00:27:32 2016 -0400 Erez Zukerman -* 15719f3574c6274ee0f3ec87431927c5a523aa3e Sun May 15 00:40:59 2016 -0400 Jack Humbert -* bf5c2ccee5497523c214dae7aacdc27fdbb0f235 Sun May 15 00:47:25 2016 -0400 Jack Humbert -* fde477a927edc6b4207a6968d44aeed021e8b300 Sun May 15 00:51:06 2016 -0400 Jack Humbert -* 0428214b905e5f8b3bed721885957ce249ba4991 Wed May 18 23:14:00 2016 -0400 Jack Humbert -* b732b79b49b098dba8e14493c745075f336747d8 Wed May 18 23:47:16 2016 -0400 Jack Humbert -* 0275d444d77c9d85d2189b09d8813fb76dc4d566 Thu May 19 15:36:28 2016 +0300 purpleP -* 287eb7ad148abc8fe3fb014218d71e205fd9131d Tue May 24 11:56:53 2016 -0400 Jack Humbert -* 1237025963484d70bbe5185a790bec6544653ccc Tue May 24 23:27:59 2016 -0400 Erez Zukerman -* 8bc69afc633d3e199e3ac0a5bf39e4d255f2ce4a Tue May 24 23:48:46 2016 -0400 Erez Zukerman -* 17977a7e24ddab6ca101341b33c8fe7ad13e68f5 Sat May 28 15:22:30 2016 -0400 Jack Humbert -* 1c9f33c06a6ef18c9c21e5841180af5ae554c34b Wed Jun 1 22:49:55 2016 -0400 Jack Humbert -* 4635b4453335b61df11008fa907eef221db5912b Wed Jun 1 23:00:55 2016 -0400 Jack Humbert -* 794aed37a0da5a277a07e7fa86263e0852fa9f6d Fri Jun 3 12:48:40 2016 -0700 Eric Tang -* b70248fa2144d297504eedbc80a76dfdc40d9f1f Fri Jun 17 21:42:59 2016 -0400 Jack Humbert -* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert -* 76076db72545bbb649f11394a12721f61579527f Mon Jun 20 22:36:36 2016 -0400 Jack & Erez -* 98f0807359cfa78d25442b91ff4c5bbfc5679661 Tue Jun 21 22:55:54 2016 -0400 Jack Humbert -* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 Jack Humbert -* b68b722325e1f0f68387e161365fa8e31c79b7b2 Thu Jun 23 23:14:21 2016 -0400 Jack Humbert -* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 Jack Humbert -* 197f152dee834a737cd820f2a95d1ade98be4898 Wed Jun 29 18:29:20 2016 -0400 Jack Humbert -* 60fd885a6e540509baa2193932e15caeaeb8f4c5 Wed Jun 29 18:35:29 2016 -0400 Jack Humbert -* 4d4f7684e684bec319f166121463a88cd4a62703 Fri Jul 1 17:04:53 2016 +0300 fredizzimo -* 1412076df68ac00f9a00173977d2826603c12ddf Mon Jul 4 19:56:08 2016 -0700 Smilliam -* 6b0c9cc905c0985f96a80306cf5fe0d6724b28fc Mon Jul 4 19:58:26 2016 -0700 Smilliam -* a4bf46f9b1d0a0be0cecb2cd0f0d941aa7c71bd3 Wed Jul 6 22:48:19 2016 -0400 Jack Humbert -* 50c686587ed49d8079ba1b11d45ceb6a55d6cd4b Thu Jul 7 23:34:33 2016 -0400 TerryMathews -* f7a86822266603b8ffd21e9f89ec1de8d4950791 Fri Jul 8 03:32:28 2016 -0400 TerryMathews -* b12fe6abb25db1feca6a7649097a8d1cb67a063f Sun Jul 10 19:04:01 2016 -0700 Smilliam -* a998a48673372e409991066d7d2d9ba282f79d59 Mon Jul 11 09:14:43 2016 -0400 Jack Humbert -* a28a6e5b79c819e5f9323f62686498eca3ef399f Wed Jul 13 16:38:02 2016 +0200 Pavlos Vinieratos -* 857aa5bef6a74f8785a7039feea5286c07bf7067 Sat Aug 13 11:14:42 2016 +0200 Gergely Nagy -* 644c8c79271db8cf1bd934b9a80a0215585e46e7 Thu Aug 18 01:34:05 2016 +0200 Wojciech Siewierski -* 0d28787c5cf2173d12f57b397515f91cffaa820a Thu Aug 18 11:29:53 2016 +0200 Gergely Nagy -* e571d4656cd283ce8d793fe3dd2ac176b84b0bf5 Tue Sep 6 18:02:43 2016 -0500 IBNobody -* 558f3ec1eb325caf706efc15e2fab26121aba442 Tue Sep 6 23:19:01 2016 -0500 IBNobody -* 5b2e455d3b71bfb90754930d1f22d3e8ce98b927 Mon Oct 10 00:46:20 2016 +0700 Priyadi Iman Nurcahyo -* 5f91fb413624781ac79db641549b9e08753c04b5 Sun Oct 16 16:03:33 2016 -0400 Jack Humbert -* 33e62c080c9161a0fc921c90ed299a67fc2e1799 Sat Nov 12 20:54:37 2016 -0500 Jack Humbert -* e9f748751808de2f1e85cf7fb670d78773bd5e76 Sun Nov 13 23:02:38 2016 -0500 Jack Humbert -* ffa5b1e7ea6697acf9ebfcade1149031642f7870 Sat Nov 19 11:32:09 2016 +0100 Gergely Nagy -* 74a1f00713d1407fb1d2e20d58da93919ab0c221 Sat Nov 19 18:19:18 2016 +0100 Gergely Nagy -* 664c0a036b3d7c3ed39f4a7a78d97f4a9cc7d20c Mon Nov 21 19:50:55 2016 -0500 Jack Humbert -* 450a8fb5b61de8166fe21eb4f57e1c00514afe32 Mon Nov 21 20:17:45 2016 -0500 Jack Humbert -* cefa8468fb5f28bd67a0c02d371a4aef0964e20c Wed Nov 23 20:16:38 2016 -0500 Jack Humbert -* 7edac212c8ed8442bf4207e70dc8194631b2bf27 Sat Nov 26 15:37:46 2016 -0500 Jack Humbert -* 01038ab54ca6c2858ea9e856c717a1129ffe4156 Fri Dec 23 21:51:11 2016 +0200 Ofer Plesser +* 38 Erez Zukerman +* 96 Eric Tang +* 49 Gergely Nagy +* 68 IBNobody +* 4 Jack & Erez +* 561 Jack Humbert +* 2 Ofer Plesser +* 14 Pavlos Vinieratos +* 2 Priyadi Iman Nurcahyo +* 12 Smilliam +* 52 TerryMathews +* 12 Wojciech Siewierski ## quantum/quantum.h -* 1a8c0dd22d6a2255511d0db6a456315541b5815b Sun May 15 00:27:32 2016 -0400 Erez Zukerman -* fde477a927edc6b4207a6968d44aeed021e8b300 Sun May 15 00:51:06 2016 -0400 Jack Humbert -* 0428214b905e5f8b3bed721885957ce249ba4991 Wed May 18 23:14:00 2016 -0400 Jack Humbert -* b732b79b49b098dba8e14493c745075f336747d8 Wed May 18 23:47:16 2016 -0400 Jack Humbert -* 287eb7ad148abc8fe3fb014218d71e205fd9131d Tue May 24 11:56:53 2016 -0400 Jack Humbert -* de57799530d3184722532f93d156364067d8fcd5 Sat May 28 11:56:06 2016 -0400 Jack Humbert -* 17977a7e24ddab6ca101341b33c8fe7ad13e68f5 Sat May 28 15:22:30 2016 -0400 Jack Humbert -* 1c9f33c06a6ef18c9c21e5841180af5ae554c34b Wed Jun 1 22:49:55 2016 -0400 Jack Humbert -* 794aed37a0da5a277a07e7fa86263e0852fa9f6d Fri Jun 3 12:48:40 2016 -0700 Eric Tang -* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert -* 98f0807359cfa78d25442b91ff4c5bbfc5679661 Tue Jun 21 22:55:54 2016 -0400 Jack Humbert -* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 Jack Humbert -* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 Jack Humbert -* 197f152dee834a737cd820f2a95d1ade98be4898 Wed Jun 29 18:29:20 2016 -0400 Jack Humbert -* 8125cdb88ce1201fcfd16ed4c5313222ef4c230c Wed Jun 29 18:36:52 2016 -0400 Jack Humbert -* 4d4f7684e684bec319f166121463a88cd4a62703 Fri Jul 1 17:04:53 2016 +0300 fredizzimo -* a28a6e5b79c819e5f9323f62686498eca3ef399f Wed Jul 13 16:38:02 2016 +0200 Pavlos Vinieratos -* e01b4c3fd9a7b66276ffd22dcac25d569d7bb7ff Sat Jul 9 00:41:15 2016 +0300 Fred Sundvik -* 0d28787c5cf2173d12f57b397515f91cffaa820a Thu Aug 18 11:29:53 2016 +0200 Gergely Nagy -* 5f91fb413624781ac79db641549b9e08753c04b5 Sun Oct 16 16:03:33 2016 -0400 Jack Humbert -* 664c0a036b3d7c3ed39f4a7a78d97f4a9cc7d20c Mon Nov 21 19:50:55 2016 -0500 Jack Humbert -* cefa8468fb5f28bd67a0c02d371a4aef0964e20c Wed Nov 23 20:16:38 2016 -0500 Jack Humbert -* 7edac212c8ed8442bf4207e70dc8194631b2bf27 Sat Nov 26 15:37:46 2016 -0500 Jack Humbert +* 23 Erez Zukerman +* 4 Eric Tang +* 1 Fred Sundvik +* 3 Gergely Nagy +* 86 Jack Humbert +* 2 Pavlos Vinieratos +* 5 fredizzimo ## quantum/quantum_keycodes.h -* d8a608f3ff4cb4d73cd57be500fd9881e230099d Thu Dec 29 18:28:48 2016 +1100 Wilba6582 -* 8459bb97c1e8bcb9ccce55a1ed849d373bd7706c Wed Jan 11 21:57:41 2017 -0500 Erez Zukerman -* 3717cf5864d6505e406b5eb75f315e6dc2392912 Thu Jan 12 07:38:07 2017 -0500 Erez Zukerman -* 7288e5ab9c005a7b035d91e68358aa2b6a12420c Fri Jan 13 14:04:51 2017 -0500 Jack Humbert +* 2 Erez Zukerman +* 2 Jack Humbert +* 313 Wilba6582 ## quantum/rgblight.c -* ba9ac457b2159097ecfd9848c5171c52e3a68260 Sun Jan 24 17:05:47 2016 -0800 Yang Liu -* 2647c7cd84820a833b85e41ea86caf76b36e6ee1 Sun Jan 24 17:19:33 2016 -0800 Yang Liu -* 97f8f378761506914b69d4fd2d5661bfcae28295 Sun Apr 10 21:16:49 2016 -0700 skullY -* 620ac4b260fa663d12b11a0b15ac50379523c125 Thu Apr 21 19:35:18 2016 -0700 Eric Tang -* c37d52d2137acf5739c481cc0c8917ad6fd77161 Tue Apr 26 13:48:36 2016 -0400 Jack Humbert -* e024c11f7a849a38e478cda9fb9939a838cfa2e0 Tue Apr 26 13:50:04 2016 -0400 Jack Humbert -* 80c87054193b9243670aeb85adefbe1aa6c0fda0 Tue Jun 21 12:53:21 2016 -0400 Jack Humbert -* 57e08eb8badc5db2fb44d2df684f32ea48cce411 Thu Jul 7 11:33:32 2016 -0400 Jack Humbert -* 3a860c4bc210857f03ef9fae5043d6d5736d140d Tue Jul 26 14:43:45 2016 -0500 Jordi Orlando -* 899c88cd8bf024792760fcf3ee8be6fed13fb315 Tue Jul 26 14:46:30 2016 -0500 Jordi Orlando -* ea2d2f5d5841791745c93ef27cd1528a7fd69c97 Tue Jul 26 15:31:22 2016 -0500 Jordi Orlando -* b8679bbe045a2285d6ab6bbc420121b26f516b9a Wed Oct 5 20:41:33 2016 -0400 Jack Humbert -* 9b0e21f87f446935f29254bb623c2cfe29472b6e Sun Oct 9 19:26:16 2016 +0300 Fred Sundvik -* 92a3a96849aee708753a6623b0db228023e3baf8 Sun Oct 9 19:47:05 2016 +0300 Fred Sundvik -* ffae9d84c5279b463da112ee15568d536649b819 Sun Oct 9 19:53:41 2016 +0300 Fred Sundvik -* 03b6fcdaf034392e27752a9bd2c11de06a166e39 Mon Oct 10 00:20:24 2016 -0400 Jack Humbert -* 33e62c080c9161a0fc921c90ed299a67fc2e1799 Sat Nov 12 20:54:37 2016 -0500 Jack Humbert -* e9f748751808de2f1e85cf7fb670d78773bd5e76 Sun Nov 13 23:02:38 2016 -0500 Jack Humbert -* 3774a7fcdab5544fc787f4c200be05fcd417e31f Thu Nov 17 17:42:14 2016 -0500 Jack Humbert -* 285c5a91f23e972d9c579184283443111186329d Thu Nov 17 20:56:36 2016 -0500 Erez Zukerman -* 2e23689b8e3222982082c1f5a4f8ce7686f9658b Wed Nov 23 18:52:02 2016 -0500 Jack Humbert -* 4094544d41450617bc21ab58646603b8964eae0e Tue Nov 29 09:23:16 2016 -0500 Erez Zukerman -* cae269b08b642b07ee06dec7120a784a3c3d7aab Fri Dec 23 10:29:19 2016 -0500 Jack Humbert -* 748181dccddb8c9fa52a776f4fcd904ddca9aa31 Wed Dec 28 16:29:02 2016 -0500 Scott Wilson -* b8e74c378b1f118178edf0634d9fa7f0f9dd5e08 Thu Dec 29 09:32:02 2016 -0500 Scott Wilson +* 13 Erez Zukerman +* 5 Eric Tang +* 39 Fred Sundvik +* 101 Jack Humbert +* 311 Jordi Orlando +* 1 Scott Wilson +* 147 Yang Liu +* 2 skullY ## quantum/rgblight.h -* ba9ac457b2159097ecfd9848c5171c52e3a68260 Sun Jan 24 17:05:47 2016 -0800 Yang Liu -* 2647c7cd84820a833b85e41ea86caf76b36e6ee1 Sun Jan 24 17:19:33 2016 -0800 Yang Liu -* 620ac4b260fa663d12b11a0b15ac50379523c125 Thu Apr 21 19:35:18 2016 -0700 Eric Tang -* 80c87054193b9243670aeb85adefbe1aa6c0fda0 Tue Jun 21 12:53:21 2016 -0400 Jack Humbert -* 57e08eb8badc5db2fb44d2df684f32ea48cce411 Thu Jul 7 11:33:32 2016 -0400 Jack Humbert -* b8679bbe045a2285d6ab6bbc420121b26f516b9a Wed Oct 5 20:41:33 2016 -0400 Jack Humbert -* 9b0e21f87f446935f29254bb623c2cfe29472b6e Sun Oct 9 19:26:16 2016 +0300 Fred Sundvik -* 33e62c080c9161a0fc921c90ed299a67fc2e1799 Sat Nov 12 20:54:37 2016 -0500 Jack Humbert -* e9f748751808de2f1e85cf7fb670d78773bd5e76 Sun Nov 13 23:02:38 2016 -0500 Jack Humbert -* 3774a7fcdab5544fc787f4c200be05fcd417e31f Thu Nov 17 17:42:14 2016 -0500 Jack Humbert -* 285c5a91f23e972d9c579184283443111186329d Thu Nov 17 20:56:36 2016 -0500 Erez Zukerman -* 2e23689b8e3222982082c1f5a4f8ce7686f9658b Wed Nov 23 18:52:02 2016 -0500 Jack Humbert -* 4094544d41450617bc21ab58646603b8964eae0e Tue Nov 29 09:23:16 2016 -0500 Erez Zukerman -* cae269b08b642b07ee06dec7120a784a3c3d7aab Fri Dec 23 10:29:19 2016 -0500 Jack Humbert -* 748181dccddb8c9fa52a776f4fcd904ddca9aa31 Wed Dec 28 16:29:02 2016 -0500 Scott Wilson +* 3 Erez Zukerman +* 2 Eric Tang +* 6 Fred Sundvik +* 12 Jack Humbert +* 2 Scott Wilson +* 80 Yang Liu ## quantum/api/api_sysex.c -* 7edac212c8ed8442bf4207e70dc8194631b2bf27 Sat Nov 26 15:37:46 2016 -0500 Jack Humbert -* dd685eceb2045371d38f24d454f1ab08ca7416f4 Thu Dec 29 12:13:30 2016 +0200 Fred Sundvik +* 44 Fred Sundvik +* 13 Jack Humbert ## quantum/audio/audio.c -* 73228f5e5d1d4cd31a46e5e93aa893a8f727e3b9 Thu Apr 21 00:37:45 2016 -0400 Jack Humbert -* 620ac4b260fa663d12b11a0b15ac50379523c125 Thu Apr 21 19:35:18 2016 -0700 Eric Tang -* 83e1cc241e3aabd69f6cdcd2581477d4b85bb8d3 Tue May 3 12:56:40 2016 -0500 IBNobody -* 3f02637f4dd765803671c2611191beb096d60b36 Mon May 9 13:17:15 2016 -0400 Jack Humbert -* 15719f3574c6274ee0f3ec87431927c5a523aa3e Sun May 15 00:40:59 2016 -0400 Jack Humbert -* 0428214b905e5f8b3bed721885957ce249ba4991 Wed May 18 23:14:00 2016 -0400 Jack Humbert -* 287eb7ad148abc8fe3fb014218d71e205fd9131d Tue May 24 11:56:53 2016 -0400 Jack Humbert -* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert -* 06c64bbff3e228df542149acde64eadaf59b9b0f Mon Dec 19 11:18:18 2016 -0500 Jack Humbert +* 318 IBNobody +* 164 Jack Humbert ## quantum/audio/audio.h -* 73228f5e5d1d4cd31a46e5e93aa893a8f727e3b9 Thu Apr 21 00:37:45 2016 -0400 Jack Humbert -* 082a0f313d8c842a5de7bae30ec8a3597e35880b Fri Apr 22 00:01:38 2016 -0500 IBNobody -* 83e1cc241e3aabd69f6cdcd2581477d4b85bb8d3 Tue May 3 12:56:40 2016 -0500 IBNobody -* 3f02637f4dd765803671c2611191beb096d60b36 Mon May 9 13:17:15 2016 -0400 Jack Humbert -* 15719f3574c6274ee0f3ec87431927c5a523aa3e Sun May 15 00:40:59 2016 -0400 Jack Humbert -* 0428214b905e5f8b3bed721885957ce249ba4991 Wed May 18 23:14:00 2016 -0400 Jack Humbert -* 287eb7ad148abc8fe3fb014218d71e205fd9131d Tue May 24 11:56:53 2016 -0400 Jack Humbert -* 215c2119af5281072d5a6efb0308408793cadd08 Wed Jun 29 16:21:41 2016 -0400 Jack Humbert +* 15 IBNobody +* 76 Jack Humbert ## quantum/audio/audio_pwm.c -* 83e1cc241e3aabd69f6cdcd2581477d4b85bb8d3 Tue May 3 12:56:40 2016 -0500 IBNobody -* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert +* 642 IBNobody +* 1 Jack Humbert ## quantum/audio/song_list.h -* 73228f5e5d1d4cd31a46e5e93aa893a8f727e3b9 Thu Apr 21 00:37:45 2016 -0400 Jack Humbert -* 7d0345ef25b5e1924f1e98c76d78607778e0b17d Sat Jul 30 01:52:33 2016 -0700 JeeBak Kim +* 101 IBNobody +* 16 Jack Humbert +* 8 JeeBak Kim ## quantum/audio/voices.c -* 73228f5e5d1d4cd31a46e5e93aa893a8f727e3b9 Thu Apr 21 00:37:45 2016 -0400 Jack Humbert -* e89b806b850ad1b5484176664288b71b0131683e Thu Apr 21 00:40:00 2016 -0400 Jack Humbert -* 9828aba2a12f03fccbc1095bc8e4918ae58fa31b Thu Apr 21 18:14:25 2016 -0400 Jack Humbert -* 7b3f212500210ae85063b043952b5b3ef6988ad6 Thu Apr 21 23:10:47 2016 -0400 Jack Humbert -* 082a0f313d8c842a5de7bae30ec8a3597e35880b Fri Apr 22 00:01:38 2016 -0500 IBNobody -* b1900c8dde2a68e87aaabd84280a99bf6658ea9f Fri Apr 22 01:02:50 2016 -0400 Jack Humbert -* a8086126fecbdce1c192036cf1011329d406949d Fri Apr 22 01:04:13 2016 -0400 Jack Humbert -* a718c53fe77f0b3b4361c850531eee5f23e3e13d Fri Apr 22 11:58:29 2016 -0400 Jack Humbert -* e7b6bb641c0636c01e3781fe51865fdb20014eeb Mon Apr 25 00:59:47 2016 -0400 Jack Humbert -* 140b97a1cd226432a8ec647004943698e3d87f0b Tue Apr 26 01:16:47 2016 -0400 Jack Humbert -* 66e0323881a5a3da65e14daeec41a1e9cfbda431 Fri Apr 29 12:42:55 2016 -0400 Jack Humbert -* 83e1cc241e3aabd69f6cdcd2581477d4b85bb8d3 Tue May 3 12:56:40 2016 -0500 IBNobody -* 0edfe55bfe4afd037918ff73e49552a28f39a5ca Mon Dec 12 15:39:07 2016 -0500 Jack Humbert -* 06c64bbff3e228df542149acde64eadaf59b9b0f Mon Dec 19 11:18:18 2016 -0500 Jack Humbert -* 438a5d685bb7b726ff59109ce4229eca6303cd8e Tue Dec 20 19:38:22 2016 -0500 Jack Humbert -* 2fa36e38cf28f07ad4a4d74722486921fa7b8706 Wed Dec 21 00:22:32 2016 -0500 Jack Humbert +* 24 IBNobody +* 256 Jack Humbert ## quantum/audio/voices.h -* 73228f5e5d1d4cd31a46e5e93aa893a8f727e3b9 Thu Apr 21 00:37:45 2016 -0400 Jack Humbert -* e89b806b850ad1b5484176664288b71b0131683e Thu Apr 21 00:40:00 2016 -0400 Jack Humbert -* 9828aba2a12f03fccbc1095bc8e4918ae58fa31b Thu Apr 21 18:14:25 2016 -0400 Jack Humbert -* 7b3f212500210ae85063b043952b5b3ef6988ad6 Thu Apr 21 23:10:47 2016 -0400 Jack Humbert -* 082a0f313d8c842a5de7bae30ec8a3597e35880b Fri Apr 22 00:01:38 2016 -0500 IBNobody -* b1900c8dde2a68e87aaabd84280a99bf6658ea9f Fri Apr 22 01:02:50 2016 -0400 Jack Humbert -* a8086126fecbdce1c192036cf1011329d406949d Fri Apr 22 01:04:13 2016 -0400 Jack Humbert -* a718c53fe77f0b3b4361c850531eee5f23e3e13d Fri Apr 22 11:58:29 2016 -0400 Jack Humbert -* e7b6bb641c0636c01e3781fe51865fdb20014eeb Mon Apr 25 00:59:47 2016 -0400 Jack Humbert -* 140b97a1cd226432a8ec647004943698e3d87f0b Tue Apr 26 01:16:47 2016 -0400 Jack Humbert -* 83e1cc241e3aabd69f6cdcd2581477d4b85bb8d3 Tue May 3 12:56:40 2016 -0500 IBNobody -* 0edfe55bfe4afd037918ff73e49552a28f39a5ca Mon Dec 12 15:39:07 2016 -0500 Jack Humbert -* 06c64bbff3e228df542149acde64eadaf59b9b0f Mon Dec 19 11:18:18 2016 -0500 Jack Humbert -* 438a5d685bb7b726ff59109ce4229eca6303cd8e Tue Dec 20 19:38:22 2016 -0500 Jack Humbert +* 3 IBNobody +* 32 Jack Humbert ## quantum/keymap_extras/keymap_bepo.h -* 7c33f8493fb4ecd664390232c8de856158f9fcae Sun Feb 7 19:29:49 2016 +0100 Didier Loiseau -* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert -* 7b4d30ee50aa534a973473c715924964991739f0 Sun Jul 24 10:57:49 2016 +0200 Vivien Alger - -## quantum/keymap_extras/keymap_canadian_multilingual.h - -* a7cef2ca0a2322448d02008337013936b1d550ec Wed Feb 17 21:45:38 2016 +0100 Didier Loiseau -* 7840e69bfaee1d67de273c235b532d6f20c905a9 Thu Feb 18 00:47:23 2016 +0100 Didier Loiseau -* 911222892ecb1c01551e0abdfbe98ed1dbf82139 Fri Feb 26 00:55:39 2016 +0100 Didier Loiseau -* 3a91ddb0745ae0f52007984793ea1b48abb2098c Tue Mar 1 22:59:38 2016 +0100 Didier Loiseau -* aa5eb49edd993e2abe3adf814e030fcdda4a3596 Wed Mar 2 00:22:41 2016 +0100 Didier Loiseau -* 1aeb59335f2fe67613df25308a630ca453975ac0 Sun Sep 11 02:19:55 2016 +0200 Didier Loiseau +* 308 Didier Loiseau +* 1 Jack Humbert +* 2 Vivien Alger ## quantum/keymap_extras/keymap_colemak.h -* 46e7fb2d3ccd699c0a1b1fd9d02860b1f2a44141 Mon Oct 26 14:49:46 2015 -0400 Jack Humbert -* 39915b1748cefd99f841fa03b7f6e7c20439fbcf Thu Oct 29 15:12:51 2015 -0400 Jack Humbert -* 3c683aa9f23288ddada760fb49abcc5fa7324f5e Fri Feb 5 16:28:24 2016 +0200 Erez Zukerman -* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert +* 31 Erez Zukerman +* 44 Jack Humbert ## quantum/keymap_extras/keymap_dvorak.h -* 46e7fb2d3ccd699c0a1b1fd9d02860b1f2a44141 Mon Oct 26 14:49:46 2015 -0400 Jack Humbert -* 233af3a41c69d456583bfcfd897233b9c117caa6 Mon Feb 22 13:06:26 2016 -0500 Keller-Laminar -* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert -* 4278d8861526ed285d9d00badcdc8c121454be60 Thu Jul 14 11:32:43 2016 -0500 Jonathan A. Kollasch -* f0021c9cb9e30d47d5a3ab5ec75e59e626c3d244 Mon Sep 19 14:25:44 2016 -0500 Jonathan A. Kollasch - -## quantum/keymap_extras/keymap_dvp.h - -* 6e003b1e3fa844cfde0069004e755aae7a9539f3 Wed Oct 19 23:45:55 2016 +0300 Artyom Mironov +* 69 Jack Humbert +* 15 Jonathan A. Kollasch +* 1 Keller-Laminar ## quantum/keymap_extras/keymap_fr_ch.h -* 1934e8a270820ff6f08c95f4399b26162623e4e0 Sat Feb 20 14:01:28 2016 +0100 Vincent Pochet -* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert -* 25938a09a6bfb2624bc96841b53897eda532e293 Thu Jul 14 11:13:35 2016 -0500 Jonathan A. Kollasch +* 1 Jack Humbert +* 1 Jonathan A. Kollasch +* 96 Vincent Pochet ## quantum/keymap_extras/keymap_french.h -* 46e7fb2d3ccd699c0a1b1fd9d02860b1f2a44141 Mon Oct 26 14:49:46 2015 -0400 Jack Humbert -* 4a19cc054dc7aeb0a35613d608143bf51fa791cc Sat Feb 27 15:22:54 2016 +0100 Kévin Letord -* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert -* 010dd1308420e25b327fa4d5d6b13f67a849408b Thu Jul 14 11:04:25 2016 -0500 Jonathan A. Kollasch -* 25938a09a6bfb2624bc96841b53897eda532e293 Thu Jul 14 11:13:35 2016 -0500 Jonathan A. Kollasch +* 80 Jack Humbert +* 2 Jonathan A. Kollasch +* 1 Kévin Letord ## quantum/keymap_extras/keymap_french_osx.h From 5942b0f103f5424abd35bc397b3f4ee5d127ad68 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Fri, 27 Jan 2017 14:54:42 -0800 Subject: [PATCH 262/517] Updated License Clarification (markdown) --- License-Clarification.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/License-Clarification.md b/License-Clarification.md index 336769b0a9..27d77256ff 100644 --- a/License-Clarification.md +++ b/License-Clarification.md @@ -14,7 +14,9 @@ These are the single author files that still need to have their license clarifie # Multi Author Files -Each file listed below has more than one author and needs to have copyright resolved. The number of lines contributed by each author is shown. +Each file listed below has more than one author and needs to have copyright resolved. The number of lines contributed by each author is shown as determined by: + +```git blame | cut -f 2 -d '(' | cut -f 1 -d '2' | sort | uniq -c | sed 's/^ */* /'``` ## quantum/config_common.h From 6a549823241598ef66dd8c0ca41f31fd40080f27 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Fri, 27 Jan 2017 16:21:25 -0800 Subject: [PATCH 263/517] Updated License Clarification (markdown) --- License-Clarification.md | 200 +++++++++++---------------------------- 1 file changed, 56 insertions(+), 144 deletions(-) diff --git a/License-Clarification.md b/License-Clarification.md index 27d77256ff..fe3f2bc2da 100644 --- a/License-Clarification.md +++ b/License-Clarification.md @@ -11,6 +11,7 @@ These are the single author files that still need to have their license clarifie * quantum/keymap_extras/keymap_canadian_multilingual.h: @DidierLoiseau * quantum/keymap_extras/keymap_jp.h: @h-youhei * quantum/keymap_extras/keymap_unicode_cyrillic.h: @kuel +* quantum/keymap_extras/keymap_russian.h: @kuel # Multi Author Files @@ -181,204 +182,115 @@ Each file listed below has more than one author and needs to have copyright reso ## quantum/keymap_extras/keymap_french_osx.h -* 48eff6dd89672c6c71afd8a3d1cdc5d35b0bf768 Tue Jan 5 10:49:36 2016 +0100 Sébastien Pérochon -* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert +* 1 Jack Humbert +* 76 Sébastien Pérochon ## quantum/keymap_extras/keymap_german.h -* 3dbcad51d1217b32c3c17917c2646fa7a9a9165b Sat Dec 19 01:22:12 2015 +0100 Matthias Schmitt -* da09312dd56e3b085fb217cc7cc2abf06f401992 Tue Jan 19 20:04:08 2016 +0100 plgruener -* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert -* 25938a09a6bfb2624bc96841b53897eda532e293 Thu Jul 14 11:13:35 2016 -0500 Jonathan A. Kollasch +* 1 Jack Humbert +* 1 Jonathan A. Kollasch +* 58 Matthias Schmitt +* 39 plgruener ## quantum/keymap_extras/keymap_german_ch.h -* 465aabe11dbd673fb4c68ecbffbfb062273def1a Wed May 18 21:22:04 2016 +0200 heartsekai -* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert -* 25938a09a6bfb2624bc96841b53897eda532e293 Thu Jul 14 11:13:35 2016 -0500 Jonathan A. Kollasch +* 1 Jack Humbert +* 1 Jonathan A. Kollasch +* 100 heartsekai ## quantum/keymap_extras/keymap_german_osx.h -* e44c30f2030dd4c481a6e38e9392f147be7b0ae2 Fri Jan 15 15:55:00 2016 +0100 Stephan Bösebeck -* bfc6eca44aeb3ad22a1c37206005dcfe617431cd Mon Mar 14 13:35:34 2016 +0100 Daniel Kriesten -* dbd4ab3457dd001ab4bbcec14315047b815f7dfe Thu Mar 31 23:15:59 2016 +0200 Stephan Bösebeck -* 6d40f7c5060f608068b0c4fc90871687c70b4f05 Sun Apr 17 22:19:47 2016 +0200 Stephan Bösebeck -* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert -* 1a0bac8bccf0e156d2f3c5f14a7214f9677b6370 Tue Jun 21 17:42:29 2016 -0400 Jack Humbert - -## quantum/keymap_extras/keymap_jp.h - -* 2febf9b9f7d610fc2eca666a842272cb90a87919 Tue Nov 22 20:40:12 2016 +0900 h-youhei +* 1 Jack Humbert +* 96 Stephan Bösebeck ## quantum/keymap_extras/keymap_neo2.h -* 7b7870bae178c80138be5c587238fdedeb837df9 Sat Dec 19 01:41:23 2015 +0100 Matthias Schmitt -* 4ca43225011ac94bd0a7976baf7f84059274dfbf Fri Feb 19 21:04:30 2016 +0100 plgruener -* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert -* e329729d3a11b5798f4e2b9f65ac9bc2dcc84a9e Tue Jun 21 18:32:28 2016 -0400 Jack Humbert +* 2 Jack Humbert +* 42 Matthias Schmitt +* 19 plgruener ## quantum/keymap_extras/keymap_nordic.h -* 46e7fb2d3ccd699c0a1b1fd9d02860b1f2a44141 Mon Oct 26 14:49:46 2015 -0400 Jack Humbert -* c29ad125a7a58d5a2ced0a619165204136da9019 Fri Feb 5 01:50:54 2016 +0100 Fernando Mendonca -* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert -* 25938a09a6bfb2624bc96841b53897eda532e293 Thu Jul 14 11:13:35 2016 -0500 Jonathan A. Kollasch -* 283ebbe14298fe75128765fa42c46f02534fb761 Mon Jul 25 12:50:27 2016 +0200 Andreas Lindhé -* 555e41d9e5f8d393637898e2c77c64066b648245 Fri Dec 2 13:03:51 2016 -0500 Erez Zukerman +* 1 Andreas Lindhé +* 1 Erez Zukerman +* 3 Fernando Mendonca +* 53 Jack Humbert +* 1 Jonathan A. Kollasch ## quantum/keymap_extras/keymap_norwegian.h -* e329729d3a11b5798f4e2b9f65ac9bc2dcc84a9e Tue Jun 21 18:32:28 2016 -0400 Jack Humbert -* b6fa762234fb5a3590d0ff91ffdf5aa3ae322c8f Mon Jul 25 11:29:54 2016 +0200 Andreas Lindhé +* 1 Andreas Lindhé +* 40 joar ## quantum/keymap_extras/keymap_plover.h -* 7ccfaf750d08bdb3a25ef2869cac251b7cd4d3ad Sat Apr 23 18:49:10 2016 +0100 James ‘Twey’ Kay -* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert - -## quantum/keymap_extras/keymap_russian.h - -* c5ee24a6c3ea39e9725dfc276c92d5bce726ca78 Sun Aug 7 11:01:12 2016 -0500 kuel -* 2a0121a78643b1dc774d82352f8c9e246010803e Sun Aug 7 11:07:38 2016 -0500 kuel +* 1 Jack Humbert +* 31 James ‘Twey’ Kay ## quantum/keymap_extras/keymap_spanish.h -* 46e7fb2d3ccd699c0a1b1fd9d02860b1f2a44141 Mon Oct 26 14:49:46 2015 -0400 Jack Humbert -* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert -* 132c04746910f7230b63ed33717c4ed65599ed1b Sat Jul 2 10:26:04 2016 +0200 Rubén Díaz-Jorge -* 25938a09a6bfb2624bc96841b53897eda532e293 Thu Jul 14 11:13:35 2016 -0500 Jonathan A. Kollasch +* 59 Jack Humbert +* 1 Jonathan A. Kollasch +* 2 Rubén Díaz-Jorge ## quantum/keymap_extras/keymap_uk.h -* 46e7fb2d3ccd699c0a1b1fd9d02860b1f2a44141 Mon Oct 26 14:49:46 2015 -0400 Jack Humbert -* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert -* 010dd1308420e25b327fa4d5d6b13f67a849408b Thu Jul 14 11:04:25 2016 -0500 Jonathan A. Kollasch -* 25938a09a6bfb2624bc96841b53897eda532e293 Thu Jul 14 11:13:35 2016 -0500 Jonathan A. Kollasch - -## quantum/keymap_extras/keymap_unicode_cyrillic.h - -* c5ee24a6c3ea39e9725dfc276c92d5bce726ca78 Sun Aug 7 11:01:12 2016 -0500 kuel +* 34 Jack Humbert +* 2 Jonathan A. Kollasch ## quantum/process_keycode/process_midi.c -* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 Jack Humbert -* 8b94e26d7c3b30cc57d710a11e5651d15e8e3b20 Sun Jul 24 22:07:43 2016 -0400 Jack Humbert -* 8d99140d1b80bf497b2198138d3f481e93b0fbab Thu Sep 29 14:46:10 2016 -0500 Adam Gausmann +* 3 Adam Gausmann +* 65 Jack Humbert ## quantum/process_keycode/process_music.c -* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 Jack Humbert -* 3ea738e450e9326b0d3ee4192da881cffb4c13c1 Sun Jul 24 10:00:39 2016 -0400 Robert Dale -* ae95834f5af7404c04e6fe3446019046278d814b Mon Dec 12 16:06:41 2016 -0500 Jack Humbert -* 273faa4d9cd5a84207548f83ba550c9efee90933 Fri Dec 23 20:59:00 2016 -0500 Jack Humbert -* 841d7e6a1d74b1fc45575ed551132ec27353ebf3 Mon Jan 23 13:55:24 2017 -0500 Jack Humbert +* 180 Jack Humbert +* 6 Robert Dale ## quantum/process_keycode/process_tap_dance.c -* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 Jack Humbert -* 1a7e954f9fc4d250ba1ae46e3bfc168aca2b5cce Wed Jul 13 00:20:28 2016 +0200 Pavlos Vinieratos -* f3b56701ed7e6c622dc48e429780124ba5fde172 Wed Jul 13 16:47:45 2016 +0200 Pavlos Vinieratos -* d3091faf363afc8fef73ddf4948f872439b0e827 Fri Jul 15 23:54:08 2016 +0200 Pavlos Vinieratos -* dda2fd6ff3984ed96f8275c661b47a0484f9ee18 Mon Jul 18 23:34:02 2016 +0200 Pavlos Vinieratos -* d5daec2a58019ebdb9804787e0f786e4fc3c05b9 Tue Jul 19 18:00:59 2016 +0200 Pavlos Vinieratos -* 4e6a8627d8ebd7af942f68142d1a959d60361d90 Tue Jul 19 18:02:13 2016 +0200 Pavlos Vinieratos -* 70e42489dec375e558d8e81ed5ebfb69b4f3dbd9 Wed Jul 20 10:22:52 2016 +0200 Gergely Nagy -* ce8cc9219fca5dde077f1142d03d011b38d27479 Wed Jul 20 11:34:45 2016 +0200 Gergely Nagy -* 44e16ffc80620b61eaa17aedcfdd8233d9c99bd9 Wed Jul 20 11:49:59 2016 +0200 Gergely Nagy -* b21e8b97acb722bfa7b85831cfd010716ed77962 Wed Jul 27 08:42:09 2016 +0200 Gergely Nagy -* d78058cc75a9b05a6885991506d5f807ebb2a9f9 Wed Aug 17 10:28:08 2016 +0200 Gergely Nagy -* 29f64d7a93d941167c6c6e95f893ab84586b2205 Wed Aug 17 13:04:50 2016 +0200 Gergely Nagy -* 0d28787c5cf2173d12f57b397515f91cffaa820a Thu Aug 18 11:29:53 2016 +0200 Gergely Nagy -* acda2b793f69c6e0e9b9667e9ebe8a0325eb5ecd Thu Sep 1 08:32:47 2016 +0200 Gergely Nagy -* e1f131db8e59c6ed3471906d3a62457d593f51af Wed Sep 21 10:11:42 2016 +0200 Pavlos Vinieratos +* 90 Gergely Nagy +* 38 Jack Humbert +* 8 Pavlos Vinieratos ## quantum/process_keycode/process_tap_dance.h -* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 Jack Humbert -* f3b56701ed7e6c622dc48e429780124ba5fde172 Wed Jul 13 16:47:45 2016 +0200 Pavlos Vinieratos -* d3091faf363afc8fef73ddf4948f872439b0e827 Fri Jul 15 23:54:08 2016 +0200 Pavlos Vinieratos -* 70e42489dec375e558d8e81ed5ebfb69b4f3dbd9 Wed Jul 20 10:22:52 2016 +0200 Gergely Nagy -* ce8cc9219fca5dde077f1142d03d011b38d27479 Wed Jul 20 11:34:45 2016 +0200 Gergely Nagy -* b21e8b97acb722bfa7b85831cfd010716ed77962 Wed Jul 27 08:42:09 2016 +0200 Gergely Nagy -* 29f64d7a93d941167c6c6e95f893ab84586b2205 Wed Aug 17 13:04:50 2016 +0200 Gergely Nagy -* 0edc82f0300924394324e2f3c4d2f8f0008439db Wed Sep 21 11:29:34 2016 +0200 Pavlos Vinieratos -* cda4b534fa4921c2d8f9884aa6a144333e7b07c4 Wed Sep 21 11:29:43 2016 +0200 Pavlos Vinieratos +* 22 Gergely Nagy +* 41 Jack Humbert +* 9 Pavlos Vinieratos ## quantum/process_keycode/process_unicode.c -* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 Jack Humbert -* 8bdf745909bc2581491acce11225f56a85bc8f24 Sat Aug 13 10:33:47 2016 +0200 Gergely Nagy -* 63e5782d2cdf0ee282ad434c773463d9da9db6b3 Sat Aug 13 10:43:22 2016 +0200 Gergely Nagy -* fa06a163607e8c6c4bd0968c2de96a9a298b777c Sat Aug 13 10:46:38 2016 +0200 Gergely Nagy -* 0b6861827faea747345ea38202d64c8004ab128c Sat Aug 13 11:11:22 2016 +0200 Gergely Nagy -* 857aa5bef6a74f8785a7039feea5286c07bf7067 Sat Aug 13 11:14:42 2016 +0200 Gergely Nagy -* 234dd276cf03be6fd6961473e9d9c8f35deec682 Sun Aug 14 10:37:51 2016 +0200 Gergely Nagy -* a312cbf712764277e0dbbbb99410c2f6fc6c7484 Sun Aug 14 14:34:52 2016 +0200 Gergely Nagy -* 43d08629cf275d0b32281ffe8785258fff226b49 Mon Aug 15 10:02:05 2016 +0200 Gergely Nagy -* e8845f0daf8dc7a7674dc5420cc5a684bbbea09b Mon Aug 15 10:07:13 2016 +0200 Gergely Nagy -* dffdeb50b79d3c623e2ed9fd1c1d82d6d0ae7bf0 Sun Aug 21 20:25:19 2016 +0200 coderkun -* 81594c7883deefedbcd317c72c1b1f1d32e65cd7 Sun Aug 21 21:02:18 2016 +0200 coderkun -* a058ae40e268b34ba5db45f5fd5d557d50fa5437 Wed Aug 24 15:39:23 2016 +0200 Gergely Nagy -* c9ea236fc35d350c0ff33de0af84d3dee7d0eb95 Wed Aug 31 08:21:52 2016 +0200 Gergely Nagy -* a3f5a4cf5839fe29dd37400d72c5e353812002f8 Sun Oct 2 10:35:09 2016 +0200 coderkun -* 5b2e455d3b71bfb90754930d1f22d3e8ce98b927 Mon Oct 10 00:46:20 2016 +0700 Priyadi Iman Nurcahyo -* e7d5dc89f2890007d776f6b613dc9deb473cff22 Sun Oct 23 05:36:26 2016 +0700 Priyadi Iman Nurcahyo -* 4a666c201007eacf13a9031e3c9b156e2e04afe6 Sun Oct 23 19:15:33 2016 +0700 Priyadi Iman Nurcahyo -* 8d60354d5a116b6cb1fc32eac7461eb125543c7d Wed Oct 26 00:48:44 2016 -0400 Jack Humbert -* 30b80a23f3cafd846937b37b249f2df4411e1f5a Mon Jan 9 02:59:10 2017 +0700 Priyadi Iman Nurcahyo +* 176 Gergely Nagy +* 24 Jack Humbert +* 84 Priyadi Iman Nurcahyo +* 5 coderkun ## quantum/process_keycode/process_unicode.h -* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 Jack Humbert -* 63e5782d2cdf0ee282ad434c773463d9da9db6b3 Sat Aug 13 10:43:22 2016 +0200 Gergely Nagy -* fa06a163607e8c6c4bd0968c2de96a9a298b777c Sat Aug 13 10:46:38 2016 +0200 Gergely Nagy -* 857aa5bef6a74f8785a7039feea5286c07bf7067 Sat Aug 13 11:14:42 2016 +0200 Gergely Nagy -* 234dd276cf03be6fd6961473e9d9c8f35deec682 Sun Aug 14 10:37:51 2016 +0200 Gergely Nagy -* a312cbf712764277e0dbbbb99410c2f6fc6c7484 Sun Aug 14 14:34:52 2016 +0200 Gergely Nagy -* 43d08629cf275d0b32281ffe8785258fff226b49 Mon Aug 15 10:02:05 2016 +0200 Gergely Nagy -* e8845f0daf8dc7a7674dc5420cc5a684bbbea09b Mon Aug 15 10:07:13 2016 +0200 Gergely Nagy -* a058ae40e268b34ba5db45f5fd5d557d50fa5437 Wed Aug 24 15:39:23 2016 +0200 Gergely Nagy -* c9ea236fc35d350c0ff33de0af84d3dee7d0eb95 Wed Aug 31 08:21:52 2016 +0200 Gergely Nagy -* 5b2e455d3b71bfb90754930d1f22d3e8ce98b927 Mon Oct 10 00:46:20 2016 +0700 Priyadi Iman Nurcahyo -* 4a666c201007eacf13a9031e3c9b156e2e04afe6 Sun Oct 23 19:15:33 2016 +0700 Priyadi Iman Nurcahyo -* 6fee7e178f7c949213a124d78de60bc30267d367 Sat Nov 26 23:53:15 2016 +0700 Priyadi Iman Nurcahyo +* 40 Gergely Nagy +* 117 Jack Humbert +* 10 Priyadi Iman Nurcahyo ## quantum/template/config.h -* 6f3141965e88c4ee0ebf7c18a243e4c2d9c5021b Tue Oct 27 14:33:18 2015 -0400 Jack Humbert -* 24f2698fba0055128eb90fbde793e3c84900df69 Sat Jan 23 20:45:52 2016 -0500 Jack Humbert -* 577971ab07a49405e1dcd8e5f75b3ecb87e710b9 Mon Mar 28 00:03:21 2016 -0500 IBNobody -* 1d13aa933bbb57bf0c1fe0196981b81233c3df97 Mon Mar 28 19:45:20 2016 -0500 IBNobody -* aaa758f1d3f97dda39879f2b055ad2da9680adfe Mon May 23 20:42:21 2016 -0700 Eric Tang -* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 Jack Humbert +* 9 Eric Tang +* 78 IBNobody +* 75 Jack Humbert ## quantum/template/template.c -* 6f3141965e88c4ee0ebf7c18a243e4c2d9c5021b Tue Oct 27 14:33:18 2015 -0400 Jack Humbert -* 641859df84bf40025b2c14319d1a168a435562e2 Thu Mar 10 11:28:34 2016 -0500 yoyoerx -* eba9a7d74db0be548cddc107f0370dabf43b017f Tue Mar 15 23:52:51 2016 -0500 IBNobody -* ec62d9e85cab5cf166241b0536120d005fa7c898 Tue Mar 22 20:39:05 2016 -0500 IBNobody -* 3d56ec052ed485d4b717da930c4024b4a3f792e0 Tue Mar 22 21:06:22 2016 -0500 IBNobody -* 2181be029e01d9cf46ae3cadcdf25f5bca02c631 Mon Mar 28 16:13:37 2016 +0200 Damien Pollet -* 0656f2fa10e25e160617c3e5d14cfbae35dd9c8d Fri Apr 29 22:19:40 2016 -0400 Jack Humbert -* 1a8c0dd22d6a2255511d0db6a456315541b5815b Sun May 15 00:27:32 2016 -0400 Erez Zukerman -* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 Jack Humbert -* 589df84d6cd19ad7d776cc19bcddade1cd178ddc Thu Jul 7 09:58:44 2016 -0400 Jack Humbert -* c1dfb636ef61159456bdb24f4fee3f27e5babbeb Thu Jul 7 12:22:10 2016 -0400 Jack Humbert +* 9 Damien Pollet +* 7 IBNobody +* 8 Jack Humbert +* 4 yoyoerx ## quantum/template/template.h -* 6f3141965e88c4ee0ebf7c18a243e4c2d9c5021b Tue Oct 27 14:33:18 2015 -0400 Jack Humbert -* 24f2698fba0055128eb90fbde793e3c84900df69 Sat Jan 23 20:45:52 2016 -0500 Jack Humbert -* ee1b94045e5bebda517119cb1853b0ab3fd0f499 Fri Mar 4 10:53:58 2016 -0500 Noah Andrews -* 641859df84bf40025b2c14319d1a168a435562e2 Thu Mar 10 11:28:34 2016 -0500 yoyoerx -* eba9a7d74db0be548cddc107f0370dabf43b017f Tue Mar 15 23:52:51 2016 -0500 IBNobody -* ec62d9e85cab5cf166241b0536120d005fa7c898 Tue Mar 22 20:39:05 2016 -0500 IBNobody -* 2181be029e01d9cf46ae3cadcdf25f5bca02c631 Mon Mar 28 16:13:37 2016 +0200 Damien Pollet -* 0656f2fa10e25e160617c3e5d14cfbae35dd9c8d Fri Apr 29 22:19:40 2016 -0400 Jack Humbert -* 1a8c0dd22d6a2255511d0db6a456315541b5815b Sun May 15 00:27:32 2016 -0400 Erez Zukerman -* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert -* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 Jack Humbert +* 2 Damien Pollet +* 16 Jack Humbert +* 1 Noah Andrews # All Single Author Files From 858efff8e55eafee2fbf84c9eac5654ac21fe83c Mon Sep 17 00:00:00 2001 From: skullydazed Date: Fri, 27 Jan 2017 16:27:36 -0800 Subject: [PATCH 264/517] Updated License Clarification (markdown) --- License-Clarification.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/License-Clarification.md b/License-Clarification.md index fe3f2bc2da..40e9367c38 100644 --- a/License-Clarification.md +++ b/License-Clarification.md @@ -2,6 +2,14 @@ As raised in #1038 and other issues, the licensing status of QMK is not clear. In an effort to remove ambiguity and to clarify the licensing status of the quantum code we are identifying the providence of our source code files and clarifying what license applies to each one. +# Signoff + +This section documents the people who need to sign off on applying the GPL to one or more of their contributions. + +Author|# Lines|Files +------|-------|----- +TBD | TBD | TBD + # Single Author Files These are the single author files that still need to have their license clarified. From 3df44ecfc82b4affde3fd28961659f17afb2e9ca Mon Sep 17 00:00:00 2001 From: skullydazed Date: Fri, 27 Jan 2017 17:08:57 -0800 Subject: [PATCH 265/517] Updated License Clarification (markdown) --- License-Clarification.md | 198 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 195 insertions(+), 3 deletions(-) diff --git a/License-Clarification.md b/License-Clarification.md index 40e9367c38..237f97f663 100644 --- a/License-Clarification.md +++ b/License-Clarification.md @@ -6,9 +6,201 @@ As raised in #1038 and other issues, the licensing status of QMK is not clear. I This section documents the people who need to sign off on applying the GPL to one or more of their contributions. -Author|# Lines|Files -------|-------|----- -TBD | TBD | TBD +Username | Author | # Lines | Files | Sign Off Date +---------|--------|---------|-------|-------------- +@Vifon | | | 231 | quantum/dynamic_macro.h
| +@wez | | 37 | quantum/dynamic_macro.h
| +@DidierLoiseau | DidierLoiseau | 255 | quantum/keymap_extras/keymap_canadian_multilingual.h +@h-youhei | h-youhei | 62 | quantum/keymap_extras/keymap_jp.h | +@kuel | kuel | 240 | quantum/keymap_extras/keymap_unicode_cyrillic.h
quantum/keymap_extras/keymap_russian.h | +@eltang | Eric Tang | 146 | quantum/config_common.h
quantum/matrix.c
quantum/quantum.c
quantum/quantum.h
quantum/rgblight.c
quantum/rgblight.h | +@fredizzimo | Fred Sundvik | 112 | quantum/config_common.h
quantum/keycode_config.h
quantum/keymap.h
quantum/keymap_common.c
quantum/keymap_common.c
quantum/matrix.c
quantum/quantum.h
quantum/rgblight.c
quantum/rgblight.h
quantum/api/api_sysex.c | +@jackhumbert | Jack Humbert | 1624 | quantum/config_common.h
quantum/keycode_config.h
quantum/keymap.h
quantum/keymap_common.c
quantum/light_ws2812.c
quantum/light_ws2812.h
quantum/matrix.c
quantum/quantum.c
quantum/quantum.h
quantum/quantum_keycodes.h
quantum/rgblight.c
quantum/rgblight.h
quantum/api/api_sysex.c
quantum/audio/audio.c
quantum/audio/audio.h | +@ofples | ofples | 1 | quantum/config_common.h | +@IBnobody | IBNobody | 636 | quantum/keycode_config.h
quantum/matrix.c
quantum/quantum.c
quantum/audio/audio.c
quantum/audio/audio.h | +@Wilba6582 | Wilba6582 | 330 | quantum/keymap.h
quantum/keymap_common.c
quantum/quantum_keycodes.h | +@yangliu | Yang Liu | 465 | quantum/light_ws2812.c
quantum/light_ws2812.h
quantum/rgblight.c
quantum/rgblight.h | +@ezuk | Erez Zukerman | 86 | quantum/matrix.c
quantum/quantum.c
quantum/quantum.h
quantum/quantum_keycodes.h
quantum/rgblight.c
quantum/rgblight.h | +@yoyoerx | yoyoerx | 2 | quantum/matrix.c | + | Gergely Nagy | 52 | quantum/quantum.c
quantum/quantum.h | + | Ofer Plesser | 2 | quantum/quantum.c | + | Pavlos Vinieratos | 16 | quantum/quantum.c
quantum/quantum.h | + | Priyadi Iman Nurcahyo | 2 | quantum/quantum.c | + | Smilliam | 12 | quantum/quantum.c | + | TerryMathews | 52 | quantum/quantum.c | + | Wojciech Siewierski | 12 | quantum/quantum.c | + | Jordi Orlando | 311 | quantum/rgblight.c | + | Scott Wilson | 3 | quantum/rgblight.c
quantum/rgblight.h | +@skullydazed | skullY | 2 | quantum/rgblight.c | + + +## quantum/audio/audio_pwm.c + +* 642 IBNobody +* 1 Jack Humbert + +## quantum/audio/song_list.h + +* 101 IBNobody +* 16 Jack Humbert +* 8 JeeBak Kim + +## quantum/audio/voices.c + +* 24 IBNobody +* 256 Jack Humbert + +## quantum/audio/voices.h + +* 3 IBNobody +* 32 Jack Humbert + +## quantum/keymap_extras/keymap_bepo.h + +* 308 Didier Loiseau +* 1 Jack Humbert +* 2 Vivien Alger + +## quantum/keymap_extras/keymap_colemak.h + +* 31 Erez Zukerman +* 44 Jack Humbert + +## quantum/keymap_extras/keymap_dvorak.h + +* 69 Jack Humbert +* 15 Jonathan A. Kollasch +* 1 Keller-Laminar + +## quantum/keymap_extras/keymap_fr_ch.h + +* 1 Jack Humbert +* 1 Jonathan A. Kollasch +* 96 Vincent Pochet + +## quantum/keymap_extras/keymap_french.h + +* 80 Jack Humbert +* 2 Jonathan A. Kollasch +* 1 Kévin Letord + +## quantum/keymap_extras/keymap_french_osx.h + +* 1 Jack Humbert +* 76 Sébastien Pérochon + +## quantum/keymap_extras/keymap_german.h + +* 1 Jack Humbert +* 1 Jonathan A. Kollasch +* 58 Matthias Schmitt +* 39 plgruener + +## quantum/keymap_extras/keymap_german_ch.h + +* 1 Jack Humbert +* 1 Jonathan A. Kollasch +* 100 heartsekai + +## quantum/keymap_extras/keymap_german_osx.h + +* 1 Jack Humbert +* 96 Stephan Bösebeck + +## quantum/keymap_extras/keymap_neo2.h + +* 2 Jack Humbert +* 42 Matthias Schmitt +* 19 plgruener + +## quantum/keymap_extras/keymap_nordic.h + +* 1 Andreas Lindhé +* 1 Erez Zukerman +* 3 Fernando Mendonca +* 53 Jack Humbert +* 1 Jonathan A. Kollasch + +## quantum/keymap_extras/keymap_norwegian.h + +* 1 Andreas Lindhé +* 40 joar + +## quantum/keymap_extras/keymap_plover.h + +* 1 Jack Humbert +* 31 James ‘Twey’ Kay + +## quantum/keymap_extras/keymap_spanish.h + +* 59 Jack Humbert +* 1 Jonathan A. Kollasch +* 2 Rubén Díaz-Jorge + +## quantum/keymap_extras/keymap_uk.h + +* 34 Jack Humbert +* 2 Jonathan A. Kollasch + +## quantum/process_keycode/process_midi.c + +* 3 Adam Gausmann +* 65 Jack Humbert + +## quantum/process_keycode/process_music.c + +* 180 Jack Humbert +* 6 Robert Dale + +## quantum/process_keycode/process_tap_dance.c + +* 90 Gergely Nagy +* 38 Jack Humbert +* 8 Pavlos Vinieratos + +## quantum/process_keycode/process_tap_dance.h + +* 22 Gergely Nagy +* 41 Jack Humbert +* 9 Pavlos Vinieratos + +## quantum/process_keycode/process_unicode.c + +* 176 Gergely Nagy +* 24 Jack Humbert +* 84 Priyadi Iman Nurcahyo +* 5 coderkun + +## quantum/process_keycode/process_unicode.h + +* 40 Gergely Nagy +* 117 Jack Humbert +* 10 Priyadi Iman Nurcahyo + +## quantum/template/config.h + +* 9 Eric Tang +* 78 IBNobody +* 75 Jack Humbert + +## quantum/template/template.c + +* 9 Damien Pollet +* 7 IBNobody +* 8 Jack Humbert +* 4 yoyoerx + +## quantum/template/template.h + +* 2 Damien Pollet +* 16 Jack Humbert +* 1 Noah Andrews + + + + + + # Single Author Files From 223494e69165e2d4418527ece925e3f1d88d946d Mon Sep 17 00:00:00 2001 From: skullydazed Date: Fri, 27 Jan 2017 17:44:58 -0800 Subject: [PATCH 266/517] Updated License Clarification (markdown) --- License-Clarification.md | 212 ++++++--------------------------------- 1 file changed, 32 insertions(+), 180 deletions(-) diff --git a/License-Clarification.md b/License-Clarification.md index 237f97f663..9c55d0bd77 100644 --- a/License-Clarification.md +++ b/License-Clarification.md @@ -8,199 +8,51 @@ This section documents the people who need to sign off on applying the GPL to on Username | Author | # Lines | Files | Sign Off Date ---------|--------|---------|-------|-------------- -@Vifon | | | 231 | quantum/dynamic_macro.h
| -@wez | | 37 | quantum/dynamic_macro.h
| -@DidierLoiseau | DidierLoiseau | 255 | quantum/keymap_extras/keymap_canadian_multilingual.h +@Vifon | | 231 | quantum/dynamic_macro.h | +@wez | | 37 | quantum/dynamic_macro.h | +@DidierLoiseau | DidierLoiseau | 563 | quantum/keymap_extras/keymap_canadian_multilingual.h
quantum/keymap_extras/keymap_bepo.h | @h-youhei | h-youhei | 62 | quantum/keymap_extras/keymap_jp.h | @kuel | kuel | 240 | quantum/keymap_extras/keymap_unicode_cyrillic.h
quantum/keymap_extras/keymap_russian.h | -@eltang | Eric Tang | 146 | quantum/config_common.h
quantum/matrix.c
quantum/quantum.c
quantum/quantum.h
quantum/rgblight.c
quantum/rgblight.h | +@eltang | Eric Tang | 155 | quantum/config_common.h
quantum/matrix.c
quantum/quantum.c
quantum/quantum.h
quantum/rgblight.c
quantum/rgblight.h
quantum/template/config.h | @fredizzimo | Fred Sundvik | 112 | quantum/config_common.h
quantum/keycode_config.h
quantum/keymap.h
quantum/keymap_common.c
quantum/keymap_common.c
quantum/matrix.c
quantum/quantum.h
quantum/rgblight.c
quantum/rgblight.h
quantum/api/api_sysex.c | -@jackhumbert | Jack Humbert | 1624 | quantum/config_common.h
quantum/keycode_config.h
quantum/keymap.h
quantum/keymap_common.c
quantum/light_ws2812.c
quantum/light_ws2812.h
quantum/matrix.c
quantum/quantum.c
quantum/quantum.h
quantum/quantum_keycodes.h
quantum/rgblight.c
quantum/rgblight.h
quantum/api/api_sysex.c
quantum/audio/audio.c
quantum/audio/audio.h | +@jackhumbert | Jack Humbert | 2841 | quantum/config_common.h
quantum/keycode_config.h
quantum/keymap.h
quantum/keymap_common.c
quantum/light_ws2812.c
quantum/light_ws2812.h
quantum/matrix.c
quantum/quantum.c
quantum/quantum.h
quantum/quantum_keycodes.h
quantum/rgblight.c
quantum/rgblight.h
quantum/api/api_sysex.c
quantum/audio/audio.c
quantum/audio/audio.h
quantum/audio/audio_pwm.c
quantum/audio/audio_pwm.c
quantum/audio/voices.c
quantum/audio/voices.h
quantum/keymap_extras/keymap_colemak.h
quantum/keymap_extras/keymap_dvorak.h
quantum/keymap_extras/keymap_fr_ch.h
quantum/keymap_extras/keymap_french.h
quantum/keymap_extras/keymap_french_osx.h
quantum/keymap_extras/keymap_german.h
quantum/keymap_extras/keymap_german_ch.h
quantum/keymap_extras/keymap_german_osx.h
quantum/keymap_extras/keymap_neo2.h
quantum/keymap_extras/keymap_nordic.h
quantum/keymap_extras/keymap_plover.h
quantum/keymap_extras/keymap_spanish.h
quantum/keymap_extras/keymap_uk.h
quantum/process_keycode/process_midi.c
quantum/process_keycode/process_music.c
quantum/process_keycode/process_tap_dance.c
quantum/process_keycode/process_tap_dance.h
quantum/process_keycode/process_unicode.c
quantum/process_keycode/process_unicode.h
quantum/template/config.h
quantum/template/template.c
quantum/template/template.h | @ofples | ofples | 1 | quantum/config_common.h | -@IBnobody | IBNobody | 636 | quantum/keycode_config.h
quantum/matrix.c
quantum/quantum.c
quantum/audio/audio.c
quantum/audio/audio.h | +@IBnobody | IBNobody | 1491 | quantum/keycode_config.h
quantum/matrix.c
quantum/quantum.c
quantum/audio/audio.c
quantum/audio/audio.h
quantum/audio/audio_pwm.c
quantum/audio/audio_pwm.c
quantum/audio/voices.c
quantum/audio/voices.h
quantum/template/config.h
quantum/template/template.c | @Wilba6582 | Wilba6582 | 330 | quantum/keymap.h
quantum/keymap_common.c
quantum/quantum_keycodes.h | @yangliu | Yang Liu | 465 | quantum/light_ws2812.c
quantum/light_ws2812.h
quantum/rgblight.c
quantum/rgblight.h | -@ezuk | Erez Zukerman | 86 | quantum/matrix.c
quantum/quantum.c
quantum/quantum.h
quantum/quantum_keycodes.h
quantum/rgblight.c
quantum/rgblight.h | -@yoyoerx | yoyoerx | 2 | quantum/matrix.c | - | Gergely Nagy | 52 | quantum/quantum.c
quantum/quantum.h | +@ezuk | Erez Zukerman | 118 | quantum/matrix.c
quantum/quantum.c
quantum/quantum.h
quantum/quantum_keycodes.h
quantum/rgblight.c
quantum/rgblight.h
quantum/keymap_extras/keymap_colemak.h
quantum/keymap_extras/keymap_nordic.h | +@yoyoerx | yoyoerx | 6 | quantum/matrix.c
quantum/template/template.c | + | Gergely Nagy | 380 | quantum/quantum.c
quantum/quantum.h
quantum/process_keycode/process_tap_dance.c
quantum/process_keycode/process_tap_dance.h
quantum/process_keycode/process_unicode.c
quantum/process_keycode/process_unicode.h | | Ofer Plesser | 2 | quantum/quantum.c | - | Pavlos Vinieratos | 16 | quantum/quantum.c
quantum/quantum.h | - | Priyadi Iman Nurcahyo | 2 | quantum/quantum.c | + | Pavlos Vinieratos | 33 | quantum/quantum.c
quantum/quantum.h
quantum/process_keycode/process_tap_dance.c
quantum/process_keycode/process_tap_dance.h | + | Priyadi Iman Nurcahyo | 96 | quantum/quantum.c
quantum/process_keycode/process_unicode.c
quantum/process_keycode/process_unicode.h | | Smilliam | 12 | quantum/quantum.c | | TerryMathews | 52 | quantum/quantum.c | | Wojciech Siewierski | 12 | quantum/quantum.c | | Jordi Orlando | 311 | quantum/rgblight.c | | Scott Wilson | 3 | quantum/rgblight.c
quantum/rgblight.h | @skullydazed | skullY | 2 | quantum/rgblight.c | - - -## quantum/audio/audio_pwm.c - -* 642 IBNobody -* 1 Jack Humbert - -## quantum/audio/song_list.h - -* 101 IBNobody -* 16 Jack Humbert -* 8 JeeBak Kim - -## quantum/audio/voices.c - -* 24 IBNobody -* 256 Jack Humbert - -## quantum/audio/voices.h - -* 3 IBNobody -* 32 Jack Humbert - -## quantum/keymap_extras/keymap_bepo.h - -* 308 Didier Loiseau -* 1 Jack Humbert -* 2 Vivien Alger - -## quantum/keymap_extras/keymap_colemak.h - -* 31 Erez Zukerman -* 44 Jack Humbert - -## quantum/keymap_extras/keymap_dvorak.h - -* 69 Jack Humbert -* 15 Jonathan A. Kollasch -* 1 Keller-Laminar - -## quantum/keymap_extras/keymap_fr_ch.h - -* 1 Jack Humbert -* 1 Jonathan A. Kollasch -* 96 Vincent Pochet - -## quantum/keymap_extras/keymap_french.h - -* 80 Jack Humbert -* 2 Jonathan A. Kollasch -* 1 Kévin Letord - -## quantum/keymap_extras/keymap_french_osx.h - -* 1 Jack Humbert -* 76 Sébastien Pérochon - -## quantum/keymap_extras/keymap_german.h - -* 1 Jack Humbert -* 1 Jonathan A. Kollasch -* 58 Matthias Schmitt -* 39 plgruener - -## quantum/keymap_extras/keymap_german_ch.h - -* 1 Jack Humbert -* 1 Jonathan A. Kollasch -* 100 heartsekai - -## quantum/keymap_extras/keymap_german_osx.h - -* 1 Jack Humbert -* 96 Stephan Bösebeck - -## quantum/keymap_extras/keymap_neo2.h - -* 2 Jack Humbert -* 42 Matthias Schmitt -* 19 plgruener - -## quantum/keymap_extras/keymap_nordic.h - -* 1 Andreas Lindhé -* 1 Erez Zukerman -* 3 Fernando Mendonca -* 53 Jack Humbert -* 1 Jonathan A. Kollasch - -## quantum/keymap_extras/keymap_norwegian.h - -* 1 Andreas Lindhé -* 40 joar - -## quantum/keymap_extras/keymap_plover.h - -* 1 Jack Humbert -* 31 James ‘Twey’ Kay - -## quantum/keymap_extras/keymap_spanish.h - -* 59 Jack Humbert -* 1 Jonathan A. Kollasch -* 2 Rubén Díaz-Jorge - -## quantum/keymap_extras/keymap_uk.h - -* 34 Jack Humbert -* 2 Jonathan A. Kollasch - -## quantum/process_keycode/process_midi.c - -* 3 Adam Gausmann -* 65 Jack Humbert - -## quantum/process_keycode/process_music.c - -* 180 Jack Humbert -* 6 Robert Dale - -## quantum/process_keycode/process_tap_dance.c - -* 90 Gergely Nagy -* 38 Jack Humbert -* 8 Pavlos Vinieratos - -## quantum/process_keycode/process_tap_dance.h - -* 22 Gergely Nagy -* 41 Jack Humbert -* 9 Pavlos Vinieratos - -## quantum/process_keycode/process_unicode.c - -* 176 Gergely Nagy -* 24 Jack Humbert -* 84 Priyadi Iman Nurcahyo -* 5 coderkun - -## quantum/process_keycode/process_unicode.h - -* 40 Gergely Nagy -* 117 Jack Humbert -* 10 Priyadi Iman Nurcahyo - -## quantum/template/config.h - -* 9 Eric Tang -* 78 IBNobody -* 75 Jack Humbert - -## quantum/template/template.c - -* 9 Damien Pollet -* 7 IBNobody -* 8 Jack Humbert -* 4 yoyoerx - -## quantum/template/template.h - -* 2 Damien Pollet -* 16 Jack Humbert -* 1 Noah Andrews - - - - - - + | JeeBak Kim | 8 | quantum/audio/audio_pwm.c | + | Vivien Alger | 2 | quantum/keymap_extras/keymap_bepo.h | + | Jonathan A. Kollasch | 24 | quantum/keymap_extras/keymap_dvorak.h
quantum/keymap_extras/keymap_fr_ch.h
quantum/keymap_extras/keymap_french.h
quantum/keymap_extras/keymap_german.h
quantum/keymap_extras/keymap_german_ch.h
quantum/keymap_extras/keymap_nordic.h
quantum/keymap_extras/keymap_spanish.h
quantum/keymap_extras/keymap_uk.h | + | Keller-Laminar | 1 | quantum/keymap_extras/keymap_dvorak.h | + | Vincent Pochet | 96 | quantum/keymap_extras/keymap_fr_ch.h | + | Kévin Letord | 1 | quantum/keymap_extras/keymap_french.h | + | Sébastien Pérochon | 76 | quantum/keymap_extras/keymap_french_osx.h | + | Matthias Schmitt | 100 | quantum/keymap_extras/keymap_german.h
quantum/keymap_extras/keymap_neo2.h | + | plgruener | 58 | quantum/keymap_extras/keymap_german.h
quantum/keymap_extras/keymap_neo2.h | + | heartsekai | 100 | quantum/keymap_extras/keymap_german_ch.h | + | Stephan Bösebeck | 96 | quantum/keymap_extras/keymap_german_osx.h | + | Andreas Lindé | 2 | quantum/keymap_extras/keymap_nordic.h
quantum/keymap_extras/keymap_norwegian.h | + | Fernando Mendonca | 3 | quantum/keymap_extras/keymap_nordic.h | + | joar | 40 | quantum/keymap_extras/keymap_norwegian.h | + | James 'Twey' Kay | 31 | quantum/keymap_extras/keymap_plover.h | + | Rubén Díaz-Jorge | 2 | quantum/keymap_extras/keymap_spanish.h | + | Adam Gausmann | 3 | quantum/process_keycode/process_midi.c | + | Robert Dale | 6 | quantum/process_keycode/process_music.c | + | coderkun | 5 | quantum/process_keycode/process_unicode.c | + | Damien Pollet | 11 | quantum/template/template.c
quantum/template/template.h | + | Noah Andrews | 1 | quantum/template/template.h | # Single Author Files From d51ad5db0f377806df7db63c4712e900695b5a19 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Fri, 27 Jan 2017 17:47:43 -0800 Subject: [PATCH 267/517] Updated License Clarification (markdown) --- License-Clarification.md | 92 ++++++++++++++++++++-------------------- 1 file changed, 46 insertions(+), 46 deletions(-) diff --git a/License-Clarification.md b/License-Clarification.md index 9c55d0bd77..5320f63568 100644 --- a/License-Clarification.md +++ b/License-Clarification.md @@ -6,53 +6,53 @@ As raised in #1038 and other issues, the licensing status of QMK is not clear. I This section documents the people who need to sign off on applying the GPL to one or more of their contributions. -Username | Author | # Lines | Files | Sign Off Date ----------|--------|---------|-------|-------------- -@Vifon | | 231 | quantum/dynamic_macro.h | -@wez | | 37 | quantum/dynamic_macro.h | -@DidierLoiseau | DidierLoiseau | 563 | quantum/keymap_extras/keymap_canadian_multilingual.h
quantum/keymap_extras/keymap_bepo.h | -@h-youhei | h-youhei | 62 | quantum/keymap_extras/keymap_jp.h | -@kuel | kuel | 240 | quantum/keymap_extras/keymap_unicode_cyrillic.h
quantum/keymap_extras/keymap_russian.h | -@eltang | Eric Tang | 155 | quantum/config_common.h
quantum/matrix.c
quantum/quantum.c
quantum/quantum.h
quantum/rgblight.c
quantum/rgblight.h
quantum/template/config.h | -@fredizzimo | Fred Sundvik | 112 | quantum/config_common.h
quantum/keycode_config.h
quantum/keymap.h
quantum/keymap_common.c
quantum/keymap_common.c
quantum/matrix.c
quantum/quantum.h
quantum/rgblight.c
quantum/rgblight.h
quantum/api/api_sysex.c | -@jackhumbert | Jack Humbert | 2841 | quantum/config_common.h
quantum/keycode_config.h
quantum/keymap.h
quantum/keymap_common.c
quantum/light_ws2812.c
quantum/light_ws2812.h
quantum/matrix.c
quantum/quantum.c
quantum/quantum.h
quantum/quantum_keycodes.h
quantum/rgblight.c
quantum/rgblight.h
quantum/api/api_sysex.c
quantum/audio/audio.c
quantum/audio/audio.h
quantum/audio/audio_pwm.c
quantum/audio/audio_pwm.c
quantum/audio/voices.c
quantum/audio/voices.h
quantum/keymap_extras/keymap_colemak.h
quantum/keymap_extras/keymap_dvorak.h
quantum/keymap_extras/keymap_fr_ch.h
quantum/keymap_extras/keymap_french.h
quantum/keymap_extras/keymap_french_osx.h
quantum/keymap_extras/keymap_german.h
quantum/keymap_extras/keymap_german_ch.h
quantum/keymap_extras/keymap_german_osx.h
quantum/keymap_extras/keymap_neo2.h
quantum/keymap_extras/keymap_nordic.h
quantum/keymap_extras/keymap_plover.h
quantum/keymap_extras/keymap_spanish.h
quantum/keymap_extras/keymap_uk.h
quantum/process_keycode/process_midi.c
quantum/process_keycode/process_music.c
quantum/process_keycode/process_tap_dance.c
quantum/process_keycode/process_tap_dance.h
quantum/process_keycode/process_unicode.c
quantum/process_keycode/process_unicode.h
quantum/template/config.h
quantum/template/template.c
quantum/template/template.h | -@ofples | ofples | 1 | quantum/config_common.h | -@IBnobody | IBNobody | 1491 | quantum/keycode_config.h
quantum/matrix.c
quantum/quantum.c
quantum/audio/audio.c
quantum/audio/audio.h
quantum/audio/audio_pwm.c
quantum/audio/audio_pwm.c
quantum/audio/voices.c
quantum/audio/voices.h
quantum/template/config.h
quantum/template/template.c | -@Wilba6582 | Wilba6582 | 330 | quantum/keymap.h
quantum/keymap_common.c
quantum/quantum_keycodes.h | -@yangliu | Yang Liu | 465 | quantum/light_ws2812.c
quantum/light_ws2812.h
quantum/rgblight.c
quantum/rgblight.h | +Username | Author | # Lines | Files | Sign Off Date | +---------|--------|---------|-------|---------------| +@Vifon | | 231 | quantum/dynamic_macro.h | | +@wez | | 37 | quantum/dynamic_macro.h | | +@DidierLoiseau | DidierLoiseau | 563 | | quantum/keymap_extras/keymap_canadian_multilingual.h
quantum/keymap_extras/keymap_bepo.h | | +@h-youhei | h-youhei | 62 | quantum/keymap_extras/keymap_jp.h | | +@kuel | kuel | 240 | quantum/keymap_extras/keymap_unicode_cyrillic.h
quantum/keymap_extras/keymap_russian.h | | +@eltang | Eric Tang | 155 | quantum/config_common.h
quantum/matrix.c
quantum/quantum.c
quantum/quantum.h
quantum/rgblight.c
quantum/rgblight.h
quantum/template/config.h | | +@fredizzimo | Fred Sundvik | 112 | quantum/config_common.h
quantum/keycode_config.h
quantum/keymap.h
quantum/keymap_common.c
quantum/keymap_common.c
quantum/matrix.c
quantum/quantum.h
quantum/rgblight.c
quantum/rgblight.h
quantum/api/api_sysex.c | | +@jackhumbert | Jack Humbert | 2841 | quantum/config_common.h
quantum/keycode_config.h
quantum/keymap.h
quantum/keymap_common.c
quantum/light_ws2812.c
quantum/light_ws2812.h
quantum/matrix.c
quantum/quantum.c
quantum/quantum.h
quantum/quantum_keycodes.h
quantum/rgblight.c
quantum/rgblight.h
quantum/api/api_sysex.c
quantum/audio/audio.c
quantum/audio/audio.h
quantum/audio/audio_pwm.c
quantum/audio/audio_pwm.c
quantum/audio/voices.c
quantum/audio/voices.h
quantum/keymap_extras/keymap_colemak.h
quantum/keymap_extras/keymap_dvorak.h
quantum/keymap_extras/keymap_fr_ch.h
quantum/keymap_extras/keymap_french.h
quantum/keymap_extras/keymap_french_osx.h
quantum/keymap_extras/keymap_german.h
quantum/keymap_extras/keymap_german_ch.h
quantum/keymap_extras/keymap_german_osx.h
quantum/keymap_extras/keymap_neo2.h
quantum/keymap_extras/keymap_nordic.h
quantum/keymap_extras/keymap_plover.h
quantum/keymap_extras/keymap_spanish.h
quantum/keymap_extras/keymap_uk.h
quantum/process_keycode/process_midi.c
quantum/process_keycode/process_music.c
quantum/process_keycode/process_tap_dance.c
quantum/process_keycode/process_tap_dance.h
quantum/process_keycode/process_unicode.c
quantum/process_keycode/process_unicode.h
quantum/template/config.h
quantum/template/template.c
quantum/template/template.h | | +@ofples | ofples | 1 | quantum/config_common.h | | +@IBnobody | IBNobody | 1491 | quantum/keycode_config.h
quantum/matrix.c
quantum/quantum.c
quantum/audio/audio.c
quantum/audio/audio.h
quantum/audio/audio_pwm.c
quantum/audio/audio_pwm.c
quantum/audio/voices.c
quantum/audio/voices.h
quantum/template/config.h
quantum/template/template.c | | +@Wilba6582 | Wilba6582 | 330 | quantum/keymap.h
quantum/keymap_common.c
quantum/quantum_keycodes.h | | +@yangliu | Yang Liu | 465 | quantum/light_ws2812.c
quantum/light_ws2812.h
quantum/rgblight.c
quantum/rgblight.h | | @ezuk | Erez Zukerman | 118 | quantum/matrix.c
quantum/quantum.c
quantum/quantum.h
quantum/quantum_keycodes.h
quantum/rgblight.c
quantum/rgblight.h
quantum/keymap_extras/keymap_colemak.h
quantum/keymap_extras/keymap_nordic.h | -@yoyoerx | yoyoerx | 6 | quantum/matrix.c
quantum/template/template.c | - | Gergely Nagy | 380 | quantum/quantum.c
quantum/quantum.h
quantum/process_keycode/process_tap_dance.c
quantum/process_keycode/process_tap_dance.h
quantum/process_keycode/process_unicode.c
quantum/process_keycode/process_unicode.h | - | Ofer Plesser | 2 | quantum/quantum.c | - | Pavlos Vinieratos | 33 | quantum/quantum.c
quantum/quantum.h
quantum/process_keycode/process_tap_dance.c
quantum/process_keycode/process_tap_dance.h | - | Priyadi Iman Nurcahyo | 96 | quantum/quantum.c
quantum/process_keycode/process_unicode.c
quantum/process_keycode/process_unicode.h | - | Smilliam | 12 | quantum/quantum.c | - | TerryMathews | 52 | quantum/quantum.c | - | Wojciech Siewierski | 12 | quantum/quantum.c | - | Jordi Orlando | 311 | quantum/rgblight.c | - | Scott Wilson | 3 | quantum/rgblight.c
quantum/rgblight.h | -@skullydazed | skullY | 2 | quantum/rgblight.c | - | JeeBak Kim | 8 | quantum/audio/audio_pwm.c | - | Vivien Alger | 2 | quantum/keymap_extras/keymap_bepo.h | - | Jonathan A. Kollasch | 24 | quantum/keymap_extras/keymap_dvorak.h
quantum/keymap_extras/keymap_fr_ch.h
quantum/keymap_extras/keymap_french.h
quantum/keymap_extras/keymap_german.h
quantum/keymap_extras/keymap_german_ch.h
quantum/keymap_extras/keymap_nordic.h
quantum/keymap_extras/keymap_spanish.h
quantum/keymap_extras/keymap_uk.h | - | Keller-Laminar | 1 | quantum/keymap_extras/keymap_dvorak.h | - | Vincent Pochet | 96 | quantum/keymap_extras/keymap_fr_ch.h | - | Kévin Letord | 1 | quantum/keymap_extras/keymap_french.h | - | Sébastien Pérochon | 76 | quantum/keymap_extras/keymap_french_osx.h | - | Matthias Schmitt | 100 | quantum/keymap_extras/keymap_german.h
quantum/keymap_extras/keymap_neo2.h | - | plgruener | 58 | quantum/keymap_extras/keymap_german.h
quantum/keymap_extras/keymap_neo2.h | - | heartsekai | 100 | quantum/keymap_extras/keymap_german_ch.h | - | Stephan Bösebeck | 96 | quantum/keymap_extras/keymap_german_osx.h | - | Andreas Lindé | 2 | quantum/keymap_extras/keymap_nordic.h
quantum/keymap_extras/keymap_norwegian.h | - | Fernando Mendonca | 3 | quantum/keymap_extras/keymap_nordic.h | - | joar | 40 | quantum/keymap_extras/keymap_norwegian.h | - | James 'Twey' Kay | 31 | quantum/keymap_extras/keymap_plover.h | - | Rubén Díaz-Jorge | 2 | quantum/keymap_extras/keymap_spanish.h | - | Adam Gausmann | 3 | quantum/process_keycode/process_midi.c | - | Robert Dale | 6 | quantum/process_keycode/process_music.c | - | coderkun | 5 | quantum/process_keycode/process_unicode.c | - | Damien Pollet | 11 | quantum/template/template.c
quantum/template/template.h | - | Noah Andrews | 1 | quantum/template/template.h | +@yoyoerx | yoyoerx | 6 | quantum/matrix.c
quantum/template/template.c | | + | Gergely Nagy | 380 | quantum/quantum.c
quantum/quantum.h
quantum/process_keycode/process_tap_dance.c
quantum/process_keycode/process_tap_dance.h
quantum/process_keycode/process_unicode.c
quantum/process_keycode/process_unicode.h | | + | Ofer Plesser | 2 | quantum/quantum.c | | + | Pavlos Vinieratos | 33 | quantum/quantum.c
quantum/quantum.h
quantum/process_keycode/process_tap_dance.c
quantum/process_keycode/process_tap_dance.h | | + | Priyadi Iman Nurcahyo | 96 | quantum/quantum.c
quantum/process_keycode/process_unicode.c
quantum/process_keycode/process_unicode.h | | + | Smilliam | 12 | quantum/quantum.c | | + | TerryMathews | 52 | quantum/quantum.c | | + | Wojciech Siewierski | 12 | quantum/quantum.c | | + | Jordi Orlando | 311 | quantum/rgblight.c | | + | Scott Wilson | 3 | quantum/rgblight.c
quantum/rgblight.h | | +@skullydazed | skullY | 2 | quantum/rgblight.c | | + | JeeBak Kim | 8 | quantum/audio/audio_pwm.c | | + | Vivien Alger | 2 | quantum/keymap_extras/keymap_bepo.h | | + | Jonathan A. Kollasch | 24 | quantum/keymap_extras/keymap_dvorak.h
quantum/keymap_extras/keymap_fr_ch.h
quantum/keymap_extras/keymap_french.h
quantum/keymap_extras/keymap_german.h
quantum/keymap_extras/keymap_german_ch.h
quantum/keymap_extras/keymap_nordic.h
quantum/keymap_extras/keymap_spanish.h
quantum/keymap_extras/keymap_uk.h | | + | Keller-Laminar | 1 | quantum/keymap_extras/keymap_dvorak.h | | + | Vincent Pochet | 96 | quantum/keymap_extras/keymap_fr_ch.h | | + | Kévin Letord | 1 | quantum/keymap_extras/keymap_french.h | | + | Sébastien Pérochon | 76 | quantum/keymap_extras/keymap_french_osx.h | | + | Matthias Schmitt | 100 | quantum/keymap_extras/keymap_german.h
quantum/keymap_extras/keymap_neo2.h | | + | plgruener | 58 | quantum/keymap_extras/keymap_german.h
quantum/keymap_extras/keymap_neo2.h | | + | heartsekai | 100 | quantum/keymap_extras/keymap_german_ch.h | | + | Stephan Bösebeck | 96 | quantum/keymap_extras/keymap_german_osx.h | | + | Andreas Lindé | 2 | quantum/keymap_extras/keymap_nordic.h
quantum/keymap_extras/keymap_norwegian.h | | + | Fernando Mendonca | 3 | quantum/keymap_extras/keymap_nordic.h | | + | joar | 40 | quantum/keymap_extras/keymap_norwegian.h | | + | James 'Twey' Kay | 31 | quantum/keymap_extras/keymap_plover.h | | + | Rubén Díaz-Jorge | 2 | quantum/keymap_extras/keymap_spanish.h | | + | Adam Gausmann | 3 | quantum/process_keycode/process_midi.c | | + | Robert Dale | 6 | quantum/process_keycode/process_music.c | | + | coderkun | 5 | quantum/process_keycode/process_unicode.c | | + | Damien Pollet | 11 | quantum/template/template.c
quantum/template/template.h | | + | Noah Andrews | 1 | quantum/template/template.h | | # Single Author Files From 35737ee07f8453530347eed875635ecd7ca2b78b Mon Sep 17 00:00:00 2001 From: skullydazed Date: Fri, 27 Jan 2017 17:51:29 -0800 Subject: [PATCH 268/517] Updated License Clarification (markdown) --- License-Clarification.md | 92 ++++++++++++++++++++-------------------- 1 file changed, 46 insertions(+), 46 deletions(-) diff --git a/License-Clarification.md b/License-Clarification.md index 5320f63568..d68270cb48 100644 --- a/License-Clarification.md +++ b/License-Clarification.md @@ -6,53 +6,53 @@ As raised in #1038 and other issues, the licensing status of QMK is not clear. I This section documents the people who need to sign off on applying the GPL to one or more of their contributions. -Username | Author | # Lines | Files | Sign Off Date | ----------|--------|---------|-------|---------------| -@Vifon | | 231 | quantum/dynamic_macro.h | | -@wez | | 37 | quantum/dynamic_macro.h | | -@DidierLoiseau | DidierLoiseau | 563 | | quantum/keymap_extras/keymap_canadian_multilingual.h
quantum/keymap_extras/keymap_bepo.h | | -@h-youhei | h-youhei | 62 | quantum/keymap_extras/keymap_jp.h | | -@kuel | kuel | 240 | quantum/keymap_extras/keymap_unicode_cyrillic.h
quantum/keymap_extras/keymap_russian.h | | -@eltang | Eric Tang | 155 | quantum/config_common.h
quantum/matrix.c
quantum/quantum.c
quantum/quantum.h
quantum/rgblight.c
quantum/rgblight.h
quantum/template/config.h | | -@fredizzimo | Fred Sundvik | 112 | quantum/config_common.h
quantum/keycode_config.h
quantum/keymap.h
quantum/keymap_common.c
quantum/keymap_common.c
quantum/matrix.c
quantum/quantum.h
quantum/rgblight.c
quantum/rgblight.h
quantum/api/api_sysex.c | | -@jackhumbert | Jack Humbert | 2841 | quantum/config_common.h
quantum/keycode_config.h
quantum/keymap.h
quantum/keymap_common.c
quantum/light_ws2812.c
quantum/light_ws2812.h
quantum/matrix.c
quantum/quantum.c
quantum/quantum.h
quantum/quantum_keycodes.h
quantum/rgblight.c
quantum/rgblight.h
quantum/api/api_sysex.c
quantum/audio/audio.c
quantum/audio/audio.h
quantum/audio/audio_pwm.c
quantum/audio/audio_pwm.c
quantum/audio/voices.c
quantum/audio/voices.h
quantum/keymap_extras/keymap_colemak.h
quantum/keymap_extras/keymap_dvorak.h
quantum/keymap_extras/keymap_fr_ch.h
quantum/keymap_extras/keymap_french.h
quantum/keymap_extras/keymap_french_osx.h
quantum/keymap_extras/keymap_german.h
quantum/keymap_extras/keymap_german_ch.h
quantum/keymap_extras/keymap_german_osx.h
quantum/keymap_extras/keymap_neo2.h
quantum/keymap_extras/keymap_nordic.h
quantum/keymap_extras/keymap_plover.h
quantum/keymap_extras/keymap_spanish.h
quantum/keymap_extras/keymap_uk.h
quantum/process_keycode/process_midi.c
quantum/process_keycode/process_music.c
quantum/process_keycode/process_tap_dance.c
quantum/process_keycode/process_tap_dance.h
quantum/process_keycode/process_unicode.c
quantum/process_keycode/process_unicode.h
quantum/template/config.h
quantum/template/template.c
quantum/template/template.h | | -@ofples | ofples | 1 | quantum/config_common.h | | -@IBnobody | IBNobody | 1491 | quantum/keycode_config.h
quantum/matrix.c
quantum/quantum.c
quantum/audio/audio.c
quantum/audio/audio.h
quantum/audio/audio_pwm.c
quantum/audio/audio_pwm.c
quantum/audio/voices.c
quantum/audio/voices.h
quantum/template/config.h
quantum/template/template.c | | -@Wilba6582 | Wilba6582 | 330 | quantum/keymap.h
quantum/keymap_common.c
quantum/quantum_keycodes.h | | -@yangliu | Yang Liu | 465 | quantum/light_ws2812.c
quantum/light_ws2812.h
quantum/rgblight.c
quantum/rgblight.h | | -@ezuk | Erez Zukerman | 118 | quantum/matrix.c
quantum/quantum.c
quantum/quantum.h
quantum/quantum_keycodes.h
quantum/rgblight.c
quantum/rgblight.h
quantum/keymap_extras/keymap_colemak.h
quantum/keymap_extras/keymap_nordic.h | +Username | # Lines | Files | Sign Off Date | +---------|---------|-------|---------------| +@Vifon | 231 | quantum/dynamic_macro.h | | +@wez | 37 | quantum/dynamic_macro.h | | +@DidierLoiseau | 563 | | quantum/keymap_extras/keymap_canadian_multilingual.h
quantum/keymap_extras/keymap_bepo.h | | +@h-youhei | 62 | quantum/keymap_extras/keymap_jp.h | | +@kuel | 240 | quantum/keymap_extras/keymap_unicode_cyrillic.h
quantum/keymap_extras/keymap_russian.h | | +@eltang | 155 | quantum/config_common.h
quantum/matrix.c
quantum/quantum.c
quantum/quantum.h
quantum/rgblight.c
quantum/rgblight.h
quantum/template/config.h | | +@fredizzimo | 112 | quantum/config_common.h
quantum/keycode_config.h
quantum/keymap.h
quantum/keymap_common.c
quantum/keymap_common.c
quantum/matrix.c
quantum/quantum.h
quantum/rgblight.c
quantum/rgblight.h
quantum/api/api_sysex.c | | +@jackhumbert | 2841 | quantum/config_common.h
quantum/keycode_config.h
quantum/keymap.h
quantum/keymap_common.c
quantum/light_ws2812.c
quantum/light_ws2812.h
quantum/matrix.c
quantum/quantum.c
quantum/quantum.h
quantum/quantum_keycodes.h
quantum/rgblight.c
quantum/rgblight.h
quantum/api/api_sysex.c
quantum/audio/audio.c
quantum/audio/audio.h
quantum/audio/audio_pwm.c
quantum/audio/audio_pwm.c
quantum/audio/voices.c
quantum/audio/voices.h
quantum/keymap_extras/keymap_colemak.h
quantum/keymap_extras/keymap_dvorak.h
quantum/keymap_extras/keymap_fr_ch.h
quantum/keymap_extras/keymap_french.h
quantum/keymap_extras/keymap_french_osx.h
quantum/keymap_extras/keymap_german.h
quantum/keymap_extras/keymap_german_ch.h
quantum/keymap_extras/keymap_german_osx.h
quantum/keymap_extras/keymap_neo2.h
quantum/keymap_extras/keymap_nordic.h
quantum/keymap_extras/keymap_plover.h
quantum/keymap_extras/keymap_spanish.h
quantum/keymap_extras/keymap_uk.h
quantum/process_keycode/process_midi.c
quantum/process_keycode/process_music.c
quantum/process_keycode/process_tap_dance.c
quantum/process_keycode/process_tap_dance.h
quantum/process_keycode/process_unicode.c
quantum/process_keycode/process_unicode.h
quantum/template/config.h
quantum/template/template.c
quantum/template/template.h | | +@ofples | 1 | quantum/config_common.h | | +@IBnobody | 1491 | quantum/keycode_config.h
quantum/matrix.c
quantum/quantum.c
quantum/audio/audio.c
quantum/audio/audio.h
quantum/audio/audio_pwm.c
quantum/audio/audio_pwm.c
quantum/audio/voices.c
quantum/audio/voices.h
quantum/template/config.h
quantum/template/template.c | | +@Wilba6582 | 330 | quantum/keymap.h
quantum/keymap_common.c
quantum/quantum_keycodes.h | | +@yangliu | 465 | quantum/light_ws2812.c
quantum/light_ws2812.h
quantum/rgblight.c
quantum/rgblight.h | | +@ezuk | 118 | quantum/matrix.c
quantum/quantum.c
quantum/quantum.h
quantum/quantum_keycodes.h
quantum/rgblight.c
quantum/rgblight.h
quantum/keymap_extras/keymap_colemak.h
quantum/keymap_extras/keymap_nordic.h | @yoyoerx | yoyoerx | 6 | quantum/matrix.c
quantum/template/template.c | | - | Gergely Nagy | 380 | quantum/quantum.c
quantum/quantum.h
quantum/process_keycode/process_tap_dance.c
quantum/process_keycode/process_tap_dance.h
quantum/process_keycode/process_unicode.c
quantum/process_keycode/process_unicode.h | | - | Ofer Plesser | 2 | quantum/quantum.c | | - | Pavlos Vinieratos | 33 | quantum/quantum.c
quantum/quantum.h
quantum/process_keycode/process_tap_dance.c
quantum/process_keycode/process_tap_dance.h | | - | Priyadi Iman Nurcahyo | 96 | quantum/quantum.c
quantum/process_keycode/process_unicode.c
quantum/process_keycode/process_unicode.h | | - | Smilliam | 12 | quantum/quantum.c | | - | TerryMathews | 52 | quantum/quantum.c | | - | Wojciech Siewierski | 12 | quantum/quantum.c | | - | Jordi Orlando | 311 | quantum/rgblight.c | | - | Scott Wilson | 3 | quantum/rgblight.c
quantum/rgblight.h | | -@skullydazed | skullY | 2 | quantum/rgblight.c | | - | JeeBak Kim | 8 | quantum/audio/audio_pwm.c | | - | Vivien Alger | 2 | quantum/keymap_extras/keymap_bepo.h | | - | Jonathan A. Kollasch | 24 | quantum/keymap_extras/keymap_dvorak.h
quantum/keymap_extras/keymap_fr_ch.h
quantum/keymap_extras/keymap_french.h
quantum/keymap_extras/keymap_german.h
quantum/keymap_extras/keymap_german_ch.h
quantum/keymap_extras/keymap_nordic.h
quantum/keymap_extras/keymap_spanish.h
quantum/keymap_extras/keymap_uk.h | | - | Keller-Laminar | 1 | quantum/keymap_extras/keymap_dvorak.h | | - | Vincent Pochet | 96 | quantum/keymap_extras/keymap_fr_ch.h | | - | Kévin Letord | 1 | quantum/keymap_extras/keymap_french.h | | - | Sébastien Pérochon | 76 | quantum/keymap_extras/keymap_french_osx.h | | - | Matthias Schmitt | 100 | quantum/keymap_extras/keymap_german.h
quantum/keymap_extras/keymap_neo2.h | | - | plgruener | 58 | quantum/keymap_extras/keymap_german.h
quantum/keymap_extras/keymap_neo2.h | | - | heartsekai | 100 | quantum/keymap_extras/keymap_german_ch.h | | - | Stephan Bösebeck | 96 | quantum/keymap_extras/keymap_german_osx.h | | - | Andreas Lindé | 2 | quantum/keymap_extras/keymap_nordic.h
quantum/keymap_extras/keymap_norwegian.h | | - | Fernando Mendonca | 3 | quantum/keymap_extras/keymap_nordic.h | | - | joar | 40 | quantum/keymap_extras/keymap_norwegian.h | | - | James 'Twey' Kay | 31 | quantum/keymap_extras/keymap_plover.h | | - | Rubén Díaz-Jorge | 2 | quantum/keymap_extras/keymap_spanish.h | | - | Adam Gausmann | 3 | quantum/process_keycode/process_midi.c | | - | Robert Dale | 6 | quantum/process_keycode/process_music.c | | - | coderkun | 5 | quantum/process_keycode/process_unicode.c | | - | Damien Pollet | 11 | quantum/template/template.c
quantum/template/template.h | | - | Noah Andrews | 1 | quantum/template/template.h | | +Gergely Nagy | 380 | quantum/quantum.c
quantum/quantum.h
quantum/process_keycode/process_tap_dance.c
quantum/process_keycode/process_tap_dance.h
quantum/process_keycode/process_unicode.c
quantum/process_keycode/process_unicode.h | | +Ofer Plesser | 2 | quantum/quantum.c | | +Pavlos Vinieratos | 33 | quantum/quantum.c
quantum/quantum.h
quantum/process_keycode/process_tap_dance.c
quantum/process_keycode/process_tap_dance.h | | +Priyadi Iman Nurcahyo | 96 | quantum/quantum.c
quantum/process_keycode/process_unicode.c
quantum/process_keycode/process_unicode.h | | +Smilliam | 12 | quantum/quantum.c | | +TerryMathews | 52 | quantum/quantum.c | | +Wojciech Siewierski | 12 | quantum/quantum.c | | +Jordi Orlando | 311 | quantum/rgblight.c | | +Scott Wilson | 3 | quantum/rgblight.c
quantum/rgblight.h | | +@skullydazed | 2 | quantum/rgblight.c | | +JeeBak Kim | 8 | quantum/audio/audio_pwm.c | | +Vivien Alger | 2 | quantum/keymap_extras/keymap_bepo.h | | +Jonathan A. Kollasch | 24 | quantum/keymap_extras/keymap_dvorak.h
quantum/keymap_extras/keymap_fr_ch.h
quantum/keymap_extras/keymap_french.h
quantum/keymap_extras/keymap_german.h
quantum/keymap_extras/keymap_german_ch.h
quantum/keymap_extras/keymap_nordic.h
quantum/keymap_extras/keymap_spanish.h
quantum/keymap_extras/keymap_uk.h | | +Keller-Laminar | 1 | quantum/keymap_extras/keymap_dvorak.h | | +Vincent Pochet | 96 | quantum/keymap_extras/keymap_fr_ch.h | | +Kévin Letord | 1 | quantum/keymap_extras/keymap_french.h | | +Sébastien Pérochon | 76 | quantum/keymap_extras/keymap_french_osx.h | | +Matthias Schmitt | 100 | quantum/keymap_extras/keymap_german.h
quantum/keymap_extras/keymap_neo2.h | | +plgruener | 58 | quantum/keymap_extras/keymap_german.h
quantum/keymap_extras/keymap_neo2.h | | +heartsekai | 100 | quantum/keymap_extras/keymap_german_ch.h | | +Stephan Bösebeck | 96 | quantum/keymap_extras/keymap_german_osx.h | | +Andreas Lindé | 2 | quantum/keymap_extras/keymap_nordic.h
quantum/keymap_extras/keymap_norwegian.h | | +Fernando Mendonca | 3 | quantum/keymap_extras/keymap_nordic.h | | +joar | 40 | quantum/keymap_extras/keymap_norwegian.h | | +James 'Twey' Kay | 31 | quantum/keymap_extras/keymap_plover.h | | +Rubén Díaz-Jorge | 2 | quantum/keymap_extras/keymap_spanish.h | | +Adam Gausmann | 3 | quantum/process_keycode/process_midi.c | | +Robert Dale | 6 | quantum/process_keycode/process_music.c | | +coderkun | 5 | quantum/process_keycode/process_unicode.c | | +Damien Pollet | 11 | quantum/template/template.c
quantum/template/template.h | | +@NoahAndrews | 1 | quantum/template/template.h | | # Single Author Files From 757a79636b257ec1ad75334917f99dc494dd2049 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Fri, 27 Jan 2017 17:54:14 -0800 Subject: [PATCH 269/517] Updated License Clarification (markdown) --- License-Clarification.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/License-Clarification.md b/License-Clarification.md index d68270cb48..aeb65be884 100644 --- a/License-Clarification.md +++ b/License-Clarification.md @@ -10,7 +10,7 @@ Username | # Lines | Files | Sign Off Date | ---------|---------|-------|---------------| @Vifon | 231 | quantum/dynamic_macro.h | | @wez | 37 | quantum/dynamic_macro.h | | -@DidierLoiseau | 563 | | quantum/keymap_extras/keymap_canadian_multilingual.h
quantum/keymap_extras/keymap_bepo.h | | +@DidierLoiseau | 563 | quantum/keymap_extras/keymap_canadian_multilingual.h
quantum/keymap_extras/keymap_bepo.h | | @h-youhei | 62 | quantum/keymap_extras/keymap_jp.h | | @kuel | 240 | quantum/keymap_extras/keymap_unicode_cyrillic.h
quantum/keymap_extras/keymap_russian.h | | @eltang | 155 | quantum/config_common.h
quantum/matrix.c
quantum/quantum.c
quantum/quantum.h
quantum/rgblight.c
quantum/rgblight.h
quantum/template/config.h | | From 00010b47bcb71acd63b50fc38d75a7e8c48b0895 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Fri, 27 Jan 2017 17:54:48 -0800 Subject: [PATCH 270/517] Updated License Clarification (markdown) --- License-Clarification.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/License-Clarification.md b/License-Clarification.md index aeb65be884..449bd63d24 100644 --- a/License-Clarification.md +++ b/License-Clarification.md @@ -21,7 +21,7 @@ Username | # Lines | Files | Sign Off Date | @Wilba6582 | 330 | quantum/keymap.h
quantum/keymap_common.c
quantum/quantum_keycodes.h | | @yangliu | 465 | quantum/light_ws2812.c
quantum/light_ws2812.h
quantum/rgblight.c
quantum/rgblight.h | | @ezuk | 118 | quantum/matrix.c
quantum/quantum.c
quantum/quantum.h
quantum/quantum_keycodes.h
quantum/rgblight.c
quantum/rgblight.h
quantum/keymap_extras/keymap_colemak.h
quantum/keymap_extras/keymap_nordic.h | -@yoyoerx | yoyoerx | 6 | quantum/matrix.c
quantum/template/template.c | | +@yoyoerx | 6 | quantum/matrix.c
quantum/template/template.c | | Gergely Nagy | 380 | quantum/quantum.c
quantum/quantum.h
quantum/process_keycode/process_tap_dance.c
quantum/process_keycode/process_tap_dance.h
quantum/process_keycode/process_unicode.c
quantum/process_keycode/process_unicode.h | | Ofer Plesser | 2 | quantum/quantum.c | | Pavlos Vinieratos | 33 | quantum/quantum.c
quantum/quantum.h
quantum/process_keycode/process_tap_dance.c
quantum/process_keycode/process_tap_dance.h | | From 143a4ff78f777e88e79f78628f9b3f6c9d5ec328 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Fri, 27 Jan 2017 18:19:12 -0800 Subject: [PATCH 271/517] Updated License Clarification (markdown) --- License-Clarification.md | 57 ++++++++++++++++++++-------------------- 1 file changed, 28 insertions(+), 29 deletions(-) diff --git a/License-Clarification.md b/License-Clarification.md index 449bd63d24..0e79f5b063 100644 --- a/License-Clarification.md +++ b/License-Clarification.md @@ -22,36 +22,35 @@ Username | # Lines | Files | Sign Off Date | @yangliu | 465 | quantum/light_ws2812.c
quantum/light_ws2812.h
quantum/rgblight.c
quantum/rgblight.h | | @ezuk | 118 | quantum/matrix.c
quantum/quantum.c
quantum/quantum.h
quantum/quantum_keycodes.h
quantum/rgblight.c
quantum/rgblight.h
quantum/keymap_extras/keymap_colemak.h
quantum/keymap_extras/keymap_nordic.h | @yoyoerx | 6 | quantum/matrix.c
quantum/template/template.c | | -Gergely Nagy | 380 | quantum/quantum.c
quantum/quantum.h
quantum/process_keycode/process_tap_dance.c
quantum/process_keycode/process_tap_dance.h
quantum/process_keycode/process_unicode.c
quantum/process_keycode/process_unicode.h | | -Ofer Plesser | 2 | quantum/quantum.c | | -Pavlos Vinieratos | 33 | quantum/quantum.c
quantum/quantum.h
quantum/process_keycode/process_tap_dance.c
quantum/process_keycode/process_tap_dance.h | | -Priyadi Iman Nurcahyo | 96 | quantum/quantum.c
quantum/process_keycode/process_unicode.c
quantum/process_keycode/process_unicode.h | | -Smilliam | 12 | quantum/quantum.c | | -TerryMathews | 52 | quantum/quantum.c | | -Wojciech Siewierski | 12 | quantum/quantum.c | | -Jordi Orlando | 311 | quantum/rgblight.c | | -Scott Wilson | 3 | quantum/rgblight.c
quantum/rgblight.h | | +@algernon | 380 | quantum/quantum.c
quantum/quantum.h
quantum/process_keycode/process_tap_dance.c
quantum/process_keycode/process_tap_dance.h
quantum/process_keycode/process_unicode.c
quantum/process_keycode/process_unicode.h | | +@ofpies | 2 | quantum/quantum.c | | +@pvinis | 33 | quantum/quantum.c
quantum/quantum.h
quantum/process_keycode/process_tap_dance.c
quantum/process_keycode/process_tap_dance.h | | +@priyadi | 96 | quantum/quantum.c
quantum/process_keycode/process_unicode.c
quantum/process_keycode/process_unicode.h | | +@Smilliam | 12 | quantum/quantum.c | | +@TerryMathews | 52 | quantum/quantum.c | | +@Vifon | 12 | quantum/quantum.c | | +0xdec | 311 | quantum/rgblight.c | | +@scott-t-wilson | 3 | quantum/rgblight.c
quantum/rgblight.h | | @skullydazed | 2 | quantum/rgblight.c | | -JeeBak Kim | 8 | quantum/audio/audio_pwm.c | | -Vivien Alger | 2 | quantum/keymap_extras/keymap_bepo.h | | -Jonathan A. Kollasch | 24 | quantum/keymap_extras/keymap_dvorak.h
quantum/keymap_extras/keymap_fr_ch.h
quantum/keymap_extras/keymap_french.h
quantum/keymap_extras/keymap_german.h
quantum/keymap_extras/keymap_german_ch.h
quantum/keymap_extras/keymap_nordic.h
quantum/keymap_extras/keymap_spanish.h
quantum/keymap_extras/keymap_uk.h | | -Keller-Laminar | 1 | quantum/keymap_extras/keymap_dvorak.h | | -Vincent Pochet | 96 | quantum/keymap_extras/keymap_fr_ch.h | | -Kévin Letord | 1 | quantum/keymap_extras/keymap_french.h | | -Sébastien Pérochon | 76 | quantum/keymap_extras/keymap_french_osx.h | | -Matthias Schmitt | 100 | quantum/keymap_extras/keymap_german.h
quantum/keymap_extras/keymap_neo2.h | | -plgruener | 58 | quantum/keymap_extras/keymap_german.h
quantum/keymap_extras/keymap_neo2.h | | -heartsekai | 100 | quantum/keymap_extras/keymap_german_ch.h | | -Stephan Bösebeck | 96 | quantum/keymap_extras/keymap_german_osx.h | | -Andreas Lindé | 2 | quantum/keymap_extras/keymap_nordic.h
quantum/keymap_extras/keymap_norwegian.h | | -Fernando Mendonca | 3 | quantum/keymap_extras/keymap_nordic.h | | -joar | 40 | quantum/keymap_extras/keymap_norwegian.h | | -James 'Twey' Kay | 31 | quantum/keymap_extras/keymap_plover.h | | -Rubén Díaz-Jorge | 2 | quantum/keymap_extras/keymap_spanish.h | | -Adam Gausmann | 3 | quantum/process_keycode/process_midi.c | | -Robert Dale | 6 | quantum/process_keycode/process_music.c | | -coderkun | 5 | quantum/process_keycode/process_unicode.c | | -Damien Pollet | 11 | quantum/template/template.c
quantum/template/template.h | | +@jeebak | 8 | quantum/audio/audio_pwm.c | | +@MagicianVivi | 2 | quantum/keymap_extras/keymap_bepo.h | | +@jakllsch | 24 | quantum/keymap_extras/keymap_dvorak.h
quantum/keymap_extras/keymap_fr_ch.h
quantum/keymap_extras/keymap_french.h
quantum/keymap_extras/keymap_german.h
quantum/keymap_extras/keymap_german_ch.h
quantum/keymap_extras/keymap_nordic.h
quantum/keymap_extras/keymap_spanish.h
quantum/keymap_extras/keymap_uk.h | | +@Keller-Laminar | 1 | quantum/keymap_extras/keymap_dvorak.h | | +@vincent-pochet | 96 | quantum/keymap_extras/keymap_fr_ch.h | | +kevin at letord.fr | 1 | quantum/keymap_extras/keymap_french.h | | +@sperochon | 76 | quantum/keymap_extras/keymap_french_osx.h | | +@matzebond | 100 | quantum/keymap_extras/keymap_german.h
quantum/keymap_extras/keymap_neo2.h | | +@plgruener | 58 | quantum/keymap_extras/keymap_german.h
quantum/keymap_extras/keymap_neo2.h | | +@heartsekai | 100 | quantum/keymap_extras/keymap_german_ch.h | | +stephan.bosebeck at holidayinsider.com | 96 | quantum/keymap_extras/keymap_german_osx.h | | +@lindhe | 42 | quantum/keymap_extras/keymap_nordic.h
quantum/keymap_extras/keymap_norwegian.h | | +@fernandodeperto | 3 | quantum/keymap_extras/keymap_nordic.h | | +@Twey | 31 | quantum/keymap_extras/keymap_plover.h | | +@Chipairon | 2 | quantum/keymap_extras/keymap_spanish.h | | +@AGausmann | 3 | quantum/process_keycode/process_midi.c | | +@robertdale | 6 | quantum/process_keycode/process_music.c | | +@coderkun | 5 | quantum/process_keycode/process_unicode.c | | +@cdim | 11 | quantum/template/template.c
quantum/template/template.h | | @NoahAndrews | 1 | quantum/template/template.h | | # Single Author Files From 646d1f83a5dc18209fe199303764a52f7918a62f Mon Sep 17 00:00:00 2001 From: skullydazed Date: Fri, 27 Jan 2017 18:31:23 -0800 Subject: [PATCH 272/517] Updated License Clarification (markdown) --- License-Clarification.md | 62 +++++++++++++++++++--------------------- 1 file changed, 30 insertions(+), 32 deletions(-) diff --git a/License-Clarification.md b/License-Clarification.md index 0e79f5b063..9ca2ecc757 100644 --- a/License-Clarification.md +++ b/License-Clarification.md @@ -8,50 +8,48 @@ This section documents the people who need to sign off on applying the GPL to on Username | # Lines | Files | Sign Off Date | ---------|---------|-------|---------------| -@Vifon | 231 | quantum/dynamic_macro.h | | -@wez | 37 | quantum/dynamic_macro.h | | +@0xdec | 311 | quantum/rgblight.c | | +@AGausmann | 3 | quantum/process_keycode/process_midi.c | | +@algernon | 380 | quantum/quantum.c
quantum/quantum.h
quantum/process_keycode/process_tap_dance.c
quantum/process_keycode/process_tap_dance.h
quantum/process_keycode/process_unicode.c
quantum/process_keycode/process_unicode.h | | +@Chipairon | 2 | quantum/keymap_extras/keymap_spanish.h | | +@coderkun | 5 | quantum/process_keycode/process_unicode.c | | +@cdim | 11 | quantum/template/template.c
quantum/template/template.h | | @DidierLoiseau | 563 | quantum/keymap_extras/keymap_canadian_multilingual.h
quantum/keymap_extras/keymap_bepo.h | | @h-youhei | 62 | quantum/keymap_extras/keymap_jp.h | | -@kuel | 240 | quantum/keymap_extras/keymap_unicode_cyrillic.h
quantum/keymap_extras/keymap_russian.h | | @eltang | 155 | quantum/config_common.h
quantum/matrix.c
quantum/quantum.c
quantum/quantum.h
quantum/rgblight.c
quantum/rgblight.h
quantum/template/config.h | | +@ezuk | 118 | quantum/matrix.c
quantum/quantum.c
quantum/quantum.h
quantum/quantum_keycodes.h
quantum/rgblight.c
quantum/rgblight.h
quantum/keymap_extras/keymap_colemak.h
quantum/keymap_extras/keymap_nordic.h | +@fernandodeperto | 3 | quantum/keymap_extras/keymap_nordic.h | | @fredizzimo | 112 | quantum/config_common.h
quantum/keycode_config.h
quantum/keymap.h
quantum/keymap_common.c
quantum/keymap_common.c
quantum/matrix.c
quantum/quantum.h
quantum/rgblight.c
quantum/rgblight.h
quantum/api/api_sysex.c | | -@jackhumbert | 2841 | quantum/config_common.h
quantum/keycode_config.h
quantum/keymap.h
quantum/keymap_common.c
quantum/light_ws2812.c
quantum/light_ws2812.h
quantum/matrix.c
quantum/quantum.c
quantum/quantum.h
quantum/quantum_keycodes.h
quantum/rgblight.c
quantum/rgblight.h
quantum/api/api_sysex.c
quantum/audio/audio.c
quantum/audio/audio.h
quantum/audio/audio_pwm.c
quantum/audio/audio_pwm.c
quantum/audio/voices.c
quantum/audio/voices.h
quantum/keymap_extras/keymap_colemak.h
quantum/keymap_extras/keymap_dvorak.h
quantum/keymap_extras/keymap_fr_ch.h
quantum/keymap_extras/keymap_french.h
quantum/keymap_extras/keymap_french_osx.h
quantum/keymap_extras/keymap_german.h
quantum/keymap_extras/keymap_german_ch.h
quantum/keymap_extras/keymap_german_osx.h
quantum/keymap_extras/keymap_neo2.h
quantum/keymap_extras/keymap_nordic.h
quantum/keymap_extras/keymap_plover.h
quantum/keymap_extras/keymap_spanish.h
quantum/keymap_extras/keymap_uk.h
quantum/process_keycode/process_midi.c
quantum/process_keycode/process_music.c
quantum/process_keycode/process_tap_dance.c
quantum/process_keycode/process_tap_dance.h
quantum/process_keycode/process_unicode.c
quantum/process_keycode/process_unicode.h
quantum/template/config.h
quantum/template/template.c
quantum/template/template.h | | -@ofples | 1 | quantum/config_common.h | | +@heartsekai | 100 | quantum/keymap_extras/keymap_german_ch.h | | @IBnobody | 1491 | quantum/keycode_config.h
quantum/matrix.c
quantum/quantum.c
quantum/audio/audio.c
quantum/audio/audio.h
quantum/audio/audio_pwm.c
quantum/audio/audio_pwm.c
quantum/audio/voices.c
quantum/audio/voices.h
quantum/template/config.h
quantum/template/template.c | | -@Wilba6582 | 330 | quantum/keymap.h
quantum/keymap_common.c
quantum/quantum_keycodes.h | | -@yangliu | 465 | quantum/light_ws2812.c
quantum/light_ws2812.h
quantum/rgblight.c
quantum/rgblight.h | | -@ezuk | 118 | quantum/matrix.c
quantum/quantum.c
quantum/quantum.h
quantum/quantum_keycodes.h
quantum/rgblight.c
quantum/rgblight.h
quantum/keymap_extras/keymap_colemak.h
quantum/keymap_extras/keymap_nordic.h | -@yoyoerx | 6 | quantum/matrix.c
quantum/template/template.c | | -@algernon | 380 | quantum/quantum.c
quantum/quantum.h
quantum/process_keycode/process_tap_dance.c
quantum/process_keycode/process_tap_dance.h
quantum/process_keycode/process_unicode.c
quantum/process_keycode/process_unicode.h | | -@ofpies | 2 | quantum/quantum.c | | -@pvinis | 33 | quantum/quantum.c
quantum/quantum.h
quantum/process_keycode/process_tap_dance.c
quantum/process_keycode/process_tap_dance.h | | -@priyadi | 96 | quantum/quantum.c
quantum/process_keycode/process_unicode.c
quantum/process_keycode/process_unicode.h | | -@Smilliam | 12 | quantum/quantum.c | | -@TerryMathews | 52 | quantum/quantum.c | | -@Vifon | 12 | quantum/quantum.c | | -0xdec | 311 | quantum/rgblight.c | | -@scott-t-wilson | 3 | quantum/rgblight.c
quantum/rgblight.h | | -@skullydazed | 2 | quantum/rgblight.c | | -@jeebak | 8 | quantum/audio/audio_pwm.c | | -@MagicianVivi | 2 | quantum/keymap_extras/keymap_bepo.h | | +@jackhumbert | 2841 | quantum/config_common.h
quantum/keycode_config.h
quantum/keymap.h
quantum/keymap_common.c
quantum/light_ws2812.c
quantum/light_ws2812.h
quantum/matrix.c
quantum/quantum.c
quantum/quantum.h
quantum/quantum_keycodes.h
quantum/rgblight.c
quantum/rgblight.h
quantum/api/api_sysex.c
quantum/audio/audio.c
quantum/audio/audio.h
quantum/audio/audio_pwm.c
quantum/audio/audio_pwm.c
quantum/audio/voices.c
quantum/audio/voices.h
quantum/keymap_extras/keymap_colemak.h
quantum/keymap_extras/keymap_dvorak.h
quantum/keymap_extras/keymap_fr_ch.h
quantum/keymap_extras/keymap_french.h
quantum/keymap_extras/keymap_french_osx.h
quantum/keymap_extras/keymap_german.h
quantum/keymap_extras/keymap_german_ch.h
quantum/keymap_extras/keymap_german_osx.h
quantum/keymap_extras/keymap_neo2.h
quantum/keymap_extras/keymap_nordic.h
quantum/keymap_extras/keymap_plover.h
quantum/keymap_extras/keymap_spanish.h
quantum/keymap_extras/keymap_uk.h
quantum/process_keycode/process_midi.c
quantum/process_keycode/process_music.c
quantum/process_keycode/process_tap_dance.c
quantum/process_keycode/process_tap_dance.h
quantum/process_keycode/process_unicode.c
quantum/process_keycode/process_unicode.h
quantum/template/config.h
quantum/template/template.c
quantum/template/template.h | | @jakllsch | 24 | quantum/keymap_extras/keymap_dvorak.h
quantum/keymap_extras/keymap_fr_ch.h
quantum/keymap_extras/keymap_french.h
quantum/keymap_extras/keymap_german.h
quantum/keymap_extras/keymap_german_ch.h
quantum/keymap_extras/keymap_nordic.h
quantum/keymap_extras/keymap_spanish.h
quantum/keymap_extras/keymap_uk.h | | +@jeebak | 8 | quantum/audio/audio_pwm.c | | @Keller-Laminar | 1 | quantum/keymap_extras/keymap_dvorak.h | | -@vincent-pochet | 96 | quantum/keymap_extras/keymap_fr_ch.h | | kevin at letord.fr | 1 | quantum/keymap_extras/keymap_french.h | | -@sperochon | 76 | quantum/keymap_extras/keymap_french_osx.h | | +@kuel | 240 | quantum/keymap_extras/keymap_unicode_cyrillic.h
quantum/keymap_extras/keymap_russian.h | | +@lindhe | 42 | quantum/keymap_extras/keymap_nordic.h
quantum/keymap_extras/keymap_norwegian.h | | +@ofpies | 3 | quantum/config_common.h
quantum/quantum.c | | +@MagicianVivi | 2 | quantum/keymap_extras/keymap_bepo.h | | @matzebond | 100 | quantum/keymap_extras/keymap_german.h
quantum/keymap_extras/keymap_neo2.h | | +@NoahAndrews | 1 | quantum/template/template.h | | @plgruener | 58 | quantum/keymap_extras/keymap_german.h
quantum/keymap_extras/keymap_neo2.h | | -@heartsekai | 100 | quantum/keymap_extras/keymap_german_ch.h | | +@priyadi | 96 | quantum/quantum.c
quantum/process_keycode/process_unicode.c
quantum/process_keycode/process_unicode.h | | +@pvinis | 33 | quantum/quantum.c
quantum/quantum.h
quantum/process_keycode/process_tap_dance.c
quantum/process_keycode/process_tap_dance.h | | +@robertdale | 6 | quantum/process_keycode/process_music.c | | +@scott-t-wilson | 3 | quantum/rgblight.c
quantum/rgblight.h | | +@skullydazed | 2 | quantum/rgblight.c | | +@Smilliam | 12 | quantum/quantum.c | | +@sperochon | 76 | quantum/keymap_extras/keymap_french_osx.h | | stephan.bosebeck at holidayinsider.com | 96 | quantum/keymap_extras/keymap_german_osx.h | | -@lindhe | 42 | quantum/keymap_extras/keymap_nordic.h
quantum/keymap_extras/keymap_norwegian.h | | -@fernandodeperto | 3 | quantum/keymap_extras/keymap_nordic.h | | +@TerryMathews | 52 | quantum/quantum.c | | @Twey | 31 | quantum/keymap_extras/keymap_plover.h | | -@Chipairon | 2 | quantum/keymap_extras/keymap_spanish.h | | -@AGausmann | 3 | quantum/process_keycode/process_midi.c | | -@robertdale | 6 | quantum/process_keycode/process_music.c | | -@coderkun | 5 | quantum/process_keycode/process_unicode.c | | -@cdim | 11 | quantum/template/template.c
quantum/template/template.h | | -@NoahAndrews | 1 | quantum/template/template.h | | +@Vifon | 243 | quantum/dynamic_macro.h
quantum/quantum.c | | +@vincent-pochet | 96 | quantum/keymap_extras/keymap_fr_ch.h | | +@wez | 37 | quantum/dynamic_macro.h | | +@Wilba6582 | 330 | quantum/keymap.h
quantum/keymap_common.c
quantum/quantum_keycodes.h | | +@yangliu | 465 | quantum/light_ws2812.c
quantum/light_ws2812.h
quantum/rgblight.c
quantum/rgblight.h | | +@yoyoerx | 6 | quantum/matrix.c
quantum/template/template.c | | # Single Author Files From 128640a7dfec9b0e01eb0931f503346d315fcecd Mon Sep 17 00:00:00 2001 From: skullydazed Date: Fri, 27 Jan 2017 18:34:58 -0800 Subject: [PATCH 273/517] Updated License Clarification (markdown) --- License-Clarification.md | 33 ++++++++++++++++++++------------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/License-Clarification.md b/License-Clarification.md index 9ca2ecc757..75cc567322 100644 --- a/License-Clarification.md +++ b/License-Clarification.md @@ -9,36 +9,23 @@ This section documents the people who need to sign off on applying the GPL to on Username | # Lines | Files | Sign Off Date | ---------|---------|-------|---------------| @0xdec | 311 | quantum/rgblight.c | | -@AGausmann | 3 | quantum/process_keycode/process_midi.c | | @algernon | 380 | quantum/quantum.c
quantum/quantum.h
quantum/process_keycode/process_tap_dance.c
quantum/process_keycode/process_tap_dance.h
quantum/process_keycode/process_unicode.c
quantum/process_keycode/process_unicode.h | | -@Chipairon | 2 | quantum/keymap_extras/keymap_spanish.h | | -@coderkun | 5 | quantum/process_keycode/process_unicode.c | | @cdim | 11 | quantum/template/template.c
quantum/template/template.h | | @DidierLoiseau | 563 | quantum/keymap_extras/keymap_canadian_multilingual.h
quantum/keymap_extras/keymap_bepo.h | | @h-youhei | 62 | quantum/keymap_extras/keymap_jp.h | | @eltang | 155 | quantum/config_common.h
quantum/matrix.c
quantum/quantum.c
quantum/quantum.h
quantum/rgblight.c
quantum/rgblight.h
quantum/template/config.h | | @ezuk | 118 | quantum/matrix.c
quantum/quantum.c
quantum/quantum.h
quantum/quantum_keycodes.h
quantum/rgblight.c
quantum/rgblight.h
quantum/keymap_extras/keymap_colemak.h
quantum/keymap_extras/keymap_nordic.h | -@fernandodeperto | 3 | quantum/keymap_extras/keymap_nordic.h | | @fredizzimo | 112 | quantum/config_common.h
quantum/keycode_config.h
quantum/keymap.h
quantum/keymap_common.c
quantum/keymap_common.c
quantum/matrix.c
quantum/quantum.h
quantum/rgblight.c
quantum/rgblight.h
quantum/api/api_sysex.c | | @heartsekai | 100 | quantum/keymap_extras/keymap_german_ch.h | | @IBnobody | 1491 | quantum/keycode_config.h
quantum/matrix.c
quantum/quantum.c
quantum/audio/audio.c
quantum/audio/audio.h
quantum/audio/audio_pwm.c
quantum/audio/audio_pwm.c
quantum/audio/voices.c
quantum/audio/voices.h
quantum/template/config.h
quantum/template/template.c | | @jackhumbert | 2841 | quantum/config_common.h
quantum/keycode_config.h
quantum/keymap.h
quantum/keymap_common.c
quantum/light_ws2812.c
quantum/light_ws2812.h
quantum/matrix.c
quantum/quantum.c
quantum/quantum.h
quantum/quantum_keycodes.h
quantum/rgblight.c
quantum/rgblight.h
quantum/api/api_sysex.c
quantum/audio/audio.c
quantum/audio/audio.h
quantum/audio/audio_pwm.c
quantum/audio/audio_pwm.c
quantum/audio/voices.c
quantum/audio/voices.h
quantum/keymap_extras/keymap_colemak.h
quantum/keymap_extras/keymap_dvorak.h
quantum/keymap_extras/keymap_fr_ch.h
quantum/keymap_extras/keymap_french.h
quantum/keymap_extras/keymap_french_osx.h
quantum/keymap_extras/keymap_german.h
quantum/keymap_extras/keymap_german_ch.h
quantum/keymap_extras/keymap_german_osx.h
quantum/keymap_extras/keymap_neo2.h
quantum/keymap_extras/keymap_nordic.h
quantum/keymap_extras/keymap_plover.h
quantum/keymap_extras/keymap_spanish.h
quantum/keymap_extras/keymap_uk.h
quantum/process_keycode/process_midi.c
quantum/process_keycode/process_music.c
quantum/process_keycode/process_tap_dance.c
quantum/process_keycode/process_tap_dance.h
quantum/process_keycode/process_unicode.c
quantum/process_keycode/process_unicode.h
quantum/template/config.h
quantum/template/template.c
quantum/template/template.h | | @jakllsch | 24 | quantum/keymap_extras/keymap_dvorak.h
quantum/keymap_extras/keymap_fr_ch.h
quantum/keymap_extras/keymap_french.h
quantum/keymap_extras/keymap_german.h
quantum/keymap_extras/keymap_german_ch.h
quantum/keymap_extras/keymap_nordic.h
quantum/keymap_extras/keymap_spanish.h
quantum/keymap_extras/keymap_uk.h | | -@jeebak | 8 | quantum/audio/audio_pwm.c | | -@Keller-Laminar | 1 | quantum/keymap_extras/keymap_dvorak.h | | -kevin at letord.fr | 1 | quantum/keymap_extras/keymap_french.h | | @kuel | 240 | quantum/keymap_extras/keymap_unicode_cyrillic.h
quantum/keymap_extras/keymap_russian.h | | @lindhe | 42 | quantum/keymap_extras/keymap_nordic.h
quantum/keymap_extras/keymap_norwegian.h | | -@ofpies | 3 | quantum/config_common.h
quantum/quantum.c | | -@MagicianVivi | 2 | quantum/keymap_extras/keymap_bepo.h | | @matzebond | 100 | quantum/keymap_extras/keymap_german.h
quantum/keymap_extras/keymap_neo2.h | | -@NoahAndrews | 1 | quantum/template/template.h | | @plgruener | 58 | quantum/keymap_extras/keymap_german.h
quantum/keymap_extras/keymap_neo2.h | | @priyadi | 96 | quantum/quantum.c
quantum/process_keycode/process_unicode.c
quantum/process_keycode/process_unicode.h | | @pvinis | 33 | quantum/quantum.c
quantum/quantum.h
quantum/process_keycode/process_tap_dance.c
quantum/process_keycode/process_tap_dance.h | | -@robertdale | 6 | quantum/process_keycode/process_music.c | | -@scott-t-wilson | 3 | quantum/rgblight.c
quantum/rgblight.h | | -@skullydazed | 2 | quantum/rgblight.c | | @Smilliam | 12 | quantum/quantum.c | | @sperochon | 76 | quantum/keymap_extras/keymap_french_osx.h | | stephan.bosebeck at holidayinsider.com | 96 | quantum/keymap_extras/keymap_german_osx.h | | @@ -49,6 +36,26 @@ stephan.bosebeck at holidayinsider.com | 96 | quantum/keymap_extras/keymap_germa @wez | 37 | quantum/dynamic_macro.h | | @Wilba6582 | 330 | quantum/keymap.h
quantum/keymap_common.c
quantum/quantum_keycodes.h | | @yangliu | 465 | quantum/light_ws2812.c
quantum/light_ws2812.h
quantum/rgblight.c
quantum/rgblight.h | | + +## Small Contributions + +Smaller contributions that don't need to sign off on the license change. + +Username | # Lines | Files | Sign Off Date | +---------|---------|-------|---------------| +@AGausmann | 3 | quantum/process_keycode/process_midi.c | | +@Chipairon | 2 | quantum/keymap_extras/keymap_spanish.h | | +@coderkun | 5 | quantum/process_keycode/process_unicode.c | | +@fernandodeperto | 3 | quantum/keymap_extras/keymap_nordic.h | | +@jeebak | 8 | quantum/audio/audio_pwm.c | | +@Keller-Laminar | 1 | quantum/keymap_extras/keymap_dvorak.h | | +kevin at letord.fr | 1 | quantum/keymap_extras/keymap_french.h | | +@ofpies | 3 | quantum/config_common.h
quantum/quantum.c | | +@MagicianVivi | 2 | quantum/keymap_extras/keymap_bepo.h | | +@NoahAndrews | 1 | quantum/template/template.h | | +@robertdale | 6 | quantum/process_keycode/process_music.c | | +@scott-t-wilson | 3 | quantum/rgblight.c
quantum/rgblight.h | | +@skullydazed | 2 | quantum/rgblight.c | | @yoyoerx | 6 | quantum/matrix.c
quantum/template/template.c | | # Single Author Files From e364b2267aa47dc592095ab6f3df64b545f24c56 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Fri, 27 Jan 2017 18:35:59 -0800 Subject: [PATCH 274/517] Updated License Clarification (markdown) --- License-Clarification.md | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/License-Clarification.md b/License-Clarification.md index 75cc567322..15384d83d7 100644 --- a/License-Clarification.md +++ b/License-Clarification.md @@ -41,22 +41,22 @@ stephan.bosebeck at holidayinsider.com | 96 | quantum/keymap_extras/keymap_germa Smaller contributions that don't need to sign off on the license change. -Username | # Lines | Files | Sign Off Date | ----------|---------|-------|---------------| -@AGausmann | 3 | quantum/process_keycode/process_midi.c | | -@Chipairon | 2 | quantum/keymap_extras/keymap_spanish.h | | -@coderkun | 5 | quantum/process_keycode/process_unicode.c | | -@fernandodeperto | 3 | quantum/keymap_extras/keymap_nordic.h | | -@jeebak | 8 | quantum/audio/audio_pwm.c | | -@Keller-Laminar | 1 | quantum/keymap_extras/keymap_dvorak.h | | -kevin at letord.fr | 1 | quantum/keymap_extras/keymap_french.h | | -@ofpies | 3 | quantum/config_common.h
quantum/quantum.c | | -@MagicianVivi | 2 | quantum/keymap_extras/keymap_bepo.h | | -@NoahAndrews | 1 | quantum/template/template.h | | -@robertdale | 6 | quantum/process_keycode/process_music.c | | -@scott-t-wilson | 3 | quantum/rgblight.c
quantum/rgblight.h | | -@skullydazed | 2 | quantum/rgblight.c | | -@yoyoerx | 6 | quantum/matrix.c
quantum/template/template.c | | +Username | # Lines | Files | +---------|---------|-------| +@AGausmann | 3 | quantum/process_keycode/process_midi.c | +@Chipairon | 2 | quantum/keymap_extras/keymap_spanish.h | +@coderkun | 5 | quantum/process_keycode/process_unicode.c | +@fernandodeperto | 3 | quantum/keymap_extras/keymap_nordic.h | +@jeebak | 8 | quantum/audio/audio_pwm.c | +@Keller-Laminar | 1 | quantum/keymap_extras/keymap_dvorak.h | +kevin at letord.fr | 1 | quantum/keymap_extras/keymap_french.h | +@ofpies | 3 | quantum/config_common.h
quantum/quantum.c | +@MagicianVivi | 2 | quantum/keymap_extras/keymap_bepo.h | +@NoahAndrews | 1 | quantum/template/template.h | +@robertdale | 6 | quantum/process_keycode/process_music.c | +@scott-t-wilson | 3 | quantum/rgblight.c
quantum/rgblight.h | +@skullydazed | 2 | quantum/rgblight.c | +@yoyoerx | 6 | quantum/matrix.c
quantum/template/template.c | # Single Author Files From 8347993d6b1642db8d985d27806cb0ac96e69e04 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Sat, 28 Jan 2017 22:02:36 -0800 Subject: [PATCH 275/517] Updated License Clarification (markdown) --- License-Clarification.md | 60 ++++++++++++++++++++-------------------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/License-Clarification.md b/License-Clarification.md index 15384d83d7..f20fe9c221 100644 --- a/License-Clarification.md +++ b/License-Clarification.md @@ -6,36 +6,36 @@ As raised in #1038 and other issues, the licensing status of QMK is not clear. I This section documents the people who need to sign off on applying the GPL to one or more of their contributions. -Username | # Lines | Files | Sign Off Date | ----------|---------|-------|---------------| -@0xdec | 311 | quantum/rgblight.c | | -@algernon | 380 | quantum/quantum.c
quantum/quantum.h
quantum/process_keycode/process_tap_dance.c
quantum/process_keycode/process_tap_dance.h
quantum/process_keycode/process_unicode.c
quantum/process_keycode/process_unicode.h | | -@cdim | 11 | quantum/template/template.c
quantum/template/template.h | | -@DidierLoiseau | 563 | quantum/keymap_extras/keymap_canadian_multilingual.h
quantum/keymap_extras/keymap_bepo.h | | -@h-youhei | 62 | quantum/keymap_extras/keymap_jp.h | | -@eltang | 155 | quantum/config_common.h
quantum/matrix.c
quantum/quantum.c
quantum/quantum.h
quantum/rgblight.c
quantum/rgblight.h
quantum/template/config.h | | -@ezuk | 118 | quantum/matrix.c
quantum/quantum.c
quantum/quantum.h
quantum/quantum_keycodes.h
quantum/rgblight.c
quantum/rgblight.h
quantum/keymap_extras/keymap_colemak.h
quantum/keymap_extras/keymap_nordic.h | -@fredizzimo | 112 | quantum/config_common.h
quantum/keycode_config.h
quantum/keymap.h
quantum/keymap_common.c
quantum/keymap_common.c
quantum/matrix.c
quantum/quantum.h
quantum/rgblight.c
quantum/rgblight.h
quantum/api/api_sysex.c | | -@heartsekai | 100 | quantum/keymap_extras/keymap_german_ch.h | | -@IBnobody | 1491 | quantum/keycode_config.h
quantum/matrix.c
quantum/quantum.c
quantum/audio/audio.c
quantum/audio/audio.h
quantum/audio/audio_pwm.c
quantum/audio/audio_pwm.c
quantum/audio/voices.c
quantum/audio/voices.h
quantum/template/config.h
quantum/template/template.c | | -@jackhumbert | 2841 | quantum/config_common.h
quantum/keycode_config.h
quantum/keymap.h
quantum/keymap_common.c
quantum/light_ws2812.c
quantum/light_ws2812.h
quantum/matrix.c
quantum/quantum.c
quantum/quantum.h
quantum/quantum_keycodes.h
quantum/rgblight.c
quantum/rgblight.h
quantum/api/api_sysex.c
quantum/audio/audio.c
quantum/audio/audio.h
quantum/audio/audio_pwm.c
quantum/audio/audio_pwm.c
quantum/audio/voices.c
quantum/audio/voices.h
quantum/keymap_extras/keymap_colemak.h
quantum/keymap_extras/keymap_dvorak.h
quantum/keymap_extras/keymap_fr_ch.h
quantum/keymap_extras/keymap_french.h
quantum/keymap_extras/keymap_french_osx.h
quantum/keymap_extras/keymap_german.h
quantum/keymap_extras/keymap_german_ch.h
quantum/keymap_extras/keymap_german_osx.h
quantum/keymap_extras/keymap_neo2.h
quantum/keymap_extras/keymap_nordic.h
quantum/keymap_extras/keymap_plover.h
quantum/keymap_extras/keymap_spanish.h
quantum/keymap_extras/keymap_uk.h
quantum/process_keycode/process_midi.c
quantum/process_keycode/process_music.c
quantum/process_keycode/process_tap_dance.c
quantum/process_keycode/process_tap_dance.h
quantum/process_keycode/process_unicode.c
quantum/process_keycode/process_unicode.h
quantum/template/config.h
quantum/template/template.c
quantum/template/template.h | | -@jakllsch | 24 | quantum/keymap_extras/keymap_dvorak.h
quantum/keymap_extras/keymap_fr_ch.h
quantum/keymap_extras/keymap_french.h
quantum/keymap_extras/keymap_german.h
quantum/keymap_extras/keymap_german_ch.h
quantum/keymap_extras/keymap_nordic.h
quantum/keymap_extras/keymap_spanish.h
quantum/keymap_extras/keymap_uk.h | | -@kuel | 240 | quantum/keymap_extras/keymap_unicode_cyrillic.h
quantum/keymap_extras/keymap_russian.h | | -@lindhe | 42 | quantum/keymap_extras/keymap_nordic.h
quantum/keymap_extras/keymap_norwegian.h | | -@matzebond | 100 | quantum/keymap_extras/keymap_german.h
quantum/keymap_extras/keymap_neo2.h | | -@plgruener | 58 | quantum/keymap_extras/keymap_german.h
quantum/keymap_extras/keymap_neo2.h | | -@priyadi | 96 | quantum/quantum.c
quantum/process_keycode/process_unicode.c
quantum/process_keycode/process_unicode.h | | -@pvinis | 33 | quantum/quantum.c
quantum/quantum.h
quantum/process_keycode/process_tap_dance.c
quantum/process_keycode/process_tap_dance.h | | -@Smilliam | 12 | quantum/quantum.c | | -@sperochon | 76 | quantum/keymap_extras/keymap_french_osx.h | | -stephan.bosebeck at holidayinsider.com | 96 | quantum/keymap_extras/keymap_german_osx.h | | -@TerryMathews | 52 | quantum/quantum.c | | -@Twey | 31 | quantum/keymap_extras/keymap_plover.h | | -@Vifon | 243 | quantum/dynamic_macro.h
quantum/quantum.c | | -@vincent-pochet | 96 | quantum/keymap_extras/keymap_fr_ch.h | | -@wez | 37 | quantum/dynamic_macro.h | | -@Wilba6582 | 330 | quantum/keymap.h
quantum/keymap_common.c
quantum/quantum_keycodes.h | | -@yangliu | 465 | quantum/light_ws2812.c
quantum/light_ws2812.h
quantum/rgblight.c
quantum/rgblight.h | | +Username | Files | Sign Off Date | +---------|-------|---------------| +@0xdec | quantum/rgblight.c | | +@algernon | quantum/quantum.c
quantum/quantum.h
quantum/process_keycode/process_tap_dance.c
quantum/process_keycode/process_tap_dance.h
quantum/process_keycode/process_unicode.c
quantum/process_keycode/process_unicode.h | | +@cdim | quantum/template/template.c
quantum/template/template.h | | +@DidierLoiseau | quantum/keymap_extras/keymap_canadian_multilingual.h
quantum/keymap_extras/keymap_bepo.h | | +@h-youhei | quantum/keymap_extras/keymap_jp.h | | +@eltang | quantum/config_common.h
quantum/matrix.c
quantum/quantum.c
quantum/quantum.h
quantum/rgblight.c
quantum/rgblight.h
quantum/template/config.h | | +@ezuk | quantum/matrix.c
quantum/quantum.c
quantum/quantum.h
quantum/quantum_keycodes.h
quantum/rgblight.c
quantum/rgblight.h
quantum/keymap_extras/keymap_colemak.h
quantum/keymap_extras/keymap_nordic.h | +@fredizzimo | quantum/config_common.h
quantum/keycode_config.h
quantum/keymap.h
quantum/keymap_common.c
quantum/keymap_common.c
quantum/matrix.c
quantum/quantum.h
quantum/rgblight.c
quantum/rgblight.h
quantum/api/api_sysex.c | | +@heartsekai | quantum/keymap_extras/keymap_german_ch.h | | +@IBnobody | quantum/keycode_config.h
quantum/matrix.c
quantum/quantum.c
quantum/audio/audio.c
quantum/audio/audio.h
quantum/audio/audio_pwm.c
quantum/audio/audio_pwm.c
quantum/audio/voices.c
quantum/audio/voices.h
quantum/template/config.h
quantum/template/template.c | | +@jackhumbert | quantum/config_common.h
quantum/keycode_config.h
quantum/keymap.h
quantum/keymap_common.c
quantum/light_ws2812.c
quantum/light_ws2812.h
quantum/matrix.c
quantum/quantum.c
quantum/quantum.h
quantum/quantum_keycodes.h
quantum/rgblight.c
quantum/rgblight.h
quantum/api/api_sysex.c
quantum/audio/audio.c
quantum/audio/audio.h
quantum/audio/audio_pwm.c
quantum/audio/audio_pwm.c
quantum/audio/voices.c
quantum/audio/voices.h
quantum/keymap_extras/keymap_colemak.h
quantum/keymap_extras/keymap_dvorak.h
quantum/keymap_extras/keymap_fr_ch.h
quantum/keymap_extras/keymap_french.h
quantum/keymap_extras/keymap_french_osx.h
quantum/keymap_extras/keymap_german.h
quantum/keymap_extras/keymap_german_ch.h
quantum/keymap_extras/keymap_german_osx.h
quantum/keymap_extras/keymap_neo2.h
quantum/keymap_extras/keymap_nordic.h
quantum/keymap_extras/keymap_plover.h
quantum/keymap_extras/keymap_spanish.h
quantum/keymap_extras/keymap_uk.h
quantum/process_keycode/process_midi.c
quantum/process_keycode/process_music.c
quantum/process_keycode/process_tap_dance.c
quantum/process_keycode/process_tap_dance.h
quantum/process_keycode/process_unicode.c
quantum/process_keycode/process_unicode.h
quantum/template/config.h
quantum/template/template.c
quantum/template/template.h | | +@jakllsch | quantum/keymap_extras/keymap_dvorak.h
quantum/keymap_extras/keymap_fr_ch.h
quantum/keymap_extras/keymap_french.h
quantum/keymap_extras/keymap_german.h
quantum/keymap_extras/keymap_german_ch.h
quantum/keymap_extras/keymap_nordic.h
quantum/keymap_extras/keymap_spanish.h
quantum/keymap_extras/keymap_uk.h | | +@kuel | quantum/keymap_extras/keymap_unicode_cyrillic.h
quantum/keymap_extras/keymap_russian.h | | +@lindhe | quantum/keymap_extras/keymap_nordic.h
quantum/keymap_extras/keymap_norwegian.h | | +@matzebond | quantum/keymap_extras/keymap_german.h
quantum/keymap_extras/keymap_neo2.h | | +@plgruener | quantum/keymap_extras/keymap_german.h
quantum/keymap_extras/keymap_neo2.h | | +@priyadi | quantum/quantum.c
quantum/process_keycode/process_unicode.c
quantum/process_keycode/process_unicode.h | | +@pvinis | quantum/quantum.c
quantum/quantum.h
quantum/process_keycode/process_tap_dance.c
quantum/process_keycode/process_tap_dance.h | | +@Smilliam | quantum/quantum.c | | +@sperochon | quantum/keymap_extras/keymap_french_osx.h | | +stephan.bosebeck at holidayinsider.com | quantum/keymap_extras/keymap_german_osx.h | | +@TerryMathews | quantum/quantum.c | | +@Twey | quantum/keymap_extras/keymap_plover.h | | +@Vifon | quantum/dynamic_macro.h
quantum/quantum.c | | +@vincent-pochet | quantum/keymap_extras/keymap_fr_ch.h | | +@wez | quantum/dynamic_macro.h | | +@Wilba6582 | quantum/keymap.h
quantum/keymap_common.c
quantum/quantum_keycodes.h | | +@yangliu | quantum/light_ws2812.c
quantum/light_ws2812.h
quantum/rgblight.c
quantum/rgblight.h | | ## Small Contributions From d5de7e20fd23a444ab8c02dfc812643c08632a63 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Sat, 28 Jan 2017 22:04:05 -0800 Subject: [PATCH 276/517] Updated License Clarification (markdown) --- License-Clarification.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/License-Clarification.md b/License-Clarification.md index f20fe9c221..7741c30e57 100644 --- a/License-Clarification.md +++ b/License-Clarification.md @@ -28,7 +28,7 @@ Username | Files | Sign Off Date | @pvinis | quantum/quantum.c
quantum/quantum.h
quantum/process_keycode/process_tap_dance.c
quantum/process_keycode/process_tap_dance.h | | @Smilliam | quantum/quantum.c | | @sperochon | quantum/keymap_extras/keymap_french_osx.h | | -stephan.bosebeck at holidayinsider.com | quantum/keymap_extras/keymap_german_osx.h | | +stephan . bosebeck at holidayinsider.com | quantum/keymap_extras/keymap_german_osx.h | | @TerryMathews | quantum/quantum.c | | @Twey | quantum/keymap_extras/keymap_plover.h | | @Vifon | quantum/dynamic_macro.h
quantum/quantum.c | | From 85675441746955e15232139fe6c6e4630bba7566 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Sat, 28 Jan 2017 22:07:07 -0800 Subject: [PATCH 277/517] Updated License Clarification (markdown) --- License-Clarification.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/License-Clarification.md b/License-Clarification.md index 7741c30e57..543824d8c2 100644 --- a/License-Clarification.md +++ b/License-Clarification.md @@ -12,10 +12,10 @@ Username | Files | Sign Off Date | @algernon | quantum/quantum.c
quantum/quantum.h
quantum/process_keycode/process_tap_dance.c
quantum/process_keycode/process_tap_dance.h
quantum/process_keycode/process_unicode.c
quantum/process_keycode/process_unicode.h | | @cdim | quantum/template/template.c
quantum/template/template.h | | @DidierLoiseau | quantum/keymap_extras/keymap_canadian_multilingual.h
quantum/keymap_extras/keymap_bepo.h | | -@h-youhei | quantum/keymap_extras/keymap_jp.h | | @eltang | quantum/config_common.h
quantum/matrix.c
quantum/quantum.c
quantum/quantum.h
quantum/rgblight.c
quantum/rgblight.h
quantum/template/config.h | | @ezuk | quantum/matrix.c
quantum/quantum.c
quantum/quantum.h
quantum/quantum_keycodes.h
quantum/rgblight.c
quantum/rgblight.h
quantum/keymap_extras/keymap_colemak.h
quantum/keymap_extras/keymap_nordic.h | @fredizzimo | quantum/config_common.h
quantum/keycode_config.h
quantum/keymap.h
quantum/keymap_common.c
quantum/keymap_common.c
quantum/matrix.c
quantum/quantum.h
quantum/rgblight.c
quantum/rgblight.h
quantum/api/api_sysex.c | | +@h-youhei | quantum/keymap_extras/keymap_jp.h | 2017 Jan 28 | @heartsekai | quantum/keymap_extras/keymap_german_ch.h | | @IBnobody | quantum/keycode_config.h
quantum/matrix.c
quantum/quantum.c
quantum/audio/audio.c
quantum/audio/audio.h
quantum/audio/audio_pwm.c
quantum/audio/audio_pwm.c
quantum/audio/voices.c
quantum/audio/voices.h
quantum/template/config.h
quantum/template/template.c | | @jackhumbert | quantum/config_common.h
quantum/keycode_config.h
quantum/keymap.h
quantum/keymap_common.c
quantum/light_ws2812.c
quantum/light_ws2812.h
quantum/matrix.c
quantum/quantum.c
quantum/quantum.h
quantum/quantum_keycodes.h
quantum/rgblight.c
quantum/rgblight.h
quantum/api/api_sysex.c
quantum/audio/audio.c
quantum/audio/audio.h
quantum/audio/audio_pwm.c
quantum/audio/audio_pwm.c
quantum/audio/voices.c
quantum/audio/voices.h
quantum/keymap_extras/keymap_colemak.h
quantum/keymap_extras/keymap_dvorak.h
quantum/keymap_extras/keymap_fr_ch.h
quantum/keymap_extras/keymap_french.h
quantum/keymap_extras/keymap_french_osx.h
quantum/keymap_extras/keymap_german.h
quantum/keymap_extras/keymap_german_ch.h
quantum/keymap_extras/keymap_german_osx.h
quantum/keymap_extras/keymap_neo2.h
quantum/keymap_extras/keymap_nordic.h
quantum/keymap_extras/keymap_plover.h
quantum/keymap_extras/keymap_spanish.h
quantum/keymap_extras/keymap_uk.h
quantum/process_keycode/process_midi.c
quantum/process_keycode/process_music.c
quantum/process_keycode/process_tap_dance.c
quantum/process_keycode/process_tap_dance.h
quantum/process_keycode/process_unicode.c
quantum/process_keycode/process_unicode.h
quantum/template/config.h
quantum/template/template.c
quantum/template/template.h | | From 6b7e4a9bc9657c131b66780f926db3d12a94fda3 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Sat, 28 Jan 2017 22:08:15 -0800 Subject: [PATCH 278/517] Updated License Clarification (markdown) --- License-Clarification.md | 1268 -------------------------------------- 1 file changed, 1268 deletions(-) diff --git a/License-Clarification.md b/License-Clarification.md index 543824d8c2..926669fd86 100644 --- a/License-Clarification.md +++ b/License-Clarification.md @@ -37,1271 +37,3 @@ stephan . bosebeck at holidayinsider.com | quantum/keymap_extras/keymap_german_o @Wilba6582 | quantum/keymap.h
quantum/keymap_common.c
quantum/quantum_keycodes.h | | @yangliu | quantum/light_ws2812.c
quantum/light_ws2812.h
quantum/rgblight.c
quantum/rgblight.h | | -## Small Contributions - -Smaller contributions that don't need to sign off on the license change. - -Username | # Lines | Files | ----------|---------|-------| -@AGausmann | 3 | quantum/process_keycode/process_midi.c | -@Chipairon | 2 | quantum/keymap_extras/keymap_spanish.h | -@coderkun | 5 | quantum/process_keycode/process_unicode.c | -@fernandodeperto | 3 | quantum/keymap_extras/keymap_nordic.h | -@jeebak | 8 | quantum/audio/audio_pwm.c | -@Keller-Laminar | 1 | quantum/keymap_extras/keymap_dvorak.h | -kevin at letord.fr | 1 | quantum/keymap_extras/keymap_french.h | -@ofpies | 3 | quantum/config_common.h
quantum/quantum.c | -@MagicianVivi | 2 | quantum/keymap_extras/keymap_bepo.h | -@NoahAndrews | 1 | quantum/template/template.h | -@robertdale | 6 | quantum/process_keycode/process_music.c | -@scott-t-wilson | 3 | quantum/rgblight.c
quantum/rgblight.h | -@skullydazed | 2 | quantum/rgblight.c | -@yoyoerx | 6 | quantum/matrix.c
quantum/template/template.c | - -# Single Author Files - -These are the single author files that still need to have their license clarified. - -* quantum/dynamic_macro.h: @Vifon -* quantum/pincontrol.h: @wez -* quantum/keymap_extras/keymap_canadian_multilingual.h: @DidierLoiseau -* quantum/keymap_extras/keymap_jp.h: @h-youhei -* quantum/keymap_extras/keymap_unicode_cyrillic.h: @kuel -* quantum/keymap_extras/keymap_russian.h: @kuel - -# Multi Author Files - -Each file listed below has more than one author and needs to have copyright resolved. The number of lines contributed by each author is shown as determined by: - -```git blame | cut -f 2 -d '(' | cut -f 1 -d '2' | sort | uniq -c | sed 's/^ */* /'``` - -## quantum/config_common.h - -* 24 Eric Tang -* 2 Fred Sundvik -* 58 Jack Humbert -* 1 ofples - -## quantum/keycode_config.h - -* 5 IBNobody -* 20 Jack Humbert -* 1 fredizzimo - -## quantum/keymap.h - -* 39 Jack Humbert -* 6 Wilba6582 -* 8 fredizzimo - -## quantum/keymap_common.c - -* 1 Fred Sundvik -* 162 Jack Humbert -* 11 Wilba6582 -* 3 fredizzimo - -## quantum/light_ws2812.c - -* 163 Jack Humbert -* 168 Yang Liu - -## quantum/light_ws2812.h - -* 11 Jack Humbert -* 70 Yang Liu - -## quantum/matrix.c - -* 3 Erez Zukerman -* 15 Eric Tang -* 239 IBNobody -* 152 Jack Humbert -* 2 fredizzimo -* 2 yoyoerx - -## quantum/quantum.c - -* 38 Erez Zukerman -* 96 Eric Tang -* 49 Gergely Nagy -* 68 IBNobody -* 4 Jack & Erez -* 561 Jack Humbert -* 2 Ofer Plesser -* 14 Pavlos Vinieratos -* 2 Priyadi Iman Nurcahyo -* 12 Smilliam -* 52 TerryMathews -* 12 Wojciech Siewierski - -## quantum/quantum.h - -* 23 Erez Zukerman -* 4 Eric Tang -* 1 Fred Sundvik -* 3 Gergely Nagy -* 86 Jack Humbert -* 2 Pavlos Vinieratos -* 5 fredizzimo - -## quantum/quantum_keycodes.h - -* 2 Erez Zukerman -* 2 Jack Humbert -* 313 Wilba6582 - -## quantum/rgblight.c - -* 13 Erez Zukerman -* 5 Eric Tang -* 39 Fred Sundvik -* 101 Jack Humbert -* 311 Jordi Orlando -* 1 Scott Wilson -* 147 Yang Liu -* 2 skullY - -## quantum/rgblight.h - -* 3 Erez Zukerman -* 2 Eric Tang -* 6 Fred Sundvik -* 12 Jack Humbert -* 2 Scott Wilson -* 80 Yang Liu - -## quantum/api/api_sysex.c - -* 44 Fred Sundvik -* 13 Jack Humbert - -## quantum/audio/audio.c - -* 318 IBNobody -* 164 Jack Humbert - -## quantum/audio/audio.h - -* 15 IBNobody -* 76 Jack Humbert - -## quantum/audio/audio_pwm.c - -* 642 IBNobody -* 1 Jack Humbert - -## quantum/audio/song_list.h - -* 101 IBNobody -* 16 Jack Humbert -* 8 JeeBak Kim - -## quantum/audio/voices.c - -* 24 IBNobody -* 256 Jack Humbert - -## quantum/audio/voices.h - -* 3 IBNobody -* 32 Jack Humbert - -## quantum/keymap_extras/keymap_bepo.h - -* 308 Didier Loiseau -* 1 Jack Humbert -* 2 Vivien Alger - -## quantum/keymap_extras/keymap_colemak.h - -* 31 Erez Zukerman -* 44 Jack Humbert - -## quantum/keymap_extras/keymap_dvorak.h - -* 69 Jack Humbert -* 15 Jonathan A. Kollasch -* 1 Keller-Laminar - -## quantum/keymap_extras/keymap_fr_ch.h - -* 1 Jack Humbert -* 1 Jonathan A. Kollasch -* 96 Vincent Pochet - -## quantum/keymap_extras/keymap_french.h - -* 80 Jack Humbert -* 2 Jonathan A. Kollasch -* 1 Kévin Letord - -## quantum/keymap_extras/keymap_french_osx.h - -* 1 Jack Humbert -* 76 Sébastien Pérochon - -## quantum/keymap_extras/keymap_german.h - -* 1 Jack Humbert -* 1 Jonathan A. Kollasch -* 58 Matthias Schmitt -* 39 plgruener - -## quantum/keymap_extras/keymap_german_ch.h - -* 1 Jack Humbert -* 1 Jonathan A. Kollasch -* 100 heartsekai - -## quantum/keymap_extras/keymap_german_osx.h - -* 1 Jack Humbert -* 96 Stephan Bösebeck - -## quantum/keymap_extras/keymap_neo2.h - -* 2 Jack Humbert -* 42 Matthias Schmitt -* 19 plgruener - -## quantum/keymap_extras/keymap_nordic.h - -* 1 Andreas Lindhé -* 1 Erez Zukerman -* 3 Fernando Mendonca -* 53 Jack Humbert -* 1 Jonathan A. Kollasch - -## quantum/keymap_extras/keymap_norwegian.h - -* 1 Andreas Lindhé -* 40 joar - -## quantum/keymap_extras/keymap_plover.h - -* 1 Jack Humbert -* 31 James ‘Twey’ Kay - -## quantum/keymap_extras/keymap_spanish.h - -* 59 Jack Humbert -* 1 Jonathan A. Kollasch -* 2 Rubén Díaz-Jorge - -## quantum/keymap_extras/keymap_uk.h - -* 34 Jack Humbert -* 2 Jonathan A. Kollasch - -## quantum/process_keycode/process_midi.c - -* 3 Adam Gausmann -* 65 Jack Humbert - -## quantum/process_keycode/process_music.c - -* 180 Jack Humbert -* 6 Robert Dale - -## quantum/process_keycode/process_tap_dance.c - -* 90 Gergely Nagy -* 38 Jack Humbert -* 8 Pavlos Vinieratos - -## quantum/process_keycode/process_tap_dance.h - -* 22 Gergely Nagy -* 41 Jack Humbert -* 9 Pavlos Vinieratos - -## quantum/process_keycode/process_unicode.c - -* 176 Gergely Nagy -* 24 Jack Humbert -* 84 Priyadi Iman Nurcahyo -* 5 coderkun - -## quantum/process_keycode/process_unicode.h - -* 40 Gergely Nagy -* 117 Jack Humbert -* 10 Priyadi Iman Nurcahyo - -## quantum/template/config.h - -* 9 Eric Tang -* 78 IBNobody -* 75 Jack Humbert - -## quantum/template/template.c - -* 9 Damien Pollet -* 7 IBNobody -* 8 Jack Humbert -* 4 yoyoerx - -## quantum/template/template.h - -* 2 Damien Pollet -* 16 Jack Humbert -* 1 Noah Andrews - -# All Single Author Files - -These files have only a single author and so clarifying licensing should be pretty straightforward. - -* quantum/analog.c: Jack Humbert -* quantum/analog.h: Jack Humbert -* quantum/api.h: Jack Humbert -* quantum/keycode_config.c: Jack Humbert -* quantum/pincontrol.h: Wez Furlong -* quantum/api/api_sysex.h: Jack Humbert -* quantum/audio/luts.c: IBNobody -* quantum/audio/luts.h: IBNobody -* quantum/audio/musical_notes.h: Jack Humbert -* quantum/audio/wave.h: Jack Humbert -* quantum/keymap_extras/keymap_br_abnt2.h: Potiguar Faga -* quantum/keymap_extras/keymap_dvp.h: Artyom Mironov -* quantum/keymap_extras/keymap_jp.h: h-youhei -* quantum/keymap_extras/keymap_unicode_cyrillic.h: kuel -* quantum/process_keycode/process_chording.c: Jack Humbert -* quantum/process_keycode/process_chording.h: Jack Humbert -* quantum/process_keycode/process_leader.c: Jack Humbert -* quantum/process_keycode/process_leader.h: Jack Humbert -* quantum/process_keycode/process_midi.h: Jack Humbert -* quantum/process_keycode/process_music.h: Jack Humbert -* quantum/process_keycode/process_printer.c: Jack Humbert -* quantum/process_keycode/process_printer.h: Jack Humbert -* quantum/process_keycode/process_printer_bb.c: Jack Humbert -* quantum/serial_link/LICENSE: Fred Sundvik -* quantum/serial_link/protocol/frame_router.c: Fred Sundvik -* quantum/serial_link/protocol/frame_router.h: Fred Sundvik -* quantum/serial_link/protocol/frame_validator.c: Fred Sundvik -* quantum/serial_link/protocol/frame_validator.h: Fred Sundvik -* quantum/serial_link/protocol/physical.h: Fred Sundvik -* quantum/serial_link/protocol/triple_buffered_object.c: Fred Sundvik -* quantum/serial_link/protocol/triple_buffered_object.h: Fred Sundvik -* quantum/serial_link/system/serial_link.c: Fred Sundvik -* quantum/serial_link/system/serial_link.h: Fred Sundvik -* quantum/serial_link/tests/byte_stuffer_tests.cpp: Fred Sundvik -* quantum/serial_link/tests/frame_router_tests.cpp: Fred Sundvik -* quantum/serial_link/tests/frame_validator_tests.cpp: Fred Sundvik -* quantum/serial_link/tests/Makefile: Fred Sundvik -* quantum/serial_link/tests/transport_tests.cpp: Fred Sundvik -* quantum/serial_link/tests/triple_buffered_object_tests.cpp: Fred Sundvik -* quantum/template/rules.mk: Fred Sundvik -* quantum/template/keymaps/default/config.h: Jack Humbert -* quantum/template/keymaps/default/Makefile: Jack Humbert -* quantum/template/keymaps/default/readme.md: Jack Humbert -* quantum/tools/eeprom_reset.hex: Jack Humbert -* quantum/tools/readme.md: Jack Humbert -* quantum/visualizer/lcd_backlight.c: Fred Sundvik -* quantum/visualizer/lcd_backlight.h: Fred Sundvik -* quantum/visualizer/led_test.h: Fred Sundvik -* quantum/visualizer/LICENSE.md: Fred Sundvik -* quantum/visualizer/readme.md: Fred Sundvik -* quantum/visualizer/example_integration/callbacks.c: Fred Sundvik -* quantum/visualizer/example_integration/gfxconf.h: Fred Sundvik -* quantum/visualizer/example_integration/lcd_backlight_hal.c: Fred Sundvik -* quantum/visualizer/example_integration/visualizer_user.c: Fred Sundvik - -# All Files - -## quantum/analog.c - -* 46e7fb2d3ccd699c0a1b1fd9d02860b1f2a44141 Mon Oct 26 14:49:46 2015 -0400 Jack Humbert - -## quantum/analog.h - -* 46e7fb2d3ccd699c0a1b1fd9d02860b1f2a44141 Mon Oct 26 14:49:46 2015 -0400 Jack Humbert - -## quantum/api.c - -* 7edac212c8ed8442bf4207e70dc8194631b2bf27 Sat Nov 26 15:37:46 2016 -0500 Jack Humbert -* 06c64bbff3e228df542149acde64eadaf59b9b0f Mon Dec 19 11:18:18 2016 -0500 Jack Humbert - -## quantum/api.h - -* 7edac212c8ed8442bf4207e70dc8194631b2bf27 Sat Nov 26 15:37:46 2016 -0500 Jack Humbert - -## quantum/config_common.h - -* 35a81f5b8b081e1607a7c04489b01f551c3213cc Mon Oct 26 16:32:37 2015 -0400 Jack Humbert -* aaa758f1d3f97dda39879f2b055ad2da9680adfe Mon May 23 20:42:21 2016 -0700 Eric Tang -* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 Jack Humbert -* 705c775a4a433249081321cea0c2def2627817dc Sun Aug 21 22:05:55 2016 -0500 IBNobody -* 936a26d04ffa12801031c058f27e221174e3fabd Thu Aug 25 00:15:41 2016 -0500 IBNobody -* 6390033e8688550826a4bd3004a2e76568600657 Mon Nov 21 20:14:16 2016 -0500 Jack Humbert -* 03d6e165bb0baf9d0093250d3c3c0771290df4d6 Fri Nov 25 09:17:40 2016 +0200 ofples -* 0c9d66eb59add717397ba83d508577073412ce86 Fri Nov 25 09:20:41 2016 +0200 ofples -* de1df639535817e17f1c01f07e7a629cec478526 Sat Nov 26 13:55:41 2016 +0700 Priyadi Iman Nurcahyo -* 17acde94ee2695ab69ea336742c904d649dce17c Sat Nov 26 14:02:38 2016 +0700 Priyadi Iman Nurcahyo -* d9d67e7b7686fdcbc7269a76d2a54c42325bdd03 Sat Nov 26 15:26:02 2016 +0700 Priyadi Iman Nurcahyo -* f2214ce1cb6cfe7a0efabe870a2c00fb8451ee80 Sat Nov 26 15:57:48 2016 +0700 Priyadi Iman Nurcahyo -* 6e0f994950435aa5867e7b7ce780186d881d74ac Mon Nov 28 23:51:07 2016 -0500 Jack Humbert -* dd685eceb2045371d38f24d454f1ab08ca7416f4 Thu Dec 29 12:13:30 2016 +0200 Fred Sundvik - -## quantum/dynamic_macro.h - -* 39e8e61258b51a2c33a94dd877e983f0b1dae0c1 Thu Aug 18 01:37:13 2016 +0200 Wojciech Siewierski -* 70f32842e5d94f14d05c1f9adcb1b1144a25a132 Sun Oct 9 12:52:39 2016 +0200 Wojciech Siewierski - -## quantum/keycode_config.c - -* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert - -## quantum/keycode_config.h - -* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert -* 4d4f7684e684bec319f166121463a88cd4a62703 Fri Jul 1 17:04:53 2016 +0300 fredizzimo -* 558f3ec1eb325caf706efc15e2fab26121aba442 Tue Sep 6 23:19:01 2016 -0500 IBNobody - -## quantum/keymap.h - -* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert -* 76076db72545bbb649f11394a12721f61579527f Mon Jun 20 22:36:36 2016 -0400 Jack & Erez -* 1a0bac8bccf0e156d2f3c5f14a7214f9677b6370 Tue Jun 21 17:42:29 2016 -0400 Jack Humbert -* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 Jack Humbert -* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 Jack Humbert -* 4d4f7684e684bec319f166121463a88cd4a62703 Fri Jul 1 17:04:53 2016 +0300 fredizzimo -* 50c686587ed49d8079ba1b11d45ceb6a55d6cd4b Thu Jul 7 23:34:33 2016 -0400 TerryMathews -* e692ebf86a962e90c51302e7b17a953ea2858f79 Fri Aug 12 20:38:26 2016 +0900 shela -* 558f3ec1eb325caf706efc15e2fab26121aba442 Tue Sep 6 23:19:01 2016 -0500 IBNobody -* 1048a588c750e27ff0f900cd6aaf670e034086d0 Fri Oct 7 17:15:11 2016 +0200 npoirey -* 5b2e455d3b71bfb90754930d1f22d3e8ce98b927 Mon Oct 10 00:46:20 2016 +0700 Priyadi Iman Nurcahyo -* e27a754b70434de88a37c4a572e4ca5f7730ff58 Wed Oct 12 22:18:27 2016 -0400 Jack & Erez -* 52d7f7d2770a35adf0b0b0c803e05ae8719f539f Sun Oct 16 15:49:45 2016 -0400 Jack Humbert -* 5f91fb413624781ac79db641549b9e08753c04b5 Sun Oct 16 16:03:33 2016 -0400 Jack Humbert -* 33e62c080c9161a0fc921c90ed299a67fc2e1799 Sat Nov 12 20:54:37 2016 -0500 Jack Humbert -* 01038ab54ca6c2858ea9e856c717a1129ffe4156 Fri Dec 23 21:51:11 2016 +0200 Ofer Plesser -* d8a608f3ff4cb4d73cd57be500fd9881e230099d Thu Dec 29 18:28:48 2016 +1100 Wilba6582 - -## quantum/keymap_common.c - -* 46e7fb2d3ccd699c0a1b1fd9d02860b1f2a44141 Mon Oct 26 14:49:46 2015 -0400 Jack Humbert -* 35a81f5b8b081e1607a7c04489b01f551c3213cc Mon Oct 26 16:32:37 2015 -0400 Jack Humbert -* cc1c32671eb1eb43a87e55ac4ffa60b15115e48d Mon Oct 26 20:02:25 2015 -0400 Jack Humbert -* d9f08e6177271594fa573993d9f4dbc2d98c7416 Tue Oct 27 22:00:52 2015 -0400 Jack Humbert -* 18da1e6801335b0d9515ab72e9236a01d629915f Tue Oct 27 23:06:18 2015 -0400 Jack Humbert -* d3db8d62f6fc6a7dee43978ddc8356579b502b37 Wed Oct 28 04:07:15 2015 +0200 Erez Zukerman -* 7d6716beded4a60cd9de24e95d8ec60694692b6f Fri Jan 29 23:27:36 2016 -0500 Jack Humbert -* 65b41e2e59e274354e57ed36cad097823f111f1a Sun Feb 7 11:48:28 2016 +0100 Wojciech Siewierski -* 47dcec29456106828b83fe5b85fa7a7427ddc710 Sun Jan 3 17:49:28 2016 -0500 Chris Gerber -* 1d13aa933bbb57bf0c1fe0196981b81233c3df97 Mon Mar 28 19:45:20 2016 -0500 IBNobody -* 3755ef5ddbdad9f25a53fee951c3eb78035b52c3 Wed Apr 13 20:57:51 2016 -0500 IBNobody -* ee2ee7f4f049dda385a9db7dddd8e7e91681315b Fri Apr 15 13:44:07 2016 -0400 Jack Humbert -* 9cfc74c35b940884618b0fe1e6fd25c570e1c974 Thu Apr 7 15:21:06 2016 +0300 Erez Zukerman -* ab19ebd08a8b955775e6fa94cdf6b8d128d8b43c Sat Apr 16 18:51:58 2016 -0400 Jack Humbert -* c83aa16f1d614c1c10f7597a67ffb9f2ae871951 Sat Apr 16 20:26:02 2016 -0400 Jack Humbert -* 41cc35425ab32c9a9492006da8b667d01d32dfa6 Sat Apr 16 21:31:40 2016 -0400 Jack Humbert -* 8bbd064cf52a76508589579f19595607a1f3af21 Sat Apr 16 23:07:50 2016 -0400 Jack Humbert -* 45f10b4c4b308226fa1568277654a13853a03ab4 Sat Apr 16 22:10:18 2016 -0500 IBNobody -* e7b9959819e709d7df2e96a94bdaf36e4e9e23e3 Sat Apr 16 23:15:40 2016 -0400 Jack Humbert -* a67d425f4d5278595e7ab785a0f246b83fb1a09f Sun Apr 17 01:00:39 2016 -0400 Jack Humbert -* d5b72e7bde5ede25f7d5699b50b7d9eb6f31ba92 Sun Apr 17 12:54:32 2016 -0500 IBNobody -* 3103ea542f0039637a1a266df79a97a7a13fa6b4 Sun Apr 17 12:55:19 2016 -0500 IBNobody -* 23231fa577f7c6c585124226a83f21a7668e62dd Sun Apr 17 14:16:03 2016 -0500 IBNobody -* 5c98ad59606ee95b82c27bf2525383a9ec88542b Sun Apr 17 20:14:37 2016 -0500 IBNobody -* e49712b5593b887c8af18aeb7196513f1c7b7bcf Mon Apr 18 21:01:48 2016 -0400 Jack Humbert -* 620ac4b260fa663d12b11a0b15ac50379523c125 Thu Apr 21 19:35:18 2016 -0700 Eric Tang -* 83e1cc241e3aabd69f6cdcd2581477d4b85bb8d3 Tue May 3 12:56:40 2016 -0500 IBNobody -* 41b3e399b1d43db9574c6016951d92974b3d93e7 Thu May 5 21:50:51 2016 -0400 Jack Humbert -* 1a8c0dd22d6a2255511d0db6a456315541b5815b Sun May 15 00:27:32 2016 -0400 Erez Zukerman -* fde477a927edc6b4207a6968d44aeed021e8b300 Sun May 15 00:51:06 2016 -0400 Jack Humbert -* b732b79b49b098dba8e14493c745075f336747d8 Wed May 18 23:47:16 2016 -0400 Jack Humbert -* 287eb7ad148abc8fe3fb014218d71e205fd9131d Tue May 24 11:56:53 2016 -0400 Jack Humbert -* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert -* 4d4f7684e684bec319f166121463a88cd4a62703 Fri Jul 1 17:04:53 2016 +0300 fredizzimo -* 9870082a06386eba8c0c5f22da90d0256ef6244b Thu Jul 7 19:48:39 2016 +0300 Fred Sundvik -* 8b94e26d7c3b30cc57d710a11e5651d15e8e3b20 Sun Jul 24 22:07:43 2016 -0400 Jack Humbert -* d8a608f3ff4cb4d73cd57be500fd9881e230099d Thu Dec 29 18:28:48 2016 +1100 Wilba6582 - -## quantum/light_ws2812.c - -* ba9ac457b2159097ecfd9848c5171c52e3a68260 Sun Jan 24 17:05:47 2016 -0800 Yang Liu -* 57e08eb8badc5db2fb44d2df684f32ea48cce411 Thu Jul 7 11:33:32 2016 -0400 Jack Humbert -* 5f91fb413624781ac79db641549b9e08753c04b5 Sun Oct 16 16:03:33 2016 -0400 Jack Humbert -* 33e62c080c9161a0fc921c90ed299a67fc2e1799 Sat Nov 12 20:54:37 2016 -0500 Jack Humbert -* e9f748751808de2f1e85cf7fb670d78773bd5e76 Sun Nov 13 23:02:38 2016 -0500 Jack Humbert -* 530dd3377e4d409a7ca2fee7e47b60b735ebc0fa Tue Nov 15 13:18:10 2016 -0500 Jack Humbert -* 3774a7fcdab5544fc787f4c200be05fcd417e31f Thu Nov 17 17:42:14 2016 -0500 Jack Humbert - -## quantum/light_ws2812.h - -* ba9ac457b2159097ecfd9848c5171c52e3a68260 Sun Jan 24 17:05:47 2016 -0800 Yang Liu -* 5f91fb413624781ac79db641549b9e08753c04b5 Sun Oct 16 16:03:33 2016 -0400 Jack Humbert -* e9f748751808de2f1e85cf7fb670d78773bd5e76 Sun Nov 13 23:02:38 2016 -0500 Jack Humbert -* 664c0a036b3d7c3ed39f4a7a78d97f4a9cc7d20c Mon Nov 21 19:50:55 2016 -0500 Jack Humbert -* 06c64bbff3e228df542149acde64eadaf59b9b0f Mon Dec 19 11:18:18 2016 -0500 Jack Humbert - -## quantum/matrix.c - -* 46e7fb2d3ccd699c0a1b1fd9d02860b1f2a44141 Mon Oct 26 14:49:46 2015 -0400 Jack Humbert -* 35a81f5b8b081e1607a7c04489b01f551c3213cc Mon Oct 26 16:32:37 2015 -0400 Jack Humbert -* 641859df84bf40025b2c14319d1a168a435562e2 Thu Mar 10 11:28:34 2016 -0500 yoyoerx -* 684793360cdb08ac1e50a6d27e1796fadd527adb Mon May 9 00:36:23 2016 -0400 Jack Humbert -* 1a8c0dd22d6a2255511d0db6a456315541b5815b Sun May 15 00:27:32 2016 -0400 Erez Zukerman -* aaa758f1d3f97dda39879f2b055ad2da9680adfe Mon May 23 20:42:21 2016 -0700 Eric Tang -* 1ae6011cef2230826a9e6db6c5b638677bc640b7 Tue May 24 08:44:40 2016 -0700 Eric Tang -* de57799530d3184722532f93d156364067d8fcd5 Sat May 28 11:56:06 2016 -0400 Jack Humbert -* 008c8d54a0a1a1e908d372d0fe9edb45a2d491e5 Fri Jun 17 22:09:59 2016 -0400 Jack Humbert -* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 Jack Humbert -* 215c2119af5281072d5a6efb0308408793cadd08 Wed Jun 29 16:21:41 2016 -0400 Jack Humbert -* 4d4f7684e684bec319f166121463a88cd4a62703 Fri Jul 1 17:04:53 2016 +0300 fredizzimo -* 8e88d55bfd7c88cb15845e0c6415e4e892532861 Mon Jul 4 11:45:58 2016 -0400 Jack Humbert -* 3577e26fd9916ceab58779ec6323d43da54eb3b5 Wed Jul 6 00:24:31 2016 -0400 Jack Humbert -* 17170ba76d3c94edcf1ab263520238fdb0384774 Sun Oct 23 23:00:43 2016 -0500 IBNobody -* 508eddf8ba8548d3f71e1c09a404839beb49f45c Fri Oct 28 14:21:38 2016 -0500 IBNobody -* 4c6960835c0a6e29670dabdc27117d7d3c7f99f5 Fri Oct 28 16:24:20 2016 -0500 IBNobody -* 32f88c07173b795c6981c779057dceba00aeb1cb Sat Oct 29 10:39:03 2016 -0500 IBNobody -* f4030289744fc6dc82dd85c955070c0845813cc5 Sat Oct 29 16:12:58 2016 -0500 IBNobody -* a06115df19a74d39b08758472b221e630c3680d3 Fri Nov 18 23:20:07 2016 -0500 Jack Humbert - -## quantum/pincontrol.h - -* 8485bb34d2e291db5b6c81f892850da1cdca37ba Sun Nov 27 22:43:11 2016 -0800 Wez Furlong - -## quantum/quantum.c - -* 1a8c0dd22d6a2255511d0db6a456315541b5815b Sun May 15 00:27:32 2016 -0400 Erez Zukerman -* 15719f3574c6274ee0f3ec87431927c5a523aa3e Sun May 15 00:40:59 2016 -0400 Jack Humbert -* bf5c2ccee5497523c214dae7aacdc27fdbb0f235 Sun May 15 00:47:25 2016 -0400 Jack Humbert -* fde477a927edc6b4207a6968d44aeed021e8b300 Sun May 15 00:51:06 2016 -0400 Jack Humbert -* 0428214b905e5f8b3bed721885957ce249ba4991 Wed May 18 23:14:00 2016 -0400 Jack Humbert -* b732b79b49b098dba8e14493c745075f336747d8 Wed May 18 23:47:16 2016 -0400 Jack Humbert -* 0275d444d77c9d85d2189b09d8813fb76dc4d566 Thu May 19 15:36:28 2016 +0300 purpleP -* 287eb7ad148abc8fe3fb014218d71e205fd9131d Tue May 24 11:56:53 2016 -0400 Jack Humbert -* 1237025963484d70bbe5185a790bec6544653ccc Tue May 24 23:27:59 2016 -0400 Erez Zukerman -* 8bc69afc633d3e199e3ac0a5bf39e4d255f2ce4a Tue May 24 23:48:46 2016 -0400 Erez Zukerman -* 17977a7e24ddab6ca101341b33c8fe7ad13e68f5 Sat May 28 15:22:30 2016 -0400 Jack Humbert -* 1c9f33c06a6ef18c9c21e5841180af5ae554c34b Wed Jun 1 22:49:55 2016 -0400 Jack Humbert -* 4635b4453335b61df11008fa907eef221db5912b Wed Jun 1 23:00:55 2016 -0400 Jack Humbert -* 794aed37a0da5a277a07e7fa86263e0852fa9f6d Fri Jun 3 12:48:40 2016 -0700 Eric Tang -* b70248fa2144d297504eedbc80a76dfdc40d9f1f Fri Jun 17 21:42:59 2016 -0400 Jack Humbert -* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert -* 76076db72545bbb649f11394a12721f61579527f Mon Jun 20 22:36:36 2016 -0400 Jack & Erez -* 98f0807359cfa78d25442b91ff4c5bbfc5679661 Tue Jun 21 22:55:54 2016 -0400 Jack Humbert -* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 Jack Humbert -* b68b722325e1f0f68387e161365fa8e31c79b7b2 Thu Jun 23 23:14:21 2016 -0400 Jack Humbert -* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 Jack Humbert -* 197f152dee834a737cd820f2a95d1ade98be4898 Wed Jun 29 18:29:20 2016 -0400 Jack Humbert -* 60fd885a6e540509baa2193932e15caeaeb8f4c5 Wed Jun 29 18:35:29 2016 -0400 Jack Humbert -* 4d4f7684e684bec319f166121463a88cd4a62703 Fri Jul 1 17:04:53 2016 +0300 fredizzimo -* 1412076df68ac00f9a00173977d2826603c12ddf Mon Jul 4 19:56:08 2016 -0700 Smilliam -* 6b0c9cc905c0985f96a80306cf5fe0d6724b28fc Mon Jul 4 19:58:26 2016 -0700 Smilliam -* a4bf46f9b1d0a0be0cecb2cd0f0d941aa7c71bd3 Wed Jul 6 22:48:19 2016 -0400 Jack Humbert -* 50c686587ed49d8079ba1b11d45ceb6a55d6cd4b Thu Jul 7 23:34:33 2016 -0400 TerryMathews -* f7a86822266603b8ffd21e9f89ec1de8d4950791 Fri Jul 8 03:32:28 2016 -0400 TerryMathews -* b12fe6abb25db1feca6a7649097a8d1cb67a063f Sun Jul 10 19:04:01 2016 -0700 Smilliam -* a998a48673372e409991066d7d2d9ba282f79d59 Mon Jul 11 09:14:43 2016 -0400 Jack Humbert -* a28a6e5b79c819e5f9323f62686498eca3ef399f Wed Jul 13 16:38:02 2016 +0200 Pavlos Vinieratos -* 857aa5bef6a74f8785a7039feea5286c07bf7067 Sat Aug 13 11:14:42 2016 +0200 Gergely Nagy -* 644c8c79271db8cf1bd934b9a80a0215585e46e7 Thu Aug 18 01:34:05 2016 +0200 Wojciech Siewierski -* 0d28787c5cf2173d12f57b397515f91cffaa820a Thu Aug 18 11:29:53 2016 +0200 Gergely Nagy -* e571d4656cd283ce8d793fe3dd2ac176b84b0bf5 Tue Sep 6 18:02:43 2016 -0500 IBNobody -* 558f3ec1eb325caf706efc15e2fab26121aba442 Tue Sep 6 23:19:01 2016 -0500 IBNobody -* 5b2e455d3b71bfb90754930d1f22d3e8ce98b927 Mon Oct 10 00:46:20 2016 +0700 Priyadi Iman Nurcahyo -* 5f91fb413624781ac79db641549b9e08753c04b5 Sun Oct 16 16:03:33 2016 -0400 Jack Humbert -* 33e62c080c9161a0fc921c90ed299a67fc2e1799 Sat Nov 12 20:54:37 2016 -0500 Jack Humbert -* e9f748751808de2f1e85cf7fb670d78773bd5e76 Sun Nov 13 23:02:38 2016 -0500 Jack Humbert -* ffa5b1e7ea6697acf9ebfcade1149031642f7870 Sat Nov 19 11:32:09 2016 +0100 Gergely Nagy -* 74a1f00713d1407fb1d2e20d58da93919ab0c221 Sat Nov 19 18:19:18 2016 +0100 Gergely Nagy -* 664c0a036b3d7c3ed39f4a7a78d97f4a9cc7d20c Mon Nov 21 19:50:55 2016 -0500 Jack Humbert -* 450a8fb5b61de8166fe21eb4f57e1c00514afe32 Mon Nov 21 20:17:45 2016 -0500 Jack Humbert -* cefa8468fb5f28bd67a0c02d371a4aef0964e20c Wed Nov 23 20:16:38 2016 -0500 Jack Humbert -* 7edac212c8ed8442bf4207e70dc8194631b2bf27 Sat Nov 26 15:37:46 2016 -0500 Jack Humbert -* 01038ab54ca6c2858ea9e856c717a1129ffe4156 Fri Dec 23 21:51:11 2016 +0200 Ofer Plesser - -## quantum/quantum.h - -* 1a8c0dd22d6a2255511d0db6a456315541b5815b Sun May 15 00:27:32 2016 -0400 Erez Zukerman -* fde477a927edc6b4207a6968d44aeed021e8b300 Sun May 15 00:51:06 2016 -0400 Jack Humbert -* 0428214b905e5f8b3bed721885957ce249ba4991 Wed May 18 23:14:00 2016 -0400 Jack Humbert -* b732b79b49b098dba8e14493c745075f336747d8 Wed May 18 23:47:16 2016 -0400 Jack Humbert -* 287eb7ad148abc8fe3fb014218d71e205fd9131d Tue May 24 11:56:53 2016 -0400 Jack Humbert -* de57799530d3184722532f93d156364067d8fcd5 Sat May 28 11:56:06 2016 -0400 Jack Humbert -* 17977a7e24ddab6ca101341b33c8fe7ad13e68f5 Sat May 28 15:22:30 2016 -0400 Jack Humbert -* 1c9f33c06a6ef18c9c21e5841180af5ae554c34b Wed Jun 1 22:49:55 2016 -0400 Jack Humbert -* 794aed37a0da5a277a07e7fa86263e0852fa9f6d Fri Jun 3 12:48:40 2016 -0700 Eric Tang -* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert -* 98f0807359cfa78d25442b91ff4c5bbfc5679661 Tue Jun 21 22:55:54 2016 -0400 Jack Humbert -* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 Jack Humbert -* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 Jack Humbert -* 197f152dee834a737cd820f2a95d1ade98be4898 Wed Jun 29 18:29:20 2016 -0400 Jack Humbert -* 8125cdb88ce1201fcfd16ed4c5313222ef4c230c Wed Jun 29 18:36:52 2016 -0400 Jack Humbert -* 4d4f7684e684bec319f166121463a88cd4a62703 Fri Jul 1 17:04:53 2016 +0300 fredizzimo -* a28a6e5b79c819e5f9323f62686498eca3ef399f Wed Jul 13 16:38:02 2016 +0200 Pavlos Vinieratos -* e01b4c3fd9a7b66276ffd22dcac25d569d7bb7ff Sat Jul 9 00:41:15 2016 +0300 Fred Sundvik -* 0d28787c5cf2173d12f57b397515f91cffaa820a Thu Aug 18 11:29:53 2016 +0200 Gergely Nagy -* 5f91fb413624781ac79db641549b9e08753c04b5 Sun Oct 16 16:03:33 2016 -0400 Jack Humbert -* 664c0a036b3d7c3ed39f4a7a78d97f4a9cc7d20c Mon Nov 21 19:50:55 2016 -0500 Jack Humbert -* cefa8468fb5f28bd67a0c02d371a4aef0964e20c Wed Nov 23 20:16:38 2016 -0500 Jack Humbert -* 7edac212c8ed8442bf4207e70dc8194631b2bf27 Sat Nov 26 15:37:46 2016 -0500 Jack Humbert - -## quantum/quantum_keycodes.h - -* d8a608f3ff4cb4d73cd57be500fd9881e230099d Thu Dec 29 18:28:48 2016 +1100 Wilba6582 -* 8459bb97c1e8bcb9ccce55a1ed849d373bd7706c Wed Jan 11 21:57:41 2017 -0500 Erez Zukerman -* 3717cf5864d6505e406b5eb75f315e6dc2392912 Thu Jan 12 07:38:07 2017 -0500 Erez Zukerman -* 7288e5ab9c005a7b035d91e68358aa2b6a12420c Fri Jan 13 14:04:51 2017 -0500 Jack Humbert - -## quantum/rgblight.c - -* ba9ac457b2159097ecfd9848c5171c52e3a68260 Sun Jan 24 17:05:47 2016 -0800 Yang Liu -* 2647c7cd84820a833b85e41ea86caf76b36e6ee1 Sun Jan 24 17:19:33 2016 -0800 Yang Liu -* 97f8f378761506914b69d4fd2d5661bfcae28295 Sun Apr 10 21:16:49 2016 -0700 skullY -* 620ac4b260fa663d12b11a0b15ac50379523c125 Thu Apr 21 19:35:18 2016 -0700 Eric Tang -* c37d52d2137acf5739c481cc0c8917ad6fd77161 Tue Apr 26 13:48:36 2016 -0400 Jack Humbert -* e024c11f7a849a38e478cda9fb9939a838cfa2e0 Tue Apr 26 13:50:04 2016 -0400 Jack Humbert -* 80c87054193b9243670aeb85adefbe1aa6c0fda0 Tue Jun 21 12:53:21 2016 -0400 Jack Humbert -* 57e08eb8badc5db2fb44d2df684f32ea48cce411 Thu Jul 7 11:33:32 2016 -0400 Jack Humbert -* 3a860c4bc210857f03ef9fae5043d6d5736d140d Tue Jul 26 14:43:45 2016 -0500 Jordi Orlando -* 899c88cd8bf024792760fcf3ee8be6fed13fb315 Tue Jul 26 14:46:30 2016 -0500 Jordi Orlando -* ea2d2f5d5841791745c93ef27cd1528a7fd69c97 Tue Jul 26 15:31:22 2016 -0500 Jordi Orlando -* b8679bbe045a2285d6ab6bbc420121b26f516b9a Wed Oct 5 20:41:33 2016 -0400 Jack Humbert -* 9b0e21f87f446935f29254bb623c2cfe29472b6e Sun Oct 9 19:26:16 2016 +0300 Fred Sundvik -* 92a3a96849aee708753a6623b0db228023e3baf8 Sun Oct 9 19:47:05 2016 +0300 Fred Sundvik -* ffae9d84c5279b463da112ee15568d536649b819 Sun Oct 9 19:53:41 2016 +0300 Fred Sundvik -* 03b6fcdaf034392e27752a9bd2c11de06a166e39 Mon Oct 10 00:20:24 2016 -0400 Jack Humbert -* 33e62c080c9161a0fc921c90ed299a67fc2e1799 Sat Nov 12 20:54:37 2016 -0500 Jack Humbert -* e9f748751808de2f1e85cf7fb670d78773bd5e76 Sun Nov 13 23:02:38 2016 -0500 Jack Humbert -* 3774a7fcdab5544fc787f4c200be05fcd417e31f Thu Nov 17 17:42:14 2016 -0500 Jack Humbert -* 285c5a91f23e972d9c579184283443111186329d Thu Nov 17 20:56:36 2016 -0500 Erez Zukerman -* 2e23689b8e3222982082c1f5a4f8ce7686f9658b Wed Nov 23 18:52:02 2016 -0500 Jack Humbert -* 4094544d41450617bc21ab58646603b8964eae0e Tue Nov 29 09:23:16 2016 -0500 Erez Zukerman -* cae269b08b642b07ee06dec7120a784a3c3d7aab Fri Dec 23 10:29:19 2016 -0500 Jack Humbert -* 748181dccddb8c9fa52a776f4fcd904ddca9aa31 Wed Dec 28 16:29:02 2016 -0500 Scott Wilson -* b8e74c378b1f118178edf0634d9fa7f0f9dd5e08 Thu Dec 29 09:32:02 2016 -0500 Scott Wilson - -## quantum/rgblight.h - -* ba9ac457b2159097ecfd9848c5171c52e3a68260 Sun Jan 24 17:05:47 2016 -0800 Yang Liu -* 2647c7cd84820a833b85e41ea86caf76b36e6ee1 Sun Jan 24 17:19:33 2016 -0800 Yang Liu -* 620ac4b260fa663d12b11a0b15ac50379523c125 Thu Apr 21 19:35:18 2016 -0700 Eric Tang -* 80c87054193b9243670aeb85adefbe1aa6c0fda0 Tue Jun 21 12:53:21 2016 -0400 Jack Humbert -* 57e08eb8badc5db2fb44d2df684f32ea48cce411 Thu Jul 7 11:33:32 2016 -0400 Jack Humbert -* b8679bbe045a2285d6ab6bbc420121b26f516b9a Wed Oct 5 20:41:33 2016 -0400 Jack Humbert -* 9b0e21f87f446935f29254bb623c2cfe29472b6e Sun Oct 9 19:26:16 2016 +0300 Fred Sundvik -* 33e62c080c9161a0fc921c90ed299a67fc2e1799 Sat Nov 12 20:54:37 2016 -0500 Jack Humbert -* e9f748751808de2f1e85cf7fb670d78773bd5e76 Sun Nov 13 23:02:38 2016 -0500 Jack Humbert -* 3774a7fcdab5544fc787f4c200be05fcd417e31f Thu Nov 17 17:42:14 2016 -0500 Jack Humbert -* 285c5a91f23e972d9c579184283443111186329d Thu Nov 17 20:56:36 2016 -0500 Erez Zukerman -* 2e23689b8e3222982082c1f5a4f8ce7686f9658b Wed Nov 23 18:52:02 2016 -0500 Jack Humbert -* 4094544d41450617bc21ab58646603b8964eae0e Tue Nov 29 09:23:16 2016 -0500 Erez Zukerman -* cae269b08b642b07ee06dec7120a784a3c3d7aab Fri Dec 23 10:29:19 2016 -0500 Jack Humbert -* 748181dccddb8c9fa52a776f4fcd904ddca9aa31 Wed Dec 28 16:29:02 2016 -0500 Scott Wilson - -## quantum/variable_trace.c - -* f519b94be7086852f2afe4ec248786b47968f7ff Sun Nov 6 21:57:26 2016 +0200 Fred Sundvik -* a377017c95b826d83ac7a46ef176d39a58294b44 Sun Nov 6 22:11:24 2016 +0200 Fred Sundvik - -## quantum/variable_trace.h - -* a377017c95b826d83ac7a46ef176d39a58294b44 Sun Nov 6 22:11:24 2016 +0200 Fred Sundvik -* 0ba3e523a7c124e4ce54dfd043dc32e72ad3233b Sun Nov 6 22:44:43 2016 +0200 Fred Sundvik - -## quantum/version.h - -* None None None - -## quantum/api/api_sysex.c - -* 7edac212c8ed8442bf4207e70dc8194631b2bf27 Sat Nov 26 15:37:46 2016 -0500 Jack Humbert -* dd685eceb2045371d38f24d454f1ab08ca7416f4 Thu Dec 29 12:13:30 2016 +0200 Fred Sundvik - -## quantum/api/api_sysex.h - -* 7edac212c8ed8442bf4207e70dc8194631b2bf27 Sat Nov 26 15:37:46 2016 -0500 Jack Humbert - -## quantum/audio/audio.c - -* 73228f5e5d1d4cd31a46e5e93aa893a8f727e3b9 Thu Apr 21 00:37:45 2016 -0400 Jack Humbert -* 620ac4b260fa663d12b11a0b15ac50379523c125 Thu Apr 21 19:35:18 2016 -0700 Eric Tang -* 83e1cc241e3aabd69f6cdcd2581477d4b85bb8d3 Tue May 3 12:56:40 2016 -0500 IBNobody -* 3f02637f4dd765803671c2611191beb096d60b36 Mon May 9 13:17:15 2016 -0400 Jack Humbert -* 15719f3574c6274ee0f3ec87431927c5a523aa3e Sun May 15 00:40:59 2016 -0400 Jack Humbert -* 0428214b905e5f8b3bed721885957ce249ba4991 Wed May 18 23:14:00 2016 -0400 Jack Humbert -* 287eb7ad148abc8fe3fb014218d71e205fd9131d Tue May 24 11:56:53 2016 -0400 Jack Humbert -* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert -* 06c64bbff3e228df542149acde64eadaf59b9b0f Mon Dec 19 11:18:18 2016 -0500 Jack Humbert - -## quantum/audio/audio.h - -* 73228f5e5d1d4cd31a46e5e93aa893a8f727e3b9 Thu Apr 21 00:37:45 2016 -0400 Jack Humbert -* 082a0f313d8c842a5de7bae30ec8a3597e35880b Fri Apr 22 00:01:38 2016 -0500 IBNobody -* 83e1cc241e3aabd69f6cdcd2581477d4b85bb8d3 Tue May 3 12:56:40 2016 -0500 IBNobody -* 3f02637f4dd765803671c2611191beb096d60b36 Mon May 9 13:17:15 2016 -0400 Jack Humbert -* 15719f3574c6274ee0f3ec87431927c5a523aa3e Sun May 15 00:40:59 2016 -0400 Jack Humbert -* 0428214b905e5f8b3bed721885957ce249ba4991 Wed May 18 23:14:00 2016 -0400 Jack Humbert -* 287eb7ad148abc8fe3fb014218d71e205fd9131d Tue May 24 11:56:53 2016 -0400 Jack Humbert -* 215c2119af5281072d5a6efb0308408793cadd08 Wed Jun 29 16:21:41 2016 -0400 Jack Humbert - -## quantum/audio/audio_pwm.c - -* 83e1cc241e3aabd69f6cdcd2581477d4b85bb8d3 Tue May 3 12:56:40 2016 -0500 IBNobody -* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert - -## quantum/audio/luts.c - -* 83e1cc241e3aabd69f6cdcd2581477d4b85bb8d3 Tue May 3 12:56:40 2016 -0500 IBNobody - -## quantum/audio/luts.h - -* 83e1cc241e3aabd69f6cdcd2581477d4b85bb8d3 Tue May 3 12:56:40 2016 -0500 IBNobody - -## quantum/audio/musical_notes.h - -* 73228f5e5d1d4cd31a46e5e93aa893a8f727e3b9 Thu Apr 21 00:37:45 2016 -0400 Jack Humbert - -## quantum/audio/song_list.h - -* 73228f5e5d1d4cd31a46e5e93aa893a8f727e3b9 Thu Apr 21 00:37:45 2016 -0400 Jack Humbert -* 7d0345ef25b5e1924f1e98c76d78607778e0b17d Sat Jul 30 01:52:33 2016 -0700 JeeBak Kim - -## quantum/audio/voices.c - -* 73228f5e5d1d4cd31a46e5e93aa893a8f727e3b9 Thu Apr 21 00:37:45 2016 -0400 Jack Humbert -* e89b806b850ad1b5484176664288b71b0131683e Thu Apr 21 00:40:00 2016 -0400 Jack Humbert -* 9828aba2a12f03fccbc1095bc8e4918ae58fa31b Thu Apr 21 18:14:25 2016 -0400 Jack Humbert -* 7b3f212500210ae85063b043952b5b3ef6988ad6 Thu Apr 21 23:10:47 2016 -0400 Jack Humbert -* 082a0f313d8c842a5de7bae30ec8a3597e35880b Fri Apr 22 00:01:38 2016 -0500 IBNobody -* b1900c8dde2a68e87aaabd84280a99bf6658ea9f Fri Apr 22 01:02:50 2016 -0400 Jack Humbert -* a8086126fecbdce1c192036cf1011329d406949d Fri Apr 22 01:04:13 2016 -0400 Jack Humbert -* a718c53fe77f0b3b4361c850531eee5f23e3e13d Fri Apr 22 11:58:29 2016 -0400 Jack Humbert -* e7b6bb641c0636c01e3781fe51865fdb20014eeb Mon Apr 25 00:59:47 2016 -0400 Jack Humbert -* 140b97a1cd226432a8ec647004943698e3d87f0b Tue Apr 26 01:16:47 2016 -0400 Jack Humbert -* 66e0323881a5a3da65e14daeec41a1e9cfbda431 Fri Apr 29 12:42:55 2016 -0400 Jack Humbert -* 83e1cc241e3aabd69f6cdcd2581477d4b85bb8d3 Tue May 3 12:56:40 2016 -0500 IBNobody -* 0edfe55bfe4afd037918ff73e49552a28f39a5ca Mon Dec 12 15:39:07 2016 -0500 Jack Humbert -* 06c64bbff3e228df542149acde64eadaf59b9b0f Mon Dec 19 11:18:18 2016 -0500 Jack Humbert -* 438a5d685bb7b726ff59109ce4229eca6303cd8e Tue Dec 20 19:38:22 2016 -0500 Jack Humbert -* 2fa36e38cf28f07ad4a4d74722486921fa7b8706 Wed Dec 21 00:22:32 2016 -0500 Jack Humbert - -## quantum/audio/voices.h - -* 73228f5e5d1d4cd31a46e5e93aa893a8f727e3b9 Thu Apr 21 00:37:45 2016 -0400 Jack Humbert -* e89b806b850ad1b5484176664288b71b0131683e Thu Apr 21 00:40:00 2016 -0400 Jack Humbert -* 9828aba2a12f03fccbc1095bc8e4918ae58fa31b Thu Apr 21 18:14:25 2016 -0400 Jack Humbert -* 7b3f212500210ae85063b043952b5b3ef6988ad6 Thu Apr 21 23:10:47 2016 -0400 Jack Humbert -* 082a0f313d8c842a5de7bae30ec8a3597e35880b Fri Apr 22 00:01:38 2016 -0500 IBNobody -* b1900c8dde2a68e87aaabd84280a99bf6658ea9f Fri Apr 22 01:02:50 2016 -0400 Jack Humbert -* a8086126fecbdce1c192036cf1011329d406949d Fri Apr 22 01:04:13 2016 -0400 Jack Humbert -* a718c53fe77f0b3b4361c850531eee5f23e3e13d Fri Apr 22 11:58:29 2016 -0400 Jack Humbert -* e7b6bb641c0636c01e3781fe51865fdb20014eeb Mon Apr 25 00:59:47 2016 -0400 Jack Humbert -* 140b97a1cd226432a8ec647004943698e3d87f0b Tue Apr 26 01:16:47 2016 -0400 Jack Humbert -* 83e1cc241e3aabd69f6cdcd2581477d4b85bb8d3 Tue May 3 12:56:40 2016 -0500 IBNobody -* 0edfe55bfe4afd037918ff73e49552a28f39a5ca Mon Dec 12 15:39:07 2016 -0500 Jack Humbert -* 06c64bbff3e228df542149acde64eadaf59b9b0f Mon Dec 19 11:18:18 2016 -0500 Jack Humbert -* 438a5d685bb7b726ff59109ce4229eca6303cd8e Tue Dec 20 19:38:22 2016 -0500 Jack Humbert - -## quantum/audio/wave.h - -* 73228f5e5d1d4cd31a46e5e93aa893a8f727e3b9 Thu Apr 21 00:37:45 2016 -0400 Jack Humbert - -## quantum/keymap_extras/keymap_bepo.h - -* 7c33f8493fb4ecd664390232c8de856158f9fcae Sun Feb 7 19:29:49 2016 +0100 Didier Loiseau -* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert -* 7b4d30ee50aa534a973473c715924964991739f0 Sun Jul 24 10:57:49 2016 +0200 Vivien Alger - -## quantum/keymap_extras/keymap_br_abnt2.h - -* 7aa31ad338325477199f752ac3e344a6ab9b27d0 Tue Nov 8 13:32:04 2016 -0200 Potiguar Faga - -## quantum/keymap_extras/keymap_canadian_multilingual.h - -* a7cef2ca0a2322448d02008337013936b1d550ec Wed Feb 17 21:45:38 2016 +0100 Didier Loiseau -* 7840e69bfaee1d67de273c235b532d6f20c905a9 Thu Feb 18 00:47:23 2016 +0100 Didier Loiseau -* 911222892ecb1c01551e0abdfbe98ed1dbf82139 Fri Feb 26 00:55:39 2016 +0100 Didier Loiseau -* 3a91ddb0745ae0f52007984793ea1b48abb2098c Tue Mar 1 22:59:38 2016 +0100 Didier Loiseau -* aa5eb49edd993e2abe3adf814e030fcdda4a3596 Wed Mar 2 00:22:41 2016 +0100 Didier Loiseau -* 1aeb59335f2fe67613df25308a630ca453975ac0 Sun Sep 11 02:19:55 2016 +0200 Didier Loiseau - -## quantum/keymap_extras/keymap_colemak.h - -* 46e7fb2d3ccd699c0a1b1fd9d02860b1f2a44141 Mon Oct 26 14:49:46 2015 -0400 Jack Humbert -* 39915b1748cefd99f841fa03b7f6e7c20439fbcf Thu Oct 29 15:12:51 2015 -0400 Jack Humbert -* 3c683aa9f23288ddada760fb49abcc5fa7324f5e Fri Feb 5 16:28:24 2016 +0200 Erez Zukerman -* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert - -## quantum/keymap_extras/keymap_dvorak.h - -* 46e7fb2d3ccd699c0a1b1fd9d02860b1f2a44141 Mon Oct 26 14:49:46 2015 -0400 Jack Humbert -* 233af3a41c69d456583bfcfd897233b9c117caa6 Mon Feb 22 13:06:26 2016 -0500 Keller-Laminar -* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert -* 4278d8861526ed285d9d00badcdc8c121454be60 Thu Jul 14 11:32:43 2016 -0500 Jonathan A. Kollasch -* f0021c9cb9e30d47d5a3ab5ec75e59e626c3d244 Mon Sep 19 14:25:44 2016 -0500 Jonathan A. Kollasch - -## quantum/keymap_extras/keymap_dvp.h - -* 6e003b1e3fa844cfde0069004e755aae7a9539f3 Wed Oct 19 23:45:55 2016 +0300 Artyom Mironov - -## quantum/keymap_extras/keymap_fr_ch.h - -* 1934e8a270820ff6f08c95f4399b26162623e4e0 Sat Feb 20 14:01:28 2016 +0100 Vincent Pochet -* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert -* 25938a09a6bfb2624bc96841b53897eda532e293 Thu Jul 14 11:13:35 2016 -0500 Jonathan A. Kollasch - -## quantum/keymap_extras/keymap_french.h - -* 46e7fb2d3ccd699c0a1b1fd9d02860b1f2a44141 Mon Oct 26 14:49:46 2015 -0400 Jack Humbert -* 4a19cc054dc7aeb0a35613d608143bf51fa791cc Sat Feb 27 15:22:54 2016 +0100 Kévin Letord -* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert -* 010dd1308420e25b327fa4d5d6b13f67a849408b Thu Jul 14 11:04:25 2016 -0500 Jonathan A. Kollasch -* 25938a09a6bfb2624bc96841b53897eda532e293 Thu Jul 14 11:13:35 2016 -0500 Jonathan A. Kollasch - -## quantum/keymap_extras/keymap_french_osx.h - -* 48eff6dd89672c6c71afd8a3d1cdc5d35b0bf768 Tue Jan 5 10:49:36 2016 +0100 Sébastien Pérochon -* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert - -## quantum/keymap_extras/keymap_german.h - -* 3dbcad51d1217b32c3c17917c2646fa7a9a9165b Sat Dec 19 01:22:12 2015 +0100 Matthias Schmitt -* da09312dd56e3b085fb217cc7cc2abf06f401992 Tue Jan 19 20:04:08 2016 +0100 plgruener -* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert -* 25938a09a6bfb2624bc96841b53897eda532e293 Thu Jul 14 11:13:35 2016 -0500 Jonathan A. Kollasch - -## quantum/keymap_extras/keymap_german_ch.h - -* 465aabe11dbd673fb4c68ecbffbfb062273def1a Wed May 18 21:22:04 2016 +0200 heartsekai -* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert -* 25938a09a6bfb2624bc96841b53897eda532e293 Thu Jul 14 11:13:35 2016 -0500 Jonathan A. Kollasch - -## quantum/keymap_extras/keymap_german_osx.h - -* e44c30f2030dd4c481a6e38e9392f147be7b0ae2 Fri Jan 15 15:55:00 2016 +0100 Stephan Bösebeck -* bfc6eca44aeb3ad22a1c37206005dcfe617431cd Mon Mar 14 13:35:34 2016 +0100 Daniel Kriesten -* dbd4ab3457dd001ab4bbcec14315047b815f7dfe Thu Mar 31 23:15:59 2016 +0200 Stephan Bösebeck -* 6d40f7c5060f608068b0c4fc90871687c70b4f05 Sun Apr 17 22:19:47 2016 +0200 Stephan Bösebeck -* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert -* 1a0bac8bccf0e156d2f3c5f14a7214f9677b6370 Tue Jun 21 17:42:29 2016 -0400 Jack Humbert - -## quantum/keymap_extras/keymap_jp.h - -* 2febf9b9f7d610fc2eca666a842272cb90a87919 Tue Nov 22 20:40:12 2016 +0900 h-youhei - -## quantum/keymap_extras/keymap_neo2.h - -* 7b7870bae178c80138be5c587238fdedeb837df9 Sat Dec 19 01:41:23 2015 +0100 Matthias Schmitt -* 4ca43225011ac94bd0a7976baf7f84059274dfbf Fri Feb 19 21:04:30 2016 +0100 plgruener -* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert -* e329729d3a11b5798f4e2b9f65ac9bc2dcc84a9e Tue Jun 21 18:32:28 2016 -0400 Jack Humbert - -## quantum/keymap_extras/keymap_nordic.h - -* 46e7fb2d3ccd699c0a1b1fd9d02860b1f2a44141 Mon Oct 26 14:49:46 2015 -0400 Jack Humbert -* c29ad125a7a58d5a2ced0a619165204136da9019 Fri Feb 5 01:50:54 2016 +0100 Fernando Mendonca -* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert -* 25938a09a6bfb2624bc96841b53897eda532e293 Thu Jul 14 11:13:35 2016 -0500 Jonathan A. Kollasch -* 283ebbe14298fe75128765fa42c46f02534fb761 Mon Jul 25 12:50:27 2016 +0200 Andreas Lindhé -* 555e41d9e5f8d393637898e2c77c64066b648245 Fri Dec 2 13:03:51 2016 -0500 Erez Zukerman - -## quantum/keymap_extras/keymap_norwegian.h - -* e329729d3a11b5798f4e2b9f65ac9bc2dcc84a9e Tue Jun 21 18:32:28 2016 -0400 Jack Humbert -* b6fa762234fb5a3590d0ff91ffdf5aa3ae322c8f Mon Jul 25 11:29:54 2016 +0200 Andreas Lindhé - -## quantum/keymap_extras/keymap_plover.h - -* 7ccfaf750d08bdb3a25ef2869cac251b7cd4d3ad Sat Apr 23 18:49:10 2016 +0100 James ‘Twey’ Kay -* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert - -## quantum/keymap_extras/keymap_russian.h - -* c5ee24a6c3ea39e9725dfc276c92d5bce726ca78 Sun Aug 7 11:01:12 2016 -0500 kuel -* 2a0121a78643b1dc774d82352f8c9e246010803e Sun Aug 7 11:07:38 2016 -0500 kuel - -## quantum/keymap_extras/keymap_spanish.h - -* 46e7fb2d3ccd699c0a1b1fd9d02860b1f2a44141 Mon Oct 26 14:49:46 2015 -0400 Jack Humbert -* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert -* 132c04746910f7230b63ed33717c4ed65599ed1b Sat Jul 2 10:26:04 2016 +0200 Rubén Díaz-Jorge -* 25938a09a6bfb2624bc96841b53897eda532e293 Thu Jul 14 11:13:35 2016 -0500 Jonathan A. Kollasch - -## quantum/keymap_extras/keymap_uk.h - -* 46e7fb2d3ccd699c0a1b1fd9d02860b1f2a44141 Mon Oct 26 14:49:46 2015 -0400 Jack Humbert -* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert -* 010dd1308420e25b327fa4d5d6b13f67a849408b Thu Jul 14 11:04:25 2016 -0500 Jonathan A. Kollasch -* 25938a09a6bfb2624bc96841b53897eda532e293 Thu Jul 14 11:13:35 2016 -0500 Jonathan A. Kollasch - -## quantum/keymap_extras/keymap_unicode_cyrillic.h - -* c5ee24a6c3ea39e9725dfc276c92d5bce726ca78 Sun Aug 7 11:01:12 2016 -0500 kuel - -## quantum/process_keycode/process_chording.c - -* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 Jack Humbert - -## quantum/process_keycode/process_chording.h - -* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 Jack Humbert - -## quantum/process_keycode/process_leader.c - -* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 Jack Humbert - -## quantum/process_keycode/process_leader.h - -* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 Jack Humbert - -## quantum/process_keycode/process_midi.c - -* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 Jack Humbert -* 8b94e26d7c3b30cc57d710a11e5651d15e8e3b20 Sun Jul 24 22:07:43 2016 -0400 Jack Humbert -* 8d99140d1b80bf497b2198138d3f481e93b0fbab Thu Sep 29 14:46:10 2016 -0500 Adam Gausmann - -## quantum/process_keycode/process_midi.h - -* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 Jack Humbert - -## quantum/process_keycode/process_music.c - -* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 Jack Humbert -* 3ea738e450e9326b0d3ee4192da881cffb4c13c1 Sun Jul 24 10:00:39 2016 -0400 Robert Dale -* ae95834f5af7404c04e6fe3446019046278d814b Mon Dec 12 16:06:41 2016 -0500 Jack Humbert -* 273faa4d9cd5a84207548f83ba550c9efee90933 Fri Dec 23 20:59:00 2016 -0500 Jack Humbert -* 841d7e6a1d74b1fc45575ed551132ec27353ebf3 Mon Jan 23 13:55:24 2017 -0500 Jack Humbert - -## quantum/process_keycode/process_music.h - -* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 Jack Humbert - -## quantum/process_keycode/process_printer.c - -* a889b899e2cf52b3b7807d8a7ad39f12e0761a10 Sun Oct 16 16:03:56 2016 -0400 Jack Humbert - -## quantum/process_keycode/process_printer.h - -* a889b899e2cf52b3b7807d8a7ad39f12e0761a10 Sun Oct 16 16:03:56 2016 -0400 Jack Humbert - -## quantum/process_keycode/process_printer_bb.c - -* a889b899e2cf52b3b7807d8a7ad39f12e0761a10 Sun Oct 16 16:03:56 2016 -0400 Jack Humbert - -## quantum/process_keycode/process_tap_dance.c - -* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 Jack Humbert -* 1a7e954f9fc4d250ba1ae46e3bfc168aca2b5cce Wed Jul 13 00:20:28 2016 +0200 Pavlos Vinieratos -* f3b56701ed7e6c622dc48e429780124ba5fde172 Wed Jul 13 16:47:45 2016 +0200 Pavlos Vinieratos -* d3091faf363afc8fef73ddf4948f872439b0e827 Fri Jul 15 23:54:08 2016 +0200 Pavlos Vinieratos -* dda2fd6ff3984ed96f8275c661b47a0484f9ee18 Mon Jul 18 23:34:02 2016 +0200 Pavlos Vinieratos -* d5daec2a58019ebdb9804787e0f786e4fc3c05b9 Tue Jul 19 18:00:59 2016 +0200 Pavlos Vinieratos -* 4e6a8627d8ebd7af942f68142d1a959d60361d90 Tue Jul 19 18:02:13 2016 +0200 Pavlos Vinieratos -* 70e42489dec375e558d8e81ed5ebfb69b4f3dbd9 Wed Jul 20 10:22:52 2016 +0200 Gergely Nagy -* ce8cc9219fca5dde077f1142d03d011b38d27479 Wed Jul 20 11:34:45 2016 +0200 Gergely Nagy -* 44e16ffc80620b61eaa17aedcfdd8233d9c99bd9 Wed Jul 20 11:49:59 2016 +0200 Gergely Nagy -* b21e8b97acb722bfa7b85831cfd010716ed77962 Wed Jul 27 08:42:09 2016 +0200 Gergely Nagy -* d78058cc75a9b05a6885991506d5f807ebb2a9f9 Wed Aug 17 10:28:08 2016 +0200 Gergely Nagy -* 29f64d7a93d941167c6c6e95f893ab84586b2205 Wed Aug 17 13:04:50 2016 +0200 Gergely Nagy -* 0d28787c5cf2173d12f57b397515f91cffaa820a Thu Aug 18 11:29:53 2016 +0200 Gergely Nagy -* acda2b793f69c6e0e9b9667e9ebe8a0325eb5ecd Thu Sep 1 08:32:47 2016 +0200 Gergely Nagy -* e1f131db8e59c6ed3471906d3a62457d593f51af Wed Sep 21 10:11:42 2016 +0200 Pavlos Vinieratos - -## quantum/process_keycode/process_tap_dance.h - -* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 Jack Humbert -* f3b56701ed7e6c622dc48e429780124ba5fde172 Wed Jul 13 16:47:45 2016 +0200 Pavlos Vinieratos -* d3091faf363afc8fef73ddf4948f872439b0e827 Fri Jul 15 23:54:08 2016 +0200 Pavlos Vinieratos -* 70e42489dec375e558d8e81ed5ebfb69b4f3dbd9 Wed Jul 20 10:22:52 2016 +0200 Gergely Nagy -* ce8cc9219fca5dde077f1142d03d011b38d27479 Wed Jul 20 11:34:45 2016 +0200 Gergely Nagy -* b21e8b97acb722bfa7b85831cfd010716ed77962 Wed Jul 27 08:42:09 2016 +0200 Gergely Nagy -* 29f64d7a93d941167c6c6e95f893ab84586b2205 Wed Aug 17 13:04:50 2016 +0200 Gergely Nagy -* 0edc82f0300924394324e2f3c4d2f8f0008439db Wed Sep 21 11:29:34 2016 +0200 Pavlos Vinieratos -* cda4b534fa4921c2d8f9884aa6a144333e7b07c4 Wed Sep 21 11:29:43 2016 +0200 Pavlos Vinieratos - -## quantum/process_keycode/process_unicode.c - -* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 Jack Humbert -* 8bdf745909bc2581491acce11225f56a85bc8f24 Sat Aug 13 10:33:47 2016 +0200 Gergely Nagy -* 63e5782d2cdf0ee282ad434c773463d9da9db6b3 Sat Aug 13 10:43:22 2016 +0200 Gergely Nagy -* fa06a163607e8c6c4bd0968c2de96a9a298b777c Sat Aug 13 10:46:38 2016 +0200 Gergely Nagy -* 0b6861827faea747345ea38202d64c8004ab128c Sat Aug 13 11:11:22 2016 +0200 Gergely Nagy -* 857aa5bef6a74f8785a7039feea5286c07bf7067 Sat Aug 13 11:14:42 2016 +0200 Gergely Nagy -* 234dd276cf03be6fd6961473e9d9c8f35deec682 Sun Aug 14 10:37:51 2016 +0200 Gergely Nagy -* a312cbf712764277e0dbbbb99410c2f6fc6c7484 Sun Aug 14 14:34:52 2016 +0200 Gergely Nagy -* 43d08629cf275d0b32281ffe8785258fff226b49 Mon Aug 15 10:02:05 2016 +0200 Gergely Nagy -* e8845f0daf8dc7a7674dc5420cc5a684bbbea09b Mon Aug 15 10:07:13 2016 +0200 Gergely Nagy -* dffdeb50b79d3c623e2ed9fd1c1d82d6d0ae7bf0 Sun Aug 21 20:25:19 2016 +0200 coderkun -* 81594c7883deefedbcd317c72c1b1f1d32e65cd7 Sun Aug 21 21:02:18 2016 +0200 coderkun -* a058ae40e268b34ba5db45f5fd5d557d50fa5437 Wed Aug 24 15:39:23 2016 +0200 Gergely Nagy -* c9ea236fc35d350c0ff33de0af84d3dee7d0eb95 Wed Aug 31 08:21:52 2016 +0200 Gergely Nagy -* a3f5a4cf5839fe29dd37400d72c5e353812002f8 Sun Oct 2 10:35:09 2016 +0200 coderkun -* 5b2e455d3b71bfb90754930d1f22d3e8ce98b927 Mon Oct 10 00:46:20 2016 +0700 Priyadi Iman Nurcahyo -* e7d5dc89f2890007d776f6b613dc9deb473cff22 Sun Oct 23 05:36:26 2016 +0700 Priyadi Iman Nurcahyo -* 4a666c201007eacf13a9031e3c9b156e2e04afe6 Sun Oct 23 19:15:33 2016 +0700 Priyadi Iman Nurcahyo -* 8d60354d5a116b6cb1fc32eac7461eb125543c7d Wed Oct 26 00:48:44 2016 -0400 Jack Humbert -* 30b80a23f3cafd846937b37b249f2df4411e1f5a Mon Jan 9 02:59:10 2017 +0700 Priyadi Iman Nurcahyo - -## quantum/process_keycode/process_unicode.h - -* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 Jack Humbert -* 63e5782d2cdf0ee282ad434c773463d9da9db6b3 Sat Aug 13 10:43:22 2016 +0200 Gergely Nagy -* fa06a163607e8c6c4bd0968c2de96a9a298b777c Sat Aug 13 10:46:38 2016 +0200 Gergely Nagy -* 857aa5bef6a74f8785a7039feea5286c07bf7067 Sat Aug 13 11:14:42 2016 +0200 Gergely Nagy -* 234dd276cf03be6fd6961473e9d9c8f35deec682 Sun Aug 14 10:37:51 2016 +0200 Gergely Nagy -* a312cbf712764277e0dbbbb99410c2f6fc6c7484 Sun Aug 14 14:34:52 2016 +0200 Gergely Nagy -* 43d08629cf275d0b32281ffe8785258fff226b49 Mon Aug 15 10:02:05 2016 +0200 Gergely Nagy -* e8845f0daf8dc7a7674dc5420cc5a684bbbea09b Mon Aug 15 10:07:13 2016 +0200 Gergely Nagy -* a058ae40e268b34ba5db45f5fd5d557d50fa5437 Wed Aug 24 15:39:23 2016 +0200 Gergely Nagy -* c9ea236fc35d350c0ff33de0af84d3dee7d0eb95 Wed Aug 31 08:21:52 2016 +0200 Gergely Nagy -* 5b2e455d3b71bfb90754930d1f22d3e8ce98b927 Mon Oct 10 00:46:20 2016 +0700 Priyadi Iman Nurcahyo -* 4a666c201007eacf13a9031e3c9b156e2e04afe6 Sun Oct 23 19:15:33 2016 +0700 Priyadi Iman Nurcahyo -* 6fee7e178f7c949213a124d78de60bc30267d367 Sat Nov 26 23:53:15 2016 +0700 Priyadi Iman Nurcahyo - -## quantum/serial_link/LICENSE - -* 639cdd363e35c13fe331939d0972aa4db5f5198d Tue Jul 5 23:27:47 2016 +0300 Fred Sundvik - -## quantum/serial_link/README.md - -* 639cdd363e35c13fe331939d0972aa4db5f5198d Tue Jul 5 23:27:47 2016 +0300 Fred Sundvik -* d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 Fred Sundvik - -## quantum/serial_link/protocol/byte_stuffer.c - -* d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 Fred Sundvik -* 0a11460175d6a838c71343c19eb4ce4699936247 Wed Aug 24 22:23:17 2016 +0300 Fred Sundvik - -## quantum/serial_link/protocol/byte_stuffer.h - -* d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 Fred Sundvik -* 0a11460175d6a838c71343c19eb4ce4699936247 Wed Aug 24 22:23:17 2016 +0300 Fred Sundvik - -## quantum/serial_link/protocol/frame_router.c - -* d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 Fred Sundvik - -## quantum/serial_link/protocol/frame_router.h - -* d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 Fred Sundvik - -## quantum/serial_link/protocol/frame_validator.c - -* d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 Fred Sundvik - -## quantum/serial_link/protocol/frame_validator.h - -* d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 Fred Sundvik - -## quantum/serial_link/protocol/physical.h - -* d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 Fred Sundvik - -## quantum/serial_link/protocol/transport.c - -* d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 Fred Sundvik -* bcdf9ab76bf3723e6015d4255d53e7c1e7259b61 Sat Aug 27 14:18:49 2016 +0300 Fred Sundvik - -## quantum/serial_link/protocol/transport.h - -* d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 Fred Sundvik -* bcdf9ab76bf3723e6015d4255d53e7c1e7259b61 Sat Aug 27 14:18:49 2016 +0300 Fred Sundvik - -## quantum/serial_link/protocol/triple_buffered_object.c - -* d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 Fred Sundvik - -## quantum/serial_link/protocol/triple_buffered_object.h - -* d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 Fred Sundvik - -## quantum/serial_link/system/serial_link.c - -* d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 Fred Sundvik - -## quantum/serial_link/system/serial_link.h - -* d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 Fred Sundvik - -## quantum/serial_link/tests/byte_stuffer_tests.cpp - -* 0a11460175d6a838c71343c19eb4ce4699936247 Wed Aug 24 22:23:17 2016 +0300 Fred Sundvik - -## quantum/serial_link/tests/frame_router_tests.cpp - -* cdd0913bcc63334fa20f1a7bd46bdce4d4f2843b Sat Aug 27 13:43:46 2016 +0300 Fred Sundvik - -## quantum/serial_link/tests/frame_validator_tests.cpp - -* b3eba797af74ace19b9f2e762bdd33d9449e3f94 Sat Aug 27 13:54:16 2016 +0300 Fred Sundvik - -## quantum/serial_link/tests/Makefile - -* d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 Fred Sundvik - -## quantum/serial_link/tests/rules.mk - -* 0a11460175d6a838c71343c19eb4ce4699936247 Wed Aug 24 22:23:17 2016 +0300 Fred Sundvik -* cdd0913bcc63334fa20f1a7bd46bdce4d4f2843b Sat Aug 27 13:43:46 2016 +0300 Fred Sundvik -* b3eba797af74ace19b9f2e762bdd33d9449e3f94 Sat Aug 27 13:54:16 2016 +0300 Fred Sundvik -* bcdf9ab76bf3723e6015d4255d53e7c1e7259b61 Sat Aug 27 14:18:49 2016 +0300 Fred Sundvik -* ffb0a126f5b2484eda7f6b1c62ea61924eec6521 Sat Aug 27 14:25:52 2016 +0300 Fred Sundvik - -## quantum/serial_link/tests/testlist.mk - -* 6d7cd639a5e4503f00162c7cfa4bc7302b82c71c Sun Aug 21 16:29:54 2016 +0300 Fred Sundvik -* ffb0a126f5b2484eda7f6b1c62ea61924eec6521 Sat Aug 27 14:25:52 2016 +0300 Fred Sundvik - -## quantum/serial_link/tests/transport_tests.cpp - -* bcdf9ab76bf3723e6015d4255d53e7c1e7259b61 Sat Aug 27 14:18:49 2016 +0300 Fred Sundvik - -## quantum/serial_link/tests/triple_buffered_object_tests.cpp - -* ffb0a126f5b2484eda7f6b1c62ea61924eec6521 Sat Aug 27 14:25:52 2016 +0300 Fred Sundvik - -## quantum/template/config.h - -* 6f3141965e88c4ee0ebf7c18a243e4c2d9c5021b Tue Oct 27 14:33:18 2015 -0400 Jack Humbert -* 24f2698fba0055128eb90fbde793e3c84900df69 Sat Jan 23 20:45:52 2016 -0500 Jack Humbert -* 577971ab07a49405e1dcd8e5f75b3ecb87e710b9 Mon Mar 28 00:03:21 2016 -0500 IBNobody -* 1d13aa933bbb57bf0c1fe0196981b81233c3df97 Mon Mar 28 19:45:20 2016 -0500 IBNobody -* aaa758f1d3f97dda39879f2b055ad2da9680adfe Mon May 23 20:42:21 2016 -0700 Eric Tang -* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 Jack Humbert - -## quantum/template/Makefile - -* 6f3141965e88c4ee0ebf7c18a243e4c2d9c5021b Tue Oct 27 14:33:18 2015 -0400 Jack Humbert -* 6485c7d7dae01c499a7e1f27e7956f12ce0f6901 Thu Nov 5 12:07:03 2015 -0500 Jack Humbert -* 24f2698fba0055128eb90fbde793e3c84900df69 Sat Jan 23 20:45:52 2016 -0500 Jack Humbert -* 577971ab07a49405e1dcd8e5f75b3ecb87e710b9 Mon Mar 28 00:03:21 2016 -0500 IBNobody -* 0656f2fa10e25e160617c3e5d14cfbae35dd9c8d Fri Apr 29 22:19:40 2016 -0400 Jack Humbert -* 38987d4c1589d2d457459f42e179be24b712be30 Sat May 28 12:05:17 2016 -0400 Jack Humbert -* d9e4dad0a828a8a904f44dda090a4d6d08fe2948 Sat Jun 11 13:31:31 2016 -0400 Jack Humbert -* a8375fa15a6ca9285eb15ae89bcda898349e06f8 Tue Jun 21 10:21:43 2016 -0400 Jack Humbert -* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 Jack Humbert -* ab4d7adbb96fa034fd20364247d615f527661594 Fri Aug 19 09:06:28 2016 +0300 Fred Sundvik - -## quantum/template/readme.md - -* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 Jack Humbert -* 1f5838a28679975f689e35471a35720ed5c7e7c5 Sat Aug 27 23:29:37 2016 +0300 Fred Sundvik - -## quantum/template/rules.mk - -* ab4d7adbb96fa034fd20364247d615f527661594 Fri Aug 19 09:06:28 2016 +0300 Fred Sundvik - -## quantum/template/template.c - -* 6f3141965e88c4ee0ebf7c18a243e4c2d9c5021b Tue Oct 27 14:33:18 2015 -0400 Jack Humbert -* 641859df84bf40025b2c14319d1a168a435562e2 Thu Mar 10 11:28:34 2016 -0500 yoyoerx -* eba9a7d74db0be548cddc107f0370dabf43b017f Tue Mar 15 23:52:51 2016 -0500 IBNobody -* ec62d9e85cab5cf166241b0536120d005fa7c898 Tue Mar 22 20:39:05 2016 -0500 IBNobody -* 3d56ec052ed485d4b717da930c4024b4a3f792e0 Tue Mar 22 21:06:22 2016 -0500 IBNobody -* 2181be029e01d9cf46ae3cadcdf25f5bca02c631 Mon Mar 28 16:13:37 2016 +0200 Damien Pollet -* 0656f2fa10e25e160617c3e5d14cfbae35dd9c8d Fri Apr 29 22:19:40 2016 -0400 Jack Humbert -* 1a8c0dd22d6a2255511d0db6a456315541b5815b Sun May 15 00:27:32 2016 -0400 Erez Zukerman -* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 Jack Humbert -* 589df84d6cd19ad7d776cc19bcddade1cd178ddc Thu Jul 7 09:58:44 2016 -0400 Jack Humbert -* c1dfb636ef61159456bdb24f4fee3f27e5babbeb Thu Jul 7 12:22:10 2016 -0400 Jack Humbert - -## quantum/template/template.h - -* 6f3141965e88c4ee0ebf7c18a243e4c2d9c5021b Tue Oct 27 14:33:18 2015 -0400 Jack Humbert -* 24f2698fba0055128eb90fbde793e3c84900df69 Sat Jan 23 20:45:52 2016 -0500 Jack Humbert -* ee1b94045e5bebda517119cb1853b0ab3fd0f499 Fri Mar 4 10:53:58 2016 -0500 Noah Andrews -* 641859df84bf40025b2c14319d1a168a435562e2 Thu Mar 10 11:28:34 2016 -0500 yoyoerx -* eba9a7d74db0be548cddc107f0370dabf43b017f Tue Mar 15 23:52:51 2016 -0500 IBNobody -* ec62d9e85cab5cf166241b0536120d005fa7c898 Tue Mar 22 20:39:05 2016 -0500 IBNobody -* 2181be029e01d9cf46ae3cadcdf25f5bca02c631 Mon Mar 28 16:13:37 2016 +0200 Damien Pollet -* 0656f2fa10e25e160617c3e5d14cfbae35dd9c8d Fri Apr 29 22:19:40 2016 -0400 Jack Humbert -* 1a8c0dd22d6a2255511d0db6a456315541b5815b Sun May 15 00:27:32 2016 -0400 Erez Zukerman -* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert -* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 Jack Humbert - -## quantum/template/keymaps/default/config.h - -* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 Jack Humbert - -## quantum/template/keymaps/default/keymap.c - -* d9e4dad0a828a8a904f44dda090a4d6d08fe2948 Sat Jun 11 13:31:31 2016 -0400 Jack Humbert -* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 Jack Humbert - -## quantum/template/keymaps/default/Makefile - -* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 Jack Humbert - -## quantum/template/keymaps/default/readme.md - -* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 Jack Humbert - -## quantum/tools/eeprom_reset.hex - -* 0b0ec82427aff54481103559066213056b6d7598 Sat Apr 16 00:01:22 2016 -0400 Jack Humbert - -## quantum/tools/readme.md - -* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 Jack Humbert - -## quantum/visualizer/lcd_backlight.c - -* 9f33a5593cc70dfb0885328061f1aa4b2c2fa386 Wed Jul 6 20:15:45 2016 +0300 Fred Sundvik - -## quantum/visualizer/lcd_backlight.h - -* 9f33a5593cc70dfb0885328061f1aa4b2c2fa386 Wed Jul 6 20:15:45 2016 +0300 Fred Sundvik - -## quantum/visualizer/led_test.c - -* 6c296557909501b71fe344ce379e74094cf77c8e Wed Jul 6 20:30:58 2016 +0300 Fred Sundvik -* 07d0d5cbe48d7afaf0bc8c9916d40179ec51cb42 Thu Jul 7 12:46:10 2016 +0300 Fred Sundvik - -## quantum/visualizer/led_test.h - -* 6c296557909501b71fe344ce379e74094cf77c8e Wed Jul 6 20:30:58 2016 +0300 Fred Sundvik - -## quantum/visualizer/LICENSE.md - -* 9f33a5593cc70dfb0885328061f1aa4b2c2fa386 Wed Jul 6 20:15:45 2016 +0300 Fred Sundvik - -## quantum/visualizer/readme.md - -* 9f33a5593cc70dfb0885328061f1aa4b2c2fa386 Wed Jul 6 20:15:45 2016 +0300 Fred Sundvik - -## quantum/visualizer/visualizer.c - -* 9f33a5593cc70dfb0885328061f1aa4b2c2fa386 Wed Jul 6 20:15:45 2016 +0300 Fred Sundvik -* 6c296557909501b71fe344ce379e74094cf77c8e Wed Jul 6 20:30:58 2016 +0300 Fred Sundvik -* 70797bb8f21c72cba15b314b2d0a6684bfedc369 Thu Jul 7 00:20:20 2016 +0300 Fred Sundvik -* 7229751ba9d402b2a6c9dc1b7b29385b5162fe41 Thu Jul 7 14:01:20 2016 +0300 Fred Sundvik -* dae7c9bfb3325412c542fbbe4342c9c8e0fc1904 Thu Jul 7 14:12:56 2016 +0300 Fred Sundvik -* 9eb8d05246fba4f46c04b8fa1884b8f2d2ee0664 Tue Jan 17 21:47:07 2017 -0500 SjB - -## quantum/visualizer/visualizer.h - -* 9f33a5593cc70dfb0885328061f1aa4b2c2fa386 Wed Jul 6 20:15:45 2016 +0300 Fred Sundvik -* 6c296557909501b71fe344ce379e74094cf77c8e Wed Jul 6 20:30:58 2016 +0300 Fred Sundvik -* 70797bb8f21c72cba15b314b2d0a6684bfedc369 Thu Jul 7 00:20:20 2016 +0300 Fred Sundvik -* 9eb8d05246fba4f46c04b8fa1884b8f2d2ee0664 Tue Jan 17 21:47:07 2017 -0500 SjB - -## quantum/visualizer/visualizer.mk - -* 9f33a5593cc70dfb0885328061f1aa4b2c2fa386 Wed Jul 6 20:15:45 2016 +0300 Fred Sundvik -* 6c296557909501b71fe344ce379e74094cf77c8e Wed Jul 6 20:30:58 2016 +0300 Fred Sundvik -* 70797bb8f21c72cba15b314b2d0a6684bfedc369 Thu Jul 7 00:20:20 2016 +0300 Fred Sundvik -* 07d0d5cbe48d7afaf0bc8c9916d40179ec51cb42 Thu Jul 7 12:46:10 2016 +0300 Fred Sundvik -* 7229751ba9d402b2a6c9dc1b7b29385b5162fe41 Thu Jul 7 14:01:20 2016 +0300 Fred Sundvik -* aaac254ebce2005272e7385488b5690bbbe6d7c8 Thu Jul 7 14:29:53 2016 +0300 Fred Sundvik -* caedec92d2c22480313c43a364408fb920c55364 Thu Jul 7 14:42:16 2016 +0300 Fred Sundvik - -## quantum/visualizer/example_integration/callbacks.c - -* 9f33a5593cc70dfb0885328061f1aa4b2c2fa386 Wed Jul 6 20:15:45 2016 +0300 Fred Sundvik - -## quantum/visualizer/example_integration/gfxconf.h - -* 9f33a5593cc70dfb0885328061f1aa4b2c2fa386 Wed Jul 6 20:15:45 2016 +0300 Fred Sundvik - -## quantum/visualizer/example_integration/lcd_backlight_hal.c - -* 9f33a5593cc70dfb0885328061f1aa4b2c2fa386 Wed Jul 6 20:15:45 2016 +0300 Fred Sundvik - -## quantum/visualizer/example_integration/visualizer_user.c - -* 9f33a5593cc70dfb0885328061f1aa4b2c2fa386 Wed Jul 6 20:15:45 2016 +0300 Fred Sundvik \ No newline at end of file From b1a2c4cd5977120b51c75a535bae9883795f9238 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Sat, 28 Jan 2017 22:08:51 -0800 Subject: [PATCH 279/517] Created License Clarification Details (markdown) --- License-Clarification-Details.md | 1272 ++++++++++++++++++++++++++++++ 1 file changed, 1272 insertions(+) create mode 100644 License-Clarification-Details.md diff --git a/License-Clarification-Details.md b/License-Clarification-Details.md new file mode 100644 index 0000000000..77ee688bb4 --- /dev/null +++ b/License-Clarification-Details.md @@ -0,0 +1,1272 @@ +# Details + +This page contains details that are no longer relevant to the License Clarification effort. + +## Small Contributions + +Smaller contributions that don't need to sign off on the license change. + +Username | # Lines | Files | +---------|---------|-------| +@AGausmann | 3 | quantum/process_keycode/process_midi.c | +@Chipairon | 2 | quantum/keymap_extras/keymap_spanish.h | +@coderkun | 5 | quantum/process_keycode/process_unicode.c | +@fernandodeperto | 3 | quantum/keymap_extras/keymap_nordic.h | +@jeebak | 8 | quantum/audio/audio_pwm.c | +@Keller-Laminar | 1 | quantum/keymap_extras/keymap_dvorak.h | +kevin at letord.fr | 1 | quantum/keymap_extras/keymap_french.h | +@ofpies | 3 | quantum/config_common.h
quantum/quantum.c | +@MagicianVivi | 2 | quantum/keymap_extras/keymap_bepo.h | +@NoahAndrews | 1 | quantum/template/template.h | +@robertdale | 6 | quantum/process_keycode/process_music.c | +@scott-t-wilson | 3 | quantum/rgblight.c
quantum/rgblight.h | +@skullydazed | 2 | quantum/rgblight.c | +@yoyoerx | 6 | quantum/matrix.c
quantum/template/template.c | + +# Single Author Files + +These are the single author files that still need to have their license clarified. + +* quantum/dynamic_macro.h: @Vifon +* quantum/pincontrol.h: @wez +* quantum/keymap_extras/keymap_canadian_multilingual.h: @DidierLoiseau +* quantum/keymap_extras/keymap_jp.h: @h-youhei +* quantum/keymap_extras/keymap_unicode_cyrillic.h: @kuel +* quantum/keymap_extras/keymap_russian.h: @kuel + +# Multi Author Files + +Each file listed below has more than one author and needs to have copyright resolved. The number of lines contributed by each author is shown as determined by: + +```git blame | cut -f 2 -d '(' | cut -f 1 -d '2' | sort | uniq -c | sed 's/^ */* /'``` + +## quantum/config_common.h + +* 24 Eric Tang +* 2 Fred Sundvik +* 58 Jack Humbert +* 1 ofples + +## quantum/keycode_config.h + +* 5 IBNobody +* 20 Jack Humbert +* 1 fredizzimo + +## quantum/keymap.h + +* 39 Jack Humbert +* 6 Wilba6582 +* 8 fredizzimo + +## quantum/keymap_common.c + +* 1 Fred Sundvik +* 162 Jack Humbert +* 11 Wilba6582 +* 3 fredizzimo + +## quantum/light_ws2812.c + +* 163 Jack Humbert +* 168 Yang Liu + +## quantum/light_ws2812.h + +* 11 Jack Humbert +* 70 Yang Liu + +## quantum/matrix.c + +* 3 Erez Zukerman +* 15 Eric Tang +* 239 IBNobody +* 152 Jack Humbert +* 2 fredizzimo +* 2 yoyoerx + +## quantum/quantum.c + +* 38 Erez Zukerman +* 96 Eric Tang +* 49 Gergely Nagy +* 68 IBNobody +* 4 Jack & Erez +* 561 Jack Humbert +* 2 Ofer Plesser +* 14 Pavlos Vinieratos +* 2 Priyadi Iman Nurcahyo +* 12 Smilliam +* 52 TerryMathews +* 12 Wojciech Siewierski + +## quantum/quantum.h + +* 23 Erez Zukerman +* 4 Eric Tang +* 1 Fred Sundvik +* 3 Gergely Nagy +* 86 Jack Humbert +* 2 Pavlos Vinieratos +* 5 fredizzimo + +## quantum/quantum_keycodes.h + +* 2 Erez Zukerman +* 2 Jack Humbert +* 313 Wilba6582 + +## quantum/rgblight.c + +* 13 Erez Zukerman +* 5 Eric Tang +* 39 Fred Sundvik +* 101 Jack Humbert +* 311 Jordi Orlando +* 1 Scott Wilson +* 147 Yang Liu +* 2 skullY + +## quantum/rgblight.h + +* 3 Erez Zukerman +* 2 Eric Tang +* 6 Fred Sundvik +* 12 Jack Humbert +* 2 Scott Wilson +* 80 Yang Liu + +## quantum/api/api_sysex.c + +* 44 Fred Sundvik +* 13 Jack Humbert + +## quantum/audio/audio.c + +* 318 IBNobody +* 164 Jack Humbert + +## quantum/audio/audio.h + +* 15 IBNobody +* 76 Jack Humbert + +## quantum/audio/audio_pwm.c + +* 642 IBNobody +* 1 Jack Humbert + +## quantum/audio/song_list.h + +* 101 IBNobody +* 16 Jack Humbert +* 8 JeeBak Kim + +## quantum/audio/voices.c + +* 24 IBNobody +* 256 Jack Humbert + +## quantum/audio/voices.h + +* 3 IBNobody +* 32 Jack Humbert + +## quantum/keymap_extras/keymap_bepo.h + +* 308 Didier Loiseau +* 1 Jack Humbert +* 2 Vivien Alger + +## quantum/keymap_extras/keymap_colemak.h + +* 31 Erez Zukerman +* 44 Jack Humbert + +## quantum/keymap_extras/keymap_dvorak.h + +* 69 Jack Humbert +* 15 Jonathan A. Kollasch +* 1 Keller-Laminar + +## quantum/keymap_extras/keymap_fr_ch.h + +* 1 Jack Humbert +* 1 Jonathan A. Kollasch +* 96 Vincent Pochet + +## quantum/keymap_extras/keymap_french.h + +* 80 Jack Humbert +* 2 Jonathan A. Kollasch +* 1 Kévin Letord + +## quantum/keymap_extras/keymap_french_osx.h + +* 1 Jack Humbert +* 76 Sébastien Pérochon + +## quantum/keymap_extras/keymap_german.h + +* 1 Jack Humbert +* 1 Jonathan A. Kollasch +* 58 Matthias Schmitt +* 39 plgruener + +## quantum/keymap_extras/keymap_german_ch.h + +* 1 Jack Humbert +* 1 Jonathan A. Kollasch +* 100 heartsekai + +## quantum/keymap_extras/keymap_german_osx.h + +* 1 Jack Humbert +* 96 Stephan Bösebeck + +## quantum/keymap_extras/keymap_neo2.h + +* 2 Jack Humbert +* 42 Matthias Schmitt +* 19 plgruener + +## quantum/keymap_extras/keymap_nordic.h + +* 1 Andreas Lindhé +* 1 Erez Zukerman +* 3 Fernando Mendonca +* 53 Jack Humbert +* 1 Jonathan A. Kollasch + +## quantum/keymap_extras/keymap_norwegian.h + +* 1 Andreas Lindhé +* 40 joar + +## quantum/keymap_extras/keymap_plover.h + +* 1 Jack Humbert +* 31 James ‘Twey’ Kay + +## quantum/keymap_extras/keymap_spanish.h + +* 59 Jack Humbert +* 1 Jonathan A. Kollasch +* 2 Rubén Díaz-Jorge + +## quantum/keymap_extras/keymap_uk.h + +* 34 Jack Humbert +* 2 Jonathan A. Kollasch + +## quantum/process_keycode/process_midi.c + +* 3 Adam Gausmann +* 65 Jack Humbert + +## quantum/process_keycode/process_music.c + +* 180 Jack Humbert +* 6 Robert Dale + +## quantum/process_keycode/process_tap_dance.c + +* 90 Gergely Nagy +* 38 Jack Humbert +* 8 Pavlos Vinieratos + +## quantum/process_keycode/process_tap_dance.h + +* 22 Gergely Nagy +* 41 Jack Humbert +* 9 Pavlos Vinieratos + +## quantum/process_keycode/process_unicode.c + +* 176 Gergely Nagy +* 24 Jack Humbert +* 84 Priyadi Iman Nurcahyo +* 5 coderkun + +## quantum/process_keycode/process_unicode.h + +* 40 Gergely Nagy +* 117 Jack Humbert +* 10 Priyadi Iman Nurcahyo + +## quantum/template/config.h + +* 9 Eric Tang +* 78 IBNobody +* 75 Jack Humbert + +## quantum/template/template.c + +* 9 Damien Pollet +* 7 IBNobody +* 8 Jack Humbert +* 4 yoyoerx + +## quantum/template/template.h + +* 2 Damien Pollet +* 16 Jack Humbert +* 1 Noah Andrews + +# All Single Author Files + +These files have only a single author and so clarifying licensing should be pretty straightforward. + +* quantum/analog.c: Jack Humbert +* quantum/analog.h: Jack Humbert +* quantum/api.h: Jack Humbert +* quantum/keycode_config.c: Jack Humbert +* quantum/pincontrol.h: Wez Furlong +* quantum/api/api_sysex.h: Jack Humbert +* quantum/audio/luts.c: IBNobody +* quantum/audio/luts.h: IBNobody +* quantum/audio/musical_notes.h: Jack Humbert +* quantum/audio/wave.h: Jack Humbert +* quantum/keymap_extras/keymap_br_abnt2.h: Potiguar Faga +* quantum/keymap_extras/keymap_dvp.h: Artyom Mironov +* quantum/keymap_extras/keymap_jp.h: h-youhei +* quantum/keymap_extras/keymap_unicode_cyrillic.h: kuel +* quantum/process_keycode/process_chording.c: Jack Humbert +* quantum/process_keycode/process_chording.h: Jack Humbert +* quantum/process_keycode/process_leader.c: Jack Humbert +* quantum/process_keycode/process_leader.h: Jack Humbert +* quantum/process_keycode/process_midi.h: Jack Humbert +* quantum/process_keycode/process_music.h: Jack Humbert +* quantum/process_keycode/process_printer.c: Jack Humbert +* quantum/process_keycode/process_printer.h: Jack Humbert +* quantum/process_keycode/process_printer_bb.c: Jack Humbert +* quantum/serial_link/LICENSE: Fred Sundvik +* quantum/serial_link/protocol/frame_router.c: Fred Sundvik +* quantum/serial_link/protocol/frame_router.h: Fred Sundvik +* quantum/serial_link/protocol/frame_validator.c: Fred Sundvik +* quantum/serial_link/protocol/frame_validator.h: Fred Sundvik +* quantum/serial_link/protocol/physical.h: Fred Sundvik +* quantum/serial_link/protocol/triple_buffered_object.c: Fred Sundvik +* quantum/serial_link/protocol/triple_buffered_object.h: Fred Sundvik +* quantum/serial_link/system/serial_link.c: Fred Sundvik +* quantum/serial_link/system/serial_link.h: Fred Sundvik +* quantum/serial_link/tests/byte_stuffer_tests.cpp: Fred Sundvik +* quantum/serial_link/tests/frame_router_tests.cpp: Fred Sundvik +* quantum/serial_link/tests/frame_validator_tests.cpp: Fred Sundvik +* quantum/serial_link/tests/Makefile: Fred Sundvik +* quantum/serial_link/tests/transport_tests.cpp: Fred Sundvik +* quantum/serial_link/tests/triple_buffered_object_tests.cpp: Fred Sundvik +* quantum/template/rules.mk: Fred Sundvik +* quantum/template/keymaps/default/config.h: Jack Humbert +* quantum/template/keymaps/default/Makefile: Jack Humbert +* quantum/template/keymaps/default/readme.md: Jack Humbert +* quantum/tools/eeprom_reset.hex: Jack Humbert +* quantum/tools/readme.md: Jack Humbert +* quantum/visualizer/lcd_backlight.c: Fred Sundvik +* quantum/visualizer/lcd_backlight.h: Fred Sundvik +* quantum/visualizer/led_test.h: Fred Sundvik +* quantum/visualizer/LICENSE.md: Fred Sundvik +* quantum/visualizer/readme.md: Fred Sundvik +* quantum/visualizer/example_integration/callbacks.c: Fred Sundvik +* quantum/visualizer/example_integration/gfxconf.h: Fred Sundvik +* quantum/visualizer/example_integration/lcd_backlight_hal.c: Fred Sundvik +* quantum/visualizer/example_integration/visualizer_user.c: Fred Sundvik + +# All Files + +## quantum/analog.c + +* 46e7fb2d3ccd699c0a1b1fd9d02860b1f2a44141 Mon Oct 26 14:49:46 2015 -0400 Jack Humbert + +## quantum/analog.h + +* 46e7fb2d3ccd699c0a1b1fd9d02860b1f2a44141 Mon Oct 26 14:49:46 2015 -0400 Jack Humbert + +## quantum/api.c + +* 7edac212c8ed8442bf4207e70dc8194631b2bf27 Sat Nov 26 15:37:46 2016 -0500 Jack Humbert +* 06c64bbff3e228df542149acde64eadaf59b9b0f Mon Dec 19 11:18:18 2016 -0500 Jack Humbert + +## quantum/api.h + +* 7edac212c8ed8442bf4207e70dc8194631b2bf27 Sat Nov 26 15:37:46 2016 -0500 Jack Humbert + +## quantum/config_common.h + +* 35a81f5b8b081e1607a7c04489b01f551c3213cc Mon Oct 26 16:32:37 2015 -0400 Jack Humbert +* aaa758f1d3f97dda39879f2b055ad2da9680adfe Mon May 23 20:42:21 2016 -0700 Eric Tang +* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 Jack Humbert +* 705c775a4a433249081321cea0c2def2627817dc Sun Aug 21 22:05:55 2016 -0500 IBNobody +* 936a26d04ffa12801031c058f27e221174e3fabd Thu Aug 25 00:15:41 2016 -0500 IBNobody +* 6390033e8688550826a4bd3004a2e76568600657 Mon Nov 21 20:14:16 2016 -0500 Jack Humbert +* 03d6e165bb0baf9d0093250d3c3c0771290df4d6 Fri Nov 25 09:17:40 2016 +0200 ofples +* 0c9d66eb59add717397ba83d508577073412ce86 Fri Nov 25 09:20:41 2016 +0200 ofples +* de1df639535817e17f1c01f07e7a629cec478526 Sat Nov 26 13:55:41 2016 +0700 Priyadi Iman Nurcahyo +* 17acde94ee2695ab69ea336742c904d649dce17c Sat Nov 26 14:02:38 2016 +0700 Priyadi Iman Nurcahyo +* d9d67e7b7686fdcbc7269a76d2a54c42325bdd03 Sat Nov 26 15:26:02 2016 +0700 Priyadi Iman Nurcahyo +* f2214ce1cb6cfe7a0efabe870a2c00fb8451ee80 Sat Nov 26 15:57:48 2016 +0700 Priyadi Iman Nurcahyo +* 6e0f994950435aa5867e7b7ce780186d881d74ac Mon Nov 28 23:51:07 2016 -0500 Jack Humbert +* dd685eceb2045371d38f24d454f1ab08ca7416f4 Thu Dec 29 12:13:30 2016 +0200 Fred Sundvik + +## quantum/dynamic_macro.h + +* 39e8e61258b51a2c33a94dd877e983f0b1dae0c1 Thu Aug 18 01:37:13 2016 +0200 Wojciech Siewierski +* 70f32842e5d94f14d05c1f9adcb1b1144a25a132 Sun Oct 9 12:52:39 2016 +0200 Wojciech Siewierski + +## quantum/keycode_config.c + +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert + +## quantum/keycode_config.h + +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert +* 4d4f7684e684bec319f166121463a88cd4a62703 Fri Jul 1 17:04:53 2016 +0300 fredizzimo +* 558f3ec1eb325caf706efc15e2fab26121aba442 Tue Sep 6 23:19:01 2016 -0500 IBNobody + +## quantum/keymap.h + +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert +* 76076db72545bbb649f11394a12721f61579527f Mon Jun 20 22:36:36 2016 -0400 Jack & Erez +* 1a0bac8bccf0e156d2f3c5f14a7214f9677b6370 Tue Jun 21 17:42:29 2016 -0400 Jack Humbert +* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 Jack Humbert +* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 Jack Humbert +* 4d4f7684e684bec319f166121463a88cd4a62703 Fri Jul 1 17:04:53 2016 +0300 fredizzimo +* 50c686587ed49d8079ba1b11d45ceb6a55d6cd4b Thu Jul 7 23:34:33 2016 -0400 TerryMathews +* e692ebf86a962e90c51302e7b17a953ea2858f79 Fri Aug 12 20:38:26 2016 +0900 shela +* 558f3ec1eb325caf706efc15e2fab26121aba442 Tue Sep 6 23:19:01 2016 -0500 IBNobody +* 1048a588c750e27ff0f900cd6aaf670e034086d0 Fri Oct 7 17:15:11 2016 +0200 npoirey +* 5b2e455d3b71bfb90754930d1f22d3e8ce98b927 Mon Oct 10 00:46:20 2016 +0700 Priyadi Iman Nurcahyo +* e27a754b70434de88a37c4a572e4ca5f7730ff58 Wed Oct 12 22:18:27 2016 -0400 Jack & Erez +* 52d7f7d2770a35adf0b0b0c803e05ae8719f539f Sun Oct 16 15:49:45 2016 -0400 Jack Humbert +* 5f91fb413624781ac79db641549b9e08753c04b5 Sun Oct 16 16:03:33 2016 -0400 Jack Humbert +* 33e62c080c9161a0fc921c90ed299a67fc2e1799 Sat Nov 12 20:54:37 2016 -0500 Jack Humbert +* 01038ab54ca6c2858ea9e856c717a1129ffe4156 Fri Dec 23 21:51:11 2016 +0200 Ofer Plesser +* d8a608f3ff4cb4d73cd57be500fd9881e230099d Thu Dec 29 18:28:48 2016 +1100 Wilba6582 + +## quantum/keymap_common.c + +* 46e7fb2d3ccd699c0a1b1fd9d02860b1f2a44141 Mon Oct 26 14:49:46 2015 -0400 Jack Humbert +* 35a81f5b8b081e1607a7c04489b01f551c3213cc Mon Oct 26 16:32:37 2015 -0400 Jack Humbert +* cc1c32671eb1eb43a87e55ac4ffa60b15115e48d Mon Oct 26 20:02:25 2015 -0400 Jack Humbert +* d9f08e6177271594fa573993d9f4dbc2d98c7416 Tue Oct 27 22:00:52 2015 -0400 Jack Humbert +* 18da1e6801335b0d9515ab72e9236a01d629915f Tue Oct 27 23:06:18 2015 -0400 Jack Humbert +* d3db8d62f6fc6a7dee43978ddc8356579b502b37 Wed Oct 28 04:07:15 2015 +0200 Erez Zukerman +* 7d6716beded4a60cd9de24e95d8ec60694692b6f Fri Jan 29 23:27:36 2016 -0500 Jack Humbert +* 65b41e2e59e274354e57ed36cad097823f111f1a Sun Feb 7 11:48:28 2016 +0100 Wojciech Siewierski +* 47dcec29456106828b83fe5b85fa7a7427ddc710 Sun Jan 3 17:49:28 2016 -0500 Chris Gerber +* 1d13aa933bbb57bf0c1fe0196981b81233c3df97 Mon Mar 28 19:45:20 2016 -0500 IBNobody +* 3755ef5ddbdad9f25a53fee951c3eb78035b52c3 Wed Apr 13 20:57:51 2016 -0500 IBNobody +* ee2ee7f4f049dda385a9db7dddd8e7e91681315b Fri Apr 15 13:44:07 2016 -0400 Jack Humbert +* 9cfc74c35b940884618b0fe1e6fd25c570e1c974 Thu Apr 7 15:21:06 2016 +0300 Erez Zukerman +* ab19ebd08a8b955775e6fa94cdf6b8d128d8b43c Sat Apr 16 18:51:58 2016 -0400 Jack Humbert +* c83aa16f1d614c1c10f7597a67ffb9f2ae871951 Sat Apr 16 20:26:02 2016 -0400 Jack Humbert +* 41cc35425ab32c9a9492006da8b667d01d32dfa6 Sat Apr 16 21:31:40 2016 -0400 Jack Humbert +* 8bbd064cf52a76508589579f19595607a1f3af21 Sat Apr 16 23:07:50 2016 -0400 Jack Humbert +* 45f10b4c4b308226fa1568277654a13853a03ab4 Sat Apr 16 22:10:18 2016 -0500 IBNobody +* e7b9959819e709d7df2e96a94bdaf36e4e9e23e3 Sat Apr 16 23:15:40 2016 -0400 Jack Humbert +* a67d425f4d5278595e7ab785a0f246b83fb1a09f Sun Apr 17 01:00:39 2016 -0400 Jack Humbert +* d5b72e7bde5ede25f7d5699b50b7d9eb6f31ba92 Sun Apr 17 12:54:32 2016 -0500 IBNobody +* 3103ea542f0039637a1a266df79a97a7a13fa6b4 Sun Apr 17 12:55:19 2016 -0500 IBNobody +* 23231fa577f7c6c585124226a83f21a7668e62dd Sun Apr 17 14:16:03 2016 -0500 IBNobody +* 5c98ad59606ee95b82c27bf2525383a9ec88542b Sun Apr 17 20:14:37 2016 -0500 IBNobody +* e49712b5593b887c8af18aeb7196513f1c7b7bcf Mon Apr 18 21:01:48 2016 -0400 Jack Humbert +* 620ac4b260fa663d12b11a0b15ac50379523c125 Thu Apr 21 19:35:18 2016 -0700 Eric Tang +* 83e1cc241e3aabd69f6cdcd2581477d4b85bb8d3 Tue May 3 12:56:40 2016 -0500 IBNobody +* 41b3e399b1d43db9574c6016951d92974b3d93e7 Thu May 5 21:50:51 2016 -0400 Jack Humbert +* 1a8c0dd22d6a2255511d0db6a456315541b5815b Sun May 15 00:27:32 2016 -0400 Erez Zukerman +* fde477a927edc6b4207a6968d44aeed021e8b300 Sun May 15 00:51:06 2016 -0400 Jack Humbert +* b732b79b49b098dba8e14493c745075f336747d8 Wed May 18 23:47:16 2016 -0400 Jack Humbert +* 287eb7ad148abc8fe3fb014218d71e205fd9131d Tue May 24 11:56:53 2016 -0400 Jack Humbert +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert +* 4d4f7684e684bec319f166121463a88cd4a62703 Fri Jul 1 17:04:53 2016 +0300 fredizzimo +* 9870082a06386eba8c0c5f22da90d0256ef6244b Thu Jul 7 19:48:39 2016 +0300 Fred Sundvik +* 8b94e26d7c3b30cc57d710a11e5651d15e8e3b20 Sun Jul 24 22:07:43 2016 -0400 Jack Humbert +* d8a608f3ff4cb4d73cd57be500fd9881e230099d Thu Dec 29 18:28:48 2016 +1100 Wilba6582 + +## quantum/light_ws2812.c + +* ba9ac457b2159097ecfd9848c5171c52e3a68260 Sun Jan 24 17:05:47 2016 -0800 Yang Liu +* 57e08eb8badc5db2fb44d2df684f32ea48cce411 Thu Jul 7 11:33:32 2016 -0400 Jack Humbert +* 5f91fb413624781ac79db641549b9e08753c04b5 Sun Oct 16 16:03:33 2016 -0400 Jack Humbert +* 33e62c080c9161a0fc921c90ed299a67fc2e1799 Sat Nov 12 20:54:37 2016 -0500 Jack Humbert +* e9f748751808de2f1e85cf7fb670d78773bd5e76 Sun Nov 13 23:02:38 2016 -0500 Jack Humbert +* 530dd3377e4d409a7ca2fee7e47b60b735ebc0fa Tue Nov 15 13:18:10 2016 -0500 Jack Humbert +* 3774a7fcdab5544fc787f4c200be05fcd417e31f Thu Nov 17 17:42:14 2016 -0500 Jack Humbert + +## quantum/light_ws2812.h + +* ba9ac457b2159097ecfd9848c5171c52e3a68260 Sun Jan 24 17:05:47 2016 -0800 Yang Liu +* 5f91fb413624781ac79db641549b9e08753c04b5 Sun Oct 16 16:03:33 2016 -0400 Jack Humbert +* e9f748751808de2f1e85cf7fb670d78773bd5e76 Sun Nov 13 23:02:38 2016 -0500 Jack Humbert +* 664c0a036b3d7c3ed39f4a7a78d97f4a9cc7d20c Mon Nov 21 19:50:55 2016 -0500 Jack Humbert +* 06c64bbff3e228df542149acde64eadaf59b9b0f Mon Dec 19 11:18:18 2016 -0500 Jack Humbert + +## quantum/matrix.c + +* 46e7fb2d3ccd699c0a1b1fd9d02860b1f2a44141 Mon Oct 26 14:49:46 2015 -0400 Jack Humbert +* 35a81f5b8b081e1607a7c04489b01f551c3213cc Mon Oct 26 16:32:37 2015 -0400 Jack Humbert +* 641859df84bf40025b2c14319d1a168a435562e2 Thu Mar 10 11:28:34 2016 -0500 yoyoerx +* 684793360cdb08ac1e50a6d27e1796fadd527adb Mon May 9 00:36:23 2016 -0400 Jack Humbert +* 1a8c0dd22d6a2255511d0db6a456315541b5815b Sun May 15 00:27:32 2016 -0400 Erez Zukerman +* aaa758f1d3f97dda39879f2b055ad2da9680adfe Mon May 23 20:42:21 2016 -0700 Eric Tang +* 1ae6011cef2230826a9e6db6c5b638677bc640b7 Tue May 24 08:44:40 2016 -0700 Eric Tang +* de57799530d3184722532f93d156364067d8fcd5 Sat May 28 11:56:06 2016 -0400 Jack Humbert +* 008c8d54a0a1a1e908d372d0fe9edb45a2d491e5 Fri Jun 17 22:09:59 2016 -0400 Jack Humbert +* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 Jack Humbert +* 215c2119af5281072d5a6efb0308408793cadd08 Wed Jun 29 16:21:41 2016 -0400 Jack Humbert +* 4d4f7684e684bec319f166121463a88cd4a62703 Fri Jul 1 17:04:53 2016 +0300 fredizzimo +* 8e88d55bfd7c88cb15845e0c6415e4e892532861 Mon Jul 4 11:45:58 2016 -0400 Jack Humbert +* 3577e26fd9916ceab58779ec6323d43da54eb3b5 Wed Jul 6 00:24:31 2016 -0400 Jack Humbert +* 17170ba76d3c94edcf1ab263520238fdb0384774 Sun Oct 23 23:00:43 2016 -0500 IBNobody +* 508eddf8ba8548d3f71e1c09a404839beb49f45c Fri Oct 28 14:21:38 2016 -0500 IBNobody +* 4c6960835c0a6e29670dabdc27117d7d3c7f99f5 Fri Oct 28 16:24:20 2016 -0500 IBNobody +* 32f88c07173b795c6981c779057dceba00aeb1cb Sat Oct 29 10:39:03 2016 -0500 IBNobody +* f4030289744fc6dc82dd85c955070c0845813cc5 Sat Oct 29 16:12:58 2016 -0500 IBNobody +* a06115df19a74d39b08758472b221e630c3680d3 Fri Nov 18 23:20:07 2016 -0500 Jack Humbert + +## quantum/pincontrol.h + +* 8485bb34d2e291db5b6c81f892850da1cdca37ba Sun Nov 27 22:43:11 2016 -0800 Wez Furlong + +## quantum/quantum.c + +* 1a8c0dd22d6a2255511d0db6a456315541b5815b Sun May 15 00:27:32 2016 -0400 Erez Zukerman +* 15719f3574c6274ee0f3ec87431927c5a523aa3e Sun May 15 00:40:59 2016 -0400 Jack Humbert +* bf5c2ccee5497523c214dae7aacdc27fdbb0f235 Sun May 15 00:47:25 2016 -0400 Jack Humbert +* fde477a927edc6b4207a6968d44aeed021e8b300 Sun May 15 00:51:06 2016 -0400 Jack Humbert +* 0428214b905e5f8b3bed721885957ce249ba4991 Wed May 18 23:14:00 2016 -0400 Jack Humbert +* b732b79b49b098dba8e14493c745075f336747d8 Wed May 18 23:47:16 2016 -0400 Jack Humbert +* 0275d444d77c9d85d2189b09d8813fb76dc4d566 Thu May 19 15:36:28 2016 +0300 purpleP +* 287eb7ad148abc8fe3fb014218d71e205fd9131d Tue May 24 11:56:53 2016 -0400 Jack Humbert +* 1237025963484d70bbe5185a790bec6544653ccc Tue May 24 23:27:59 2016 -0400 Erez Zukerman +* 8bc69afc633d3e199e3ac0a5bf39e4d255f2ce4a Tue May 24 23:48:46 2016 -0400 Erez Zukerman +* 17977a7e24ddab6ca101341b33c8fe7ad13e68f5 Sat May 28 15:22:30 2016 -0400 Jack Humbert +* 1c9f33c06a6ef18c9c21e5841180af5ae554c34b Wed Jun 1 22:49:55 2016 -0400 Jack Humbert +* 4635b4453335b61df11008fa907eef221db5912b Wed Jun 1 23:00:55 2016 -0400 Jack Humbert +* 794aed37a0da5a277a07e7fa86263e0852fa9f6d Fri Jun 3 12:48:40 2016 -0700 Eric Tang +* b70248fa2144d297504eedbc80a76dfdc40d9f1f Fri Jun 17 21:42:59 2016 -0400 Jack Humbert +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert +* 76076db72545bbb649f11394a12721f61579527f Mon Jun 20 22:36:36 2016 -0400 Jack & Erez +* 98f0807359cfa78d25442b91ff4c5bbfc5679661 Tue Jun 21 22:55:54 2016 -0400 Jack Humbert +* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 Jack Humbert +* b68b722325e1f0f68387e161365fa8e31c79b7b2 Thu Jun 23 23:14:21 2016 -0400 Jack Humbert +* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 Jack Humbert +* 197f152dee834a737cd820f2a95d1ade98be4898 Wed Jun 29 18:29:20 2016 -0400 Jack Humbert +* 60fd885a6e540509baa2193932e15caeaeb8f4c5 Wed Jun 29 18:35:29 2016 -0400 Jack Humbert +* 4d4f7684e684bec319f166121463a88cd4a62703 Fri Jul 1 17:04:53 2016 +0300 fredizzimo +* 1412076df68ac00f9a00173977d2826603c12ddf Mon Jul 4 19:56:08 2016 -0700 Smilliam +* 6b0c9cc905c0985f96a80306cf5fe0d6724b28fc Mon Jul 4 19:58:26 2016 -0700 Smilliam +* a4bf46f9b1d0a0be0cecb2cd0f0d941aa7c71bd3 Wed Jul 6 22:48:19 2016 -0400 Jack Humbert +* 50c686587ed49d8079ba1b11d45ceb6a55d6cd4b Thu Jul 7 23:34:33 2016 -0400 TerryMathews +* f7a86822266603b8ffd21e9f89ec1de8d4950791 Fri Jul 8 03:32:28 2016 -0400 TerryMathews +* b12fe6abb25db1feca6a7649097a8d1cb67a063f Sun Jul 10 19:04:01 2016 -0700 Smilliam +* a998a48673372e409991066d7d2d9ba282f79d59 Mon Jul 11 09:14:43 2016 -0400 Jack Humbert +* a28a6e5b79c819e5f9323f62686498eca3ef399f Wed Jul 13 16:38:02 2016 +0200 Pavlos Vinieratos +* 857aa5bef6a74f8785a7039feea5286c07bf7067 Sat Aug 13 11:14:42 2016 +0200 Gergely Nagy +* 644c8c79271db8cf1bd934b9a80a0215585e46e7 Thu Aug 18 01:34:05 2016 +0200 Wojciech Siewierski +* 0d28787c5cf2173d12f57b397515f91cffaa820a Thu Aug 18 11:29:53 2016 +0200 Gergely Nagy +* e571d4656cd283ce8d793fe3dd2ac176b84b0bf5 Tue Sep 6 18:02:43 2016 -0500 IBNobody +* 558f3ec1eb325caf706efc15e2fab26121aba442 Tue Sep 6 23:19:01 2016 -0500 IBNobody +* 5b2e455d3b71bfb90754930d1f22d3e8ce98b927 Mon Oct 10 00:46:20 2016 +0700 Priyadi Iman Nurcahyo +* 5f91fb413624781ac79db641549b9e08753c04b5 Sun Oct 16 16:03:33 2016 -0400 Jack Humbert +* 33e62c080c9161a0fc921c90ed299a67fc2e1799 Sat Nov 12 20:54:37 2016 -0500 Jack Humbert +* e9f748751808de2f1e85cf7fb670d78773bd5e76 Sun Nov 13 23:02:38 2016 -0500 Jack Humbert +* ffa5b1e7ea6697acf9ebfcade1149031642f7870 Sat Nov 19 11:32:09 2016 +0100 Gergely Nagy +* 74a1f00713d1407fb1d2e20d58da93919ab0c221 Sat Nov 19 18:19:18 2016 +0100 Gergely Nagy +* 664c0a036b3d7c3ed39f4a7a78d97f4a9cc7d20c Mon Nov 21 19:50:55 2016 -0500 Jack Humbert +* 450a8fb5b61de8166fe21eb4f57e1c00514afe32 Mon Nov 21 20:17:45 2016 -0500 Jack Humbert +* cefa8468fb5f28bd67a0c02d371a4aef0964e20c Wed Nov 23 20:16:38 2016 -0500 Jack Humbert +* 7edac212c8ed8442bf4207e70dc8194631b2bf27 Sat Nov 26 15:37:46 2016 -0500 Jack Humbert +* 01038ab54ca6c2858ea9e856c717a1129ffe4156 Fri Dec 23 21:51:11 2016 +0200 Ofer Plesser + +## quantum/quantum.h + +* 1a8c0dd22d6a2255511d0db6a456315541b5815b Sun May 15 00:27:32 2016 -0400 Erez Zukerman +* fde477a927edc6b4207a6968d44aeed021e8b300 Sun May 15 00:51:06 2016 -0400 Jack Humbert +* 0428214b905e5f8b3bed721885957ce249ba4991 Wed May 18 23:14:00 2016 -0400 Jack Humbert +* b732b79b49b098dba8e14493c745075f336747d8 Wed May 18 23:47:16 2016 -0400 Jack Humbert +* 287eb7ad148abc8fe3fb014218d71e205fd9131d Tue May 24 11:56:53 2016 -0400 Jack Humbert +* de57799530d3184722532f93d156364067d8fcd5 Sat May 28 11:56:06 2016 -0400 Jack Humbert +* 17977a7e24ddab6ca101341b33c8fe7ad13e68f5 Sat May 28 15:22:30 2016 -0400 Jack Humbert +* 1c9f33c06a6ef18c9c21e5841180af5ae554c34b Wed Jun 1 22:49:55 2016 -0400 Jack Humbert +* 794aed37a0da5a277a07e7fa86263e0852fa9f6d Fri Jun 3 12:48:40 2016 -0700 Eric Tang +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert +* 98f0807359cfa78d25442b91ff4c5bbfc5679661 Tue Jun 21 22:55:54 2016 -0400 Jack Humbert +* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 Jack Humbert +* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 Jack Humbert +* 197f152dee834a737cd820f2a95d1ade98be4898 Wed Jun 29 18:29:20 2016 -0400 Jack Humbert +* 8125cdb88ce1201fcfd16ed4c5313222ef4c230c Wed Jun 29 18:36:52 2016 -0400 Jack Humbert +* 4d4f7684e684bec319f166121463a88cd4a62703 Fri Jul 1 17:04:53 2016 +0300 fredizzimo +* a28a6e5b79c819e5f9323f62686498eca3ef399f Wed Jul 13 16:38:02 2016 +0200 Pavlos Vinieratos +* e01b4c3fd9a7b66276ffd22dcac25d569d7bb7ff Sat Jul 9 00:41:15 2016 +0300 Fred Sundvik +* 0d28787c5cf2173d12f57b397515f91cffaa820a Thu Aug 18 11:29:53 2016 +0200 Gergely Nagy +* 5f91fb413624781ac79db641549b9e08753c04b5 Sun Oct 16 16:03:33 2016 -0400 Jack Humbert +* 664c0a036b3d7c3ed39f4a7a78d97f4a9cc7d20c Mon Nov 21 19:50:55 2016 -0500 Jack Humbert +* cefa8468fb5f28bd67a0c02d371a4aef0964e20c Wed Nov 23 20:16:38 2016 -0500 Jack Humbert +* 7edac212c8ed8442bf4207e70dc8194631b2bf27 Sat Nov 26 15:37:46 2016 -0500 Jack Humbert + +## quantum/quantum_keycodes.h + +* d8a608f3ff4cb4d73cd57be500fd9881e230099d Thu Dec 29 18:28:48 2016 +1100 Wilba6582 +* 8459bb97c1e8bcb9ccce55a1ed849d373bd7706c Wed Jan 11 21:57:41 2017 -0500 Erez Zukerman +* 3717cf5864d6505e406b5eb75f315e6dc2392912 Thu Jan 12 07:38:07 2017 -0500 Erez Zukerman +* 7288e5ab9c005a7b035d91e68358aa2b6a12420c Fri Jan 13 14:04:51 2017 -0500 Jack Humbert + +## quantum/rgblight.c + +* ba9ac457b2159097ecfd9848c5171c52e3a68260 Sun Jan 24 17:05:47 2016 -0800 Yang Liu +* 2647c7cd84820a833b85e41ea86caf76b36e6ee1 Sun Jan 24 17:19:33 2016 -0800 Yang Liu +* 97f8f378761506914b69d4fd2d5661bfcae28295 Sun Apr 10 21:16:49 2016 -0700 skullY +* 620ac4b260fa663d12b11a0b15ac50379523c125 Thu Apr 21 19:35:18 2016 -0700 Eric Tang +* c37d52d2137acf5739c481cc0c8917ad6fd77161 Tue Apr 26 13:48:36 2016 -0400 Jack Humbert +* e024c11f7a849a38e478cda9fb9939a838cfa2e0 Tue Apr 26 13:50:04 2016 -0400 Jack Humbert +* 80c87054193b9243670aeb85adefbe1aa6c0fda0 Tue Jun 21 12:53:21 2016 -0400 Jack Humbert +* 57e08eb8badc5db2fb44d2df684f32ea48cce411 Thu Jul 7 11:33:32 2016 -0400 Jack Humbert +* 3a860c4bc210857f03ef9fae5043d6d5736d140d Tue Jul 26 14:43:45 2016 -0500 Jordi Orlando +* 899c88cd8bf024792760fcf3ee8be6fed13fb315 Tue Jul 26 14:46:30 2016 -0500 Jordi Orlando +* ea2d2f5d5841791745c93ef27cd1528a7fd69c97 Tue Jul 26 15:31:22 2016 -0500 Jordi Orlando +* b8679bbe045a2285d6ab6bbc420121b26f516b9a Wed Oct 5 20:41:33 2016 -0400 Jack Humbert +* 9b0e21f87f446935f29254bb623c2cfe29472b6e Sun Oct 9 19:26:16 2016 +0300 Fred Sundvik +* 92a3a96849aee708753a6623b0db228023e3baf8 Sun Oct 9 19:47:05 2016 +0300 Fred Sundvik +* ffae9d84c5279b463da112ee15568d536649b819 Sun Oct 9 19:53:41 2016 +0300 Fred Sundvik +* 03b6fcdaf034392e27752a9bd2c11de06a166e39 Mon Oct 10 00:20:24 2016 -0400 Jack Humbert +* 33e62c080c9161a0fc921c90ed299a67fc2e1799 Sat Nov 12 20:54:37 2016 -0500 Jack Humbert +* e9f748751808de2f1e85cf7fb670d78773bd5e76 Sun Nov 13 23:02:38 2016 -0500 Jack Humbert +* 3774a7fcdab5544fc787f4c200be05fcd417e31f Thu Nov 17 17:42:14 2016 -0500 Jack Humbert +* 285c5a91f23e972d9c579184283443111186329d Thu Nov 17 20:56:36 2016 -0500 Erez Zukerman +* 2e23689b8e3222982082c1f5a4f8ce7686f9658b Wed Nov 23 18:52:02 2016 -0500 Jack Humbert +* 4094544d41450617bc21ab58646603b8964eae0e Tue Nov 29 09:23:16 2016 -0500 Erez Zukerman +* cae269b08b642b07ee06dec7120a784a3c3d7aab Fri Dec 23 10:29:19 2016 -0500 Jack Humbert +* 748181dccddb8c9fa52a776f4fcd904ddca9aa31 Wed Dec 28 16:29:02 2016 -0500 Scott Wilson +* b8e74c378b1f118178edf0634d9fa7f0f9dd5e08 Thu Dec 29 09:32:02 2016 -0500 Scott Wilson + +## quantum/rgblight.h + +* ba9ac457b2159097ecfd9848c5171c52e3a68260 Sun Jan 24 17:05:47 2016 -0800 Yang Liu +* 2647c7cd84820a833b85e41ea86caf76b36e6ee1 Sun Jan 24 17:19:33 2016 -0800 Yang Liu +* 620ac4b260fa663d12b11a0b15ac50379523c125 Thu Apr 21 19:35:18 2016 -0700 Eric Tang +* 80c87054193b9243670aeb85adefbe1aa6c0fda0 Tue Jun 21 12:53:21 2016 -0400 Jack Humbert +* 57e08eb8badc5db2fb44d2df684f32ea48cce411 Thu Jul 7 11:33:32 2016 -0400 Jack Humbert +* b8679bbe045a2285d6ab6bbc420121b26f516b9a Wed Oct 5 20:41:33 2016 -0400 Jack Humbert +* 9b0e21f87f446935f29254bb623c2cfe29472b6e Sun Oct 9 19:26:16 2016 +0300 Fred Sundvik +* 33e62c080c9161a0fc921c90ed299a67fc2e1799 Sat Nov 12 20:54:37 2016 -0500 Jack Humbert +* e9f748751808de2f1e85cf7fb670d78773bd5e76 Sun Nov 13 23:02:38 2016 -0500 Jack Humbert +* 3774a7fcdab5544fc787f4c200be05fcd417e31f Thu Nov 17 17:42:14 2016 -0500 Jack Humbert +* 285c5a91f23e972d9c579184283443111186329d Thu Nov 17 20:56:36 2016 -0500 Erez Zukerman +* 2e23689b8e3222982082c1f5a4f8ce7686f9658b Wed Nov 23 18:52:02 2016 -0500 Jack Humbert +* 4094544d41450617bc21ab58646603b8964eae0e Tue Nov 29 09:23:16 2016 -0500 Erez Zukerman +* cae269b08b642b07ee06dec7120a784a3c3d7aab Fri Dec 23 10:29:19 2016 -0500 Jack Humbert +* 748181dccddb8c9fa52a776f4fcd904ddca9aa31 Wed Dec 28 16:29:02 2016 -0500 Scott Wilson + +## quantum/variable_trace.c + +* f519b94be7086852f2afe4ec248786b47968f7ff Sun Nov 6 21:57:26 2016 +0200 Fred Sundvik +* a377017c95b826d83ac7a46ef176d39a58294b44 Sun Nov 6 22:11:24 2016 +0200 Fred Sundvik + +## quantum/variable_trace.h + +* a377017c95b826d83ac7a46ef176d39a58294b44 Sun Nov 6 22:11:24 2016 +0200 Fred Sundvik +* 0ba3e523a7c124e4ce54dfd043dc32e72ad3233b Sun Nov 6 22:44:43 2016 +0200 Fred Sundvik + +## quantum/version.h + +* None None None + +## quantum/api/api_sysex.c + +* 7edac212c8ed8442bf4207e70dc8194631b2bf27 Sat Nov 26 15:37:46 2016 -0500 Jack Humbert +* dd685eceb2045371d38f24d454f1ab08ca7416f4 Thu Dec 29 12:13:30 2016 +0200 Fred Sundvik + +## quantum/api/api_sysex.h + +* 7edac212c8ed8442bf4207e70dc8194631b2bf27 Sat Nov 26 15:37:46 2016 -0500 Jack Humbert + +## quantum/audio/audio.c + +* 73228f5e5d1d4cd31a46e5e93aa893a8f727e3b9 Thu Apr 21 00:37:45 2016 -0400 Jack Humbert +* 620ac4b260fa663d12b11a0b15ac50379523c125 Thu Apr 21 19:35:18 2016 -0700 Eric Tang +* 83e1cc241e3aabd69f6cdcd2581477d4b85bb8d3 Tue May 3 12:56:40 2016 -0500 IBNobody +* 3f02637f4dd765803671c2611191beb096d60b36 Mon May 9 13:17:15 2016 -0400 Jack Humbert +* 15719f3574c6274ee0f3ec87431927c5a523aa3e Sun May 15 00:40:59 2016 -0400 Jack Humbert +* 0428214b905e5f8b3bed721885957ce249ba4991 Wed May 18 23:14:00 2016 -0400 Jack Humbert +* 287eb7ad148abc8fe3fb014218d71e205fd9131d Tue May 24 11:56:53 2016 -0400 Jack Humbert +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert +* 06c64bbff3e228df542149acde64eadaf59b9b0f Mon Dec 19 11:18:18 2016 -0500 Jack Humbert + +## quantum/audio/audio.h + +* 73228f5e5d1d4cd31a46e5e93aa893a8f727e3b9 Thu Apr 21 00:37:45 2016 -0400 Jack Humbert +* 082a0f313d8c842a5de7bae30ec8a3597e35880b Fri Apr 22 00:01:38 2016 -0500 IBNobody +* 83e1cc241e3aabd69f6cdcd2581477d4b85bb8d3 Tue May 3 12:56:40 2016 -0500 IBNobody +* 3f02637f4dd765803671c2611191beb096d60b36 Mon May 9 13:17:15 2016 -0400 Jack Humbert +* 15719f3574c6274ee0f3ec87431927c5a523aa3e Sun May 15 00:40:59 2016 -0400 Jack Humbert +* 0428214b905e5f8b3bed721885957ce249ba4991 Wed May 18 23:14:00 2016 -0400 Jack Humbert +* 287eb7ad148abc8fe3fb014218d71e205fd9131d Tue May 24 11:56:53 2016 -0400 Jack Humbert +* 215c2119af5281072d5a6efb0308408793cadd08 Wed Jun 29 16:21:41 2016 -0400 Jack Humbert + +## quantum/audio/audio_pwm.c + +* 83e1cc241e3aabd69f6cdcd2581477d4b85bb8d3 Tue May 3 12:56:40 2016 -0500 IBNobody +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert + +## quantum/audio/luts.c + +* 83e1cc241e3aabd69f6cdcd2581477d4b85bb8d3 Tue May 3 12:56:40 2016 -0500 IBNobody + +## quantum/audio/luts.h + +* 83e1cc241e3aabd69f6cdcd2581477d4b85bb8d3 Tue May 3 12:56:40 2016 -0500 IBNobody + +## quantum/audio/musical_notes.h + +* 73228f5e5d1d4cd31a46e5e93aa893a8f727e3b9 Thu Apr 21 00:37:45 2016 -0400 Jack Humbert + +## quantum/audio/song_list.h + +* 73228f5e5d1d4cd31a46e5e93aa893a8f727e3b9 Thu Apr 21 00:37:45 2016 -0400 Jack Humbert +* 7d0345ef25b5e1924f1e98c76d78607778e0b17d Sat Jul 30 01:52:33 2016 -0700 JeeBak Kim + +## quantum/audio/voices.c + +* 73228f5e5d1d4cd31a46e5e93aa893a8f727e3b9 Thu Apr 21 00:37:45 2016 -0400 Jack Humbert +* e89b806b850ad1b5484176664288b71b0131683e Thu Apr 21 00:40:00 2016 -0400 Jack Humbert +* 9828aba2a12f03fccbc1095bc8e4918ae58fa31b Thu Apr 21 18:14:25 2016 -0400 Jack Humbert +* 7b3f212500210ae85063b043952b5b3ef6988ad6 Thu Apr 21 23:10:47 2016 -0400 Jack Humbert +* 082a0f313d8c842a5de7bae30ec8a3597e35880b Fri Apr 22 00:01:38 2016 -0500 IBNobody +* b1900c8dde2a68e87aaabd84280a99bf6658ea9f Fri Apr 22 01:02:50 2016 -0400 Jack Humbert +* a8086126fecbdce1c192036cf1011329d406949d Fri Apr 22 01:04:13 2016 -0400 Jack Humbert +* a718c53fe77f0b3b4361c850531eee5f23e3e13d Fri Apr 22 11:58:29 2016 -0400 Jack Humbert +* e7b6bb641c0636c01e3781fe51865fdb20014eeb Mon Apr 25 00:59:47 2016 -0400 Jack Humbert +* 140b97a1cd226432a8ec647004943698e3d87f0b Tue Apr 26 01:16:47 2016 -0400 Jack Humbert +* 66e0323881a5a3da65e14daeec41a1e9cfbda431 Fri Apr 29 12:42:55 2016 -0400 Jack Humbert +* 83e1cc241e3aabd69f6cdcd2581477d4b85bb8d3 Tue May 3 12:56:40 2016 -0500 IBNobody +* 0edfe55bfe4afd037918ff73e49552a28f39a5ca Mon Dec 12 15:39:07 2016 -0500 Jack Humbert +* 06c64bbff3e228df542149acde64eadaf59b9b0f Mon Dec 19 11:18:18 2016 -0500 Jack Humbert +* 438a5d685bb7b726ff59109ce4229eca6303cd8e Tue Dec 20 19:38:22 2016 -0500 Jack Humbert +* 2fa36e38cf28f07ad4a4d74722486921fa7b8706 Wed Dec 21 00:22:32 2016 -0500 Jack Humbert + +## quantum/audio/voices.h + +* 73228f5e5d1d4cd31a46e5e93aa893a8f727e3b9 Thu Apr 21 00:37:45 2016 -0400 Jack Humbert +* e89b806b850ad1b5484176664288b71b0131683e Thu Apr 21 00:40:00 2016 -0400 Jack Humbert +* 9828aba2a12f03fccbc1095bc8e4918ae58fa31b Thu Apr 21 18:14:25 2016 -0400 Jack Humbert +* 7b3f212500210ae85063b043952b5b3ef6988ad6 Thu Apr 21 23:10:47 2016 -0400 Jack Humbert +* 082a0f313d8c842a5de7bae30ec8a3597e35880b Fri Apr 22 00:01:38 2016 -0500 IBNobody +* b1900c8dde2a68e87aaabd84280a99bf6658ea9f Fri Apr 22 01:02:50 2016 -0400 Jack Humbert +* a8086126fecbdce1c192036cf1011329d406949d Fri Apr 22 01:04:13 2016 -0400 Jack Humbert +* a718c53fe77f0b3b4361c850531eee5f23e3e13d Fri Apr 22 11:58:29 2016 -0400 Jack Humbert +* e7b6bb641c0636c01e3781fe51865fdb20014eeb Mon Apr 25 00:59:47 2016 -0400 Jack Humbert +* 140b97a1cd226432a8ec647004943698e3d87f0b Tue Apr 26 01:16:47 2016 -0400 Jack Humbert +* 83e1cc241e3aabd69f6cdcd2581477d4b85bb8d3 Tue May 3 12:56:40 2016 -0500 IBNobody +* 0edfe55bfe4afd037918ff73e49552a28f39a5ca Mon Dec 12 15:39:07 2016 -0500 Jack Humbert +* 06c64bbff3e228df542149acde64eadaf59b9b0f Mon Dec 19 11:18:18 2016 -0500 Jack Humbert +* 438a5d685bb7b726ff59109ce4229eca6303cd8e Tue Dec 20 19:38:22 2016 -0500 Jack Humbert + +## quantum/audio/wave.h + +* 73228f5e5d1d4cd31a46e5e93aa893a8f727e3b9 Thu Apr 21 00:37:45 2016 -0400 Jack Humbert + +## quantum/keymap_extras/keymap_bepo.h + +* 7c33f8493fb4ecd664390232c8de856158f9fcae Sun Feb 7 19:29:49 2016 +0100 Didier Loiseau +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert +* 7b4d30ee50aa534a973473c715924964991739f0 Sun Jul 24 10:57:49 2016 +0200 Vivien Alger + +## quantum/keymap_extras/keymap_br_abnt2.h + +* 7aa31ad338325477199f752ac3e344a6ab9b27d0 Tue Nov 8 13:32:04 2016 -0200 Potiguar Faga + +## quantum/keymap_extras/keymap_canadian_multilingual.h + +* a7cef2ca0a2322448d02008337013936b1d550ec Wed Feb 17 21:45:38 2016 +0100 Didier Loiseau +* 7840e69bfaee1d67de273c235b532d6f20c905a9 Thu Feb 18 00:47:23 2016 +0100 Didier Loiseau +* 911222892ecb1c01551e0abdfbe98ed1dbf82139 Fri Feb 26 00:55:39 2016 +0100 Didier Loiseau +* 3a91ddb0745ae0f52007984793ea1b48abb2098c Tue Mar 1 22:59:38 2016 +0100 Didier Loiseau +* aa5eb49edd993e2abe3adf814e030fcdda4a3596 Wed Mar 2 00:22:41 2016 +0100 Didier Loiseau +* 1aeb59335f2fe67613df25308a630ca453975ac0 Sun Sep 11 02:19:55 2016 +0200 Didier Loiseau + +## quantum/keymap_extras/keymap_colemak.h + +* 46e7fb2d3ccd699c0a1b1fd9d02860b1f2a44141 Mon Oct 26 14:49:46 2015 -0400 Jack Humbert +* 39915b1748cefd99f841fa03b7f6e7c20439fbcf Thu Oct 29 15:12:51 2015 -0400 Jack Humbert +* 3c683aa9f23288ddada760fb49abcc5fa7324f5e Fri Feb 5 16:28:24 2016 +0200 Erez Zukerman +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert + +## quantum/keymap_extras/keymap_dvorak.h + +* 46e7fb2d3ccd699c0a1b1fd9d02860b1f2a44141 Mon Oct 26 14:49:46 2015 -0400 Jack Humbert +* 233af3a41c69d456583bfcfd897233b9c117caa6 Mon Feb 22 13:06:26 2016 -0500 Keller-Laminar +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert +* 4278d8861526ed285d9d00badcdc8c121454be60 Thu Jul 14 11:32:43 2016 -0500 Jonathan A. Kollasch +* f0021c9cb9e30d47d5a3ab5ec75e59e626c3d244 Mon Sep 19 14:25:44 2016 -0500 Jonathan A. Kollasch + +## quantum/keymap_extras/keymap_dvp.h + +* 6e003b1e3fa844cfde0069004e755aae7a9539f3 Wed Oct 19 23:45:55 2016 +0300 Artyom Mironov + +## quantum/keymap_extras/keymap_fr_ch.h + +* 1934e8a270820ff6f08c95f4399b26162623e4e0 Sat Feb 20 14:01:28 2016 +0100 Vincent Pochet +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert +* 25938a09a6bfb2624bc96841b53897eda532e293 Thu Jul 14 11:13:35 2016 -0500 Jonathan A. Kollasch + +## quantum/keymap_extras/keymap_french.h + +* 46e7fb2d3ccd699c0a1b1fd9d02860b1f2a44141 Mon Oct 26 14:49:46 2015 -0400 Jack Humbert +* 4a19cc054dc7aeb0a35613d608143bf51fa791cc Sat Feb 27 15:22:54 2016 +0100 Kévin Letord +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert +* 010dd1308420e25b327fa4d5d6b13f67a849408b Thu Jul 14 11:04:25 2016 -0500 Jonathan A. Kollasch +* 25938a09a6bfb2624bc96841b53897eda532e293 Thu Jul 14 11:13:35 2016 -0500 Jonathan A. Kollasch + +## quantum/keymap_extras/keymap_french_osx.h + +* 48eff6dd89672c6c71afd8a3d1cdc5d35b0bf768 Tue Jan 5 10:49:36 2016 +0100 Sébastien Pérochon +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert + +## quantum/keymap_extras/keymap_german.h + +* 3dbcad51d1217b32c3c17917c2646fa7a9a9165b Sat Dec 19 01:22:12 2015 +0100 Matthias Schmitt +* da09312dd56e3b085fb217cc7cc2abf06f401992 Tue Jan 19 20:04:08 2016 +0100 plgruener +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert +* 25938a09a6bfb2624bc96841b53897eda532e293 Thu Jul 14 11:13:35 2016 -0500 Jonathan A. Kollasch + +## quantum/keymap_extras/keymap_german_ch.h + +* 465aabe11dbd673fb4c68ecbffbfb062273def1a Wed May 18 21:22:04 2016 +0200 heartsekai +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert +* 25938a09a6bfb2624bc96841b53897eda532e293 Thu Jul 14 11:13:35 2016 -0500 Jonathan A. Kollasch + +## quantum/keymap_extras/keymap_german_osx.h + +* e44c30f2030dd4c481a6e38e9392f147be7b0ae2 Fri Jan 15 15:55:00 2016 +0100 Stephan Bösebeck +* bfc6eca44aeb3ad22a1c37206005dcfe617431cd Mon Mar 14 13:35:34 2016 +0100 Daniel Kriesten +* dbd4ab3457dd001ab4bbcec14315047b815f7dfe Thu Mar 31 23:15:59 2016 +0200 Stephan Bösebeck +* 6d40f7c5060f608068b0c4fc90871687c70b4f05 Sun Apr 17 22:19:47 2016 +0200 Stephan Bösebeck +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert +* 1a0bac8bccf0e156d2f3c5f14a7214f9677b6370 Tue Jun 21 17:42:29 2016 -0400 Jack Humbert + +## quantum/keymap_extras/keymap_jp.h + +* 2febf9b9f7d610fc2eca666a842272cb90a87919 Tue Nov 22 20:40:12 2016 +0900 h-youhei + +## quantum/keymap_extras/keymap_neo2.h + +* 7b7870bae178c80138be5c587238fdedeb837df9 Sat Dec 19 01:41:23 2015 +0100 Matthias Schmitt +* 4ca43225011ac94bd0a7976baf7f84059274dfbf Fri Feb 19 21:04:30 2016 +0100 plgruener +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert +* e329729d3a11b5798f4e2b9f65ac9bc2dcc84a9e Tue Jun 21 18:32:28 2016 -0400 Jack Humbert + +## quantum/keymap_extras/keymap_nordic.h + +* 46e7fb2d3ccd699c0a1b1fd9d02860b1f2a44141 Mon Oct 26 14:49:46 2015 -0400 Jack Humbert +* c29ad125a7a58d5a2ced0a619165204136da9019 Fri Feb 5 01:50:54 2016 +0100 Fernando Mendonca +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert +* 25938a09a6bfb2624bc96841b53897eda532e293 Thu Jul 14 11:13:35 2016 -0500 Jonathan A. Kollasch +* 283ebbe14298fe75128765fa42c46f02534fb761 Mon Jul 25 12:50:27 2016 +0200 Andreas Lindhé +* 555e41d9e5f8d393637898e2c77c64066b648245 Fri Dec 2 13:03:51 2016 -0500 Erez Zukerman + +## quantum/keymap_extras/keymap_norwegian.h + +* e329729d3a11b5798f4e2b9f65ac9bc2dcc84a9e Tue Jun 21 18:32:28 2016 -0400 Jack Humbert +* b6fa762234fb5a3590d0ff91ffdf5aa3ae322c8f Mon Jul 25 11:29:54 2016 +0200 Andreas Lindhé + +## quantum/keymap_extras/keymap_plover.h + +* 7ccfaf750d08bdb3a25ef2869cac251b7cd4d3ad Sat Apr 23 18:49:10 2016 +0100 James ‘Twey’ Kay +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert + +## quantum/keymap_extras/keymap_russian.h + +* c5ee24a6c3ea39e9725dfc276c92d5bce726ca78 Sun Aug 7 11:01:12 2016 -0500 kuel +* 2a0121a78643b1dc774d82352f8c9e246010803e Sun Aug 7 11:07:38 2016 -0500 kuel + +## quantum/keymap_extras/keymap_spanish.h + +* 46e7fb2d3ccd699c0a1b1fd9d02860b1f2a44141 Mon Oct 26 14:49:46 2015 -0400 Jack Humbert +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert +* 132c04746910f7230b63ed33717c4ed65599ed1b Sat Jul 2 10:26:04 2016 +0200 Rubén Díaz-Jorge +* 25938a09a6bfb2624bc96841b53897eda532e293 Thu Jul 14 11:13:35 2016 -0500 Jonathan A. Kollasch + +## quantum/keymap_extras/keymap_uk.h + +* 46e7fb2d3ccd699c0a1b1fd9d02860b1f2a44141 Mon Oct 26 14:49:46 2015 -0400 Jack Humbert +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert +* 010dd1308420e25b327fa4d5d6b13f67a849408b Thu Jul 14 11:04:25 2016 -0500 Jonathan A. Kollasch +* 25938a09a6bfb2624bc96841b53897eda532e293 Thu Jul 14 11:13:35 2016 -0500 Jonathan A. Kollasch + +## quantum/keymap_extras/keymap_unicode_cyrillic.h + +* c5ee24a6c3ea39e9725dfc276c92d5bce726ca78 Sun Aug 7 11:01:12 2016 -0500 kuel + +## quantum/process_keycode/process_chording.c + +* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 Jack Humbert + +## quantum/process_keycode/process_chording.h + +* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 Jack Humbert + +## quantum/process_keycode/process_leader.c + +* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 Jack Humbert + +## quantum/process_keycode/process_leader.h + +* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 Jack Humbert + +## quantum/process_keycode/process_midi.c + +* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 Jack Humbert +* 8b94e26d7c3b30cc57d710a11e5651d15e8e3b20 Sun Jul 24 22:07:43 2016 -0400 Jack Humbert +* 8d99140d1b80bf497b2198138d3f481e93b0fbab Thu Sep 29 14:46:10 2016 -0500 Adam Gausmann + +## quantum/process_keycode/process_midi.h + +* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 Jack Humbert + +## quantum/process_keycode/process_music.c + +* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 Jack Humbert +* 3ea738e450e9326b0d3ee4192da881cffb4c13c1 Sun Jul 24 10:00:39 2016 -0400 Robert Dale +* ae95834f5af7404c04e6fe3446019046278d814b Mon Dec 12 16:06:41 2016 -0500 Jack Humbert +* 273faa4d9cd5a84207548f83ba550c9efee90933 Fri Dec 23 20:59:00 2016 -0500 Jack Humbert +* 841d7e6a1d74b1fc45575ed551132ec27353ebf3 Mon Jan 23 13:55:24 2017 -0500 Jack Humbert + +## quantum/process_keycode/process_music.h + +* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 Jack Humbert + +## quantum/process_keycode/process_printer.c + +* a889b899e2cf52b3b7807d8a7ad39f12e0761a10 Sun Oct 16 16:03:56 2016 -0400 Jack Humbert + +## quantum/process_keycode/process_printer.h + +* a889b899e2cf52b3b7807d8a7ad39f12e0761a10 Sun Oct 16 16:03:56 2016 -0400 Jack Humbert + +## quantum/process_keycode/process_printer_bb.c + +* a889b899e2cf52b3b7807d8a7ad39f12e0761a10 Sun Oct 16 16:03:56 2016 -0400 Jack Humbert + +## quantum/process_keycode/process_tap_dance.c + +* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 Jack Humbert +* 1a7e954f9fc4d250ba1ae46e3bfc168aca2b5cce Wed Jul 13 00:20:28 2016 +0200 Pavlos Vinieratos +* f3b56701ed7e6c622dc48e429780124ba5fde172 Wed Jul 13 16:47:45 2016 +0200 Pavlos Vinieratos +* d3091faf363afc8fef73ddf4948f872439b0e827 Fri Jul 15 23:54:08 2016 +0200 Pavlos Vinieratos +* dda2fd6ff3984ed96f8275c661b47a0484f9ee18 Mon Jul 18 23:34:02 2016 +0200 Pavlos Vinieratos +* d5daec2a58019ebdb9804787e0f786e4fc3c05b9 Tue Jul 19 18:00:59 2016 +0200 Pavlos Vinieratos +* 4e6a8627d8ebd7af942f68142d1a959d60361d90 Tue Jul 19 18:02:13 2016 +0200 Pavlos Vinieratos +* 70e42489dec375e558d8e81ed5ebfb69b4f3dbd9 Wed Jul 20 10:22:52 2016 +0200 Gergely Nagy +* ce8cc9219fca5dde077f1142d03d011b38d27479 Wed Jul 20 11:34:45 2016 +0200 Gergely Nagy +* 44e16ffc80620b61eaa17aedcfdd8233d9c99bd9 Wed Jul 20 11:49:59 2016 +0200 Gergely Nagy +* b21e8b97acb722bfa7b85831cfd010716ed77962 Wed Jul 27 08:42:09 2016 +0200 Gergely Nagy +* d78058cc75a9b05a6885991506d5f807ebb2a9f9 Wed Aug 17 10:28:08 2016 +0200 Gergely Nagy +* 29f64d7a93d941167c6c6e95f893ab84586b2205 Wed Aug 17 13:04:50 2016 +0200 Gergely Nagy +* 0d28787c5cf2173d12f57b397515f91cffaa820a Thu Aug 18 11:29:53 2016 +0200 Gergely Nagy +* acda2b793f69c6e0e9b9667e9ebe8a0325eb5ecd Thu Sep 1 08:32:47 2016 +0200 Gergely Nagy +* e1f131db8e59c6ed3471906d3a62457d593f51af Wed Sep 21 10:11:42 2016 +0200 Pavlos Vinieratos + +## quantum/process_keycode/process_tap_dance.h + +* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 Jack Humbert +* f3b56701ed7e6c622dc48e429780124ba5fde172 Wed Jul 13 16:47:45 2016 +0200 Pavlos Vinieratos +* d3091faf363afc8fef73ddf4948f872439b0e827 Fri Jul 15 23:54:08 2016 +0200 Pavlos Vinieratos +* 70e42489dec375e558d8e81ed5ebfb69b4f3dbd9 Wed Jul 20 10:22:52 2016 +0200 Gergely Nagy +* ce8cc9219fca5dde077f1142d03d011b38d27479 Wed Jul 20 11:34:45 2016 +0200 Gergely Nagy +* b21e8b97acb722bfa7b85831cfd010716ed77962 Wed Jul 27 08:42:09 2016 +0200 Gergely Nagy +* 29f64d7a93d941167c6c6e95f893ab84586b2205 Wed Aug 17 13:04:50 2016 +0200 Gergely Nagy +* 0edc82f0300924394324e2f3c4d2f8f0008439db Wed Sep 21 11:29:34 2016 +0200 Pavlos Vinieratos +* cda4b534fa4921c2d8f9884aa6a144333e7b07c4 Wed Sep 21 11:29:43 2016 +0200 Pavlos Vinieratos + +## quantum/process_keycode/process_unicode.c + +* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 Jack Humbert +* 8bdf745909bc2581491acce11225f56a85bc8f24 Sat Aug 13 10:33:47 2016 +0200 Gergely Nagy +* 63e5782d2cdf0ee282ad434c773463d9da9db6b3 Sat Aug 13 10:43:22 2016 +0200 Gergely Nagy +* fa06a163607e8c6c4bd0968c2de96a9a298b777c Sat Aug 13 10:46:38 2016 +0200 Gergely Nagy +* 0b6861827faea747345ea38202d64c8004ab128c Sat Aug 13 11:11:22 2016 +0200 Gergely Nagy +* 857aa5bef6a74f8785a7039feea5286c07bf7067 Sat Aug 13 11:14:42 2016 +0200 Gergely Nagy +* 234dd276cf03be6fd6961473e9d9c8f35deec682 Sun Aug 14 10:37:51 2016 +0200 Gergely Nagy +* a312cbf712764277e0dbbbb99410c2f6fc6c7484 Sun Aug 14 14:34:52 2016 +0200 Gergely Nagy +* 43d08629cf275d0b32281ffe8785258fff226b49 Mon Aug 15 10:02:05 2016 +0200 Gergely Nagy +* e8845f0daf8dc7a7674dc5420cc5a684bbbea09b Mon Aug 15 10:07:13 2016 +0200 Gergely Nagy +* dffdeb50b79d3c623e2ed9fd1c1d82d6d0ae7bf0 Sun Aug 21 20:25:19 2016 +0200 coderkun +* 81594c7883deefedbcd317c72c1b1f1d32e65cd7 Sun Aug 21 21:02:18 2016 +0200 coderkun +* a058ae40e268b34ba5db45f5fd5d557d50fa5437 Wed Aug 24 15:39:23 2016 +0200 Gergely Nagy +* c9ea236fc35d350c0ff33de0af84d3dee7d0eb95 Wed Aug 31 08:21:52 2016 +0200 Gergely Nagy +* a3f5a4cf5839fe29dd37400d72c5e353812002f8 Sun Oct 2 10:35:09 2016 +0200 coderkun +* 5b2e455d3b71bfb90754930d1f22d3e8ce98b927 Mon Oct 10 00:46:20 2016 +0700 Priyadi Iman Nurcahyo +* e7d5dc89f2890007d776f6b613dc9deb473cff22 Sun Oct 23 05:36:26 2016 +0700 Priyadi Iman Nurcahyo +* 4a666c201007eacf13a9031e3c9b156e2e04afe6 Sun Oct 23 19:15:33 2016 +0700 Priyadi Iman Nurcahyo +* 8d60354d5a116b6cb1fc32eac7461eb125543c7d Wed Oct 26 00:48:44 2016 -0400 Jack Humbert +* 30b80a23f3cafd846937b37b249f2df4411e1f5a Mon Jan 9 02:59:10 2017 +0700 Priyadi Iman Nurcahyo + +## quantum/process_keycode/process_unicode.h + +* 65faab3b89245f81c50b029ca178aed175d5f330 Wed Jun 29 17:49:41 2016 -0400 Jack Humbert +* 63e5782d2cdf0ee282ad434c773463d9da9db6b3 Sat Aug 13 10:43:22 2016 +0200 Gergely Nagy +* fa06a163607e8c6c4bd0968c2de96a9a298b777c Sat Aug 13 10:46:38 2016 +0200 Gergely Nagy +* 857aa5bef6a74f8785a7039feea5286c07bf7067 Sat Aug 13 11:14:42 2016 +0200 Gergely Nagy +* 234dd276cf03be6fd6961473e9d9c8f35deec682 Sun Aug 14 10:37:51 2016 +0200 Gergely Nagy +* a312cbf712764277e0dbbbb99410c2f6fc6c7484 Sun Aug 14 14:34:52 2016 +0200 Gergely Nagy +* 43d08629cf275d0b32281ffe8785258fff226b49 Mon Aug 15 10:02:05 2016 +0200 Gergely Nagy +* e8845f0daf8dc7a7674dc5420cc5a684bbbea09b Mon Aug 15 10:07:13 2016 +0200 Gergely Nagy +* a058ae40e268b34ba5db45f5fd5d557d50fa5437 Wed Aug 24 15:39:23 2016 +0200 Gergely Nagy +* c9ea236fc35d350c0ff33de0af84d3dee7d0eb95 Wed Aug 31 08:21:52 2016 +0200 Gergely Nagy +* 5b2e455d3b71bfb90754930d1f22d3e8ce98b927 Mon Oct 10 00:46:20 2016 +0700 Priyadi Iman Nurcahyo +* 4a666c201007eacf13a9031e3c9b156e2e04afe6 Sun Oct 23 19:15:33 2016 +0700 Priyadi Iman Nurcahyo +* 6fee7e178f7c949213a124d78de60bc30267d367 Sat Nov 26 23:53:15 2016 +0700 Priyadi Iman Nurcahyo + +## quantum/serial_link/LICENSE + +* 639cdd363e35c13fe331939d0972aa4db5f5198d Tue Jul 5 23:27:47 2016 +0300 Fred Sundvik + +## quantum/serial_link/README.md + +* 639cdd363e35c13fe331939d0972aa4db5f5198d Tue Jul 5 23:27:47 2016 +0300 Fred Sundvik +* d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 Fred Sundvik + +## quantum/serial_link/protocol/byte_stuffer.c + +* d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 Fred Sundvik +* 0a11460175d6a838c71343c19eb4ce4699936247 Wed Aug 24 22:23:17 2016 +0300 Fred Sundvik + +## quantum/serial_link/protocol/byte_stuffer.h + +* d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 Fred Sundvik +* 0a11460175d6a838c71343c19eb4ce4699936247 Wed Aug 24 22:23:17 2016 +0300 Fred Sundvik + +## quantum/serial_link/protocol/frame_router.c + +* d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 Fred Sundvik + +## quantum/serial_link/protocol/frame_router.h + +* d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 Fred Sundvik + +## quantum/serial_link/protocol/frame_validator.c + +* d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 Fred Sundvik + +## quantum/serial_link/protocol/frame_validator.h + +* d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 Fred Sundvik + +## quantum/serial_link/protocol/physical.h + +* d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 Fred Sundvik + +## quantum/serial_link/protocol/transport.c + +* d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 Fred Sundvik +* bcdf9ab76bf3723e6015d4255d53e7c1e7259b61 Sat Aug 27 14:18:49 2016 +0300 Fred Sundvik + +## quantum/serial_link/protocol/transport.h + +* d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 Fred Sundvik +* bcdf9ab76bf3723e6015d4255d53e7c1e7259b61 Sat Aug 27 14:18:49 2016 +0300 Fred Sundvik + +## quantum/serial_link/protocol/triple_buffered_object.c + +* d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 Fred Sundvik + +## quantum/serial_link/protocol/triple_buffered_object.h + +* d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 Fred Sundvik + +## quantum/serial_link/system/serial_link.c + +* d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 Fred Sundvik + +## quantum/serial_link/system/serial_link.h + +* d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 Fred Sundvik + +## quantum/serial_link/tests/byte_stuffer_tests.cpp + +* 0a11460175d6a838c71343c19eb4ce4699936247 Wed Aug 24 22:23:17 2016 +0300 Fred Sundvik + +## quantum/serial_link/tests/frame_router_tests.cpp + +* cdd0913bcc63334fa20f1a7bd46bdce4d4f2843b Sat Aug 27 13:43:46 2016 +0300 Fred Sundvik + +## quantum/serial_link/tests/frame_validator_tests.cpp + +* b3eba797af74ace19b9f2e762bdd33d9449e3f94 Sat Aug 27 13:54:16 2016 +0300 Fred Sundvik + +## quantum/serial_link/tests/Makefile + +* d5e7603d551a31836bf0c59db259ddc3593a1aa7 Wed Jul 6 13:26:20 2016 +0300 Fred Sundvik + +## quantum/serial_link/tests/rules.mk + +* 0a11460175d6a838c71343c19eb4ce4699936247 Wed Aug 24 22:23:17 2016 +0300 Fred Sundvik +* cdd0913bcc63334fa20f1a7bd46bdce4d4f2843b Sat Aug 27 13:43:46 2016 +0300 Fred Sundvik +* b3eba797af74ace19b9f2e762bdd33d9449e3f94 Sat Aug 27 13:54:16 2016 +0300 Fred Sundvik +* bcdf9ab76bf3723e6015d4255d53e7c1e7259b61 Sat Aug 27 14:18:49 2016 +0300 Fred Sundvik +* ffb0a126f5b2484eda7f6b1c62ea61924eec6521 Sat Aug 27 14:25:52 2016 +0300 Fred Sundvik + +## quantum/serial_link/tests/testlist.mk + +* 6d7cd639a5e4503f00162c7cfa4bc7302b82c71c Sun Aug 21 16:29:54 2016 +0300 Fred Sundvik +* ffb0a126f5b2484eda7f6b1c62ea61924eec6521 Sat Aug 27 14:25:52 2016 +0300 Fred Sundvik + +## quantum/serial_link/tests/transport_tests.cpp + +* bcdf9ab76bf3723e6015d4255d53e7c1e7259b61 Sat Aug 27 14:18:49 2016 +0300 Fred Sundvik + +## quantum/serial_link/tests/triple_buffered_object_tests.cpp + +* ffb0a126f5b2484eda7f6b1c62ea61924eec6521 Sat Aug 27 14:25:52 2016 +0300 Fred Sundvik + +## quantum/template/config.h + +* 6f3141965e88c4ee0ebf7c18a243e4c2d9c5021b Tue Oct 27 14:33:18 2015 -0400 Jack Humbert +* 24f2698fba0055128eb90fbde793e3c84900df69 Sat Jan 23 20:45:52 2016 -0500 Jack Humbert +* 577971ab07a49405e1dcd8e5f75b3ecb87e710b9 Mon Mar 28 00:03:21 2016 -0500 IBNobody +* 1d13aa933bbb57bf0c1fe0196981b81233c3df97 Mon Mar 28 19:45:20 2016 -0500 IBNobody +* aaa758f1d3f97dda39879f2b055ad2da9680adfe Mon May 23 20:42:21 2016 -0700 Eric Tang +* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 Jack Humbert + +## quantum/template/Makefile + +* 6f3141965e88c4ee0ebf7c18a243e4c2d9c5021b Tue Oct 27 14:33:18 2015 -0400 Jack Humbert +* 6485c7d7dae01c499a7e1f27e7956f12ce0f6901 Thu Nov 5 12:07:03 2015 -0500 Jack Humbert +* 24f2698fba0055128eb90fbde793e3c84900df69 Sat Jan 23 20:45:52 2016 -0500 Jack Humbert +* 577971ab07a49405e1dcd8e5f75b3ecb87e710b9 Mon Mar 28 00:03:21 2016 -0500 IBNobody +* 0656f2fa10e25e160617c3e5d14cfbae35dd9c8d Fri Apr 29 22:19:40 2016 -0400 Jack Humbert +* 38987d4c1589d2d457459f42e179be24b712be30 Sat May 28 12:05:17 2016 -0400 Jack Humbert +* d9e4dad0a828a8a904f44dda090a4d6d08fe2948 Sat Jun 11 13:31:31 2016 -0400 Jack Humbert +* a8375fa15a6ca9285eb15ae89bcda898349e06f8 Tue Jun 21 10:21:43 2016 -0400 Jack Humbert +* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 Jack Humbert +* ab4d7adbb96fa034fd20364247d615f527661594 Fri Aug 19 09:06:28 2016 +0300 Fred Sundvik + +## quantum/template/readme.md + +* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 Jack Humbert +* 1f5838a28679975f689e35471a35720ed5c7e7c5 Sat Aug 27 23:29:37 2016 +0300 Fred Sundvik + +## quantum/template/rules.mk + +* ab4d7adbb96fa034fd20364247d615f527661594 Fri Aug 19 09:06:28 2016 +0300 Fred Sundvik + +## quantum/template/template.c + +* 6f3141965e88c4ee0ebf7c18a243e4c2d9c5021b Tue Oct 27 14:33:18 2015 -0400 Jack Humbert +* 641859df84bf40025b2c14319d1a168a435562e2 Thu Mar 10 11:28:34 2016 -0500 yoyoerx +* eba9a7d74db0be548cddc107f0370dabf43b017f Tue Mar 15 23:52:51 2016 -0500 IBNobody +* ec62d9e85cab5cf166241b0536120d005fa7c898 Tue Mar 22 20:39:05 2016 -0500 IBNobody +* 3d56ec052ed485d4b717da930c4024b4a3f792e0 Tue Mar 22 21:06:22 2016 -0500 IBNobody +* 2181be029e01d9cf46ae3cadcdf25f5bca02c631 Mon Mar 28 16:13:37 2016 +0200 Damien Pollet +* 0656f2fa10e25e160617c3e5d14cfbae35dd9c8d Fri Apr 29 22:19:40 2016 -0400 Jack Humbert +* 1a8c0dd22d6a2255511d0db6a456315541b5815b Sun May 15 00:27:32 2016 -0400 Erez Zukerman +* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 Jack Humbert +* 589df84d6cd19ad7d776cc19bcddade1cd178ddc Thu Jul 7 09:58:44 2016 -0400 Jack Humbert +* c1dfb636ef61159456bdb24f4fee3f27e5babbeb Thu Jul 7 12:22:10 2016 -0400 Jack Humbert + +## quantum/template/template.h + +* 6f3141965e88c4ee0ebf7c18a243e4c2d9c5021b Tue Oct 27 14:33:18 2015 -0400 Jack Humbert +* 24f2698fba0055128eb90fbde793e3c84900df69 Sat Jan 23 20:45:52 2016 -0500 Jack Humbert +* ee1b94045e5bebda517119cb1853b0ab3fd0f499 Fri Mar 4 10:53:58 2016 -0500 Noah Andrews +* 641859df84bf40025b2c14319d1a168a435562e2 Thu Mar 10 11:28:34 2016 -0500 yoyoerx +* eba9a7d74db0be548cddc107f0370dabf43b017f Tue Mar 15 23:52:51 2016 -0500 IBNobody +* ec62d9e85cab5cf166241b0536120d005fa7c898 Tue Mar 22 20:39:05 2016 -0500 IBNobody +* 2181be029e01d9cf46ae3cadcdf25f5bca02c631 Mon Mar 28 16:13:37 2016 +0200 Damien Pollet +* 0656f2fa10e25e160617c3e5d14cfbae35dd9c8d Fri Apr 29 22:19:40 2016 -0400 Jack Humbert +* 1a8c0dd22d6a2255511d0db6a456315541b5815b Sun May 15 00:27:32 2016 -0400 Erez Zukerman +* db32864ce7029d758f57729cc2f75e051a28d0a2 Sat Jun 18 14:30:24 2016 -0400 Jack Humbert +* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 Jack Humbert + +## quantum/template/keymaps/default/config.h + +* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 Jack Humbert + +## quantum/template/keymaps/default/keymap.c + +* d9e4dad0a828a8a904f44dda090a4d6d08fe2948 Sat Jun 11 13:31:31 2016 -0400 Jack Humbert +* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 Jack Humbert + +## quantum/template/keymaps/default/Makefile + +* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 Jack Humbert + +## quantum/template/keymaps/default/readme.md + +* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 Jack Humbert + +## quantum/tools/eeprom_reset.hex + +* 0b0ec82427aff54481103559066213056b6d7598 Sat Apr 16 00:01:22 2016 -0400 Jack Humbert + +## quantum/tools/readme.md + +* 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Thu Jun 23 22:18:20 2016 -0400 Jack Humbert + +## quantum/visualizer/lcd_backlight.c + +* 9f33a5593cc70dfb0885328061f1aa4b2c2fa386 Wed Jul 6 20:15:45 2016 +0300 Fred Sundvik + +## quantum/visualizer/lcd_backlight.h + +* 9f33a5593cc70dfb0885328061f1aa4b2c2fa386 Wed Jul 6 20:15:45 2016 +0300 Fred Sundvik + +## quantum/visualizer/led_test.c + +* 6c296557909501b71fe344ce379e74094cf77c8e Wed Jul 6 20:30:58 2016 +0300 Fred Sundvik +* 07d0d5cbe48d7afaf0bc8c9916d40179ec51cb42 Thu Jul 7 12:46:10 2016 +0300 Fred Sundvik + +## quantum/visualizer/led_test.h + +* 6c296557909501b71fe344ce379e74094cf77c8e Wed Jul 6 20:30:58 2016 +0300 Fred Sundvik + +## quantum/visualizer/LICENSE.md + +* 9f33a5593cc70dfb0885328061f1aa4b2c2fa386 Wed Jul 6 20:15:45 2016 +0300 Fred Sundvik + +## quantum/visualizer/readme.md + +* 9f33a5593cc70dfb0885328061f1aa4b2c2fa386 Wed Jul 6 20:15:45 2016 +0300 Fred Sundvik + +## quantum/visualizer/visualizer.c + +* 9f33a5593cc70dfb0885328061f1aa4b2c2fa386 Wed Jul 6 20:15:45 2016 +0300 Fred Sundvik +* 6c296557909501b71fe344ce379e74094cf77c8e Wed Jul 6 20:30:58 2016 +0300 Fred Sundvik +* 70797bb8f21c72cba15b314b2d0a6684bfedc369 Thu Jul 7 00:20:20 2016 +0300 Fred Sundvik +* 7229751ba9d402b2a6c9dc1b7b29385b5162fe41 Thu Jul 7 14:01:20 2016 +0300 Fred Sundvik +* dae7c9bfb3325412c542fbbe4342c9c8e0fc1904 Thu Jul 7 14:12:56 2016 +0300 Fred Sundvik +* 9eb8d05246fba4f46c04b8fa1884b8f2d2ee0664 Tue Jan 17 21:47:07 2017 -0500 SjB + +## quantum/visualizer/visualizer.h + +* 9f33a5593cc70dfb0885328061f1aa4b2c2fa386 Wed Jul 6 20:15:45 2016 +0300 Fred Sundvik +* 6c296557909501b71fe344ce379e74094cf77c8e Wed Jul 6 20:30:58 2016 +0300 Fred Sundvik +* 70797bb8f21c72cba15b314b2d0a6684bfedc369 Thu Jul 7 00:20:20 2016 +0300 Fred Sundvik +* 9eb8d05246fba4f46c04b8fa1884b8f2d2ee0664 Tue Jan 17 21:47:07 2017 -0500 SjB + +## quantum/visualizer/visualizer.mk + +* 9f33a5593cc70dfb0885328061f1aa4b2c2fa386 Wed Jul 6 20:15:45 2016 +0300 Fred Sundvik +* 6c296557909501b71fe344ce379e74094cf77c8e Wed Jul 6 20:30:58 2016 +0300 Fred Sundvik +* 70797bb8f21c72cba15b314b2d0a6684bfedc369 Thu Jul 7 00:20:20 2016 +0300 Fred Sundvik +* 07d0d5cbe48d7afaf0bc8c9916d40179ec51cb42 Thu Jul 7 12:46:10 2016 +0300 Fred Sundvik +* 7229751ba9d402b2a6c9dc1b7b29385b5162fe41 Thu Jul 7 14:01:20 2016 +0300 Fred Sundvik +* aaac254ebce2005272e7385488b5690bbbe6d7c8 Thu Jul 7 14:29:53 2016 +0300 Fred Sundvik +* caedec92d2c22480313c43a364408fb920c55364 Thu Jul 7 14:42:16 2016 +0300 Fred Sundvik + +## quantum/visualizer/example_integration/callbacks.c + +* 9f33a5593cc70dfb0885328061f1aa4b2c2fa386 Wed Jul 6 20:15:45 2016 +0300 Fred Sundvik + +## quantum/visualizer/example_integration/gfxconf.h + +* 9f33a5593cc70dfb0885328061f1aa4b2c2fa386 Wed Jul 6 20:15:45 2016 +0300 Fred Sundvik + +## quantum/visualizer/example_integration/lcd_backlight_hal.c + +* 9f33a5593cc70dfb0885328061f1aa4b2c2fa386 Wed Jul 6 20:15:45 2016 +0300 Fred Sundvik + +## quantum/visualizer/example_integration/visualizer_user.c + +* 9f33a5593cc70dfb0885328061f1aa4b2c2fa386 Wed Jul 6 20:15:45 2016 +0300 Fred Sundvik \ No newline at end of file From 8cad52d8f31807056937102808a4bb130ef83289 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Sat, 28 Jan 2017 22:12:43 -0800 Subject: [PATCH 280/517] Updated License Clarification (markdown) --- License-Clarification.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/License-Clarification.md b/License-Clarification.md index 926669fd86..8a6487eb7e 100644 --- a/License-Clarification.md +++ b/License-Clarification.md @@ -4,7 +4,7 @@ As raised in #1038 and other issues, the licensing status of QMK is not clear. I # Signoff -This section documents the people who need to sign off on applying the GPL to one or more of their contributions. +This section documents the people who need to sign off on applying the GPL to one or more of their contributions. If your name appears below and you consent to applying the GPL to your contributions, please put today's date in the last field of your row. Please stick to the following date format: "YYYY Mon. DD" IE: 2017 Jan 28 Username | Files | Sign Off Date | ---------|-------|---------------| @@ -36,4 +36,3 @@ stephan . bosebeck at holidayinsider.com | quantum/keymap_extras/keymap_german_o @wez | quantum/dynamic_macro.h | | @Wilba6582 | quantum/keymap.h
quantum/keymap_common.c
quantum/quantum_keycodes.h | | @yangliu | quantum/light_ws2812.c
quantum/light_ws2812.h
quantum/rgblight.c
quantum/rgblight.h | | - From db7de0d47c9051836c84ec7f6323724a129d3c78 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Sat, 28 Jan 2017 22:12:54 -0800 Subject: [PATCH 281/517] Updated License Clarification (markdown) --- License-Clarification.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/License-Clarification.md b/License-Clarification.md index 8a6487eb7e..6704bf72d2 100644 --- a/License-Clarification.md +++ b/License-Clarification.md @@ -4,7 +4,7 @@ As raised in #1038 and other issues, the licensing status of QMK is not clear. I # Signoff -This section documents the people who need to sign off on applying the GPL to one or more of their contributions. If your name appears below and you consent to applying the GPL to your contributions, please put today's date in the last field of your row. Please stick to the following date format: "YYYY Mon. DD" IE: 2017 Jan 28 +This section documents the people who need to sign off on applying the GPL to one or more of their contributions. If your name appears below and you consent to applying the GPL to your contributions, please put today's date in the last field of your row. Please stick to the following date format: 2017 Jan 28 Username | Files | Sign Off Date | ---------|-------|---------------| From 420074d37f674271c95e6a9a7522f19a7998b244 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sun, 29 Jan 2017 02:37:49 -0500 Subject: [PATCH 282/517] Updated License Clarification (markdown) --- License-Clarification.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/License-Clarification.md b/License-Clarification.md index 6704bf72d2..bcc706b32b 100644 --- a/License-Clarification.md +++ b/License-Clarification.md @@ -18,7 +18,7 @@ Username | Files | Sign Off Date | @h-youhei | quantum/keymap_extras/keymap_jp.h | 2017 Jan 28 | @heartsekai | quantum/keymap_extras/keymap_german_ch.h | | @IBnobody | quantum/keycode_config.h
quantum/matrix.c
quantum/quantum.c
quantum/audio/audio.c
quantum/audio/audio.h
quantum/audio/audio_pwm.c
quantum/audio/audio_pwm.c
quantum/audio/voices.c
quantum/audio/voices.h
quantum/template/config.h
quantum/template/template.c | | -@jackhumbert | quantum/config_common.h
quantum/keycode_config.h
quantum/keymap.h
quantum/keymap_common.c
quantum/light_ws2812.c
quantum/light_ws2812.h
quantum/matrix.c
quantum/quantum.c
quantum/quantum.h
quantum/quantum_keycodes.h
quantum/rgblight.c
quantum/rgblight.h
quantum/api/api_sysex.c
quantum/audio/audio.c
quantum/audio/audio.h
quantum/audio/audio_pwm.c
quantum/audio/audio_pwm.c
quantum/audio/voices.c
quantum/audio/voices.h
quantum/keymap_extras/keymap_colemak.h
quantum/keymap_extras/keymap_dvorak.h
quantum/keymap_extras/keymap_fr_ch.h
quantum/keymap_extras/keymap_french.h
quantum/keymap_extras/keymap_french_osx.h
quantum/keymap_extras/keymap_german.h
quantum/keymap_extras/keymap_german_ch.h
quantum/keymap_extras/keymap_german_osx.h
quantum/keymap_extras/keymap_neo2.h
quantum/keymap_extras/keymap_nordic.h
quantum/keymap_extras/keymap_plover.h
quantum/keymap_extras/keymap_spanish.h
quantum/keymap_extras/keymap_uk.h
quantum/process_keycode/process_midi.c
quantum/process_keycode/process_music.c
quantum/process_keycode/process_tap_dance.c
quantum/process_keycode/process_tap_dance.h
quantum/process_keycode/process_unicode.c
quantum/process_keycode/process_unicode.h
quantum/template/config.h
quantum/template/template.c
quantum/template/template.h | | +@jackhumbert | quantum/config_common.h
quantum/keycode_config.h
quantum/keymap.h
quantum/keymap_common.c
quantum/light_ws2812.c
quantum/light_ws2812.h
quantum/matrix.c
quantum/quantum.c
quantum/quantum.h
quantum/quantum_keycodes.h
quantum/rgblight.c
quantum/rgblight.h
quantum/api/api_sysex.c
quantum/audio/audio.c
quantum/audio/audio.h
quantum/audio/audio_pwm.c
quantum/audio/audio_pwm.c
quantum/audio/voices.c
quantum/audio/voices.h
quantum/keymap_extras/keymap_colemak.h
quantum/keymap_extras/keymap_dvorak.h
quantum/keymap_extras/keymap_fr_ch.h
quantum/keymap_extras/keymap_french.h
quantum/keymap_extras/keymap_french_osx.h
quantum/keymap_extras/keymap_german.h
quantum/keymap_extras/keymap_german_ch.h
quantum/keymap_extras/keymap_german_osx.h
quantum/keymap_extras/keymap_neo2.h
quantum/keymap_extras/keymap_nordic.h
quantum/keymap_extras/keymap_plover.h
quantum/keymap_extras/keymap_spanish.h
quantum/keymap_extras/keymap_uk.h
quantum/process_keycode/process_midi.c
quantum/process_keycode/process_music.c
quantum/process_keycode/process_tap_dance.c
quantum/process_keycode/process_tap_dance.h
quantum/process_keycode/process_unicode.c
quantum/process_keycode/process_unicode.h
quantum/template/config.h
quantum/template/template.c
quantum/template/template.h | 2017-01-29 | @jakllsch | quantum/keymap_extras/keymap_dvorak.h
quantum/keymap_extras/keymap_fr_ch.h
quantum/keymap_extras/keymap_french.h
quantum/keymap_extras/keymap_german.h
quantum/keymap_extras/keymap_german_ch.h
quantum/keymap_extras/keymap_nordic.h
quantum/keymap_extras/keymap_spanish.h
quantum/keymap_extras/keymap_uk.h | | @kuel | quantum/keymap_extras/keymap_unicode_cyrillic.h
quantum/keymap_extras/keymap_russian.h | | @lindhe | quantum/keymap_extras/keymap_nordic.h
quantum/keymap_extras/keymap_norwegian.h | | From 01c7475d1218a9eabda3d396dbeba7bd9c138a78 Mon Sep 17 00:00:00 2001 From: Pavlos Vinieratos Date: Sun, 29 Jan 2017 09:29:44 +0100 Subject: [PATCH 283/517] add my consent. --- License-Clarification.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/License-Clarification.md b/License-Clarification.md index bcc706b32b..19f7f20956 100644 --- a/License-Clarification.md +++ b/License-Clarification.md @@ -25,7 +25,7 @@ Username | Files | Sign Off Date | @matzebond | quantum/keymap_extras/keymap_german.h
quantum/keymap_extras/keymap_neo2.h | | @plgruener | quantum/keymap_extras/keymap_german.h
quantum/keymap_extras/keymap_neo2.h | | @priyadi | quantum/quantum.c
quantum/process_keycode/process_unicode.c
quantum/process_keycode/process_unicode.h | | -@pvinis | quantum/quantum.c
quantum/quantum.h
quantum/process_keycode/process_tap_dance.c
quantum/process_keycode/process_tap_dance.h | | +@pvinis | quantum/quantum.c
quantum/quantum.h
quantum/process_keycode/process_tap_dance.c
quantum/process_keycode/process_tap_dance.h | 2017 Jan 29 | @Smilliam | quantum/quantum.c | | @sperochon | quantum/keymap_extras/keymap_french_osx.h | | stephan . bosebeck at holidayinsider.com | quantum/keymap_extras/keymap_german_osx.h | | From 8b66d71521de413d1fd9846ae660474cdbbfcb45 Mon Sep 17 00:00:00 2001 From: Gergely Nagy Date: Sun, 29 Jan 2017 10:35:44 +0100 Subject: [PATCH 284/517] Updated License Clarification (markdown) --- License-Clarification.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/License-Clarification.md b/License-Clarification.md index 19f7f20956..457b3519f2 100644 --- a/License-Clarification.md +++ b/License-Clarification.md @@ -9,7 +9,7 @@ This section documents the people who need to sign off on applying the GPL to on Username | Files | Sign Off Date | ---------|-------|---------------| @0xdec | quantum/rgblight.c | | -@algernon | quantum/quantum.c
quantum/quantum.h
quantum/process_keycode/process_tap_dance.c
quantum/process_keycode/process_tap_dance.h
quantum/process_keycode/process_unicode.c
quantum/process_keycode/process_unicode.h | | +@algernon | quantum/quantum.c
quantum/quantum.h
quantum/process_keycode/process_tap_dance.c
quantum/process_keycode/process_tap_dance.h
quantum/process_keycode/process_unicode.c
quantum/process_keycode/process_unicode.h | 2017 Jan 29 | @cdim | quantum/template/template.c
quantum/template/template.h | | @DidierLoiseau | quantum/keymap_extras/keymap_canadian_multilingual.h
quantum/keymap_extras/keymap_bepo.h | | @eltang | quantum/config_common.h
quantum/matrix.c
quantum/quantum.c
quantum/quantum.h
quantum/rgblight.c
quantum/rgblight.h
quantum/template/config.h | | From 9413e3958abfd748cdce79473f716ee5c4c5e10a Mon Sep 17 00:00:00 2001 From: fredizzimo Date: Sun, 29 Jan 2017 11:38:43 +0200 Subject: [PATCH 285/517] Updated License Clarification (markdown) --- License-Clarification.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/License-Clarification.md b/License-Clarification.md index 457b3519f2..9ed062f342 100644 --- a/License-Clarification.md +++ b/License-Clarification.md @@ -14,7 +14,7 @@ Username | Files | Sign Off Date | @DidierLoiseau | quantum/keymap_extras/keymap_canadian_multilingual.h
quantum/keymap_extras/keymap_bepo.h | | @eltang | quantum/config_common.h
quantum/matrix.c
quantum/quantum.c
quantum/quantum.h
quantum/rgblight.c
quantum/rgblight.h
quantum/template/config.h | | @ezuk | quantum/matrix.c
quantum/quantum.c
quantum/quantum.h
quantum/quantum_keycodes.h
quantum/rgblight.c
quantum/rgblight.h
quantum/keymap_extras/keymap_colemak.h
quantum/keymap_extras/keymap_nordic.h | -@fredizzimo | quantum/config_common.h
quantum/keycode_config.h
quantum/keymap.h
quantum/keymap_common.c
quantum/keymap_common.c
quantum/matrix.c
quantum/quantum.h
quantum/rgblight.c
quantum/rgblight.h
quantum/api/api_sysex.c | | +@fredizzimo | quantum/config_common.h
quantum/keycode_config.h
quantum/keymap.h
quantum/keymap_common.c
quantum/keymap_common.c
quantum/matrix.c
quantum/quantum.h
quantum/rgblight.c
quantum/rgblight.h
quantum/api/api_sysex.c | 2017 Jan 29 | @h-youhei | quantum/keymap_extras/keymap_jp.h | 2017 Jan 28 | @heartsekai | quantum/keymap_extras/keymap_german_ch.h | | @IBnobody | quantum/keycode_config.h
quantum/matrix.c
quantum/quantum.c
quantum/audio/audio.c
quantum/audio/audio.h
quantum/audio/audio_pwm.c
quantum/audio/audio_pwm.c
quantum/audio/voices.c
quantum/audio/voices.h
quantum/template/config.h
quantum/template/template.c | | From 66ec00088602b73fe01e2fde8bbb286b51ee9605 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Sun, 29 Jan 2017 10:19:15 -0800 Subject: [PATCH 286/517] Updated License Clarification (markdown) --- License-Clarification.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/License-Clarification.md b/License-Clarification.md index 9ed062f342..b38129338d 100644 --- a/License-Clarification.md +++ b/License-Clarification.md @@ -16,10 +16,10 @@ Username | Files | Sign Off Date | @ezuk | quantum/matrix.c
quantum/quantum.c
quantum/quantum.h
quantum/quantum_keycodes.h
quantum/rgblight.c
quantum/rgblight.h
quantum/keymap_extras/keymap_colemak.h
quantum/keymap_extras/keymap_nordic.h | @fredizzimo | quantum/config_common.h
quantum/keycode_config.h
quantum/keymap.h
quantum/keymap_common.c
quantum/keymap_common.c
quantum/matrix.c
quantum/quantum.h
quantum/rgblight.c
quantum/rgblight.h
quantum/api/api_sysex.c | 2017 Jan 29 | @h-youhei | quantum/keymap_extras/keymap_jp.h | 2017 Jan 28 | -@heartsekai | quantum/keymap_extras/keymap_german_ch.h | | +@heartsekai | quantum/keymap_extras/keymap_german_ch.h | 2017 Jan 29 | @IBnobody | quantum/keycode_config.h
quantum/matrix.c
quantum/quantum.c
quantum/audio/audio.c
quantum/audio/audio.h
quantum/audio/audio_pwm.c
quantum/audio/audio_pwm.c
quantum/audio/voices.c
quantum/audio/voices.h
quantum/template/config.h
quantum/template/template.c | | @jackhumbert | quantum/config_common.h
quantum/keycode_config.h
quantum/keymap.h
quantum/keymap_common.c
quantum/light_ws2812.c
quantum/light_ws2812.h
quantum/matrix.c
quantum/quantum.c
quantum/quantum.h
quantum/quantum_keycodes.h
quantum/rgblight.c
quantum/rgblight.h
quantum/api/api_sysex.c
quantum/audio/audio.c
quantum/audio/audio.h
quantum/audio/audio_pwm.c
quantum/audio/audio_pwm.c
quantum/audio/voices.c
quantum/audio/voices.h
quantum/keymap_extras/keymap_colemak.h
quantum/keymap_extras/keymap_dvorak.h
quantum/keymap_extras/keymap_fr_ch.h
quantum/keymap_extras/keymap_french.h
quantum/keymap_extras/keymap_french_osx.h
quantum/keymap_extras/keymap_german.h
quantum/keymap_extras/keymap_german_ch.h
quantum/keymap_extras/keymap_german_osx.h
quantum/keymap_extras/keymap_neo2.h
quantum/keymap_extras/keymap_nordic.h
quantum/keymap_extras/keymap_plover.h
quantum/keymap_extras/keymap_spanish.h
quantum/keymap_extras/keymap_uk.h
quantum/process_keycode/process_midi.c
quantum/process_keycode/process_music.c
quantum/process_keycode/process_tap_dance.c
quantum/process_keycode/process_tap_dance.h
quantum/process_keycode/process_unicode.c
quantum/process_keycode/process_unicode.h
quantum/template/config.h
quantum/template/template.c
quantum/template/template.h | 2017-01-29 | -@jakllsch | quantum/keymap_extras/keymap_dvorak.h
quantum/keymap_extras/keymap_fr_ch.h
quantum/keymap_extras/keymap_french.h
quantum/keymap_extras/keymap_german.h
quantum/keymap_extras/keymap_german_ch.h
quantum/keymap_extras/keymap_nordic.h
quantum/keymap_extras/keymap_spanish.h
quantum/keymap_extras/keymap_uk.h | | +@jakllsch | quantum/keymap_extras/keymap_dvorak.h
quantum/keymap_extras/keymap_fr_ch.h
quantum/keymap_extras/keymap_french.h
quantum/keymap_extras/keymap_german.h
quantum/keymap_extras/keymap_german_ch.h
quantum/keymap_extras/keymap_nordic.h
quantum/keymap_extras/keymap_spanish.h
quantum/keymap_extras/keymap_uk.h | 2017 Jan 29 | @kuel | quantum/keymap_extras/keymap_unicode_cyrillic.h
quantum/keymap_extras/keymap_russian.h | | @lindhe | quantum/keymap_extras/keymap_nordic.h
quantum/keymap_extras/keymap_norwegian.h | | @matzebond | quantum/keymap_extras/keymap_german.h
quantum/keymap_extras/keymap_neo2.h | | From 07b0a4144e7bfa2de9f5b47725506b92719566b5 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Sun, 29 Jan 2017 10:54:37 -0800 Subject: [PATCH 287/517] Updated License Clarification (markdown) --- License-Clarification.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/License-Clarification.md b/License-Clarification.md index b38129338d..725f152a33 100644 --- a/License-Clarification.md +++ b/License-Clarification.md @@ -20,7 +20,7 @@ Username | Files | Sign Off Date | @IBnobody | quantum/keycode_config.h
quantum/matrix.c
quantum/quantum.c
quantum/audio/audio.c
quantum/audio/audio.h
quantum/audio/audio_pwm.c
quantum/audio/audio_pwm.c
quantum/audio/voices.c
quantum/audio/voices.h
quantum/template/config.h
quantum/template/template.c | | @jackhumbert | quantum/config_common.h
quantum/keycode_config.h
quantum/keymap.h
quantum/keymap_common.c
quantum/light_ws2812.c
quantum/light_ws2812.h
quantum/matrix.c
quantum/quantum.c
quantum/quantum.h
quantum/quantum_keycodes.h
quantum/rgblight.c
quantum/rgblight.h
quantum/api/api_sysex.c
quantum/audio/audio.c
quantum/audio/audio.h
quantum/audio/audio_pwm.c
quantum/audio/audio_pwm.c
quantum/audio/voices.c
quantum/audio/voices.h
quantum/keymap_extras/keymap_colemak.h
quantum/keymap_extras/keymap_dvorak.h
quantum/keymap_extras/keymap_fr_ch.h
quantum/keymap_extras/keymap_french.h
quantum/keymap_extras/keymap_french_osx.h
quantum/keymap_extras/keymap_german.h
quantum/keymap_extras/keymap_german_ch.h
quantum/keymap_extras/keymap_german_osx.h
quantum/keymap_extras/keymap_neo2.h
quantum/keymap_extras/keymap_nordic.h
quantum/keymap_extras/keymap_plover.h
quantum/keymap_extras/keymap_spanish.h
quantum/keymap_extras/keymap_uk.h
quantum/process_keycode/process_midi.c
quantum/process_keycode/process_music.c
quantum/process_keycode/process_tap_dance.c
quantum/process_keycode/process_tap_dance.h
quantum/process_keycode/process_unicode.c
quantum/process_keycode/process_unicode.h
quantum/template/config.h
quantum/template/template.c
quantum/template/template.h | 2017-01-29 | @jakllsch | quantum/keymap_extras/keymap_dvorak.h
quantum/keymap_extras/keymap_fr_ch.h
quantum/keymap_extras/keymap_french.h
quantum/keymap_extras/keymap_german.h
quantum/keymap_extras/keymap_german_ch.h
quantum/keymap_extras/keymap_nordic.h
quantum/keymap_extras/keymap_spanish.h
quantum/keymap_extras/keymap_uk.h | 2017 Jan 29 | -@kuel | quantum/keymap_extras/keymap_unicode_cyrillic.h
quantum/keymap_extras/keymap_russian.h | | +kuel | quantum/keymap_extras/keymap_unicode_cyrillic.h
quantum/keymap_extras/keymap_russian.h | | @lindhe | quantum/keymap_extras/keymap_nordic.h
quantum/keymap_extras/keymap_norwegian.h | | @matzebond | quantum/keymap_extras/keymap_german.h
quantum/keymap_extras/keymap_neo2.h | | @plgruener | quantum/keymap_extras/keymap_german.h
quantum/keymap_extras/keymap_neo2.h | | From 29ea5f92cad8de8c163203507365a5c33c832f37 Mon Sep 17 00:00:00 2001 From: Wez Furlong Date: Sun, 29 Jan 2017 12:02:10 -0800 Subject: [PATCH 288/517] Updated License Clarification (markdown) --- License-Clarification.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/License-Clarification.md b/License-Clarification.md index 725f152a33..27c51c9ed7 100644 --- a/License-Clarification.md +++ b/License-Clarification.md @@ -33,6 +33,6 @@ stephan . bosebeck at holidayinsider.com | quantum/keymap_extras/keymap_german_o @Twey | quantum/keymap_extras/keymap_plover.h | | @Vifon | quantum/dynamic_macro.h
quantum/quantum.c | | @vincent-pochet | quantum/keymap_extras/keymap_fr_ch.h | | -@wez | quantum/dynamic_macro.h | | +@wez | quantum/dynamic_macro.h | 2017 Jan 29 | @Wilba6582 | quantum/keymap.h
quantum/keymap_common.c
quantum/quantum_keycodes.h | | @yangliu | quantum/light_ws2812.c
quantum/light_ws2812.h
quantum/rgblight.c
quantum/rgblight.h | | From 761b4e04bff17618d8fb5aab1e698620600bddda Mon Sep 17 00:00:00 2001 From: DidierLoiseau Date: Sun, 29 Jan 2017 21:25:10 +0100 Subject: [PATCH 289/517] Added my sign off --- License-Clarification.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/License-Clarification.md b/License-Clarification.md index 27c51c9ed7..60b761f8ca 100644 --- a/License-Clarification.md +++ b/License-Clarification.md @@ -11,7 +11,7 @@ Username | Files | Sign Off Date | @0xdec | quantum/rgblight.c | | @algernon | quantum/quantum.c
quantum/quantum.h
quantum/process_keycode/process_tap_dance.c
quantum/process_keycode/process_tap_dance.h
quantum/process_keycode/process_unicode.c
quantum/process_keycode/process_unicode.h | 2017 Jan 29 | @cdim | quantum/template/template.c
quantum/template/template.h | | -@DidierLoiseau | quantum/keymap_extras/keymap_canadian_multilingual.h
quantum/keymap_extras/keymap_bepo.h | | +@DidierLoiseau | quantum/keymap_extras/keymap_canadian_multilingual.h
quantum/keymap_extras/keymap_bepo.h |2017 Jan 29 | @eltang | quantum/config_common.h
quantum/matrix.c
quantum/quantum.c
quantum/quantum.h
quantum/rgblight.c
quantum/rgblight.h
quantum/template/config.h | | @ezuk | quantum/matrix.c
quantum/quantum.c
quantum/quantum.h
quantum/quantum_keycodes.h
quantum/rgblight.c
quantum/rgblight.h
quantum/keymap_extras/keymap_colemak.h
quantum/keymap_extras/keymap_nordic.h | @fredizzimo | quantum/config_common.h
quantum/keycode_config.h
quantum/keymap.h
quantum/keymap_common.c
quantum/keymap_common.c
quantum/matrix.c
quantum/quantum.h
quantum/rgblight.c
quantum/rgblight.h
quantum/api/api_sysex.c | 2017 Jan 29 | From 89799309d7ea981536543781b81812dcda1070e2 Mon Sep 17 00:00:00 2001 From: TerryMathews Date: Sun, 29 Jan 2017 18:31:57 -0500 Subject: [PATCH 290/517] Updated License Clarification (markdown) --- License-Clarification.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/License-Clarification.md b/License-Clarification.md index 60b761f8ca..0693cd13ca 100644 --- a/License-Clarification.md +++ b/License-Clarification.md @@ -29,7 +29,7 @@ kuel | quantum/keymap_extras/keymap_unicode_cyrillic.h
quantum/keymap_extras/ @Smilliam | quantum/quantum.c | | @sperochon | quantum/keymap_extras/keymap_french_osx.h | | stephan . bosebeck at holidayinsider.com | quantum/keymap_extras/keymap_german_osx.h | | -@TerryMathews | quantum/quantum.c | | +@TerryMathews | quantum/quantum.c | 2017 Jan 29 | @Twey | quantum/keymap_extras/keymap_plover.h | | @Vifon | quantum/dynamic_macro.h
quantum/quantum.c | | @vincent-pochet | quantum/keymap_extras/keymap_fr_ch.h | | From dbeda99de1731beca095bea9692d15ae049902f6 Mon Sep 17 00:00:00 2001 From: Jordi Orlando <0xdec@users.noreply.github.com> Date: Sun, 29 Jan 2017 20:08:12 -0600 Subject: [PATCH 291/517] Sign off on rgblight.c --- License-Clarification.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/License-Clarification.md b/License-Clarification.md index 0693cd13ca..781cf233bb 100644 --- a/License-Clarification.md +++ b/License-Clarification.md @@ -8,7 +8,7 @@ This section documents the people who need to sign off on applying the GPL to on Username | Files | Sign Off Date | ---------|-------|---------------| -@0xdec | quantum/rgblight.c | | +@0xdec | quantum/rgblight.c | 2017 Jan 29 | @algernon | quantum/quantum.c
quantum/quantum.h
quantum/process_keycode/process_tap_dance.c
quantum/process_keycode/process_tap_dance.h
quantum/process_keycode/process_unicode.c
quantum/process_keycode/process_unicode.h | 2017 Jan 29 | @cdim | quantum/template/template.c
quantum/template/template.h | | @DidierLoiseau | quantum/keymap_extras/keymap_canadian_multilingual.h
quantum/keymap_extras/keymap_bepo.h |2017 Jan 29 | From cb5a8feeb222119ec2fddbdd95ff1a3dc074dbbf Mon Sep 17 00:00:00 2001 From: Seb Date: Mon, 30 Jan 2017 09:11:07 +0100 Subject: [PATCH 292/517] Updated License Clarification (markdown) --- License-Clarification.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/License-Clarification.md b/License-Clarification.md index 781cf233bb..63ca5ed2f4 100644 --- a/License-Clarification.md +++ b/License-Clarification.md @@ -27,7 +27,7 @@ kuel | quantum/keymap_extras/keymap_unicode_cyrillic.h
quantum/keymap_extras/ @priyadi | quantum/quantum.c
quantum/process_keycode/process_unicode.c
quantum/process_keycode/process_unicode.h | | @pvinis | quantum/quantum.c
quantum/quantum.h
quantum/process_keycode/process_tap_dance.c
quantum/process_keycode/process_tap_dance.h | 2017 Jan 29 | @Smilliam | quantum/quantum.c | | -@sperochon | quantum/keymap_extras/keymap_french_osx.h | | +@sperochon | quantum/keymap_extras/keymap_french_osx.h | 2017 Jan 30 | stephan . bosebeck at holidayinsider.com | quantum/keymap_extras/keymap_german_osx.h | | @TerryMathews | quantum/quantum.c | 2017 Jan 29 | @Twey | quantum/keymap_extras/keymap_plover.h | | @@ -35,4 +35,4 @@ stephan . bosebeck at holidayinsider.com | quantum/keymap_extras/keymap_german_o @vincent-pochet | quantum/keymap_extras/keymap_fr_ch.h | | @wez | quantum/dynamic_macro.h | 2017 Jan 29 | @Wilba6582 | quantum/keymap.h
quantum/keymap_common.c
quantum/quantum_keycodes.h | | -@yangliu | quantum/light_ws2812.c
quantum/light_ws2812.h
quantum/rgblight.c
quantum/rgblight.h | | +@yangliu | quantum/light_ws2812.c
quantum/light_ws2812.h
quantum/rgblight.c
quantum/rgblight.h | | \ No newline at end of file From 50dd22d1bf758e2f11b6bb952f88c9064ddbb8cb Mon Sep 17 00:00:00 2001 From: plgruener Date: Mon, 30 Jan 2017 17:29:40 +0100 Subject: [PATCH 293/517] Updated License Clarification (markdown) --- License-Clarification.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/License-Clarification.md b/License-Clarification.md index 63ca5ed2f4..f9c708ac2f 100644 --- a/License-Clarification.md +++ b/License-Clarification.md @@ -23,7 +23,7 @@ Username | Files | Sign Off Date | kuel | quantum/keymap_extras/keymap_unicode_cyrillic.h
quantum/keymap_extras/keymap_russian.h | | @lindhe | quantum/keymap_extras/keymap_nordic.h
quantum/keymap_extras/keymap_norwegian.h | | @matzebond | quantum/keymap_extras/keymap_german.h
quantum/keymap_extras/keymap_neo2.h | | -@plgruener | quantum/keymap_extras/keymap_german.h
quantum/keymap_extras/keymap_neo2.h | | +@plgruener | quantum/keymap_extras/keymap_german.h
quantum/keymap_extras/keymap_neo2.h | 2017 Jan 30 | @priyadi | quantum/quantum.c
quantum/process_keycode/process_unicode.c
quantum/process_keycode/process_unicode.h | | @pvinis | quantum/quantum.c
quantum/quantum.h
quantum/process_keycode/process_tap_dance.c
quantum/process_keycode/process_tap_dance.h | 2017 Jan 29 | @Smilliam | quantum/quantum.c | | From 6cf5c7e7f4f74170421c14b184201c511f69a7aa Mon Sep 17 00:00:00 2001 From: skullydazed Date: Mon, 30 Jan 2017 10:44:38 -0800 Subject: [PATCH 294/517] Adding signify for @yangliu --- License-Clarification.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/License-Clarification.md b/License-Clarification.md index f9c708ac2f..39b4370dc4 100644 --- a/License-Clarification.md +++ b/License-Clarification.md @@ -35,4 +35,4 @@ stephan . bosebeck at holidayinsider.com | quantum/keymap_extras/keymap_german_o @vincent-pochet | quantum/keymap_extras/keymap_fr_ch.h | | @wez | quantum/dynamic_macro.h | 2017 Jan 29 | @Wilba6582 | quantum/keymap.h
quantum/keymap_common.c
quantum/quantum_keycodes.h | | -@yangliu | quantum/light_ws2812.c
quantum/light_ws2812.h
quantum/rgblight.c
quantum/rgblight.h | | \ No newline at end of file +@yangliu | quantum/light_ws2812.c
quantum/light_ws2812.h
quantum/rgblight.c
quantum/rgblight.h | 2017 Jan 30 | \ No newline at end of file From 3a1e9890dcfd545f4dc6ec59e99c8ea875bdf68f Mon Sep 17 00:00:00 2001 From: skullydazed Date: Mon, 30 Jan 2017 10:45:19 -0800 Subject: [PATCH 295/517] Adding signify for @lindhe --- License-Clarification.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/License-Clarification.md b/License-Clarification.md index 39b4370dc4..d8c0450af0 100644 --- a/License-Clarification.md +++ b/License-Clarification.md @@ -21,7 +21,7 @@ Username | Files | Sign Off Date | @jackhumbert | quantum/config_common.h
quantum/keycode_config.h
quantum/keymap.h
quantum/keymap_common.c
quantum/light_ws2812.c
quantum/light_ws2812.h
quantum/matrix.c
quantum/quantum.c
quantum/quantum.h
quantum/quantum_keycodes.h
quantum/rgblight.c
quantum/rgblight.h
quantum/api/api_sysex.c
quantum/audio/audio.c
quantum/audio/audio.h
quantum/audio/audio_pwm.c
quantum/audio/audio_pwm.c
quantum/audio/voices.c
quantum/audio/voices.h
quantum/keymap_extras/keymap_colemak.h
quantum/keymap_extras/keymap_dvorak.h
quantum/keymap_extras/keymap_fr_ch.h
quantum/keymap_extras/keymap_french.h
quantum/keymap_extras/keymap_french_osx.h
quantum/keymap_extras/keymap_german.h
quantum/keymap_extras/keymap_german_ch.h
quantum/keymap_extras/keymap_german_osx.h
quantum/keymap_extras/keymap_neo2.h
quantum/keymap_extras/keymap_nordic.h
quantum/keymap_extras/keymap_plover.h
quantum/keymap_extras/keymap_spanish.h
quantum/keymap_extras/keymap_uk.h
quantum/process_keycode/process_midi.c
quantum/process_keycode/process_music.c
quantum/process_keycode/process_tap_dance.c
quantum/process_keycode/process_tap_dance.h
quantum/process_keycode/process_unicode.c
quantum/process_keycode/process_unicode.h
quantum/template/config.h
quantum/template/template.c
quantum/template/template.h | 2017-01-29 | @jakllsch | quantum/keymap_extras/keymap_dvorak.h
quantum/keymap_extras/keymap_fr_ch.h
quantum/keymap_extras/keymap_french.h
quantum/keymap_extras/keymap_german.h
quantum/keymap_extras/keymap_german_ch.h
quantum/keymap_extras/keymap_nordic.h
quantum/keymap_extras/keymap_spanish.h
quantum/keymap_extras/keymap_uk.h | 2017 Jan 29 | kuel | quantum/keymap_extras/keymap_unicode_cyrillic.h
quantum/keymap_extras/keymap_russian.h | | -@lindhe | quantum/keymap_extras/keymap_nordic.h
quantum/keymap_extras/keymap_norwegian.h | | +@lindhe | quantum/keymap_extras/keymap_nordic.h
quantum/keymap_extras/keymap_norwegian.h | 2017 Jan 30 | @matzebond | quantum/keymap_extras/keymap_german.h
quantum/keymap_extras/keymap_neo2.h | | @plgruener | quantum/keymap_extras/keymap_german.h
quantum/keymap_extras/keymap_neo2.h | 2017 Jan 30 | @priyadi | quantum/quantum.c
quantum/process_keycode/process_unicode.c
quantum/process_keycode/process_unicode.h | | From 24a61213aa65052c0c3cb6e16cf3e73bc38e4959 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Mon, 30 Jan 2017 10:57:07 -0800 Subject: [PATCH 296/517] Adding signify for @IBNobody --- License-Clarification.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/License-Clarification.md b/License-Clarification.md index d8c0450af0..541cea0cda 100644 --- a/License-Clarification.md +++ b/License-Clarification.md @@ -17,7 +17,7 @@ Username | Files | Sign Off Date | @fredizzimo | quantum/config_common.h
quantum/keycode_config.h
quantum/keymap.h
quantum/keymap_common.c
quantum/keymap_common.c
quantum/matrix.c
quantum/quantum.h
quantum/rgblight.c
quantum/rgblight.h
quantum/api/api_sysex.c | 2017 Jan 29 | @h-youhei | quantum/keymap_extras/keymap_jp.h | 2017 Jan 28 | @heartsekai | quantum/keymap_extras/keymap_german_ch.h | 2017 Jan 29 | -@IBnobody | quantum/keycode_config.h
quantum/matrix.c
quantum/quantum.c
quantum/audio/audio.c
quantum/audio/audio.h
quantum/audio/audio_pwm.c
quantum/audio/audio_pwm.c
quantum/audio/voices.c
quantum/audio/voices.h
quantum/template/config.h
quantum/template/template.c | | +@IBnobody | quantum/keycode_config.h
quantum/matrix.c
quantum/quantum.c
quantum/audio/audio.c
quantum/audio/audio.h
quantum/audio/audio_pwm.c
quantum/audio/audio_pwm.c
quantum/audio/voices.c
quantum/audio/voices.h
quantum/template/config.h
quantum/template/template.c | 2017 Jan 30 | @jackhumbert | quantum/config_common.h
quantum/keycode_config.h
quantum/keymap.h
quantum/keymap_common.c
quantum/light_ws2812.c
quantum/light_ws2812.h
quantum/matrix.c
quantum/quantum.c
quantum/quantum.h
quantum/quantum_keycodes.h
quantum/rgblight.c
quantum/rgblight.h
quantum/api/api_sysex.c
quantum/audio/audio.c
quantum/audio/audio.h
quantum/audio/audio_pwm.c
quantum/audio/audio_pwm.c
quantum/audio/voices.c
quantum/audio/voices.h
quantum/keymap_extras/keymap_colemak.h
quantum/keymap_extras/keymap_dvorak.h
quantum/keymap_extras/keymap_fr_ch.h
quantum/keymap_extras/keymap_french.h
quantum/keymap_extras/keymap_french_osx.h
quantum/keymap_extras/keymap_german.h
quantum/keymap_extras/keymap_german_ch.h
quantum/keymap_extras/keymap_german_osx.h
quantum/keymap_extras/keymap_neo2.h
quantum/keymap_extras/keymap_nordic.h
quantum/keymap_extras/keymap_plover.h
quantum/keymap_extras/keymap_spanish.h
quantum/keymap_extras/keymap_uk.h
quantum/process_keycode/process_midi.c
quantum/process_keycode/process_music.c
quantum/process_keycode/process_tap_dance.c
quantum/process_keycode/process_tap_dance.h
quantum/process_keycode/process_unicode.c
quantum/process_keycode/process_unicode.h
quantum/template/config.h
quantum/template/template.c
quantum/template/template.h | 2017-01-29 | @jakllsch | quantum/keymap_extras/keymap_dvorak.h
quantum/keymap_extras/keymap_fr_ch.h
quantum/keymap_extras/keymap_french.h
quantum/keymap_extras/keymap_german.h
quantum/keymap_extras/keymap_german_ch.h
quantum/keymap_extras/keymap_nordic.h
quantum/keymap_extras/keymap_spanish.h
quantum/keymap_extras/keymap_uk.h | 2017 Jan 29 | kuel | quantum/keymap_extras/keymap_unicode_cyrillic.h
quantum/keymap_extras/keymap_russian.h | | From aa491523ab350e23aafba832b69d1784a5a86e90 Mon Sep 17 00:00:00 2001 From: Priyadi Iman Nurcahyo Date: Tue, 31 Jan 2017 02:02:59 +0700 Subject: [PATCH 297/517] Signing off my contributions --- License-Clarification.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/License-Clarification.md b/License-Clarification.md index 541cea0cda..ddca112425 100644 --- a/License-Clarification.md +++ b/License-Clarification.md @@ -24,7 +24,7 @@ kuel | quantum/keymap_extras/keymap_unicode_cyrillic.h
quantum/keymap_extras/ @lindhe | quantum/keymap_extras/keymap_nordic.h
quantum/keymap_extras/keymap_norwegian.h | 2017 Jan 30 | @matzebond | quantum/keymap_extras/keymap_german.h
quantum/keymap_extras/keymap_neo2.h | | @plgruener | quantum/keymap_extras/keymap_german.h
quantum/keymap_extras/keymap_neo2.h | 2017 Jan 30 | -@priyadi | quantum/quantum.c
quantum/process_keycode/process_unicode.c
quantum/process_keycode/process_unicode.h | | +@priyadi | quantum/quantum.c
quantum/process_keycode/process_unicode.c
quantum/process_keycode/process_unicode.h | 2017 Jan 31 | @pvinis | quantum/quantum.c
quantum/quantum.h
quantum/process_keycode/process_tap_dance.c
quantum/process_keycode/process_tap_dance.h | 2017 Jan 29 | @Smilliam | quantum/quantum.c | | @sperochon | quantum/keymap_extras/keymap_french_osx.h | 2017 Jan 30 | From e97a2215c7c0eaad01e65dde7d3d30fa5719354e Mon Sep 17 00:00:00 2001 From: matzebond Date: Mon, 30 Jan 2017 20:23:22 +0100 Subject: [PATCH 298/517] Updated License Clarification (markdown) --- License-Clarification.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/License-Clarification.md b/License-Clarification.md index ddca112425..a307dad239 100644 --- a/License-Clarification.md +++ b/License-Clarification.md @@ -22,7 +22,7 @@ Username | Files | Sign Off Date | @jakllsch | quantum/keymap_extras/keymap_dvorak.h
quantum/keymap_extras/keymap_fr_ch.h
quantum/keymap_extras/keymap_french.h
quantum/keymap_extras/keymap_german.h
quantum/keymap_extras/keymap_german_ch.h
quantum/keymap_extras/keymap_nordic.h
quantum/keymap_extras/keymap_spanish.h
quantum/keymap_extras/keymap_uk.h | 2017 Jan 29 | kuel | quantum/keymap_extras/keymap_unicode_cyrillic.h
quantum/keymap_extras/keymap_russian.h | | @lindhe | quantum/keymap_extras/keymap_nordic.h
quantum/keymap_extras/keymap_norwegian.h | 2017 Jan 30 | -@matzebond | quantum/keymap_extras/keymap_german.h
quantum/keymap_extras/keymap_neo2.h | | +@matzebond | quantum/keymap_extras/keymap_german.h
quantum/keymap_extras/keymap_neo2.h | 2017 Jan 30 | @plgruener | quantum/keymap_extras/keymap_german.h
quantum/keymap_extras/keymap_neo2.h | 2017 Jan 30 | @priyadi | quantum/quantum.c
quantum/process_keycode/process_unicode.c
quantum/process_keycode/process_unicode.h | 2017 Jan 31 | @pvinis | quantum/quantum.c
quantum/quantum.h
quantum/process_keycode/process_tap_dance.c
quantum/process_keycode/process_tap_dance.h | 2017 Jan 29 | From 5f79da2d5f6c8a6415bbc0081eac60bfc5d127b2 Mon Sep 17 00:00:00 2001 From: Erik Dasque Date: Tue, 31 Jan 2017 20:19:05 -0500 Subject: [PATCH 299/517] Updated Home (markdown) --- Home.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Home.md b/Home.md index 60a80a7cae..824a44b867 100644 --- a/Home.md +++ b/Home.md @@ -99,10 +99,10 @@ If this is a bit complex for you, Docker might be the turn-key solution you need # modify the keymap and keyboard assigment to compile what you want # defaults are ergodox/default -docker run -e keymap=gwen -e keyboard=ergodox --rm -v $('pwd'):/qmk:rw edasque/qmk_firmware +docker run -e keymap=gwen -e keymap=default -e keyboard=ergodox --rm -v $('pwd'):/qmk:rw edasque/qmk_firmware # On windows docker seems to have issue with VOLUME tag in Dockerfile, and $('pwd') won't print a windows compliant path, use full path instead like this -docker run -e keymap=default -e keyboard=ergobop --rm -v D:/Users/Sacapuces/Documents/Repositories/qmk:/qmk:rw edasque/qmk_firmware +docker run -e keymap=default -e keymap=default -e keyboard=ergobox --rm -v D:/Users/Sacapuces/Documents/Repositories/qmk:/qmk:rw edasque/qmk_firmware ``` @@ -1562,4 +1562,4 @@ This will add a traced variable named "layer" (the name is just for your informa In order to actually detect changes to the variables you should call `VERIFY_TRACED_VARIABLES` around the code that you think that modifies the variable. If a variable is modified it will tell you between which two `VERIFY_TRACED_VARIABLES` calls the modification happened. You can then add more calls to track it down further. I don't recommend spamming the codebase with calls. It's better to start with a few, and then keep adding them in a binary search fashion. You can also delete the ones you don't need, as each call need to store the file name and line number in the ROM, so you can run out of memory if you add too many calls. -Also remember to delete all the tracing code ones you have found the bug, as you wouldn't want to create a pull request with tracing code. +Also remember to delete all the tracing code ones you have found the bug, as you wouldn't want to create a pull request with tracing code. \ No newline at end of file From 7b798789f9239bd34050cf190e039b45d5790bd5 Mon Sep 17 00:00:00 2001 From: Erik Dasque Date: Thu, 2 Feb 2017 08:51:36 -0500 Subject: [PATCH 300/517] Updated Home (markdown) --- Home.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Home.md b/Home.md index 824a44b867..145b815eee 100644 --- a/Home.md +++ b/Home.md @@ -99,10 +99,10 @@ If this is a bit complex for you, Docker might be the turn-key solution you need # modify the keymap and keyboard assigment to compile what you want # defaults are ergodox/default -docker run -e keymap=gwen -e keymap=default -e keyboard=ergodox --rm -v $('pwd'):/qmk:rw edasque/qmk_firmware +docker run -e keymap=gwen -e subproject=ez -e keyboard=ergodox --rm -v $('pwd'):/qmk:rw edasque/qmk_firmware # On windows docker seems to have issue with VOLUME tag in Dockerfile, and $('pwd') won't print a windows compliant path, use full path instead like this -docker run -e keymap=default -e keymap=default -e keyboard=ergobox --rm -v D:/Users/Sacapuces/Documents/Repositories/qmk:/qmk:rw edasque/qmk_firmware +docker run -e keymap=default -e subproject=ez -e keyboard=ergobox --rm -v D:/Users/Sacapuces/Documents/Repositories/qmk:/qmk:rw edasque/qmk_firmware ``` From 4344273c95cbf5552dc61f706b6a6fff18b93820 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Thu, 2 Feb 2017 13:55:18 -0800 Subject: [PATCH 301/517] Updated License Clarification (markdown) --- License-Clarification.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/License-Clarification.md b/License-Clarification.md index a307dad239..4124a009cd 100644 --- a/License-Clarification.md +++ b/License-Clarification.md @@ -13,7 +13,7 @@ Username | Files | Sign Off Date | @cdim | quantum/template/template.c
quantum/template/template.h | | @DidierLoiseau | quantum/keymap_extras/keymap_canadian_multilingual.h
quantum/keymap_extras/keymap_bepo.h |2017 Jan 29 | @eltang | quantum/config_common.h
quantum/matrix.c
quantum/quantum.c
quantum/quantum.h
quantum/rgblight.c
quantum/rgblight.h
quantum/template/config.h | | -@ezuk | quantum/matrix.c
quantum/quantum.c
quantum/quantum.h
quantum/quantum_keycodes.h
quantum/rgblight.c
quantum/rgblight.h
quantum/keymap_extras/keymap_colemak.h
quantum/keymap_extras/keymap_nordic.h | +@ezuk | quantum/matrix.c
quantum/quantum.c
quantum/quantum.h
quantum/quantum_keycodes.h
quantum/rgblight.c
quantum/rgblight.h
quantum/keymap_extras/keymap_colemak.h
quantum/keymap_extras/keymap_nordic.h | 2017 Jan 31 | @fredizzimo | quantum/config_common.h
quantum/keycode_config.h
quantum/keymap.h
quantum/keymap_common.c
quantum/keymap_common.c
quantum/matrix.c
quantum/quantum.h
quantum/rgblight.c
quantum/rgblight.h
quantum/api/api_sysex.c | 2017 Jan 29 | @h-youhei | quantum/keymap_extras/keymap_jp.h | 2017 Jan 28 | @heartsekai | quantum/keymap_extras/keymap_german_ch.h | 2017 Jan 29 | From eadb1afbd0dd13a38edad8948bf2d71766bc5760 Mon Sep 17 00:00:00 2001 From: Erez Zukerman Date: Thu, 2 Feb 2017 18:32:21 -0500 Subject: [PATCH 302/517] fixes typo --- Home.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Home.md b/Home.md index 145b815eee..a2fe5ed2f7 100644 --- a/Home.md +++ b/Home.md @@ -1562,4 +1562,4 @@ This will add a traced variable named "layer" (the name is just for your informa In order to actually detect changes to the variables you should call `VERIFY_TRACED_VARIABLES` around the code that you think that modifies the variable. If a variable is modified it will tell you between which two `VERIFY_TRACED_VARIABLES` calls the modification happened. You can then add more calls to track it down further. I don't recommend spamming the codebase with calls. It's better to start with a few, and then keep adding them in a binary search fashion. You can also delete the ones you don't need, as each call need to store the file name and line number in the ROM, so you can run out of memory if you add too many calls. -Also remember to delete all the tracing code ones you have found the bug, as you wouldn't want to create a pull request with tracing code. \ No newline at end of file +Also remember to delete all the tracing code once you have found the bug, as you wouldn't want to create a pull request with tracing code. \ No newline at end of file From bd43954a7029d15f082bb00f792de585552b4ac6 Mon Sep 17 00:00:00 2001 From: Jordi Orlando <0xdec@users.noreply.github.com> Date: Thu, 2 Feb 2017 21:23:53 -0600 Subject: [PATCH 303/517] Fix username typo --- License-Clarification.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/License-Clarification.md b/License-Clarification.md index 4124a009cd..e47b024767 100644 --- a/License-Clarification.md +++ b/License-Clarification.md @@ -10,7 +10,7 @@ Username | Files | Sign Off Date | ---------|-------|---------------| @0xdec | quantum/rgblight.c | 2017 Jan 29 | @algernon | quantum/quantum.c
quantum/quantum.h
quantum/process_keycode/process_tap_dance.c
quantum/process_keycode/process_tap_dance.h
quantum/process_keycode/process_unicode.c
quantum/process_keycode/process_unicode.h | 2017 Jan 29 | -@cdim | quantum/template/template.c
quantum/template/template.h | | +@cdlm | quantum/template/template.c
quantum/template/template.h | | @DidierLoiseau | quantum/keymap_extras/keymap_canadian_multilingual.h
quantum/keymap_extras/keymap_bepo.h |2017 Jan 29 | @eltang | quantum/config_common.h
quantum/matrix.c
quantum/quantum.c
quantum/quantum.h
quantum/rgblight.c
quantum/rgblight.h
quantum/template/config.h | | @ezuk | quantum/matrix.c
quantum/quantum.c
quantum/quantum.h
quantum/quantum_keycodes.h
quantum/rgblight.c
quantum/rgblight.h
quantum/keymap_extras/keymap_colemak.h
quantum/keymap_extras/keymap_nordic.h | 2017 Jan 31 | From 8a7daf34a26fddcf1ddc5331cce7e160beea76c3 Mon Sep 17 00:00:00 2001 From: johannes Date: Fri, 3 Feb 2017 10:47:37 +0100 Subject: [PATCH 304/517] initial keymap --- keyboards/planck/config.h | 5 +- keyboards/planck/keymaps/johannes/Makefile | 25 +++++ keyboards/planck/keymaps/johannes/keymap.c | 100 ++++++++++++++++++++ keyboards/planck/keymaps/johannes/readme.md | 2 + 4 files changed, 129 insertions(+), 3 deletions(-) create mode 100644 keyboards/planck/keymaps/johannes/Makefile create mode 100644 keyboards/planck/keymaps/johannes/keymap.c create mode 100644 keyboards/planck/keymaps/johannes/readme.md diff --git a/keyboards/planck/config.h b/keyboards/planck/config.h index 5cf96bb88c..fe59d8b50a 100644 --- a/keyboards/planck/config.h +++ b/keyboards/planck/config.h @@ -32,10 +32,9 @@ along with this program. If not, see . #define MATRIX_COLS 12 /* Planck PCB default pin-out */ -#define MATRIX_ROW_PINS { D0, D5, B5, B6 } -#define MATRIX_COL_PINS { F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 } +#define MATRIX_ROW_PINS { F4, F5, F6, F7 } +#define MATRIX_COL_PINS { B1, B3, B2, B6, B5, B4, D2, D7, C6, D4, D0, D1 } #define UNUSED_PINS - #define AUDIO_VOICES #define BACKLIGHT_PIN B7 diff --git a/keyboards/planck/keymaps/johannes/Makefile b/keyboards/planck/keymaps/johannes/Makefile new file mode 100644 index 0000000000..0c0632da09 --- /dev/null +++ b/keyboards/planck/keymaps/johannes/Makefile @@ -0,0 +1,25 @@ + + +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = no # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. + +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif \ No newline at end of file diff --git a/keyboards/planck/keymaps/johannes/keymap.c b/keyboards/planck/keymaps/johannes/keymap.c new file mode 100644 index 0000000000..afbad2440c --- /dev/null +++ b/keyboards/planck/keymaps/johannes/keymap.c @@ -0,0 +1,100 @@ +#include "planck.h" + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. + +// Fillers to make layering more clear +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | S | D | F | G | H | J | K | L | ; | ' | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | super|shift | Space|Raise | lower| alt | | |fn | + * `-----------------------------------------------------------------------------------' + */ +[0] = { + {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {KC_LCTRL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + {XXXXXXX, XXXXXXX, XXXXXXX, KC_LGUI, KC_LSHIFT, KC_SPC, M(2), M(1), KC_LALT, XXXXXXX, XXXXXXX, M(3)} +}, + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | { | } | + | | | Å | Ä | Ö | _ | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | | | | | | | | | | \ | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |Reset | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[1] = { + {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, + {_______, _______, KC_LCBR, KC_RCBR, KC_PLUS, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_UNDS, KC_PIPE}, + {_______, _______, _______, _______, _______, _______, _______,_______, _______,_______, KC_BSLS, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} +}, + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | [ | ] | = | | left| down| up | right| - | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[2] = { + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL}, + {_______, _______, KC_LBRC, KC_RBRC, KC_EQL, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_MINS, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PIPE, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} +}, + +[3] = { + {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} +}, + +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch(id) { + case 1: + if (record->event.pressed) { + layer_on(1); + } else { + layer_off(1); + } + break; + case 2: + if (record->event.pressed) { + layer_on(2); + } else { + layer_off(2); + } + break; + } + return MACRO_NONE; +}; diff --git a/keyboards/planck/keymaps/johannes/readme.md b/keyboards/planck/keymaps/johannes/readme.md new file mode 100644 index 0000000000..3a4824b5b4 --- /dev/null +++ b/keyboards/planck/keymaps/johannes/readme.md @@ -0,0 +1,2 @@ +# A more basic Planck Layout for copying + From cdece6811d072a67d6302e70e879695aba485148 Mon Sep 17 00:00:00 2001 From: Damien Pollet Date: Fri, 3 Feb 2017 13:16:19 +0100 Subject: [PATCH 305/517] Signing off for GPL licensing --- License-Clarification.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/License-Clarification.md b/License-Clarification.md index e47b024767..0ea9a179b9 100644 --- a/License-Clarification.md +++ b/License-Clarification.md @@ -10,7 +10,7 @@ Username | Files | Sign Off Date | ---------|-------|---------------| @0xdec | quantum/rgblight.c | 2017 Jan 29 | @algernon | quantum/quantum.c
quantum/quantum.h
quantum/process_keycode/process_tap_dance.c
quantum/process_keycode/process_tap_dance.h
quantum/process_keycode/process_unicode.c
quantum/process_keycode/process_unicode.h | 2017 Jan 29 | -@cdlm | quantum/template/template.c
quantum/template/template.h | | +@cdlm | quantum/template/template.c
quantum/template/template.h | 2017 Feb 03 | @DidierLoiseau | quantum/keymap_extras/keymap_canadian_multilingual.h
quantum/keymap_extras/keymap_bepo.h |2017 Jan 29 | @eltang | quantum/config_common.h
quantum/matrix.c
quantum/quantum.c
quantum/quantum.h
quantum/rgblight.c
quantum/rgblight.h
quantum/template/config.h | | @ezuk | quantum/matrix.c
quantum/quantum.c
quantum/quantum.h
quantum/quantum_keycodes.h
quantum/rgblight.c
quantum/rgblight.h
quantum/keymap_extras/keymap_colemak.h
quantum/keymap_extras/keymap_nordic.h | 2017 Jan 31 | From f936a3d5c23c1562bdcd237fcba6bd4e5223f0b8 Mon Sep 17 00:00:00 2001 From: johannes Date: Fri, 3 Feb 2017 14:10:19 +0100 Subject: [PATCH 306/517] stuff --- keyboards/planck/keymaps/johannes/keymap.c | 38 ++++++++++++++++++++-- 1 file changed, 35 insertions(+), 3 deletions(-) diff --git a/keyboards/planck/keymaps/johannes/keymap.c b/keyboards/planck/keymaps/johannes/keymap.c index afbad2440c..d6c0ca81fe 100644 --- a/keyboards/planck/keymaps/johannes/keymap.c +++ b/keyboards/planck/keymaps/johannes/keymap.c @@ -19,14 +19,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------|------+------+------+------+------+------| * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | super|shift | Space|Raise | lower| alt | | |fn | + * | | | | super|shift | Space|Raise | lower| alt | altgr| |fn | * `-----------------------------------------------------------------------------------' */ [0] = { {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, {KC_LCTRL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, - {XXXXXXX, XXXXXXX, XXXXXXX, KC_LGUI, KC_LSHIFT, KC_SPC, M(2), M(1), KC_LALT, XXXXXXX, XXXXXXX, M(3)} + {XXXXXXX, XXXXXXX, XXXXXXX, KC_LGUI, KC_LSHIFT, KC_SPC, M(2), M(1), KC_LALT, KC_RALT, XXXXXXX, M(3)} }, /* Lower @@ -42,7 +42,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [1] = { {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, - {_______, _______, KC_LCBR, KC_RCBR, KC_PLUS, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_UNDS, KC_PIPE}, + {_______, _______, KC_LCBR, KC_RCBR, KC_PLUS, _______, _______, M(4), M(5), M(6), KC_UNDS, _______}, {_______, _______, _______, _______, _______, _______, _______,_______, _______,_______, KC_BSLS, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} }, @@ -65,6 +65,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} }, +// Fn-layer [3] = { {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, @@ -94,6 +95,37 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) } else { layer_off(2); } + break; + case 3: + if (record->event.pressed) { + layer_on(3); + } else { + layer_off(3); + } + break; + case 4: // å + if (record->event.pressed) { + register_code(KC_RALT); + register_code(KC_W); + } else { + unregister_code(KC_RALT); + } + break; + case 5: // ä + if (record->event.pressed) { + register_code(KC_RALT); + register_code(KC_Q); + } else { + unregister_code(KC_RALT); + } + break; + case 6: // ö + if (record->event.pressed) { + register_code(KC_RALT); + register_code(KC_P); + } else { + unregister_code(KC_RALT); + } break; } return MACRO_NONE; From c3ebd9e61badc47a69143e9448fbfecce1027ede Mon Sep 17 00:00:00 2001 From: bestguy <7zark7@gmail.com> Date: Sun, 5 Feb 2017 16:08:31 -0800 Subject: [PATCH 307/517] Fix indent to show code formatting, was missing --- Home.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Home.md b/Home.md index a2fe5ed2f7..80adc76076 100644 --- a/Home.md +++ b/Home.md @@ -866,7 +866,7 @@ For the details about the internals of the dynamic macros, please read the comme Everything is assuming you're in Qwerty (in software) by default, but there is built-in support for using a Colemak or Dvorak layout by including this at the top of your keymap: - #include + #include If you use Dvorak, use `keymap_dvorak.h` instead of `keymap_colemak.h` for this line. After including this line, you will get access to: From 4d905b17f483253e7fd66eba333623c01207e0d5 Mon Sep 17 00:00:00 2001 From: Wojciech Siewierski Date: Thu, 9 Feb 2017 18:00:54 +0100 Subject: [PATCH 308/517] Signing off for GPL licensing --- License-Clarification.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/License-Clarification.md b/License-Clarification.md index 0ea9a179b9..eb2d0b273a 100644 --- a/License-Clarification.md +++ b/License-Clarification.md @@ -31,7 +31,7 @@ kuel | quantum/keymap_extras/keymap_unicode_cyrillic.h
quantum/keymap_extras/ stephan . bosebeck at holidayinsider.com | quantum/keymap_extras/keymap_german_osx.h | | @TerryMathews | quantum/quantum.c | 2017 Jan 29 | @Twey | quantum/keymap_extras/keymap_plover.h | | -@Vifon | quantum/dynamic_macro.h
quantum/quantum.c | | +@Vifon | quantum/dynamic_macro.h
quantum/quantum.c | 2017 Feb 09 | @vincent-pochet | quantum/keymap_extras/keymap_fr_ch.h | | @wez | quantum/dynamic_macro.h | 2017 Jan 29 | @Wilba6582 | quantum/keymap.h
quantum/keymap_common.c
quantum/quantum_keycodes.h | | From eddc161d5d97c51c945e7acc7df6a21bf63b2359 Mon Sep 17 00:00:00 2001 From: Vincent Pochet Date: Thu, 9 Feb 2017 18:04:58 +0100 Subject: [PATCH 309/517] Updated License Clarification (markdown) --- License-Clarification.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/License-Clarification.md b/License-Clarification.md index eb2d0b273a..e50b5d5e49 100644 --- a/License-Clarification.md +++ b/License-Clarification.md @@ -32,7 +32,7 @@ stephan . bosebeck at holidayinsider.com | quantum/keymap_extras/keymap_german_o @TerryMathews | quantum/quantum.c | 2017 Jan 29 | @Twey | quantum/keymap_extras/keymap_plover.h | | @Vifon | quantum/dynamic_macro.h
quantum/quantum.c | 2017 Feb 09 | -@vincent-pochet | quantum/keymap_extras/keymap_fr_ch.h | | +@vincent-pochet | quantum/keymap_extras/keymap_fr_ch.h | 2017 Feb 09 | @wez | quantum/dynamic_macro.h | 2017 Jan 29 | @Wilba6582 | quantum/keymap.h
quantum/keymap_common.c
quantum/quantum_keycodes.h | | @yangliu | quantum/light_ws2812.c
quantum/light_ws2812.h
quantum/rgblight.c
quantum/rgblight.h | 2017 Jan 30 | \ No newline at end of file From cf97749fb766a1bc1691412455788ced6df7b254 Mon Sep 17 00:00:00 2001 From: Priyadi Iman Nurcahyo Date: Tue, 14 Feb 2017 02:57:15 +0700 Subject: [PATCH 310/517] Updated Home (markdown) --- Home.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Home.md b/Home.md index 80adc76076..37bd62e8c3 100644 --- a/Home.md +++ b/Home.md @@ -309,6 +309,10 @@ This allows you to interface with a Bluefruit EZ-key to send keycodes wirelessly This allows you output audio on the C6 pin (needs abstracting). See the [audio section](#audio-output-from-a-speaker) for more information. +`FAUXCLICKY_ENABLE` + +Uses buzzer to emulate clicky switches. A cheap imitation of the Cherry blue switches. By default, uses the C6 pin, same as AUDIO_ENABLE. + `VARIABLE_TRACE` Use this to debug changes to variable values, see the [tracing variables](#tracing-variables) section for more information. From 6862ab1609230035406fbc00c077f673c65eeeb3 Mon Sep 17 00:00:00 2001 From: schwarzgrau Date: Tue, 14 Feb 2017 15:38:05 +0100 Subject: [PATCH 311/517] Updated Home (markdown) --- Home.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Home.md b/Home.md index 37bd62e8c3..89b24f5ecb 100644 --- a/Home.md +++ b/Home.md @@ -1036,7 +1036,7 @@ This gets called whenever there is a state change on your host LEDs (eg caps loc #define USB_LED_KANA 4 ``` -and can be tested against the `usb_led` with a conditional like `if (usb_led & (1< Date: Tue, 14 Feb 2017 17:56:06 -0500 Subject: [PATCH 312/517] Created Build Environment Setup (markdown) --- Build-Environment-Setup.md | 112 +++++++++++++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 Build-Environment-Setup.md diff --git a/Build-Environment-Setup.md b/Build-Environment-Setup.md new file mode 100644 index 0000000000..5f8086554b --- /dev/null +++ b/Build-Environment-Setup.md @@ -0,0 +1,112 @@ +### Windows 10 + +Due to some issues with the "Windows (Vista and later)" instructions below, we now recommend following these instructions if you use Windows, which will allow you to use the Windows Subsystem for Linux to compile the firmware. If you are not using Windows 10 with the Anniversary Update installed (which came out in July 2016), you will need to use one of the other methods, such as Docker, Vagrant, or the instructions for Vista and later. + +If you use this method, you will need to use a standalone tool to flash the firmware to the keyboard after you compile it. We recommend the official [QMK Firmware Flasher](https://github.com/qmk/qmk_firmware_flasher/releases). This is because the Windows 10 Subsystem for Linux lacks [libUSB support](https://wpdev.uservoice.com/forums/266908-command-prompt-console-bash-on-ubuntu-on-windo/suggestions/13355724-unable-to-access-usb-devices-from-bash), so it can't access the keyboard's microcontroller. Please add your vote for Microsoft to fix this issue using the link! + +Here are the steps + +1. Install the Windows 10 subsystem for Linux, following [these instructions](http://www.howtogeek.com/249966/how-to-install-and-use-the-linux-bash-shell-on-windows-10/). +2. If you have cloned the repository using git before August 20, 2016, clean up the line endings from wherever you currently access git: + 1. Make sure that you have no changes you haven't committed by running `git status`. ANY UNCOMMITTED CHANGES WILL BE PERMANENTLY LOST. + 2. Run `git rm --cached -r .` + 3. Run `git reset --hard` +3. Open "Bash On Ubuntu On Windows" from the start menu +4. With the bash window open, navigate to your copy of the [qmk_firmware repository](https://github.com/qmk/qmk_firmware) using the `cd` command. The harddisks can be accessed from `/mnt/`. For example, your main hard drive (C:) can be accessed by executing the command `cd /mnt/c`. If your username is John and the qmk_firmware folder is in your Downloads folder, you can move to it with the command `cd /mnt/c/Users/John/Downloads/qmk_firmware`. You can use the Tab key as you go to help you autocomplete the folder names. +5. Run `sudo util/install_dependencies.sh`. **This will run `apt-get upgrade`.** +6. After a while the installation will finish, and you are good to go + +**Note** From time to time, the dependencies might change, so just run `install_dependencies.sh` again if things are not working. + +**Warning:** If you edit Makefiles or shell scripts, make sure you are using an editor that saves the files with Unix line endings. Otherwise the compilation might not work. + + +### Windows (Vista and later) +1. If you have ever installed WinAVR, uninstall it. +2. Install [MHV AVR Tools](https://infernoembedded.com/sites/default/files/project/MHV_AVR_Tools_20131101.exe). Disable smatch, but **be sure to leave the option to add the tools to the PATH checked**. +3. If you are going to flash Infinity based keyboards you will need to install dfu-util, refer to the instructions by [Input Club](https://github.com/kiibohd/controller/wiki/Loading-DFU-Firmware). +4. Install [MinGW](https://sourceforge.net/projects/mingw/files/Installer/mingw-get-setup.exe/download). During installation, uncheck the option to install a graphical user interface. **DO NOT change the default installation folder.** The scripts depend on the default location. +5. Clone this repository. [This link will download it as a zip file, which you'll need to extract.](https://github.com/qmk/qmk_firmware/archive/master.zip) Open the extracted folder in Windows Explorer. +6. Open the `\util` folder. +7. Double-click on the `1-setup-path-win` batch script to run it. You'll need to accept a User Account Control prompt. Press the spacebar to dismiss the success message in the command prompt that pops up. +8. Right-click on the `2-setup-environment-win` batch script, select "Run as administrator", and accept the User Account Control prompt. This part may take a couple of minutes, and you'll need to approve a driver installation, but once it finishes, your environment is complete! + +If you have trouble and want to ask for help, it is useful to generate a *Win_Check_Output.txt* file by running `Win_Check.bat` in the `\util` folder. + +### Mac +If you're using [homebrew,](http://brew.sh/) you can use the following commands: + + brew tap osx-cross/avr + brew install avr-libc + brew install dfu-programmer + +This is the recommended method. If you don't have homebrew, [install it!](http://brew.sh/) It's very much worth it for anyone who works in the command line. + +You can also try these instructions: + +1. Install Xcode from the App Store. +2. Install the Command Line Tools from `Xcode->Preferences->Downloads`. +3. Install [DFU-Programmer](https://dfu-programmer.github.io/). + +If you are going to flash Infinity based keyboards you will also need dfu-util + + brew install dfu-util + +### Linux + +To ensure you are always up to date, you can just run `sudo util/install_dependencies.sh`. That should always install all the dependencies needed. **This will run `apt-get upgrade`.** + +You can also install things manually, but this documentation might not be always up to date with all requirements. + +The current requirements are the following, but not all might be needed depending on what you do. Also note that some systems might not have all the dependencies available as packages, or they might be named differently. + +``` +build-essential +gcc +unzip +wget +zip +gcc-avr +binutils-avr +avr-libc +dfu-programmer +dfu-util +gcc-arm-none-eabi +binutils-arm-none-eabi +libnewlib-arm-none-eabi +git +``` + +Install the dependencies with your favorite package manager. + +Debian/Ubuntu example: + + sudo apt-get update + sudo apt-get install gcc unzip wget zip gcc-avr binutils-avr avr-libc dfu-programmer dfu-util gcc-arm-none-eabi binutils-arm-none-eabi libnewlib-arm-none-eabi + +### Docker + +If this is a bit complex for you, Docker might be the turn-key solution you need. After installing [Docker](https://www.docker.com/products/docker), run the following command at the root of the QMK folder to build a keyboard/keymap: + +```bash +# You'll run this every time you want to build a keymap +# modify the keymap and keyboard assigment to compile what you want +# defaults are ergodox/default + +docker run -e keymap=gwen -e subproject=ez -e keyboard=ergodox --rm -v $('pwd'):/qmk:rw edasque/qmk_firmware + +# On windows docker seems to have issue with VOLUME tag in Dockerfile, and $('pwd') won't print a windows compliant path, use full path instead like this +docker run -e keymap=default -e subproject=ez -e keyboard=ergobox --rm -v D:/Users/Sacapuces/Documents/Repositories/qmk:/qmk:rw edasque/qmk_firmware + +``` + +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](doc/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. +2. Open up a terminal or command prompt and navigate to the `qmk_firmware` folder using the `cd` command. The command prompt will typically open to your home directory. If, for example, you cloned the repository to your Documents folder, then you would type `cd Documents/qmk_firmware`. If you extracted the file from a zip, then it may be named `qmk_firmware-master` instead. +3. To confirm that you're in the correct location, you can display the contents of your current folder using the `dir` command on Windows, or the `ls` command on Linux or Mac. You should see several files, including `readme.md` and a `quantum` folder. From here, you need to navigate to the appropriate folder under `keyboards/`. For example, if you're building for a Planck, run `cd keyboards/planck`. +4. Once you're in the correct keyboard-specific folder, run the `make` command. This should output a lot of information about the build process. More information about the `make` command can be found below. \ No newline at end of file From ba27a112883b959df6bfe07185446e6b876a72ea Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Tue, 14 Feb 2017 17:57:16 -0500 Subject: [PATCH 313/517] Updated Home (markdown) --- Home.md | 115 +------------------------------------------------------- 1 file changed, 1 insertion(+), 114 deletions(-) diff --git a/Home.md b/Home.md index 89b24f5ecb..2627d65f1c 100644 --- a/Home.md +++ b/Home.md @@ -2,120 +2,7 @@ Before you are able to compile, you'll need to install an environment for AVR development. You'll find the instructions for any OS below. If you find another/better way to set things up from scratch, please consider [making a pull request](https://github.com/jackhumbert/qmk_firmware/pulls) with your changes! -## Build Environment Setup - -### Windows 10 - -Due to some issues with the "Windows (Vista and later)" instructions below, we now recommend following these instructions if you use Windows, which will allow you to use the Windows Subsystem for Linux to compile the firmware. If you are not using Windows 10 with the Anniversary Update installed (which came out in July 2016), you will need to use one of the other methods, such as Docker, Vagrant, or the instructions for Vista and later. - -If you use this method, you will need to use a standalone tool to flash the firmware to the keyboard after you compile it. We recommend the official [QMK Firmware Flasher](https://github.com/jackhumbert/qmk_firmware_flasher/releases). This is because the Windows 10 Subsystem for Linux lacks [libUSB support](https://wpdev.uservoice.com/forums/266908-command-prompt-console-bash-on-ubuntu-on-windo/suggestions/13355724-unable-to-access-usb-devices-from-bash), so it can't access the keyboard's microcontroller. Please add your vote for Microsoft to fix this issue using the link! - -Here are the steps - -1. Install the Windows 10 subsystem for Linux, following [these instructions](http://www.howtogeek.com/249966/how-to-install-and-use-the-linux-bash-shell-on-windows-10/). -2. If you have cloned the repository using git before August 20, 2016, clean up the line endings from wherever you currently access git: - 1. Make sure that you have no changes you haven't committed by running `git status`. ANY UNCOMMITTED CHANGES WILL BE PERMANENTLY LOST. - 2. Run `git rm --cached -r .` - 3. Run `git reset --hard` -3. Open "Bash On Ubuntu On Windows" from the start menu -4. With the bash window open, navigate to your copy of the [qmk_firmware repository](https://github.com/jackhumbert/qmk_firmware) using the `cd` command. The harddisks can be accessed from `/mnt/`. For example, your main hard drive (C:) can be accessed by executiing the command `cd /mnt/c`. If your username is John and the qmk_firmware folder is in your Downloads folder, you can move to it with the command `cd /mnt/c/Users/John/Downloads/qmk_firmware`. You can use the Tab key as you go to help you autocomplete the folder names. -5. Run `sudo util/install_dependencies.sh`. **This will run `apt-get upgrade`.** -6. After a while the installation will finish, and you are good to go - -**Note** From time to time, the dependencies might change, so just run `install_dependencies.sh` again if things are not working. - -**Warning:** If you edit Makefiles or shell scripts, make sure you are using an editor that saves the files with Unix line endings. Otherwise the compilation might not work. - - -### Windows (Vista and later) -1. If you have ever installed WinAVR, uninstall it. -2. Install [MHV AVR Tools](https://infernoembedded.com/sites/default/files/project/MHV_AVR_Tools_20131101.exe). Disable smatch, but **be sure to leave the option to add the tools to the PATH checked**. -3. If you are going to flash Infinity based keyboards you will need to install dfu-util, refer to the instructions by [Input Club](https://github.com/kiibohd/controller/wiki/Loading-DFU-Firmware). -4. Install [MinGW](https://sourceforge.net/projects/mingw/files/Installer/mingw-get-setup.exe/download). During installation, uncheck the option to install a graphical user interface. **DO NOT change the default installation folder.** The scripts depend on the default location. -5. Clone this repository. [This link will download it as a zip file, which you'll need to extract.](https://github.com/jackhumbert/qmk_firmware/archive/master.zip) Open the extracted folder in Windows Explorer. -6. Open the `\util` folder. -7. Double-click on the `1-setup-path-win` batch script to run it. You'll need to accept a User Account Control prompt. Press the spacebar to dismiss the success message in the command prompt that pops up. -8. Right-click on the `2-setup-environment-win` batch script, select "Run as administrator", and accept the User Account Control prompt. This part may take a couple of minutes, and you'll need to approve a driver installation, but once it finishes, your environment is complete! - -If you have trouble and want to ask for help, it is useful to generate a *Win_Check_Output.txt* file by running `Win_Check.bat` in the `\util` folder. - -### Mac -If you're using [homebrew,](http://brew.sh/) you can use the following commands: - - brew tap osx-cross/avr - brew install avr-libc - brew install dfu-programmer - -This is the recommended method. If you don't have homebrew, [install it!](http://brew.sh/) It's very much worth it for anyone who works in the command line. - -You can also try these instructions: - -1. Install Xcode from the App Store. -2. Install the Command Line Tools from `Xcode->Preferences->Downloads`. -3. Install [DFU-Programmer](https://dfu-programmer.github.io/). - -If you are going to flash Infinity based keyboards you will also need dfu-util - - brew install dfu-util - -### Linux - -To ensure you are always up to date, you can just run `sudo util/install_dependencies.sh`. That should always install all the dependencies needed. **This will run `apt-get upgrade`.** - -You can also install things manually, but this documentation might not be always up to date with all requirements. - -The current requirements are the following, but not all might be needed depending on what you do. Also note that some systems might not have all the dependencies available as packages, or they might be named differently. - -``` -build-essential -gcc -unzip -wget -zip -gcc-avr -binutils-avr -avr-libc -dfu-programmer -dfu-util -gcc-arm-none-eabi -binutils-arm-none-eabi -libnewlib-arm-none-eabi -git -``` - -Install the dependencies with your favorite package manager. - -Debian/Ubuntu example: - - sudo apt-get update - sudo apt-get install gcc unzip wget zip gcc-avr binutils-avr avr-libc dfu-programmer dfu-util gcc-arm-none-eabi binutils-arm-none-eabi libnewlib-arm-none-eabi - -### Docker - -If this is a bit complex for you, Docker might be the turn-key solution you need. After installing [Docker](https://www.docker.com/products/docker), run the following command at the root of the QMK folder to build a keyboard/keymap: - -```bash -# You'll run this every time you want to build a keymap -# modify the keymap and keyboard assigment to compile what you want -# defaults are ergodox/default - -docker run -e keymap=gwen -e subproject=ez -e keyboard=ergodox --rm -v $('pwd'):/qmk:rw edasque/qmk_firmware - -# On windows docker seems to have issue with VOLUME tag in Dockerfile, and $('pwd') won't print a windows compliant path, use full path instead like this -docker run -e keymap=default -e subproject=ez -e keyboard=ergobox --rm -v D:/Users/Sacapuces/Documents/Repositories/qmk:/qmk:rw edasque/qmk_firmware - -``` - -This will compile the targetted 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](doc/VAGRANT_GUIDE.md). - -## Verify Your Installation -1. If you haven't already, obtain this repository ([https://github.com/jackhumbert/qmk_firmware](https://github.com/jackhumbert/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. -2. Open up a terminal or command prompt and navigate to the `qmk_firmware` folder using the `cd` command. The command prompt will typically open to your home directory. If, for example, you cloned the repository to your Documents folder, then you would type `cd Documents/qmk_firmware`. If you extracted the file from a zip, then it may be named `qmk_firmware-master` instead. -3. To confirm that you're in the correct location, you can display the contents of your current folder using the `dir` command on Windows, or the `ls` command on Linux or Mac. You should see several files, including `readme.md` and a `quantum` folder. From here, you need to navigate to the appropriate folder under `keyboards/`. For example, if you're building for a Planck, run `cd keyboards/planck`. -4. Once you're in the correct keyboard-specific folder, run the `make` command. This should output a lot of information about the build process. More information about the `make` command can be found below. +## [Build Environment Setup](wiki/Build-Environment-Setup) # Customizing your keymap From 5df4372c8124c5f433623f6175a21a599a93942e Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Tue, 14 Feb 2017 18:01:20 -0500 Subject: [PATCH 314/517] Updated Compatible Microcontrollers (markdown) --- Compatible-Microcontrollers.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Compatible-Microcontrollers.md b/Compatible-Microcontrollers.md index a2dca53f72..aaf317d056 100644 --- a/Compatible-Microcontrollers.md +++ b/Compatible-Microcontrollers.md @@ -1,6 +1,6 @@ This runs on: * ATmega32U4 ([PJRC Teensy 2.0](http://www.pjrc.com/teensy/)) -* AT90USB126 ([PJRC Teensy++ 2.0](http://www.pjrc.com/teensy/)) +* AT90USB1286 ([PJRC Teensy++ 2.0](http://www.pjrc.com/teensy/)) * AT90USB1287 ([Atmel USBKEY](http://www.atmel.com/tools/AT90USBKEY.aspx)) * ATmega168P with using [V-USB](http://www.obdev.at/products/vusb/index.html) * ATmega328P with using [V-USB](http://www.obdev.at/products/vusb/index.html) From eb5b52c6c6d3b39fe0c2c48e54f3015417fb9abd Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Tue, 14 Feb 2017 18:03:27 -0500 Subject: [PATCH 315/517] change jackhumbert to qmk --- Home.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Home.md b/Home.md index 2627d65f1c..41a9340014 100644 --- a/Home.md +++ b/Home.md @@ -1,6 +1,6 @@ # Getting started -Before you are able to compile, you'll need to install an environment for AVR development. You'll find the instructions for any OS below. If you find another/better way to set things up from scratch, please consider [making a pull request](https://github.com/jackhumbert/qmk_firmware/pulls) with your changes! +Before you are able to compile, you'll need to install an environment for AVR development. You'll find the instructions for any OS below. If you find another/better way to set things up from scratch, please consider [making a pull request](https://github.com/qmk/qmk_firmware/pulls) with your changes! ## [Build Environment Setup](wiki/Build-Environment-Setup) @@ -238,13 +238,13 @@ You can then override any settings, rather than having to copy and paste the who # Going beyond the keycodes -Aside from the [basic keycodes](https://github.com/jackhumbert/qmk_firmware/blob/master/doc/keycode.txt), your keymap can include shortcuts to common operations. +Aside from the [basic keycodes](https://github.com/qmk/qmk_firmware/blob/master/doc/keycode.txt), your keymap can include shortcuts to common operations. ## Quick aliases to common actions Your keymap can include shortcuts to common operations (called "function actions" in tmk). -These functions work the same way that their `ACTION_*` functions do - they're just quick aliases. To dig into all of the tmk `ACTION_*` functions, please see the [TMK documentation](https://github.com/jackhumbert/qmk_firmware/blob/master/doc/keymap.md#2-action). +These functions work the same way that their `ACTION_*` functions do - they're just quick aliases. To dig into all of the tmk `ACTION_*` functions, please see the [TMK documentation](https://github.com/qmk/qmk_firmware/blob/master/doc/keymap.md#2-action). Instead of using `FNx` when defining `ACTION_*` functions, you can use `F(x)` - the benefit here is being able to use more than 32 function actions (up to 4096), if you happen to need them. @@ -393,7 +393,7 @@ As you can see, you have three function. you can use - `SEQ_ONE_KEY` for single- ## Tap Dance: A single key can do 3, 5, or 100 different things -Hit the semicolon key once, send a semicolon. Hit it twice, rapidly -- send a colon. Hit it three times, and your keyboard's LEDs do a wild dance. That's just one example of what Tap Dance can do. It's one of the nicest community-contributed features in the firmware, conceived and created by [algernon](https://github.com/algernon) in [#451](https://github.com/jackhumbert/qmk_firmware/pull/451). Here's how algernon describes the feature: +Hit the semicolon key once, send a semicolon. Hit it twice, rapidly -- send a colon. Hit it three times, and your keyboard's LEDs do a wild dance. That's just one example of what Tap Dance can do. It's one of the nicest community-contributed features in the firmware, conceived and created by [algernon](https://github.com/algernon) in [#451](https://github.com/qmk/qmk_firmware/pull/451). Here's how algernon describes the feature: With this feature one can specify keys that behave differently, based on the amount of times they have been tapped, and when interrupted, they get handled before the interrupter. @@ -1017,7 +1017,7 @@ AutoHotkey inserts the Text right of `Send, ` when this combination is pressed. ## RGB Under Glow Mod -![Planck with RGB Underglow](https://raw.githubusercontent.com/jackhumbert/qmk_firmware/master/keyboards/planck/keymaps/yang/planck-with-rgb-underglow.jpg) +![Planck with RGB Underglow](https://raw.githubusercontent.com/qmk/qmk_firmware/master/keyboards/planck/keymaps/yang/planck-with-rgb-underglow.jpg) Here is a quick demo on Youtube (with NPKC KC60) (https://www.youtube.com/watch?v=VKrpPAHlisY). @@ -1042,7 +1042,7 @@ The firmware supports 5 different light effects, and the color (hue, saturation, ### WS2812 Wiring -![WS2812 Wiring](https://raw.githubusercontent.com/jackhumbert/qmk_firmware/master/keyboards/planck/keymaps/yang/WS2812-wiring.jpg) +![WS2812 Wiring](https://raw.githubusercontent.com/qmk/qmk_firmware/master/keyboards/planck/keymaps/yang/WS2812-wiring.jpg) Please note the USB port can only supply a limited amount of power to the keyboard (500mA by standard, however, modern computer and most usb hubs can provide 700+mA.). According to the data of NeoPixel from Adafruit, 30 WS2812 LEDs require a 5V 1A power supply, LEDs used in this mod should not more than 20. From c94efed1e6e2da8624f1948c5bf801bcd74fae41 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Tue, 14 Feb 2017 18:04:20 -0500 Subject: [PATCH 316/517] Created _Sidebar (markdown) --- _Sidebar.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 _Sidebar.md diff --git a/_Sidebar.md b/_Sidebar.md new file mode 100644 index 0000000000..3894f28a0d --- /dev/null +++ b/_Sidebar.md @@ -0,0 +1 @@ +* [Build Environment Setup](iki/Build-Environment-Setup) \ No newline at end of file From 7741f2a4985da8e3af9550c713200561cdeffb27 Mon Sep 17 00:00:00 2001 From: Wilba6582 Date: Wed, 15 Feb 2017 10:51:54 +1100 Subject: [PATCH 317/517] Updated License Clarification (markdown) --- License-Clarification.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/License-Clarification.md b/License-Clarification.md index e50b5d5e49..14cad456a5 100644 --- a/License-Clarification.md +++ b/License-Clarification.md @@ -34,5 +34,5 @@ stephan . bosebeck at holidayinsider.com | quantum/keymap_extras/keymap_german_o @Vifon | quantum/dynamic_macro.h
quantum/quantum.c | 2017 Feb 09 | @vincent-pochet | quantum/keymap_extras/keymap_fr_ch.h | 2017 Feb 09 | @wez | quantum/dynamic_macro.h | 2017 Jan 29 | -@Wilba6582 | quantum/keymap.h
quantum/keymap_common.c
quantum/quantum_keycodes.h | | +@Wilba6582 | quantum/keymap.h
quantum/keymap_common.c
quantum/quantum_keycodes.h | 2017 Feb 15 | @yangliu | quantum/light_ws2812.c
quantum/light_ws2812.h
quantum/rgblight.c
quantum/rgblight.h | 2017 Jan 30 | \ No newline at end of file From 2210a55e98df3aa982952978bd2b4eb6df567864 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Wed, 15 Feb 2017 08:31:30 -0800 Subject: [PATCH 318/517] Adding Stephan Bosebeck's signoff --- License-Clarification.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/License-Clarification.md b/License-Clarification.md index 14cad456a5..d7fae8faa5 100644 --- a/License-Clarification.md +++ b/License-Clarification.md @@ -28,7 +28,7 @@ kuel | quantum/keymap_extras/keymap_unicode_cyrillic.h
quantum/keymap_extras/ @pvinis | quantum/quantum.c
quantum/quantum.h
quantum/process_keycode/process_tap_dance.c
quantum/process_keycode/process_tap_dance.h | 2017 Jan 29 | @Smilliam | quantum/quantum.c | | @sperochon | quantum/keymap_extras/keymap_french_osx.h | 2017 Jan 30 | -stephan . bosebeck at holidayinsider.com | quantum/keymap_extras/keymap_german_osx.h | | +stephan . bosebeck at holidayinsider.com | quantum/keymap_extras/keymap_german_osx.h | 2017 Feb 15 | @TerryMathews | quantum/quantum.c | 2017 Jan 29 | @Twey | quantum/keymap_extras/keymap_plover.h | | @Vifon | quantum/dynamic_macro.h
quantum/quantum.c | 2017 Feb 09 | From 118287420f5f68b8dc4f8fd4675d0dd65a8623fe Mon Sep 17 00:00:00 2001 From: schwarzgrau Date: Thu, 16 Feb 2017 17:24:51 +0100 Subject: [PATCH 319/517] tiny spelling change "frimware" to "firmware" --- FAQ-Build.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FAQ-Build.md b/FAQ-Build.md index 2e21cb6921..75babb6bad 100644 --- a/FAQ-Build.md +++ b/FAQ-Build.md @@ -33,7 +33,7 @@ Frist remove all files made in previous build, $ make clean -then build new frimware. +then build new firmware. $ make [KEYMAP=...] From 615dc93fbaf0f0d4687316485e7eb40a65274848 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Thu, 16 Feb 2017 14:07:56 -0800 Subject: [PATCH 320/517] Created Keycodes (markdown) --- Keycodes.md | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 Keycodes.md diff --git a/Keycodes.md b/Keycodes.md new file mode 100644 index 0000000000..b83bbcddfa --- /dev/null +++ b/Keycodes.md @@ -0,0 +1,3 @@ +| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | +|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---| +|KC_NO|KC_ROLL_OVER|KC_POST_FAIL|KC_UNDEFINED|KC_A|KC_B|KC_C|KC_D|KC_E|KC_F|KC_G|KC_H|KC_I|KC_J|KC_K|KC_L| \ No newline at end of file From fcbcff80202cb4b3cddf732168d60557187db509 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Thu, 16 Feb 2017 14:08:22 -0800 Subject: [PATCH 321/517] Updated Keycodes (markdown) --- Keycodes.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Keycodes.md b/Keycodes.md index b83bbcddfa..506670eeaf 100644 --- a/Keycodes.md +++ b/Keycodes.md @@ -1,3 +1,3 @@ -| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | -|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---| -|KC_NO|KC_ROLL_OVER|KC_POST_FAIL|KC_UNDEFINED|KC_A|KC_B|KC_C|KC_D|KC_E|KC_F|KC_G|KC_H|KC_I|KC_J|KC_K|KC_L| \ No newline at end of file +| | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | +|-|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---| +| 0 |KC_NO|KC_ROLL_OVER|KC_POST_FAIL|KC_UNDEFINED|KC_A|KC_B|KC_C|KC_D|KC_E|KC_F|KC_G|KC_H|KC_I|KC_J|KC_K|KC_L| \ No newline at end of file From d2e7b8b4696366bd9fd84adb9ab5e0a2f378bd4b Mon Sep 17 00:00:00 2001 From: skullydazed Date: Thu, 16 Feb 2017 14:08:33 -0800 Subject: [PATCH 322/517] Updated Keycodes (markdown) --- Keycodes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Keycodes.md b/Keycodes.md index 506670eeaf..6b2ced750e 100644 --- a/Keycodes.md +++ b/Keycodes.md @@ -1,3 +1,3 @@ | | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | |-|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---| -| 0 |KC_NO|KC_ROLL_OVER|KC_POST_FAIL|KC_UNDEFINED|KC_A|KC_B|KC_C|KC_D|KC_E|KC_F|KC_G|KC_H|KC_I|KC_J|KC_K|KC_L| \ No newline at end of file +|0|KC_NO|KC_ROLL_OVER|KC_POST_FAIL|KC_UNDEFINED|KC_A|KC_B|KC_C|KC_D|KC_E|KC_F|KC_G|KC_H|KC_I|KC_J|KC_K|KC_L| \ No newline at end of file From e1dc3377a4891c614337a1b693f8d91c73b0eca6 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Thu, 16 Feb 2017 14:08:45 -0800 Subject: [PATCH 323/517] Updated Keycodes (markdown) --- Keycodes.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Keycodes.md b/Keycodes.md index 6b2ced750e..10aebdeb61 100644 --- a/Keycodes.md +++ b/Keycodes.md @@ -1,3 +1,3 @@ -| | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | -|-|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---| +|| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | +||---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---| |0|KC_NO|KC_ROLL_OVER|KC_POST_FAIL|KC_UNDEFINED|KC_A|KC_B|KC_C|KC_D|KC_E|KC_F|KC_G|KC_H|KC_I|KC_J|KC_K|KC_L| \ No newline at end of file From 896a48bac0faa09559398dc1e98114954979eb1f Mon Sep 17 00:00:00 2001 From: skullydazed Date: Thu, 16 Feb 2017 14:08:58 -0800 Subject: [PATCH 324/517] Updated Keycodes (markdown) --- Keycodes.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Keycodes.md b/Keycodes.md index 10aebdeb61..c150571f21 100644 --- a/Keycodes.md +++ b/Keycodes.md @@ -1,3 +1,3 @@ -|| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | -||---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---| +| | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | +|------|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---| |0|KC_NO|KC_ROLL_OVER|KC_POST_FAIL|KC_UNDEFINED|KC_A|KC_B|KC_C|KC_D|KC_E|KC_F|KC_G|KC_H|KC_I|KC_J|KC_K|KC_L| \ No newline at end of file From e6a45c509292f15067cb2355da2f7250afd9562a Mon Sep 17 00:00:00 2001 From: skullydazed Date: Thu, 16 Feb 2017 14:44:12 -0800 Subject: [PATCH 325/517] Updated Keycodes (markdown) --- Keycodes.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/Keycodes.md b/Keycodes.md index c150571f21..0d03c87402 100644 --- a/Keycodes.md +++ b/Keycodes.md @@ -1,3 +1 @@ -| | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | -|------|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---| -|0|KC_NO|KC_ROLL_OVER|KC_POST_FAIL|KC_UNDEFINED|KC_A|KC_B|KC_C|KC_D|KC_E|KC_F|KC_G|KC_H|KC_I|KC_J|KC_K|KC_L| \ No newline at end of file +KC_A|KC_B|KC_C|KC_D|KC_E|KC_F|KC_G|KC_H|KC_I|KC_J|KC_K|KC_L| \ No newline at end of file From b0efdf87952d32650f2d4d9b8cf553c7f64da271 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Thu, 16 Feb 2017 14:44:23 -0800 Subject: [PATCH 326/517] Updated Keycodes (markdown) --- Keycodes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Keycodes.md b/Keycodes.md index 0d03c87402..a62674951a 100644 --- a/Keycodes.md +++ b/Keycodes.md @@ -1 +1 @@ -KC_A|KC_B|KC_C|KC_D|KC_E|KC_F|KC_G|KC_H|KC_I|KC_J|KC_K|KC_L| \ No newline at end of file +| KC_A|KC_B|KC_C|KC_D|KC_E|KC_F|KC_G|KC_H|KC_I|KC_J|KC_K|KC_L| \ No newline at end of file From e1dd99ea74fa3681eaa6ec558870a9d5c39ab237 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Thu, 16 Feb 2017 14:44:32 -0800 Subject: [PATCH 327/517] Updated Keycodes (markdown) --- Keycodes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Keycodes.md b/Keycodes.md index a62674951a..55cd1a9a9a 100644 --- a/Keycodes.md +++ b/Keycodes.md @@ -1 +1 @@ -| KC_A|KC_B|KC_C|KC_D|KC_E|KC_F|KC_G|KC_H|KC_I|KC_J|KC_K|KC_L| \ No newline at end of file +|KC_A|KC_B|KC_C|KC_D|KC_E|KC_F|KC_G|KC_H|KC_I|KC_J|KC_K|KC_L| \ No newline at end of file From 459f206ec757998cef889e444c743626286d05fa Mon Sep 17 00:00:00 2001 From: skullydazed Date: Thu, 16 Feb 2017 14:45:21 -0800 Subject: [PATCH 328/517] Updated Keycodes (markdown) --- Keycodes.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Keycodes.md b/Keycodes.md index 55cd1a9a9a..ad10131aaf 100644 --- a/Keycodes.md +++ b/Keycodes.md @@ -1 +1,2 @@ -|KC_A|KC_B|KC_C|KC_D|KC_E|KC_F|KC_G|KC_H|KC_I|KC_J|KC_K|KC_L| \ No newline at end of file +|KC_A|KC_B|KC_C|KC_D|KC_E|KC_F|KC_G|KC_H|KC_I|KC_J|KC_K|KC_L| +|KC_M|KC_N|KC_O|KC_P|KC_U|KC_R|KC_S|KC_T|KC_U|KC_V|KC_W|KC_X| \ No newline at end of file From 0b809313d0b27ad9ac872ae4eddd7829d7f97649 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Thu, 16 Feb 2017 14:45:49 -0800 Subject: [PATCH 329/517] Updated Keycodes (markdown) --- Keycodes.md | 1 + 1 file changed, 1 insertion(+) diff --git a/Keycodes.md b/Keycodes.md index ad10131aaf..51c1ccda97 100644 --- a/Keycodes.md +++ b/Keycodes.md @@ -1,2 +1,3 @@ +|----|----|----|----|----|----|----|----|----|----|----|----| |KC_A|KC_B|KC_C|KC_D|KC_E|KC_F|KC_G|KC_H|KC_I|KC_J|KC_K|KC_L| |KC_M|KC_N|KC_O|KC_P|KC_U|KC_R|KC_S|KC_T|KC_U|KC_V|KC_W|KC_X| \ No newline at end of file From b663cb63c04433e1af40b57ba85a7340f52443ea Mon Sep 17 00:00:00 2001 From: skullydazed Date: Thu, 16 Feb 2017 14:46:43 -0800 Subject: [PATCH 330/517] Updated Keycodes (markdown) --- Keycodes.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Keycodes.md b/Keycodes.md index 51c1ccda97..0f95476ff8 100644 --- a/Keycodes.md +++ b/Keycodes.md @@ -1,3 +1,4 @@ -|----|----|----|----|----|----|----|----|----|----|----|----| -|KC_A|KC_B|KC_C|KC_D|KC_E|KC_F|KC_G|KC_H|KC_I|KC_J|KC_K|KC_L| -|KC_M|KC_N|KC_O|KC_P|KC_U|KC_R|KC_S|KC_T|KC_U|KC_V|KC_W|KC_X| \ No newline at end of file +|0|1|2|3|4|5|6|7|8|9|10|11|12| +|----|----|----|----|----|----|----|----|----|----|----|----|----| +|KC_A|KC_B|KC_C|KC_D|KC_E|KC_F|KC_G|KC_H|KC_I|KC_J|KC_K|KC_L|KC_M| +|KC_N|KC_O|KC_P|KC_U|KC_R|KC_S|KC_T|KC_U|KC_V|KC_W|KC_X|KC_Y|KC_Z| \ No newline at end of file From ede95297d3c249153f8741f3e353e7106ab3a784 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Thu, 16 Feb 2017 14:47:31 -0800 Subject: [PATCH 331/517] Updated Keycodes (markdown) --- Keycodes.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/Keycodes.md b/Keycodes.md index 0f95476ff8..b615fd97c2 100644 --- a/Keycodes.md +++ b/Keycodes.md @@ -1,4 +1,5 @@ -|0|1|2|3|4|5|6|7|8|9|10|11|12| -|----|----|----|----|----|----|----|----|----|----|----|----|----| -|KC_A|KC_B|KC_C|KC_D|KC_E|KC_F|KC_G|KC_H|KC_I|KC_J|KC_K|KC_L|KC_M| -|KC_N|KC_O|KC_P|KC_U|KC_R|KC_S|KC_T|KC_U|KC_V|KC_W|KC_X|KC_Y|KC_Z| \ No newline at end of file +|0|1|2|3|4|5|6|7|8|9| +|----|----|----|----|----|----|----|----|----|----| +|KC_A|KC_B|KC_C|KC_D|KC_E|KC_F|KC_G|KC_H|KC_I|KC_J| +|KC_K|KC_L|KC_M|KC_N|KC_O|KC_P|KC_U|KC_R|KC_S|KC_T| +|KC_U|KC_V|KC_W|KC_X|KC_Y|KC_Z| \ No newline at end of file From 218bd6329473a9488987accebd01513796df1e25 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Thu, 16 Feb 2017 14:47:56 -0800 Subject: [PATCH 332/517] Updated Keycodes (markdown) --- Keycodes.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Keycodes.md b/Keycodes.md index b615fd97c2..7f4d695c67 100644 --- a/Keycodes.md +++ b/Keycodes.md @@ -1,5 +1,6 @@ -|0|1|2|3|4|5|6|7|8|9| + |----|----|----|----|----|----|----|----|----|----| |KC_A|KC_B|KC_C|KC_D|KC_E|KC_F|KC_G|KC_H|KC_I|KC_J| |KC_K|KC_L|KC_M|KC_N|KC_O|KC_P|KC_U|KC_R|KC_S|KC_T| -|KC_U|KC_V|KC_W|KC_X|KC_Y|KC_Z| \ No newline at end of file +|KC_U|KC_V|KC_W|KC_X|KC_Y|KC_Z| +|----|----|----|----|----|----|----|----|----|----| From 2793758db79d777c2e0ecea476cc2edfda4b8cba Mon Sep 17 00:00:00 2001 From: skullydazed Date: Thu, 16 Feb 2017 14:48:27 -0800 Subject: [PATCH 333/517] Updated Keycodes (markdown) --- Keycodes.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Keycodes.md b/Keycodes.md index 7f4d695c67..08a46a6e12 100644 --- a/Keycodes.md +++ b/Keycodes.md @@ -1,6 +1,6 @@ - +| | | | | | | | | | | |----|----|----|----|----|----|----|----|----|----| |KC_A|KC_B|KC_C|KC_D|KC_E|KC_F|KC_G|KC_H|KC_I|KC_J| |KC_K|KC_L|KC_M|KC_N|KC_O|KC_P|KC_U|KC_R|KC_S|KC_T| |KC_U|KC_V|KC_W|KC_X|KC_Y|KC_Z| -|----|----|----|----|----|----|----|----|----|----| +|----|----|----|----|----|----|----|----|----|----| \ No newline at end of file From 18c09dd154f652ceef97d8820997c7a873a74d74 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Thu, 16 Feb 2017 14:48:49 -0800 Subject: [PATCH 334/517] Updated Keycodes (markdown) --- Keycodes.md | 1 - 1 file changed, 1 deletion(-) diff --git a/Keycodes.md b/Keycodes.md index 08a46a6e12..7d93d2d764 100644 --- a/Keycodes.md +++ b/Keycodes.md @@ -3,4 +3,3 @@ |KC_A|KC_B|KC_C|KC_D|KC_E|KC_F|KC_G|KC_H|KC_I|KC_J| |KC_K|KC_L|KC_M|KC_N|KC_O|KC_P|KC_U|KC_R|KC_S|KC_T| |KC_U|KC_V|KC_W|KC_X|KC_Y|KC_Z| -|----|----|----|----|----|----|----|----|----|----| \ No newline at end of file From 26fda6bfa39d38def20742829e0f1e45b4916b68 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Thu, 16 Feb 2017 14:50:36 -0800 Subject: [PATCH 335/517] Updated Keycodes (markdown) --- Keycodes.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Keycodes.md b/Keycodes.md index 7d93d2d764..ce82c9af72 100644 --- a/Keycodes.md +++ b/Keycodes.md @@ -1,5 +1,9 @@ +## Letters and Numbers + | | | | | | | | | | | |----|----|----|----|----|----|----|----|----|----| +|KC_1|KC_2|KC_3|KC_4|KC_5|KC_6|KC_7|KC_8|KC_9|KC_0| |KC_A|KC_B|KC_C|KC_D|KC_E|KC_F|KC_G|KC_H|KC_I|KC_J| -|KC_K|KC_L|KC_M|KC_N|KC_O|KC_P|KC_U|KC_R|KC_S|KC_T| +|KC_K|KC_L|KC_M|KC_N|KC_O|KC_P|KC_Q|KC_R|KC_S|KC_T| |KC_U|KC_V|KC_W|KC_X|KC_Y|KC_Z| + From a2a216d31618d7352db89ab90fb6657107b40794 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Thu, 16 Feb 2017 14:50:55 -0800 Subject: [PATCH 336/517] Updated Keycodes (markdown) --- Keycodes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Keycodes.md b/Keycodes.md index ce82c9af72..22f45f9483 100644 --- a/Keycodes.md +++ b/Keycodes.md @@ -1,6 +1,6 @@ ## Letters and Numbers -| | | | | | | | | | | +|KC_1|KC_2|KC_3|KC_4|KC_5|KC_6|KC_7|KC_8|KC_9|KC_0| |----|----|----|----|----|----|----|----|----|----| |KC_1|KC_2|KC_3|KC_4|KC_5|KC_6|KC_7|KC_8|KC_9|KC_0| |KC_A|KC_B|KC_C|KC_D|KC_E|KC_F|KC_G|KC_H|KC_I|KC_J| From 67c4186a9ec955e5d09fe77a14b5b0ce0f2d3cd4 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Thu, 16 Feb 2017 14:58:44 -0800 Subject: [PATCH 337/517] Updated Keycodes (markdown) --- Keycodes.md | 33 +++++++++++++++++++++++++++++---- 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/Keycodes.md b/Keycodes.md index 22f45f9483..4bde169af3 100644 --- a/Keycodes.md +++ b/Keycodes.md @@ -2,8 +2,33 @@ |KC_1|KC_2|KC_3|KC_4|KC_5|KC_6|KC_7|KC_8|KC_9|KC_0| |----|----|----|----|----|----|----|----|----|----| -|KC_1|KC_2|KC_3|KC_4|KC_5|KC_6|KC_7|KC_8|KC_9|KC_0| -|KC_A|KC_B|KC_C|KC_D|KC_E|KC_F|KC_G|KC_H|KC_I|KC_J| -|KC_K|KC_L|KC_M|KC_N|KC_O|KC_P|KC_Q|KC_R|KC_S|KC_T| -|KC_U|KC_V|KC_W|KC_X|KC_Y|KC_Z| +|KC_F1|KC_F2|KC_F3|KC_F4|KC_F5|KC_F6|KC_F7|KC_F8|KC_F9|KC_F10| +|KC_F11|KC_F12|KC_F13|KC_F14|KC_F15|KC_F16|KC_F17|KC_F18|KC_F19|KC_F20| +|KC_F21|KC_F22|KC_F23|KC_F24|KC_A|KC_B|KC_C|KC_D|KC_E|KC_F| +|KC_G|KC_H|KC_I|KC_J|KC_K|KC_L|KC_M|KC_N|KC_O|KC_P| +|KC_Q|KC_R|KC_S|KC_T|KC_U|KC_V|KC_W|KC_X|KC_Y|KC_Z| + +## Basic Keyboard Keys + +|Long Name|Short Name|Description| +|---------|----------|-----------| +|KC_ENTER|KC_ENT|Keyboard Return (ENTER) +|KC_ESCAPE|KC_ESC|Keyboard ESCAPE +|KC_BSPACE|KC_BSPC|Keyboard DELETE (Backspace)| +|KC_TAB||Keyboard Tab| +|KC_SPACE|KC_SPC|Keyboard Spacebar| +|KC_MINUS|KC_MINS|Keyboard - and (underscore)| +|KC_EQUAL|KC_EQL|Keyboard = and +| +|KC_LBRACKET|KC_LBRC|Keyboard [ and {| +|KC_RBRACKET|KC_RBRC|Keyboard ] and }| +|KC_BSLASH|KC_BSLS|Keyboard \\ and \|| +|KC_NONUS_HASH|KC_NUHS|Keyboard Non-US # and ~| +|KC_SCOLON|KC_SCLN|Keyboard ; and :| +|KC_QUOTE|KC_QUOT|Keyboard ‘ and “| +|KC_GRAVE|KC_GRV|Keyboard Grave Accent and Tilde| +|KC_COMMA|KC_COMM|Keyboard , and <| +|KC_DOT||Keyboard . and >| +|KC_SLASH|KC_SLSH|Keyboard / and ?| +|KC_CAPSLOCK|KC_CAPS|Keyboard Caps Lock| +## Modifiers \ No newline at end of file From 7053347efd5565fe4d3330821a24cf626d5976f5 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Thu, 16 Feb 2017 15:01:36 -0800 Subject: [PATCH 338/517] Updated Keycodes (markdown) --- Keycodes.md | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/Keycodes.md b/Keycodes.md index 4bde169af3..2f52519199 100644 --- a/Keycodes.md +++ b/Keycodes.md @@ -1,12 +1,14 @@ ## Letters and Numbers -|KC_1|KC_2|KC_3|KC_4|KC_5|KC_6|KC_7|KC_8|KC_9|KC_0| -|----|----|----|----|----|----|----|----|----|----| -|KC_F1|KC_F2|KC_F3|KC_F4|KC_F5|KC_F6|KC_F7|KC_F8|KC_F9|KC_F10| -|KC_F11|KC_F12|KC_F13|KC_F14|KC_F15|KC_F16|KC_F17|KC_F18|KC_F19|KC_F20| -|KC_F21|KC_F22|KC_F23|KC_F24|KC_A|KC_B|KC_C|KC_D|KC_E|KC_F| -|KC_G|KC_H|KC_I|KC_J|KC_K|KC_L|KC_M|KC_N|KC_O|KC_P| -|KC_Q|KC_R|KC_S|KC_T|KC_U|KC_V|KC_W|KC_X|KC_Y|KC_Z| +|KC_1|KC_2|KC_3|KC_4|KC_5|KC_6|KC_7|KC_8| +|----|----|----|----|----|----|----|----| +|KC_9|KC_0|KC_F1|KC_F2|KC_F3|KC_F4|KC_F5|KC_F6| +|KC_F7|KC_F8|KC_F9|KC_F10|KC_F11|KC_F12|KC_F13|KC_F14| +|KC_F15|KC_F16|KC_F17|KC_F18|KC_F19|KC_F20|KC_F21|KC_F22| +|KC_F23|KC_F24|KC_A|KC_B|KC_C|KC_D|KC_E|KC_F| +|KC_G|KC_H|KC_I|KC_J|KC_K|KC_L|KC_M|KC_N| +|KC_O|KC_P|KC_Q|KC_R|KC_S|KC_T|KC_U|KC_V| +|KC_W|KC_X|KC_Y|KC_Z||||| ## Basic Keyboard Keys From 3c766d29e22ee63d829248a529206469b2f470e3 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Thu, 16 Feb 2017 15:34:53 -0800 Subject: [PATCH 339/517] Updated Keycodes (markdown) --- Keycodes.md | 181 ++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 160 insertions(+), 21 deletions(-) diff --git a/Keycodes.md b/Keycodes.md index 2f52519199..0db1792a23 100644 --- a/Keycodes.md +++ b/Keycodes.md @@ -10,27 +10,166 @@ |KC_O|KC_P|KC_Q|KC_R|KC_S|KC_T|KC_U|KC_V| |KC_W|KC_X|KC_Y|KC_Z||||| -## Basic Keyboard Keys +## Punctuation |Long Name|Short Name|Description| |---------|----------|-----------| -|KC_ENTER|KC_ENT|Keyboard Return (ENTER) -|KC_ESCAPE|KC_ESC|Keyboard ESCAPE -|KC_BSPACE|KC_BSPC|Keyboard DELETE (Backspace)| -|KC_TAB||Keyboard Tab| -|KC_SPACE|KC_SPC|Keyboard Spacebar| -|KC_MINUS|KC_MINS|Keyboard - and (underscore)| -|KC_EQUAL|KC_EQL|Keyboard = and +| -|KC_LBRACKET|KC_LBRC|Keyboard [ and {| -|KC_RBRACKET|KC_RBRC|Keyboard ] and }| -|KC_BSLASH|KC_BSLS|Keyboard \\ and \|| -|KC_NONUS_HASH|KC_NUHS|Keyboard Non-US # and ~| -|KC_SCOLON|KC_SCLN|Keyboard ; and :| -|KC_QUOTE|KC_QUOT|Keyboard ‘ and “| -|KC_GRAVE|KC_GRV|Keyboard Grave Accent and Tilde| -|KC_COMMA|KC_COMM|Keyboard , and <| -|KC_DOT||Keyboard . and >| -|KC_SLASH|KC_SLSH|Keyboard / and ?| -|KC_CAPSLOCK|KC_CAPS|Keyboard Caps Lock| - -## Modifiers \ No newline at end of file +|KC_ENTER|KC_ENT|Return (ENTER)| +|KC_ESCAPE|KC_ESC|ESCAPE| +|KC_BSPACE|KC_BSPC|DELETE (Backspace)| +|KC_TAB||Tab| +|KC_SPACE|KC_SPC|Spacebar| +|KC_MINUS|KC_MINS|- and (underscore)| +|KC_EQUAL|KC_EQL|= and +| +|KC_LBRACKET|KC_LBRC|[ and {| +|KC_RBRACKET|KC_RBRC|] and }| +|KC_BSLASH|KC_BSLS|\\ and \|| +|KC_NONUS_HASH|KC_NUHS|Non-US # and ~| +|KC_NONUS_BSLASH|KC_NUBS|Non-US \ and | +|KC_INT1|KC_RO|JIS \\ and \|| +|KC_INT2|KC_KANA|International216| +|KC_INT3|KC_JYEN|Yen Symbol (¥)| +|KC_SCOLON|KC_SCLN|; and :| +|KC_QUOTE|KC_QUOT|‘ and “| +|KC_GRAVE|KC_GRV|Grave Accent and Tilde| +|KC_COMMA|KC_COMM|, and <| +|KC_DOT||. and >| +|KC_SLASH|KC_SLSH|/ and ?| +|KC_CAPSLOCK|KC_CAPS|Caps Lock| + +## Modifiers + +|Long Name|Short Name|Description| +|---------|----------|-----------| +|KC_LOCKING_CAPS||Locking Caps Lock12| +|KC_LOCKING_NUM||Locking Num Lock12| +|KC_LOCKING_SCROLL||Locking Scroll Lock12| +|KC_INT4|KC_HENK|JIS Henken| +|KC_INT5|KC_MHEN|JIS Muhenken| +|KC_LCTRL|KC_LCTL|LeftControl| +|KC_LSHIFT|KC_LSFT|LeftShift| +|KC_LALT||LeftAlt| +|KC_LGUI||Left GUI(Windows/Apple/Meta key)| +|KC_RCTRL|KC_RCTL|RightControl| +|KC_RSHIFT|KC_RSFT|RightShift| +|KC_RALT||RightAlt| +|KC_RGUI||Right GUI(Windows/Apple/Meta key)| + +## Commands + +|Long Name|Short Name|Description| +|---------|----------|-----------| +|KC_PSCREEN|KC_PSCR|PrintScreen1| +|KC_SCKLOCK|KC_SLCK|Scroll Lock11| +|KC_PAUSE|KC_PAUS|Pause1| +|KC_INSERT|KC_INS|Insert1| +|KC_HOME||Home1| +|KC_PGUP||PageUp1| +|KC_DELETE|KC_DEL|Delete Forward| +|KC_END||End1| +|KC_PGDOWN|KC_PGDN|PageDown1| +|KC_RIGHT|KC_RGHT|RightArrow1| +|KC_LEFT||LeftArrow1| +|KC_DOWN||DownArrow1| +|KC_UP||UpArrow1| +|KC_APPLICATION|KC_APP|Application10| +|KC_POWER||Power9| +|KC_EXECUTE||Execute| +|KC_HELP||Help| +|KC_MENU||Menu| +|KC_SELECT||Select| +|KC_STOP||Stop| +|KC_AGAIN||Again| +|KC_UNDO||Undo| +|KC_CUT||Cut| +|KC_COPY||Copy| +|KC_PASTE||Paste| +|KC_FIND||Find| +|KC__MUTE||Mute| +|KC__VOLUP||Volume Up| +|KC__VOLDOWN||Volume Down| +|KC_ALT_ERASE||Alternate Erase7| +|KC_SYSREQ||SysReq/Attention1| +|KC_CANCEL||Cancel| +|KC_CLEAR||Clear| +|KC_PRIOR||Prior| +|KC_RETURN||Return| +|KC_SEPARATOR||Separator| +|KC_OUT||Out| +|KC_OPER||Oper| +|KC_CLEAR_AGAIN||Clear/Again| +|KC_CRSEL||CrSel/Props| +|KC_EXSEL||ExSel| +|KC_SYSTEM_POWER|KC_PWR|System Power Down| +|KC_SYSTEM_SLEEP|KC_SLEP|System Sleep| +|KC_SYSTEM_WAKE|KC_WAKE|System Wake| +|KC_AUDIO_MUTE|KC_MUTE|| +|KC_AUDIO_VOL_UP|KC_VOLU|| +|KC_AUDIO_VOL_DOWN|KC_VOLD|| +|KC_MEDIA_NEXT_TRACK|KC_MNXT|| +|KC_MEDIA_PREV_TRACK|KC_MPRV|| +|KC_MEDIA_STOP|KC_MSTP|| +|KC_MEDIA_PLAY_PAUSE|KC_MPLY|| +|KC_MEDIA_SELECT|KC_MSEL|| +|KC_MAIL|KC_MAIL|| +|KC_CALCULATOR|KC_CALC|| +|KC_MY_COMPUTER|KC_MYCM|| +|KC_WWW_SEARCH|KC_WSCH|| +|KC_WWW_HOME|KC_WHOM|| +|KC_WWW_BACK|KC_WBAK|| +|KC_WWW_FORWARD|KC_WFWD|| +|KC_WWW_STOP|KC_WSTP|| +|KC_WWW_REFRESH|KC_WREF|| +|KC_WWW_FAVORITES|KC_WFAV|| + +## Numpad + +|Long Name|Short Name|Description| +|---------|----------|-----------| +|KC_NUMLOCK|KC_NLCK|Keypad Num Lock and Clear11| +|KC_KP_SLASH|KC_PSLS|Keypad /| +|KC_KP_ASTERISK|KC_PAST|Keypad *| +|KC_KP_MINUS|KC_PMNS|Keypad -| +|KC_KP_PLUS|KC_PPLS|Keypad +| +|KC_KP_ENTER|KC_PENT|Keypad ENTER5| +|KC_KP_1|KC_P1|Keypad 1 and End| +|KC_KP_2|KC_P2|Keypad 2 and Down Arrow| +|KC_KP_3|KC_P3|Keypad 3 and PageDn| +|KC_KP_4|KC_P4|Keypad 4 and Left Arrow| +|KC_KP_5|KC_P5|Keypad 5| +|KC_KP_6|KC_P6|Keypad 6 and Right Arrow| +|KC_KP_7|KC_P7|Keypad 7 and Home| +|KC_KP_8|KC_P8|Keypad 8 and Up Arrow| +|KC_KP_9|KC_P9|Keypad 9 and PageUp| +|KC_KP_0|KC_P0|Keypad 0 and Insert| +|KC_KP_DOT|KC_PDOT|Keypad . and Delete| +|KC_KP_EQUAL|KC_PEQL|Keypad =| +|KC_KP_COMMA|KC_PCMM|Keypad Comma27| +|KC_KP_EQUAL_AS400||Keypad Equal Sign29| + +## Special Keys + +|Long Name|Short Name|Description| +|---------|----------|-----------| +|KC_NO||Ignore this key. (NOOP) | + +## Mousekey + +|Long Name|Short Name|Description| +|---------|----------|-----------| +|KC_MS_UP|KC_MS_U|Mouse Cursor Up| +|KC_MS_DOWN|KC_MS_D|Mouse Cursor Down| +|KC_MS_LEFT|KC_MS_L|Mouse Cursor Left| +|KC_MS_RIGHT|KC_MS_R|Mouse Cursor Right| +|KC_MS_BTN1|KC_BTN1|Mouse Button 1| +|KC_MS_BTN2|KC_BTN2|Mouse Button 2| +|KC_MS_BTN3|KC_BTN3|Mouse Button 3| +|KC_MS_BTN4|KC_BTN4|Mouse Button 4| +|KC_MS_BTN5|KC_BTN5|Mouse Button 5| +|KC_MS_WH_UP|KC_WH_U|Mouse Wheel Up| +|KC_MS_WH_DOWN|KC_WH_D|Mouse Wheel Down| +|KC_MS_WH_LEFT|KC_WH_L|Mouse Wheel Left| +|KC_MS_WH_RIGHT|KC_WH_R|Mouse Wheel Right| +|KC_MS_ACCEL0|KC_ACL0|Mouse Acceleration 0| +|KC_MS_ACCEL1|KC_ACL1|Mouse Acceleration 1| +|KC_MS_ACCEL2|KC_ACL2|Mouse Acceleration 2| \ No newline at end of file From cad54d531371c8a3955409a28f8b19ba2c8e317f Mon Sep 17 00:00:00 2001 From: skullydazed Date: Thu, 16 Feb 2017 15:39:55 -0800 Subject: [PATCH 340/517] Updated Keycodes (markdown) --- Keycodes.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Keycodes.md b/Keycodes.md index 0db1792a23..4d2cb46998 100644 --- a/Keycodes.md +++ b/Keycodes.md @@ -1,3 +1,9 @@ +# Overview + +When defining a [keymap](https://github.com/qmk/qmk_firmware/blob/master/doc/keymap.md) each key needs a valid key definition. This page documents the symbols that correspond to keyboard scan codes that are available to you in QMK. They can be used by themselves or in combination with one of the [many functions available](https://github.com/qmk/qmk_firmware/wiki#going-beyond-the-keycodes) to customize your board. + +# The Keycodes + ## Letters and Numbers |KC_1|KC_2|KC_3|KC_4|KC_5|KC_6|KC_7|KC_8| From ce8d46d74fdba755bd2c260d6093825f0f1d538a Mon Sep 17 00:00:00 2001 From: skullydazed Date: Thu, 16 Feb 2017 15:40:49 -0800 Subject: [PATCH 341/517] Updated Keycodes (markdown) --- Keycodes.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Keycodes.md b/Keycodes.md index 4d2cb46998..ba55dbdc19 100644 --- a/Keycodes.md +++ b/Keycodes.md @@ -47,11 +47,6 @@ When defining a [keymap](https://github.com/qmk/qmk_firmware/blob/master/doc/key |Long Name|Short Name|Description| |---------|----------|-----------| -|KC_LOCKING_CAPS||Locking Caps Lock12| -|KC_LOCKING_NUM||Locking Num Lock12| -|KC_LOCKING_SCROLL||Locking Scroll Lock12| -|KC_INT4|KC_HENK|JIS Henken| -|KC_INT5|KC_MHEN|JIS Muhenken| |KC_LCTRL|KC_LCTL|LeftControl| |KC_LSHIFT|KC_LSFT|LeftShift| |KC_LALT||LeftAlt| @@ -60,6 +55,11 @@ When defining a [keymap](https://github.com/qmk/qmk_firmware/blob/master/doc/key |KC_RSHIFT|KC_RSFT|RightShift| |KC_RALT||RightAlt| |KC_RGUI||Right GUI(Windows/Apple/Meta key)| +|KC_LOCKING_CAPS||Locking Caps Lock12| +|KC_LOCKING_NUM||Locking Num Lock12| +|KC_LOCKING_SCROLL||Locking Scroll Lock12| +|KC_INT4|KC_HENK|JIS Henken| +|KC_INT5|KC_MHEN|JIS Muhenken| ## Commands From d791dd7c913a1eddb5e506e497ae8c85e14ea185 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Thu, 16 Feb 2017 15:42:13 -0800 Subject: [PATCH 342/517] Updated Keycodes (markdown) --- Keycodes.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Keycodes.md b/Keycodes.md index ba55dbdc19..2ea6b315d4 100644 --- a/Keycodes.md +++ b/Keycodes.md @@ -2,6 +2,8 @@ When defining a [keymap](https://github.com/qmk/qmk_firmware/blob/master/doc/keymap.md) each key needs a valid key definition. This page documents the symbols that correspond to keyboard scan codes that are available to you in QMK. They can be used by themselves or in combination with one of the [many functions available](https://github.com/qmk/qmk_firmware/wiki#going-beyond-the-keycodes) to customize your board. +The source of truth for these codes is the [keycode.txt](https://github.com/qmk/qmk_firmware/blob/master/doc/keycode.txt) file in the qmk documentation. + # The Keycodes ## Letters and Numbers From d817d8743e28c2be269a26580c52b47d973d9170 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Thu, 16 Feb 2017 15:51:14 -0800 Subject: [PATCH 343/517] Created Key Functions (markdown) --- Key-Functions.md | 87 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 Key-Functions.md diff --git a/Key-Functions.md b/Key-Functions.md new file mode 100644 index 0000000000..9c63f673b1 --- /dev/null +++ b/Key-Functions.md @@ -0,0 +1,87 @@ +# Quick Aliases To Common Actions + +Your keymap can include shortcuts to common operations (called "function actions" in tmk). + +These functions work the same way that their `ACTION_*` functions do - they're just quick aliases. To dig into all of the tmk `ACTION_*` functions, please see the [TMK documentation](https://github.com/qmk/qmk_firmware/blob/master/doc/keymap.md#2-action). + +Instead of using `FNx` when defining `ACTION_*` functions, you can use `F(x)` - the benefit here is being able to use more than 32 function actions (up to 4096), if you happen to need them. + +### Switching and toggling layers + +`MO(layer)` - momentary switch to *layer*. As soon as you let go of the key, the layer is deactivated and you pop back out to the previous layer. When you apply this to a key, that same key must be set as `KC_TRNS` on the destination layer. Otherwise, you won't make it back to the original layer when you release the key (and you'll get a keycode sent). You can only switch to layers *above* your current layer. If you're on layer 0 and you use `MO(1)`, that will switch to layer 1 just fine. But if you include `MO(3)` on layer 5, that won't do anything for you -- because layer 3 is lower than layer 5 on the stack. + +`OSL(layer)` - momentary switch to *layer*, as a one-shot operation. So if you have a key that's defined as `OSL(1)`, and you tap that key, then only the very next keystroke would come from layer 1. You would drop back to layer zero immediately after that one keystroke. That's handy if you have a layer full of custom shortcuts -- for example, a dedicated key for closing a window. So you tap your one-shot layer mod, then tap that magic 'close window' key, and keep typing like a boss. Layer 1 would remain active as long as you hold that key down, too (so you can use it like a momentary toggle-layer key with extra powers). + +`LT(layer, kc)` - momentary switch to *layer* when held, and *kc* when tapped. Like `MO()`, this only works upwards in the layer stack (`layer` must be higher than the current layer). + +`TG(layer)` - toggles a layer on or off. As with `MO()`, you should set this key as `KC_TRNS` in the destination layer so that tapping it again actually toggles back to the original layer. Only works upwards in the layer stack. + +`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). + + +### Fun with modifier keys + +* `LSFT(kc)` - applies left Shift to *kc* (keycode) - `S(kc)` is an alias +* `RSFT(kc)` - applies right Shift to *kc* +* `LCTL(kc)` - applies left Control to *kc* +* `RCTL(kc)` - applies right Control to *kc* +* `LALT(kc)` - applies left Alt to *kc* +* `RALT(kc)` - applies right Alt to *kc* +* `LGUI(kc)` - applies left GUI (command/win) to *kc* +* `RGUI(kc)` - applies right GUI (command/win) to *kc* +* `HYPR(kc)` - applies Hyper (all modifiers) to *kc* +* `MEH(kc)` - applies Meh (all modifiers except Win/Cmd) to *kc* +* `LCAG(kc)` - applies CtrlAltGui to *kc* + +You can also chain these, like this: + + LALT(LCTL(KC_DEL)) -- this makes a key that sends Alt, Control, and Delete in a single keypress. + +The following shortcuts automatically add `LSFT()` to keycodes to get commonly used symbols. Their long names are also available and documented in `quantum/quantum_keycodes.h`. + + 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 | + KC_COLN : + +`OSM(mod)` - this is a "one shot" modifier. So let's say you have your left Shift key defined as `OSM(MOD_LSFT)`. Tap it, let go, and Shift is "on" -- but only for the next character you'll type. So to write "The", you don't need to hold down Shift -- you tap it, tap t, and move on with life. And if you hold down the left Shift key, it just works as a left Shift key, as you would expect (so you could type THE). There's also a magical, secret way to "lock" a modifier by tapping it multiple times. If you want to learn more about that, open an issue. :) + +`MT(mod, kc)` - is *mod* (modifier key - MOD_LCTL, MOD_LSFT) when held, and *kc* when tapped. In other words, you can have a key that sends Esc (or the letter O or whatever) when you tap it, but works as a Control key or a Shift key when you hold it down. + +These are the values you can use for the `mod` in `MT()` and `OSM()` (right-hand modifiers are not available for `MT()`): + + * MOD_LCTL + * MOD_LSFT + * MOD_LALT + * MOD_LGUI + * 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. + +We've added shortcuts to make common modifier/tap (mod-tap) mappings more compact: + + * `CTL_T(kc)` - is LCTL when held and *kc* when tapped + * `SFT_T(kc)` - is LSFT when held and *kc* when tapped + * `ALT_T(kc)` - is LALT when held and *kc* when tapped + * `GUI_T(kc)` - is LGUI when held and *kc* when tapped + * `ALL_T(kc)` - is Hyper (all mods) when held and *kc* when tapped. To read more about what you can do with a Hyper key, see [this blog post by Brett Terpstra](http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/) + * `LCAG_T(kc)` - is CtrlAltGui when held and *kc* when tapped + * `MEH_T(kc)` - is like Hyper, but not as cool -- does not include the Cmd/Win key, so just sends Alt+Ctrl+Shift. \ No newline at end of file From b7501868a0c774de09c2a30b32b1cabc28144a95 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Thu, 16 Feb 2017 15:51:26 -0800 Subject: [PATCH 344/517] Updated Home (markdown) --- Home.md | 88 ++------------------------------------------------------- 1 file changed, 2 insertions(+), 86 deletions(-) diff --git a/Home.md b/Home.md index 41a9340014..cb9e8b66b1 100644 --- a/Home.md +++ b/Home.md @@ -238,95 +238,11 @@ You can then override any settings, rather than having to copy and paste the who # Going beyond the keycodes -Aside from the [basic keycodes](https://github.com/qmk/qmk_firmware/blob/master/doc/keycode.txt), your keymap can include shortcuts to common operations. +Aside from the [basic keycodes](https://github.com/qmk/qmk_firmware/wiki/Keycodes), your keymap can include shortcuts to common operations. ## Quick aliases to common actions -Your keymap can include shortcuts to common operations (called "function actions" in tmk). - -These functions work the same way that their `ACTION_*` functions do - they're just quick aliases. To dig into all of the tmk `ACTION_*` functions, please see the [TMK documentation](https://github.com/qmk/qmk_firmware/blob/master/doc/keymap.md#2-action). - -Instead of using `FNx` when defining `ACTION_*` functions, you can use `F(x)` - the benefit here is being able to use more than 32 function actions (up to 4096), if you happen to need them. - -### Switching and toggling layers - -`MO(layer)` - momentary switch to *layer*. As soon as you let go of the key, the layer is deactivated and you pop back out to the previous layer. When you apply this to a key, that same key must be set as `KC_TRNS` on the destination layer. Otherwise, you won't make it back to the original layer when you release the key (and you'll get a keycode sent). You can only switch to layers *above* your current layer. If you're on layer 0 and you use `MO(1)`, that will switch to layer 1 just fine. But if you include `MO(3)` on layer 5, that won't do anything for you -- because layer 3 is lower than layer 5 on the stack. - -`OSL(layer)` - momentary switch to *layer*, as a one-shot operation. So if you have a key that's defined as `OSL(1)`, and you tap that key, then only the very next keystroke would come from layer 1. You would drop back to layer zero immediately after that one keystroke. That's handy if you have a layer full of custom shortcuts -- for example, a dedicated key for closing a window. So you tap your one-shot layer mod, then tap that magic 'close window' key, and keep typing like a boss. Layer 1 would remain active as long as you hold that key down, too (so you can use it like a momentary toggle-layer key with extra powers). - -`LT(layer, kc)` - momentary switch to *layer* when held, and *kc* when tapped. Like `MO()`, this only works upwards in the layer stack (`layer` must be higher than the current layer). - -`TG(layer)` - toggles a layer on or off. As with `MO()`, you should set this key as `KC_TRNS` in the destination layer so that tapping it again actually toggles back to the original layer. Only works upwards in the layer stack. - -`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). - - -### Fun with modifier keys - -* `LSFT(kc)` - applies left Shift to *kc* (keycode) - `S(kc)` is an alias -* `RSFT(kc)` - applies right Shift to *kc* -* `LCTL(kc)` - applies left Control to *kc* -* `RCTL(kc)` - applies right Control to *kc* -* `LALT(kc)` - applies left Alt to *kc* -* `RALT(kc)` - applies right Alt to *kc* -* `LGUI(kc)` - applies left GUI (command/win) to *kc* -* `RGUI(kc)` - applies right GUI (command/win) to *kc* -* `HYPR(kc)` - applies Hyper (all modifiers) to *kc* -* `MEH(kc)` - applies Meh (all modifiers except Win/Cmd) to *kc* -* `LCAG(kc)` - applies CtrlAltGui to *kc* - -You can also chain these, like this: - - LALT(LCTL(KC_DEL)) -- this makes a key that sends Alt, Control, and Delete in a single keypress. - -The following shortcuts automatically add `LSFT()` to keycodes to get commonly used symbols. Their long names are also available and documented in `quantum/quantum_keycodes.h`. - - 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 | - KC_COLN : - -`OSM(mod)` - this is a "one shot" modifier. So let's say you have your left Shift key defined as `OSM(MOD_LSFT)`. Tap it, let go, and Shift is "on" -- but only for the next character you'll type. So to write "The", you don't need to hold down Shift -- you tap it, tap t, and move on with life. And if you hold down the left Shift key, it just works as a left Shift key, as you would expect (so you could type THE). There's also a magical, secret way to "lock" a modifier by tapping it multiple times. If you want to learn more about that, open an issue. :) - -`MT(mod, kc)` - is *mod* (modifier key - MOD_LCTL, MOD_LSFT) when held, and *kc* when tapped. In other words, you can have a key that sends Esc (or the letter O or whatever) when you tap it, but works as a Control key or a Shift key when you hold it down. - -These are the values you can use for the `mod` in `MT()` and `OSM()` (right-hand modifiers are not available for `MT()`): - - * MOD_LCTL - * MOD_LSFT - * MOD_LALT - * MOD_LGUI - * 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. - -We've added shortcuts to make common modifier/tap (mod-tap) mappings more compact: - - * `CTL_T(kc)` - is LCTL when held and *kc* when tapped - * `SFT_T(kc)` - is LSFT when held and *kc* when tapped - * `ALT_T(kc)` - is LALT when held and *kc* when tapped - * `GUI_T(kc)` - is LGUI when held and *kc* when tapped - * `ALL_T(kc)` - is Hyper (all mods) when held and *kc* when tapped. To read more about what you can do with a Hyper key, see [this blog post by Brett Terpstra](http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/) - * `LCAG_T(kc)` - is CtrlAltGui when held and *kc* when tapped - * `MEH_T(kc)` - is like Hyper, but not as cool -- does not include the Cmd/Win key, so just sends Alt+Ctrl+Shift. +Your keymap can include shortcuts to common operations (called "function actions" in tmk). To learn more about them check out the [Key Functions](Key-Functions) page. ## Space Cadet Shift: The future, built in From 2cbd99b663ee80e577b1587c5e5ce97f109818b0 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Thu, 16 Feb 2017 19:11:58 -0500 Subject: [PATCH 345/517] Updated _Sidebar (markdown) --- _Sidebar.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_Sidebar.md b/_Sidebar.md index 3894f28a0d..d74dd60d05 100644 --- a/_Sidebar.md +++ b/_Sidebar.md @@ -1 +1 @@ -* [Build Environment Setup](iki/Build-Environment-Setup) \ No newline at end of file +* [Build Environment Setup](wiki/Build-Environment-Setup) \ No newline at end of file From 5730599d18c4f3fbcb8f14cef6cf6098e6f0109f Mon Sep 17 00:00:00 2001 From: skullydazed Date: Thu, 16 Feb 2017 16:22:17 -0800 Subject: [PATCH 346/517] Created Space Cadet Shift (markdown) --- Space-Cadet-Shift.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 Space-Cadet-Shift.md diff --git a/Space-Cadet-Shift.md b/Space-Cadet-Shift.md new file mode 100644 index 0000000000..a1ec256def --- /dev/null +++ b/Space-Cadet-Shift.md @@ -0,0 +1,24 @@ +## Space Cadet Shift: The future, built in + +Steve Losh [described](http://stevelosh.com/blog/2012/10/a-modern-space-cadet/) the Space Cadet Shift quite well. Essentially, you hit the left Shift on its own, and you get an opening parenthesis; hit the right Shift on its own, and you get the closing one. When hit with other keys, the Shift key keeps working as it always does. Yes, it's as cool as it sounds. + +To use it, use `KC_LSPO` (Left Shift, Parens Open) for your left Shift on your keymap, and `KC_RSPC` (Right Shift, Parens Close) for your right Shift. + +It's defaulted to work on US keyboards, but if your layout uses different keys for parenthesis, you can define those in your `config.h` like this: + + #define LSPO_KEY KC_9 + #define RSPC_KEY KC_0 + +You can also choose between different rollover behaviors of the shift keys by defining: + + #define DISABLE_SPACE_CADET_ROLLOVER + +in your `config.h`. Disabling rollover allows you to use the opposite shift key to cancel the space cadet state in the event of an erroneous press instead of emitting a pair of parentheses when the keys are released. + +The only other thing you're going to want to do is create a `Makefile` in your keymap directory and set the following: + +``` +COMMAND_ENABLE = no # Commands for debug and configuration +``` + +This is just to keep the keyboard from going into command mode when you hold both Shift keys at the same time. From 53fde9a1ff66ee2286af2dd69ab16ae27d9c9f93 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Thu, 16 Feb 2017 16:23:02 -0800 Subject: [PATCH 347/517] Updated Home (markdown) --- Home.md | 23 +---------------------- 1 file changed, 1 insertion(+), 22 deletions(-) diff --git a/Home.md b/Home.md index cb9e8b66b1..c71f8a8e66 100644 --- a/Home.md +++ b/Home.md @@ -246,28 +246,7 @@ Your keymap can include shortcuts to common operations (called "function actions ## Space Cadet Shift: The future, built in -Steve Losh [described](http://stevelosh.com/blog/2012/10/a-modern-space-cadet/) the Space Cadet Shift quite well. Essentially, you hit the left Shift on its own, and you get an opening parenthesis; hit the right Shift on its own, and you get the closing one. When hit with other keys, the Shift key keeps working as it always does. Yes, it's as cool as it sounds. - -To use it, use `KC_LSPO` (Left Shift, Parens Open) for your left Shift on your keymap, and `KC_RSPC` (Right Shift, Parens Close) for your right Shift. - -It's defaulted to work on US keyboards, but if your layout uses different keys for parenthesis, you can define those in your `config.h` like this: - - #define LSPO_KEY KC_9 - #define RSPC_KEY KC_0 - -You can also choose between different rollover behaviors of the shift keys by defining: - - #define DISABLE_SPACE_CADET_ROLLOVER - -in your `config.h`. Disabling rollover allows you to use the opposite shift key to cancel the space cadet state in the event of an erroneous press instead of emitting a pair of parentheses when the keys are released. - -The only other thing you're going to want to do is create a `Makefile` in your keymap directory and set the following: - -``` -COMMAND_ENABLE = no # Commands for debug and configuration -``` - -This is just to keep the keyboard from going into command mode when you hold both Shift keys at the same time. +Steve Losh [described](http://stevelosh.com/blog/2012/10/a-modern-space-cadet/) the Space Cadet Shift quite well. Essentially, you hit the left Shift on its own, and you get an opening parenthesis; hit the right Shift on its own, and you get the closing one. When hit with other keys, the Shift key keeps working as it always does. Yes, it's as cool as it sounds. Head on over to the [Space Cadet Shift](Space-Cadet-Shift) page to read about it. ## The Leader key: A new kind of modifier From ac3753937a1f79a5ee919637b64ec56070d8ca78 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Thu, 16 Feb 2017 16:24:28 -0800 Subject: [PATCH 348/517] Created Leader Key (markdown) --- Leader-Key.md | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 Leader-Key.md diff --git a/Leader-Key.md b/Leader-Key.md new file mode 100644 index 0000000000..bf4d5456d1 --- /dev/null +++ b/Leader-Key.md @@ -0,0 +1,37 @@ +# The Leader key: A new kind of modifier + +If you've ever used Vim, you know what a Leader key is. If not, you're about to discover a wonderful concept. :) Instead of hitting Alt+Shift+W for example (holding down three keys at the same time), what if you could hit a _sequence_ of keys instead? So you'd hit our special modifier (the Leader key), followed by W and then C (just a rapid succession of keys), and something would happen. + +That's what `KC_LEAD` does. Here's an example: + +1. Pick a key on your keyboard you want to use as the Leader key. Assign it the keycode `KC_LEAD`. This key would be dedicated just for this -- it's a single action key, can't be used for anything else. +2. Include the line `#define LEADER_TIMEOUT 300` somewhere in your keymap.c file, probably near the top. The 300 there is 300ms -- that's how long you have for the sequence of keys following the leader. You can tweak this value for comfort, of course. +3. Within your `matrix_scan_user` function, do something like this: + +``` +LEADER_EXTERNS(); + +void matrix_scan_user(void) { + LEADER_DICTIONARY() { + leading = false; + leader_end(); + + SEQ_ONE_KEY(KC_F) { + register_code(KC_S); + unregister_code(KC_S); + } + SEQ_TWO_KEYS(KC_A, KC_S) { + register_code(KC_H); + unregister_code(KC_H); + } + SEQ_THREE_KEYS(KC_A, KC_S, KC_D) { + register_code(KC_LGUI); + register_code(KC_S); + unregister_code(KC_S); + unregister_code(KC_LGUI); + } + } +} +``` + +As you can see, you have three function. you can use - `SEQ_ONE_KEY` for single-key sequences (Leader followed by just one key), and `SEQ_TWO_KEYS` and `SEQ_THREE_KEYS` for longer sequences. Each of these accepts one or more keycodes as arguments. This is an important point: You can use keycodes from **any layer on your keyboard**. That layer would need to be active for the leader macro to fire, obviously. \ No newline at end of file From 8bc52c0e86b4ed312ac2013a5ac18e637ffd4b4e Mon Sep 17 00:00:00 2001 From: skullydazed Date: Thu, 16 Feb 2017 16:30:12 -0800 Subject: [PATCH 349/517] Created Tap Dance (markdown) --- Tap-Dance.md | 144 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 144 insertions(+) create mode 100644 Tap-Dance.md diff --git a/Tap-Dance.md b/Tap-Dance.md new file mode 100644 index 0000000000..25827a6485 --- /dev/null +++ b/Tap-Dance.md @@ -0,0 +1,144 @@ +# Tap Dance: A single key can do 3, 5, or 100 different things + +Hit the semicolon key once, send a semicolon. Hit it twice, rapidly -- send a colon. Hit it three times, and your keyboard's LEDs do a wild dance. That's just one example of what Tap Dance can do. It's one of the nicest community-contributed features in the firmware, conceived and created by [algernon](https://github.com/algernon) in [#451](https://github.com/qmk/qmk_firmware/pull/451). Here's how algernon describes the feature: + +With this feature one can specify keys that behave differently, based on the amount of times they have been tapped, and when interrupted, they get handled before the interrupter. + +To make it clear how this is different from `ACTION_FUNCTION_TAP`, lets explore a certain setup! We want one key to send `Space` on single tap, but `Enter` on double-tap. + +With `ACTION_FUNCTION_TAP`, it is quite a rain-dance to set this up, and has the problem that when the sequence is interrupted, the interrupting key will be send first. Thus, `SPC a` will result in `a SPC` being sent, if they are typed within `TAPPING_TERM`. With the tap dance feature, that'll come out as `SPC a`, correctly. + +The implementation hooks into two parts of the system, to achieve this: into `process_record_quantum()`, and the matrix scan. We need the latter to be able to time out a tap sequence even when a key is not being pressed, so `SPC` alone will time out and register after `TAPPING_TERM` time. + +But lets start with how to use it, first! + +First, you will need `TAP_DANCE_ENABLE=yes` in your `Makefile`, because the feature is disabled by default. This adds a little less than 1k to the firmware size. Next, you will want to define some tap-dance keys, which is easiest to do with the `TD()` macro, that - similar to `F()`, takes a number, which will later be used as an index into the `tap_dance_actions` array. + +This array specifies what actions shall be taken when a tap-dance key is in action. Currently, there are three possible options: + +* `ACTION_TAP_DANCE_DOUBLE(kc1, kc2)`: Sends the `kc1` keycode when tapped once, `kc2` otherwise. When the key is held, the appropriate keycode is registered: `kc1` when pressed and held, `kc2` when tapped once, then pressed and held. +* `ACTION_TAP_DANCE_FN(fn)`: Calls the specified function - defined in the user keymap - with the final tap count of the tap dance action. +* `ACTION_TAP_DANCE_FN_ADVANCED(on_each_tap_fn, on_dance_finished_fn, on_dance_reset_fn)`: Calls the first specified function - defined in the user keymap - on every tap, the second function on when the dance action finishes (like the previous option), and the last function when the tap dance action resets. + +The first option is enough for a lot of cases, that just want dual roles. For example, `ACTION_TAP_DANCE(KC_SPC, KC_ENT)` will result in `Space` being sent on single-tap, `Enter` otherwise. + +And that's the bulk of it! + +And now, on to the explanation of how it works! + +The main entry point is `process_tap_dance()`, called from `process_record_quantum()`, which is run for every keypress, and our handler gets to run early. This function checks whether the key pressed is a tap-dance key. If it is not, and a tap-dance was in action, we handle that first, and enqueue the newly pressed key. If it is a tap-dance key, then we check if it is the same as the already active one (if there's one active, that is). If it is not, we fire off the old one first, then register the new one. If it was the same, we increment the counter and the timer. + +This means that you have `TAPPING_TERM` time to tap the key again, you do not have to input all the taps within that timeframe. This allows for longer tap counts, with minimal impact on responsiveness. + +Our next stop is `matrix_scan_tap_dance()`. This handles the timeout of tap-dance keys. + +For the sake of flexibility, tap-dance actions can be either a pair of keycodes, or a user function. The latter allows one to handle higher tap counts, or do extra things, like blink the LEDs, fiddle with the backlighting, and so on. This is accomplished by using an union, and some clever macros. + +### Examples + +Here's a simple example for a single definition: + +1. In your `makefile`, add `TAP_DANCE_ENABLE = yes` +2. In your `config.h` (which you can copy from `qmk_firmware/keyboards/planck/config.h` to your keymap directory), add `#define TAPPING_TERM 200` +3. In your `keymap.c` file, define the variables and definitions, then add to your keymap: + +```c +//Tap Dance Declarations +enum { + TD_ESC_CAPS = 0 +}; + +//Tap Dance Definitions +qk_tap_dance_action_t tap_dance_actions[] = { + //Tap once for Esc, twice for Caps Lock + [TD_ESC_CAPS] = ACTION_TAP_DANCE_DOUBLE(KC_ESC, KC_CAPS) +// Other declarations would go here, separated by commas, if you have them +}; + +//In Layer declaration, add tap dance item in place of a key code +TD(TD_ESC_CAPS) +``` + +Here's a more complex example involving custom actions: + +```c +enum { + CT_SE = 0, + CT_CLN, + CT_EGG, + CT_FLSH, +}; + +/* Have the above three on the keymap, TD(CT_SE), etc... */ + +void dance_cln_finished (qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1) { + register_code (KC_RSFT); + register_code (KC_SCLN); + } else { + register_code (KC_SCLN); + } +} + +void dance_cln_reset (qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1) { + unregister_code (KC_RSFT); + unregister_code (KC_SCLN); + } else { + unregister_code (KC_SCLN); + } +} + +void dance_egg (qk_tap_dance_state_t *state, void *user_data) { + if (state->count >= 100) { + SEND_STRING ("Safety dance!"); + reset_tap_dance (state); + } +} + +// on each tap, light up one led, from right to left +// on the forth tap, turn them off from right to left +void dance_flsh_each(qk_tap_dance_state_t *state, void *user_data) { + switch (state->count) { + case 1: + ergodox_right_led_3_on(); + break; + case 2: + ergodox_right_led_2_on(); + break; + case 3: + ergodox_right_led_1_on(); + break; + case 4: + ergodox_right_led_3_off(); + _delay_ms(50); + ergodox_right_led_2_off(); + _delay_ms(50); + ergodox_right_led_1_off(); + } +} + +// on the fourth tap, set the keyboard on flash state +void dance_flsh_finished(qk_tap_dance_state_t *state, void *user_data) { + if (state->count >= 4) { + reset_keyboard(); + reset_tap_dance(state); + } +} + +// if the flash state didnt happen, then turn off leds, left to right +void dance_flsh_reset(qk_tap_dance_state_t *state, void *user_data) { + ergodox_right_led_1_off(); + _delay_ms(50); + ergodox_right_led_2_off(); + _delay_ms(50); + ergodox_right_led_3_off(); +} + +qk_tap_dance_action_t tap_dance_actions[] = { + [CT_SE] = ACTION_TAP_DANCE_DOUBLE (KC_SPC, KC_ENT) + ,[CT_CLN] = ACTION_TAP_DANCE_FN_ADVANCED (NULL, dance_cln_finished, dance_cln_reset) + ,[CT_EGG] = ACTION_TAP_DANCE_FN (dance_egg) + ,[CT_FLSH] = ACTION_TAP_DANCE_FN_ADVANCED (dance_flsh_each, dance_flsh_finished, dance_flsh_reset) +}; +``` From c23a2fc928c1151a8d502ddf91be312ac8beb7c5 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Thu, 16 Feb 2017 16:31:17 -0800 Subject: [PATCH 350/517] Updated Home (markdown) --- Home.md | 179 +------------------------------------------------------- 1 file changed, 2 insertions(+), 177 deletions(-) diff --git a/Home.md b/Home.md index c71f8a8e66..f73690518d 100644 --- a/Home.md +++ b/Home.md @@ -250,186 +250,11 @@ Steve Losh [described](http://stevelosh.com/blog/2012/10/a-modern-space-cadet/) ## The Leader key: A new kind of modifier -If you've ever used Vim, you know what a Leader key is. If not, you're about to discover a wonderful concept. :) Instead of hitting Alt+Shift+W for example (holding down three keys at the same time), what if you could hit a _sequence_ of keys instead? So you'd hit our special modifier (the Leader key), followed by W and then C (just a rapid succession of keys), and something would happen. - -That's what `KC_LEAD` does. Here's an example: - -1. Pick a key on your keyboard you want to use as the Leader key. Assign it the keycode `KC_LEAD`. This key would be dedicated just for this -- it's a single action key, can't be used for anything else. -2. Include the line `#define LEADER_TIMEOUT 300` somewhere in your keymap.c file, probably near the top. The 300 there is 300ms -- that's how long you have for the sequence of keys following the leader. You can tweak this value for comfort, of course. -3. Within your `matrix_scan_user` function, do something like this: - -``` -LEADER_EXTERNS(); - -void matrix_scan_user(void) { - LEADER_DICTIONARY() { - leading = false; - leader_end(); - - SEQ_ONE_KEY(KC_F) { - register_code(KC_S); - unregister_code(KC_S); - } - SEQ_TWO_KEYS(KC_A, KC_S) { - register_code(KC_H); - unregister_code(KC_H); - } - SEQ_THREE_KEYS(KC_A, KC_S, KC_D) { - register_code(KC_LGUI); - register_code(KC_S); - unregister_code(KC_S); - unregister_code(KC_LGUI); - } - } -} -``` - -As you can see, you have three function. you can use - `SEQ_ONE_KEY` for single-key sequences (Leader followed by just one key), and `SEQ_TWO_KEYS` and `SEQ_THREE_KEYS` for longer sequences. Each of these accepts one or more keycodes as arguments. This is an important point: You can use keycodes from **any layer on your keyboard**. That layer would need to be active for the leader macro to fire, obviously. +Most modifiers have to be held or toggled. But what if you had a key that indicated the start of a sequence? You could press that key and then rapidly press 1-3 more keys to trigger a macro, or enter a special layer, or anything else you might want to do. To learn more about it check out the [Leader Key](Leader-Key) page. ## Tap Dance: A single key can do 3, 5, or 100 different things -Hit the semicolon key once, send a semicolon. Hit it twice, rapidly -- send a colon. Hit it three times, and your keyboard's LEDs do a wild dance. That's just one example of what Tap Dance can do. It's one of the nicest community-contributed features in the firmware, conceived and created by [algernon](https://github.com/algernon) in [#451](https://github.com/qmk/qmk_firmware/pull/451). Here's how algernon describes the feature: - -With this feature one can specify keys that behave differently, based on the amount of times they have been tapped, and when interrupted, they get handled before the interrupter. - -To make it clear how this is different from `ACTION_FUNCTION_TAP`, lets explore a certain setup! We want one key to send `Space` on single tap, but `Enter` on double-tap. - -With `ACTION_FUNCTION_TAP`, it is quite a rain-dance to set this up, and has the problem that when the sequence is interrupted, the interrupting key will be send first. Thus, `SPC a` will result in `a SPC` being sent, if they are typed within `TAPPING_TERM`. With the tap dance feature, that'll come out as `SPC a`, correctly. - -The implementation hooks into two parts of the system, to achieve this: into `process_record_quantum()`, and the matrix scan. We need the latter to be able to time out a tap sequence even when a key is not being pressed, so `SPC` alone will time out and register after `TAPPING_TERM` time. - -But lets start with how to use it, first! - -First, you will need `TAP_DANCE_ENABLE=yes` in your `Makefile`, because the feature is disabled by default. This adds a little less than 1k to the firmware size. Next, you will want to define some tap-dance keys, which is easiest to do with the `TD()` macro, that - similar to `F()`, takes a number, which will later be used as an index into the `tap_dance_actions` array. - -This array specifies what actions shall be taken when a tap-dance key is in action. Currently, there are three possible options: - -* `ACTION_TAP_DANCE_DOUBLE(kc1, kc2)`: Sends the `kc1` keycode when tapped once, `kc2` otherwise. When the key is held, the appropriate keycode is registered: `kc1` when pressed and held, `kc2` when tapped once, then pressed and held. -* `ACTION_TAP_DANCE_FN(fn)`: Calls the specified function - defined in the user keymap - with the final tap count of the tap dance action. -* `ACTION_TAP_DANCE_FN_ADVANCED(on_each_tap_fn, on_dance_finished_fn, on_dance_reset_fn)`: Calls the first specified function - defined in the user keymap - on every tap, the second function on when the dance action finishes (like the previous option), and the last function when the tap dance action resets. - -The first option is enough for a lot of cases, that just want dual roles. For example, `ACTION_TAP_DANCE(KC_SPC, KC_ENT)` will result in `Space` being sent on single-tap, `Enter` otherwise. - -And that's the bulk of it! - -And now, on to the explanation of how it works! - -The main entry point is `process_tap_dance()`, called from `process_record_quantum()`, which is run for every keypress, and our handler gets to run early. This function checks whether the key pressed is a tap-dance key. If it is not, and a tap-dance was in action, we handle that first, and enqueue the newly pressed key. If it is a tap-dance key, then we check if it is the same as the already active one (if there's one active, that is). If it is not, we fire off the old one first, then register the new one. If it was the same, we increment the counter and the timer. - -This means that you have `TAPPING_TERM` time to tap the key again, you do not have to input all the taps within that timeframe. This allows for longer tap counts, with minimal impact on responsiveness. - -Our next stop is `matrix_scan_tap_dance()`. This handles the timeout of tap-dance keys. - -For the sake of flexibility, tap-dance actions can be either a pair of keycodes, or a user function. The latter allows one to handle higher tap counts, or do extra things, like blink the LEDs, fiddle with the backlighting, and so on. This is accomplished by using an union, and some clever macros. - -### Examples - -Here's a simple example for a single definition: - -1. In your `makefile`, add `TAP_DANCE_ENABLE = yes` -2. In your `config.h` (which you can copy from `qmk_firmware/keyboards/planck/config.h` to your keymap directory), add `#define TAPPING_TERM 200` -3. In your `keymap.c` file, define the variables and definitions, then add to your keymap: - -```c -//Tap Dance Declarations -enum { - TD_ESC_CAPS = 0 -}; - -//Tap Dance Definitions -qk_tap_dance_action_t tap_dance_actions[] = { - //Tap once for Esc, twice for Caps Lock - [TD_ESC_CAPS] = ACTION_TAP_DANCE_DOUBLE(KC_ESC, KC_CAPS) -// Other declarations would go here, separated by commas, if you have them -}; - -//In Layer declaration, add tap dance item in place of a key code -TD(TD_ESC_CAPS) -``` - -Here's a more complex example involving custom actions: - -```c -enum { - CT_SE = 0, - CT_CLN, - CT_EGG, - CT_FLSH, -}; - -/* Have the above three on the keymap, TD(CT_SE), etc... */ - -void dance_cln_finished (qk_tap_dance_state_t *state, void *user_data) { - if (state->count == 1) { - register_code (KC_RSFT); - register_code (KC_SCLN); - } else { - register_code (KC_SCLN); - } -} - -void dance_cln_reset (qk_tap_dance_state_t *state, void *user_data) { - if (state->count == 1) { - unregister_code (KC_RSFT); - unregister_code (KC_SCLN); - } else { - unregister_code (KC_SCLN); - } -} - -void dance_egg (qk_tap_dance_state_t *state, void *user_data) { - if (state->count >= 100) { - SEND_STRING ("Safety dance!"); - reset_tap_dance (state); - } -} - -// on each tap, light up one led, from right to left -// on the forth tap, turn them off from right to left -void dance_flsh_each(qk_tap_dance_state_t *state, void *user_data) { - switch (state->count) { - case 1: - ergodox_right_led_3_on(); - break; - case 2: - ergodox_right_led_2_on(); - break; - case 3: - ergodox_right_led_1_on(); - break; - case 4: - ergodox_right_led_3_off(); - _delay_ms(50); - ergodox_right_led_2_off(); - _delay_ms(50); - ergodox_right_led_1_off(); - } -} - -// on the fourth tap, set the keyboard on flash state -void dance_flsh_finished(qk_tap_dance_state_t *state, void *user_data) { - if (state->count >= 4) { - reset_keyboard(); - reset_tap_dance(state); - } -} - -// if the flash state didnt happen, then turn off leds, left to right -void dance_flsh_reset(qk_tap_dance_state_t *state, void *user_data) { - ergodox_right_led_1_off(); - _delay_ms(50); - ergodox_right_led_2_off(); - _delay_ms(50); - ergodox_right_led_3_off(); -} - -qk_tap_dance_action_t tap_dance_actions[] = { - [CT_SE] = ACTION_TAP_DANCE_DOUBLE (KC_SPC, KC_ENT) - ,[CT_CLN] = ACTION_TAP_DANCE_FN_ADVANCED (NULL, dance_cln_finished, dance_cln_reset) - ,[CT_EGG] = ACTION_TAP_DANCE_FN (dance_egg) - ,[CT_FLSH] = ACTION_TAP_DANCE_FN_ADVANCED (dance_flsh_each, dance_flsh_finished, dance_flsh_reset) -}; -``` +Hit the semicolon key once, send a semicolon. Hit it twice, rapidly -- send a colon. Hit it three times, and your keyboard's LEDs do a wild dance. That's just one example of what Tap Dance can do. Read more about it on the [Tap Dance](Tap-Dance) page. ## Temporarily setting the default layer From b5af4e6ddac1beaf0f1df393693e0d67712d89be Mon Sep 17 00:00:00 2001 From: skullydazed Date: Thu, 16 Feb 2017 16:34:35 -0800 Subject: [PATCH 351/517] Updated Home (markdown) --- Home.md | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/Home.md b/Home.md index f73690518d..85e384403d 100644 --- a/Home.md +++ b/Home.md @@ -236,6 +236,27 @@ For a value of `4` for this imaginary setting. So we `undef` it first, then `def You can then override any settings, rather than having to copy and paste the whole thing. +### Prevent stuck modifiers + +Consider the following scenario: + +1. Layer 0 has a key defined as Shift. +2. The same key is defined on layer 1 as the letter A. +3. User presses Shift. +4. User switches to layer 1 for whatever reason. +5. User releases Shift, or rather the letter A. +6. User switches back to layer 0. + +Shift was actually never released and is still considered pressed. + +If such situation bothers you add this to your `config.h`: + + #define PREVENT_STUCK_MODIFIERS + +This option uses 5 bytes of memory per every 8 keys on the keyboard +rounded up (5 bits per key). For example on Planck (48 keys) it uses +(48/8)\*5 = 30 bytes. + # Going beyond the keycodes Aside from the [basic keycodes](https://github.com/qmk/qmk_firmware/wiki/Keycodes), your keymap can include shortcuts to common operations. @@ -260,27 +281,6 @@ Hit the semicolon key once, send a semicolon. Hit it twice, rapidly -- send a co `DF(layer)` - sets default layer to *layer*. The default layer is the one at the "bottom" of the layer stack - the ultimate fallback layer. This currently does not persist over power loss. When you plug the keyboard back in, layer 0 will always be the default. It is theoretically possible to work around that, but that's not what `DF` does. -## Prevent stuck modifiers - -Consider the following scenario: - -1. Layer 0 has a key defined as Shift. -2. The same key is defined on layer 1 as the letter A. -3. User presses Shift. -4. User switches to layer 1 for whatever reason. -5. User releases Shift, or rather the letter A. -6. User switches back to layer 0. - -Shift was actually never released and is still considered pressed. - -If such situation bothers you add this to your `config.h`: - - #define PREVENT_STUCK_MODIFIERS - -This option uses 5 bytes of memory per every 8 keys on the keyboard -rounded up (5 bits per key). For example on Planck (48 keys) it uses -(48/8)\*5 = 30 bytes. - ## 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). From b5d35e43c74babd572f3095930c614c735facc8f Mon Sep 17 00:00:00 2001 From: skullydazed Date: Thu, 16 Feb 2017 16:37:25 -0800 Subject: [PATCH 352/517] Created Macros (markdown) --- Macros.md | 191 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 191 insertions(+) create mode 100644 Macros.md diff --git a/Macros.md b/Macros.md new file mode 100644 index 0000000000..7166026d76 --- /dev/null +++ b/Macros.md @@ -0,0 +1,191 @@ +# 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();` + +This sends the `` 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();` + +Parallel to `register_code` function, this sends the `` keyup event to the computer. If you don't use this, the key will be held down until it's sent. + +* `layer_on();` + +This will turn on the layer `` - 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();` + +This will turn off the layer ``. + +* `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](/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, + }; + +Afterwards create a new layer called `_DYN`: + + #define _DYN 6 /* almost any other free number should be ok */ + +Below these two modifications include the `dynamic_macro.h` header: + + #include "dynamic_macro.h"` + +Then define the `_DYN` layer with the following keys: `DYN_REC_START1`, `DYN_MACRO_PLAY1`,`DYN_REC_START2` and `DYN_MACRO_PLAY2`. It may also contain other keys, it doesn't matter apart from the fact that you won't be able to record these keys in the dynamic macros. + + [_DYN]= { + {_______, DYN_REC_START1, DYN_MACRO_PLAY1, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, DYN_REC_START2, DYN_MACRO_PLAY2, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} + }, + +Add the following code to the very beginning of your `process_record_user()` function: + + if (!process_record_dynamic_macro(keycode, record)) { + return false; + } + +To start recording the macro, press either `DYN_REC_START1` or `DYN_REC_START2`. To finish the recording, press the `_DYN` layer button. The handler awaits specifically for the `MO(_DYN)` keycode as the "stop signal" so please don't use any fancy ways to access this layer, use the regular `MO()` modifier. To replay the macro, press either `DYN_MACRO_PLAY1` or `DYN_MACRO_PLAY2`. + +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. From e86e6431fc38f0a6016b9f1220a12985229562bb Mon Sep 17 00:00:00 2001 From: skullydazed Date: Thu, 16 Feb 2017 16:39:43 -0800 Subject: [PATCH 353/517] Updated Home (markdown) --- Home.md | 190 +------------------------------------------------------- 1 file changed, 1 insertion(+), 189 deletions(-) diff --git a/Home.md b/Home.md index 85e384403d..d6fcceb361 100644 --- a/Home.md +++ b/Home.md @@ -283,195 +283,7 @@ Hit the semicolon key once, send a semicolon. Hit it twice, rapidly -- send a co ## 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();` - -This sends the `` 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();` - -Parallel to `register_code` function, this sends the `` keyup event to the computer. If you don't use this, the key will be held down until it's sent. - -* `layer_on();` - -This will turn on the layer `` - 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();` - -This will turn off the layer ``. - -* `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](/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, - }; - -Afterwards create a new layer called `_DYN`: - - #define _DYN 6 /* almost any other free number should be ok */ - -Below these two modifications include the `dynamic_macro.h` header: - - #include "dynamic_macro.h"` - -Then define the `_DYN` layer with the following keys: `DYN_REC_START1`, `DYN_MACRO_PLAY1`,`DYN_REC_START2` and `DYN_MACRO_PLAY2`. It may also contain other keys, it doesn't matter apart from the fact that you won't be able to record these keys in the dynamic macros. - - [_DYN]= { - {_______, DYN_REC_START1, DYN_MACRO_PLAY1, _______, _______, _______, _______, _______, _______, _______, _______, _______}, - {_______, DYN_REC_START2, DYN_MACRO_PLAY2, _______, _______, _______, _______, _______, _______, _______, _______, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} - }, - -Add the following code to the very beginning of your `process_record_user()` function: - - if (!process_record_dynamic_macro(keycode, record)) { - return false; - } - -To start recording the macro, press either `DYN_REC_START1` or `DYN_REC_START2`. To finish the recording, press the `_DYN` layer button. The handler awaits specifically for the `MO(_DYN)` keycode as the "stop signal" so please don't use any fancy ways to access this layer, use the regular `MO()` modifier. To replay the macro, press either `DYN_MACRO_PLAY1` or `DYN_MACRO_PLAY2`. - -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. +How would you like a single keypress to send a whole word, sentence, paragraph, or even document? Head on over to the [Macros](Macros) page to read up on all aspects of Simple and Dynamic Macros. ## Additional keycode aliases for software-implemented layouts (Colemak, Dvorak, etc) From 42f167eb576f911ba1dd0c2dc309843089027e6f Mon Sep 17 00:00:00 2001 From: skullydazed Date: Thu, 16 Feb 2017 17:00:19 -0800 Subject: [PATCH 354/517] Created QMK Overview (markdown) --- QMK-Overview.md | 62 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 QMK-Overview.md diff --git a/QMK-Overview.md b/QMK-Overview.md new file mode 100644 index 0000000000..d9306cc7b3 --- /dev/null +++ b/QMK-Overview.md @@ -0,0 +1,62 @@ +# QMK Overview + +This page attempts to explain the basic information you need to know to work with the QMK project. It assumes that you are familiar with navigating a UNIX shell, but does not assume you are familiar with C or with compiling using make. + +# Basic QMK structure + +QMK is a fork of @tmk's [tmk_keyboard](https://github.com/tmk/tmk_keyboard) project. The original TMK code, with modifications, can be found in the `tmk` folder. The QMK additions to the project may be found in the `quantum` folder. Keyboard projects may be found in the `handwired` and `keyboard` folders. + +## Keyboard project structure + +Within the `handwired` and `keyboard` folders is a directory for each keyboard project, for example `qmk_firmware/keyboards/clueboard`. Within you'll find the following structure: + +* `keymaps/`: Different keymaps that can be built +* `rules.mk`: The file that sets the default "make" options. Do not edit this file directly, instead use a keymap specific `Makefile`. +* `config.h`: The file that sets the default compile time options. Do not edit this file directly, instead use a keymap specific `config.h`. + +### Keymap structure + +In every keymap folder, the following files may be found. Only `keymap.c` is required, if the rest of the files are not found the default options will be chosen. + +* `config.h`: the options to configure your keymap +* `keymap.c`: all of your keymap code, required +* `Makefile`: the features of QMK that are enabled, required to run `make` in your keymap folder +* `readme.md`: a description of your keymap, how others might use it, and explanations of features +* Other files: Some people choose to include an image depicting the layout, and other files that help people to use or understand a particular keymap. + +# The `make` command + +The `make` command is how you compile the firmware into a .hex file, which can be loaded by a dfu programmer (like dfu-progammer via `make dfu`) or the [Teensy loader](https://www.pjrc.com/teensy/loader.html) (only used with Teensys). It it recommended that you always run make from within the `root` folder. + +**NOTE:** To abort a make command press `Ctrl-c` + +The following instruction refers to these folders. + +* The `root` (`/`) folder is the qmk_firmware folder, in which are `doc`, `keyboard`, `quantum`, etc. +* The `keyboard` folder is any keyboard project's folder, like `/keyboards/planck`. +* The `keymap` folder is any keymap's folder, like `/keyboards/planck/keymaps/default`. +* The `subproject` folder is the subproject folder of a keyboard, like `/keyboards/ergodox/ez` + +### Simple instructions for building and uploading a keyboard + +**Most keyboards have more specific instructions in the keyboard specific readme.md file, so please check that first** + +1. Enter the `root` folder +2. Run `make ---` + +In the above commands, replace: + +* `` with the name of your keyboard +* `` with the name of your keymap +* `` with the name of the subproject (revision or sub-model of your keyboard). For example, for Ergodox it can be `ez` or `infinity`, and for Planck `rev3` or `rev4`. + * If the keyboard doesn't have a subproject, or if you are happy with the default (defined in `rules.mk` file of the `keyboard` folder), you can leave it out. But remember to also remove the dash (`-`) from the command. +* `` The programmer to use. Most keyboards use `dfu`, but some use `teensy`. Infinity keyboards use `dfu-util`. Check the readme file in the keyboard folder to find out which programmer to use. + * If you don't add `- Date: Thu, 16 Feb 2017 17:00:57 -0800 Subject: [PATCH 355/517] Updated QMK Overview (markdown) --- QMK-Overview.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/QMK-Overview.md b/QMK-Overview.md index d9306cc7b3..51b7cb9052 100644 --- a/QMK-Overview.md +++ b/QMK-Overview.md @@ -55,7 +55,7 @@ In the above commands, replace: **NOTE:** Some operating systems will refuse to program unless you run the make command as root for example `sudo make dfu` -#### Make Examples +## Make Examples * Build all Clueboard keymaps: `make clueboard` * Build the default Planck keymap: `make planck-rev4-default` From f9a7dd6ccaa75e6a3772c574283eba8463c944cd Mon Sep 17 00:00:00 2001 From: skullydazed Date: Thu, 16 Feb 2017 17:03:17 -0800 Subject: [PATCH 356/517] Created Make Instructions (markdown) --- Make-Instructions.md | 167 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 167 insertions(+) create mode 100644 Make-Instructions.md diff --git a/Make-Instructions.md b/Make-Instructions.md new file mode 100644 index 0000000000..299834ef2c --- /dev/null +++ b/Make-Instructions.md @@ -0,0 +1,167 @@ +# More detailed make instruction + +The full syntax of the `make` command is the following, but parts of the command can be left out if you run it from other directories than the `root` (as you might already have noticed by reading the simple instructions). + +`---`, where: + +* `` is the name of the keyboard, for example `planck` + * Use `allkb` to compile all keyboards +* `` is the name of the subproject (revision or sub-model of the keyboard). For example, for Ergodox it can be `ez` or `infinity`, and for Planck `rev3` or `rev4`. + * If the keyboard doesn't have any subprojects, it can be left out + * To compile the default subproject, you can leave it out, or specify `defaultsp` + * Use `allsp` to compile all subprojects +* `` is the name of the keymap, for example `algernon` + * Use `allkm` to compile all keymaps +* `` will be explained in more detail below. + +**Note:** When you leave some parts of the command out, you should also remove the dash (`-`). + +As mentioned above, there are some shortcuts, when you are in a: + +* `keyboard` folder, the command will automatically fill the `` part. So you only need to type `--` +* `subproject` folder, it will fill in both `` and `` +* `keymap` folder, then `` and `` will be filled in. If you need to specify the `` use the following syntax `-` + * Note in order to support this shortcut, the keymap needs its own Makefile (see the example [here](/doc/keymap_makefile_example.mk)) +* `keymap` folder of a `subproject`, then everything except the `` will be filled in + +The `` means the following +* If no target is given, then it's the same as `all` below +* `all` compiles the keyboard and generates a `_.hex` file in whichever folder you run `make` from. These files are ignored by git, so don't worry about deleting them when committing/creating pull requests. +* `dfu`, `teensy` or `dfu-util`, compile and upload the firmware to the keyboard. If the compilation fails, then nothing will be uploaded. The programmer to use depends on the keyboard. For most keyboards it's `dfu`, but for Infinity keyboards you should use `dfu-util`, and `teensy` for standard Teensys. To find out which command you should use for your keyboard, check the keyboard specific readme. **Note** that some operating systems needs root access for these commands to work, so in that case you need to run for example `sudo make dfu`. +* `clean`, cleans the build output folders to make sure that everything is built from scratch. Run this before normal compilation if you have some unexplainable problems. + +Some other targets are supported but, but not important enough to be documented here. Check the source code of the make files for more information. + +You can also add extra options at the end of the make command line, after the target + +* `make COLOR=false` - turns off color output +* `make SILENT=true` - turns off output besides errors/warnings +* `make VERBOSE=true` - outputs all of the gcc stuff (not interesting, unless you need to debug) +* `make EXTRAFLAGS=-E` - Preprocess the code without doing any compiling (useful if you are trying to debug #define commands) + +The make command itself also has some additional options, type `make --help` for more information. The most useful is probably `-jx`, which specifies that you want to compile using more than one CPU, the `x` represents the number of CPUs that you want to use. Setting that can greatly reduce the compile times, especially if you are compiling many keyboards/keymaps. I usually set it to one less than the number of CPUs that I have, so that I have some left for doing other things while it's compiling. Note that not all operating systems and make versions supports that option. + +Here are some examples commands + +* `make allkb-allsp-allkm` builds everything (all keyboards, all subprojects, all keymaps). Running just `make` from the `root` will also run this. +* `make` from within a `keyboard` directory, is the same as `make keyboard-allsp-allkm`, which compiles all subprojects and keymaps of the keyboard. **NOTE** that this behaviour has changed. Previously it compiled just the default keymap. +* `make ergodox-infinity-algernon-clean` will clean the build output of the Ergodox Infinity keyboard. This example uses the full syntax and can be run from any folder with a `Makefile` +* `make dfu COLOR=false` from within a keymap folder, builds and uploads the keymap, but without color output. + +## The `Makefile` + +There are 5 different `make` and `Makefile` locations: + +* root (`/`) +* keyboard (`/keyboards//`) +* keymap (`/keyboards//keymaps//`) +* subproject (`/keyboards//`) +* subproject keymap (`/keyboards///keymaps/`) + +The root contains the code used to automatically figure out which keymap or keymaps to compile based on your current directory and commandline arguments. It's considered stable, and shouldn't be modified. The keyboard one will contain the MCU set-up and default settings for your keyboard, and shouldn't be modified unless you are the producer of that keyboard. The keymap Makefile can be modified by users, and is optional. It is included automatically if it exists. You can see an example [here](/doc/keymap_makefile_example.mk) - the last few lines are the most important. The settings you set here will override any defaults set in the keyboard Makefile. **The file is required if you want to run `make` in the keymap folder.** + +For keyboards and subprojects, the make files are split in two parts `Makefile` and `rules.mk`. All settings can be found in the `rules.mk` file, while the `Makefile` is just there for support and including the root `Makefile`. Keymaps contain just one `Makefile` for simplicity. + +### Makefile options + +Set these variables to `no` to disable them, and `yes` to enable them. + +`BOOTMAGIC_ENABLE` + +This allows you to hold a key and the salt key (space by default) and have access to a various EEPROM settings that persist over power loss. It's advised you keep this disabled, as the settings are often changed by accident, and produce confusing results that makes it difficult to debug. It's one of the more common problems encountered in help sessions. + +Consumes about 1000 bytes. + +`MOUSEKEY_ENABLE` + +This gives you control over cursor movements and clicks via keycodes/custom functions. + +`EXTRAKEY_ENABLE` + +This allows you to use the system and audio control key codes. + +`CONSOLE_ENABLE` + +This allows you to print messages that can be read using [`hid_listen`](https://www.pjrc.com/teensy/hid_listen.html). + +By default, all debug (*dprint*) print (*print*, *xprintf*), and user print (*uprint*) messages will be enabled. This will eat up a significant portion of the flash and may make the keyboard .hex file too big to program. + +To disable debug messages (*dprint*) and reduce the .hex file size, include `#define NO_DEBUG` in your `config.h` file. + +To disable print messages (*print*, *xprintf*) and user print messages (*uprint*) and reduce the .hex file size, include `#define NO_PRINT` in your `config.h` file. + +To disable print messages (*print*, *xprintf*) and **KEEP** user print messages (*uprint*), include `#define USER_PRINT` in your `config.h` file. + +To see the text, open `hid_listen` and enjoy looking at your printed messages. + +**NOTE:** Do not include *uprint* messages in anything other than your keymap code. It must not be used within the QMK system framework. Otherwise, you will bloat other people's .hex files. + +Consumes about 400 bytes. + +`COMMAND_ENABLE` + +This enables magic commands, typically fired with the default magic key combo `LSHIFT+RSHIFT+KEY`. Magic commands include turning on debugging messages (`MAGIC+D`) or temporarily toggling NKRO (`MAGIC+N`). + +`SLEEP_LED_ENABLE` + +Enables your LED to breath while your computer is sleeping. Timer1 is being used here. This feature is largely unused and untested, and needs updating/abstracting. + +`NKRO_ENABLE` + +This allows the keyboard to tell the host OS that up to 248 keys are held down at once (default without NKRO is 6). NKRO is off by default, even if `NKRO_ENABLE` is set. NKRO can be forced by adding `#define FORCE_NKRO` to your config.h or by binding `MAGIC_TOGGLE_NKRO` to a key and then hitting the key. + +`BACKLIGHT_ENABLE` + +This enables your backlight on Timer1 and ports B5, B6, or B7 (for now). You can specify your port by putting this in your `config.h`: + + #define BACKLIGHT_PIN B7 + +`MIDI_ENABLE` + +This enables MIDI sending and receiving with your keyboard. To enter MIDI send mode, you can use the keycode `MI_ON`, and `MI_OFF` to turn it off. This is a largely untested feature, but more information can be found in the `quantum/quantum.c` file. + +`UNICODE_ENABLE` + +This allows you to send unicode symbols via `UC()` in your keymap. Only codes up to 0x7FFF are currently supported. + +`UNICODEMAP_ENABLE` + +This allows sending unicode symbols using `X()` in your keymap. Codes +up to 0xFFFFFFFF are supported, including emojis. You will need to maintain +a separate mapping table in your keymap file. + +Known limitations: +- Under Mac OS, only codes up to 0xFFFF are supported. +- Under Linux ibus, only codes up to 0xFFFFF are supported (but anything important is still under this limit for now). + +Characters out of range supported by the OS will be ignored. + +`BLUETOOTH_ENABLE` + +This allows you to interface with a Bluefruit EZ-key to send keycodes wirelessly. It uses the D2 and D3 pins. + +`AUDIO_ENABLE` + +This allows you output audio on the C6 pin (needs abstracting). See the [audio section](#audio-output-from-a-speaker) for more information. + +`FAUXCLICKY_ENABLE` + +Uses buzzer to emulate clicky switches. A cheap imitation of the Cherry blue switches. By default, uses the C6 pin, same as AUDIO_ENABLE. + +`VARIABLE_TRACE` + +Use this to debug changes to variable values, see the [tracing variables](#tracing-variables) section for more information. + +`API_SYSEX_ENABLE` + +This enables using the Quantum SYSEX API to send strings (somewhere?) + +This consumes about 5390 bytes. + +### Customizing Makefile options on a per-keymap basis + +If your keymap directory has a file called `Makefile` (note the filename), any Makefile options you set in that file will take precedence over other Makefile options for your particular keyboard. + +So let's say your keyboard's makefile has `BACKLIGHT_ENABLE = yes` (or maybe doesn't even list the `BACKLIGHT_ENABLE` option, which would cause it to be off). You want your particular keymap to not have the debug console, so you make a file called `Makefile` and specify `BACKLIGHT_ENABLE = no`. + +You can use the `doc/keymap_makefile_example.md` as a template/starting point. From a3b575b74091a6c9cf16a63620b0d1da68eefc7d Mon Sep 17 00:00:00 2001 From: skullydazed Date: Thu, 16 Feb 2017 17:04:10 -0800 Subject: [PATCH 357/517] Updated QMK Overview (markdown) --- QMK-Overview.md | 7 ------- 1 file changed, 7 deletions(-) diff --git a/QMK-Overview.md b/QMK-Overview.md index 51b7cb9052..0d3ada6eb4 100644 --- a/QMK-Overview.md +++ b/QMK-Overview.md @@ -30,13 +30,6 @@ The `make` command is how you compile the firmware into a .hex file, which can b **NOTE:** To abort a make command press `Ctrl-c` -The following instruction refers to these folders. - -* The `root` (`/`) folder is the qmk_firmware folder, in which are `doc`, `keyboard`, `quantum`, etc. -* The `keyboard` folder is any keyboard project's folder, like `/keyboards/planck`. -* The `keymap` folder is any keymap's folder, like `/keyboards/planck/keymaps/default`. -* The `subproject` folder is the subproject folder of a keyboard, like `/keyboards/ergodox/ez` - ### Simple instructions for building and uploading a keyboard **Most keyboards have more specific instructions in the keyboard specific readme.md file, so please check that first** From 8d88997ffda540e04d03a0e1ac12c8b94e2d1d45 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Thu, 16 Feb 2017 17:05:21 -0800 Subject: [PATCH 358/517] Updated QMK Overview (markdown) --- QMK-Overview.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/QMK-Overview.md b/QMK-Overview.md index 0d3ada6eb4..8ae0d136ee 100644 --- a/QMK-Overview.md +++ b/QMK-Overview.md @@ -30,6 +30,8 @@ The `make` command is how you compile the firmware into a .hex file, which can b **NOTE:** To abort a make command press `Ctrl-c` +For more details on the QMK build process see [Make Instructions](Make-Instructions). + ### Simple instructions for building and uploading a keyboard **Most keyboards have more specific instructions in the keyboard specific readme.md file, so please check that first** From cdef9bd02f909d97f3f3232267fa14ed9ab4e300 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Thu, 16 Feb 2017 17:06:00 -0800 Subject: [PATCH 359/517] Updated QMK Overview (markdown) --- QMK-Overview.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/QMK-Overview.md b/QMK-Overview.md index 8ae0d136ee..d90457daa1 100644 --- a/QMK-Overview.md +++ b/QMK-Overview.md @@ -48,7 +48,7 @@ In the above commands, replace: * `` The programmer to use. Most keyboards use `dfu`, but some use `teensy`. Infinity keyboards use `dfu-util`. Check the readme file in the keyboard folder to find out which programmer to use. * If you don't add `- Date: Thu, 16 Feb 2017 17:07:39 -0800 Subject: [PATCH 360/517] Updated QMK Overview (markdown) --- QMK-Overview.md | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/QMK-Overview.md b/QMK-Overview.md index d90457daa1..8803d7c554 100644 --- a/QMK-Overview.md +++ b/QMK-Overview.md @@ -54,4 +54,22 @@ In the above commands, replace: * Build all Clueboard keymaps: `make clueboard` * Build the default Planck keymap: `make planck-rev4-default` -* Build and flash your ergodox-ez: `make ergodox-ez-default-teensy` \ No newline at end of file +* Build and flash your ergodox-ez: `make ergodox-ez-default-teensy` + +# The `config.h` file + +There are 2 `config.h` locations: + +* keyboard (`/keyboards//`) +* keymap (`/keyboards//keymaps//`) + +The keyboard `config.h` is included only if the keymap one doesn't exist. The format to use for your custom one [is here](/doc/keymap_config_h_example.h). If you want to override a setting from the parent `config.h` file, you need to do this: + +```c +#undef MY_SETTING +#define MY_SETTING 4 +``` + +For a value of `4` for this imaginary setting. So we `undef` it first, then `define` it. + +You can then override any settings, rather than having to copy and paste the whole thing. \ No newline at end of file From d9527a2f74355654ae51982106240f20bdd0e0f0 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Thu, 16 Feb 2017 17:09:12 -0800 Subject: [PATCH 361/517] Updated Keymap examples (markdown) --- Keymap-examples.md | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/Keymap-examples.md b/Keymap-examples.md index 27c8a07928..0940119317 100644 --- a/Keymap-examples.md +++ b/Keymap-examples.md @@ -13,4 +13,25 @@ Keymap code on Alps64 https://github.com/thisisshi/tmk_keyboard/blob/15fe63e8d181a8a95988dcc71929f0024df55caa/keyboard/alps64/keymap_pure.c and guide. -https://github.com/thisisshi/tmk_keyboard/blob/77ac0805ade565fb23657e3644c920ada71edccf/keyboard/alps64/Guide.md \ No newline at end of file +https://github.com/thisisshi/tmk_keyboard/blob/77ac0805ade565fb23657e3644c920ada71edccf/keyboard/alps64/Guide.md + +## Prevent stuck modifiers + +Consider the following scenario: + +1. Layer 0 has a key defined as Shift. +2. The same key is defined on layer 1 as the letter A. +3. User presses Shift. +4. User switches to layer 1 for whatever reason. +5. User releases Shift, or rather the letter A. +6. User switches back to layer 0. + +Shift was actually never released and is still considered pressed. + +If such situation bothers you add this to your `config.h`: + + #define PREVENT_STUCK_MODIFIERS + +This option uses 5 bytes of memory per every 8 keys on the keyboard +rounded up (5 bits per key). For example on Planck (48 keys) it uses +(48/8)\*5 = 30 bytes. From 30bf618864b3beb2c141f2db13480bcf08f2a2bd Mon Sep 17 00:00:00 2001 From: skullydazed Date: Thu, 16 Feb 2017 17:09:39 -0800 Subject: [PATCH 362/517] Updated Home (markdown) --- Home.md | 256 +------------------------------------------------------- 1 file changed, 2 insertions(+), 254 deletions(-) diff --git a/Home.md b/Home.md index d6fcceb361..cc00b2eb33 100644 --- a/Home.md +++ b/Home.md @@ -2,260 +2,8 @@ Before you are able to compile, you'll need to install an environment for AVR development. You'll find the instructions for any OS below. If you find another/better way to set things up from scratch, please consider [making a pull request](https://github.com/qmk/qmk_firmware/pulls) with your changes! -## [Build Environment Setup](wiki/Build-Environment-Setup) - -# Customizing your keymap - -In every keymap folder, the following files are recommended: - -* `config.h` - the options to configure your keymap -* `keymap.c` - all of your keymap code, required -* `Makefile` - the features of QMK that are enabled, required to run `make` in your keymap folder -* `readme.md` - a description of your keymap, how others might use it, and explanations of features - -## The `make` command - -The `make` command is how you compile the firmware into a .hex file, which can be loaded by a dfu programmer (like dfu-progammer via `make dfu`) or the [Teensy loader](https://www.pjrc.com/teensy/loader.html) (only used with Teensys). - -**NOTE:** To abort a make command press `Ctrl-c` - -The following instruction refers to these folders. - -* The `root` (`/`) folder is the qmk_firmware folder, in which are `doc`, `keyboard`, `quantum`, etc. -* The `keyboard` folder is any keyboard project's folder, like `/keyboards/planck`. -* The `keymap` folder is any keymap's folder, like `/keyboards/planck/keymaps/default`. -* The `subproject` folder is the subproject folder of a keyboard, like `/keyboards/ergodox/ez` - -### Simple instructions for building and uploading a keyboard - -**Most keyboards have more specific instructions in the keyboard specific readme.md file, so please check that first** - -If the `keymap` folder contains a file name `Makefile` - -1. Change the directory to the `keymap` folder -2. Run `make -` - -Otherwise, if there's no `Makefile` in the `keymap` folder - -1. Enter the `keyboard` folder -2. Run `make --` - -In the above commands, replace: - -* `` with the name of your keymap -* `` with the name of the subproject (revision or sub-model of your keyboard). For example, for Ergodox it can be `ez` or `infinity`, and for Planck `rev3` or `rev4`. - * If the keyboard doesn't have a subproject, or if you are happy with the default (defined in `rules.mk` file of the `keyboard` folder), you can leave it out. But remember to also remove the dash (`-`) from the command. -* `` The programmer to use. Most keyboards use `dfu`, but some use `teensy`. Infinity keyboards use `dfu-util`. Check the readme file in the keyboard folder to find out which programmer to use. - * If you don't add `----`, where: - -* `` is the name of the keyboard, for example `planck` - * Use `allkb` to compile all keyboards -* `` is the name of the subproject (revision or sub-model of the keyboard). For example, for Ergodox it can be `ez` or `infinity`, and for Planck `rev3` or `rev4`. - * If the keyboard doesn't have any subprojects, it can be left out - * To compile the default subproject, you can leave it out, or specify `defaultsp` - * Use `allsp` to compile all subprojects -* `` is the name of the keymap, for example `algernon` - * Use `allkm` to compile all keymaps -* `` will be explained in more detail below. - -**Note:** When you leave some parts of the command out, you should also remove the dash (`-`). - -As mentioned above, there are some shortcuts, when you are in a: - -* `keyboard` folder, the command will automatically fill the `` part. So you only need to type `--` -* `subproject` folder, it will fill in both `` and `` -* `keymap` folder, then `` and `` will be filled in. If you need to specify the `` use the following syntax `-` - * Note in order to support this shortcut, the keymap needs its own Makefile (see the example [here](/doc/keymap_makefile_example.mk)) -* `keymap` folder of a `subproject`, then everything except the `` will be filled in - -The `` means the following -* If no target is given, then it's the same as `all` below -* `all` compiles the keyboard and generates a `_.hex` file in whichever folder you run `make` from. These files are ignored by git, so don't worry about deleting them when committing/creating pull requests. -* `dfu`, `teensy` or `dfu-util`, compile and upload the firmware to the keyboard. If the compilation fails, then nothing will be uploaded. The programmer to use depends on the keyboard. For most keyboards it's `dfu`, but for Infinity keyboards you should use `dfu-util`, and `teensy` for standard Teensys. To find out which command you should use for your keyboard, check the keyboard specific readme. **Note** that some operating systems needs root access for these commands to work, so in that case you need to run for example `sudo make dfu`. -* `clean`, cleans the build output folders to make sure that everything is built from scratch. Run this before normal compilation if you have some unexplainable problems. - -Some other targets are supported but, but not important enough to be documented here. Check the source code of the make files for more information. - -You can also add extra options at the end of the make command line, after the target - -* `make COLOR=false` - turns off color output -* `make SILENT=true` - turns off output besides errors/warnings -* `make VERBOSE=true` - outputs all of the gcc stuff (not interesting, unless you need to debug) -* `make EXTRAFLAGS=-E` - Preprocess the code without doing any compiling (useful if you are trying to debug #define commands) - -The make command itself also has some additional options, type `make --help` for more information. The most useful is probably `-jx`, which specifies that you want to compile using more than one CPU, the `x` represents the number of CPUs that you want to use. Setting that can greatly reduce the compile times, especially if you are compiling many keyboards/keymaps. I usually set it to one less than the number of CPUs that I have, so that I have some left for doing other things while it's compiling. Note that not all operating systems and make versions supports that option. - -Here are some examples commands - -* `make allkb-allsp-allkm` builds everything (all keyboards, all subprojects, all keymaps). Running just `make` from the `root` will also run this. -* `make` from within a `keyboard` directory, is the same as `make keyboard-allsp-allkm`, which compiles all subprojects and keymaps of the keyboard. **NOTE** that this behaviour has changed. Previously it compiled just the default keymap. -* `make ergodox-infinity-algernon-clean` will clean the build output of the Ergodox Infinity keyboard. This example uses the full syntax and can be run from any folder with a `Makefile` -* `make dfu COLOR=false` from within a keymap folder, builds and uploads the keymap, but without color output. - -## The `Makefile` - -There are 5 different `make` and `Makefile` locations: - -* root (`/`) -* keyboard (`/keyboards//`) -* keymap (`/keyboards//keymaps//`) -* subproject (`/keyboards//`) -* subproject keymap (`/keyboards///keymaps/`) - -The root contains the code used to automatically figure out which keymap or keymaps to compile based on your current directory and commandline arguments. It's considered stable, and shouldn't be modified. The keyboard one will contain the MCU set-up and default settings for your keyboard, and shouldn't be modified unless you are the producer of that keyboard. The keymap Makefile can be modified by users, and is optional. It is included automatically if it exists. You can see an example [here](/doc/keymap_makefile_example.mk) - the last few lines are the most important. The settings you set here will override any defaults set in the keyboard Makefile. **The file is required if you want to run `make` in the keymap folder.** - -For keyboards and subprojects, the make files are split in two parts `Makefile` and `rules.mk`. All settings can be found in the `rules.mk` file, while the `Makefile` is just there for support and including the root `Makefile`. Keymaps contain just one `Makefile` for simplicity. - -### Makefile options - -Set these variables to `no` to disable them, and `yes` to enable them. - -`BOOTMAGIC_ENABLE` - -This allows you to hold a key and the salt key (space by default) and have access to a various EEPROM settings that persist over power loss. It's advised you keep this disabled, as the settings are often changed by accident, and produce confusing results that makes it difficult to debug. It's one of the more common problems encountered in help sessions. - -Consumes about 1000 bytes. - -`MOUSEKEY_ENABLE` - -This gives you control over cursor movements and clicks via keycodes/custom functions. - -`EXTRAKEY_ENABLE` - -This allows you to use the system and audio control key codes. - -`CONSOLE_ENABLE` - -This allows you to print messages that can be read using [`hid_listen`](https://www.pjrc.com/teensy/hid_listen.html). - -By default, all debug (*dprint*) print (*print*, *xprintf*), and user print (*uprint*) messages will be enabled. This will eat up a significant portion of the flash and may make the keyboard .hex file too big to program. - -To disable debug messages (*dprint*) and reduce the .hex file size, include `#define NO_DEBUG` in your `config.h` file. - -To disable print messages (*print*, *xprintf*) and user print messages (*uprint*) and reduce the .hex file size, include `#define NO_PRINT` in your `config.h` file. - -To disable print messages (*print*, *xprintf*) and **KEEP** user print messages (*uprint*), include `#define USER_PRINT` in your `config.h` file. - -To see the text, open `hid_listen` and enjoy looking at your printed messages. - -**NOTE:** Do not include *uprint* messages in anything other than your keymap code. It must not be used within the QMK system framework. Otherwise, you will bloat other people's .hex files. - -Consumes about 400 bytes. - -`COMMAND_ENABLE` - -This enables magic commands, typically fired with the default magic key combo `LSHIFT+RSHIFT+KEY`. Magic commands include turning on debugging messages (`MAGIC+D`) or temporarily toggling NKRO (`MAGIC+N`). - -`SLEEP_LED_ENABLE` - -Enables your LED to breath while your computer is sleeping. Timer1 is being used here. This feature is largely unused and untested, and needs updating/abstracting. - -`NKRO_ENABLE` - -This allows the keyboard to tell the host OS that up to 248 keys are held down at once (default without NKRO is 6). NKRO is off by default, even if `NKRO_ENABLE` is set. NKRO can be forced by adding `#define FORCE_NKRO` to your config.h or by binding `MAGIC_TOGGLE_NKRO` to a key and then hitting the key. - -`BACKLIGHT_ENABLE` - -This enables your backlight on Timer1 and ports B5, B6, or B7 (for now). You can specify your port by putting this in your `config.h`: - - #define BACKLIGHT_PIN B7 - -`MIDI_ENABLE` - -This enables MIDI sending and receiving with your keyboard. To enter MIDI send mode, you can use the keycode `MI_ON`, and `MI_OFF` to turn it off. This is a largely untested feature, but more information can be found in the `quantum/quantum.c` file. - -`UNICODE_ENABLE` - -This allows you to send unicode symbols via `UC()` in your keymap. Only codes up to 0x7FFF are currently supported. - -`UNICODEMAP_ENABLE` - -This allows sending unicode symbols using `X()` in your keymap. Codes -up to 0xFFFFFFFF are supported, including emojis. You will need to maintain -a separate mapping table in your keymap file. - -Known limitations: -- Under Mac OS, only codes up to 0xFFFF are supported. -- Under Linux ibus, only codes up to 0xFFFFF are supported (but anything important is still under this limit for now). - -Characters out of range supported by the OS will be ignored. - -`BLUETOOTH_ENABLE` - -This allows you to interface with a Bluefruit EZ-key to send keycodes wirelessly. It uses the D2 and D3 pins. - -`AUDIO_ENABLE` - -This allows you output audio on the C6 pin (needs abstracting). See the [audio section](#audio-output-from-a-speaker) for more information. - -`FAUXCLICKY_ENABLE` - -Uses buzzer to emulate clicky switches. A cheap imitation of the Cherry blue switches. By default, uses the C6 pin, same as AUDIO_ENABLE. - -`VARIABLE_TRACE` - -Use this to debug changes to variable values, see the [tracing variables](#tracing-variables) section for more information. - -`API_SYSEX_ENABLE` - -This enables using the Quantum SYSEX API to send strings (somewhere?) - -This consumes about 5390 bytes. - -### Customizing Makefile options on a per-keymap basis - -If your keymap directory has a file called `Makefile` (note the filename), any Makefile options you set in that file will take precedence over other Makefile options for your particular keyboard. - -So let's say your keyboard's makefile has `BACKLIGHT_ENABLE = yes` (or maybe doesn't even list the `BACKLIGHT_ENABLE` option, which would cause it to be off). You want your particular keymap to not have the debug console, so you make a file called `Makefile` and specify `BACKLIGHT_ENABLE = no`. - -You can use the `doc/keymap_makefile_example.md` as a template/starting point. - -## The `config.h` file - -There are 2 `config.h` locations: - -* keyboard (`/keyboards//`) -* keymap (`/keyboards//keymaps//`) - -The keyboard `config.h` is included only if the keymap one doesn't exist. The format to use for your custom one [is here](/doc/keymap_config_h_example.h). If you want to override a setting from the parent `config.h` file, you need to do this: - -```c -#undef MY_SETTING -#define MY_SETTING 4 -``` - -For a value of `4` for this imaginary setting. So we `undef` it first, then `define` it. - -You can then override any settings, rather than having to copy and paste the whole thing. - -### Prevent stuck modifiers - -Consider the following scenario: - -1. Layer 0 has a key defined as Shift. -2. The same key is defined on layer 1 as the letter A. -3. User presses Shift. -4. User switches to layer 1 for whatever reason. -5. User releases Shift, or rather the letter A. -6. User switches back to layer 0. - -Shift was actually never released and is still considered pressed. - -If such situation bothers you add this to your `config.h`: - - #define PREVENT_STUCK_MODIFIERS - -This option uses 5 bytes of memory per every 8 keys on the keyboard -rounded up (5 bits per key). For example on Planck (48 keys) it uses -(48/8)\*5 = 30 bytes. +* [Build Environment Setup](Build-Environment-Setup) +* [QMK Overview](QMK-Overview) # Going beyond the keycodes From 921884de5da7d38a4c87ae71d51a2fb973f4ed4c Mon Sep 17 00:00:00 2001 From: skullydazed Date: Thu, 16 Feb 2017 17:14:16 -0800 Subject: [PATCH 363/517] Updated Home (markdown) --- Home.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Home.md b/Home.md index cc00b2eb33..c64bd339da 100644 --- a/Home.md +++ b/Home.md @@ -1,3 +1,7 @@ +# Quantum Mechanical Keyboard Firmware + +You have found the QMK Firmware documentation site. QMK is an Open Source firmware for mechanical keyboards. It has been ported to AVR and ARM chips using the LUFA and ChibiOS frameworks. You can use it to power your own hand-wired or custom keyboard PCB. + # Getting started Before you are able to compile, you'll need to install an environment for AVR development. You'll find the instructions for any OS below. If you find another/better way to set things up from scratch, please consider [making a pull request](https://github.com/qmk/qmk_firmware/pulls) with your changes! From b51d9d5d3f646f5bc72f2c99a9a36f7aea2d51eb Mon Sep 17 00:00:00 2001 From: skullydazed Date: Thu, 16 Feb 2017 17:15:38 -0800 Subject: [PATCH 364/517] Updated Home (markdown) --- Home.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Home.md b/Home.md index c64bd339da..e728e1a4f1 100644 --- a/Home.md +++ b/Home.md @@ -1,6 +1,6 @@ # Quantum Mechanical Keyboard Firmware -You have found the QMK Firmware documentation site. QMK is an Open Source firmware for mechanical keyboards. It has been ported to AVR and ARM chips using the LUFA and ChibiOS frameworks. You can use it to power your own hand-wired or custom keyboard PCB. +You have found the QMK Firmware documentation site. This is a keyboard firmware based on the [tmk_keyboard firmware](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. # Getting started From 7da82a68334b9ace1a6e8edf4be3230bbfbc80eb Mon Sep 17 00:00:00 2001 From: skullydazed Date: Fri, 17 Feb 2017 13:17:23 -0800 Subject: [PATCH 365/517] Updated FAQ Keymap (markdown) --- FAQ-Keymap.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/FAQ-Keymap.md b/FAQ-Keymap.md index a26461c01c..444f7394f4 100644 --- a/FAQ-Keymap.md +++ b/FAQ-Keymap.md @@ -2,8 +2,7 @@ https://github.com/tmk/tmk_core/blob/master/doc/keymap.md ## How to get keycode -See [doc/keycode.txt](https://github.com/tmk/tmk_core/blob/master/doc/keycode.txt). -Keycodes are actually defined in [common/keycode.h](https://github.com/tmk/tmk_core/blob/master/common/keycode.h). +See [Keycodes](Keycodes). Keycodes are actually defined in [common/keycode.h](https://github.com/qmk/qmk_keyboard/blob/master/common/keycode.h). ## Sysrq key 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'. From 359245bcc6a4af63733b1f409b951aa3d1c62a45 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Fri, 17 Feb 2017 13:18:04 -0800 Subject: [PATCH 366/517] Updated FAQ Keymap (markdown) --- FAQ-Keymap.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/FAQ-Keymap.md b/FAQ-Keymap.md index 444f7394f4..7c73f571fe 100644 --- a/FAQ-Keymap.md +++ b/FAQ-Keymap.md @@ -2,7 +2,7 @@ https://github.com/tmk/tmk_core/blob/master/doc/keymap.md ## How to get keycode -See [Keycodes](Keycodes). Keycodes are actually defined in [common/keycode.h](https://github.com/qmk/qmk_keyboard/blob/master/common/keycode.h). +See [Keycodes](Keycodes). Keycodes are actually defined in [common/keycode.h](https://github.com/qmk/qmk_firmware/blob/master/tmk_core/common/keycode.h). ## Sysrq key 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'. @@ -245,4 +245,4 @@ without weak mods, 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 +https://github.com/tmk/tmk_core/blob/master/common/action_util.c#L57 \ No newline at end of file From 36f8936b0381dbc8a17bbb40fb6613fa08c5b26d Mon Sep 17 00:00:00 2001 From: skullydazed Date: Fri, 17 Feb 2017 14:09:35 -0800 Subject: [PATCH 367/517] Created Keymap (markdown) --- Keymap.md | 138 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 138 insertions(+) create mode 100644 Keymap.md diff --git a/Keymap.md b/Keymap.md new file mode 100644 index 0000000000..ca3f994d29 --- /dev/null +++ b/Keymap.md @@ -0,0 +1,138 @@ +# Keymap Overview + +OMK keymaps are defined inside a C source file. The data structure is an array of arrays. The outer array is a list of layer arrays while the inner layer array is a list of keys. Most keyboards define a KEYMAP() macro to help you create this array of arrays. + +## Anatomy Of A `keymap.c` + +For this example we will walk through the [default Clueboard keymap](https://github.com/qmk/qmk_firmware/blob/master/keyboards/clueboard/keymaps/default/keymap.c). There are 3 main sections of a `keymap.c` file you'll want to concern yourself with: + +* The Definitions +* The Layer/Keymap Datastructure +* Custom Functions, if any + +### Definitions + +At the top of the file you'll find this: + + #include "clueboard.h" + + // Helpful defines + #define GRAVE_MODS (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)|MOD_BIT(KC_LGUI)|MOD_BIT(KC_RGUI)|MOD_BIT(KC_LALT)|MOD_BIT(KC_RALT)) + #define _______ KC_TRNS + + // Each layer gets a name for readability, which is then used in the keymap matrix below. + // The underscores don't mean anything - you can have a layer called STUFF or any other name. + // Layer names don't all need to be of the same length, obviously, and you can also skip them + // entirely and just use numbers. + #define _BL 0 + #define _FL 1 + #define _CL 2 + +These are some handy definitions we can use when building our keymap and our custom function. The `GRAVE_MODS` definition will be used later in our custom function. The `_______` define makes it easier to see what keys a layer is overriding, while the `_BL`, `_FL`, and `_CL` defines make it easier to refer to each of our layers. + +### Layers and Keymaps + +The main part of this file is the `keymaps[]` definition. This is where you list your layers and the contents of those layers. This part of the file begins with this definition: + + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +After this you'll find a list of KEYMAP() macros. A KEYMAP() is simply a list of keys to define a single layer. Typically you'll have one or more "base layers" (such as QWERTY, Dvorak, or Colemak) and then you'll layer on top of that one or more "function" layers. Due to the way layers are processed you can't overlay a "lower" layer on top of a "higher" layer. + +#### Base Layer + +Here is an example of the Clueboard's base layer: + + /* Keymap _BL: Base Layer (Default Layer) + */ + [_BL] = KEYMAP( + F(0), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC, KC_PGUP, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, \ + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, \ + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RO, KC_RSFT, KC_UP, \ + KC_LCTL, KC_LGUI, KC_LALT, KC_MHEN, KC_SPC,KC_SPC, KC_HENK, KC_RALT, KC_RCTL, MO(_FL), KC_LEFT, KC_DOWN, KC_RGHT), + +Some interesting things to note about this: + +* From a C source point of view it's only a single array, but we have embedded whitespace to more easily visualize where each key is on the physical device. +* Plain keyboard scancodes are prefixed with KC_, while "special" keys are not. +* The upper left key activates custom function 0 (`F(0)`) +* The "Fn" key is defined with `MO(_FL)`, which moves to the `_FL` layer while that key is being held down. + +#### Function Overlay Layer + +Our function layer is, from a code point of view, no different from the base layer. Conceptually, however, you will build that layer as an overlay, not a replacement. For many people this distinction does not matter, but as you build more complicated layering setups it matters more and more. + + [_FL] = KEYMAP( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_DEL, BL_STEP, \ + _______, _______, _______,_______,_______,_______,_______,_______,KC_PSCR,KC_SLCK, KC_PAUS, _______, _______, _______, _______, \ + _______, _______, MO(_CL),_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, \ + _______, _______, _______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, KC_PGUP, \ + _______, _______, _______, _______, _______,_______, _______, _______, _______, MO(_FL), KC_HOME, KC_PGDN, KC_END), + +Some interesting things to note: + +* We have used our `_______` definition to turn `KC_TRNS` into `_______`. This makes it easier to spot the keys that have changed on this layer. +* While in this layer if you press one of the `_______` keys it will activate the key in the next lowest active layer. + +### Custom Functions + +At the bottom of the file we've defined a single custom function. This function defines a key that sends `KC_ESC` when pressed without modifiers and `KC_GRAVE` when modifiers are held. There are a couple pieces that need to be in place for this to work, and we will go over both of them. + +#### `fn_actions[]` + +We define the `fn_actions[]` array to point to custom functions. `F(N)` in a keymap will call element N of that array. In the Clueboard's case that definition looks like this: + + const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_FUNCTION(0), // Calls action_function() + }; + +In this case we've instructed QMK to call the `ACTION_FUNCTION` callback, which we will define in the next section. + +#### `action_function()` + +To actually handle the keypress event we define an `action_function()`. This function will be called when the key is pressed, and then again when the key is released. We have to handle both situations within our code, as well as determining whether to send/release `KC_ESC` or `KC_GRAVE`. + + void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { + static uint8_t mods_pressed; + + switch (id) { + case 0: + /* Handle the combined Grave/Esc key + */ + mods_pressed = get_mods()&GRAVE_MODS; // Check to see what mods are pressed + + if (record->event.pressed) { + /* The key is being pressed. + */ + if (mods_pressed) { + add_key(KC_GRV); + send_keyboard_report(); + } else { + add_key(KC_ESC); + send_keyboard_report(); + } + } else { + /* The key is being released. + */ + if (mods_pressed) { + del_key(KC_GRV); + send_keyboard_report(); + } else { + del_key(KC_ESC); + send_keyboard_report(); + } + } + break; + } + } + +# Nitty Gritty Details + +This should have given you a basic overview for creating your own keymap. For more details see the following resources: + +* https://github.com/qmk/qmk_firmware/blob/master/doc/keymap.md +* https://github.com/qmk/qmk_firmware/wiki/Keycodes +* https://github.com/qmk/qmk_firmware/wiki/FAQ-Keymap +* https://github.com/qmk/qmk_firmware/wiki/Keymap-examples + +We are actively working to improve these docs. If you have suggestions for how they could be made better please [file an issue](https://github.com/qmk/qmk_firmware/issues/new)! \ No newline at end of file From 0bffb86721df9a3ebb488b74693cc7bddf122157 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Fri, 17 Feb 2017 14:09:50 -0800 Subject: [PATCH 368/517] Updated Keymap (markdown) --- Keymap.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Keymap.md b/Keymap.md index ca3f994d29..a3f40d392e 100644 --- a/Keymap.md +++ b/Keymap.md @@ -1,6 +1,6 @@ # Keymap Overview -OMK keymaps are defined inside a C source file. The data structure is an array of arrays. The outer array is a list of layer arrays while the inner layer array is a list of keys. Most keyboards define a KEYMAP() macro to help you create this array of arrays. +QMK keymaps are defined inside a C source file. The data structure is an array of arrays. The outer array is a list of layer arrays while the inner layer array is a list of keys. Most keyboards define a KEYMAP() macro to help you create this array of arrays. ## Anatomy Of A `keymap.c` From 44cd6aa41a327eec53f03f1a23c1eacf09dcf3eb Mon Sep 17 00:00:00 2001 From: skullydazed Date: Fri, 17 Feb 2017 14:10:10 -0800 Subject: [PATCH 369/517] Updated Keymap (markdown) --- Keymap.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Keymap.md b/Keymap.md index a3f40d392e..64b20bb799 100644 --- a/Keymap.md +++ b/Keymap.md @@ -1,6 +1,6 @@ # Keymap Overview -QMK keymaps are defined inside a C source file. The data structure is an array of arrays. The outer array is a list of layer arrays while the inner layer array is a list of keys. Most keyboards define a KEYMAP() macro to help you create this array of arrays. +QMK keymaps are defined inside a C source file. The data structure is an array of arrays. The outer array is a list of layer arrays while the inner layer array is a list of keys. Most keyboards define a `KEYMAP()` macro to help you create this array of arrays. ## Anatomy Of A `keymap.c` From 4c9dae0e3b0b7a55bf853fdffae04700c48587f0 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Fri, 17 Feb 2017 14:11:32 -0800 Subject: [PATCH 370/517] Updated Keymap (markdown) --- Keymap.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/Keymap.md b/Keymap.md index 64b20bb799..bc135dd6f7 100644 --- a/Keymap.md +++ b/Keymap.md @@ -20,10 +20,12 @@ At the top of the file you'll find this: #define GRAVE_MODS (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)|MOD_BIT(KC_LGUI)|MOD_BIT(KC_RGUI)|MOD_BIT(KC_LALT)|MOD_BIT(KC_RALT)) #define _______ KC_TRNS - // Each layer gets a name for readability, which is then used in the keymap matrix below. - // The underscores don't mean anything - you can have a layer called STUFF or any other name. - // Layer names don't all need to be of the same length, obviously, and you can also skip them - // entirely and just use numbers. + // Each layer gets a name for readability. + // The underscores don't mean anything - you can + // have a layer called STUFF or any other name. + // Layer names don't all need to be of the same + // length, and you can also skip them entirely + // and just use numbers. #define _BL 0 #define _FL 1 #define _CL 2 From 686849755704dc15638905674421a716bf1c54de Mon Sep 17 00:00:00 2001 From: skullydazed Date: Fri, 17 Feb 2017 14:14:10 -0800 Subject: [PATCH 371/517] Updated Keymap (markdown) --- Keymap.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Keymap.md b/Keymap.md index bc135dd6f7..631388ed07 100644 --- a/Keymap.md +++ b/Keymap.md @@ -82,7 +82,7 @@ At the bottom of the file we've defined a single custom function. This function #### `fn_actions[]` -We define the `fn_actions[]` array to point to custom functions. `F(N)` in a keymap will call element N of that array. In the Clueboard's case that definition looks like this: +We define the `fn_actions[]` array to point to custom functions. `F(N)` in a keymap will call element N of that array. For the Clueboard's that looks like this: const uint16_t PROGMEM fn_actions[] = { [0] = ACTION_FUNCTION(0), // Calls action_function() From 5f9532ea66f14f1a495c908c70c013aea4009579 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Fri, 17 Feb 2017 14:20:25 -0800 Subject: [PATCH 372/517] Updated Keymap (markdown) --- Keymap.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Keymap.md b/Keymap.md index 631388ed07..df21985097 100644 --- a/Keymap.md +++ b/Keymap.md @@ -4,7 +4,9 @@ QMK keymaps are defined inside a C source file. The data structure is an array o ## Anatomy Of A `keymap.c` -For this example we will walk through the [default Clueboard keymap](https://github.com/qmk/qmk_firmware/blob/master/keyboards/clueboard/keymaps/default/keymap.c). There are 3 main sections of a `keymap.c` file you'll want to concern yourself with: +For this example we will walk through the [default Clueboard keymap](https://github.com/qmk/qmk_firmware/blob/master/keyboards/clueboard/keymaps/default/keymap.c). You'll find it helpful to open that file in another browser window so you can look at everything in context. + +There are 3 main sections of a `keymap.c` file you'll want to concern yourself with: * The Definitions * The Layer/Keymap Datastructure From e546b7655c1de109e0338df4e297eca7b1476c33 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Fri, 17 Feb 2017 14:22:55 -0800 Subject: [PATCH 373/517] Updated Keymap (markdown) --- Keymap.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Keymap.md b/Keymap.md index df21985097..9f519d5e6a 100644 --- a/Keymap.md +++ b/Keymap.md @@ -8,9 +8,9 @@ For this example we will walk through the [default Clueboard keymap](https://git There are 3 main sections of a `keymap.c` file you'll want to concern yourself with: -* The Definitions -* The Layer/Keymap Datastructure -* Custom Functions, if any +* [The Definitions](#definitions) +* [The Layer/Keymap Datastructure](#layers-and-keymaps) +* [Custom Functions](#custom-functions), if any ### Definitions From 7d29d5f09195d18457442d8a40b4d15cc774e235 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Fri, 17 Feb 2017 14:27:34 -0800 Subject: [PATCH 374/517] Updated _Sidebar (markdown) --- _Sidebar.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/_Sidebar.md b/_Sidebar.md index d74dd60d05..f77a488371 100644 --- a/_Sidebar.md +++ b/_Sidebar.md @@ -1 +1,11 @@ -* [Build Environment Setup](wiki/Build-Environment-Setup) \ No newline at end of file +* [QMK Overview](QMK-Overview) +* [Build Environment Setup](Build-Environment-Setup) +* [FAQ](FAQ) + * [FAQ Build](FAQ-Build) + * [FAQ Keymap](FAQ-Keymap) +* [Keycodes](Keycodes) +* [Keymap](Keymap) + * [Leader Key](Leader Key) + * [Macros](Macros) + * [Space Cadet](Space-Cadet-Shift) + * [Tap Dance](Tap Dance) From bcc86a09d507a2878e75b2c548a65e12bec083db Mon Sep 17 00:00:00 2001 From: skullydazed Date: Fri, 17 Feb 2017 14:27:58 -0800 Subject: [PATCH 375/517] Updated _Sidebar (markdown) --- _Sidebar.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_Sidebar.md b/_Sidebar.md index f77a488371..6028d32588 100644 --- a/_Sidebar.md +++ b/_Sidebar.md @@ -3,8 +3,8 @@ * [FAQ](FAQ) * [FAQ Build](FAQ-Build) * [FAQ Keymap](FAQ-Keymap) -* [Keycodes](Keycodes) * [Keymap](Keymap) + * [Keycodes](Keycodes) * [Leader Key](Leader Key) * [Macros](Macros) * [Space Cadet](Space-Cadet-Shift) From 7990cd2c92d2e14892b4bf6065e23fb51ed59e5d Mon Sep 17 00:00:00 2001 From: skullydazed Date: Fri, 17 Feb 2017 14:28:35 -0800 Subject: [PATCH 376/517] Updated _Sidebar (markdown) --- _Sidebar.md | 1 + 1 file changed, 1 insertion(+) diff --git a/_Sidebar.md b/_Sidebar.md index 6028d32588..8d0106d1a3 100644 --- a/_Sidebar.md +++ b/_Sidebar.md @@ -1,3 +1,4 @@ +* [Wiki Home](wiki) * [QMK Overview](QMK-Overview) * [Build Environment Setup](Build-Environment-Setup) * [FAQ](FAQ) From 93cd47d491dbdd3814d0bcf498b17b6bc47678b9 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Fri, 17 Feb 2017 14:28:59 -0800 Subject: [PATCH 377/517] Updated _Sidebar (markdown) --- _Sidebar.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_Sidebar.md b/_Sidebar.md index 8d0106d1a3..8e0d323c53 100644 --- a/_Sidebar.md +++ b/_Sidebar.md @@ -1,4 +1,4 @@ -* [Wiki Home](wiki) +* [Wiki Home](wiki/) * [QMK Overview](QMK-Overview) * [Build Environment Setup](Build-Environment-Setup) * [FAQ](FAQ) From ab7ffc877af679d8ad4b1cfe5b6538f602b0f768 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Fri, 17 Feb 2017 14:29:24 -0800 Subject: [PATCH 378/517] Updated _Sidebar (markdown) --- _Sidebar.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_Sidebar.md b/_Sidebar.md index 8e0d323c53..3ed32e5f7e 100644 --- a/_Sidebar.md +++ b/_Sidebar.md @@ -9,4 +9,4 @@ * [Leader Key](Leader Key) * [Macros](Macros) * [Space Cadet](Space-Cadet-Shift) - * [Tap Dance](Tap Dance) + * [Tap Dance](Tap-Dance) From 89529a9f17b54315817e20b9fb51fd15af040d10 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Fri, 17 Feb 2017 14:29:35 -0800 Subject: [PATCH 379/517] Updated _Sidebar (markdown) --- _Sidebar.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_Sidebar.md b/_Sidebar.md index 3ed32e5f7e..318dee1cff 100644 --- a/_Sidebar.md +++ b/_Sidebar.md @@ -6,7 +6,7 @@ * [FAQ Keymap](FAQ-Keymap) * [Keymap](Keymap) * [Keycodes](Keycodes) - * [Leader Key](Leader Key) + * [Leader Key](Leader-Key) * [Macros](Macros) * [Space Cadet](Space-Cadet-Shift) * [Tap Dance](Tap-Dance) From 2c89a77e675ddc61587a20b3e624ad72c392a1ab Mon Sep 17 00:00:00 2001 From: Erez Zukerman Date: Wed, 22 Feb 2017 19:52:59 -0500 Subject: [PATCH 380/517] Created Unit testing (markdown) --- Unit-testing.md | 68 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 Unit-testing.md diff --git a/Unit-testing.md b/Unit-testing.md new file mode 100644 index 0000000000..3eac625097 --- /dev/null +++ b/Unit-testing.md @@ -0,0 +1,68 @@ +# Unit Testing + +If you are new to unit testing, then you can find many good resources on internet. However most of it is scattered around in small pieces here and there, and there's also many different opinions, so I won't give any recommendations. + +Instead I recommend these two books, explaining two different styles of Unit Testing in detail. + +* "Test Driven Development: By Example: Kent Beck" +* "Growing Object-Oriented Software, Guided By Tests: Steve Freeman, Nat Pryce" + +If you prefer videos there are Uncle Bob's [Clean Coders Videos](https://cleancoders.com/), which unfortunately cost quite a bit, especially if you want to watch many of them. But James Shore has a free [Let's Play](http://www.jamesshore.com/Blog/Lets-Play) video series. + +## Google Test and Google Mock +It's possible to Unit Test your code using [Google Test](https://github.com/google/googletest). The Google Test framework also includes another component for writing testing mocks and stubs, called "Google Mock". For information how to write the actual tests, please refer to the documentation on that site. + +## Use of C++ + +Note that Google Test and therefore any test has to be written in C++, even if the rest of the QMK codebases is written in C. This should hopefully not be a problem even if you don't know any C++, since there's quite clear documentation and examples of the required C++ features, and you can write the rest of the test code almost as you would write normal C. Note that some compiler errors which you might get can look quite scary, but just read carefully what it says, and you should be ok. + +One thing to remember, is that you have to append `extern "C"` around all of your C file includes. + +## Adding tests for new or existing features + +If you want to unit test some feature, then take a look at the existing serial_link tests, in the `quantum/serial_link/tests folder`, and follow the steps below to create a similar structure. + +1. If it doesn't already exist, add a test subfolder to the folder containing the feature. +2. Create a `testlist.mk` and a `rules.mk` file in that folder. +3. Include those files from the root folder `testlist.mk`and `build_test.mk` respectively. +4. Add a new name for your testgroup to the `testlist.mk` file. Each group defined there will be a separate executable. And that's how you can support mocking out different parts. Note that it's worth adding some common prefix, just like it's done for the serial_link tests. The reason for that is that the make command allows substring filtering, so this way you can easily run a subset of the tests. +5. Define the source files and required options in the `rules.mk` file. + * `_SRC` for source files + * `_DEFS` for additional defines + * `_INC` for additional include folders +6. Write the tests in a new cpp file inside the test folder you created. That file has to be one of the files included from the `rules.mk` file. + +Note how there's several different tests, each mocking out a separate part. Also note that each of them only compiles the very minimum that's needed for the tests. It's recommend that you try to do the same. For a relevant video check out [Matt Hargett "Advanced Unit Testing in C & C++](https://www.youtube.com/watch?v=Wmy6g-aVgZI) + +## Running the tests + +To run all the tests in the codebase, type `make test`. You can also run test matching a substring by typing `make test-matchingsubstring` Note that the tests are always compiled with the native compiler of your platform, so they are also run like any other program on your computer. + +## Debugging the tests + +If there are problems with the tests, you can find the executable in the `./build/test` folder. You should be able to run those with GDB or a similar debugger. + +## Full Integration tests + +It's not yet possible to do a full integration test, where you would compile the whole firmware and define a keymap that you are going to test. However there are plans for doing that, because writing tests that way would probably be easier, at least for people that are not used to unit testing. + +In that model you would emulate the input, and expect a certain output from the emulated keyboard. + +# Tracing variables + +Sometimes you might wonder why a variable gets changed and where, and this can be quite tricky to track down without having a debugger. It's of course possible to manually add print statements to track it, but you can also enable the variable trace feature. This works for both for variables that are changed by the code, and when the variable is changed by some memory corruption. + +To take the feature into use add `VARIABLE_TRACE=x` to the end of you make command. `x` represents the number of variables you want to trace, which is usually 1. + +Then at a suitable place in the code, call `ADD_TRACED_VARIABLE`, to begin the tracing. For example to trace all the layer changes, you can do this +```c +void matrix_init_user(void) { + ADD_TRACED_VARIABLE("layer", &layer_state, sizeof(layer_state)); +} +``` + +This will add a traced variable named "layer" (the name is just for your information), which tracks the memory location of `layer_state`. It tracks 4 bytes (the size of `layer_state`), so any modification to the variable will be reported. By default you can not specify a size bigger than 4, but you can change it by adding `MAX_VARIABLE_TRACE_SIZE=x` to the end of the make command line. + +In order to actually detect changes to the variables you should call `VERIFY_TRACED_VARIABLES` around the code that you think that modifies the variable. If a variable is modified it will tell you between which two `VERIFY_TRACED_VARIABLES` calls the modification happened. You can then add more calls to track it down further. I don't recommend spamming the codebase with calls. It's better to start with a few, and then keep adding them in a binary search fashion. You can also delete the ones you don't need, as each call need to store the file name and line number in the ROM, so you can run out of memory if you add too many calls. + +Also remember to delete all the tracing code once you have found the bug, as you wouldn't want to create a pull request with tracing code. \ No newline at end of file From 6e88c5014bd9e10bf8aeb15e4f00a4e691fbea84 Mon Sep 17 00:00:00 2001 From: Erez Zukerman Date: Wed, 22 Feb 2017 19:53:08 -0500 Subject: [PATCH 381/517] Moves unit testing into its own page. --- Home.md | 68 --------------------------------------------------------- 1 file changed, 68 deletions(-) diff --git a/Home.md b/Home.md index e728e1a4f1..2f31d6e991 100644 --- a/Home.md +++ b/Home.md @@ -670,71 +670,3 @@ Here is where you can (optionally) define your `KEYMAP` function to remap your m Each of the `kxx` variables needs to be unique, and usually follows the format `k`. You can place `KC_NO` where your dead keys are in your matrix. -# Unit Testing - -If you are new to unit testing, then you can find many good resources on internet. However most of it is scattered around in small pieces here and there, and there's also many different opinions, so I won't give any recommendations. - -Instead I recommend these two books, explaining two different styles of Unit Testing in detail. - -* "Test Driven Development: By Example: Kent Beck" -* "Growing Object-Oriented Software, Guided By Tests: Steve Freeman, Nat Pryce" - -If you prefer videos there are Uncle Bob's [Clean Coders Videos](https://cleancoders.com/), which unfortunately cost quite a bit, especially if you want to watch many of them. But James Shore has a free [Let's Play](http://www.jamesshore.com/Blog/Lets-Play) video series. - -## Google Test and Google Mock -It's possible to Unit Test your code using [Google Test](https://github.com/google/googletest). The Google Test framework also includes another component for writing testing mocks and stubs, called "Google Mock". For information how to write the actual tests, please refer to the documentation on that site. - -## Use of C++ - -Note that Google Test and therefore any test has to be written in C++, even if the rest of the QMK codebases is written in C. This should hopefully not be a problem even if you don't know any C++, since there's quite clear documentation and examples of the required C++ features, and you can write the rest of the test code almost as you would write normal C. Note that some compiler errors which you might get can look quite scary, but just read carefully what it says, and you should be ok. - -One thing to remember, is that you have to append `extern "C"` around all of your C file includes. - -## Adding tests for new or existing features - -If you want to unit test some feature, then take a look at the existing serial_link tests, in the `quantum/serial_link/tests folder`, and follow the steps below to create a similar structure. - -1. If it doesn't already exist, add a test subfolder to the folder containing the feature. -2. Create a `testlist.mk` and a `rules.mk` file in that folder. -3. Include those files from the root folder `testlist.mk`and `build_test.mk` respectively. -4. Add a new name for your testgroup to the `testlist.mk` file. Each group defined there will be a separate executable. And that's how you can support mocking out different parts. Note that it's worth adding some common prefix, just like it's done for the serial_link tests. The reason for that is that the make command allows substring filtering, so this way you can easily run a subset of the tests. -5. Define the source files and required options in the `rules.mk` file. - * `_SRC` for source files - * `_DEFS` for additional defines - * `_INC` for additional include folders -6. Write the tests in a new cpp file inside the test folder you created. That file has to be one of the files included from the `rules.mk` file. - -Note how there's several different tests, each mocking out a separate part. Also note that each of them only compiles the very minimum that's needed for the tests. It's recommend that you try to do the same. For a relevant video check out [Matt Hargett "Advanced Unit Testing in C & C++](https://www.youtube.com/watch?v=Wmy6g-aVgZI) - -## Running the tests - -To run all the tests in the codebase, type `make test`. You can also run test matching a substring by typing `make test-matchingsubstring` Note that the tests are always compiled with the native compiler of your platform, so they are also run like any other program on your computer. - -## Debugging the tests - -If there are problems with the tests, you can find the executable in the `./build/test` folder. You should be able to run those with GDB or a similar debugger. - -## Full Integration tests - -It's not yet possible to do a full integration test, where you would compile the whole firmware and define a keymap that you are going to test. However there are plans for doing that, because writing tests that way would probably be easier, at least for people that are not used to unit testing. - -In that model you would emulate the input, and expect a certain output from the emulated keyboard. - -# Tracing variables - -Sometimes you might wonder why a variable gets changed and where, and this can be quite tricky to track down without having a debugger. It's of course possible to manually add print statements to track it, but you can also enable the variable trace feature. This works for both for variables that are changed by the code, and when the variable is changed by some memory corruption. - -To take the feature into use add `VARIABLE_TRACE=x` to the end of you make command. `x` represents the number of variables you want to trace, which is usually 1. - -Then at a suitable place in the code, call `ADD_TRACED_VARIABLE`, to begin the tracing. For example to trace all the layer changes, you can do this -```c -void matrix_init_user(void) { - ADD_TRACED_VARIABLE("layer", &layer_state, sizeof(layer_state)); -} -``` - -This will add a traced variable named "layer" (the name is just for your information), which tracks the memory location of `layer_state`. It tracks 4 bytes (the size of `layer_state`), so any modification to the variable will be reported. By default you can not specify a size bigger than 4, but you can change it by adding `MAX_VARIABLE_TRACE_SIZE=x` to the end of the make command line. - -In order to actually detect changes to the variables you should call `VERIFY_TRACED_VARIABLES` around the code that you think that modifies the variable. If a variable is modified it will tell you between which two `VERIFY_TRACED_VARIABLES` calls the modification happened. You can then add more calls to track it down further. I don't recommend spamming the codebase with calls. It's better to start with a few, and then keep adding them in a binary search fashion. You can also delete the ones you don't need, as each call need to store the file name and line number in the ROM, so you can run out of memory if you add too many calls. - -Also remember to delete all the tracing code once you have found the bug, as you wouldn't want to create a pull request with tracing code. \ No newline at end of file From 6fb9c094ec259ff1d9e2b39842942f4f9a0db027 Mon Sep 17 00:00:00 2001 From: Erez Zukerman Date: Wed, 22 Feb 2017 19:56:31 -0500 Subject: [PATCH 382/517] Created Unicode and additional language support (markdown) --- Unicode-and-additional-language-support.md | 54 ++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 Unicode-and-additional-language-support.md diff --git a/Unicode-and-additional-language-support.md b/Unicode-and-additional-language-support.md new file mode 100644 index 0000000000..562dae4b5c --- /dev/null +++ b/Unicode-and-additional-language-support.md @@ -0,0 +1,54 @@ +## Unicode support + +There are three Unicode keymap definition method available in QMK: + +### UNICODE_ENABLE + +Supports Unicode input up to 0xFFFF. The keycode function is `UC(n)` in +keymap file, where *n* is a 4 digit hexadecimal. + +### UNICODEMAP_ENABLE + +Supports Unicode up to 0xFFFFFFFF. You need to maintain a separate mapping +table `const uint32_t PROGMEM unicode_map[] = {...}` in your keymap file. +The keycode function is `X(n)` where *n* is the array index of the mapping +table. + +### UCIS_ENABLE + +TBD + +Unicode input in QMK works by inputing a sequence of characters to the OS, +sort of like macro. Unfortunately, each OS has different ideas on how Unicode is inputted. + +This is the current list of Unicode input method in QMK: + +* UC_OSX: MacOS Unicode Hex Input support. Works only up to 0xFFFF. Disabled by default. To enable: go to System Preferences -> Keyboard -> Input Sources, and enable Unicode Hex. +* UC_LNX: Unicode input method under Linux. Works up to 0xFFFFF. Should work almost anywhere on ibus enabled distros. Without ibus, this works under GTK apps, but rarely anywhere else. +* UC_WIN: (not recommended) Windows built-in Unicode input. To enable: create registry key under `HKEY_CURRENT_USER\Control Panel\Input Method\EnableHexNumpad` of type `REG_SZ` called `EnableHexNumpad`, set its value to 1, and reboot. This method is not recommended because of reliability and compatibility issue, use WinCompose method below instead. +* UC_WINC: Windows Unicode input using WinCompose. Requires [WinCompose](https://github.com/samhocevar/wincompose). Works reliably under many (all?) variations of Windows. + +## Additional language support + +In `quantum/keymap_extras/`, you'll see various language files - these work the same way as the alternative layout ones do. Most are defined by their two letter country/language code followed by an underscore and a 4-letter abbreviation of its name. `FR_UGRV` which will result in a `ù` when using a software-implemented AZERTY layout. It's currently difficult to send such characters in just the firmware. + +## International Characters on Windows + +[AutoHotkey](https://autohotkey.com) allows Windows users to create custom hotkeys among others. + +The method does not require Unicode support in the keyboard itself but depends instead of AutoHotkey running in the background. + +First you need to select a modifier combination that is not in use by any of your programs. +CtrlAltWin is not used very widely and should therefore be perfect for this. +There is a macro defined for a mod-tab combo `LCAG_T`. +Add this mod-tab combo to a key on your keyboard, e.g.: `LCAG_T(KC_TAB)`. +This makes the key behave like a tab key if pressed and released immediately but changes it to the modifier if used with another key. + +In the default script of AutoHotkey you can define custom hotkeys. + + <^ Date: Wed, 22 Feb 2017 19:56:46 -0500 Subject: [PATCH 383/517] Moves Unicode and foreign-language info into its own page. --- Home.md | 54 ------------------------------------------------------ 1 file changed, 54 deletions(-) diff --git a/Home.md b/Home.md index 2f31d6e991..534578e1d1 100644 --- a/Home.md +++ b/Home.md @@ -52,40 +52,6 @@ These implementations assume you're using Colemak or Dvorak on your OS, not on y To give an example, if you're using software-implemented Colemak, and want to get an `F`, you would use `CM_F` - `KC_F` under these same circumstances would result in `T`. -## Additional language support - -In `quantum/keymap_extras/`, you'll see various language files - these work the same way as the alternative layout ones do. Most are defined by their two letter country/language code followed by an underscore and a 4-letter abbreviation of its name. `FR_UGRV` which will result in a `ù` when using a software-implemented AZERTY layout. It's currently difficult to send such characters in just the firmware (but it's being worked on - see Unicode support). - -## Unicode support - -There are three Unicode keymap definition method available in QMK: - -### UNICODE_ENABLE - -Supports Unicode input up to 0xFFFF. The keycode function is `UC(n)` in -keymap file, where *n* is a 4 digit hexadecimal. - -### UNICODEMAP_ENABLE - -Supports Unicode up to 0xFFFFFFFF. You need to maintain a separate mapping -table `const uint32_t PROGMEM unicode_map[] = {...}` in your keymap file. -The keycode function is `X(n)` where *n* is the array index of the mapping -table. - -### UCIS_ENABLE - -TBD - -Unicode input in QMK works by inputing a sequence of characters to the OS, -sort of like macro. Unfortunately, each OS has different ideas on how Unicode is inputted. - -This is the current list of Unicode input method in QMK: - -* UC_OSX: MacOS Unicode Hex Input support. Works only up to 0xFFFF. Disabled by default. To enable: go to System Preferences -> Keyboard -> Input Sources, and enable Unicode Hex. -* UC_LNX: Unicode input method under Linux. Works up to 0xFFFFF. Should work almost anywhere on ibus enabled distros. Without ibus, this works under GTK apps, but rarely anywhere else. -* UC_WIN: (not recommended) Windows built-in Unicode input. To enable: create registry key under `HKEY_CURRENT_USER\Control Panel\Input Method\EnableHexNumpad` of type `REG_SZ` called `EnableHexNumpad`, set its value to 1, and reboot. This method is not recommended because of reliability and compatibility issue, use WinCompose method below instead. -* UC_WINC: Windows Unicode input using WinCompose. Requires [WinCompose](https://github.com/samhocevar/wincompose). Works reliably under many (all?) variations of Windows. - ## Backlight Breathing In order to enable backlight breathing, the following line must be added to your config.h file. @@ -279,26 +245,6 @@ This is still a WIP, but check out `quantum/keymap_midi.c` to see what's happeni 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. -## International Characters on Windows - -[AutoHotkey](https://autohotkey.com) allows Windows users to create custom hotkeys among others. - -The method does not require Unicode support in the keyboard itself but depends instead of AutoHotkey running in the background. - -First you need to select a modifier combination that is not in use by any of your programs. -CtrlAltWin is not used very widely and should therefore be perfect for this. -There is a macro defined for a mod-tab combo `LCAG_T`. -Add this mod-tab combo to a key on your keyboard, e.g.: `LCAG_T(KC_TAB)`. -This makes the key behave like a tab key if pressed and released immediately but changes it to the modifier if used with another key. - -In the default script of AutoHotkey you can define custom hotkeys. - - <^ Date: Wed, 22 Feb 2017 19:58:11 -0500 Subject: [PATCH 384/517] Created Porting your keyboard to QMK (markdown) --- Porting-your-keyboard-to-QMK.md | 59 +++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 Porting-your-keyboard-to-QMK.md diff --git a/Porting-your-keyboard-to-QMK.md b/Porting-your-keyboard-to-QMK.md new file mode 100644 index 0000000000..6f291a432d --- /dev/null +++ b/Porting-your-keyboard-to-QMK.md @@ -0,0 +1,59 @@ +If your keyboard is running an Atmega chip (atmega32u4 and others), it's pretty easy to get things setup for compiling your own firmware to flash onto your board. There is a `/util/new_project.sh ` script to help get you started - you can simply pass your keyboard's name into the script, and all of the necessary files will be created. The components of each are described below. + +## `/keyboards//config.h` + +The `USB Device descriptor parameter` block contains parameters are used to uniquely identify your keyboard, but they don't really matter to the machine. + +Your `MATRIX_ROWS` and `MATRIX_COLS` are the numbers of rows and cols in your keyboard matrix - this may be different than the number of actual rows and columns on your keyboard. There are some tricks you can pull to increase the number of keys in a given matrix, but most keyboards are pretty straight-forward. + +The `MATRIX_ROW_PINS` and `MATRIX_COL_PINS` are the pins your MCU uses on each row/column. Your schematic (if you have one) will have this information on it, and the values will vary depending on your setup. This is one of the most important things to double-check in getting your keyboard setup correctly. + +For the `DIODE_DIRECTION`, most hand-wiring guides will instruct you to wire the diodes in the `COL2ROW` position, but it's possible that they are in the other - people coming from EasyAVR often use `ROW2COL`. Nothing will function if this is incorrect. + +`BACKLIGHT_PIN` is the pin that your PWM-controlled backlight (if one exists) is hooked-up to. Currently only B5, B6, and B7 are supported. + +`BACKLIGHT_BREATHING` is a fancier backlight feature that adds breathing/pulsing/fading effects to the backlight. It uses the same timer as the normal backlight. These breathing effects must be called by code in your keymap. + +`BACKLIGHT_LEVELS` is how many levels exist for your backlight - max is 15, and they are computed automatically from this number. + +## `/keyboards//Makefile` + +The values at the top likely won't need to be changed, since most boards use the `atmega32u4` chip. The `BOOTLOADER_SIZE` will need to be adjusted based on your MCU type. It's defaulted to the Teensy, since that's the most common controller. Below is quoted from the `Makefile`. + +``` +# Boot Section Size in *bytes* +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +OPT_DEFS += -DBOOTLOADER_SIZE=512 +``` + +At the bottom of the file, you'll find lots of features to turn on and off - all of these options should be set with `?=` to allow for the keymap overrides. `?=` only assigns if the variable was previously undefined. For the full documenation of these features, see the [Makefile options](#makefile-options). + +## `/keyboards//readme.md` + +This is where you'll describe your keyboard - please write as much as you can about it! Talking about default functionality/features is useful here. Feel free to link to external pages/sites if necessary. Images can be included here as well. This file will be rendered into a webpage at qmk.fm/keyboards//. + +## `/keyboards//.c` + +This is where all of the custom logic for your keyboard goes - you may not need to put anything in this file, since a lot of things are configured automatically. All of the `*_kb()` functions are defined here. If you modify them, remember to keep the calls to `*_user()`, or things in the keymaps might not work. You can read more about the functions [here](#custom-quantum-functions-for-keyboards-and-keymaps) + +## `/keyboards//.h` + +Here is where you can (optionally) define your `KEYMAP` function to remap your matrix into a more readable format. With ortholinear boards, this isn't always necessary, but it can help to accomodate the dead spots on your matrix, where there are keys that take up more than one space (2u, staggering, 6.25u, etc). The example shows the difference between the physical keys, and the matrix design: + +``` +#define KEYMAP( \ + k00, k01, k02, \ + k10, k11 \ +) \ +{ \ + { k00, k01, k02 }, \ + { k10, KC_NO, k11 }, \ +} +``` + +Each of the `kxx` variables needs to be unique, and usually follows the format `k`. You can place `KC_NO` where your dead keys are in your matrix. + From 729fe5d8d41d22ec0b7073488364e007ae3e04a6 Mon Sep 17 00:00:00 2001 From: Erez Zukerman Date: Wed, 22 Feb 2017 19:58:21 -0500 Subject: [PATCH 385/517] Moves porting info to its own page --- Home.md | 61 --------------------------------------------------------- 1 file changed, 61 deletions(-) diff --git a/Home.md b/Home.md index 534578e1d1..b90c1d12cf 100644 --- a/Home.md +++ b/Home.md @@ -555,64 +555,3 @@ Size after: firmware repeatedly and continually; that'll burn the EEPROM eventually. -# Porting your keyboard to QMK - -If your keyboard is running an Atmega chip (atmega32u4 and others), it's pretty easy to get things setup for compiling your own firmware to flash onto your board. There is a `/util/new_project.sh ` script to help get you started - you can simply pass your keyboard's name into the script, and all of the necessary files will be created. The components of each are described below. - -## `/keyboards//config.h` - -The `USB Device descriptor parameter` block contains parameters are used to uniquely identify your keyboard, but they don't really matter to the machine. - -Your `MATRIX_ROWS` and `MATRIX_COLS` are the numbers of rows and cols in your keyboard matrix - this may be different than the number of actual rows and columns on your keyboard. There are some tricks you can pull to increase the number of keys in a given matrix, but most keyboards are pretty straight-forward. - -The `MATRIX_ROW_PINS` and `MATRIX_COL_PINS` are the pins your MCU uses on each row/column. Your schematic (if you have one) will have this information on it, and the values will vary depending on your setup. This is one of the most important things to double-check in getting your keyboard setup correctly. - -For the `DIODE_DIRECTION`, most hand-wiring guides will instruct you to wire the diodes in the `COL2ROW` position, but it's possible that they are in the other - people coming from EasyAVR often use `ROW2COL`. Nothing will function if this is incorrect. - -`BACKLIGHT_PIN` is the pin that your PWM-controlled backlight (if one exists) is hooked-up to. Currently only B5, B6, and B7 are supported. - -`BACKLIGHT_BREATHING` is a fancier backlight feature that adds breathing/pulsing/fading effects to the backlight. It uses the same timer as the normal backlight. These breathing effects must be called by code in your keymap. - -`BACKLIGHT_LEVELS` is how many levels exist for your backlight - max is 15, and they are computed automatically from this number. - -## `/keyboards//Makefile` - -The values at the top likely won't need to be changed, since most boards use the `atmega32u4` chip. The `BOOTLOADER_SIZE` will need to be adjusted based on your MCU type. It's defaulted to the Teensy, since that's the most common controller. Below is quoted from the `Makefile`. - -``` -# Boot Section Size in *bytes* -# Teensy halfKay 512 -# Teensy++ halfKay 1024 -# Atmel DFU loader 4096 -# LUFA bootloader 4096 -# USBaspLoader 2048 -OPT_DEFS += -DBOOTLOADER_SIZE=512 -``` - -At the bottom of the file, you'll find lots of features to turn on and off - all of these options should be set with `?=` to allow for the keymap overrides. `?=` only assigns if the variable was previously undefined. For the full documenation of these features, see the [Makefile options](#makefile-options). - -## `/keyboards//readme.md` - -This is where you'll describe your keyboard - please write as much as you can about it! Talking about default functionality/features is useful here. Feel free to link to external pages/sites if necessary. Images can be included here as well. This file will be rendered into a webpage at qmk.fm/keyboards//. - -## `/keyboards//.c` - -This is where all of the custom logic for your keyboard goes - you may not need to put anything in this file, since a lot of things are configured automatically. All of the `*_kb()` functions are defined here. If you modify them, remember to keep the calls to `*_user()`, or things in the keymaps might not work. You can read more about the functions [here](#custom-quantum-functions-for-keyboards-and-keymaps) - -## `/keyboards//.h` - -Here is where you can (optionally) define your `KEYMAP` function to remap your matrix into a more readable format. With ortholinear boards, this isn't always necessary, but it can help to accomodate the dead spots on your matrix, where there are keys that take up more than one space (2u, staggering, 6.25u, etc). The example shows the difference between the physical keys, and the matrix design: - -``` -#define KEYMAP( \ - k00, k01, k02, \ - k10, k11 \ -) \ -{ \ - { k00, k01, k02 }, \ - { k10, KC_NO, k11 }, \ -} -``` - -Each of the `kxx` variables needs to be unique, and usually follows the format `k`. You can place `KC_NO` where your dead keys are in your matrix. - From 603e3fd2f69d77aa46d814074e1ac6283e0b8749 Mon Sep 17 00:00:00 2001 From: Erez Zukerman Date: Wed, 22 Feb 2017 19:59:01 -0500 Subject: [PATCH 386/517] Created Modding your keyboard (markdown) --- Modding-your-keyboard.md | 379 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 379 insertions(+) create mode 100644 Modding-your-keyboard.md diff --git a/Modding-your-keyboard.md b/Modding-your-keyboard.md new file mode 100644 index 0000000000..3599b3c536 --- /dev/null +++ b/Modding-your-keyboard.md @@ -0,0 +1,379 @@ + +## Audio output from a speaker + +Your keyboard can make sounds! If you've got a Planck, Preonic, or basically any keyboard that allows access to the C6 port, you can hook up a simple speaker and make it beep. You can use those beeps to indicate layer transitions, modifiers, special keys, or just to play some funky 8bit tunes. + +The audio code lives in [quantum/audio/audio.h](/quantum/audio/audio.h) and in the other files in the audio directory. It's enabled by default on the Planck [stock keymap](/keyboards/planck/keymaps/default/keymap.c). Here are the important bits: + +``` +#include "audio.h" +``` + +Then, lower down the file: + +``` +float tone_startup[][2] = { + ED_NOTE(_E7 ), + E__NOTE(_CS7), + E__NOTE(_E6 ), + E__NOTE(_A6 ), + M__NOTE(_CS7, 20) +}; +``` + +This is how you write a song. Each of these lines is a note, so we have a little ditty composed of five notes here. + +Then, we have this chunk: + +``` +float tone_qwerty[][2] = SONG(QWERTY_SOUND); +float tone_dvorak[][2] = SONG(DVORAK_SOUND); +float tone_colemak[][2] = SONG(COLEMAK_SOUND); +float tone_plover[][2] = SONG(PLOVER_SOUND); +float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND); + +float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); +float goodbye[][2] = SONG(GOODBYE_SOUND); +``` + +Wherein we bind predefined songs (from [quantum/audio/song_list.h](/quantum/audio/song_list.h)) into named variables. This is one optimization that helps save on memory: These songs only take up memory when you reference them in your keymap, because they're essentially all preprocessor directives. + +So now you have something called `tone_plover` for example. How do you make it play the Plover tune, then? If you look further down the keymap, you'll see this: + +``` +PLAY_NOTE_ARRAY(tone_plover, false, 0); // Signature is: Song name, repeat, rest style +``` + +This is inside one of the macros. So when that macro executes, your keyboard plays that particular chime. + +"Rest style" in the method signature above (the last parameter) specifies if there's a rest (a moment of silence) between the notes. + + +## Recording And Playing back Music +* ```Music On``` - Turn music mode on. The default mapping is ```Lower+Upper+C``` +* ```LCTL``` - start a recording +* play some tones +* ```LALT``` - stop recording, stop playing +* ```LGUI``` - play recording +* ```LALT``` - stop playing +* ```Music Off``` - Turn music mode off. The default mapping is ```Lower+Upper+V``` + + +## MIDI functionalty + +This is still a WIP, but check out `quantum/keymap_midi.c` to see what's happening. Enable from the Makefile. + +## 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. + +## RGB Under Glow Mod + +![Planck with RGB Underglow](https://raw.githubusercontent.com/qmk/qmk_firmware/master/keyboards/planck/keymaps/yang/planck-with-rgb-underglow.jpg) + +Here is a quick demo on Youtube (with NPKC KC60) (https://www.youtube.com/watch?v=VKrpPAHlisY). + +For this mod, you need an unused pin wiring to DI of WS2812 strip. After wiring the VCC, GND, and DI, you can enable the underglow in your Makefile. + + RGBLIGHT_ENABLE = yes + +In order to use the underglow animation functions, you need to have `#define RGBLIGHT_ANIMATIONS` in your `config.h`. + +Please add the following options into your config.h, and set them up according your hardware configuration. These settings are for the `F4` pin by default: + + #define RGB_DI_PIN F4 // The pin your RGB strip is wired to + #define RGBLIGHT_ANIMATIONS // Require for fancier stuff (not compatible with audio) + #define RGBLED_NUM 14 // Number of LEDs + #define RGBLIGHT_HUE_STEP 10 + #define RGBLIGHT_SAT_STEP 17 + #define RGBLIGHT_VAL_STEP 17 + +You'll need to edit `RGB_DI_PIN` to the pin you have your `DI` on your RGB strip wired to. + +The firmware supports 5 different light effects, and the color (hue, saturation, brightness) can be customized in most effects. To control the underglow, you need to modify your keymap file to assign those functions to some keys/key combinations. For details, please check this keymap. `keyboards/planck/keymaps/yang/keymap.c` + +### WS2812 Wiring + +![WS2812 Wiring](https://raw.githubusercontent.com/qmk/qmk_firmware/master/keyboards/planck/keymaps/yang/WS2812-wiring.jpg) + +Please note the USB port can only supply a limited amount of power to the keyboard (500mA by standard, however, modern computer and most usb hubs can provide 700+mA.). According to the data of NeoPixel from Adafruit, 30 WS2812 LEDs require a 5V 1A power supply, LEDs used in this mod should not more than 20. + +## PS/2 Mouse Support + +Its possible to hook up a PS/2 mouse (for example touchpads or trackpoints) to your keyboard as a composite device. + +There are three available modes for hooking up PS/2 devices: USART (best), interrupts (better) or busywait (not recommended). + +### Busywait version + +Note: This is not recommended, you may encounter jerky movement or unsent inputs. Please use interrupt or USART version if possible. + +In rules.mk: + +``` +PS2_MOUSE_ENABLE = yes +PS2_USE_BUSYWAIT = yes +``` + +In your keyboard config.h: + +``` +#ifdef PS2_USE_BUSYWAIT +# define PS2_CLOCK_PORT PORTD +# define PS2_CLOCK_PIN PIND +# define PS2_CLOCK_DDR DDRD +# define PS2_CLOCK_BIT 1 +# define PS2_DATA_PORT PORTD +# define PS2_DATA_PIN PIND +# define PS2_DATA_DDR DDRD +# define PS2_DATA_BIT 2 +#endif +``` + +### Interrupt version + +The following example uses D2 for clock and D5 for data. You can use any INT or PCINT pin for clock, and any pin for data. + +In rules.mk: + +``` +PS2_MOUSE_ENABLE = yes +PS2_USE_INT = yes +``` + +In your keyboard config.h: + +``` +#ifdef PS2_USE_INT +#define PS2_CLOCK_PORT PORTD +#define PS2_CLOCK_PIN PIND +#define PS2_CLOCK_DDR DDRD +#define PS2_CLOCK_BIT 2 +#define PS2_DATA_PORT PORTD +#define PS2_DATA_PIN PIND +#define PS2_DATA_DDR DDRD +#define PS2_DATA_BIT 5 + +#define PS2_INT_INIT() do { \ + EICRA |= ((1< Date: Wed, 22 Feb 2017 19:59:27 -0500 Subject: [PATCH 387/517] Moves Modding Your Keyboard to its own page --- Home.md | 381 -------------------------------------------------------- 1 file changed, 381 deletions(-) diff --git a/Home.md b/Home.md index b90c1d12cf..c2e0ccdf6b 100644 --- a/Home.md +++ b/Home.md @@ -174,384 +174,3 @@ This gets called whenever there is a state change on your host LEDs (eg caps loc ``` and can be tested against the `usb_led` with a conditional like `if (usb_led & (1< Date: Wed, 22 Feb 2017 20:03:51 -0500 Subject: [PATCH 388/517] Updated _Sidebar (markdown) --- _Sidebar.md | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/_Sidebar.md b/_Sidebar.md index 318dee1cff..8d77ba44f4 100644 --- a/_Sidebar.md +++ b/_Sidebar.md @@ -1,12 +1,18 @@ * [Wiki Home](wiki/) -* [QMK Overview](QMK-Overview) -* [Build Environment Setup](Build-Environment-Setup) -* [FAQ](FAQ) - * [FAQ Build](FAQ-Build) - * [FAQ Keymap](FAQ-Keymap) -* [Keymap](Keymap) +* Getting started + * [QMK Overview](QMK-Overview) + * [Build Environment Setup](Build-Environment-Setup) +* [Overview for keymap creators](Keymap) * [Keycodes](Keycodes) * [Leader Key](Leader-Key) * [Macros](Macros) * [Space Cadet](Space-Cadet-Shift) * [Tap Dance](Tap-Dance) + * [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) +* [General FAQ](FAQ) + + From 3cefa5cc820f163ec98f98979fa6aea85dc8ede8 Mon Sep 17 00:00:00 2001 From: Erez Zukerman Date: Wed, 22 Feb 2017 21:32:06 -0500 Subject: [PATCH 389/517] Updated _Sidebar (markdown) --- _Sidebar.md | 1 + 1 file changed, 1 insertion(+) diff --git a/_Sidebar.md b/_Sidebar.md index 8d77ba44f4..42313acf2f 100644 --- a/_Sidebar.md +++ b/_Sidebar.md @@ -4,6 +4,7 @@ * [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) From 0e54e9d528ec7e5845c7506bd40cb292a1b7088e Mon Sep 17 00:00:00 2001 From: Erez Zukerman Date: Wed, 22 Feb 2017 21:33:36 -0500 Subject: [PATCH 390/517] Documents TT --- Key-Functions.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Key-Functions.md b/Key-Functions.md index 9c63f673b1..9b2729cd09 100644 --- a/Key-Functions.md +++ b/Key-Functions.md @@ -18,6 +18,8 @@ Instead of using `FNx` when defining `ACTION_*` functions, you can use `F(x)` - `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). + ### Fun with modifier keys From 4d13a8063d7ab4f1d8108211fd6e98ce95371ab5 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Wed, 22 Feb 2017 22:06:37 -0500 Subject: [PATCH 391/517] Updated _Sidebar (markdown) --- _Sidebar.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_Sidebar.md b/_Sidebar.md index 42313acf2f..d1112ccb3f 100644 --- a/_Sidebar.md +++ b/_Sidebar.md @@ -1,4 +1,4 @@ -* [Wiki Home](wiki/) +* [Wiki Home](wiki) * Getting started * [QMK Overview](QMK-Overview) * [Build Environment Setup](Build-Environment-Setup) From 74518260b8e95868d68a635d7bdb6d87a863514e Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Wed, 22 Feb 2017 22:06:56 -0500 Subject: [PATCH 392/517] Updated _Sidebar (markdown) --- _Sidebar.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_Sidebar.md b/_Sidebar.md index d1112ccb3f..1e0feaa89b 100644 --- a/_Sidebar.md +++ b/_Sidebar.md @@ -1,4 +1,4 @@ -* [Wiki Home](wiki) +* [Wiki Home](/) * Getting started * [QMK Overview](QMK-Overview) * [Build Environment Setup](Build-Environment-Setup) From 873fee80385845a93ebc25273c080475758b53e9 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Wed, 22 Feb 2017 22:07:12 -0500 Subject: [PATCH 393/517] Updated _Sidebar (markdown) --- _Sidebar.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_Sidebar.md b/_Sidebar.md index 1e0feaa89b..095105b0f6 100644 --- a/_Sidebar.md +++ b/_Sidebar.md @@ -1,4 +1,4 @@ -* [Wiki Home](/) +* [Wiki Home](/qmk/qmk_firmware/wiki) * Getting started * [QMK Overview](QMK-Overview) * [Build Environment Setup](Build-Environment-Setup) From 99fc4a330ecfd269c6eb42a54ed8dda44910b296 Mon Sep 17 00:00:00 2001 From: William Forma Date: Sat, 25 Feb 2017 07:03:10 -0700 Subject: [PATCH 394/517] Updated License Clarification (markdown) --- License-Clarification.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/License-Clarification.md b/License-Clarification.md index d7fae8faa5..9d7c4fefbd 100644 --- a/License-Clarification.md +++ b/License-Clarification.md @@ -26,7 +26,7 @@ kuel | quantum/keymap_extras/keymap_unicode_cyrillic.h
quantum/keymap_extras/ @plgruener | quantum/keymap_extras/keymap_german.h
quantum/keymap_extras/keymap_neo2.h | 2017 Jan 30 | @priyadi | quantum/quantum.c
quantum/process_keycode/process_unicode.c
quantum/process_keycode/process_unicode.h | 2017 Jan 31 | @pvinis | quantum/quantum.c
quantum/quantum.h
quantum/process_keycode/process_tap_dance.c
quantum/process_keycode/process_tap_dance.h | 2017 Jan 29 | -@Smilliam | quantum/quantum.c | | +@Smilliam | quantum/quantum.c | 2017 Feb 25 | @sperochon | quantum/keymap_extras/keymap_french_osx.h | 2017 Jan 30 | stephan . bosebeck at holidayinsider.com | quantum/keymap_extras/keymap_german_osx.h | 2017 Feb 15 | @TerryMathews | quantum/quantum.c | 2017 Jan 29 | From 71855087cf070d232a32a1241f929d71b78683e7 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Mon, 27 Feb 2017 10:34:21 -0800 Subject: [PATCH 395/517] Removing eltang as he doesn't show up in the current git blame. --- License-Clarification.md | 1 - 1 file changed, 1 deletion(-) diff --git a/License-Clarification.md b/License-Clarification.md index 9d7c4fefbd..cf8fd63c09 100644 --- a/License-Clarification.md +++ b/License-Clarification.md @@ -12,7 +12,6 @@ Username | Files | Sign Off Date | @algernon | quantum/quantum.c
quantum/quantum.h
quantum/process_keycode/process_tap_dance.c
quantum/process_keycode/process_tap_dance.h
quantum/process_keycode/process_unicode.c
quantum/process_keycode/process_unicode.h | 2017 Jan 29 | @cdlm | quantum/template/template.c
quantum/template/template.h | 2017 Feb 03 | @DidierLoiseau | quantum/keymap_extras/keymap_canadian_multilingual.h
quantum/keymap_extras/keymap_bepo.h |2017 Jan 29 | -@eltang | quantum/config_common.h
quantum/matrix.c
quantum/quantum.c
quantum/quantum.h
quantum/rgblight.c
quantum/rgblight.h
quantum/template/config.h | | @ezuk | quantum/matrix.c
quantum/quantum.c
quantum/quantum.h
quantum/quantum_keycodes.h
quantum/rgblight.c
quantum/rgblight.h
quantum/keymap_extras/keymap_colemak.h
quantum/keymap_extras/keymap_nordic.h | 2017 Jan 31 | @fredizzimo | quantum/config_common.h
quantum/keycode_config.h
quantum/keymap.h
quantum/keymap_common.c
quantum/keymap_common.c
quantum/matrix.c
quantum/quantum.h
quantum/rgblight.c
quantum/rgblight.h
quantum/api/api_sysex.c | 2017 Jan 29 | @h-youhei | quantum/keymap_extras/keymap_jp.h | 2017 Jan 28 | From 82d9abf9f3ba820e07382abf0725013387c3a380 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Tue, 28 Feb 2017 21:44:10 -0800 Subject: [PATCH 396/517] Updated License Clarification (markdown) --- License-Clarification.md | 1 + 1 file changed, 1 insertion(+) diff --git a/License-Clarification.md b/License-Clarification.md index cf8fd63c09..cf30619b91 100644 --- a/License-Clarification.md +++ b/License-Clarification.md @@ -12,6 +12,7 @@ Username | Files | Sign Off Date | @algernon | quantum/quantum.c
quantum/quantum.h
quantum/process_keycode/process_tap_dance.c
quantum/process_keycode/process_tap_dance.h
quantum/process_keycode/process_unicode.c
quantum/process_keycode/process_unicode.h | 2017 Jan 29 | @cdlm | quantum/template/template.c
quantum/template/template.h | 2017 Feb 03 | @DidierLoiseau | quantum/keymap_extras/keymap_canadian_multilingual.h
quantum/keymap_extras/keymap_bepo.h |2017 Jan 29 | +@eltang | quantum/config_common.h
quantum/matrix.c
quantum/quantum.c
quantum/quantum.h
quantum/rgblight.c
quantum/rgblight.h
quantum/template/config.h | 2017 Feb 28 | @ezuk | quantum/matrix.c
quantum/quantum.c
quantum/quantum.h
quantum/quantum_keycodes.h
quantum/rgblight.c
quantum/rgblight.h
quantum/keymap_extras/keymap_colemak.h
quantum/keymap_extras/keymap_nordic.h | 2017 Jan 31 | @fredizzimo | quantum/config_common.h
quantum/keycode_config.h
quantum/keymap.h
quantum/keymap_common.c
quantum/keymap_common.c
quantum/matrix.c
quantum/quantum.h
quantum/rgblight.c
quantum/rgblight.h
quantum/api/api_sysex.c | 2017 Jan 29 | @h-youhei | quantum/keymap_extras/keymap_jp.h | 2017 Jan 28 | From 3c11a8d241b27eaab13e97319becb76867965c33 Mon Sep 17 00:00:00 2001 From: Benny Powers Date: Fri, 17 Mar 2017 12:44:29 +0200 Subject: [PATCH 397/517] Added missing codes: KC_MEDIA_FAST_FORWARD and KC_MEDIA_REWIND --- Keycodes.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Keycodes.md b/Keycodes.md index 2ea6b315d4..c5cc322241 100644 --- a/Keycodes.md +++ b/Keycodes.md @@ -116,6 +116,8 @@ The source of truth for these codes is the [keycode.txt](https://github.com/qmk/ |KC_AUDIO_VOL_DOWN|KC_VOLD|| |KC_MEDIA_NEXT_TRACK|KC_MNXT|| |KC_MEDIA_PREV_TRACK|KC_MPRV|| +|KC_MEDIA_FAST_FORWARD|KC_MFFD|| +|KC_MEDIA_REWIND|KC_MRWD|| |KC_MEDIA_STOP|KC_MSTP|| |KC_MEDIA_PLAY_PAUSE|KC_MPLY|| |KC_MEDIA_SELECT|KC_MSEL|| From 76b9a2662a75d65a47fe4ba6cb24bcad2c6acfb6 Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Sun, 19 Mar 2017 14:00:50 +0100 Subject: [PATCH 398/517] `MT` does work with right-hand side modifiers. See #1166. --- Key-Functions.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Key-Functions.md b/Key-Functions.md index 9b2729cd09..a5db223cce 100644 --- a/Key-Functions.md +++ b/Key-Functions.md @@ -67,16 +67,20 @@ The following shortcuts automatically add `LSFT()` to keycodes to get commonly u `MT(mod, kc)` - is *mod* (modifier key - MOD_LCTL, MOD_LSFT) when held, and *kc* when tapped. In other words, you can have a key that sends Esc (or the letter O or whatever) when you tap it, but works as a Control key or a Shift key when you hold it down. -These are the values you can use for the `mod` in `MT()` and `OSM()` (right-hand modifiers are not available for `MT()`): +These are the values you can use for the `mod` in `MT()` and `OSM()`: * MOD_LCTL * MOD_LSFT * MOD_LALT * MOD_LGUI + * MOD_RCTL + * MOD_RSFT + * MOD_RALT + * MOD_RGUI * 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. +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. We've added shortcuts to make common modifier/tap (mod-tap) mappings more compact: From 2407b27243896c3a3f5e5ae03600b71ea0e8347e Mon Sep 17 00:00:00 2001 From: agaric Date: Sat, 25 Mar 2017 16:22:08 +0900 Subject: [PATCH 399/517] fix link for VAGRANT_GUIDE file --- Build-Environment-Setup.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Build-Environment-Setup.md b/Build-Environment-Setup.md index 5f8086554b..e8e3cd4685 100644 --- a/Build-Environment-Setup.md +++ b/Build-Environment-Setup.md @@ -103,7 +103,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](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 file](../../blob/master/doc/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. From 004a92d9a6c0d7613d6a88d162de07dadd5c4ffc Mon Sep 17 00:00:00 2001 From: Erez Zukerman Date: Mon, 27 Mar 2017 09:51:57 +0300 Subject: [PATCH 400/517] Updated _Sidebar (markdown) --- _Sidebar.md | 1 + 1 file changed, 1 insertion(+) diff --git a/_Sidebar.md b/_Sidebar.md index 095105b0f6..548571ff84 100644 --- a/_Sidebar.md +++ b/_Sidebar.md @@ -9,6 +9,7 @@ * [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 From 18bc47ebabe28667865c9eb8e1561144ba2e9b00 Mon Sep 17 00:00:00 2001 From: Erez Zukerman Date: Mon, 27 Mar 2017 09:53:27 +0300 Subject: [PATCH 401/517] Created Mouse keys (markdown) --- Mouse-keys.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 Mouse-keys.md diff --git a/Mouse-keys.md b/Mouse-keys.md new file mode 100644 index 0000000000..64b00633ff --- /dev/null +++ b/Mouse-keys.md @@ -0,0 +1,16 @@ +# Can I increase the speed of the mouse keys? + +**Q:** The default speed for controlling the mouse with the keyboard is slow. I've tried increasing the mouse's sensitivity at work using xset m and it worked, although sometimes it changes by itself for some reason. At home, on Arch Linux, this does not change ti. I've looked through the forums and resolved to use libinput using xinput but using that I only manage to change the speed of the mouse using the actual mouse. The speed of the mouse using the keyboard controls remained unchanged. +Is there perhaps something I can input in the keymap.c to change the sensitivity? Or some other surefire way of increasing the speed? +Thanks! + +**A:** In your keymap's config.h: + +``` +#define MOUSEKEY_INTERVAL 20 +#define MOUSEKEY_DELAY 0 +#define MOUSEKEY_TIME_TO_MAX 60 +#define MOUSEKEY_MAX_SPEED 7 +#define MOUSEKEY_WHEEL_DELAY 0 +Tweak away. A lower interval or higher max speed will effectively make the mouse move faster. Time-to-max controls acceleration. +``` \ No newline at end of file From 0605107f13e788344887464b86754d8c24783231 Mon Sep 17 00:00:00 2001 From: Erez Zukerman Date: Mon, 27 Mar 2017 09:54:33 +0300 Subject: [PATCH 402/517] Updated Mouse keys (markdown) --- Mouse-keys.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Mouse-keys.md b/Mouse-keys.md index 64b00633ff..4524457e94 100644 --- a/Mouse-keys.md +++ b/Mouse-keys.md @@ -12,5 +12,6 @@ Thanks! #define MOUSEKEY_TIME_TO_MAX 60 #define MOUSEKEY_MAX_SPEED 7 #define MOUSEKEY_WHEEL_DELAY 0 -Tweak away. A lower interval or higher max speed will effectively make the mouse move faster. Time-to-max controls acceleration. -``` \ No newline at end of file +``` + +Tweak away. A lower interval or higher max speed will effectively make the mouse move faster. Time-to-max controls acceleration. (See [this Reddit thread for the original discussion](https://www.reddit.com/r/ErgoDoxEZ/comments/61fwr2/a_reliable_way_to_increase_the_speed_of_the_mouse/) \ No newline at end of file From 3c3388d7f64837b29fcab35f638af6b13ccdf752 Mon Sep 17 00:00:00 2001 From: Erez Zukerman Date: Mon, 27 Mar 2017 09:54:49 +0300 Subject: [PATCH 403/517] Updated Mouse keys (markdown) --- Mouse-keys.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Mouse-keys.md b/Mouse-keys.md index 4524457e94..16e920fdbd 100644 --- a/Mouse-keys.md +++ b/Mouse-keys.md @@ -14,4 +14,4 @@ Thanks! #define MOUSEKEY_WHEEL_DELAY 0 ``` -Tweak away. A lower interval or higher max speed will effectively make the mouse move faster. Time-to-max controls acceleration. (See [this Reddit thread for the original discussion](https://www.reddit.com/r/ErgoDoxEZ/comments/61fwr2/a_reliable_way_to_increase_the_speed_of_the_mouse/) \ No newline at end of file +Tweak away. A lower interval or higher max speed will effectively make the mouse move faster. Time-to-max controls acceleration. (See [this Reddit thread for the original discussion](https://www.reddit.com/r/ErgoDoxEZ/comments/61fwr2/a_reliable_way_to_increase_the_speed_of_the_mouse/)). \ No newline at end of file From c3f7df992d436161dfe7c3f06f8f9a26c02521d5 Mon Sep 17 00:00:00 2001 From: Osamu Aoki Date: Wed, 29 Mar 2017 23:38:06 +0900 Subject: [PATCH 404/517] Reminding TMK/QMK difference here should be good idea. --- ...:--github.com-qmk-qmk_firmware-wiki-Keymap-_history.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) rename Keymap.md => Keymaphttps:--github.com-qmk-qmk_firmware-wiki-Keymap-_history.md (87%) diff --git a/Keymap.md b/Keymaphttps:--github.com-qmk-qmk_firmware-wiki-Keymap-_history.md similarity index 87% rename from Keymap.md rename to Keymaphttps:--github.com-qmk-qmk_firmware-wiki-Keymap-_history.md index 9f519d5e6a..3353c30c25 100644 --- a/Keymap.md +++ b/Keymaphttps:--github.com-qmk-qmk_firmware-wiki-Keymap-_history.md @@ -42,6 +42,10 @@ The main part of this file is the `keymaps[]` definition. This is where you list After this you'll find a list of KEYMAP() macros. A KEYMAP() is simply a list of keys to define a single layer. Typically you'll have one or more "base layers" (such as QWERTY, Dvorak, or Colemak) and then you'll layer on top of that one or more "function" layers. Due to the way layers are processed you can't overlay a "lower" layer on top of a "higher" layer. +`keymaps[][MATRIX_ROWS][MATRIX_COLS]` in QMK holds the 16 bit action code (sometimes referred as the quantum keycode) in it. For the keycode representing typical keys, its high byte is 0 and its low byte is the USB HID usage ID for keyboard. + +> TMK from which QMK was forked uses `const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS]` instead and holds the 8 bit keycode. Some keycode values are reserved to induce execution of certain action codes via the `fn_actions[]` array. + #### Base Layer Here is an example of the Clueboard's base layer: @@ -92,6 +96,8 @@ We define the `fn_actions[]` array to point to custom functions. `F(N)` in a key In this case we've instructed QMK to call the `ACTION_FUNCTION` callback, which we will define in the next section. +> This `fn_actions[]` interface is mostly for backward compatibility. In QMK, you don't need to use `fn_actions[]`. You can directly `ACTION_FUNCTION(N)` or any other action code value itself in `keymaps[][MATRIX_ROWS][MATRIX_COLS]`. N in `F(N)` can only be 0 to 31. Use of the action code directly in `keymaps` unlock this limitation. + #### `action_function()` To actually handle the keypress event we define an `action_function()`. This function will be called when the key is pressed, and then again when the key is released. We have to handle both situations within our code, as well as determining whether to send/release `KC_ESC` or `KC_GRAVE`. @@ -134,7 +140,7 @@ To actually handle the keypress event we define an `action_function()`. This fun This should have given you a basic overview for creating your own keymap. For more details see the following resources: -* https://github.com/qmk/qmk_firmware/blob/master/doc/keymap.md +* https://github.com/qmk/qmk_firmware/blob/master/doc/keymap.md (If you see `static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS]`, it is still the TMK code example code.) * https://github.com/qmk/qmk_firmware/wiki/Keycodes * https://github.com/qmk/qmk_firmware/wiki/FAQ-Keymap * https://github.com/qmk/qmk_firmware/wiki/Keymap-examples From 258e2afbbfc69573eb59af636ac74501d67abed3 Mon Sep 17 00:00:00 2001 From: Osamu Aoki Date: Wed, 29 Mar 2017 23:41:27 +0900 Subject: [PATCH 405/517] Typo fixes --- ...phttps:--github.com-qmk-qmk_firmware-wiki-Keymap-_history.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Keymaphttps:--github.com-qmk-qmk_firmware-wiki-Keymap-_history.md b/Keymaphttps:--github.com-qmk-qmk_firmware-wiki-Keymap-_history.md index 3353c30c25..593e245aeb 100644 --- a/Keymaphttps:--github.com-qmk-qmk_firmware-wiki-Keymap-_history.md +++ b/Keymaphttps:--github.com-qmk-qmk_firmware-wiki-Keymap-_history.md @@ -96,7 +96,7 @@ We define the `fn_actions[]` array to point to custom functions. `F(N)` in a key In this case we've instructed QMK to call the `ACTION_FUNCTION` callback, which we will define in the next section. -> This `fn_actions[]` interface is mostly for backward compatibility. In QMK, you don't need to use `fn_actions[]`. You can directly `ACTION_FUNCTION(N)` or any other action code value itself in `keymaps[][MATRIX_ROWS][MATRIX_COLS]`. N in `F(N)` can only be 0 to 31. Use of the action code directly in `keymaps` unlock this limitation. +> This `fn_actions[]` interface is mostly for backward compatibility. In QMK, you don't need to use `fn_actions[]`. You can directly use `ACTION_FUNCTION(N)` or any other action code value itself normally generated by the macro in `keymaps[][MATRIX_ROWS][MATRIX_COLS]`. N in `F(N)` can only be 0 to 31. Use of the action code directly in `keymaps` unlocks this limitation. #### `action_function()` From 923d32a0eff175fac8d67574456ad9e1bd2941eb Mon Sep 17 00:00:00 2001 From: Erez Zukerman Date: Thu, 30 Mar 2017 09:14:22 +0300 Subject: [PATCH 406/517] Updated Key Functions (markdown) --- Key-Functions.md | 1 + 1 file changed, 1 insertion(+) diff --git a/Key-Functions.md b/Key-Functions.md index a5db223cce..6779982c38 100644 --- a/Key-Functions.md +++ b/Key-Functions.md @@ -87,6 +87,7 @@ We've added shortcuts to make common modifier/tap (mod-tap) mappings more compac * `CTL_T(kc)` - is LCTL when held and *kc* when tapped * `SFT_T(kc)` - is LSFT when held and *kc* when tapped * `ALT_T(kc)` - is LALT when held and *kc* when tapped + * `ALGR_T(kc)` - is AltGr when held and *kc* when tapped * `GUI_T(kc)` - is LGUI when held and *kc* when tapped * `ALL_T(kc)` - is Hyper (all mods) when held and *kc* when tapped. To read more about what you can do with a Hyper key, see [this blog post by Brett Terpstra](http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/) * `LCAG_T(kc)` - is CtrlAltGui when held and *kc* when tapped From 32c511c9182e3d236505b4f8a68d77fa9b635e80 Mon Sep 17 00:00:00 2001 From: Osamu Aoki Date: Thu, 30 Mar 2017 21:51:37 +0900 Subject: [PATCH 407/517] Rename back to right name --- ...thub.com-qmk-qmk_firmware-wiki-Keymap-_history.md => Keymap.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename Keymaphttps:--github.com-qmk-qmk_firmware-wiki-Keymap-_history.md => Keymap.md (100%) diff --git a/Keymaphttps:--github.com-qmk-qmk_firmware-wiki-Keymap-_history.md b/Keymap.md similarity index 100% rename from Keymaphttps:--github.com-qmk-qmk_firmware-wiki-Keymap-_history.md rename to Keymap.md From 5fb058eb34cd933d36a193263c8ecf09d491a1e8 Mon Sep 17 00:00:00 2001 From: Osamu Aoki Date: Thu, 30 Mar 2017 23:49:07 +0900 Subject: [PATCH 408/517] Updated Home (markdown) --- Home.md | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/Home.md b/Home.md index c2e0ccdf6b..cc7b5463af 100644 --- a/Home.md +++ b/Home.md @@ -2,6 +2,15 @@ You have found the QMK Firmware documentation site. This is a keyboard firmware based on the [tmk_keyboard firmware](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. +Understanding the essential changes made on the [tmk_keyboard firmware](http://github.com/tmk/tmk_keyboard) should help you understand the QMK Firmware. + +| Firmware |TMK |QMK | +|------------------------------|-----------------------|-------------------------| +| Maintainer |hasu (@tmk) |Jack Humbert et al. | +| Build path customization | `TMK_DIR = ...` | `include .../Makefile` | +| `keymaps` array data | 3D array of `uint8_t` holding **keycode** | 3D array of `uint16_t` holding **action code** | +| `fn_actions` array data | 1D array of `uint16_t` holding **action code** | 1D array of `uint16_t` holding **action code** | + # Getting started Before you are able to compile, you'll need to install an environment for AVR development. You'll find the instructions for any OS below. If you find another/better way to set things up from scratch, please consider [making a pull request](https://github.com/qmk/qmk_firmware/pulls) with your changes! @@ -9,13 +18,27 @@ Before you are able to compile, you'll need to install an environment for AVR de * [Build Environment Setup](Build-Environment-Setup) * [QMK Overview](QMK-Overview) -# Going beyond the keycodes +# Configuring QMK Firmware + +The QMK Firmware can be configured via the `keymaps` array data. + +For simply generating a [basic keycode](https://github.com/qmk/qmk_firmware/wiki/Keycodes), you add it as an element of your `keymaps` array data. + +For more complicated actions, you add the corresponding **action code** directly as an element of your `keymaps` array data. + +The **action code** is a 16 bit data and organized carefully to represent common operations with the combination of C macros. It is sometimes called quantum keycode in the QMK source comment. + +For example, the keycode `KC_8` as an element of your `keymaps` array data is for generating keystroke of "8". The action code `SHFT(KC_8)` an element of your `keymaps` array data is for generating key stroke of "*" which is "8" key shifted. + +Please note only up to 32 **action codes** were usable in `fn_actions` array data and accessed via special keycodes (`KC_FN0` to `KC_FN31`) in `keymaps` array data in tmk. + +For more details of the `keymaps` array, see [Keymap Overview](Keymap) page. -Aside from the [basic keycodes](https://github.com/qmk/qmk_firmware/wiki/Keycodes), your keymap can include shortcuts to common operations. +## C macro functions for action code -## Quick aliases to common actions +Basic C macro functions is documented in the [Key Functions](Key-Functions) page. -Your keymap can include shortcuts to common operations (called "function actions" in tmk). To learn more about them check out the [Key Functions](Key-Functions) page. +There are several new standardized support for common operations with new action codes as follows. ## Space Cadet Shift: The future, built in From 97d6184ed02e8b0d4fce13e4fc472703c127045a Mon Sep 17 00:00:00 2001 From: Osamu Aoki Date: Thu, 30 Mar 2017 23:57:59 +0900 Subject: [PATCH 409/517] Updated Keymap (markdown) --- Keymap.md | 76 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 75 insertions(+), 1 deletion(-) diff --git a/Keymap.md b/Keymap.md index 593e245aeb..53b17f4019 100644 --- a/Keymap.md +++ b/Keymap.md @@ -2,6 +2,81 @@ QMK keymaps are defined inside a C source file. The data structure is an array of arrays. The outer array is a list of layer arrays while the inner layer array is a list of keys. Most keyboards define a `KEYMAP()` macro to help you create this array of arrays. + +## Keymap and layers +In QMK, **`const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS]`** holds multiple **layers** of keymap information in **16 bit** data holding the **action code**. You can define **32 layers** at most. + +For trivial key definitions, the higher 8 bits of the **action code** are all 0 and the lower 8 bits holds the USB HID usage code generated by the key as **keycode**. + +Respective layers can be validated simultaneously. Layers are indexed with 0 to 31 and higher layer has precedence. + + Keymap: 32 Layers Layer: action code matrix + ----------------- --------------------- + stack of layers array_of_action_code[row][column] + ____________ precedence _______________________ + / / | high / ESC / F1 / F2 / F3 .... + 31 /___________// | /-----/-----/-----/----- + 30 /___________// | / TAB / Q / W / E .... + 29 /___________/ | /-----/-----/-----/----- + : _:_:_:_:_:__ | : /LCtrl/ A / S / D .... + : / : : : : : / | : / : : : : + 2 /___________// | 2 `-------------------------- + 1 /___________// | 1 `-------------------------- + 0 /___________/ V low 0 `-------------------------- + + +Sometimes, the action code stored in keymap may be referred as keycode in some documents due to the TMK history. + +### Keymap layer status +Keymap layer has its state in two 32 bit parameters: + +* **`default_layer_state`** indicates a base keymap layer(0-31) which is always valid and to be referred. +* **`layer_state`** () has current on/off status of the layer on its each bit. + +Keymap has its state in two parameter **`default_layer`** indicates a base keymap layer(0-31) which is always valid and to be referred, **`keymap_stat`** is 16bit variable which has current on/off status of layers on its each bit. +Keymap layer '0' is usually `default_layer` and which is the only valid layer and other layers is initially off after boot up firmware, though, you can configured them in `config.h`. +To change `default_layer` will be useful when you switch key layout completely, say you want Colmak instead of Qwerty. + + Initial state of Keymap Change base layout + ----------------------- ------------------ + + 31 31 + 30 30 + 29 29 + : : + : : ____________ + 2 ____________ 2 / / + 1 / / ,->1 /___________/ + ,->0 /___________/ | 0 + | | + `--- default_layer = 0 `--- default_layer = 1 + layer_state = 0x00000001 layer_state = 0x00000002 + +On the other hand, you shall change `layer_state` to overlay base layer with some layers for feature such as navigation keys, function key(F1-F12), media keys or special actions. + + Overlay feature layer + --------------------- bit|status + ____________ ---+------ + 31 / / 31 | 0 + 30 /___________// -----> 30 | 1 + 29 /___________/ -----> 29 | 1 + : : | : + : ____________ : | : + 2 / / 2 | 0 + ,->1 /___________/ -----> 1 | 1 + | 0 0 | 0 + | + + `--- default_layer = 1 | + layer_state = 0x60000002 <-' + + + +### Layer Precedence and Transparency +Note that ***higher layer has higher priority on stack of layers***, namely firmware falls down from top layer to bottom to look up keycode. Once it spots keycode other than **`KC_TRNS`**(transparent) on a layer it stops searching and lower layers aren't referred. + +You can place `KC_TRANS` on overlay layer changes just part of layout to fall back on lower or base layer. +Key with `KC_TRANS` (`KC_TRNS` and `_______` are the alias) doesn't has its own keycode and refers to lower valid layers for keycode, instead. + ## Anatomy Of A `keymap.c` For this example we will walk through the [default Clueboard keymap](https://github.com/qmk/qmk_firmware/blob/master/keyboards/clueboard/keymaps/default/keymap.c). You'll find it helpful to open that file in another browser window so you can look at everything in context. @@ -140,7 +215,6 @@ To actually handle the keypress event we define an `action_function()`. This fun This should have given you a basic overview for creating your own keymap. For more details see the following resources: -* https://github.com/qmk/qmk_firmware/blob/master/doc/keymap.md (If you see `static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS]`, it is still the TMK code example code.) * https://github.com/qmk/qmk_firmware/wiki/Keycodes * https://github.com/qmk/qmk_firmware/wiki/FAQ-Keymap * https://github.com/qmk/qmk_firmware/wiki/Keymap-examples From 3627a50e6362bef973cc9b96e2f4a4773722a609 Mon Sep 17 00:00:00 2001 From: Osamu Aoki Date: Fri, 31 Mar 2017 00:04:21 +0900 Subject: [PATCH 410/517] Updated Home (markdown) --- Home.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Home.md b/Home.md index cc7b5463af..bcf85eaf4f 100644 --- a/Home.md +++ b/Home.md @@ -34,9 +34,11 @@ Please note only up to 32 **action codes** were usable in `fn_actions` array dat For more details of the `keymaps` array, see [Keymap Overview](Keymap) page. -## C macro functions for action code +## C macros for action code -Basic C macro functions is documented in the [Key Functions](Key-Functions) page. +Basic "C macros" are documented in the [Key Functions](Key-Functions) page. + +> The keyboard [macros](Macros) are completely different concept from the C macros for action code. Please don't get confused. There are several new standardized support for common operations with new action codes as follows. From 1a675efc4fce9c4fd2f5dd0b900d81bae1c22a3d Mon Sep 17 00:00:00 2001 From: Osamu Aoki Date: Fri, 31 Mar 2017 00:25:12 +0900 Subject: [PATCH 411/517] Updated Keycodes (markdown) --- Keycodes.md | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/Keycodes.md b/Keycodes.md index c5cc322241..bfb7a060ec 100644 --- a/Keycodes.md +++ b/Keycodes.md @@ -1,11 +1,21 @@ # Overview -When defining a [keymap](https://github.com/qmk/qmk_firmware/blob/master/doc/keymap.md) each key needs a valid key definition. This page documents the symbols that correspond to keyboard scan codes that are available to you in QMK. They can be used by themselves or in combination with one of the [many functions available](https://github.com/qmk/qmk_firmware/wiki#going-beyond-the-keycodes) to customize your board. +When defining a [keymap](https://github.com/qmk/qmk_firmware/blob/master/doc/keymap.md) each key needs a valid key definition. -The source of truth for these codes is the [keycode.txt](https://github.com/qmk/qmk_firmware/blob/master/doc/keycode.txt) file in the qmk documentation. +This page documents the symbols that correspond to keycodes that are available to you in QMK. + +To customize your board, they can be used by themselves or as **action codes** in combination with one of the [many C macros](https://github.com/qmk/qmk_firmware/wiki#c-macros-for-action-code). + +The source of truth for these codes is [tmk_core/common/keycode.h](https://github.com/qmk/qmk_firmware/blob/master/tmk_core/common/keycode.h) file in the qmk source code. # The Keycodes +Keycodes in QMK are based on [HID Usage Keyboard/Keypad Page(0x07)](http://www.usb.org/developers/hidpage/Hut1_12v2.pdf) with following exceptions: + +* `KC_NO` = 0 for no action +* `KC_TRNS` = 1 for layer transparency +* internal special keycodes in the `0xA5-DF` range (tmk heritage). + ## Letters and Numbers |KC_1|KC_2|KC_3|KC_4|KC_5|KC_6|KC_7|KC_8| From 46977da4177450bad4f807e3bb36aa59c5c6079f Mon Sep 17 00:00:00 2001 From: Osamu Aoki Date: Fri, 31 Mar 2017 00:31:28 +0900 Subject: [PATCH 412/517] Updated Home (markdown) --- Home.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Home.md b/Home.md index bcf85eaf4f..c1cac89204 100644 --- a/Home.md +++ b/Home.md @@ -36,7 +36,7 @@ For more details of the `keymaps` array, see [Keymap Overview](Keymap) page. ## C macros for action code -Basic "C macros" are documented in the [Key Functions](Key-Functions) page. +Basic "C macros" for layer switching are documented in the [Key Functions](Key-Functions) page. > The keyboard [macros](Macros) are completely different concept from the C macros for action code. Please don't get confused. From f39bad2a7dd5d57e4a80dd15dec21826ef7a2a67 Mon Sep 17 00:00:00 2001 From: Osamu Aoki Date: Fri, 31 Mar 2017 00:35:50 +0900 Subject: [PATCH 413/517] Updated Key Functions (markdown) --- Key-Functions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Key-Functions.md b/Key-Functions.md index 6779982c38..81fcc15cee 100644 --- a/Key-Functions.md +++ b/Key-Functions.md @@ -2,7 +2,7 @@ Your keymap can include shortcuts to common operations (called "function actions" in tmk). -These functions work the same way that their `ACTION_*` functions do - they're just quick aliases. To dig into all of the tmk `ACTION_*` functions, please see the [TMK documentation](https://github.com/qmk/qmk_firmware/blob/master/doc/keymap.md#2-action). +These functions work the same way that their `ACTION_*` functions do - they're just quick aliases. To dig into all of the tmk `ACTION_*` functions, please see the [C macros for action code](https://github.com/qmk/qmk_firmware/wiki#c-macros-for-action-code). Instead of using `FNx` when defining `ACTION_*` functions, you can use `F(x)` - the benefit here is being able to use more than 32 function actions (up to 4096), if you happen to need them. From d029e232601716891d8532d9662ce6edad3c64a2 Mon Sep 17 00:00:00 2001 From: Osamu Aoki Date: Fri, 31 Mar 2017 00:39:20 +0900 Subject: [PATCH 414/517] Updated Home (markdown) --- Home.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Home.md b/Home.md index c1cac89204..483f8ce6c7 100644 --- a/Home.md +++ b/Home.md @@ -30,7 +30,7 @@ The **action code** is a 16 bit data and organized carefully to represent common For example, the keycode `KC_8` as an element of your `keymaps` array data is for generating keystroke of "8". The action code `SHFT(KC_8)` an element of your `keymaps` array data is for generating key stroke of "*" which is "8" key shifted. -Please note only up to 32 **action codes** were usable in `fn_actions` array data and accessed via special keycodes (`KC_FN0` to `KC_FN31`) in `keymaps` array data in tmk. +> In tmk, only up to 32 **action codes** are usable in `fn_actions` array data which is accessed via 32 special keycodes (`KC_FN0` to `KC_FN31`) in `keymaps` array data. For more details of the `keymaps` array, see [Keymap Overview](Keymap) page. From 0f7a51cef58151ebf133a078649dd583b25a94a4 Mon Sep 17 00:00:00 2001 From: Priyadi Iman Nurcahyo Date: Sun, 2 Apr 2017 22:13:05 +0700 Subject: [PATCH 415/517] Add information about trackpoint --- Modding-your-keyboard.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Modding-your-keyboard.md b/Modding-your-keyboard.md index 3599b3c536..43cc81945f 100644 --- a/Modding-your-keyboard.md +++ b/Modding-your-keyboard.md @@ -102,6 +102,8 @@ Please note the USB port can only supply a limited amount of power to the keyboa Its possible to hook up a PS/2 mouse (for example touchpads or trackpoints) to your keyboard as a composite device. +To hook up a Trackpoint, you need to obtain a Trackpoint module (i.e. harvest from a Thinkpad keyboard), identify the function of each pin of the module, and make the necessary circuitry between controller and Trackpoint module. For more information, please refer to [Trackpoint Hardware](https://deskthority.net/wiki/TrackPoint_Hardware) page on Deskthority Wiki. + There are three available modes for hooking up PS/2 devices: USART (best), interrupts (better) or busywait (not recommended). ### Busywait version From 2e78c19054ea10f0f743bb3677ddfa50d0d6d41a Mon Sep 17 00:00:00 2001 From: Dylan Khor Date: Tue, 4 Apr 2017 15:26:31 -0400 Subject: [PATCH 416/517] Added note about homebrew related installation times --- Build-Environment-Setup.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Build-Environment-Setup.md b/Build-Environment-Setup.md index e8e3cd4685..bbea47db31 100644 --- a/Build-Environment-Setup.md +++ b/Build-Environment-Setup.md @@ -40,7 +40,8 @@ If you're using [homebrew,](http://brew.sh/) you can use the following commands: brew install avr-libc brew install dfu-programmer -This is the recommended method. If you don't have homebrew, [install it!](http://brew.sh/) It's very much worth it for anyone who works in the command line. +This is the recommended method. If you don't have homebrew, [install it!](http://brew.sh/) It's very much worth it for anyone who works in the command line. +Note: The `make` and `make install` during the homebrew installation of avr-libc can take 15+ minutes for each and exhibit high CPU usage. You can also try these instructions: From 816ef19f4195520546d13bef0c3d7b819a0dabca Mon Sep 17 00:00:00 2001 From: Dylan Khor Date: Tue, 4 Apr 2017 15:28:57 -0400 Subject: [PATCH 417/517] Fixed my wording --- Build-Environment-Setup.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Build-Environment-Setup.md b/Build-Environment-Setup.md index bbea47db31..65b0c04838 100644 --- a/Build-Environment-Setup.md +++ b/Build-Environment-Setup.md @@ -40,8 +40,7 @@ If you're using [homebrew,](http://brew.sh/) you can use the following commands: brew install avr-libc brew install dfu-programmer -This is the recommended method. If you don't have homebrew, [install it!](http://brew.sh/) It's very much worth it for anyone who works in the command line. -Note: The `make` and `make install` during the homebrew installation of avr-libc can take 15+ minutes for each and exhibit high CPU usage. +This is the recommended method. If you don't have homebrew, [install it!](http://brew.sh/) It's very much worth it for anyone who works in the command line. Note that the `make` and `make install` portion during the homebrew installation of avr-libc can take over 20 minutes and exhibit high CPU usage. You can also try these instructions: From a07b83fe8e63e969367e731dec7ecb055c1c9113 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Tue, 4 Apr 2017 19:25:24 -0400 Subject: [PATCH 418/517] Updated Home (markdown) --- Home.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Home.md b/Home.md index 483f8ce6c7..ad83b6e252 100644 --- a/Home.md +++ b/Home.md @@ -8,7 +8,7 @@ Understanding the essential changes made on the [tmk_keyboard firmware](http://g |------------------------------|-----------------------|-------------------------| | Maintainer |hasu (@tmk) |Jack Humbert et al. | | Build path customization | `TMK_DIR = ...` | `include .../Makefile` | -| `keymaps` array data | 3D array of `uint8_t` holding **keycode** | 3D array of `uint16_t` holding **action code** | +| `keymaps` array data | 3D array of `uint8_t` holding **keycode** | 3D array of `uint16_t` holding **keycode** | | `fn_actions` array data | 1D array of `uint16_t` holding **action code** | 1D array of `uint16_t` holding **action code** | # Getting started From c0a895340515342dd66744f40f314345150578c8 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Tue, 4 Apr 2017 19:30:13 -0400 Subject: [PATCH 419/517] Created Differences from TMK (markdown) --- Differences-from-TMK.md | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 Differences-from-TMK.md diff --git a/Differences-from-TMK.md b/Differences-from-TMK.md new file mode 100644 index 0000000000..8b43570955 --- /dev/null +++ b/Differences-from-TMK.md @@ -0,0 +1,8 @@ +Understanding the essential changes made on the [tmk_keyboard firmware](http://github.com/tmk/tmk_keyboard) should help you understand the QMK Firmware. + +| Firmware |TMK |QMK | +|------------------------------|-----------------------|-------------------------| +| Maintainer |hasu (@tmk) |Jack Humbert et al. | +| Build path customization | `TMK_DIR = ...` | `include .../Makefile` | +| `keymaps` array data | 3D array of `uint8_t` holding **keycode** | 3D array of `uint16_t` holding **keycode** | +| `fn_actions` array data | 1D array of `uint16_t` holding **action code** | 1D array of `uint16_t` holding **action code** | \ No newline at end of file From 46179fbb7b3adf9c3ce8469718b6c8b8b337506d Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Tue, 4 Apr 2017 19:32:33 -0400 Subject: [PATCH 420/517] split off tmk differences into own page --- Home.md | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/Home.md b/Home.md index ad83b6e252..e401b35fee 100644 --- a/Home.md +++ b/Home.md @@ -1,15 +1,6 @@ # Quantum Mechanical Keyboard Firmware -You have found the QMK Firmware documentation site. This is a keyboard firmware based on the [tmk_keyboard firmware](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. - -Understanding the essential changes made on the [tmk_keyboard firmware](http://github.com/tmk/tmk_keyboard) should help you understand the QMK Firmware. - -| Firmware |TMK |QMK | -|------------------------------|-----------------------|-------------------------| -| Maintainer |hasu (@tmk) |Jack Humbert et al. | -| Build path customization | `TMK_DIR = ...` | `include .../Makefile` | -| `keymaps` array data | 3D array of `uint8_t` holding **keycode** | 3D array of `uint16_t` holding **keycode** | -| `fn_actions` array data | 1D array of `uint16_t` holding **action code** | 1D array of `uint16_t` holding **action code** | +You have found the QMK Firmware documentation site. This is a keyboard firmware based on the [tmk_keyboard firmware](http://github.com/tmk/tmk_keyboard) ([view differences](Differences-from-TMK)) 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. # Getting started From 20d69e2ad4d370c929774d028b1248416117080d Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Tue, 4 Apr 2017 19:42:10 -0400 Subject: [PATCH 421/517] clean-up keycode stuff --- Home.md | 20 +------------------- 1 file changed, 1 insertion(+), 19 deletions(-) diff --git a/Home.md b/Home.md index e401b35fee..8b224efa3c 100644 --- a/Home.md +++ b/Home.md @@ -11,28 +11,10 @@ Before you are able to compile, you'll need to install an environment for AVR de # Configuring QMK Firmware -The QMK Firmware can be configured via the `keymaps` array data. - -For simply generating a [basic keycode](https://github.com/qmk/qmk_firmware/wiki/Keycodes), you add it as an element of your `keymaps` array data. - -For more complicated actions, you add the corresponding **action code** directly as an element of your `keymaps` array data. - -The **action code** is a 16 bit data and organized carefully to represent common operations with the combination of C macros. It is sometimes called quantum keycode in the QMK source comment. - -For example, the keycode `KC_8` as an element of your `keymaps` array data is for generating keystroke of "8". The action code `SHFT(KC_8)` an element of your `keymaps` array data is for generating key stroke of "*" which is "8" key shifted. - -> In tmk, only up to 32 **action codes** are usable in `fn_actions` array data which is accessed via 32 special keycodes (`KC_FN0` to `KC_FN31`) in `keymaps` array data. +The QMK Firmware can be configured via the `keymaps` array data. For simply generating a [basic keycode](Keycodes), you add it as an element of your `keymaps` array data. For more complicated actions, there are more advanced keycodes that are organized carefully to represent common operations, some of which can be found on the [Key Functions](Key-Functions) page. For more details of the `keymaps` array, see [Keymap Overview](Keymap) page. -## C macros for action code - -Basic "C macros" for layer switching are documented in the [Key Functions](Key-Functions) page. - -> The keyboard [macros](Macros) are completely different concept from the C macros for action code. Please don't get confused. - -There are several new standardized support for common operations with new action codes as follows. - ## Space Cadet Shift: The future, built in Steve Losh [described](http://stevelosh.com/blog/2012/10/a-modern-space-cadet/) the Space Cadet Shift quite well. Essentially, you hit the left Shift on its own, and you get an opening parenthesis; hit the right Shift on its own, and you get the closing one. When hit with other keys, the Shift key keeps working as it always does. Yes, it's as cool as it sounds. Head on over to the [Space Cadet Shift](Space-Cadet-Shift) page to read about it. From 8b218857ed66f9601d430b73a0ad29164ef1606e Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Tue, 4 Apr 2017 19:42:58 -0400 Subject: [PATCH 422/517] Revert 923d32a0eff175fac8d67574456ad9e1bd2941eb...f39bad2a7dd5d57e4a80dd15dec21826ef7a2a67 on Key Functions --- Key-Functions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Key-Functions.md b/Key-Functions.md index 81fcc15cee..6779982c38 100644 --- a/Key-Functions.md +++ b/Key-Functions.md @@ -2,7 +2,7 @@ Your keymap can include shortcuts to common operations (called "function actions" in tmk). -These functions work the same way that their `ACTION_*` functions do - they're just quick aliases. To dig into all of the tmk `ACTION_*` functions, please see the [C macros for action code](https://github.com/qmk/qmk_firmware/wiki#c-macros-for-action-code). +These functions work the same way that their `ACTION_*` functions do - they're just quick aliases. To dig into all of the tmk `ACTION_*` functions, please see the [TMK documentation](https://github.com/qmk/qmk_firmware/blob/master/doc/keymap.md#2-action). Instead of using `FNx` when defining `ACTION_*` functions, you can use `F(x)` - the benefit here is being able to use more than 32 function actions (up to 4096), if you happen to need them. From 78cf15384e0426bda016b8940c3674fbd602b431 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Tue, 4 Apr 2017 20:00:06 -0400 Subject: [PATCH 423/517] Created Adding features to QMK (markdown) --- Adding-features-to-QMK.md | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 Adding-features-to-QMK.md diff --git a/Adding-features-to-QMK.md b/Adding-features-to-QMK.md new file mode 100644 index 0000000000..f6f7cba208 --- /dev/null +++ b/Adding-features-to-QMK.md @@ -0,0 +1,7 @@ +If you have an idea for a custom feature or extra hardware connection, we'd love to accept it into QMK! These are generally done via [pull request](https://github.com/qmk/qmk_firmware/pulls) after forking, and here are some things to keep in mind when creating one: + +* **Disable by default** - memory is a pretty limited on most chips QMK supports, and it's important that current keymaps aren't broken, so please allow your feature to be turned **on**, rather than being turned off. If you think it should be on by default, or reduces the size of the code, [open an issue](https://github.com/qmk/qmk_firmware/issues) for everyone to discuss it! +* **Compile locally before submitting** - hopefully this one is obvious, but things need to compile! Our Travis system will catch any issues, but it's generally faster for you to compile a few keyboards locally instead of waiting for the results to come back. +* **Consider subprojects and different chip-bases** - there are several keyboards that have subprojects that have allow for slightly different configurations, and even different chip-bases. Try to make a feature supported in ARM and AVR, or automatically disabled in one that doesn't work. +* **Explain your feature** - submitting a markdown write-up of what your feature does with your PR may be needed, and it will allow a collaborator to easily copy it into the wiki for documentation (after proofing and editing). +* **Don't refactor code** - 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). \ No newline at end of file From 54f69d02d57a98b08a1a8a5ab6ca6b8ab02f5800 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Tue, 4 Apr 2017 20:00:34 -0400 Subject: [PATCH 424/517] Updated _Sidebar (markdown) --- _Sidebar.md | 1 + 1 file changed, 1 insertion(+) diff --git a/_Sidebar.md b/_Sidebar.md index 548571ff84..f82c44c3eb 100644 --- a/_Sidebar.md +++ b/_Sidebar.md @@ -15,6 +15,7 @@ * 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) From b096b57b0bddc6a127e1ffca03ba6e3ba3a563b4 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Tue, 4 Apr 2017 21:21:27 -0400 Subject: [PATCH 425/517] Created Becoming a QMK Collaborator (markdown) --- Becoming-a-QMK-Collaborator.md | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 Becoming-a-QMK-Collaborator.md diff --git a/Becoming-a-QMK-Collaborator.md b/Becoming-a-QMK-Collaborator.md new file mode 100644 index 0000000000..3ee3ef4c2a --- /dev/null +++ b/Becoming-a-QMK-Collaborator.md @@ -0,0 +1,7 @@ +A QMK collaborator is a keyboard maker/designer that is interested in helping QMK grow and fully support their keyboard(s), and encouraging their users/customers to submit features, ideas, and keymaps. We're always looking to add more keyboards and collaborators, but we ask that they fulfill these requirements: + +* **Have a PCB available for sale** - unfortunately there's just too much variation and complications with handwired keyboards. +* **Maintain the your keyboard's directory** - this may just require an initial setup to get your keyboard working, but it could also include accommodating changes made to QMK's core. +* **Approve and merge their 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! \ No newline at end of file From 0e7a2a77de0a9d37a467fd1dae56500a1c174d7a Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Tue, 4 Apr 2017 21:42:08 -0400 Subject: [PATCH 426/517] Updated Becoming a QMK Collaborator (markdown) --- Becoming-a-QMK-Collaborator.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Becoming-a-QMK-Collaborator.md b/Becoming-a-QMK-Collaborator.md index 3ee3ef4c2a..1427675fdd 100644 --- a/Becoming-a-QMK-Collaborator.md +++ b/Becoming-a-QMK-Collaborator.md @@ -2,6 +2,6 @@ A QMK collaborator is a keyboard maker/designer that is interested in helping QM * **Have a PCB available for sale** - unfortunately there's just too much variation and complications with handwired keyboards. * **Maintain the your keyboard's directory** - this may just require an initial setup to get your keyboard working, but it could also include accommodating changes made to QMK's core. -* **Approve and merge their 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. +* **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! \ No newline at end of file From 4f48dd7c83f5f6cfa8ad044225d23b7655d744a4 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Tue, 4 Apr 2017 22:15:17 -0700 Subject: [PATCH 427/517] Created Custom Quantum Functions (markdown) --- Custom-Quantum-Functions.md | 92 +++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 Custom-Quantum-Functions.md diff --git a/Custom-Quantum-Functions.md b/Custom-Quantum-Functions.md new file mode 100644 index 0000000000..08d04034ee --- /dev/null +++ b/Custom-Quantum-Functions.md @@ -0,0 +1,92 @@ +# Custom Quantum functions + +A custom keyboard is about more than sending button presses to your computer. QMK has designed hooks to allow you to inject, override, and otherwise customize how your keyboard responds in different situations. These allow you to control status LED's, write complex macros, or even change a key's behavior based on the keyboard's state. + +## A Word on Keyboards vs Keymap + +We have structured QMK as a hierarchy: + +* Core + * Keyboard/Revision (`_kb`) + * Keymap (`_user`) + +Each of the functions described below can be defined with a `_kb()` suffix or an `_user()` suffix. We intend for you to use the `_kb()` suffix at the Keyboard/Revision level, while the `_user()` suffix should be used at the keymap level. + +When defining functions at the Keyboard/Revision level it is important that your `_kb()` implementation call `*_user()` before executing anything else- otherwise the keymap level function will never be called. + +## `void matrix_init_kb(void)` and `void matrix_init_user(void)` + +This function gets called when the matrix is initiated, and can contain start-up code for your keyboard/keymap. + +You should use this function to initialize any custom hardware you may have, such as speakers, LED drivers, or other features which need to be setup after the keyboard powers on. + +## `void matrix_scan_kb(void)` and `void matrix_scan_user(void)` + +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. + +## `bool process_record_kb(uint16_t keycode, keyrecord_t *record)` and `bool process_record_user(uint16_t keycode, keyrecord_t *record)` + +This function gets called every time a key is pressed or released. This is where you should define most custom functionality. The return value is whether or not QMK should continue processing the keycode - returning `false` stops the execution. + +The `keycode` variable is whatever is defined in your keymap, eg `MO(1)`, `KC_L`, etc. and can be switch-cased to execute code whenever a particular code is pressed. + +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 + } +} +``` + +The conditional `if (record->event.pressed)` can tell if the key is being pressed or released, and you can execute code based on that. + +## `void led_set_kb(uint8_t usb_led)` and `void led_set_user(uint8_t usb_led)` + +This allows you to control the 5 LED's defined as part of the USB Keyboard spec. It will be called when the state of one of those 5 LEDs changes. + +* `USB_LED_NUM_LOCK` +* `USB_LED_CAPS_LOCK` +* `USB_LED_SCROLL_LOCK` +* `USB_LED_COMPOSE` +* `USB_LED_KANA` + +This is a typical pattern for lighting LED's to match the `USB_LED_*` state + +``` +void led_set_kb(uint8_t usb_led) { + if (usb_led & (1< Date: Tue, 4 Apr 2017 22:15:41 -0700 Subject: [PATCH 428/517] Updated Custom Quantum Functions (markdown) --- Custom-Quantum-Functions.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/Custom-Quantum-Functions.md b/Custom-Quantum-Functions.md index 08d04034ee..1babb3cda2 100644 --- a/Custom-Quantum-Functions.md +++ b/Custom-Quantum-Functions.md @@ -1,5 +1,3 @@ -# Custom Quantum functions - A custom keyboard is about more than sending button presses to your computer. QMK has designed hooks to allow you to inject, override, and otherwise customize how your keyboard responds in different situations. These allow you to control status LED's, write complex macros, or even change a key's behavior based on the keyboard's state. ## A Word on Keyboards vs Keymap From 36757de1a7e927e5b00c14781fd82634067db182 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Tue, 4 Apr 2017 22:16:16 -0700 Subject: [PATCH 429/517] Updated Custom Quantum Functions (markdown) --- Custom-Quantum-Functions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Custom-Quantum-Functions.md b/Custom-Quantum-Functions.md index 1babb3cda2..f3a3183efc 100644 --- a/Custom-Quantum-Functions.md +++ b/Custom-Quantum-Functions.md @@ -8,7 +8,7 @@ We have structured QMK as a hierarchy: * Keyboard/Revision (`_kb`) * Keymap (`_user`) -Each of the functions described below can be defined with a `_kb()` suffix or an `_user()` suffix. We intend for you to use the `_kb()` suffix at the Keyboard/Revision level, while the `_user()` suffix should be used at the keymap level. +Each of the functions described below can be defined with a `_kb()` suffix or an `_user()` suffix. We intend for you to use the `_kb()` suffix at the Keyboard/Revision level, while the `_user()` suffix should be used at the Keymap level. When defining functions at the Keyboard/Revision level it is important that your `_kb()` implementation call `*_user()` before executing anything else- otherwise the keymap level function will never be called. From b65282f69f8a46c3543b3e83b0f275534501d8f8 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Tue, 4 Apr 2017 22:23:01 -0700 Subject: [PATCH 430/517] Updated Custom Quantum Functions (markdown) --- Custom-Quantum-Functions.md | 33 +++++++++++++++++++++++++++++---- 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/Custom-Quantum-Functions.md b/Custom-Quantum-Functions.md index f3a3183efc..bdacd31d3c 100644 --- a/Custom-Quantum-Functions.md +++ b/Custom-Quantum-Functions.md @@ -12,13 +12,38 @@ Each of the functions described below can be defined with a `_kb()` suffix or an When defining functions at the Keyboard/Revision level it is important that your `_kb()` implementation call `*_user()` before executing anything else- otherwise the keymap level function will never be called. -## `void matrix_init_kb(void)` and `void matrix_init_user(void)` +## Matrix Initialization Code -This function gets called when the matrix is initiated, and can contain start-up code for your keyboard/keymap. +* Keyboard/Revision: `void matrix_init_kb(void)` +* Keymap: `void matrix_init_user(void)` -You should use this function to initialize any custom hardware you may have, such as speakers, LED drivers, or other features which need to be setup after the keyboard powers on. +This function gets called when the matrix is initiated. You should use this function to initialize any custom hardware you may have, such as speakers, LED drivers, or other features which need to be setup after the keyboard powers on. -## `void matrix_scan_kb(void)` and `void matrix_scan_user(void)` +#### Example + +``` +void matrix_init_kb(void) { + // put your keyboard start-up code here + // runs once when the firmware starts up + matrix_init_user(); + + // JTAG disable for PORT F. write JTD bit twice within four cycles. + MCUCR |= (1< Date: Tue, 4 Apr 2017 22:33:12 -0700 Subject: [PATCH 431/517] Updated Custom Quantum Functions (markdown) --- Custom-Quantum-Functions.md | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/Custom-Quantum-Functions.md b/Custom-Quantum-Functions.md index bdacd31d3c..c4bf418e8a 100644 --- a/Custom-Quantum-Functions.md +++ b/Custom-Quantum-Functions.md @@ -49,9 +49,14 @@ This function gets called at every matrix scan, which is basically as often as t 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. -## `bool process_record_kb(uint16_t keycode, keyrecord_t *record)` and `bool process_record_user(uint16_t keycode, keyrecord_t *record)` +## Hook Into Key Presses -This function gets called every time a key is pressed or released. This is where you should define most custom functionality. The return value is whether or not QMK should continue processing the keycode - returning `false` stops the execution. +* Keyboard/Revision: `bool process_record_kb(uint16_t keycode, keyrecord_t *record)` +* Keymap: `bool process_record_user(uint16_t keycode, keyrecord_t *record)` + +This function gets called every time a key is pressed or released. This is particularly useful when defining custom keys or overriding the behavior of existing keys. + +The return value is whether or not QMK should continue processing the keycode - returning `false` stops the execution. The `keycode` variable is whatever is defined in your keymap, eg `MO(1)`, `KC_L`, etc. and can be switch-cased to execute code whenever a particular code is pressed. @@ -72,7 +77,10 @@ keyrecord_t record { The conditional `if (record->event.pressed)` can tell if the key is being pressed or released, and you can execute code based on that. -## `void led_set_kb(uint8_t usb_led)` and `void led_set_user(uint8_t usb_led)` +## LED Control + +* Keyboard/Revision: `void led_set_kb(uint8_t usb_led)` +* Keymap: `void led_set_user(uint8_t usb_led)` This allows you to control the 5 LED's defined as part of the USB Keyboard spec. It will be called when the state of one of those 5 LEDs changes. @@ -82,7 +90,7 @@ This allows you to control the 5 LED's defined as part of the USB Keyboard spec. * `USB_LED_COMPOSE` * `USB_LED_KANA` -This is a typical pattern for lighting LED's to match the `USB_LED_*` state +#### Example: ``` void led_set_kb(uint8_t usb_led) { From 32e55f918238adcd1ab026718bd9eda089518e9e Mon Sep 17 00:00:00 2001 From: skullydazed Date: Tue, 4 Apr 2017 22:33:36 -0700 Subject: [PATCH 432/517] Updated Custom Quantum Functions (markdown) --- Custom-Quantum-Functions.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Custom-Quantum-Functions.md b/Custom-Quantum-Functions.md index c4bf418e8a..26398563e3 100644 --- a/Custom-Quantum-Functions.md +++ b/Custom-Quantum-Functions.md @@ -19,7 +19,7 @@ When defining functions at the Keyboard/Revision level it is important that your This function gets called when the matrix is initiated. You should use this function to initialize any custom hardware you may have, such as speakers, LED drivers, or other features which need to be setup after the keyboard powers on. -#### Example +### Example ``` void matrix_init_kb(void) { @@ -90,7 +90,7 @@ This allows you to control the 5 LED's defined as part of the USB Keyboard spec. * `USB_LED_COMPOSE` * `USB_LED_KANA` -#### Example: +### Example: ``` void led_set_kb(uint8_t usb_led) { From 1ca879687c4ca672ee7e2924526068052e16df90 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Tue, 4 Apr 2017 22:35:21 -0700 Subject: [PATCH 433/517] Updated Custom Quantum Functions (markdown) --- Custom-Quantum-Functions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Custom-Quantum-Functions.md b/Custom-Quantum-Functions.md index 26398563e3..fe973c21cb 100644 --- a/Custom-Quantum-Functions.md +++ b/Custom-Quantum-Functions.md @@ -10,7 +10,7 @@ We have structured QMK as a hierarchy: Each of the functions described below can be defined with a `_kb()` suffix or an `_user()` suffix. We intend for you to use the `_kb()` suffix at the Keyboard/Revision level, while the `_user()` suffix should be used at the Keymap level. -When defining functions at the Keyboard/Revision level it is important that your `_kb()` implementation call `*_user()` before executing anything else- otherwise the keymap level function will never be called. +When defining functions at the Keyboard/Revision level it is important that your `_kb()` implementation call `_user()` before executing anything else- otherwise the keymap level function will never be called. ## Matrix Initialization Code From e77a5e1751e74dd95dfd784d93cc06647f9d4f8f Mon Sep 17 00:00:00 2001 From: skullydazed Date: Tue, 4 Apr 2017 23:14:27 -0700 Subject: [PATCH 434/517] Updated Custom Quantum Functions (markdown) --- Custom-Quantum-Functions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Custom-Quantum-Functions.md b/Custom-Quantum-Functions.md index fe973c21cb..a81f082d0d 100644 --- a/Custom-Quantum-Functions.md +++ b/Custom-Quantum-Functions.md @@ -1,4 +1,4 @@ -A custom keyboard is about more than sending button presses to your computer. QMK has designed hooks to allow you to inject, override, and otherwise customize how your keyboard responds in different situations. These allow you to control status LED's, write complex macros, or even change a key's behavior based on the keyboard's state. +A custom keyboard is about more than sending button presses to your computer. QMK has designed hooks to allow you to inject code, override functionality, and otherwise customize how your keyboard responds in different situations. These allow you to control status LED's, write complex macros, or even change a key's behavior based on the keyboard's state. ## A Word on Keyboards vs Keymap From 1054d5554a91a1bbb4869e02fbd60d5b070c5a1f Mon Sep 17 00:00:00 2001 From: skullydazed Date: Tue, 4 Apr 2017 23:14:40 -0700 Subject: [PATCH 435/517] Updated Custom Quantum Functions (markdown) --- Custom-Quantum-Functions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Custom-Quantum-Functions.md b/Custom-Quantum-Functions.md index a81f082d0d..1c4929e5a8 100644 --- a/Custom-Quantum-Functions.md +++ b/Custom-Quantum-Functions.md @@ -1,4 +1,4 @@ -A custom keyboard is about more than sending button presses to your computer. QMK has designed hooks to allow you to inject code, override functionality, and otherwise customize how your keyboard responds in different situations. These allow you to control status LED's, write complex macros, or even change a key's behavior based on the keyboard's state. +A custom keyboard is about more than sending button presses to your computer. QMK has designed hooks to allow you to inject code, override functionality, and otherwise customize how your keyboard responds in different situations. ## A Word on Keyboards vs Keymap From c876bb874854735ab2c84320c935d556a9705391 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Tue, 11 Apr 2017 06:55:24 -0700 Subject: [PATCH 436/517] Adding notes about ARM processors --- Compatible-Microcontrollers.md | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/Compatible-Microcontrollers.md b/Compatible-Microcontrollers.md index aaf317d056..cc78aecf19 100644 --- a/Compatible-Microcontrollers.md +++ b/Compatible-Microcontrollers.md @@ -1,4 +1,7 @@ -This runs on: +# Atmel AVR + +QMK should run on any Atmel AVR processor with enough Flash. It has been tested on the following: + * ATmega32U4 ([PJRC Teensy 2.0](http://www.pjrc.com/teensy/)) * AT90USB1286 ([PJRC Teensy++ 2.0](http://www.pjrc.com/teensy/)) * AT90USB1287 ([Atmel USBKEY](http://www.atmel.com/tools/AT90USBKEY.aspx)) @@ -10,4 +13,13 @@ This runs on: NOTE: To enable full features of firmware you'll need 32KB flash size. -Please add any tested microcontrollers to this list. \ No newline at end of file +Please add any tested microcontrollers to this list. + +* ARM + +You can also use any ARM processor that ChibiOS supports. The following processors have been tested: + +* [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) \ No newline at end of file From 1b0f5e4803cc97f7b667d2f8448dfdf7aebb96af Mon Sep 17 00:00:00 2001 From: skullydazed Date: Tue, 11 Apr 2017 06:55:39 -0700 Subject: [PATCH 437/517] Updated Compatible Microcontrollers (markdown) --- Compatible-Microcontrollers.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Compatible-Microcontrollers.md b/Compatible-Microcontrollers.md index cc78aecf19..dbc4d72cc7 100644 --- a/Compatible-Microcontrollers.md +++ b/Compatible-Microcontrollers.md @@ -15,7 +15,7 @@ NOTE: To enable full features of firmware you'll need 32KB flash size. Please add any tested microcontrollers to this list. -* ARM +# ARM You can also use any ARM processor that ChibiOS supports. The following processors have been tested: From f9c62aa363827e5b6afae915413bca944864a5ad Mon Sep 17 00:00:00 2001 From: skullydazed Date: Tue, 11 Apr 2017 06:56:12 -0700 Subject: [PATCH 438/517] Link to ChibiOS --- Compatible-Microcontrollers.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Compatible-Microcontrollers.md b/Compatible-Microcontrollers.md index dbc4d72cc7..20ba620f6d 100644 --- a/Compatible-Microcontrollers.md +++ b/Compatible-Microcontrollers.md @@ -17,7 +17,7 @@ Please add any tested microcontrollers to this list. # ARM -You can also use any ARM processor that ChibiOS supports. The following processors have been tested: +You can also use any ARM processor that [ChibiOS](http://www.chibios.org) supports. The following processors have been tested: * [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) From 835adb7848f4a2d6feb848bdfab1e9990f5f430a Mon Sep 17 00:00:00 2001 From: Johannes Larsson Date: Wed, 12 Apr 2017 23:11:51 +0200 Subject: [PATCH 439/517] colemak layout maybe --- keyboards/planck/keymaps/johannes/keymap.c | 44 +++++++++++++++------- 1 file changed, 31 insertions(+), 13 deletions(-) diff --git a/keyboards/planck/keymaps/johannes/keymap.c b/keyboards/planck/keymaps/johannes/keymap.c index d6c0ca81fe..51c8f7a095 100644 --- a/keyboards/planck/keymaps/johannes/keymap.c +++ b/keyboards/planck/keymaps/johannes/keymap.c @@ -11,22 +11,40 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Colemak + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | R | S | T | D | H | N | E | I | O | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[0] = { + {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, + {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, + {KC_LCTRL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + {TG(1), XXXXXXX, XXXXXXX, KC_LGUI, KC_LSHIFT, KC_SPC, M(2), M(1), KC_LALT, KC_RALT, XXXXXXX, M(3)} +}, + /* Qwerty * ,-----------------------------------------------------------------------------------. * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | * |------+------+------+------+------+-------------+------+------+------+------+------| * | Esc | A | S | D | F | G | H | J | K | L | ; | ' | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * | Ctrl | Z | X | C | V | B | N | M | , | . | / |Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | super|shift | Space|Raise | lower| alt | altgr| |fn | * `-----------------------------------------------------------------------------------' */ -[0] = { +[1] = { {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, {KC_LCTRL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, - {XXXXXXX, XXXXXXX, XXXXXXX, KC_LGUI, KC_LSHIFT, KC_SPC, M(2), M(1), KC_LALT, KC_RALT, XXXXXXX, M(3)} + {_______, XXXXXXX, XXXXXXX, KC_LGUI, KC_LSHIFT, KC_SPC, M(2), M(1), KC_LALT, KC_RALT, XXXXXXX, M(3)} }, /* Lower @@ -40,9 +58,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |Reset | | | | | | | | | | | * `-----------------------------------------------------------------------------------' */ -[1] = { +[2] = { {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, - {_______, _______, KC_LCBR, KC_RCBR, KC_PLUS, _______, _______, M(4), M(5), M(6), KC_UNDS, _______}, + {_______, _______, KC_LCBR, KC_RCBR, KC_PLUS, _______, _______, RALT(KC_P), RALT(KC_Q), RALT(KC_P), KC_UNDS, _______}, {_______, _______, _______, _______, _______, _______, _______,_______, _______,_______, KC_BSLS, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} }, @@ -58,7 +76,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' */ -[2] = { +[3] = { {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL}, {_______, _______, KC_LBRC, KC_RBRC, KC_EQL, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_MINS, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PIPE, _______}, @@ -66,7 +84,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }, // Fn-layer -[3] = { +[4] = { {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, @@ -84,23 +102,23 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) switch(id) { case 1: if (record->event.pressed) { - layer_on(1); + layer_on(2); } else { - layer_off(1); + layer_off(2); } break; case 2: if (record->event.pressed) { - layer_on(2); + layer_on(3); } else { - layer_off(2); + layer_off(3); } break; case 3: if (record->event.pressed) { - layer_on(3); + layer_on(4); } else { - layer_off(3); + layer_off(4); } break; case 4: // å From 6c30fd04d3725238d4ba1e9f265fb7b3955009d1 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Sat, 15 Apr 2017 13:17:41 -0700 Subject: [PATCH 440/517] Updated Keycodes (markdown) --- Keycodes.md | 35 +++++++++++++++++++++-------------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/Keycodes.md b/Keycodes.md index bfb7a060ec..693940e148 100644 --- a/Keycodes.md +++ b/Keycodes.md @@ -96,16 +96,12 @@ Keycodes in QMK are based on [HID Usage Keyboard/Keypad Page(0x07)](http://www.u |KC_HELP||Help| |KC_MENU||Menu| |KC_SELECT||Select| -|KC_STOP||Stop| |KC_AGAIN||Again| |KC_UNDO||Undo| |KC_CUT||Cut| |KC_COPY||Copy| |KC_PASTE||Paste| |KC_FIND||Find| -|KC__MUTE||Mute| -|KC__VOLUP||Volume Up| -|KC__VOLDOWN||Volume Down| |KC_ALT_ERASE||Alternate Erase7| |KC_SYSREQ||SysReq/Attention1| |KC_CANCEL||Cancel| @@ -121,16 +117,6 @@ Keycodes in QMK are based on [HID Usage Keyboard/Keypad Page(0x07)](http://www.u |KC_SYSTEM_POWER|KC_PWR|System Power Down| |KC_SYSTEM_SLEEP|KC_SLEP|System Sleep| |KC_SYSTEM_WAKE|KC_WAKE|System Wake| -|KC_AUDIO_MUTE|KC_MUTE|| -|KC_AUDIO_VOL_UP|KC_VOLU|| -|KC_AUDIO_VOL_DOWN|KC_VOLD|| -|KC_MEDIA_NEXT_TRACK|KC_MNXT|| -|KC_MEDIA_PREV_TRACK|KC_MPRV|| -|KC_MEDIA_FAST_FORWARD|KC_MFFD|| -|KC_MEDIA_REWIND|KC_MRWD|| -|KC_MEDIA_STOP|KC_MSTP|| -|KC_MEDIA_PLAY_PAUSE|KC_MPLY|| -|KC_MEDIA_SELECT|KC_MSEL|| |KC_MAIL|KC_MAIL|| |KC_CALCULATOR|KC_CALC|| |KC_MY_COMPUTER|KC_MYCM|| @@ -142,6 +128,27 @@ Keycodes in QMK are based on [HID Usage Keyboard/Keypad Page(0x07)](http://www.u |KC_WWW_REFRESH|KC_WREF|| |KC_WWW_FAVORITES|KC_WFAV|| +## Media Keys + +Windows and Mac use different key codes for next track and previous track. Make sure you choose the keycode that corresponds to your OS. + +|Long Name|Short Name|Description| +|---------|----------|-----------| +|KC_STOP||Stop| +|KC__MUTE||Mute| +|KC__VOLUP||Volume Up| +|KC__VOLDOWN||Volume Down| +|KC_AUDIO_MUTE|KC_MUTE|| +|KC_AUDIO_VOL_UP|KC_VOLU|| +|KC_AUDIO_VOL_DOWN|KC_VOLD|| +|KC_MEDIA_NEXT_TRACK|KC_MNXT|Next Track (Windows)| +|KC_MEDIA_PREV_TRACK|KC_MPRV|Previous Track (Windows)| +|KC_MEDIA_FAST_FORWARD|KC_MFFD|Next Track (macOS)| +|KC_MEDIA_REWIND|KC_MRWD|Previous Track (macOS)| +|KC_MEDIA_STOP|KC_MSTP|| +|KC_MEDIA_PLAY_PAUSE|KC_MPLY|| +|KC_MEDIA_SELECT|KC_MSEL|| + ## Numpad |Long Name|Short Name|Description| From a793e094bc0cc8bcb0a40f441538359506e27207 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Fri, 21 Apr 2017 22:24:02 -0700 Subject: [PATCH 441/517] Created Porting Your Keyboard to QMK (ARM and other ChibiOS CPUs) (markdown) --- ...ard-to-QMK-(ARM-and-other-ChibiOS-CPUs).md | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 Porting-Your-Keyboard-to-QMK-(ARM-and-other-ChibiOS-CPUs).md diff --git a/Porting-Your-Keyboard-to-QMK-(ARM-and-other-ChibiOS-CPUs).md b/Porting-Your-Keyboard-to-QMK-(ARM-and-other-ChibiOS-CPUs).md new file mode 100644 index 0000000000..436c73cb76 --- /dev/null +++ b/Porting-Your-Keyboard-to-QMK-(ARM-and-other-ChibiOS-CPUs).md @@ -0,0 +1,70 @@ +Setting up your ARM based PCB is a little more involved than an Atmel MCU, but is easy enough. Start by using `util/new_project.sh ` to create a new project: + +``` +$ util/new_project.sh simontester +###################################################### +# /keyboards/simontester project created. To start +# working on things, cd into keyboards/simontester +###################################################### +``` + + + +# END OF NEW ARM DOC, OLD ATMEL DOC FOLLOWS + +## `/keyboards//config.h` + +The `USB Device descriptor parameter` block contains parameters are used to uniquely identify your keyboard, but they don't really matter to the machine. + +Your `MATRIX_ROWS` and `MATRIX_COLS` are the numbers of rows and cols in your keyboard matrix - this may be different than the number of actual rows and columns on your keyboard. There are some tricks you can pull to increase the number of keys in a given matrix, but most keyboards are pretty straight-forward. + +The `MATRIX_ROW_PINS` and `MATRIX_COL_PINS` are the pins your MCU uses on each row/column. Your schematic (if you have one) will have this information on it, and the values will vary depending on your setup. This is one of the most important things to double-check in getting your keyboard setup correctly. + +For the `DIODE_DIRECTION`, most hand-wiring guides will instruct you to wire the diodes in the `COL2ROW` position, but it's possible that they are in the other - people coming from EasyAVR often use `ROW2COL`. Nothing will function if this is incorrect. + +`BACKLIGHT_PIN` is the pin that your PWM-controlled backlight (if one exists) is hooked-up to. Currently only B5, B6, and B7 are supported. + +`BACKLIGHT_BREATHING` is a fancier backlight feature that adds breathing/pulsing/fading effects to the backlight. It uses the same timer as the normal backlight. These breathing effects must be called by code in your keymap. + +`BACKLIGHT_LEVELS` is how many levels exist for your backlight - max is 15, and they are computed automatically from this number. + +## `/keyboards//Makefile` + +The values at the top likely won't need to be changed, since most boards use the `atmega32u4` chip. The `BOOTLOADER_SIZE` will need to be adjusted based on your MCU type. It's defaulted to the Teensy, since that's the most common controller. Below is quoted from the `Makefile`. + +``` +# Boot Section Size in *bytes* +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +OPT_DEFS += -DBOOTLOADER_SIZE=512 +``` + +At the bottom of the file, you'll find lots of features to turn on and off - all of these options should be set with `?=` to allow for the keymap overrides. `?=` only assigns if the variable was previously undefined. For the full documenation of these features, see the [Makefile options](#makefile-options). + +## `/keyboards//readme.md` + +This is where you'll describe your keyboard - please write as much as you can about it! Talking about default functionality/features is useful here. Feel free to link to external pages/sites if necessary. Images can be included here as well. This file will be rendered into a webpage at qmk.fm/keyboards//. + +## `/keyboards//.c` + +This is where all of the custom logic for your keyboard goes - you may not need to put anything in this file, since a lot of things are configured automatically. All of the `*_kb()` functions are defined here. If you modify them, remember to keep the calls to `*_user()`, or things in the keymaps might not work. You can read more about the functions [here](#custom-quantum-functions-for-keyboards-and-keymaps) + +## `/keyboards//.h` + +Here is where you can (optionally) define your `KEYMAP` function to remap your matrix into a more readable format. With ortholinear boards, this isn't always necessary, but it can help to accomodate the dead spots on your matrix, where there are keys that take up more than one space (2u, staggering, 6.25u, etc). The example shows the difference between the physical keys, and the matrix design: + +``` +#define KEYMAP( \ + k00, k01, k02, \ + k10, k11 \ +) \ +{ \ + { k00, k01, k02 }, \ + { k10, KC_NO, k11 }, \ +} +``` + +Each of the `kxx` variables needs to be unique, and usually follows the format `k`. You can place `KC_NO` where your dead keys are in your matrix. From cdef372f57380cd367d4899fecc2e166a455ee22 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Fri, 28 Apr 2017 11:56:03 -0700 Subject: [PATCH 442/517] Document the MAGIC keys --- Keycodes.md | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/Keycodes.md b/Keycodes.md index 693940e148..0c185716a9 100644 --- a/Keycodes.md +++ b/Keycodes.md @@ -199,4 +199,30 @@ Windows and Mac use different key codes for next track and previous track. Make |KC_MS_WH_RIGHT|KC_WH_R|Mouse Wheel Right| |KC_MS_ACCEL0|KC_ACL0|Mouse Acceleration 0| |KC_MS_ACCEL1|KC_ACL1|Mouse Acceleration 1| -|KC_MS_ACCEL2|KC_ACL2|Mouse Acceleration 2| \ No newline at end of file +|KC_MS_ACCEL2|KC_ACL2|Mouse Acceleration 2| + +## Magic Keys + +The following keys can be used to turn on and off various "Magic" features. These include Boot Magic (holding certain keys down while plugging the keyboard in) and the Magic Key. + +|Long Name|Short Name|Description| +|---------|----------|-----------| +|MAGIC_SWAP_CONTROL_CAPSLOCK||Swap Capslock and Control| +|MAGIC_CAPSLOCK_TO_CONTROL||Change Capslock to Control| +|MAGIC_SWAP_ALT_GUI||Swap ALT and GUI| +|MAGIC_SWAP_LALT_LGUI||Swap LALT and LGUI| +|MAGIC_SWAP_RALT_RGUI||Swap RALT and RGUI| +|MAGIC_NO_GUI||Disable off the GUI key| +|MAGIC_SWAP_GRAVE_ESC||Swap the GRAVE (~ `) and Esc keys| +|MAGIC_SWAP_BACKSLASH_BACKSPACE||Swap Backslash and Backspace| +|MAGIC_UNSWAP_CONTROL_CAPSLOCK||Disable the Control/Caps Swap| +|MAGIC_UNCAPSLOCK_TO_CONTROL||Turn Capslock back into Capslock| +|MAGIC_UNSWAP_ALT_GUI||Turn the ALT/GUI swap off| +|MAGIC_UNSWAP_LALT_LGUI||Turn the LALT/LGUI swap off| +|MAGIC_UNSWAP_RALT_RGUI||Turn the RALT/RGUI swap off| +|MAGIC_UNNO_GUI||Enable the GUI key| +|MAGIC_UNSWAP_GRAVE_ESC||Turn the GRAVE/ESC swap off| +|MAGIC_UNSWAP_BACKSLASH_BACKSPACE||Turn the Backslash/Backspace swap off| +|MAGIC_HOST_NKRO||Turn NKRO on| +|MAGIC_UNHOST_NKRO||Turn NKRO off| +|MAGIC_TOGGLE_NKRO||Toggle NKRO on or off| \ No newline at end of file From 43d1e05b315d12af39a2e478a70843851bc2a47c Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sat, 13 May 2017 20:04:39 +0000 Subject: [PATCH 443/517] Updates Home.md Auto commit by GitBook Editor --- Home.md | 115 ++++++++++++++++++++++++++++++-------------------------- 1 file changed, 62 insertions(+), 53 deletions(-) diff --git a/Home.md b/Home.md index 8b224efa3c..0cf17df2cb 100644 --- a/Home.md +++ b/Home.md @@ -1,17 +1,17 @@ # Quantum Mechanical Keyboard Firmware -You have found the QMK Firmware documentation site. This is a keyboard firmware based on the [tmk_keyboard firmware](http://github.com/tmk/tmk_keyboard) ([view differences](Differences-from-TMK)) 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. +You have found the QMK Firmware documentation site. This is a keyboard firmware based on the [tmk\_keyboard firmware](http://github.com/tmk/tmk_keyboard) \([view differences](Differences-from-TMK)\) 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. # Getting started -Before you are able to compile, you'll need to install an environment for AVR development. You'll find the instructions for any OS below. If you find another/better way to set things up from scratch, please consider [making a pull request](https://github.com/qmk/qmk_firmware/pulls) with your changes! +Before you are able to compile, you'll need to install an environment for AVR or ARM development. You'll find the instructions for any OS below. If you find another/better way to set things up from scratch, please consider [making a pull request](https://github.com/qmk/qmk_firmware/pulls) with your changes! * [Build Environment Setup](Build-Environment-Setup) * [QMK Overview](QMK-Overview) # Configuring QMK Firmware -The QMK Firmware can be configured via the `keymaps` array data. For simply generating a [basic keycode](Keycodes), you add it as an element of your `keymaps` array data. For more complicated actions, there are more advanced keycodes that are organized carefully to represent common operations, some of which can be found on the [Key Functions](Key-Functions) page. +The QMK Firmware can be configured via the `keymaps` array data. For simply generating a [basic keycode](Keycodes), you add it as an element of your `keymaps` array data. For more complicated actions, there are more advanced keycodes that are organized carefully to represent common operations, some of which can be found on the [Key Functions](Key-Functions) page. For more details of the `keymaps` array, see [Keymap Overview](Keymap) page. @@ -29,22 +29,24 @@ Hit the semicolon key once, send a semicolon. Hit it twice, rapidly -- send a co ## Temporarily setting the default layer -`DF(layer)` - sets default layer to *layer*. The default layer is the one at the "bottom" of the layer stack - the ultimate fallback layer. This currently does not persist over power loss. When you plug the keyboard back in, layer 0 will always be the default. It is theoretically possible to work around that, but that's not what `DF` does. +`DF(layer)` - sets default layer to _layer_. The default layer is the one at the "bottom" of the layer stack - the ultimate fallback layer. This currently does not persist over power loss. When you plug the keyboard back in, layer 0 will always be the default. It is theoretically possible to work around that, but that's not what `DF` does. ## Macro shortcuts: Send a whole string when pressing just one key How would you like a single keypress to send a whole word, sentence, paragraph, or even document? Head on over to the [Macros](Macros) page to read up on all aspects of Simple and Dynamic Macros. -## Additional keycode aliases for software-implemented layouts (Colemak, Dvorak, etc) +## Additional keycode aliases for software-implemented layouts \(Colemak, Dvorak, etc\) -Everything is assuming you're in Qwerty (in software) by default, but there is built-in support for using a Colemak or Dvorak layout by including this at the top of your keymap: +Everything is assuming you're in Qwerty \(in software\) by default, but there is built-in support for using a Colemak or Dvorak layout by including this at the top of your keymap: - #include +``` +#include +``` If you use Dvorak, use `keymap_dvorak.h` instead of `keymap_colemak.h` for this line. After including this line, you will get access to: - * `CM_*` for all of the Colemak-equivalent characters - * `DV_*` for all of the Dvorak-equivalent characters +* `CM_*` for all of the Colemak-equivalent characters +* `DV_*` for all of the Dvorak-equivalent characters These implementations assume you're using Colemak or Dvorak on your OS, not on your keyboard - this is referred to as a software-implemented layout. If your computer is in Qwerty and your keymap is in Colemak or Dvorak, this is referred to as a firmware-implemented layout, and you won't need these features. @@ -54,69 +56,75 @@ To give an example, if you're using software-implemented Colemak, and want to ge In order to enable backlight breathing, the following line must be added to your config.h file. - #define BACKLIGHT_BREATHING +``` +#define BACKLIGHT_BREATHING +``` The following function calls are used to control the breathing effect. -* ```breathing_enable()``` - Enable the free-running breathing effect. -* ```breathing_disable()``` - Disable the free-running breathing effect immediately. -* ```breathing_self_disable()``` - Disable the free-running breathing effect after the current effect ends. -* ```breathing_toggle()``` - Toggle the free-running breathing effect. -* ```breathing_defaults()``` - Reset the speed and brightness settings of the breathing effect. +* `breathing_enable()` - Enable the free-running breathing effect. +* `breathing_disable()` - Disable the free-running breathing effect immediately. +* `breathing_self_disable()` - Disable the free-running breathing effect after the current effect ends. +* `breathing_toggle()` - Toggle the free-running breathing effect. +* `breathing_defaults()` - Reset the speed and brightness settings of the breathing effect. The following function calls are used to control the maximum brightness of the breathing effect. -* ```breathing_intensity_set(value)``` - Set the brightness of the breathing effect when it is at its max value. -* ```breathing_intensity_default()``` - Reset the brightness of the breathing effect to the default value based on the current backlight intensity. +* `breathing_intensity_set(value)` - Set the brightness of the breathing effect when it is at its max value. +* `breathing_intensity_default()` - Reset the brightness of the breathing effect to the default value based on the current backlight intensity. The following function calls are used to control the cycling speed of the breathing effect. -* ```breathing_speed_set(value)``` - Set the speed of the breathing effect - how fast it cycles. -* ```breathing_speed_inc(value)``` - Increase the speed of the breathing effect by a fixed value. -* ```breathing_speed_dec(value)``` - Decrease the speed of the breathing effect by a fixed value. -* ```breathing_speed_default()``` - Reset the speed of the breathing effect to the default value. +* `breathing_speed_set(value)` - Set the speed of the breathing effect - how fast it cycles. +* `breathing_speed_inc(value)` - Increase the speed of the breathing effect by a fixed value. +* `breathing_speed_dec(value)` - Decrease the speed of the breathing effect by a fixed value. +* `breathing_speed_default()` - Reset the speed of the breathing effect to the default value. The following example shows how to enable the backlight breathing effect when the FUNCTION layer macro button is pressed: - case MACRO_FUNCTION: - if (record->event.pressed) - { - breathing_speed_set(3); - breathing_enable(); - layer_on(LAYER_FUNCTION); - } - else - { - breathing_speed_set(1); - breathing_self_disable(); - layer_off(LAYER_FUNCTION); - } - break; +``` +case MACRO_FUNCTION: + if (record->event.pressed) + { + breathing_speed_set(3); + breathing_enable(); + layer_on(LAYER_FUNCTION); + } + else + { + breathing_speed_set(1); + breathing_self_disable(); + layer_off(LAYER_FUNCTION); + } + break; +``` The following example shows how to pulse the backlight on-off-on when the RAISED layer macro button is pressed: - case MACRO_RAISED: - if (record->event.pressed) - { - layer_on(LAYER_RAISED); - breathing_speed_set(2); - breathing_pulse(); - update_tri_layer(LAYER_LOWER, LAYER_RAISED, LAYER_ADJUST); - } - else - { - layer_off(LAYER_RAISED); - update_tri_layer(LAYER_LOWER, LAYER_RAISED, LAYER_ADJUST); - } - break; +``` +case MACRO_RAISED: + if (record->event.pressed) + { + layer_on(LAYER_RAISED); + breathing_speed_set(2); + breathing_pulse(); + update_tri_layer(LAYER_LOWER, LAYER_RAISED, LAYER_ADJUST); + } + else + { + layer_off(LAYER_RAISED); + update_tri_layer(LAYER_LOWER, LAYER_RAISED, LAYER_ADJUST); + } + break; +``` ## Other firmware shortcut keycodes -* `RESET` - puts the MCU in DFU mode for flashing new firmware (with `make dfu`) -* `DEBUG` - the firmware into debug mode - you'll need hid_listen to see things +* `RESET` - puts the MCU in DFU mode for flashing new firmware \(with `make dfu`\) +* `DEBUG` - the firmware into debug mode - you'll need hid\_listen to see things * `BL_ON` - turns the backlight on * `BL_OFF` - turns the backlight off -* `BL_` - sets the backlight to level *n* +* `BL_` - sets the backlight to level _n_ * `BL_INC` - increments the backlight level by one * `BL_DEC` - decrements the backlight level by one * `BL_TOGG` - toggles the backlight @@ -161,7 +169,7 @@ The conditional `if (record->event.pressed)` can tell if the key is being presse ## `void led_set_*(uint8_t usb_led)` -This gets called whenever there is a state change on your host LEDs (eg caps lock, scroll lock, etc). The LEDs are defined as: +This gets called whenever there is a state change on your host LEDs \(eg caps lock, scroll lock, etc\). The LEDs are defined as: ``` #define USB_LED_NUM_LOCK 0 @@ -172,3 +180,4 @@ This gets called whenever there is a state change on your host LEDs (eg caps loc ``` and can be tested against the `usb_led` with a conditional like `if (usb_led & (1< Date: Sat, 13 May 2017 20:09:06 +0000 Subject: [PATCH 444/517] Updates book.json Auto commit by GitBook Editor --- book.json | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 book.json diff --git a/book.json b/book.json new file mode 100644 index 0000000000..c7af59edc1 --- /dev/null +++ b/book.json @@ -0,0 +1,3 @@ +{ + "structure.readme": "Home" +} \ No newline at end of file From 7f4cf32af971dd796c7a23dd226ff6436bf7981a Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sat, 13 May 2017 20:10:38 +0000 Subject: [PATCH 445/517] Updates book.json Auto commit by GitBook Editor --- book.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/book.json b/book.json index c7af59edc1..3ad89f06a9 100644 --- a/book.json +++ b/book.json @@ -1,3 +1,5 @@ { - "structure.readme": "Home" + "structure": { + "readme": "Home.md" + } } \ No newline at end of file From 694db4130ee569389795de4db9299349d4b7e21f Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sat, 13 May 2017 20:17:21 +0000 Subject: [PATCH 446/517] Updates SUMMARY.md Auto commit by GitBook Editor --- SUMMARY.md | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 SUMMARY.md diff --git a/SUMMARY.md b/SUMMARY.md new file mode 100644 index 0000000000..e606b59fee --- /dev/null +++ b/SUMMARY.md @@ -0,0 +1,7 @@ +# Summary + +* [Introduction](Home.md) +* [QMK-Overview](/QMK-Overview.md) + + + From 95ac79cb677c5a13e12c9d258aad85f7519e7391 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sat, 13 May 2017 20:17:26 +0000 Subject: [PATCH 447/517] Updates SUMMARY.md Auto commit by GitBook Editor --- SUMMARY.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SUMMARY.md b/SUMMARY.md index e606b59fee..07344585fb 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -1,7 +1,7 @@ # Summary * [Introduction](Home.md) -* [QMK-Overview](/QMK-Overview.md) +* [QMK Overview](/QMK-Overview.md) From 819f0998bd46f7ccd9937aa243db5ed1127bdb65 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Tue, 16 May 2017 01:50:44 +0000 Subject: [PATCH 448/517] Updates SUMMARY.md Auto commit by GitBook Editor --- SUMMARY.md | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/SUMMARY.md b/SUMMARY.md index 07344585fb..7de87358da 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -1,7 +1,25 @@ -# Summary +[Wiki Home](/Home.md) + +* 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) + -* [Introduction](Home.md) -* [QMK Overview](/QMK-Overview.md) From e5b0095e6cabd88a2e9d1a5d2f5eae2c6f1ef6c3 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Mon, 15 May 2017 22:00:14 -0400 Subject: [PATCH 449/517] Update SUMMARY.md --- SUMMARY.md | 40 +++++++++++++++++----------------------- 1 file changed, 17 insertions(+), 23 deletions(-) diff --git a/SUMMARY.md b/SUMMARY.md index 7de87358da..5d084f9cd6 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -1,25 +1,19 @@ -[Wiki Home](/Home.md) - +* [Wiki Home](/Home.md * 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) + * [QMK Overview](/QMK-Overview.md) + * [Build Environment Setup](/Build-Environment-Setup.md) +* [Overview for keymap creators](/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) - * [Porting your keyboard to QMK](Porting-your-keyboard-to-QMK) - * [Adding features to QMK](Adding-features-to-QMK) -* [General FAQ](FAQ) - - - - - + * [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) +* [General FAQ](FAQ.md) From 60daffbe5df7284e83e092c26bb6b4b32a61f33a Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Mon, 15 May 2017 22:00:22 -0400 Subject: [PATCH 450/517] Update SUMMARY.md --- SUMMARY.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SUMMARY.md b/SUMMARY.md index 5d084f9cd6..7bd5eda618 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -1,4 +1,4 @@ -* [Wiki Home](/Home.md +* [Wiki Home](/Home.md) * Getting started * [QMK Overview](/QMK-Overview.md) * [Build Environment Setup](/Build-Environment-Setup.md) From 997a847f8cd3579824009822a125e64507cf6595 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Mon, 15 May 2017 22:29:17 -0400 Subject: [PATCH 451/517] update links --- Build-Environment-Setup.md | 2 +- Eclipse.md | 2 +- Home.md | 18 +++++++++--------- Macros.md | 2 +- Make-Instructions.md | 4 ++-- Modding-your-keyboard.md | 4 ++-- QMK-Overview.md | 4 ++-- 7 files changed, 18 insertions(+), 18 deletions(-) diff --git a/Build-Environment-Setup.md b/Build-Environment-Setup.md index 65b0c04838..35e02924b9 100644 --- a/Build-Environment-Setup.md +++ b/Build-Environment-Setup.md @@ -103,7 +103,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](../../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 file](https://github.com/qmk/qmk_firmware/blob/master/doc/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. diff --git a/Eclipse.md b/Eclipse.md index 21851a2fb2..b9aa676370 100644 --- a/Eclipse.md +++ b/Eclipse.md @@ -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](../#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. diff --git a/Home.md b/Home.md index 0cf17df2cb..3197933a87 100644 --- a/Home.md +++ b/Home.md @@ -1,31 +1,31 @@ # Quantum Mechanical Keyboard Firmware -You have found the QMK Firmware documentation site. This is a keyboard firmware based on the [tmk\_keyboard firmware](http://github.com/tmk/tmk_keyboard) \([view differences](Differences-from-TMK)\) 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. +You have found the QMK Firmware documentation site. This is a keyboard firmware based on the [tmk\_keyboard firmware](http://github.com/tmk/tmk_keyboard) \([view differences](/Differences-from-TMK.md)\) 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. # Getting started Before you are able to compile, you'll need to install an environment for AVR or ARM development. You'll find the instructions for any OS below. If you find another/better way to set things up from scratch, please consider [making a pull request](https://github.com/qmk/qmk_firmware/pulls) with your changes! -* [Build Environment Setup](Build-Environment-Setup) -* [QMK Overview](QMK-Overview) +* [Build Environment Setup](/Build-Environment-Setup.md) +* [QMK Overview](/QMK-Overview.md) # Configuring QMK Firmware -The QMK Firmware can be configured via the `keymaps` array data. For simply generating a [basic keycode](Keycodes), you add it as an element of your `keymaps` array data. For more complicated actions, there are more advanced keycodes that are organized carefully to represent common operations, some of which can be found on the [Key Functions](Key-Functions) page. +The QMK Firmware can be configured via the `keymaps` array data. For simply generating a [basic keycode](/Keycodes.md), you add it as an element of your `keymaps` array data. For more complicated actions, there are more advanced keycodes that are organized carefully to represent common operations, some of which can be found on the [Key Functions](/Key-Functions.md) page. -For more details of the `keymaps` array, see [Keymap Overview](Keymap) page. +For more details of the `keymaps` array, see [Keymap Overview](/Keymap.md) page. ## Space Cadet Shift: The future, built in -Steve Losh [described](http://stevelosh.com/blog/2012/10/a-modern-space-cadet/) the Space Cadet Shift quite well. Essentially, you hit the left Shift on its own, and you get an opening parenthesis; hit the right Shift on its own, and you get the closing one. When hit with other keys, the Shift key keeps working as it always does. Yes, it's as cool as it sounds. Head on over to the [Space Cadet Shift](Space-Cadet-Shift) page to read about it. +Steve Losh [described](http://stevelosh.com/blog/2012/10/a-modern-space-cadet/) the Space Cadet Shift quite well. Essentially, you hit the left Shift on its own, and you get an opening parenthesis; hit the right Shift on its own, and you get the closing one. When hit with other keys, the Shift key keeps working as it always does. Yes, it's as cool as it sounds. Head on over to the [Space Cadet Shift](/Space-Cadet-Shift.md) page to read about it. ## The Leader key: A new kind of modifier -Most modifiers have to be held or toggled. But what if you had a key that indicated the start of a sequence? You could press that key and then rapidly press 1-3 more keys to trigger a macro, or enter a special layer, or anything else you might want to do. To learn more about it check out the [Leader Key](Leader-Key) page. +Most modifiers have to be held or toggled. But what if you had a key that indicated the start of a sequence? You could press that key and then rapidly press 1-3 more keys to trigger a macro, or enter a special layer, or anything else you might want to do. To learn more about it check out the [Leader Key](/Leader-Key.md) page. ## Tap Dance: A single key can do 3, 5, or 100 different things -Hit the semicolon key once, send a semicolon. Hit it twice, rapidly -- send a colon. Hit it three times, and your keyboard's LEDs do a wild dance. That's just one example of what Tap Dance can do. Read more about it on the [Tap Dance](Tap-Dance) page. +Hit the semicolon key once, send a semicolon. Hit it twice, rapidly -- send a colon. Hit it three times, and your keyboard's LEDs do a wild dance. That's just one example of what Tap Dance can do. Read more about it on the [Tap Dance](/Tap-Dance.md) page. ## Temporarily setting the default layer @@ -33,7 +33,7 @@ Hit the semicolon key once, send a semicolon. Hit it twice, rapidly -- send a co ## Macro shortcuts: Send a whole string when pressing just one key -How would you like a single keypress to send a whole word, sentence, paragraph, or even document? Head on over to the [Macros](Macros) page to read up on all aspects of Simple and Dynamic Macros. +How would you like a single keypress to send a whole word, sentence, paragraph, or even document? Head on over to the [Macros](/Macros.md) page to read up on all aspects of Simple and Dynamic Macros. ## Additional keycode aliases for software-implemented layouts \(Colemak, Dvorak, etc\) diff --git a/Macros.md b/Macros.md index 7166026d76..b5caef4246 100644 --- a/Macros.md +++ b/Macros.md @@ -91,7 +91,7 @@ If you have a bunch of macros you want to refer to from your keymap, while keepi #define EXT_PLV M(13) ``` -As was done on the [Planck default keymap](/keyboards/planck/keymaps/default/keymap.c#L33-L40) +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 diff --git a/Make-Instructions.md b/Make-Instructions.md index 299834ef2c..8256320358 100644 --- a/Make-Instructions.md +++ b/Make-Instructions.md @@ -21,7 +21,7 @@ As mentioned above, there are some shortcuts, when you are in a: * `keyboard` folder, the command will automatically fill the `` part. So you only need to type `--` * `subproject` folder, it will fill in both `` and `` * `keymap` folder, then `` and `` will be filled in. If you need to specify the `` use the following syntax `-` - * Note in order to support this shortcut, the keymap needs its own Makefile (see the example [here](/doc/keymap_makefile_example.mk)) + * Note in order to support this shortcut, the keymap needs its own Makefile (see the example [here](https://github.com/qmk/qmk_firmware/blob/master/doc/keymap_makefile_example.mk)) * `keymap` folder of a `subproject`, then everything except the `` will be filled in The `` means the following @@ -58,7 +58,7 @@ There are 5 different `make` and `Makefile` locations: * subproject (`/keyboards//`) * subproject keymap (`/keyboards///keymaps/`) -The root contains the code used to automatically figure out which keymap or keymaps to compile based on your current directory and commandline arguments. It's considered stable, and shouldn't be modified. The keyboard one will contain the MCU set-up and default settings for your keyboard, and shouldn't be modified unless you are the producer of that keyboard. The keymap Makefile can be modified by users, and is optional. It is included automatically if it exists. You can see an example [here](/doc/keymap_makefile_example.mk) - the last few lines are the most important. The settings you set here will override any defaults set in the keyboard Makefile. **The file is required if you want to run `make` in the keymap folder.** +The root contains the code used to automatically figure out which keymap or keymaps to compile based on your current directory and commandline arguments. It's considered stable, and shouldn't be modified. The keyboard one will contain the MCU set-up and default settings for your keyboard, and shouldn't be modified unless you are the producer of that keyboard. The keymap Makefile can be modified by users, and is optional. It is included automatically if it exists. You can see an example [here](https://github.com/qmk/qmk_firmware/blob/master/doc/keymap_makefile_example.mk) - the last few lines are the most important. The settings you set here will override any defaults set in the keyboard Makefile. **The file is required if you want to run `make` in the keymap folder.** For keyboards and subprojects, the make files are split in two parts `Makefile` and `rules.mk`. All settings can be found in the `rules.mk` file, while the `Makefile` is just there for support and including the root `Makefile`. Keymaps contain just one `Makefile` for simplicity. diff --git a/Modding-your-keyboard.md b/Modding-your-keyboard.md index 43cc81945f..9d3e0319d5 100644 --- a/Modding-your-keyboard.md +++ b/Modding-your-keyboard.md @@ -3,7 +3,7 @@ Your keyboard can make sounds! If you've got a Planck, Preonic, or basically any keyboard that allows access to the C6 port, you can hook up a simple speaker and make it beep. You can use those beeps to indicate layer transitions, modifiers, special keys, or just to play some funky 8bit tunes. -The audio code lives in [quantum/audio/audio.h](/quantum/audio/audio.h) and in the other files in the audio directory. It's enabled by default on the Planck [stock keymap](/keyboards/planck/keymaps/default/keymap.c). Here are the important bits: +The audio code lives in [quantum/audio/audio.h](https://github.com/qmk/qmk_firmware/blob/master/quantum/audio/audio.h) and in the other files in the audio directory. It's enabled by default on the Planck [stock keymap](https://github.com/qmk/qmk_firmware/blob/master/keyboards/planck/keymaps/default/keymap.c). Here are the important bits: ``` #include "audio.h" @@ -36,7 +36,7 @@ float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); float goodbye[][2] = SONG(GOODBYE_SOUND); ``` -Wherein we bind predefined songs (from [quantum/audio/song_list.h](/quantum/audio/song_list.h)) into named variables. This is one optimization that helps save on memory: These songs only take up memory when you reference them in your keymap, because they're essentially all preprocessor directives. +Wherein we bind predefined songs (from [quantum/audio/song_list.h](https://github.com/qmk/qmk_firmware/blob/master/quantum/audio/song_list.h)) into named variables. This is one optimization that helps save on memory: These songs only take up memory when you reference them in your keymap, because they're essentially all preprocessor directives. So now you have something called `tone_plover` for example. How do you make it play the Plover tune, then? If you look further down the keymap, you'll see this: diff --git a/QMK-Overview.md b/QMK-Overview.md index 8803d7c554..f595bd2378 100644 --- a/QMK-Overview.md +++ b/QMK-Overview.md @@ -30,7 +30,7 @@ The `make` command is how you compile the firmware into a .hex file, which can b **NOTE:** To abort a make command press `Ctrl-c` -For more details on the QMK build process see [Make Instructions](Make-Instructions). +For more details on the QMK build process see [Make Instructions](/Make-Instructions.md). ### Simple instructions for building and uploading a keyboard @@ -63,7 +63,7 @@ There are 2 `config.h` locations: * keyboard (`/keyboards//`) * keymap (`/keyboards//keymaps//`) -The keyboard `config.h` is included only if the keymap one doesn't exist. The format to use for your custom one [is here](/doc/keymap_config_h_example.h). If you want to override a setting from the parent `config.h` file, you need to do this: +The keyboard `config.h` is included only if the keymap one doesn't exist. The format to use for your custom one [is here](https://github.com/qmk/qmk_firmware/blob/master/doc/keymap_config_h_example.h). If you want to override a setting from the parent `config.h` file, you need to do this: ```c #undef MY_SETTING From e0689c000b2f571a248f8355a428f3c07ff39d7d Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Tue, 16 May 2017 02:35:00 +0000 Subject: [PATCH 452/517] Updates book.json Auto commit by GitBook Editor --- book.json | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/book.json b/book.json index 3ad89f06a9..5274a6334b 100644 --- a/book.json +++ b/book.json @@ -2,4 +2,16 @@ "structure": { "readme": "Home.md" } + "pluginsConfig": { + "toolbar": { + "buttons": + [ + { + "label": "QMK Firmware", + "icon": "fa fa-github", + "url": "https://github.com/qmk/qmk_firmware" + } + ] + } + } } \ No newline at end of file From 3a7e0dd2f6d5ab513b30b615fdf4026b38af37e8 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Tue, 16 May 2017 02:36:31 +0000 Subject: [PATCH 453/517] Updates book.json Auto commit by GitBook Editor --- book.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/book.json b/book.json index 5274a6334b..a975c2ef54 100644 --- a/book.json +++ b/book.json @@ -1,7 +1,7 @@ { "structure": { "readme": "Home.md" - } + }, "pluginsConfig": { "toolbar": { "buttons": From 52562eaaea1697db608590d4ab785155ea126cb8 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Tue, 16 May 2017 02:38:44 +0000 Subject: [PATCH 454/517] Updates book.json Auto commit by GitBook Editor --- book.json | 1 + 1 file changed, 1 insertion(+) diff --git a/book.json b/book.json index a975c2ef54..a12a574ae9 100644 --- a/book.json +++ b/book.json @@ -2,6 +2,7 @@ "structure": { "readme": "Home.md" }, + "plugins" : ["plugin-toolbar"], "pluginsConfig": { "toolbar": { "buttons": From 2513912975b525bc267cf729cec5d3c36891c089 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Tue, 16 May 2017 02:39:49 +0000 Subject: [PATCH 455/517] Updates book.json Auto commit by GitBook Editor --- book.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/book.json b/book.json index a12a574ae9..620df20f95 100644 --- a/book.json +++ b/book.json @@ -2,7 +2,7 @@ "structure": { "readme": "Home.md" }, - "plugins" : ["plugin-toolbar"], + "plugins" : ["toolbar"], "pluginsConfig": { "toolbar": { "buttons": From e5ed23c0b38469cf914190fff89dae49e52adc4b Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Mon, 15 May 2017 22:45:20 -0400 Subject: [PATCH 456/517] summary test --- SUMMARY.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/SUMMARY.md b/SUMMARY.md index 7bd5eda618..92e49d93b2 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -1,7 +1,9 @@ -* [Wiki Home](/Home.md) -* Getting started +[Home](/Home.md) +### Getting started + * [QMK Overview](/QMK-Overview.md) * [Build Environment Setup](/Build-Environment-Setup.md) + * [Overview for keymap creators](/Keymap.md) * [Keycodes](/Keycodes.md) * [Layer switching](/Key-Functions.md) From 2df879cbe369ed081d27ddcd2054e76f8f17adb4 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sat, 20 May 2017 12:02:55 -0400 Subject: [PATCH 457/517] Update book.json --- book.json | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/book.json b/book.json index 620df20f95..db29f054b9 100644 --- a/book.json +++ b/book.json @@ -2,8 +2,12 @@ "structure": { "readme": "Home.md" }, - "plugins" : ["toolbar"], + "plugins" : ["toolbar", "edit-link"], "pluginsConfig": { + "edit-link": { + "base": "https://github.com/qmk/qmk_firmware/edit/master/path/to/book", + "label": "Edit This Page" + }, "toolbar": { "buttons": [ @@ -15,4 +19,4 @@ ] } } -} \ No newline at end of file +} From d678899c833960733d287679fe6296d5bfc02333 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sat, 20 May 2017 12:04:03 -0400 Subject: [PATCH 458/517] Update book.json --- book.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/book.json b/book.json index db29f054b9..229e7735d9 100644 --- a/book.json +++ b/book.json @@ -5,7 +5,7 @@ "plugins" : ["toolbar", "edit-link"], "pluginsConfig": { "edit-link": { - "base": "https://github.com/qmk/qmk_firmware/edit/master/path/to/book", + "base": "https://github.com/qmk/qmk_firmware_docs/edit/master", "label": "Edit This Page" }, "toolbar": { From 5e28f88707b383600ef709e3c498f473d8d8a37d Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sat, 20 May 2017 12:07:31 -0400 Subject: [PATCH 459/517] Update book.json --- book.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/book.json b/book.json index 229e7735d9..6e0db19c94 100644 --- a/book.json +++ b/book.json @@ -6,7 +6,7 @@ "pluginsConfig": { "edit-link": { "base": "https://github.com/qmk/qmk_firmware_docs/edit/master", - "label": "Edit This Page" + "label": "Suggest an edit" }, "toolbar": { "buttons": From 046c5d332f3fbbce685e8d0a4adee5cf3167dffc Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sat, 20 May 2017 12:27:07 -0400 Subject: [PATCH 460/517] Update SUMMARY.md --- SUMMARY.md | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/SUMMARY.md b/SUMMARY.md index 92e49d93b2..8ce37c3ca8 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -1,10 +1,9 @@ -[Home](/Home.md) -### Getting started - * [QMK Overview](/QMK-Overview.md) - * [Build Environment Setup](/Build-Environment-Setup.md) +### [Introduction](/Home.md) +* [QMK Overview](/QMK-Overview.md) +* [Build Environment Setup](/Build-Environment-Setup.md) -* [Overview for keymap creators](/Keymap.md) +### [Overview for keymap creators](/Keymap.md) * [Keycodes](/Keycodes.md) * [Layer switching](/Key-Functions.md) * [Leader Key](/Leader-Key.md) @@ -14,8 +13,11 @@ * [Mouse keys](/Mouse-keys.md) * [FAQ: Creating a Keymap](/FAQ-Keymap.md) * [FAQ: Compiling QMK](/FAQ-Build.md) -* For hardware makers and modders + +### 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) -* [General FAQ](FAQ.md) + +* [General FAQ](/FAQ.md) +* [Differences from TMK](/Differences-from-TMK.md) From b3bff6404c563d05482ae4d6d60b6c1621ab7d71 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sat, 20 May 2017 12:29:45 -0400 Subject: [PATCH 461/517] Update SUMMARY.md --- SUMMARY.md | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/SUMMARY.md b/SUMMARY.md index 8ce37c3ca8..a9625f3576 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -1,23 +1,25 @@ -### [Introduction](/Home.md) +### Getting started +* [Introduction](/Home.md) * [QMK Overview](/QMK-Overview.md) * [Build Environment Setup](/Build-Environment-Setup.md) -### [Overview for keymap creators](/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) +### 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) +* [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) * [General FAQ](/FAQ.md) * [Differences from TMK](/Differences-from-TMK.md) From 684a02ae3f2ecc6ee312b410039b799c62686f07 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sat, 20 May 2017 12:30:24 -0400 Subject: [PATCH 462/517] Update SUMMARY.md --- SUMMARY.md | 1 + 1 file changed, 1 insertion(+) diff --git a/SUMMARY.md b/SUMMARY.md index a9625f3576..99845a7b68 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -21,5 +21,6 @@ * [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) From 0cd8eb02c74ad3f17ebc79445ea7b7a7ca136d8e Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sat, 20 May 2017 13:20:10 -0400 Subject: [PATCH 463/517] favicon --- book.json | 5 +++-- favicon.png | Bin 0 -> 242 bytes 2 files changed, 3 insertions(+), 2 deletions(-) create mode 100644 favicon.png diff --git a/book.json b/book.json index 6e0db19c94..f4cdd39638 100644 --- a/book.json +++ b/book.json @@ -2,7 +2,7 @@ "structure": { "readme": "Home.md" }, - "plugins" : ["toolbar", "edit-link"], + "plugins" : ["toolbar", "edit-link", "custom-favicon"], "pluginsConfig": { "edit-link": { "base": "https://github.com/qmk/qmk_firmware_docs/edit/master", @@ -17,6 +17,7 @@ "url": "https://github.com/qmk/qmk_firmware" } ] - } + }, + "favicon": "/favicon.png" } } diff --git a/favicon.png b/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..0f3343db0d902993b7e395fe20974dd2230a8f46 GIT binary patch literal 242 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5Xrg*wIhE&{2N^oF)ZJzV1zu%4Bhew3TP2%vygD>qj&iW>Q zZc*9?|Lki*t8YVCPT%XdQ!=7~b%K{0ONe!ARN8C7F)+`fznI$k=)!;z?#48Rh zFBy+Bomt{3tad>3&F%f-&cX&U58mu)V%p(Yu~;xgV3XULiyoO04@wv}nO}%)e8VIb ovn`?6>f*V@*=dU;7+542tp3c})VuYf3DA8Ep00i_>zopr0L$K5v;Y7A literal 0 HcmV?d00001 From 33f886ad74bcfaeb56d0a2821b368da1f723325e Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sat, 20 May 2017 13:26:08 -0400 Subject: [PATCH 464/517] favicon --- book.json | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/book.json b/book.json index f4cdd39638..3b1fdc94f6 100644 --- a/book.json +++ b/book.json @@ -2,7 +2,7 @@ "structure": { "readme": "Home.md" }, - "plugins" : ["toolbar", "edit-link", "custom-favicon"], + "plugins" : ["toolbar", "edit-link", "favicon"], "pluginsConfig": { "edit-link": { "base": "https://github.com/qmk/qmk_firmware_docs/edit/master", @@ -18,6 +18,8 @@ } ] }, - "favicon": "/favicon.png" + "favicon": { + "shortcut": "/favicon.png" + } } } From 68b8f378531bff355f3454d51169598039ff50f1 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sat, 20 May 2017 13:30:27 -0400 Subject: [PATCH 465/517] favicon --- book.json | 5 +---- gitbook/images/favicon.ico | Bin 0 -> 117248 bytes favicon.png => gitbook/images/favicon.png | Bin 3 files changed, 1 insertion(+), 4 deletions(-) create mode 100644 gitbook/images/favicon.ico rename favicon.png => gitbook/images/favicon.png (100%) diff --git a/book.json b/book.json index 3b1fdc94f6..6e0db19c94 100644 --- a/book.json +++ b/book.json @@ -2,7 +2,7 @@ "structure": { "readme": "Home.md" }, - "plugins" : ["toolbar", "edit-link", "favicon"], + "plugins" : ["toolbar", "edit-link"], "pluginsConfig": { "edit-link": { "base": "https://github.com/qmk/qmk_firmware_docs/edit/master", @@ -17,9 +17,6 @@ "url": "https://github.com/qmk/qmk_firmware" } ] - }, - "favicon": { - "shortcut": "/favicon.png" } } } diff --git a/gitbook/images/favicon.ico b/gitbook/images/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..bd9e65bce28f863fa35347a3fad35caaeda4dad0 GIT binary patch literal 117248 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 literal 0 HcmV?d00001 diff --git a/favicon.png b/gitbook/images/favicon.png similarity index 100% rename from favicon.png rename to gitbook/images/favicon.png From 3588bd694eb533bc7ebd709554e9991ab1134036 Mon Sep 17 00:00:00 2001 From: xyverz Date: Sat, 20 May 2017 18:39:59 -0700 Subject: [PATCH 466/517] Adding punctuation for clarity. --- Home.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Home.md b/Home.md index 3197933a87..bc1d25bf2e 100644 --- a/Home.md +++ b/Home.md @@ -50,7 +50,7 @@ If you use Dvorak, use `keymap_dvorak.h` instead of `keymap_colemak.h` for this These implementations assume you're using Colemak or Dvorak on your OS, not on your keyboard - this is referred to as a software-implemented layout. If your computer is in Qwerty and your keymap is in Colemak or Dvorak, this is referred to as a firmware-implemented layout, and you won't need these features. -To give an example, if you're using software-implemented Colemak, and want to get an `F`, you would use `CM_F` - `KC_F` under these same circumstances would result in `T`. +To give an example, if you're using software-implemented Colemak, and want to get an `F`, you would use `CM_F`. Using `KC_F` under these same circumstances would result in `T`. ## Backlight Breathing From 8cd9d2624633f4d9d23006b28fd99432964de756 Mon Sep 17 00:00:00 2001 From: Wojciech Siewierski Date: Sun, 21 May 2017 14:27:29 +0200 Subject: [PATCH 467/517] Update the dynamic macro docs according to the recent changes See qmk/qmk_firmware#1275. --- Macros.md | 32 +++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/Macros.md b/Macros.md index b5caef4246..577dec3349 100644 --- a/Macros.md +++ b/Macros.md @@ -147,7 +147,7 @@ And then, to assign this macro to a key on your keyboard layout, you just use `M 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`: +To enable them, first add a new element to the `planck_keycodes` enum — `DYNAMIC_MACRO_RANGE`: enum planck_keycodes { QWERTY = SAFE_RANGE, @@ -161,22 +161,19 @@ To enable them, first add a new element to the `planck_keycodes` enum -- `DYNAMI DYNAMIC_MACRO_RANGE, }; -Afterwards create a new layer called `_DYN`: +It must be the last element because `dynamic_macros.h` will add some more keycodes after it. - #define _DYN 6 /* almost any other free number should be ok */ - -Below these two modifications include the `dynamic_macro.h` header: +Below it include the `dynamic_macro.h` header: #include "dynamic_macro.h"` -Then define the `_DYN` layer with the following keys: `DYN_REC_START1`, `DYN_MACRO_PLAY1`,`DYN_REC_START2` and `DYN_MACRO_PLAY2`. It may also contain other keys, it doesn't matter apart from the fact that you won't be able to record these keys in the dynamic macros. +Add the following keys to your keymap: - [_DYN]= { - {_______, DYN_REC_START1, DYN_MACRO_PLAY1, _______, _______, _______, _______, _______, _______, _______, _______, _______}, - {_______, DYN_REC_START2, DYN_MACRO_PLAY2, _______, _______, _______, _______, _______, _______, _______, _______, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} - }, +- `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_MACRO_STOP` — finish the currently recorded macro. Add the following code to the very beginning of your `process_record_user()` function: @@ -184,7 +181,16 @@ Add the following code to the very beginning of your `process_record_user()` fun return false; } -To start recording the macro, press either `DYN_REC_START1` or `DYN_REC_START2`. To finish the recording, press the `_DYN` layer button. The handler awaits specifically for the `MO(_DYN)` keycode as the "stop signal" so please don't use any fancy ways to access this layer, use the regular `MO()` modifier. To replay the macro, press either `DYN_MACRO_PLAY1` or `DYN_MACRO_PLAY2`. +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). From 53b094934f2ddd9133da6482176ee214d4fbb86a Mon Sep 17 00:00:00 2001 From: Johannes Larsson Date: Mon, 22 May 2017 15:25:53 +0200 Subject: [PATCH 468/517] matrix layout --- keyboards/planck/config.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/planck/config.h b/keyboards/planck/config.h index 5cf96bb88c..50438a5d5a 100644 --- a/keyboards/planck/config.h +++ b/keyboards/planck/config.h @@ -32,8 +32,8 @@ along with this program. If not, see . #define MATRIX_COLS 12 /* Planck PCB default pin-out */ -#define MATRIX_ROW_PINS { D0, D5, B5, B6 } -#define MATRIX_COL_PINS { F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 } +#define MATRIX_ROW_PINS { F4, F5, F6, F7 } +#define MATRIX_COL_PINS { B1, B3, B2, B6, B5, B4, E6, D7, C6, D4, D0, D1 } #define UNUSED_PINS #define AUDIO_VOICES From 260ddd3290fd0270cd273cc939437e3896fa4fa2 Mon Sep 17 00:00:00 2001 From: Erez Zukerman Date: Tue, 23 May 2017 22:58:35 -0400 Subject: [PATCH 469/517] quick table tweak --- Keycodes.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Keycodes.md b/Keycodes.md index 0c185716a9..c27c843052 100644 --- a/Keycodes.md +++ b/Keycodes.md @@ -41,10 +41,10 @@ Keycodes in QMK are based on [HID Usage Keyboard/Keypad Page(0x07)](http://www.u |KC_EQUAL|KC_EQL|= and +| |KC_LBRACKET|KC_LBRC|[ and {| |KC_RBRACKET|KC_RBRC|] and }| -|KC_BSLASH|KC_BSLS|\\ and \|| +|KC_BSLASH|KC_BSLS|\\ and \| |KC_NONUS_HASH|KC_NUHS|Non-US # and ~| |KC_NONUS_BSLASH|KC_NUBS|Non-US \ and | -|KC_INT1|KC_RO|JIS \\ and \|| +|KC_INT1|KC_RO|JIS \\ and \| |KC_INT2|KC_KANA|International216| |KC_INT3|KC_JYEN|Yen Symbol (¥)| |KC_SCOLON|KC_SCLN|; and :| @@ -225,4 +225,4 @@ The following keys can be used to turn on and off various "Magic" features. Thes |MAGIC_UNSWAP_BACKSLASH_BACKSPACE||Turn the Backslash/Backspace swap off| |MAGIC_HOST_NKRO||Turn NKRO on| |MAGIC_UNHOST_NKRO||Turn NKRO off| -|MAGIC_TOGGLE_NKRO||Toggle NKRO on or off| \ No newline at end of file +|MAGIC_TOGGLE_NKRO||Toggle NKRO on or off| From 9359abf33e121de5f9d1c726087d9e7db384e47f Mon Sep 17 00:00:00 2001 From: Erez Zukerman Date: Tue, 23 May 2017 23:03:30 -0400 Subject: [PATCH 470/517] surrounds stuff with backticks --- Keycodes.md | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/Keycodes.md b/Keycodes.md index c27c843052..1d48a9ac6a 100644 --- a/Keycodes.md +++ b/Keycodes.md @@ -32,27 +32,27 @@ Keycodes in QMK are based on [HID Usage Keyboard/Keypad Page(0x07)](http://www.u |Long Name|Short Name|Description| |---------|----------|-----------| -|KC_ENTER|KC_ENT|Return (ENTER)| -|KC_ESCAPE|KC_ESC|ESCAPE| -|KC_BSPACE|KC_BSPC|DELETE (Backspace)| -|KC_TAB||Tab| +|KC_ENTER|KC_ENT|`Return (ENTER)`| +|KC_ESCAPE|KC_ESC|`ESCAPE`| +|KC_BSPACE|KC_BSPC|`DELETE (Backspace)`| +|KC_TAB||`Tab`| |KC_SPACE|KC_SPC|Spacebar| -|KC_MINUS|KC_MINS|- and (underscore)| -|KC_EQUAL|KC_EQL|= and +| -|KC_LBRACKET|KC_LBRC|[ and {| -|KC_RBRACKET|KC_RBRC|] and }| -|KC_BSLASH|KC_BSLS|\\ and \| -|KC_NONUS_HASH|KC_NUHS|Non-US # and ~| -|KC_NONUS_BSLASH|KC_NUBS|Non-US \ and | -|KC_INT1|KC_RO|JIS \\ and \| +|KC_MINUS|KC_MINS|`-` and `_`| +|KC_EQUAL|KC_EQL|`=` and `+`| +|KC_LBRACKET|KC_LBRC|`[` and `{`| +|KC_RBRACKET|KC_RBRC|`]` and `}`| +|KC_BSLASH|KC_BSLS|`\` and `|` | +|KC_NONUS_HASH|KC_NUHS|Non-US `#` and `~`| +|KC_NONUS_BSLASH|KC_NUBS|Non-US `\` and `|` | +|KC_INT1|KC_RO|JIS `\` and `|` | |KC_INT2|KC_KANA|International216| -|KC_INT3|KC_JYEN|Yen Symbol (¥)| -|KC_SCOLON|KC_SCLN|; and :| -|KC_QUOTE|KC_QUOT|‘ and “| +|KC_INT3|KC_JYEN|Yen Symbol (`¥`)| +|KC_SCOLON|KC_SCLN|`;` and `:`| +|KC_QUOTE|KC_QUOT|`‘` and `“`| |KC_GRAVE|KC_GRV|Grave Accent and Tilde| -|KC_COMMA|KC_COMM|, and <| -|KC_DOT||. and >| -|KC_SLASH|KC_SLSH|/ and ?| +|KC_COMMA|KC_COMM|`,` and `<`| +|KC_DOT||`.` and `>`| +|KC_SLASH|KC_SLSH|`/` and `?`| |KC_CAPSLOCK|KC_CAPS|Caps Lock| ## Modifiers From be4ece0f3e76d3e9c15db849f453f423883ce21c Mon Sep 17 00:00:00 2001 From: Erez Zukerman Date: Tue, 23 May 2017 23:05:19 -0400 Subject: [PATCH 471/517] grrr --- Keycodes.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Keycodes.md b/Keycodes.md index 1d48a9ac6a..55891e3ce9 100644 --- a/Keycodes.md +++ b/Keycodes.md @@ -41,10 +41,10 @@ Keycodes in QMK are based on [HID Usage Keyboard/Keypad Page(0x07)](http://www.u |KC_EQUAL|KC_EQL|`=` and `+`| |KC_LBRACKET|KC_LBRC|`[` and `{`| |KC_RBRACKET|KC_RBRC|`]` and `}`| -|KC_BSLASH|KC_BSLS|`\` and `|` | +|KC_BSLASH|KC_BSLS|`\` and | | |KC_NONUS_HASH|KC_NUHS|Non-US `#` and `~`| -|KC_NONUS_BSLASH|KC_NUBS|Non-US `\` and `|` | -|KC_INT1|KC_RO|JIS `\` and `|` | +|KC_NONUS_BSLASH|KC_NUBS|Non-US `\` and `|` | +|KC_INT1|KC_RO|JIS `\` and `|` | |KC_INT2|KC_KANA|International216| |KC_INT3|KC_JYEN|Yen Symbol (`¥`)| |KC_SCOLON|KC_SCLN|`;` and `:`| From 870aaa0a7e10c95fd2ebbd10a55d8642761b0133 Mon Sep 17 00:00:00 2001 From: Erez Zukerman Date: Tue, 23 May 2017 23:06:35 -0400 Subject: [PATCH 472/517] pipes without backtics --- Keycodes.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Keycodes.md b/Keycodes.md index 55891e3ce9..c9de6a9220 100644 --- a/Keycodes.md +++ b/Keycodes.md @@ -43,8 +43,8 @@ Keycodes in QMK are based on [HID Usage Keyboard/Keypad Page(0x07)](http://www.u |KC_RBRACKET|KC_RBRC|`]` and `}`| |KC_BSLASH|KC_BSLS|`\` and | | |KC_NONUS_HASH|KC_NUHS|Non-US `#` and `~`| -|KC_NONUS_BSLASH|KC_NUBS|Non-US `\` and `|` | -|KC_INT1|KC_RO|JIS `\` and `|` | +|KC_NONUS_BSLASH|KC_NUBS|Non-US `\` and | | +|KC_INT1|KC_RO|JIS `\` and | | |KC_INT2|KC_KANA|International216| |KC_INT3|KC_JYEN|Yen Symbol (`¥`)| |KC_SCOLON|KC_SCLN|`;` and `:`| From e90a00c88c6c6b5eff38d708966c7494f1646f87 Mon Sep 17 00:00:00 2001 From: Erez Zukerman Date: Tue, 23 May 2017 23:09:19 -0400 Subject: [PATCH 473/517] then some code blocks --- Keycodes.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Keycodes.md b/Keycodes.md index c9de6a9220..e83842cbbf 100644 --- a/Keycodes.md +++ b/Keycodes.md @@ -41,10 +41,10 @@ Keycodes in QMK are based on [HID Usage Keyboard/Keypad Page(0x07)](http://www.u |KC_EQUAL|KC_EQL|`=` and `+`| |KC_LBRACKET|KC_LBRC|`[` and `{`| |KC_RBRACKET|KC_RBRC|`]` and `}`| -|KC_BSLASH|KC_BSLS|`\` and | | +|KC_BSLASH|KC_BSLS|`\` and | | |KC_NONUS_HASH|KC_NUHS|Non-US `#` and `~`| -|KC_NONUS_BSLASH|KC_NUBS|Non-US `\` and | | -|KC_INT1|KC_RO|JIS `\` and | | +|KC_NONUS_BSLASH|KC_NUBS|Non-US `\` and | | +|KC_INT1|KC_RO|JIS `\` and | | |KC_INT2|KC_KANA|International216| |KC_INT3|KC_JYEN|Yen Symbol (`¥`)| |KC_SCOLON|KC_SCLN|`;` and `:`| From a965e5b7356b7ebaee7b7cd64db19330758ec6ee Mon Sep 17 00:00:00 2001 From: Erez Zukerman Date: Wed, 24 May 2017 07:56:41 -0400 Subject: [PATCH 474/517] tweaks default mouse speed constants --- keyboards/ergodox/config.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/ergodox/config.h b/keyboards/ergodox/config.h index 994a8c6433..e870835d85 100644 --- a/keyboards/ergodox/config.h +++ b/keyboards/ergodox/config.h @@ -3,8 +3,8 @@ #define MOUSEKEY_INTERVAL 20 #define MOUSEKEY_DELAY 0 -#define MOUSEKEY_TIME_TO_MAX 5 -#define MOUSEKEY_MAX_SPEED 2 +#define MOUSEKEY_TIME_TO_MAX 40 +#define MOUSEKEY_MAX_SPEED 7 #define MOUSEKEY_WHEEL_DELAY 0 #define TAPPING_TOGGLE 1 From 690957cdbd77307b7f1c17acb70ab839eac86e3d Mon Sep 17 00:00:00 2001 From: Johannes Larsson Date: Wed, 24 May 2017 19:00:56 +0200 Subject: [PATCH 475/517] media keys and stuff --- keyboards/planck/config.h | 2 +- keyboards/planck/keymaps/johannes/keymap.c | 71 +++++----------------- 2 files changed, 15 insertions(+), 58 deletions(-) diff --git a/keyboards/planck/config.h b/keyboards/planck/config.h index 50438a5d5a..1311bb09b6 100644 --- a/keyboards/planck/config.h +++ b/keyboards/planck/config.h @@ -33,7 +33,7 @@ along with this program. If not, see . /* Planck PCB default pin-out */ #define MATRIX_ROW_PINS { F4, F5, F6, F7 } -#define MATRIX_COL_PINS { B1, B3, B2, B6, B5, B4, E6, D7, C6, D4, D0, D1 } +#define MATRIX_COL_PINS { B1, B3, B2, B6, B5, B4, D2, D7, C6, D4, D0, D1 } #define UNUSED_PINS #define AUDIO_VOICES diff --git a/keyboards/planck/keymaps/johannes/keymap.c b/keyboards/planck/keymaps/johannes/keymap.c index 51c8f7a095..13bb11798d 100644 --- a/keyboards/planck/keymaps/johannes/keymap.c +++ b/keyboards/planck/keymaps/johannes/keymap.c @@ -8,6 +8,10 @@ // Fillers to make layering more clear #define _______ KC_TRNS #define XXXXXXX KC_NO +#define QWERTY 0 +#define LOWER 1 +#define RAISE 2 +#define FUNCTION 3 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -21,13 +25,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------+------+------+------+------+------+------| * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' - */ + * [0] = { {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, {KC_LCTRL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, {TG(1), XXXXXXX, XXXXXXX, KC_LGUI, KC_LSHIFT, KC_SPC, M(2), M(1), KC_LALT, KC_RALT, XXXXXXX, M(3)} -}, +},*/ /* Qwerty * ,-----------------------------------------------------------------------------------. @@ -40,11 +44,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | super|shift | Space|Raise | lower| alt | altgr| |fn | * `-----------------------------------------------------------------------------------' */ -[1] = { +[QWERTY] = { {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, {KC_LCTRL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, - {_______, XXXXXXX, XXXXXXX, KC_LGUI, KC_LSHIFT, KC_SPC, M(2), M(1), KC_LALT, KC_RALT, XXXXXXX, M(3)} + {_______, XXXXXXX, LT(FUNCTION, KC_MPLY), KC_LGUI, KC_LSHIFT, KC_SPC, MO(RAISE), MO(LOWER), KC_LALT, KC_RALT, XXXXXXX, MO(FUNCTION)} }, /* Lower @@ -58,9 +62,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |Reset | | | | | | | | | | | * `-----------------------------------------------------------------------------------' */ -[2] = { +[LOWER] = { {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, - {_______, _______, KC_LCBR, KC_RCBR, KC_PLUS, _______, _______, RALT(KC_P), RALT(KC_Q), RALT(KC_P), KC_UNDS, _______}, + {_______, _______, KC_LCBR, KC_RCBR, KC_PLUS, _______, _______, RALT(KC_W), RALT(KC_Q), RALT(KC_P), KC_UNDS, _______}, {_______, _______, _______, _______, _______, _______, _______,_______, _______,_______, KC_BSLS, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} }, @@ -76,7 +80,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' */ -[3] = { +[RAISE] = { {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL}, {_______, _______, KC_LBRC, KC_RBRC, KC_EQL, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_MINS, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PIPE, _______}, @@ -84,11 +88,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }, // Fn-layer -[4] = { +[FUNCTION] = { {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} + {_______, _______, _______, _______, _______, _______, KC_MEDIA_PREV_TRACK, KC_AUDIO_VOL_DOWN, KC_AUDIO_VOL_UP, KC_MEDIA_NEXT_TRACK, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, KC_AUDIO_MUTE, _______, _______, _______, _______} }, }; @@ -99,52 +103,5 @@ const uint16_t PROGMEM fn_actions[] = { const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { - switch(id) { - case 1: - if (record->event.pressed) { - layer_on(2); - } else { - layer_off(2); - } - break; - case 2: - if (record->event.pressed) { - layer_on(3); - } else { - layer_off(3); - } - break; - case 3: - if (record->event.pressed) { - layer_on(4); - } else { - layer_off(4); - } - break; - case 4: // å - if (record->event.pressed) { - register_code(KC_RALT); - register_code(KC_W); - } else { - unregister_code(KC_RALT); - } - break; - case 5: // ä - if (record->event.pressed) { - register_code(KC_RALT); - register_code(KC_Q); - } else { - unregister_code(KC_RALT); - } - break; - case 6: // ö - if (record->event.pressed) { - register_code(KC_RALT); - register_code(KC_P); - } else { - unregister_code(KC_RALT); - } - break; - } return MACRO_NONE; }; From e4f1b238b3242c63bed332f3ca3c4bcfccc9ca14 Mon Sep 17 00:00:00 2001 From: Johannes Larsson Date: Wed, 24 May 2017 21:24:13 +0200 Subject: [PATCH 476/517] revert changes to config.h --- keyboards/planck/config.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/planck/config.h b/keyboards/planck/config.h index 1311bb09b6..5cf96bb88c 100644 --- a/keyboards/planck/config.h +++ b/keyboards/planck/config.h @@ -32,8 +32,8 @@ along with this program. If not, see . #define MATRIX_COLS 12 /* Planck PCB default pin-out */ -#define MATRIX_ROW_PINS { F4, F5, F6, F7 } -#define MATRIX_COL_PINS { B1, B3, B2, B6, B5, B4, D2, D7, C6, D4, D0, D1 } +#define MATRIX_ROW_PINS { D0, D5, B5, B6 } +#define MATRIX_COL_PINS { F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 } #define UNUSED_PINS #define AUDIO_VOICES From 6d08de5c67c8b9bf50ca319922a028b93c6a3f35 Mon Sep 17 00:00:00 2001 From: Johannes Larsson Date: Wed, 24 May 2017 21:35:31 +0200 Subject: [PATCH 477/517] readme, media keys fix --- keyboards/planck/keymaps/johannes/keymap.c | 40 +++++++----------- .../planck/keymaps/johannes/planck-layout.png | Bin 0 -> 19661 bytes keyboards/planck/keymaps/johannes/readme.md | 6 ++- 3 files changed, 21 insertions(+), 25 deletions(-) create mode 100644 keyboards/planck/keymaps/johannes/planck-layout.png diff --git a/keyboards/planck/keymaps/johannes/keymap.c b/keyboards/planck/keymaps/johannes/keymap.c index 13bb11798d..a3376518ba 100644 --- a/keyboards/planck/keymaps/johannes/keymap.c +++ b/keyboards/planck/keymaps/johannes/keymap.c @@ -15,24 +15,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* Colemak - * ,-----------------------------------------------------------------------------------. - * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | A | R | S | T | D | H | N | E | I | O | " | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | - * `-----------------------------------------------------------------------------------' - * -[0] = { - {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, - {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, - {KC_LCTRL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, - {TG(1), XXXXXXX, XXXXXXX, KC_LGUI, KC_LSHIFT, KC_SPC, M(2), M(1), KC_LALT, KC_RALT, XXXXXXX, M(3)} -},*/ - /* Qwerty * ,-----------------------------------------------------------------------------------. * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | @@ -41,14 +23,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------|------+------+------+------+------+------| * | Ctrl | Z | X | C | V | B | N | M | , | . | / |Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | super|shift | Space|Raise | lower| alt | altgr| |fn | + * | | alt |play/p| super|shift | Space|Raise | lower| alt | altgr| |fn | * `-----------------------------------------------------------------------------------' */ [QWERTY] = { {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, {KC_LCTRL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, - {_______, XXXXXXX, LT(FUNCTION, KC_MPLY), KC_LGUI, KC_LSHIFT, KC_SPC, MO(RAISE), MO(LOWER), KC_LALT, KC_RALT, XXXXXXX, MO(FUNCTION)} + {_______, KC_LALT, LT(FUNCTION, KC_MPLY), KC_LGUI, KC_LSHIFT, KC_SPC, MO(RAISE), MO(LOWER), KC_LALT, KC_RALT, XXXXXXX, MO(FUNCTION)} }, /* Lower @@ -59,7 +41,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------|------+------+------+------+------+------| * | | | | | | | | | | | \ | | * |------+------+------+------+------+------+------+------+------+------+------+------| - * |Reset | | | | | | | | | | | + * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' */ [LOWER] = { @@ -87,12 +69,22 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} }, -// Fn-layer +/* Fn + * ,-----------------------------------------------------------------------------------. + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 ' + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | | | | | prev | vol.d| vo.up| next | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | | | | | | mute | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | CAPS | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ [FUNCTION] = { {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12}, - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, {_______, _______, _______, _______, _______, _______, KC_MEDIA_PREV_TRACK, KC_AUDIO_VOL_DOWN, KC_AUDIO_VOL_UP, KC_MEDIA_NEXT_TRACK, _______, _______}, - {_______, _______, _______, _______, _______, _______, _______, KC_AUDIO_MUTE, _______, _______, _______, _______} + {_______, _______, _______, _______, _______, _______, _______, KC_AUDIO_MUTE, _______, _______, _______, _______}, + {_______, _______, _______, _______, KC_CAPS, _______, _______, _______, _______, _______, _______, _______} }, }; diff --git a/keyboards/planck/keymaps/johannes/planck-layout.png b/keyboards/planck/keymaps/johannes/planck-layout.png new file mode 100644 index 0000000000000000000000000000000000000000..e863b802cd8c2bd06c85a1d0fd1d047382884ecb GIT binary patch literal 19661 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 Date: Wed, 24 May 2017 20:13:03 -0700 Subject: [PATCH 478/517] Fix typo in Macro.md in dynamic macro section. --- Macros.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Macros.md b/Macros.md index 577dec3349..78290bbf69 100644 --- a/Macros.md +++ b/Macros.md @@ -173,7 +173,7 @@ Add the following keys to your keymap: - `DYN_REC_START2` — start recording the macro 2, - `DYN_MACRO_PLAY1` — replay the macro 1, - `DYN_MACRO_PLAY2` — replay the macro 2, -- `DYN_MACRO_STOP` — finish the currently recorded macro. +- `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: From 6a0b13191b9090e8aff32662fc8220212a84db8b Mon Sep 17 00:00:00 2001 From: Damien Date: Fri, 26 May 2017 16:00:48 +0200 Subject: [PATCH 479/517] Update Modding-your-keyboard.md Updated `USART version` chapter. I think there were 2 `#endif` too . --- Modding-your-keyboard.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/Modding-your-keyboard.md b/Modding-your-keyboard.md index 9d3e0319d5..5d4b5d40f8 100644 --- a/Modding-your-keyboard.md +++ b/Modding-your-keyboard.md @@ -225,8 +225,6 @@ In your keyboard config.h: #define PS2_USART_ERROR (UCSR1A & ((1< Date: Fri, 26 May 2017 20:35:31 +0200 Subject: [PATCH 480/517] - Added integration of IBM Trackpoint --- keyboards/handwired/trackpoint/Makefile | 3 + keyboards/handwired/trackpoint/README.md | 7 ++ keyboards/handwired/trackpoint/config.h | 75 +++++++++++++++++++ .../trackpoint/keymaps/default/keymap.c | 7 ++ keyboards/handwired/trackpoint/rules.mk | 25 +++++++ keyboards/handwired/trackpoint/trackpoint.c | 5 ++ keyboards/handwired/trackpoint/trackpoint.h | 13 ++++ tmk_core/common/action.c | 34 ++++++++- tmk_core/protocol/ps2_mouse.c | 29 +++---- 9 files changed, 180 insertions(+), 18 deletions(-) create mode 100644 keyboards/handwired/trackpoint/Makefile create mode 100644 keyboards/handwired/trackpoint/README.md create mode 100644 keyboards/handwired/trackpoint/config.h create mode 100644 keyboards/handwired/trackpoint/keymaps/default/keymap.c create mode 100644 keyboards/handwired/trackpoint/rules.mk create mode 100644 keyboards/handwired/trackpoint/trackpoint.c create mode 100644 keyboards/handwired/trackpoint/trackpoint.h diff --git a/keyboards/handwired/trackpoint/Makefile b/keyboards/handwired/trackpoint/Makefile new file mode 100644 index 0000000000..191c6bb664 --- /dev/null +++ b/keyboards/handwired/trackpoint/Makefile @@ -0,0 +1,3 @@ +ifndef MAKEFILE_INCLUDED + include ../../../Makefile +endif \ No newline at end of file diff --git a/keyboards/handwired/trackpoint/README.md b/keyboards/handwired/trackpoint/README.md new file mode 100644 index 0000000000..764ad984a4 --- /dev/null +++ b/keyboards/handwired/trackpoint/README.md @@ -0,0 +1,7 @@ +# IBM Trackpoint demonstration + +This is just a simple demo to show how to integrate IBM Trackpoint in QMK. + +Some documentation: +* [How to wire IBM Trackpoint](https://github.com/alonswartz/trackpoint) +* [QMK documentation](https://docs.qmk.fm/) diff --git a/keyboards/handwired/trackpoint/config.h b/keyboards/handwired/trackpoint/config.h new file mode 100644 index 0000000000..7558c03bf4 --- /dev/null +++ b/keyboards/handwired/trackpoint/config.h @@ -0,0 +1,75 @@ +#ifndef CONFIG_H + #define CONFIG_H + + #include "config_common.h" + + #define VENDOR_ID 0x1234 + #define PRODUCT_ID 0x5678 + #define DEVICE_VER 0x0001 + #define MANUFACTURER QMK + #define PRODUCT TRACKPOINT-DEMO + #define DESCRIPTION Simple demonstration for IBM Trackpoint integration + + #define MATRIX_ROWS 1 + #define MATRIX_COLS 3 + + #ifdef PS2_USE_USART + #define PS2_CLOCK_PORT PORTD + #define PS2_CLOCK_PIN PIND + #define PS2_CLOCK_DDR DDRD + #define PS2_CLOCK_BIT 5 + #define PS2_DATA_PORT PORTD + #define PS2_DATA_PIN PIND + #define PS2_DATA_DDR DDRD + #define PS2_DATA_BIT 2 + + /* synchronous, odd parity, 1-bit stop, 8-bit data, sample at falling edge */ + /* set DDR of CLOCK as input to be slave */ + #define PS2_USART_INIT() do { \ + PS2_CLOCK_DDR &= ~(1<mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ + ) + +#endif diff --git a/keyboards/handwired/trackpoint/keymaps/default/keymap.c b/keyboards/handwired/trackpoint/keymaps/default/keymap.c new file mode 100644 index 0000000000..22e46d98a7 --- /dev/null +++ b/keyboards/handwired/trackpoint/keymaps/default/keymap.c @@ -0,0 +1,7 @@ +#include "trackpoint.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = KEYMAP( + KC_BTN1, KC_BTN3, KC_BTN2 \ + ) +}; diff --git a/keyboards/handwired/trackpoint/rules.mk b/keyboards/handwired/trackpoint/rules.mk new file mode 100644 index 0000000000..0609dd3043 --- /dev/null +++ b/keyboards/handwired/trackpoint/rules.mk @@ -0,0 +1,25 @@ +MCU = atmega32u4 +F_CPU = 16000000 +ARCH = AVR8 +F_USB = $(F_CPU) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT +OPT_DEFS += -DBOOTLOADER_SIZE=512 +BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) +EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) +CONSOLE_ENABLE ?= yes # Console for debug(+400) +COMMAND_ENABLE ?= yes # Commands for debug and configuration +SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend +NKRO_ENABLE ?= no # USB Nkey Rollover +BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality on B7 by default +MIDI_ENABLE ?= no # MIDI controls +UNICODE_ENABLE ?= no # Unicode +BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE ?= no # Audio output on port C6 + +PS2_MOUSE_ENABLE ?= yes +PS2_USE_USART ?= yes + +ifndef QUANTUM_DIR + include ../../Makefile +endif diff --git a/keyboards/handwired/trackpoint/trackpoint.c b/keyboards/handwired/trackpoint/trackpoint.c new file mode 100644 index 0000000000..124995a642 --- /dev/null +++ b/keyboards/handwired/trackpoint/trackpoint.c @@ -0,0 +1,5 @@ +#include "trackpoint.h" + +void matrix_init_kb(void) { + +} diff --git a/keyboards/handwired/trackpoint/trackpoint.h b/keyboards/handwired/trackpoint/trackpoint.h new file mode 100644 index 0000000000..b5d73d7db5 --- /dev/null +++ b/keyboards/handwired/trackpoint/trackpoint.h @@ -0,0 +1,13 @@ +#ifndef TRACKPOINT_H +#define TRACKPOINT_H + +#include "quantum.h" + +#define KEYMAP( \ + k00, k01, k02 \ +) \ +{ \ + { k00, k01, k02} \ +} + +#endif diff --git a/tmk_core/common/action.c b/tmk_core/common/action.c index a534f818ec..f73b0fe807 100644 --- a/tmk_core/common/action.c +++ b/tmk_core/common/action.c @@ -34,6 +34,8 @@ along with this program. If not, see . #include "nodebug.h" #endif +int tp_buttons; + #ifdef FAUXCLICKY_ENABLE #include #endif @@ -311,11 +313,35 @@ void process_action(keyrecord_t *record, action_t action) /* Mouse key */ case ACT_MOUSEKEY: if (event.pressed) { - mousekey_on(action.key.code); - mousekey_send(); + switch (action.key.code) { + case KC_MS_BTN1: + tp_buttons |= (1<<0); + break; + case KC_MS_BTN2: + tp_buttons |= (1<<1); + break; + case KC_MS_BTN3: + tp_buttons |= (1<<2); + break; + default: + mousekey_on(action.key.code); + mousekey_send(); + } } else { - mousekey_off(action.key.code); - mousekey_send(); + switch (action.key.code) { + case KC_MS_BTN1: + tp_buttons &= ~(1<<0); + break; + case KC_MS_BTN2: + tp_buttons &= ~(1<<1); + break; + case KC_MS_BTN3: + tp_buttons &= ~(1<<2); + break; + default: + mousekey_off(action.key.code); + mousekey_send(); + } } break; #endif diff --git a/tmk_core/protocol/ps2_mouse.c b/tmk_core/protocol/ps2_mouse.c index d9ccbecb43..4ed3cae1fd 100644 --- a/tmk_core/protocol/ps2_mouse.c +++ b/tmk_core/protocol/ps2_mouse.c @@ -72,12 +72,13 @@ void ps2_mouse_init_user(void) { void ps2_mouse_task(void) { static uint8_t buttons_prev = 0; + extern int tp_buttons; /* receives packet from mouse */ uint8_t rcv; rcv = ps2_host_send(PS2_MOUSE_READ_DATA); if (rcv == PS2_ACK) { - mouse_report.buttons = ps2_host_recv_response(); + mouse_report.buttons = ps2_host_recv_response() | tp_buttons; mouse_report.x = ps2_host_recv_response() * PS2_MOUSE_X_MULTIPLIER; mouse_report.y = ps2_host_recv_response() * PS2_MOUSE_Y_MULTIPLIER; #ifdef PS2_MOUSE_ENABLE_SCROLLING @@ -106,34 +107,34 @@ void ps2_mouse_task(void) { #endif host_mouse_send(&mouse_report); } - + ps2_mouse_clear_report(&mouse_report); } void ps2_mouse_disable_data_reporting(void) { - PS2_MOUSE_SEND(PS2_MOUSE_DISABLE_DATA_REPORTING, "ps2 mouse disable data reporting"); + PS2_MOUSE_SEND(PS2_MOUSE_DISABLE_DATA_REPORTING, "ps2 mouse disable data reporting"); } void ps2_mouse_enable_data_reporting(void) { PS2_MOUSE_SEND(PS2_MOUSE_ENABLE_DATA_REPORTING, "ps2 mouse enable data reporting"); } -void ps2_mouse_set_remote_mode(void) { - PS2_MOUSE_SEND_SAFE(PS2_MOUSE_SET_REMOTE_MODE, "ps2 mouse set remote mode"); +void ps2_mouse_set_remote_mode(void) { + PS2_MOUSE_SEND_SAFE(PS2_MOUSE_SET_REMOTE_MODE, "ps2 mouse set remote mode"); ps2_mouse_mode = PS2_MOUSE_REMOTE_MODE; } -void ps2_mouse_set_stream_mode(void) { - PS2_MOUSE_SEND_SAFE(PS2_MOUSE_SET_STREAM_MODE, "ps2 mouse set stream mode"); +void ps2_mouse_set_stream_mode(void) { + PS2_MOUSE_SEND_SAFE(PS2_MOUSE_SET_STREAM_MODE, "ps2 mouse set stream mode"); ps2_mouse_mode = PS2_MOUSE_STREAM_MODE; } void ps2_mouse_set_scaling_2_1(void) { - PS2_MOUSE_SEND_SAFE(PS2_MOUSE_SET_SCALING_2_1, "ps2 mouse set scaling 2:1"); + PS2_MOUSE_SEND_SAFE(PS2_MOUSE_SET_SCALING_2_1, "ps2 mouse set scaling 2:1"); } void ps2_mouse_set_scaling_1_1(void) { - PS2_MOUSE_SEND_SAFE(PS2_MOUSE_SET_SCALING_1_1, "ps2 mouse set scaling 1:1"); + PS2_MOUSE_SEND_SAFE(PS2_MOUSE_SET_SCALING_1_1, "ps2 mouse set scaling 1:1"); } void ps2_mouse_set_resolution(ps2_mouse_resolution_t resolution) { @@ -204,9 +205,9 @@ static inline void ps2_mouse_enable_scrolling(void) { #define PRESS_SCROLL_BUTTONS mouse_report->buttons |= (PS2_MOUSE_SCROLL_BTN_MASK) #define RELEASE_SCROLL_BUTTONS mouse_report->buttons &= ~(PS2_MOUSE_SCROLL_BTN_MASK) static inline void ps2_mouse_scroll_button_task(report_mouse_t *mouse_report) { - static enum { - SCROLL_NONE, - SCROLL_BTN, + static enum { + SCROLL_NONE, + SCROLL_BTN, SCROLL_SENT, } scroll_state = SCROLL_NONE; static uint16_t scroll_button_time = 0; @@ -228,10 +229,10 @@ static inline void ps2_mouse_scroll_button_task(report_mouse_t *mouse_report) { mouse_report->y = 0; } } else if (0 == (PS2_MOUSE_SCROLL_BTN_MASK & mouse_report->buttons)) { - // None of the scroll buttons are pressed + // None of the scroll buttons are pressed #if PS2_MOUSE_SCROLL_BTN_SEND - if (scroll_state == SCROLL_BTN + if (scroll_state == SCROLL_BTN && timer_elapsed(scroll_button_time) < PS2_MOUSE_SCROLL_BTN_SEND) { PRESS_SCROLL_BUTTONS; host_mouse_send(mouse_report); From 6b994ecd82f660feb44bac376ae7d0147d40d818 Mon Sep 17 00:00:00 2001 From: dbroqua Date: Fri, 26 May 2017 21:27:11 +0200 Subject: [PATCH 481/517] - Added schematic for Trackpoint demonstration --- keyboards/handwired/trackpoint/README.md | 3 +++ keyboards/handwired/trackpoint/wiring.png | Bin 0 -> 7217 bytes 2 files changed, 3 insertions(+) create mode 100644 keyboards/handwired/trackpoint/wiring.png diff --git a/keyboards/handwired/trackpoint/README.md b/keyboards/handwired/trackpoint/README.md index 764ad984a4..a22fca295e 100644 --- a/keyboards/handwired/trackpoint/README.md +++ b/keyboards/handwired/trackpoint/README.md @@ -2,6 +2,9 @@ This is just a simple demo to show how to integrate IBM Trackpoint in QMK. +Wiring used in the demonstration: +![Wiring example](./wiring.png) + Some documentation: * [How to wire IBM Trackpoint](https://github.com/alonswartz/trackpoint) * [QMK documentation](https://docs.qmk.fm/) diff --git a/keyboards/handwired/trackpoint/wiring.png b/keyboards/handwired/trackpoint/wiring.png new file mode 100644 index 0000000000000000000000000000000000000000..45806e007bc4ff87592e86d72a8fdbbf96a6a6e3 GIT binary patch literal 7217 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 U)?fra_d&*nXMW8)dFj^w0E3z>EC2ui literal 0 HcmV?d00001 From fa1b92fbb10ecf423d0c611ee2a39fca59376a1d Mon Sep 17 00:00:00 2001 From: yiancar Date: Fri, 26 May 2017 21:58:43 +0100 Subject: [PATCH 482/517] Use variable to disable usb check at startup Adds a define variable which when defined disables the usb startup check. Modified the makefile to separate above define from bluetooth dependancy --- tmk_core/common.mk | 20 ++++++++++++++------ tmk_core/protocol/lufa/lufa.c | 2 +- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/tmk_core/common.mk b/tmk_core/common.mk index 3e0bd7dbc8..edec2acb4a 100644 --- a/tmk_core/common.mk +++ b/tmk_core/common.mk @@ -95,27 +95,35 @@ endif ifeq ($(strip $(BLUETOOTH_ENABLE)), yes) TMK_COMMON_DEFS += -DBLUETOOTH_ENABLE + TMK_COMMON_DEFS += -DNO_USB_STARTUP_CHECK endif ifeq ($(strip $(BLUETOOTH)), AdafruitBLE) - TMK_COMMON_DEFS += -DBLUETOOTH_ENABLE - TMK_COMMON_DEFS += -DMODULE_ADAFRUIT_BLE + TMK_COMMON_DEFS += -DBLUETOOTH_ENABLE + TMK_COMMON_DEFS += -DMODULE_ADAFRUIT_BLE + TMK_COMMON_DEFS += -DNO_USB_STARTUP_CHECK endif ifeq ($(strip $(BLUETOOTH)), AdafruitEZKey) - TMK_COMMON_DEFS += -DBLUETOOTH_ENABLE - TMK_COMMON_DEFS += -DMODULE_ADAFRUIT_EZKEY + TMK_COMMON_DEFS += -DBLUETOOTH_ENABLE + TMK_COMMON_DEFS += -DMODULE_ADAFRUIT_EZKEY + TMK_COMMON_DEFS += -DNO_USB_STARTUP_CHECK endif ifeq ($(strip $(BLUETOOTH)), RN42) - TMK_COMMON_DEFS += -DBLUETOOTH_ENABLE - TMK_COMMON_DEFS += -DMODULE_RN42 + TMK_COMMON_DEFS += -DBLUETOOTH_ENABLE + TMK_COMMON_DEFS += -DMODULE_RN42 + TMK_COMMON_DEFS += -DNO_USB_STARTUP_CHECK endif ifeq ($(strip $(ONEHAND_ENABLE)), yes) TMK_COMMON_DEFS += -DONEHAND_ENABLE endif +ifeq ($(strip $(NO_USB_STARTUP_CHECK)), yes) + TMK_COMMON_DEFS += -DNO_USB_STARTUP_CHECK +endif + ifeq ($(strip $(KEYMAP_SECTION_ENABLE)), yes) TMK_COMMON_DEFS += -DKEYMAP_SECTION_ENABLE diff --git a/tmk_core/protocol/lufa/lufa.c b/tmk_core/protocol/lufa/lufa.c index ae6129d1a2..3c4ad4b4d2 100644 --- a/tmk_core/protocol/lufa/lufa.c +++ b/tmk_core/protocol/lufa/lufa.c @@ -1180,7 +1180,7 @@ int main(void) print("Keyboard start.\n"); while (1) { - #if !defined(BLUETOOTH_ENABLE) + #if !defined(NO_USB_STARTUP_CHECK) while (USB_DeviceState == DEVICE_STATE_Suspended) { print("[s]"); suspend_power_down(); From e7fccabb1cd855948fb8f248d607b6c6d61d0ea5 Mon Sep 17 00:00:00 2001 From: Maarten Dekkers Date: Sat, 27 May 2017 12:34:16 +0200 Subject: [PATCH 483/517] Mention that TT needs 5 taps by default. Also gave an example of defining the amount of taps needed. --- Key-Functions.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Key-Functions.md b/Key-Functions.md index 6779982c38..955a280610 100644 --- a/Key-Functions.md +++ b/Key-Functions.md @@ -18,7 +18,7 @@ Instead of using `FNx` when defining `ACTION_*` functions, you can use `F(x)` - `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). +`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 1` for just one tap. ### Fun with modifier keys @@ -91,4 +91,4 @@ We've added shortcuts to make common modifier/tap (mod-tap) mappings more compac * `GUI_T(kc)` - is LGUI when held and *kc* when tapped * `ALL_T(kc)` - is Hyper (all mods) when held and *kc* when tapped. To read more about what you can do with a Hyper key, see [this blog post by Brett Terpstra](http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/) * `LCAG_T(kc)` - is CtrlAltGui when held and *kc* when tapped - * `MEH_T(kc)` - is like Hyper, but not as cool -- does not include the Cmd/Win key, so just sends Alt+Ctrl+Shift. \ No newline at end of file + * `MEH_T(kc)` - is like Hyper, but not as cool -- does not include the Cmd/Win key, so just sends Alt+Ctrl+Shift. From bb2a8c36119dd63d4a8fd483ddd493795ec2bfc3 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sat, 27 May 2017 14:56:13 +0000 Subject: [PATCH 484/517] Updates book.json Auto commit by GitBook Editor --- book.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/book.json b/book.json index 6e0db19c94..ee374b9c58 100644 --- a/book.json +++ b/book.json @@ -2,7 +2,7 @@ "structure": { "readme": "Home.md" }, - "plugins" : ["toolbar", "edit-link"], + "plugins" : ["toolbar", "edit-link", "anchors"], "pluginsConfig": { "edit-link": { "base": "https://github.com/qmk/qmk_firmware_docs/edit/master", From 7e84b0e3b3d4d5f53c774465c465a17bafb06f7a Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sat, 27 May 2017 18:14:21 -0400 Subject: [PATCH 485/517] move old doc to docs --- {doc => docs}/BUILD_GUIDE.md | 0 {doc => docs}/CYGWIN_GUIDE.md | 0 {doc => docs}/FUSE.txt | 0 {doc => docs}/HAND_WIRE.md | 0 {doc => docs}/PCB_GUIDE.md | 0 {doc => docs}/POWER.txt | 0 {doc => docs}/TMK_README.md | 0 {doc => docs}/USB_NKRO.txt | 0 {doc => docs}/VAGRANT_GUIDE.md | 0 {doc => docs}/basic_how_keyboards_work.md | 0 {doc => docs}/build_old.md | 0 {doc => docs}/keycode.txt | 0 {doc => docs}/keymap_config_h_example.h | 0 {doc => docs}/keymap_makefile_example.mk | 0 doc/keymap.md => docs/keymap_old.md | 0 {doc => docs}/other_projects.md | 0 16 files changed, 0 insertions(+), 0 deletions(-) rename {doc => docs}/BUILD_GUIDE.md (100%) rename {doc => docs}/CYGWIN_GUIDE.md (100%) mode change 100755 => 100644 rename {doc => docs}/FUSE.txt (100%) rename {doc => docs}/HAND_WIRE.md (100%) rename {doc => docs}/PCB_GUIDE.md (100%) rename {doc => docs}/POWER.txt (100%) rename {doc => docs}/TMK_README.md (100%) rename {doc => docs}/USB_NKRO.txt (100%) rename {doc => docs}/VAGRANT_GUIDE.md (100%) rename {doc => docs}/basic_how_keyboards_work.md (100%) rename {doc => docs}/build_old.md (100%) rename {doc => docs}/keycode.txt (100%) rename {doc => docs}/keymap_config_h_example.h (100%) rename {doc => docs}/keymap_makefile_example.mk (100%) rename doc/keymap.md => docs/keymap_old.md (100%) rename {doc => docs}/other_projects.md (100%) diff --git a/doc/BUILD_GUIDE.md b/docs/BUILD_GUIDE.md similarity index 100% rename from doc/BUILD_GUIDE.md rename to docs/BUILD_GUIDE.md diff --git a/doc/CYGWIN_GUIDE.md b/docs/CYGWIN_GUIDE.md old mode 100755 new mode 100644 similarity index 100% rename from doc/CYGWIN_GUIDE.md rename to docs/CYGWIN_GUIDE.md diff --git a/doc/FUSE.txt b/docs/FUSE.txt similarity index 100% rename from doc/FUSE.txt rename to docs/FUSE.txt diff --git a/doc/HAND_WIRE.md b/docs/HAND_WIRE.md similarity index 100% rename from doc/HAND_WIRE.md rename to docs/HAND_WIRE.md diff --git a/doc/PCB_GUIDE.md b/docs/PCB_GUIDE.md similarity index 100% rename from doc/PCB_GUIDE.md rename to docs/PCB_GUIDE.md diff --git a/doc/POWER.txt b/docs/POWER.txt similarity index 100% rename from doc/POWER.txt rename to docs/POWER.txt diff --git a/doc/TMK_README.md b/docs/TMK_README.md similarity index 100% rename from doc/TMK_README.md rename to docs/TMK_README.md diff --git a/doc/USB_NKRO.txt b/docs/USB_NKRO.txt similarity index 100% rename from doc/USB_NKRO.txt rename to docs/USB_NKRO.txt diff --git a/doc/VAGRANT_GUIDE.md b/docs/VAGRANT_GUIDE.md similarity index 100% rename from doc/VAGRANT_GUIDE.md rename to docs/VAGRANT_GUIDE.md diff --git a/doc/basic_how_keyboards_work.md b/docs/basic_how_keyboards_work.md similarity index 100% rename from doc/basic_how_keyboards_work.md rename to docs/basic_how_keyboards_work.md diff --git a/doc/build_old.md b/docs/build_old.md similarity index 100% rename from doc/build_old.md rename to docs/build_old.md diff --git a/doc/keycode.txt b/docs/keycode.txt similarity index 100% rename from doc/keycode.txt rename to docs/keycode.txt diff --git a/doc/keymap_config_h_example.h b/docs/keymap_config_h_example.h similarity index 100% rename from doc/keymap_config_h_example.h rename to docs/keymap_config_h_example.h diff --git a/doc/keymap_makefile_example.mk b/docs/keymap_makefile_example.mk similarity index 100% rename from doc/keymap_makefile_example.mk rename to docs/keymap_makefile_example.mk diff --git a/doc/keymap.md b/docs/keymap_old.md similarity index 100% rename from doc/keymap.md rename to docs/keymap_old.md diff --git a/doc/other_projects.md b/docs/other_projects.md similarity index 100% rename from doc/other_projects.md rename to docs/other_projects.md From c95f08c439d6b3aeeae59a3f0555b9672a0d0e80 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sat, 27 May 2017 22:19:38 +0000 Subject: [PATCH 486/517] Updates docs/book.json Auto commit by GitBook Editor --- docs/book.json | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/book.json b/docs/book.json index ee374b9c58..61f57ad286 100644 --- a/docs/book.json +++ b/docs/book.json @@ -19,4 +19,5 @@ ] } } + "root": "./docs/" } From c3bdddb6375cebeddd01271890450b25109f7842 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sat, 27 May 2017 18:20:46 -0400 Subject: [PATCH 487/517] move book for gitbook --- docs/book.json => book.json | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename docs/book.json => book.json (100%) diff --git a/docs/book.json b/book.json similarity index 100% rename from docs/book.json rename to book.json From 2003cee60990afe0cacc51fb9ac38cd1dad7195d Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sat, 27 May 2017 22:21:58 +0000 Subject: [PATCH 488/517] Updates book.json Auto commit by GitBook Editor --- book.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/book.json b/book.json index 61f57ad286..018a64547c 100644 --- a/book.json +++ b/book.json @@ -5,7 +5,7 @@ "plugins" : ["toolbar", "edit-link", "anchors"], "pluginsConfig": { "edit-link": { - "base": "https://github.com/qmk/qmk_firmware_docs/edit/master", + "base": "https://github.com/qmk/qmk_firmware/edit/master", "label": "Suggest an edit" }, "toolbar": { From 931ad66ffa407ffc9ad169ff0df2b186dd6bbb2c Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sat, 27 May 2017 22:23:09 +0000 Subject: [PATCH 489/517] Updates book.json Auto commit by GitBook Editor --- book.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/book.json b/book.json index 018a64547c..8e8b100cf3 100644 --- a/book.json +++ b/book.json @@ -18,6 +18,6 @@ } ] } - } + }, "root": "./docs/" } From b8c1f2507293d9ba044f2b660f3cf8f66632e423 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sat, 27 May 2017 22:24:53 +0000 Subject: [PATCH 490/517] Updates book.json Auto commit by GitBook Editor --- book.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/book.json b/book.json index 8e8b100cf3..64a997d1f9 100644 --- a/book.json +++ b/book.json @@ -5,7 +5,7 @@ "plugins" : ["toolbar", "edit-link", "anchors"], "pluginsConfig": { "edit-link": { - "base": "https://github.com/qmk/qmk_firmware/edit/master", + "base": "https://github.com/qmk/qmk_firmware/edit/master/docs", "label": "Suggest an edit" }, "toolbar": { From 623b1cd866d03833607e35ff1a6f2c5cc6ee10a6 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sun, 28 May 2017 12:28:02 +0300 Subject: [PATCH 491/517] Fix line endings in FAQ.md --- docs/FAQ.md | 474 ++++++++++++++++++++++++++-------------------------- 1 file changed, 237 insertions(+), 237 deletions(-) diff --git a/docs/FAQ.md b/docs/FAQ.md index 417efad48a..0636d8b544 100644 --- a/docs/FAQ.md +++ b/docs/FAQ.md @@ -1,238 +1,238 @@ -## READ FIRST -- **README** of top directory : https://github.com/tmk/tmk_keyboard/blob/master/README.md -- **README** of target project(keyboard/converter) directory. - -Note that you'll need to read **both**. - - -# Build -- [[FAQ/Build]] - - -# Keymap -- [[FAQ/Keymap]] - - -# Debug Console -## 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: - - Waiting for new device:......................... - Listening: - -Check if you can't get this 'Listening:' message: -- build with `CONSOLE_ENABLE=yes` in **Makefile**. - -You may need privilege to access the device on OS like Linux. -- try `sudo hid_listen` - -## 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). -- set `debug_enable=true` usually in `matrix_init()` in **matrix.c**. -- 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 -Just use 'sudo' to execute *hid_listen* with privilege. -``` -$ sudo hid_listen -``` - -Or add an *udev rule* for TMK devices with placing a file in rules directory. The directory may vary on each system. - -File: /etc/udev/rules.d/52-tmk-keyboard.rules(in case of Ubuntu) -``` -# tmk keyboard products https://github.com/tmk/tmk_keyboard -SUBSYSTEMS=="usb", ATTRS{idVendor}=="feed", MODE:="0666" -``` - -*** - -# Miscellaneous -## NKRO Doesn't work -First you have to compile frimware 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 firmeare 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. - -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. - -- 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 -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`. - -http://deskthority.net/workshop-f7/rebuilding-and-redesigning-a-classic-thinkpad-keyboard-t6181-60.html#p146279 - - - -## Pull-up Resistor -In some case converters needed to have pull-up resistors to work correctly. Place the resistor between VCC and signal line in parallel. - -For example: -``` -Keyboard Conveter - ,------. -5V------+------|VCC | - | | | - R | | - | | | -Signal--+------|PD0 | - | | -GND------------|GND | - `------' -R: 1K Ohm resistor -``` - -https://github.com/tmk/tmk_keyboard/issues/71 - - -## Arduino Micro's pin naming is confusing -Note that Arduino Micro PCB marking is different from real AVR port name. D0 of Arduino Micro is not PD0, PD0 is D3. Check schematic yourself. -http://arduino.cc/en/uploads/Main/arduino-micro-schematic.pdf - - - -## 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 -# Teensy++ halfKay(AT90USB128) 2048 -OPT_DEFS += -DBOOTLOADER_SIZE=4096 -``` -AVR Boot section size are defined by setting **BOOTSZ** fuse in fact. Consult with your MCU datasheet. -Note that **Word**(2 bytes) size and address are used in datasheet while TMK uses **Byte**. - -AVR Boot section is located at end of Flash memory like the followings. -``` -byte Atmel/LUFA(ATMega32u4) byte Atmel(AT90SUB1286) -0x0000 +---------------+ 0x00000 +---------------+ - | | | | - | | | | - | Application | | Application | - | | | | - = = = = - | | 32KB-4KB | | 128KB-8KB -0x6000 +---------------+ 0x1E000 +---------------+ - | Bootloader | 4KB | Bootloader | 8KB -0x7FFF +---------------+ 0x1FFFF +---------------+ - - -byte Teensy(ATMega32u4) byte Teensy++(AT90SUB1286) -0x0000 +---------------+ 0x00000 +---------------+ - | | | | - | | | | - | Application | | Application | - | | | | - = = = = - | | 32KB-512B | | 128KB-2KB -0x7E00 +---------------+ 0x1FC00 +---------------+ - | Bootloader | 512B | Bootloader | 2KB -0x7FFF +---------------+ 0x1FFFF +---------------+ -``` - -And see this discussion for further reference. -https://github.com/tmk/tmk_keyboard/issues/179 - - -## Special Extra key doesn't work(System, Audio control keys) -You need to define `EXTRAKEY_ENABLE` in **makefile** to use them in TMK. -``` -EXTRAKEY_ENABLE = yes # Audio control and System control -``` -http://deskthority.net/workshop-f7/tmk-keyboard-firmware-collection-t4478-60.html#p157919 - - -## 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. - -Pressing any key during sleep should wake host. - - -## Using Arduino? -**Note that Arduino pin naming is different from actual chip.** For example, Arduino pin `D0` is not `PD0`. Check circuit with its schematics yourself. - -- 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. - - -## 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. - -If you are using Teensy this isn't needed. Teensy is shipped with JTAGEN fuse bit unprogrammed to disable the function. - -See this code. -``` - // JTAG disable for PORT F. write JTD bit twice within four cycles. - MCUCR |= (1< Date: Sun, 28 May 2017 19:17:22 +0200 Subject: [PATCH 492/517] Update Differences-from-TMK.md Hello, I'm not sure but it seems to be uint8_t for TMK/fn_actions (cf. https://github.com/tmk/tmk_keyboard/blob/master/README.md ). Regards, Damien --- docs/Differences-from-TMK.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Differences-from-TMK.md b/docs/Differences-from-TMK.md index 8b43570955..ca3ba93ff5 100644 --- a/docs/Differences-from-TMK.md +++ b/docs/Differences-from-TMK.md @@ -5,4 +5,4 @@ Understanding the essential changes made on the [tmk_keyboard firmware](http://g | Maintainer |hasu (@tmk) |Jack Humbert et al. | | Build path customization | `TMK_DIR = ...` | `include .../Makefile` | | `keymaps` array data | 3D array of `uint8_t` holding **keycode** | 3D array of `uint16_t` holding **keycode** | -| `fn_actions` array data | 1D array of `uint16_t` holding **action code** | 1D array of `uint16_t` holding **action code** | \ No newline at end of file +| `fn_actions` array data | 1D array of `uint8_t` holding **action code** | 1D array of `uint16_t` holding **action code** | From 28a4e90565f5ea986401dbd69d74a5a4cc16abab Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sun, 28 May 2017 12:24:05 +0300 Subject: [PATCH 493/517] Download windows flashing utils and driver_installer --- .gitignore | 1 + util/wsl_install.sh | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 util/wsl_install.sh diff --git a/.gitignore b/.gitignore index 6029afce4f..0b48b80e59 100644 --- a/.gitignore +++ b/.gitignore @@ -22,6 +22,7 @@ quantum/version.h .idea/ CMakeLists.txt .DS_STORE +/util/wsl_downloaded # Eclipse/PyCharm/Other IDE Settings .cproject diff --git a/util/wsl_install.sh b/util/wsl_install.sh new file mode 100644 index 0000000000..87aad77272 --- /dev/null +++ b/util/wsl_install.sh @@ -0,0 +1,33 @@ +#!/bin/bash + +rm -f -r wsl_downloaded +mkdir wsl_downloaded +pushd wsl_downloaded + +echo "Installing dependencies (7z-full, wget)" +echo "This will ask for the sudo password" +sudo apt-get install 7z-full wget + +echo "Installing dfu-programmer" +wget 'http://downloads.sourceforge.net/project/dfu-programmer/dfu-programmer/0.7.2/dfu-programmer-win-0.7.2.zip' +7z x -odfu-programmer dfu-programmer-win-0.7.2.zip + +echo "Installing dfu-util" +wget 'http://dfu-util.sourceforge.net/releases/dfu-util-0.9-win64.zip' +7z x dfu-util-0.9-win64.zip + +echo "Installing teensy_loader_cli" +wget 'https://www.pjrc.com/teensy/teensy_loader_cli_windows.zip' +7z x teensy_loader_cli_windows.zip + +echo "Installing Atmel Flip" +wget 'http://www.atmel.com/images/Flip%20Installer%20-%203.4.7.112.exe' +7z x -oFlip Flip\ Installer\ -\ 3.4.7.112.exe + +echo "Downloading the QMK driver installer" +wget -qO- https://api.github.com/repos/qmk/qmk_driver_installer/releases | grep browser_download_url | head -n 1 | cut -d '"' -f 4 | wget -i - + +rm -f *.zip +rm Flip\ Installer\ -\ 3.4.7.112.exe +popd + From aa26464480c3080ed935d49cce3f4b9b33c9c05f Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sun, 28 May 2017 13:30:53 +0300 Subject: [PATCH 494/517] Add checks for cloning to the right dir --- util/wsl_install.sh | 71 ++++++++++++++++++++++++++++++--------------- 1 file changed, 48 insertions(+), 23 deletions(-) diff --git a/util/wsl_install.sh b/util/wsl_install.sh index 87aad77272..c3aeba6d6e 100644 --- a/util/wsl_install.sh +++ b/util/wsl_install.sh @@ -1,33 +1,58 @@ #!/bin/bash -rm -f -r wsl_downloaded -mkdir wsl_downloaded -pushd wsl_downloaded +download_dir = wsl_downloaded -echo "Installing dependencies (7z-full, wget)" -echo "This will ask for the sudo password" -sudo apt-get install 7z-full wget +function install_utils { + rm -f -r $download_dir + mkdir $download_dir + + pushd $download_dir + + echo "Installing dfu-programmer" + wget 'http://downloads.sourceforge.net/project/dfu-programmer/dfu-programmer/0.7.2/dfu-programmer-win-0.7.2.zip' + 7z x -odfu-programmer dfu-programmer-win-0.7.2.zip + + echo "Installing dfu-util" + wget 'http://dfu-util.sourceforge.net/releases/dfu-util-0.9-win64.zip' + 7z x dfu-util-0.9-win64.zip + + echo "Installing teensy_loader_cli" + wget 'https://www.pjrc.com/teensy/teensy_loader_cli_windows.zip' + 7z x teensy_loader_cli_windows.zip + + echo "Installing Atmel Flip" + wget 'http://www.atmel.com/images/Flip%20Installer%20-%203.4.7.112.exe' + 7z x -oFlip Flip\ Installer\ -\ 3.4.7.112.exe -echo "Installing dfu-programmer" -wget 'http://downloads.sourceforge.net/project/dfu-programmer/dfu-programmer/0.7.2/dfu-programmer-win-0.7.2.zip' -7z x -odfu-programmer dfu-programmer-win-0.7.2.zip + echo "Downloading the QMK driver installer" + wget -qO- https://api.github.com/repos/qmk/qmk_driver_installer/releases | grep browser_download_url | head -n 1 | cut -d '"' -f 4 | wget -i - + + rm -f *.zip + rm Flip\ Installer\ -\ 3.4.7.112.exe + + popd > /dev/null +} + +function make_environment { +} + +echo "Installing dependencies (p7zip-full, wget)" +echo "This will ask for the sudo password" +sudo apt-get install p7zip-full wget -echo "Installing dfu-util" -wget 'http://dfu-util.sourceforge.net/releases/dfu-util-0.9-win64.zip' -7z x dfu-util-0.9-win64.zip +dir=$(cd -P -- "$(dirname -- "$0")" && pwd -P) -echo "Installing teensy_loader_cli" -wget 'https://www.pjrc.com/teensy/teensy_loader_cli_windows.zip' -7z x teensy_loader_cli_windows.zip +if [[ $dir != /mnt/* ]]; +then + echo + echo "You need to clone the qmk_firmware repository outside the linux filesystem." + echo "Otherwise the windows executables can't be run." + exit 1 +fi -echo "Installing Atmel Flip" -wget 'http://www.atmel.com/images/Flip%20Installer%20-%203.4.7.112.exe' -7z x -oFlip Flip\ Installer\ -\ 3.4.7.112.exe +pushd "$dir" -echo "Downloading the QMK driver installer" -wget -qO- https://api.github.com/repos/qmk/qmk_driver_installer/releases | grep browser_download_url | head -n 1 | cut -d '"' -f 4 | wget -i - +#install_utils -rm -f *.zip -rm Flip\ Installer\ -\ 3.4.7.112.exe -popd +popd > /dev/null From c2096bb5159f3b0d188653cf17cd771725ae7e1a Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sun, 28 May 2017 14:42:02 +0300 Subject: [PATCH 495/517] Add driver installation --- util/drivers.txt | 46 +++++++++++++++++++++++++++++++++++++++++++++ util/wsl_install.sh | 25 ++++++++++++++++++++++-- 2 files changed, 69 insertions(+), 2 deletions(-) create mode 100644 util/drivers.txt diff --git a/util/drivers.txt b/util/drivers.txt new file mode 100644 index 0000000000..d21a748f0e --- /dev/null +++ b/util/drivers.txt @@ -0,0 +1,46 @@ +# The format is +# driver,desc,vid,pid,guid +# Use a comma as a separator without spaces +# Driver can be one of winusb,libusb,libusbk +# Use Windows Powershell and type [guid]::NewGuid() to generate guids +winusb,Kiibohd DFU Bootloader,1C11,B007,aa5a3f86-b81e-4416-89ad-0c1ea1ed63af +libusb,ATxmega16C4,03EB,2FD8,23266ee7-5423-4cc4-993b-034571c43a90 +libusb,ATxmega32C4,03EB,2FD9,d4b62886-2ac8-4534-aa24-eae0a2c3ce43 +libusb,ATxmega64C3,03EB,2FD6,08467ca7-9b5a-41d2-8d8a-4a26d0b5285b +libusb,ATxmega128C3,03EB,2FD7,1ca69799-6d95-46cf-be69-5b3d0eb915e6 +libusb,ATxmega256C3,03EB,2FDA,216ddc8b-6c67-4cc0-b934-482829a483a0 +libusb,ATxmega384C3,03EB,2FDB,0e4e3347-6025-4d49-ba80-2375ea690c28 +libusb,ATxmega64A1U,03EB,2FE8,2553d8fa-7de1-44a6-bdbf-57be8bb37e28 +libusb,ATxmega128A1U,03EB,2FED,6d9fd0ff-755d-4e29-bd29-df0a9a7544b9 +libusb,ATxmega64A4U,03EB,2FDD,bcf5e7c3-44a1-4fd1-971f-9ef9843f6291 +libusb,ATxmega128A4U,03EB,2FDE,3f976bb6-36ca-44cc-a728-844bc1d0d168 +libusb,ATxmega64B3,03EB,2FDF,de280c81-c12a-4ca7-bf34-566151786418 +libusb,ATxmega128B3,03EB,2FE0,2ad1ffeb-eb83-4e78-b34a-d5633771991f +libusb,ATxmega64B1,03EB,2FE1,002874a6-7fc7-413b-9ac4-2b52c5a230bd +libusb,ATxmega128B1,03EB,2FEA,60ea9d08-2ae6-4434-b743-ce6f73537136 +libusb,ATxmega256A3BU,03EB,2FE2,5949bd0a-8bd4-417b-b1c5-7d249836bf0d +libusb,ATxmega16A4U,03EB,2FE3,cc3172b0-e86a-4758-914e-951bca6ca7f5 +libusb,ATxmega32A4U,03EB,2FE4,f44c515f-7d17-4612-a532-ee620afb22b2 +libusb,ATxmega64A4U,03EB,2FE5,c1af4f1c-045f-40c9-893a-3ad4adb2e67d +libusb,ATxmega128A3U,03EB,2FE6,26f275f0-d6b2-46d8-8334-e4de66996c74 +libusb,ATxmega192A3U,03EB,2FE7,b7b50d98-0429-4235-8f08-5466e4f83ed4 +libusb,UC3,03EB,2FDC,972d9af7-d71b-44c7-a895-9340b362f545 +libusb,ATUC3,03EB,2FE9,d5855d0a-f82e-4df5-9c14-2b0b1dcb65bd +libusb,AT32UC3C,03EB,2FEB,1eeb52aa-fd24-47fd-8a76-056446d1a54f +libusb,ATxmega256A3U,03EB,2FEC,198fa8ea-3157-4863-b9a8-a3f6fe027367 +libusb,ATmega8U2,03EB,2FEE,14018055-46f4-4c62-aa03-e8fafeedaf72 +libusb,ATmega16U2,03EB,2FEF,007274da-b75f-492e-a288-8fc0aff8339f +libusb,ATmega32U2,03EB,2FF0,ddc2c572-cb6e-4f61-a6cc-1a5de941f063 +libusb,AT32UC3A3,03EB,2FF1,8b614283-36c0-46a2-890d-65f61b5b6201 +libusb,ATmega32U6,03EB,2FF2,a207dd90-2814-4418-b5b7-4b708fdf1bfd +libusb,ATmega16U4,03EB,2FF3,3180d426-bf93-4578-a693-2efbc337da8e +libusb,ATmega32U4,03EB,2FF4,5f9726fd-f9de-487a-9fbd-8b3524a7a56a +libusb,AT32UC3B,03EB,2FF6,ef90068a-277a-44db-805a-9b83a6beb29a +libusb,AT90USB82,03EB,2FF7,062fa2ab-f9d8-4a0d-83c1-df0521cfd0f6 +libusb,AT32UC3A,03EB,2FF8,24080a67-3874-4fb8-8808-fb4cc297c466 +libusb,AT90USB64,03EB,2FF9,c6a708ad-e97d-43cd-b04a-3180d737a71b +libusb,AT90USB162,03EB,2FFA,de67bff5-6e39-4e9c-8dfe-de7fce113716 +libusb,AT90USB128,03EB,2FFB,fd217df3-59d0-440a-a8f3-4c0c8c84daa3 +libusb,AT89C5130,03EB,2FFD,31b69a56-9ac0-4fab-a3ae-cd7bb7021ec5 +libusb,AT8XC5122,03EB,2FFE,395a6118-8568-41b2-913a-d16912722342 +libusb,AT89C5132,03EB,2FFF,266ca4bc-5e59-4a7b-82dc-6e8732373d40 \ No newline at end of file diff --git a/util/wsl_install.sh b/util/wsl_install.sh index c3aeba6d6e..9df715b813 100644 --- a/util/wsl_install.sh +++ b/util/wsl_install.sh @@ -1,6 +1,6 @@ #!/bin/bash -download_dir = wsl_downloaded +download_dir=wsl_downloaded function install_utils { rm -f -r $download_dir @@ -33,7 +33,11 @@ function install_utils { popd > /dev/null } -function make_environment { +function install_drivers { + pushd $download_dir + cp ../drivers.txt . + cmd.exe /C qmk_driver_installer.exe $1 $2 ../drivers.txt + popd > /dev/null } echo "Installing dependencies (p7zip-full, wget)" @@ -54,5 +58,22 @@ pushd "$dir" #install_utils +while true; do + echo + echo "Which USB drivers do you want to install?" + echo "(A)all - All supported drivers will be installed" + echo "(C)onnected - Only drivers for connected keyboards (in bootloader/flashing mode) will be installed" + echo "(F)force - Like all, but will also override existing drivers for connected keyboards" + echo "(N)one - No drivers will be installed, flashing your keyboard will most likely not work" + read -p "(A/C/F/N)? " res + case $res in + [Aa]* ) install_drivers --all; break;; + [Cc]* ) install_drivers; break;; + [Ff]* ) install_drivers --all --force; break;; + [Nn]* ) break;; + * ) echo "Invalid answer";; + esac +done + popd > /dev/null From 477bd4b948a7399bcb8ba057362c66278e6b3abf Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sun, 28 May 2017 14:49:58 +0300 Subject: [PATCH 496/517] Add prompt for re-downloading the utils --- util/wsl_install.sh | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/util/wsl_install.sh b/util/wsl_install.sh index 9df715b813..f9c7f60906 100644 --- a/util/wsl_install.sh +++ b/util/wsl_install.sh @@ -56,7 +56,19 @@ fi pushd "$dir" -#install_utils +if [ ! -d "$download_dir" ]; then + install_utils +else + while true; do + echo + read -p "The utils seem to already be downloaded, do you want to re-download them and update to the newest version (Y/N) " res + case $res in + [Yy]* ) install_utils; break;; + [Nn]* ) break;; + * ) echo "Invalid answer";; + esac + done +fi while true; do echo From 9c582fc797c3fbddd753791aab279dd2ad27b9c4 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sun, 28 May 2017 18:26:38 +0300 Subject: [PATCH 497/517] Add install dependencies --- util/wsl_install.sh | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/util/wsl_install.sh b/util/wsl_install.sh index f9c7f60906..0964929e7c 100644 --- a/util/wsl_install.sh +++ b/util/wsl_install.sh @@ -40,10 +40,6 @@ function install_drivers { popd > /dev/null } -echo "Installing dependencies (p7zip-full, wget)" -echo "This will ask for the sudo password" -sudo apt-get install p7zip-full wget - dir=$(cd -P -- "$(dirname -- "$0")" && pwd -P) if [[ $dir != /mnt/* ]]; @@ -56,6 +52,24 @@ fi pushd "$dir" +while true; do + echo + echo "Do you want to install all toolchain dependencies needed for compiling QMK?" + echo "This will run install_dependencies.sh, which calls apt-get upgrade." + echo "If you don't want that, you can install the dependencies manually." + read -p "(Y/N) " res + case $res in + [Yy]* ) sudo ./install_dependencies.sh; break;; + [Nn]* ) break;; + * ) echo "Invalid answer";; + esac +done + +echo "Installing dependencies needed for the installation (p7zip-full, wget)" +echo "This will ask for the sudo password" +sudo apt-get install p7zip-full wget + + if [ ! -d "$download_dir" ]; then install_utils else From b8899b48b45c0209e44cc35d9185aa670e769d40 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sun, 28 May 2017 20:11:56 +0300 Subject: [PATCH 498/517] Make symlink to utils and export programmer variables --- util/activate_wsl.sh | 12 ++++++++++++ util/wsl_install.sh | 7 ++++++- 2 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 util/activate_wsl.sh diff --git a/util/activate_wsl.sh b/util/activate_wsl.sh new file mode 100644 index 0000000000..a6ed9b712d --- /dev/null +++ b/util/activate_wsl.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +util_dir=~/qmk_utils +download_dir=$util_dir/wsl_downloaded + +export DFU_PROGRAMMER=$download_dir/dfu-programmer/dfu-programmer.exe +export DFU_UTIL=$download_dir/dfu-util-0.9-win64/dfu-util.exe +export TEENSY_LOADER_CLI=$download_dir/teensy_loader_cli.exe +export BATCHISP=$download_dir/Flip/bin/batchisp.exe + + + diff --git a/util/wsl_install.sh b/util/wsl_install.sh index 0964929e7c..314f520b95 100644 --- a/util/wsl_install.sh +++ b/util/wsl_install.sh @@ -35,7 +35,6 @@ function install_utils { function install_drivers { pushd $download_dir - cp ../drivers.txt . cmd.exe /C qmk_driver_installer.exe $1 $2 ../drivers.txt popd > /dev/null } @@ -101,5 +100,11 @@ while true; do esac done +echo +echo "Creating a softlink to the utils directory as ~/qmk_utils." +echo "This is needed so that the the make system can find all utils it need." +read -p "Press any key to continue (ctrl-c to abort)" +ln -sf "$dir" ~/qmk_utils + popd > /dev/null From 3d3999d8635d1c9ca5a0276545ce4bdc173aa9a4 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sun, 28 May 2017 20:36:27 +0300 Subject: [PATCH 499/517] Actually install flip instead of just extracting --- util/activate_wsl.sh | 2 +- util/wsl_install.sh | 20 ++++++++++++++++++-- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/util/activate_wsl.sh b/util/activate_wsl.sh index a6ed9b712d..afff5addcc 100644 --- a/util/activate_wsl.sh +++ b/util/activate_wsl.sh @@ -6,7 +6,7 @@ download_dir=$util_dir/wsl_downloaded export DFU_PROGRAMMER=$download_dir/dfu-programmer/dfu-programmer.exe export DFU_UTIL=$download_dir/dfu-util-0.9-win64/dfu-util.exe export TEENSY_LOADER_CLI=$download_dir/teensy_loader_cli.exe -export BATCHISP=$download_dir/Flip/bin/batchisp.exe +export BATCHISP=batchisp.exe diff --git a/util/wsl_install.sh b/util/wsl_install.sh index 314f520b95..b1e47d637b 100644 --- a/util/wsl_install.sh +++ b/util/wsl_install.sh @@ -22,13 +22,12 @@ function install_utils { echo "Installing Atmel Flip" wget 'http://www.atmel.com/images/Flip%20Installer%20-%203.4.7.112.exe' - 7z x -oFlip Flip\ Installer\ -\ 3.4.7.112.exe + mv Flip\ Installer\ \-\ 3.4.7.112.exe FlipInstaller.exe echo "Downloading the QMK driver installer" wget -qO- https://api.github.com/repos/qmk/qmk_driver_installer/releases | grep browser_download_url | head -n 1 | cut -d '"' -f 4 | wget -i - rm -f *.zip - rm Flip\ Installer\ -\ 3.4.7.112.exe popd > /dev/null } @@ -83,6 +82,17 @@ else done fi +while true; do + echo + read -p "Flip need to be installed if you want to use that for programming, do you want to install it now? (Y/N) " res + case $res in + [Yy]* ) cmd.exe /c $download_dir\\FlipInstaller.exe; break;; + [Nn]* ) break;; + * ) echo "Invalid answer";; + esac +done + + while true; do echo echo "Which USB drivers do you want to install?" @@ -106,5 +116,11 @@ echo "This is needed so that the the make system can find all utils it need." read -p "Press any key to continue (ctrl-c to abort)" ln -sf "$dir" ~/qmk_utils +echo +echo "******************************************************************************" +echo "Installation completed!" +echo "You need to open a new batch command prompt for all the utils to work properly" +echo "******************************************************************************" + popd > /dev/null From 3e4f2f5590028851886df54e608d4215883939ba Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sun, 28 May 2017 20:43:16 +0300 Subject: [PATCH 500/517] Use unzip instead of 7zip --- util/wsl_install.sh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/util/wsl_install.sh b/util/wsl_install.sh index b1e47d637b..645ddce71e 100644 --- a/util/wsl_install.sh +++ b/util/wsl_install.sh @@ -10,15 +10,15 @@ function install_utils { echo "Installing dfu-programmer" wget 'http://downloads.sourceforge.net/project/dfu-programmer/dfu-programmer/0.7.2/dfu-programmer-win-0.7.2.zip' - 7z x -odfu-programmer dfu-programmer-win-0.7.2.zip + unzip -d dfu-programmer dfu-programmer-win-0.7.2.zip echo "Installing dfu-util" wget 'http://dfu-util.sourceforge.net/releases/dfu-util-0.9-win64.zip' - 7z x dfu-util-0.9-win64.zip + unzip dfu-util-0.9-win64.zip echo "Installing teensy_loader_cli" wget 'https://www.pjrc.com/teensy/teensy_loader_cli_windows.zip' - 7z x teensy_loader_cli_windows.zip + unzip teensy_loader_cli_windows.zip echo "Installing Atmel Flip" wget 'http://www.atmel.com/images/Flip%20Installer%20-%203.4.7.112.exe' @@ -63,9 +63,9 @@ while true; do esac done -echo "Installing dependencies needed for the installation (p7zip-full, wget)" +echo "Installing dependencies needed for the installation (unzip, wget)" echo "This will ask for the sudo password" -sudo apt-get install p7zip-full wget +sudo apt-get install unzip wget if [ ! -d "$download_dir" ]; then From fa4a492677d1435637dceee03302e1bdbd579a2d Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sun, 28 May 2017 20:49:42 +0300 Subject: [PATCH 501/517] Fix symlink creation --- util/wsl_install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/util/wsl_install.sh b/util/wsl_install.sh index 645ddce71e..bb2df1b4da 100644 --- a/util/wsl_install.sh +++ b/util/wsl_install.sh @@ -114,7 +114,7 @@ echo echo "Creating a softlink to the utils directory as ~/qmk_utils." echo "This is needed so that the the make system can find all utils it need." read -p "Press any key to continue (ctrl-c to abort)" -ln -sf "$dir" ~/qmk_utils +ln -sfn "$dir" ~/qmk_utils echo echo "******************************************************************************" From ec720ac1ea63b3afa2988be06b221d2ed10a2af9 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sun, 28 May 2017 21:28:18 +0300 Subject: [PATCH 502/517] Add activate_wsl to .bashrc --- util/activate_wsl.sh | 17 +++++++++++------ util/wsl_install.sh | 20 ++++++++++++++++++++ 2 files changed, 31 insertions(+), 6 deletions(-) diff --git a/util/activate_wsl.sh b/util/activate_wsl.sh index afff5addcc..e2312b56d4 100644 --- a/util/activate_wsl.sh +++ b/util/activate_wsl.sh @@ -1,12 +1,17 @@ #!/bin/bash -util_dir=~/qmk_utils -download_dir=$util_dir/wsl_downloaded +function export_variables { + local util_dir=~/qmk_utils + local download_dir=$util_dir/wsl_downloaded + + export DFU_PROGRAMMER=$download_dir/dfu-programmer/dfu-programmer.exe + export DFU_UTIL=$download_dir/dfu-util-0.9-win64/dfu-util.exe + export TEENSY_LOADER_CLI=$download_dir/teensy_loader_cli.exe + export BATCHISP=batchisp.exe +} + +export_variables -export DFU_PROGRAMMER=$download_dir/dfu-programmer/dfu-programmer.exe -export DFU_UTIL=$download_dir/dfu-util-0.9-win64/dfu-util.exe -export TEENSY_LOADER_CLI=$download_dir/teensy_loader_cli.exe -export BATCHISP=batchisp.exe diff --git a/util/wsl_install.sh b/util/wsl_install.sh index bb2df1b4da..f863c182e0 100644 --- a/util/wsl_install.sh +++ b/util/wsl_install.sh @@ -116,6 +116,26 @@ echo "This is needed so that the the make system can find all utils it need." read -p "Press any key to continue (ctrl-c to abort)" ln -sfn "$dir" ~/qmk_utils +if grep "^source ~/qmk_utils/activate_wsl.sh$" ~/.bashrc +then + echo + echo "The line source ~/qmk_utils/activate_wsl.sh is already added to your /.bashrc" + echo "Not adding it twice" +else + while true; do + echo + echo "Do you want to add 'source ~/qmk_utils/activate_wsl.sh' to the end of you .bashrc file?" + echo "Without this make won't find the needed utils, so if you don't want to do it automatically," + echo "then you have to do it manually." + read -p "(Y/N)? " res + case $res in + [Yy]* ) echo "source ~/qmk_utils/activate_wsl.sh" >> ~/.bashrc; break;; + [Nn]* ) break;; + * ) echo "Invalid answer";; + esac + done +fi + echo echo "******************************************************************************" echo "Installation completed!" From 999b35c7f8a2fdccf3f8710c2704034bb426b711 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sun, 28 May 2017 21:38:14 +0300 Subject: [PATCH 503/517] Create a symlink to qmk if requested --- util/wsl_install.sh | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/util/wsl_install.sh b/util/wsl_install.sh index f863c182e0..8999da8a46 100644 --- a/util/wsl_install.sh +++ b/util/wsl_install.sh @@ -136,6 +136,19 @@ else done fi +while true; do + echo + echo "Do you want to add a symlink to the QMK repository in your home directory for convenience?" + echo "This will create a folder 'qmk_firmware' in your home directory." + echo "In the future you can use this folder instead of the full path on your windows file system" + read -p "(Y/N)? " res + case $res in + [Yy]* ) ln -sfn "$dir/.." ~/qmk_firmware; break;; + [Nn]* ) break;; + * ) echo "Invalid answer";; + esac +done + echo echo "******************************************************************************" echo "Installation completed!" From 78aebe0631c6987ce1721428ff8fbbb0a1e8fbd7 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sun, 28 May 2017 22:35:45 +0300 Subject: [PATCH 504/517] Update windows 10 instructions --- docs/Build-Environment-Setup.md | 37 ++++++++++++++++++++------------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/docs/Build-Environment-Setup.md b/docs/Build-Environment-Setup.md index 35e02924b9..d4cec91c7b 100644 --- a/docs/Build-Environment-Setup.md +++ b/docs/Build-Environment-Setup.md @@ -1,25 +1,32 @@ ### Windows 10 -Due to some issues with the "Windows (Vista and later)" instructions below, we now recommend following these instructions if you use Windows, which will allow you to use the Windows Subsystem for Linux to compile the firmware. If you are not using Windows 10 with the Anniversary Update installed (which came out in July 2016), you will need to use one of the other methods, such as Docker, Vagrant, or the instructions for Vista and later. +#### Creators Update +If you have Windows 10 with Creators Update or later, you can build and flash the firmware directly. Before the Creators Update, only building was possible. If you don't have it yet or if are unsure, follow [these instructions](https://support.microsoft.com/en-us/instantanswers/d4efb316-79f0-1aa1-9ef3-dcada78f3fa0/get-the-windows-10-creators-update). -If you use this method, you will need to use a standalone tool to flash the firmware to the keyboard after you compile it. We recommend the official [QMK Firmware Flasher](https://github.com/qmk/qmk_firmware_flasher/releases). This is because the Windows 10 Subsystem for Linux lacks [libUSB support](https://wpdev.uservoice.com/forums/266908-command-prompt-console-bash-on-ubuntu-on-windo/suggestions/13355724-unable-to-access-usb-devices-from-bash), so it can't access the keyboard's microcontroller. Please add your vote for Microsoft to fix this issue using the link! +#### Windows Subsystem for Linux +In addition to the Creators Update, you need Windows 10 Subystem for Linux, so install it following [these instructions](http://www.howtogeek.com/249966/how-to-install-and-use-the-linux-bash-shell-on-windows-10/). If you already have the Windows 10 Subsystem for Linux from the Anniversary update it's recommended that you [upgrade](https://betanews.com/2017/04/14/upgrade-windows-subsystem-for-linux/) it to 16.04LTS, because some keyboards don't compile with the toolchains included in 14.04LTS. Note that you need to know what your are doing if you chose the `sudo do-release-upgrade` method. -Here are the steps +#### Git +If you already have cloned the repository on your Windows file system you can ignore this section. -1. Install the Windows 10 subsystem for Linux, following [these instructions](http://www.howtogeek.com/249966/how-to-install-and-use-the-linux-bash-shell-on-windows-10/). -2. If you have cloned the repository using git before August 20, 2016, clean up the line endings from wherever you currently access git: - 1. Make sure that you have no changes you haven't committed by running `git status`. ANY UNCOMMITTED CHANGES WILL BE PERMANENTLY LOST. - 2. Run `git rm --cached -r .` - 3. Run `git reset --hard` -3. Open "Bash On Ubuntu On Windows" from the start menu -4. With the bash window open, navigate to your copy of the [qmk_firmware repository](https://github.com/qmk/qmk_firmware) using the `cd` command. The harddisks can be accessed from `/mnt/`. For example, your main hard drive (C:) can be accessed by executing the command `cd /mnt/c`. If your username is John and the qmk_firmware folder is in your Downloads folder, you can move to it with the command `cd /mnt/c/Users/John/Downloads/qmk_firmware`. You can use the Tab key as you go to help you autocomplete the folder names. -5. Run `sudo util/install_dependencies.sh`. **This will run `apt-get upgrade`.** -6. After a while the installation will finish, and you are good to go +You will need to clone the repository to your Windows file system using the normal Git for Windows and **not** the WSL Git. So if you haven't installed Git before, [download](https://git-scm.com/download/win) and install it. Then [set it up](https://git-scm.com/book/en/v2/Getting-Started-First-Time-Git-Setup), it's important that you setup the e-mail and user name, especially if you are planning to contribute. -**Note** From time to time, the dependencies might change, so just run `install_dependencies.sh` again if things are not working. +Once Git is installed, open the Git bash command and change the directory to where you want to clone QMK, note that you have to use forward slashes, and that your c drive is accessed like this `/c/path/to/where/you/want/to/go`. Then run `git clone --recurse-submodules https://github.com/qmk/qmk_firmware`, this will create a new folder `qmk_firmware` as a subfolder of the current one. -**Warning:** If you edit Makefiles or shell scripts, make sure you are using an editor that saves the files with Unix line endings. Otherwise the compilation might not work. +#### Toolchain setup +The Toolchain setup is done through the Windows Subsystem for Linux, and the process is fully automated. If you want to do everything manually, there are no other instructions than the scripts themselves, but you can always open issues and ask for more information. +1. Open "Bash On Ubuntu On Windows" from the start menu. +2. Go to the directory where you cloned `qmk_firmware`. Note that the paths start with `/mnt/` in the WSL, so you have to write for example `cd /mnt/c/path/to/qmk_firmware`. +3. Run `util/wsl_install.sh` and follow the on-screen instructions. +4. Close the Bash command window, and re-open it. +5. You are ready to compile and flash the firmware! + +#### Some important things to keep in mind +* You can run `util/wsl_install.sh` again to get all the newest updates. +* Your QMK repository need to be on a Windows file system path, since WSL can't run executables outside it. +* The WSL Git is **not** compatible with the Windows Git, so use the Windows Git Bash or a windows Git GUI for all Git operations +* You can edit files either inside WSL or normally using Windows, but note that if you edit makefiles or shell scripts, make sure you are using an editor that saves the files with Unix line endings. Otherwise the compilation might not work. ### Windows (Vista and later) 1. If you have ever installed WinAVR, uninstall it. @@ -109,4 +116,4 @@ If you have any problems building the firmware, you can try using a tool called 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. 2. Open up a terminal or command prompt and navigate to the `qmk_firmware` folder using the `cd` command. The command prompt will typically open to your home directory. If, for example, you cloned the repository to your Documents folder, then you would type `cd Documents/qmk_firmware`. If you extracted the file from a zip, then it may be named `qmk_firmware-master` instead. 3. To confirm that you're in the correct location, you can display the contents of your current folder using the `dir` command on Windows, or the `ls` command on Linux or Mac. You should see several files, including `readme.md` and a `quantum` folder. From here, you need to navigate to the appropriate folder under `keyboards/`. For example, if you're building for a Planck, run `cd keyboards/planck`. -4. Once you're in the correct keyboard-specific folder, run the `make` command. This should output a lot of information about the build process. More information about the `make` command can be found below. \ No newline at end of file +4. Once you're in the correct keyboard-specific folder, run the `make` command. This should output a lot of information about the build process. More information about the `make` command can be found below. From 71feac57175f5a3d09e96cc579f5d5c3477adb7b Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sun, 28 May 2017 16:16:56 -0400 Subject: [PATCH 505/517] ignore docs, fix tag/hex pushing --- util/qmk.fm.enc | Bin 0 -> 3248 bytes util/qmk_firmware.enc | Bin 0 -> 3248 bytes util/travis_compiled_push.sh | 14 +++++++++++--- 3 files changed, 11 insertions(+), 3 deletions(-) create mode 100644 util/qmk.fm.enc create mode 100644 util/qmk_firmware.enc diff --git a/util/qmk.fm.enc b/util/qmk.fm.enc new file mode 100644 index 0000000000000000000000000000000000000000..d7aa4627037118fe98d85ea8669562bf20465bad GIT binary patch literal 3248 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 i6X`9%yzfz#l-szkLWn2bDtL5JDhyIA6j5 literal 0 HcmV?d00001 diff --git a/util/travis_compiled_push.sh b/util/travis_compiled_push.sh index 718daaa295..dcf408a2e9 100644 --- a/util/travis_compiled_push.sh +++ b/util/travis_compiled_push.sh @@ -7,6 +7,14 @@ rev=$(git rev-parse --short HEAD) git config --global user.name "Travis CI" git config --global user.email "jack.humb+travis.ci@gmail.com" +openssl aes-256-cbc -K $encrypted_b0ee987fd0fc_key -iv $encrypted_b0ee987fd0fc_iv -in util/qmk_firmware.enc -out qmk_firmware -d +openssl aes-256-cbc -K $encrypted_b0ee987fd0fc_key -iv $encrypted_b0ee987fd0fc_iv -in util/qmk.fm.enc -out qmk.fm -d +chmod 600 qmk_firmware +chmod 600 qmk.fm +eval `ssh-agent -s` +ssh-add qmk_firmware +ssh-add qmk.fm + if [[ "$TRAVIS_BRANCH" == "master" && "$TRAVIS_PULL_REQUEST" == "false" ]] ; then increment_version () @@ -17,14 +25,14 @@ increment_version () echo -e "${new// /.}" } -NEFM=$(git diff --name-only -n 1 ${TRAVIS_COMMIT_RANGE} | grep -Ev '^(keyboards/)' | wc -l) +NEFM=$(git diff --name-only -n 1 ${TRAVIS_COMMIT_RANGE} | grep -Ev '^(keyboards/)' | grep -Ev '^(docs/)' | wc -l) if [[ $NEFM -gt 0 ]] ; then echo "Essential files modified." git fetch --tags lasttag=$(git tag | grep -Ev '\-' | xargs -I@ git log --format=format:"%ai @%n" -1 @ | sort -V | awk '{print $4}' | tail -1) newtag=$(increment_version $lasttag) git tag $newtag - git push --tags -q https://$GH_TOKEN@github.com/qmk/qmk_firmware + git push --tags else echo "No essential files modified." fi @@ -34,7 +42,7 @@ if [[ "$TRAVIS_COMMIT_MESSAGE" != *"[skip build]"* ]] ; then make ergodox-ez AUTOGEN=true cd .. - git clone https://$GH_TOKEN@github.com/jackhumbert/qmk.fm.git + git clone git@github.com:qmk/qmk.fm.git cd qmk.fm #git submodule update --init --recursive #rm -rf keyboard From 41fa638aa8bc9c10dc885218569ccd396d84abcb Mon Sep 17 00:00:00 2001 From: Erez Zukerman Date: Sun, 28 May 2017 20:05:37 -0400 Subject: [PATCH 506/517] Adds prevent stuck modifiers to EZ default --- keyboards/ergodox/config.h | 2 +- keyboards/ergodox/ez/config.h | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/keyboards/ergodox/config.h b/keyboards/ergodox/config.h index e870835d85..2091999bb3 100644 --- a/keyboards/ergodox/config.h +++ b/keyboards/ergodox/config.h @@ -3,7 +3,7 @@ #define MOUSEKEY_INTERVAL 20 #define MOUSEKEY_DELAY 0 -#define MOUSEKEY_TIME_TO_MAX 40 +#define MOUSEKEY_TIME_TO_MAX 60 #define MOUSEKEY_MAX_SPEED 7 #define MOUSEKEY_WHEEL_DELAY 0 diff --git a/keyboards/ergodox/ez/config.h b/keyboards/ergodox/ez/config.h index aa17c3e8d3..cc8aa3d40e 100644 --- a/keyboards/ergodox/ez/config.h +++ b/keyboards/ergodox/ez/config.h @@ -60,6 +60,8 @@ along with this program. If not, see . /* Set 0 if debouncing isn't needed */ #define DEBOUNCE 15 +#define PREVENT_STUCK_MODIFIERS + #define USB_MAX_POWER_CONSUMPTION 500 /* From f0fc2db4e291dc7584c3cb81994ae14b9749fc62 Mon Sep 17 00:00:00 2001 From: Priyadi Iman Nurcahyo Date: Mon, 29 May 2017 18:17:21 +0700 Subject: [PATCH 507/517] Adafruit Feather BLE / BLE Friend mouse buttons support --- tmk_core/protocol/lufa/adafruit_ble.cpp | 20 +++++++++++++++++++- tmk_core/protocol/lufa/adafruit_ble.h | 2 +- tmk_core/protocol/lufa/lufa.c | 2 +- 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/tmk_core/protocol/lufa/adafruit_ble.cpp b/tmk_core/protocol/lufa/adafruit_ble.cpp index fd6edd42cf..bee6bb2c19 100644 --- a/tmk_core/protocol/lufa/adafruit_ble.cpp +++ b/tmk_core/protocol/lufa/adafruit_ble.cpp @@ -87,6 +87,7 @@ struct queue_item { uint16_t consumer; struct __attribute__((packed)) { int8_t x, y, scroll, pan; + uint8_t buttons; } mousemove; }; }; @@ -699,6 +700,22 @@ static bool process_queue_item(struct queue_item *item, uint16_t timeout) { strcpy_P(fmtbuf, PSTR("AT+BLEHIDMOUSEMOVE=%d,%d,%d,%d")); snprintf(cmdbuf, sizeof(cmdbuf), fmtbuf, item->mousemove.x, item->mousemove.y, item->mousemove.scroll, item->mousemove.pan); + if (!at_command(cmdbuf, NULL, 0, true, timeout)) { + return false; + } + strcpy_P(cmdbuf, PSTR("AT+BLEHIDMOUSEBUTTON=")); + if (item->mousemove.buttons & MOUSE_BTN1) { + strcat(cmdbuf, "L"); + } + if (item->mousemove.buttons & MOUSE_BTN2) { + strcat(cmdbuf, "R"); + } + if (item->mousemove.buttons & MOUSE_BTN3) { + strcat(cmdbuf, "M"); + } + if (item->mousemove.buttons == 0) { + strcat(cmdbuf, "0"); + } return at_command(cmdbuf, NULL, 0, true, timeout); #endif default: @@ -757,7 +774,7 @@ bool adafruit_ble_send_consumer_key(uint16_t keycode, int hold_duration) { #ifdef MOUSE_ENABLE bool adafruit_ble_send_mouse_move(int8_t x, int8_t y, int8_t scroll, - int8_t pan) { + int8_t pan, uint8_t buttons) { struct queue_item item; item.queue_type = QTMouseMove; @@ -765,6 +782,7 @@ bool adafruit_ble_send_mouse_move(int8_t x, int8_t y, int8_t scroll, item.mousemove.y = y; item.mousemove.scroll = scroll; item.mousemove.pan = pan; + item.mousemove.buttons = buttons; while (!send_buf.enqueue(item)) { send_buf_send_one(); diff --git a/tmk_core/protocol/lufa/adafruit_ble.h b/tmk_core/protocol/lufa/adafruit_ble.h index b3bab3ca09..036b7d14ea 100644 --- a/tmk_core/protocol/lufa/adafruit_ble.h +++ b/tmk_core/protocol/lufa/adafruit_ble.h @@ -43,7 +43,7 @@ extern bool adafruit_ble_send_consumer_key(uint16_t keycode, int hold_duration); * The parameters are signed and indicate positive of negative direction * change. */ extern bool adafruit_ble_send_mouse_move(int8_t x, int8_t y, int8_t scroll, - int8_t pan); + int8_t pan, uint8_t buttons); #endif /* Compute battery voltage by reading an analog pin. diff --git a/tmk_core/protocol/lufa/lufa.c b/tmk_core/protocol/lufa/lufa.c index 3c4ad4b4d2..e3f8724e81 100644 --- a/tmk_core/protocol/lufa/lufa.c +++ b/tmk_core/protocol/lufa/lufa.c @@ -669,7 +669,7 @@ static void send_mouse(report_mouse_t *report) if (where == OUTPUT_BLUETOOTH || where == OUTPUT_USB_AND_BT) { #ifdef MODULE_ADAFRUIT_BLE // FIXME: mouse buttons - adafruit_ble_send_mouse_move(report->x, report->y, report->v, report->h); + adafruit_ble_send_mouse_move(report->x, report->y, report->v, report->h, report->buttons); #else bluefruit_serial_send(0xFD); bluefruit_serial_send(0x00); From 51e44fd6c5df89962d9659d3d80455ea54b3c400 Mon Sep 17 00:00:00 2001 From: Damien Date: Mon, 29 May 2017 13:17:23 +0200 Subject: [PATCH 508/517] Update Differences-from-TMK.md Removed fn_actions. According this [comment](https://github.com/qmk/qmk_firmware/pull/1336#issuecomment-304634633) --- docs/Differences-from-TMK.md | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/Differences-from-TMK.md b/docs/Differences-from-TMK.md index ca3ba93ff5..10ca329dc9 100644 --- a/docs/Differences-from-TMK.md +++ b/docs/Differences-from-TMK.md @@ -5,4 +5,3 @@ Understanding the essential changes made on the [tmk_keyboard firmware](http://g | Maintainer |hasu (@tmk) |Jack Humbert et al. | | Build path customization | `TMK_DIR = ...` | `include .../Makefile` | | `keymaps` array data | 3D array of `uint8_t` holding **keycode** | 3D array of `uint16_t` holding **keycode** | -| `fn_actions` array data | 1D array of `uint8_t` holding **action code** | 1D array of `uint16_t` holding **action code** | From ae6b803ad61d647febbfe806d795b8b757fce074 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Mon, 29 May 2017 10:54:46 -0400 Subject: [PATCH 509/517] more than one en-file, and actually ignore docs --- .travis.yml | 2 ++ secrets.tar.enc | Bin 0 -> 10256 bytes util/qmk.fm.enc | Bin 3248 -> 0 bytes util/qmk_firmware.enc | Bin 3248 -> 0 bytes util/travis_build.sh | 2 +- util/travis_compiled_push.sh | 6 ++---- 6 files changed, 5 insertions(+), 5 deletions(-) create mode 100644 secrets.tar.enc delete mode 100644 util/qmk.fm.enc delete mode 100644 util/qmk_firmware.enc diff --git a/.travis.yml b/.travis.yml index 6c26e41128..ab788317c8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,6 +11,8 @@ env: - 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 + - openssl aes-256-cbc -K $encrypted_b0ee987fd0fc_key -iv $encrypted_b0ee987fd0fc_iv -in secrets.tar.enc -out secrets.tar -d + - tar xvf secrets.tar 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" diff --git a/secrets.tar.enc b/secrets.tar.enc new file mode 100644 index 0000000000000000000000000000000000000000..689ae3e8949363c68058d8103902159cc86631bd GIT binary patch literal 10256 zcmV+rDDT&CtWhyn^<=M>H~ZV-E%$)0ais#xU)S9k)8kBJe-5j6=tI`h?(-`6E>KkY zY)vnH8f&nuo0k!!Jt84@fd*sCs+WE#maOzW? zA>`cs=pM3&J$Z7eo;;*i;uVS`Y`!RXR&xX0=5auLU?@iMz!36M;I*lpr=PN5Y9<6> zhO*{btJpgpbsjdDEY5VRPpCkUh45tUHWKvqnw(~u7ty16LRV(@3;Q!=WTKrzcw8aP zgk@*fnaa2CUa;)cU9q=2llQ-u@*KWUGU6minE+mSj)DlQ;!hM2goRq}9v$UP==Ufo zGCmSJkTNuS!$SGxuuWUw8-dxB`1nkYNl{pglnN~2s{@`enCB(Hkn3WBqpz_Xj)(od z8go&E;NE*zS3jC)kczN{^S$T_ovTpshkN77=A!0lFA=io*GUXq*1`gygZ?kI4rx`y zY*9W_+BPDYxb?;$2QZ|X(DaOnEr4o{ z;CI%rU;*qsg0lHIYlPboq>%>$vmH$@mt^k|0K9VuOSRU2Kji*m`QD&&j9Z3=G|@Y+ zwe7fz{1lu`*^d$ZcMLwbH68`%6Li#SAn~F2bgBdqh%Iymr|09mqy*7|oEXw5Q{{;R zy1I;caEi>!pa*p+IALwb7_v&>MJ36a>hCsYic|dqN_?bG^xW|c)GjU3vu2Aauz6vM z$TK}x#4}N1jpN@)B90p`t}$o{Ug#Sqm8sRgfQEZRS}4q9E?wp0WVx6vnkQp~-R9>u z8rvdwR)=fV|IDgbXL-v@(fkjDz*wy(H{jiu395o>&Bk(5fc8W(uImb`Dtq1 z+mMS#_0BG(%APT@3GC$<3uo;tTemj-!d3;30p7{?>a@X9_^J+xrEV0Z9=L@X*p||U zx|v0iiFE*fSBw?iAJ$L;s39QZioB*+oAn>J2m-K)Tsug2#8T|tD={=XGcX(wLqj70 zO7t`2Wv4mpJGxB8CEytP5ucI$?4mmdFM>7Xrp=HJULm9jvkD7F&uTkJV{pk1XSS0@ z>F~uNj)ZLQtSdpGCU4(ZlKav82d0r5i*a8*gtT5~hb#0b{@%pX+QlQKwoF|%hMa(} zG_R80+I1EP1=oD1p1UC(tz-^1rWNiWClnJ_&gNkPT7V|B`mOiFM`V6DW0eX$;BBFR zAm*mXRA1lNaBoEbzl%z|sEK)cE)*7j;_Q%j@CVd?=6Wfz*o}ut1V(5)`MPNSYLl2y zqo#|0I(51V?}p@_`I6fTDGGPv=(YMk5M)txkTTRy%=hS17swp}1*t^6m?S^a(||rG zsg-Mdqz>)O1b_Q>{RkW=lqM;BHh0!mdIaez69kSonP@rC7=v^%PitA_Wf`^T627tl z+>K}`b}xLwTE7Ec$V^-~@BTK5bjAU$$Qk|C_sqZU+m+SkPu2VM`2Vf-NSY)5Mi*i0 zcLa_rBH9=Y8Csv=vHv)tq>reTQviR`<=>N*F5NN8F@q&719PCW-mrmb)4E}hS94C* zs=bY8v7%nLy1WLfgl&m)uqy)7JF_XdN}PjDP`Kcv#+T7yHXy$}Nbx+WWO@#m6h7B( zz`Q*&alLnIx97?yNW_=Wh-vp&d^HvWcPCh_`7%(E2p(uCELh4gYMwdL^qe5gE9 zO}%|!&{R=9uuiDRUDA&0PxlpL;(Ya&8+KRnPdyI~9d5k_hsQCzIkx<>KG_l2pyY_3 zDluP{_*5rkkKt=DX2?U#f#8}4Vy-^34j-NFcLlEX58B#~Wp@@l%4K6??l;1zf~n#b zNrw?pM)^SnMTor1Bs&TRTFo~(1?W&^8t(|Ez=9^aK*ymRU~Cp? zDTSA3f$sl+djO2*TO!={OvL`pkvgzvq2Aw6L&+S`9)LtAV(}^(zkw+@iGrZByku{Z zBVw+#ct0V3!&4h;8Nn1GzV2pcmu^y_?-WAE9C3Ji*VG`e4G5J?3;9MdG9LY4rk)QS zAKAY<3p3)F%D?iyo&^|(@^@=x_9^tB8cf#8B{r##g=}Pn)X0ikzaXfuja+TtkWPco+=p_dmghM%&oZ9$sFR&8V{zxbuLwZ37koE>!tM zhG*=SZI$7%@^W;Lm}uk14DTDZufy7aVDErKyxN^?bDnTp#Ih@B^m8OkjEwQ<4IH~O zW1pMDP7Ji%ZcUhR(=7%F<(1erz@B>iW8QTj6CvXYstVV(e_c?7Z)qOCXNpwkWk|}^ zobJW9B48k)usDIAG*tYHo&)|;a*v|(v%p%N5v<0+dehP=27DOJbgJUamdAtqMgiqp z8~_Y<@kVexVegE2*cCF`^lN+H%Oy&rZOXu-uY?E|`oNb@uorCSQPe1jU!qR*Fp-y#jyeh$4d z@M=+sROndXF) z2JU#tEJhV4!kOcr8JtQS+@_h!ri+^VEWa0Cx4ZiURj<5ad>*A2XhmDRx5Mg&=+0cK z^|=K3k1|z0xJhk z4osrwp2d}=F30`&Ij70vUxea%6XJ|`x7Ii-*#(JpgdaF0{MZ{LNG_wE1p;eak>B~P zElX*M(CFF5Ihjv&H*)^Z5R*l%oR4%ek+ZM^iddsl7v@#L%83)RY?LC{j@$WNcWRYBnS=A0$dK@5^8wR|VG*|DqgWiH^198wfO5>Wo+xniKvP z5lUD~Y!u$)-sYb7OaPTiC0sPEN`_5u@Dpqf$i0nJ3}Inojt}fpxv}?7?zJ3e^~ixA z(6H0(D~k&zM;~T|6>ae(@y}!HqFX|?PH@-8qC#~Kxl%3fEzt&uJ@s3YE~>uB8s^yj z%B(qFz*@e17DH_RJUgfn(;J$nUrxoNPj6A-xQlv)kyl=Y&zH6mp_?~ABbyp|!>u(( zpn8c2x6%?K3~(kk32kXlUj~7SuPZD5ueJg(hm2s`_Jw^0SD-b#|9n#H{B*#}O(w=7 zgPptsxuK~(5x3(u1ANGTUzU~QlZDlU@3#4Yt1ynH)gPEL+qXbQ3ujT)VO|^@+Hxa} zrSr`CS##b;lK6fYB_0MCF}NMe2XD=3(G7Mdf(_%sAlIcI$ z4li$s+Xq)As*TE_saY+EH&m&eyY=qqe~Nq>tlef>Z;U#~CuSdiAx@6VaQGAj;Jd1t z%R*ni8#ZWKjdh(YKKQ^m#8%e!bST@-1vlYd->t9a1!?0r3v5Ue0!{OdOF>0_X3g z6)=&DXS>wcATp!Ht`>;mA><^&TZ2&b4;-#c9|8R61`=GBOxwcM9DB2?U-E;FFPtmTd29PVB`C*-)`KnNbvI<88_#J?WSz zcGg27aa+r1qUJ}|CKX|wDnd!rIHDN=eRvS}PeIGFmd_85wKduJizTSHgLH(#WC;A&@vef_KPFrKOXW%n2s7|5 zIOCP57BhDr|5eK7Wa6uDW5^3cU(9vqCy{qrKfJy1-}>jYN=sDY#t&wdY+w~ zxAxyD)Ky?fRf;5BBR7}f>w8(U#RLT&i!!WTO;G1HGi=+6`Z?}%qMrH$0#AdRm(^SV z>(?$Lb05Zo!_tlFgm}~~A6tP#$-zjNK8juASAU4=hkD42l*zYOoH)ZBbbob92g}B zhTst)CQiPo1#Y^Kfk6=QA*FaAKjTZ*0TG?x&Hbi%rB>dPt*Sf4t?kwteRlc4W8~Xm zkOHJc1|jz>Uzy363T-@ys@Ck3J4n0Xxx`tPOVRBr_+1A=SRKR zqtzOED9s?ullUyJ$I>`d@#UL+0xw-+OHg_YkQeN*8aX zrFDFIGPz`Aoa}SnWBpWlF|n^&qZkxvpN*>x*T?N$zup?oF1c#-0L}dkhj&D>fNLD6 zQ><*&d3w%cP)$1FPm~Ux!gzx~uiYX$c1^74Os?Cew?$+wqz1f<&q@Ppm)wAXAr!=N zOD#=}j=jAx; zT*Dfl2VmG55se@;y&*m+z~`^RKx_s%ucSho;sY!|{&iVO3^rc;p zG($x{9z2cKWUjd9?Qf=NyFjOb51^2$QR!yk?TGVvh|P=i;0o7Srg-*x+|(g&L;cn5 zn7--s&cz}Xmsts#YBY#*(JZ3AIJeiU#JEv>bvCRE)z-?)TvgtHLpQG(gH+|O8wNTs z3MsZcy#tNE!u;W@5H)Nro(=l?E~bkVlKbeXm8iRqh+X)g%C5hYkj}h~NqaU6mVK~`Omy_FO3{Qz3JX8P+ZU*w^b9~b31O-m8=C?d_ z-PcE!g7DqzJS(Orn=fN#TwnQu3P$k+vg|bG7LaTOD1&ITE4j5Fkyb!?6tj6CQXcH& z+m2W9^MZ=P+?(BgDBsLfMH6#Salhnmu@OhOE6>9vOQF`NR$hg+GIf}%!8yumTTtoo z2>|a#WsU0_Ih+7ewd7CKiBFP6Rb9Mr6yS$uQNY6I*RDh~PJWsc%Aim3UWtJjTbmu* z#FT+@Bm+3J{hg7~8QB)=!R$CWtz(lswKO$i^1;1R*BkbDcp7xH&oMm^X9NFv4htfi z9OdX|6R+IyMci)twJ%gSE_so5x6Aq)I|Hr(Jx6nVuO+p%xkHzZ*_k*=MG0eiw(Wgv zSY?fzl4F4xE2hH{W37;k6QfaOHC3t_8m)t&h8DLN20bKU4TF8wOBj8-hZ%fKl`~Fe zfe_BK0RK4{$Ch3uc+|KKr#Ewgsye^@5cNOg2e~rYoWwnrw7?ysujeB#u$1n@N97&(S?DNbDHE$Kj0`1d=9*c1| zq*1~++*VLZ+CwbZ_GSmUXViKgw)99Zfh6pX4+?c@5HVsZB+Dt=co0<92Rctz@m7{K zz7)Q!*d}abW^G;O$a_z)e>%jwbmuQS>@;PxU8JwCbHoje$rr9>RmZ>pebN{Naw4-; zVR%INe42F_l>mZT$CU8tnM-Hqv00&VTgd%BL=F06+p)%>3#m#s5ljOfsJti(SS(P9 zc3ru(7rIXvT%zSb9Ca6pN(BM`BQl@Nc`Q%-6J3SDqbpK|!LDorojr_=^2Q7}g@1R5 zh2>|8?>zeLTY}2~z>wFnRVX1fNzmdkm$_-<{b|_f9Czk?Om-G~yK&8d$q#c*#n#TM zRn)j5t&}T~*ayMEZPn0ULBXI76D`r&56H0v;fvQbyA!tI0LT^x^9IY%B0zQOSBaG#$O~ymHyhiwZyqKi79uHZ||6A&wy5_sU40qvHEcr8Shy0NLF}4%yB3 zTziL%8tkdK#xG;_e5X~DnPl6oZG~giqp*C3wuPJ$=$d}xvjjOx)gYCAGhRm-aXU3q z0p;`jQsO-``a$l$mtywWVw;LyNGSN{(@y8Tb$K{RP7qCP@~3uQJ<^l6h4<3x%9W7UtX9{*^wH&Hpmu1h%XhIP#8jN;v1HwS1K%7iEz8~xyOL;$OvO6A zj*9>WxyD_VUiJ()?`IRE{@JigaEI}IZUc+o|kuIk5aZ$ zaa4?|FSsFpB{=e~I~}(En_I``M;IgmIb=g^~RHFP~AO&S6ircZa7JimW4jyNbL!WFG0JW?&F9(-#-#cqY6CchNbWpC*wntxan0s|}l z;t&(nTX^v?#BtwE5-r`A$w=0=&w9Ua*pEjUo!BN-QGYe>g-8T2XsG*xUDV`*8%!qB zVA9*pw2V#4S}H?6CK$YCI4p@qx!a8bb;$O~eg+XbKhw89CN}#;K=91zC75D+FUV_e z)&TPVJJ_D0FY z?1v)RgN-#w(3%Ku&Tmf()&gWvj9LhwfvI=%6$k9x#oHfEFgq%N?*==LQr6%dKkjkSB?(5tP&YP``22NP(@J>@4x)4?4v_;ZkuCs+Y zdY%|+>i-?{e4rD=Zf|E3$AT6;39D)@mSKwmsK8I$v>dX|rO#E;Hl;Prlj$g{;KkX$ z<1`7Z#};rph>HiW3|#TVf#MR0S0?_L)ge_@j?_Pmh_NNr$b$Jp87gRo^ zVa7|4pG-B!41^1?Vi(8bUXu0JqZ!|^x`%os2Wc<>N)QLu{UqD*uQ;^zA~>B$6>u6H z$6g-%O>ID}j<%1gSVtTJ^J#@h@)CBQY~56g=xDQfF{IUn0g9EMNvL}Gcuy7_q+bw~ z_hv(-2)VU|o@J?VgzHu3F(_mU$9$7_m8LgJ6M^d<^W%KbIH~{Am45*FO`Mq=4GjS| zzXiTt?+_%&!K%v>OYH~lfbU5d#uya8&Ami++J<`o*stPu^~CL1O@VnV6q{7`^w$)@d<09U>l*Q zAFbsbp^kQILbaVDb0O;~23vU=N*n;jkfS3}a0{1B4a2GK<#>V zKt}wWZa^QH2NG{9$>BL+Q1CbjlV@22aVBz85-BPE)j#txs2X2jt8PRg#|kaRxb&79 zHjo{fpGV1QOGXuY9t)2mw90{5>pLR8W(=D`i4kqmyQ_EjD&IfSpbOUH&dPCSW}4mv zohF;HDqKPvhA`KR#I#R}{-ho(DF};7>X?RSrrDO7eS#nfgXj|_w``f?so2(%GSP>* z?t}`gi4Gs6+;PK5ecbBOHuQD)rSpt$eOJ6=U}#;y`@tyv3%$$?RDcKZsLV=eMS$!1<2drVRK1J5L;}+p~-MvChn# z1ETbyF7(_cy_|eXm@(pc)Vnb$3AEV{d*yjrRH1oHXmGuN%(ABG%uc2?H+h*r755(H z0zuB)@~0`@udcIr4wBKdp*Ar?YGUpCF3p9~g&*Jv z)k3vCqLgYp`l4AcC{sQZ$}H5C!gmb$lcBYsFmj2pAn}Ub?@jP9J_HcW10H?D@7-SW z`oP)El!c3W7u}}X997mbB#%ta|4I)kDCGDBx* zuaN!cb=^rIDy5=zfiL%e292+|R>Tb6R9YtLGLafHf&dKG?}l%HC(i$a5;reKLGYo1 z<)^#{mvNyNb?#3CW79H-(v(Be`XEuflf_ifJ=l8BL{7f(SHg4C)fCMDS{i_@?L()M z9=Qbydl6Pead9iaie!F0*0_~nVHB*Zi0|2@o!-^O=^M9wZAEirg%2gH6==GNWGrfVV}DVdS`LYjyQPizoF zd^?#w$iVpPW6ElMbJOQQBQfv>{wZY`2Yzj^?4gy7j7L$VD^k-XcZ^AWFTp8stA5qa z^9?GQq|F}klOuKnjXY}=13!BX1Hpm?FT`9v84PL1i%94WLDf0XKEx^6?>)7*jb#P? z%XU$+{nsJDmYH`uA|E=g2lfVv17}y3k_<{}&64^krCNb=qhNvDf24&VoO+^?30K(H z*D9&R@d1dz1QE@Qx+5J>!Eb6yV53@2h9TtN|2pz)JmkRALbhR8&Zp+dL#Es`NbOHc zSV8=;!8xxW6ec)5mcoMFnAo|{X*~j4L8puG4B9XSAXgOTxXHt|C1<^gP$FIv7c!` zYt)l#JvTBMBB2Yk8rWerBM%_t|iW@IRDaWLOOe>0h zx~B~vFG=XA-?(>=#lZ5E5V=1wz(WsNg$H48u zTWuptd-^LfJFi!a$sNKO87G$16KVnbZ!ZI>;N|~seos5-PEnr9)5aw@`Asn+u5~7q z*YY?76MpLthLD^SUt4=dDYDn3<|76XNJh#s{Ea-bZ@ASsT*!QFP&DBK{t`qIK&@D! zuJHowsT|?IfH8=+*3NIsM;dFyZ%AOB^7|95w4RMj<*#NHk3sJZ45&(#i(U(@5l_Ef zOD82NR%vqZz|vGxdo4}4!8=R`Sf^-uTrqPIOIP^)c~}u$_bz~f9$%|(Q>87O#{kVn zVwvR!dgV{nmYUidYnxb4Q_UBwp^piZi%0k( z=AH*a){%2IjHq|{4*gcWLgtgKoBe65^`62Lb`LM*Xd5uX?bpnc3#W1(WEWO$t|6I3 z`<+=!60s5q@qQ`G$!0w`iM@yl(18TjE@tcyk$OZwN?1D+m+rj@YJ6Rm^41VQXc#0@#+UFGKL#XT@t@@Ud);f*{KbNO z%u_Hxc|F3X>A%S-A*Dbmwmj#f|JflLfLhSq6d6VXXhRucHwP!>oro8g-@ro4dT7+t z#5z1F@JzZ}MeCW+(~JS_?Kp{mdhZkR*GjoM z-4@)bpyR9c=b9^xmH%!HjITTvJBv)l?SzWa!o!LnG-XKSUTN+CAI=x`;6~j1*86#U zyG!v4WOFh!l%qJthYCyuFGIWQOhD(UTU>X2fR0;A@BRD|PV*s*dTykCpx5-26rO_7 zQXh7UN+48;P}+T#T9~GddzcfS(kfLqfmA-(Flk}|sPwS@Y~^k`71pNREL8ziv^zm0 zoU}Dzd=CZbC2N|sQpcVQoEQjt>&UM)j(l6cygWSwmr(bipG-aLh{{Ze$OX3wvwn!H zIM)8q%cX8N?QWk+%F3<#O}UKlRkUgRy4MBCV})^q$p!s>IzgX6on;Mq# zi+zY;qRSD`HFX8y44}|kk!B9*3TGqov|Pf^M(79>7*JL5IIJbAMSNaNc!2DzqQ1iD zC%QX|6SXd08l9Adfm286hqF#9R-%Bv9jI|tYdj99a71^1&TomQZRfsSn*90cD|qNg zpKd}>`ghAk!vfBrzOEYLcQPHD7qG)w%B~}8&mbuJy0Y6FeI&~r$z3K<{6zbaRb~2$ zX$U?_I^VZ&a8Fe;m#j)wr-o8sRsgl=kCp9Ue&%W}t^)f8?sv8`%L$T(HuAZs9@c)t z)-pY;iGB#>AApz|ADO>z+*t|J-y z`CjPP)Z>jatm5OUIM7np>D+TD46+5PE!~ZZ{3&T#zJWK zpa<)M;wERwATQF6ZGL*&us-2i2VnZ5s$1$*rPVIVp2eK2iy#yMa4+-X4lnK{pxxvd zN;Yl;&aL*BrTCy&ns!upSp$ye!SdwnjgmDd;)PA=zddEmjTsW4+$j~oBdlb^n;|O zPfF!8J1~izssV_BUBX`)0@0A9X2I}2<)ejWL7Y1b@{cJP=9k!TZn9|n;s4O^3R`pS z?c9@UogW?^&QlZH-Dr>wnl1mLJWVvNX=i<+RWc)uvtc5@alxctSLlJOfV-iSj!L?> zHPpo4(OI<&R61y@_ylwp7$~2L^~M#@tf2ZEP?-xqw$4u0M3ZS50t}IqE?`yL^O7xn$ z$w!k+88>uCBV>$Ip!nY1LSlUXq_`J|l5t?}&VDmYNK*i#`!?&}qRzcS+hvqIj0V)) z95!v3)+2|_p`UVPcXBMT8~&Q;h(M30LAMT*h%&3-aE7R2uVg@HioWlGeW_~`^Y-8p zuJj(t^{CxjIC;dnCnUv5b`W2r2$k@U;*dfgCmjg8!+vvqGGS^+n#2{?flz(7# z#;P(S)bR!us3DanGqQ9WD+)Hu9+_PgY(Bjq>mv!~Bfn7ws9YdfL*BWCv+>VgA9bPY zDJ>Lw4n*zt2NMwi{^6tS0hgBb;X(RDvktS>i&X(NucI-87jm0&)aaZC@9qVW$}Lla WLCTjz2~*Fnx5cRx6+$BBHHP1Fq|cfF literal 0 HcmV?d00001 diff --git a/util/qmk.fm.enc b/util/qmk.fm.enc deleted file mode 100644 index d7aa4627037118fe98d85ea8669562bf20465bad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3248 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 i6X`9%yzfz#l-szkLWn2bDtL5JDhyIA6j5 diff --git a/util/travis_build.sh b/util/travis_build.sh index 6bafd1941f..5b0951c6e0 100644 --- a/util/travis_build.sh +++ b/util/travis_build.sh @@ -5,7 +5,7 @@ TRAVIS_COMMIT_RANGE="${TRAVIS_COMMIT_RANGE:-HEAD~1..HEAD}" if [[ "$TRAVIS_COMMIT_MESSAGE" != *"[skip build]"* ]] ; then exit_code=0 - NEFM=$(git diff --name-only -n 1 ${TRAVIS_COMMIT_RANGE} | grep -Ev '^(keyboards/)' | wc -l) + NEFM=$(git diff --name-only -n 1 ${TRAVIS_COMMIT_RANGE} | grep -Ev '^(keyboards/)' | grep -Ev '^(docs/)' | wc -l) if [[ $NEFM -gt 0 ]] ; then echo "Making all keymaps for all keyboards" make all-keyboards AUTOGEN="true" diff --git a/util/travis_compiled_push.sh b/util/travis_compiled_push.sh index dcf408a2e9..a5bbe70ece 100644 --- a/util/travis_compiled_push.sh +++ b/util/travis_compiled_push.sh @@ -7,12 +7,10 @@ rev=$(git rev-parse --short HEAD) git config --global user.name "Travis CI" git config --global user.email "jack.humb+travis.ci@gmail.com" -openssl aes-256-cbc -K $encrypted_b0ee987fd0fc_key -iv $encrypted_b0ee987fd0fc_iv -in util/qmk_firmware.enc -out qmk_firmware -d -openssl aes-256-cbc -K $encrypted_b0ee987fd0fc_key -iv $encrypted_b0ee987fd0fc_iv -in util/qmk.fm.enc -out qmk.fm -d -chmod 600 qmk_firmware +chmod 600 id_rsa_qmk_firmware chmod 600 qmk.fm eval `ssh-agent -s` -ssh-add qmk_firmware +ssh-add id_rsa_qmk_firmware ssh-add qmk.fm if [[ "$TRAVIS_BRANCH" == "master" && "$TRAVIS_PULL_REQUEST" == "false" ]] ; then From ee0135fb8167c1a83f70a9139b32e74c5a9128e1 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Mon, 29 May 2017 11:37:20 -0400 Subject: [PATCH 510/517] get rid of folders in tar --- secrets.tar.enc | Bin 10256 -> 10256 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/secrets.tar.enc b/secrets.tar.enc index 689ae3e8949363c68058d8103902159cc86631bd..03fdf41c8bdc0dc0eb0e1868a841e9a1c13a8795 100644 GIT binary patch literal 10256 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 WOW;zBDsB<37HTb|!le>*bF9Q7+XXlP literal 10256 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 WLCTjz2~*Fnx5cRx6+$BBHHP1Fq|cfF From 91c6113cbabe01680d3dd473f8db64afaeec0bf6 Mon Sep 17 00:00:00 2001 From: Maarten Dekkers Date: Mon, 29 May 2017 17:53:39 +0200 Subject: [PATCH 511/517] Added SEND_STRING(); to the documentation. --- docs/Macros.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/docs/Macros.md b/docs/Macros.md index 78290bbf69..994d01928f 100644 --- a/docs/Macros.md +++ b/docs/Macros.md @@ -195,3 +195,21 @@ For users of the earlier versions of dynamic macros: It is still possible to fin 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("");`. Note the caps, because `send_string("");` 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 );`. From 7eebdd4760d92c87128d8c06d0a013b7d3aa1a60 Mon Sep 17 00:00:00 2001 From: Priyadi Iman Nurcahyo Date: Mon, 29 May 2017 23:10:34 +0700 Subject: [PATCH 512/517] Jokrik's Clueboard layout (#1340) --- keyboards/clueboard/keymaps/jokrik/keymap.c | 86 ++++++++++++++++++++ keyboards/clueboard/keymaps/jokrik/readme.md | 11 +++ 2 files changed, 97 insertions(+) create mode 100644 keyboards/clueboard/keymaps/jokrik/keymap.c create mode 100644 keyboards/clueboard/keymaps/jokrik/readme.md diff --git a/keyboards/clueboard/keymaps/jokrik/keymap.c b/keyboards/clueboard/keymaps/jokrik/keymap.c new file mode 100644 index 0000000000..acde4d9e16 --- /dev/null +++ b/keyboards/clueboard/keymaps/jokrik/keymap.c @@ -0,0 +1,86 @@ +#include "clueboard.h" + +// Helpful defines +#define GRAVE_MODS (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)|MOD_BIT(KC_LGUI)|MOD_BIT(KC_RGUI)|MOD_BIT(KC_LALT)|MOD_BIT(KC_RALT)) +#define _______ KC_TRNS + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _BL 0 +#define _FL 1 +#define _CL 2 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap _BL: Base Layer (Default Layer) + */ +[_BL] = KEYMAP( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, KC_PSCR, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, KC_PAUS, \ + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, \ + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RO, KC_RSFT, KC_UP, \ + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC,KC_SPC, KC_SPC, KC_RALT, MO(_FL), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + /* Keymap _FL: Function Layer + */ +[_FL] = KEYMAP( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL, BL_STEP, \ + _______, _______, _______,_______,_______,_______,_______,_______,KC_PSCR,KC_SLCK, KC_PAUS, _______, _______, _______, _______, \ + _______, _______, MO(_CL),_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, \ + _______, _______, _______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, KC_PGUP, \ + _______, _______, _______, _______, _______,_______, _______, _______, MO(_FL), _______, KC_HOME, KC_PGDN, KC_END), + + /* Keymap _CL: Control layer + */ +[_CL] = KEYMAP( + _______, _______, _______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, RGB_TOG, RGB_VAI, \ + _______, _______, _______,_______,RESET, _______,_______,_______,_______,_______, _______, _______, _______, _______, RGB_VAD, \ + _______, _______, MO(_CL),_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, \ + MO(_FL), _______, _______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, RGB_SAI, \ + _______, _______, _______,_______, RGB_MOD, RGB_MOD, _______, _______, MO(_FL), _______, RGB_HUD, RGB_SAD, RGB_HUI), +}; + +/* This is a list of user defined functions. F(N) corresponds to item N + of this list. + */ +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_FUNCTION(0), // Calls action_function() +}; + +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { + static uint8_t mods_pressed; + static bool mod_flag; + + switch (id) { + case 0: + /* Handle the combined Grave/Esc key + */ + mods_pressed = get_mods()&GRAVE_MODS; // Check to see what mods are pressed + + if (record->event.pressed) { + /* The key is being pressed. + */ + if (mods_pressed) { + mod_flag = true; + add_key(KC_GRV); + send_keyboard_report(); + } else { + add_key(KC_ESC); + send_keyboard_report(); + } + } else { + /* The key is being released. + */ + if (mod_flag) { + mod_flag = false; + del_key(KC_GRV); + send_keyboard_report(); + } else { + del_key(KC_ESC); + send_keyboard_report(); + } + } + break; + } +} diff --git a/keyboards/clueboard/keymaps/jokrik/readme.md b/keyboards/clueboard/keymaps/jokrik/readme.md new file mode 100644 index 0000000000..cc5eeba961 --- /dev/null +++ b/keyboards/clueboard/keymaps/jokrik/readme.md @@ -0,0 +1,11 @@ +``` + ___ _____ _ _ _ __ __ _ __ +|__ \ / ____| | | | | | / / / /(_) / / + ||) | | | | |_ _ ___| |__ ___ __ _ _ __ __| | / /_ / /_ / / + |/ / | | | | | | |/ _ \ '_ \ / _ \ / _` | '__/ _` | | '_ \| '_ \ / / + |_| | |____| | |_| | __/ |_) | (_) | (_| | | | (_| | | (_) | (_) / / _ + (_) \_____|_|\__,_|\___|_.__/ \___/ \__,_|_| \__,_| \___/ \___/_/ (_) +``` + +# Jokrik's Clueboard Layout + From 44832127d72e66e422a40e2bebc27e14236807c3 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Mon, 29 May 2017 12:14:49 -0400 Subject: [PATCH 513/517] push to git url --- util/travis_compiled_push.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/util/travis_compiled_push.sh b/util/travis_compiled_push.sh index a5bbe70ece..a2fc2b1941 100644 --- a/util/travis_compiled_push.sh +++ b/util/travis_compiled_push.sh @@ -30,7 +30,7 @@ if [[ $NEFM -gt 0 ]] ; then lasttag=$(git tag | grep -Ev '\-' | xargs -I@ git log --format=format:"%ai @%n" -1 @ | sort -V | awk '{print $4}' | tail -1) newtag=$(increment_version $lasttag) git tag $newtag - git push --tags + git push --tags git@github.com:qmk/qmk_firmware.git else echo "No essential files modified." fi @@ -55,7 +55,7 @@ if [[ "$TRAVIS_COMMIT_MESSAGE" != *"[skip build]"* ]] ; then git add -A git commit -m "generated from qmk/qmk_firmware@${rev}" - git push + git push git@github.com:qmk/qmk.fm.git master fi From 0c351fa98bff6a2e9d3ff30cc19d6b0782b85a62 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Mon, 29 May 2017 12:49:25 -0400 Subject: [PATCH 514/517] no master needed on push maybe --- util/travis_compiled_push.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/util/travis_compiled_push.sh b/util/travis_compiled_push.sh index a2fc2b1941..853795369f 100644 --- a/util/travis_compiled_push.sh +++ b/util/travis_compiled_push.sh @@ -55,7 +55,7 @@ if [[ "$TRAVIS_COMMIT_MESSAGE" != *"[skip build]"* ]] ; then git add -A git commit -m "generated from qmk/qmk_firmware@${rev}" - git push git@github.com:qmk/qmk.fm.git master + git push git@github.com:qmk/qmk.fm.git fi From b6c60333e48e3ed77d5e8a21a139ce9955977559 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Mon, 29 May 2017 13:21:38 -0400 Subject: [PATCH 515/517] Re-enable mouse buttons --- tmk_core/common/action.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/tmk_core/common/action.c b/tmk_core/common/action.c index f73b0fe807..cffc0b9ebe 100644 --- a/tmk_core/common/action.c +++ b/tmk_core/common/action.c @@ -324,9 +324,10 @@ void process_action(keyrecord_t *record, action_t action) tp_buttons |= (1<<2); break; default: - mousekey_on(action.key.code); - mousekey_send(); + break; } + mousekey_on(action.key.code); + mousekey_send(); } else { switch (action.key.code) { case KC_MS_BTN1: @@ -339,9 +340,10 @@ void process_action(keyrecord_t *record, action_t action) tp_buttons &= ~(1<<2); break; default: - mousekey_off(action.key.code); - mousekey_send(); + break; } + mousekey_off(action.key.code); + mousekey_send(); } break; #endif From 7eccbfe73764dbac0c33065394a8b86c4952eabf Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Tue, 30 May 2017 11:46:25 -0400 Subject: [PATCH 516/517] exclude PRs --- .travis.yml | 2 -- util/travis_compiled_push.sh | 9 ++++++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index ab788317c8..6c26e41128 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,8 +11,6 @@ env: - 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 - - openssl aes-256-cbc -K $encrypted_b0ee987fd0fc_key -iv $encrypted_b0ee987fd0fc_iv -in secrets.tar.enc -out secrets.tar -d - - tar xvf secrets.tar 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" diff --git a/util/travis_compiled_push.sh b/util/travis_compiled_push.sh index 853795369f..2f5f74f93e 100644 --- a/util/travis_compiled_push.sh +++ b/util/travis_compiled_push.sh @@ -4,16 +4,18 @@ set -o errexit -o nounset rev=$(git rev-parse --short HEAD) +if [[ "$TRAVIS_BRANCH" == "master" && "$TRAVIS_PULL_REQUEST" == "false" ]] ; then + git config --global user.name "Travis CI" git config --global user.email "jack.humb+travis.ci@gmail.com" +openssl aes-256-cbc -K $encrypted_b0ee987fd0fc_key -iv $encrypted_b0ee987fd0fc_iv -in secrets.tar.enc -out secrets.tar -d +tar xvf secrets.tar + chmod 600 id_rsa_qmk_firmware chmod 600 qmk.fm eval `ssh-agent -s` ssh-add id_rsa_qmk_firmware -ssh-add qmk.fm - -if [[ "$TRAVIS_BRANCH" == "master" && "$TRAVIS_PULL_REQUEST" == "false" ]] ; then increment_version () { @@ -42,6 +44,7 @@ if [[ "$TRAVIS_COMMIT_MESSAGE" != *"[skip build]"* ]] ; then cd .. git clone git@github.com:qmk/qmk.fm.git cd qmk.fm + ssh-add ../qmk_firmware/qmk.fm #git submodule update --init --recursive #rm -rf keyboard #rm -rf keyboards From 9ecfc2329295b572bc4c5a6f4569f6d0fc2840aa Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Tue, 30 May 2017 12:49:26 -0400 Subject: [PATCH 517/517] make qmk bot do the hard work --- util/travis_compiled_push.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/util/travis_compiled_push.sh b/util/travis_compiled_push.sh index 2f5f74f93e..4e08be1206 100644 --- a/util/travis_compiled_push.sh +++ b/util/travis_compiled_push.sh @@ -6,8 +6,8 @@ rev=$(git rev-parse --short HEAD) if [[ "$TRAVIS_BRANCH" == "master" && "$TRAVIS_PULL_REQUEST" == "false" ]] ; then -git config --global user.name "Travis CI" -git config --global user.email "jack.humb+travis.ci@gmail.com" +git config --global user.name "QMK Bot" +git config --global user.email "hello@qmk.fm" openssl aes-256-cbc -K $encrypted_b0ee987fd0fc_key -iv $encrypted_b0ee987fd0fc_iv -in secrets.tar.enc -out secrets.tar -d tar xvf secrets.tar