summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--common_features.mk14
-rw-r--r--docs/_summary.md1
-rw-r--r--docs/config_options.md4
-rw-r--r--docs/custom_quantum_functions.md2
-rw-r--r--docs/feature_debounce_type.md31
-rw-r--r--docs/features.md1
-rw-r--r--docs/getting_started_make_guide.md4
-rw-r--r--docs/hand_wire.md2
-rw-r--r--keyboards/40percentclub/foobar/info.json6
-rw-r--r--keyboards/atreus/keymaps/yttyx/README.md158
-rw-r--r--keyboards/atreus/keymaps/yttyx/config.h12
-rw-r--r--keyboards/atreus/keymaps/yttyx/keymap.c221
-rw-r--r--keyboards/converter/numeric_keypad_IIe/config.h101
-rw-r--r--keyboards/converter/numeric_keypad_IIe/info.json12
-rw-r--r--keyboards/converter/numeric_keypad_IIe/keymaps/default/config.h19
-rw-r--r--keyboards/converter/numeric_keypad_IIe/keymaps/default/keymap.c62
-rw-r--r--keyboards/converter/numeric_keypad_IIe/keymaps/default/readme.md3
-rw-r--r--keyboards/converter/numeric_keypad_IIe/keymaps/newbold/config.h19
-rw-r--r--keyboards/converter/numeric_keypad_IIe/keymaps/newbold/keymap.c68
-rw-r--r--keyboards/converter/numeric_keypad_IIe/keymaps/newbold/readme.md28
-rw-r--r--keyboards/converter/numeric_keypad_IIe/numeric_keypad_IIe.c43
-rw-r--r--keyboards/converter/numeric_keypad_IIe/numeric_keypad_IIe.h30
-rw-r--r--keyboards/converter/numeric_keypad_IIe/readme.md16
-rw-r--r--keyboards/converter/numeric_keypad_IIe/rules.mk76
-rw-r--r--keyboards/converter/usb_usb/custom_matrix.cpp20
-rw-r--r--keyboards/dz60/keymaps/edulpn/README.md10
-rw-r--r--keyboards/dz60/keymaps/edulpn/keymap.c18
-rw-r--r--keyboards/ergodash/rev2/keymaps/default/keymap.c6
-rw-r--r--keyboards/hadron/ver2/keymaps/readme.md1
-rw-r--r--keyboards/handwired/dactyl_manuform/5x6/5x6.h54
-rw-r--r--keyboards/handwired/dactyl_manuform/5x6/info.json2
-rw-r--r--keyboards/handwired/dactyl_manuform/5x7/5x7.h66
-rw-r--r--keyboards/handwired/dactyl_manuform/5x7/info.json4
-rw-r--r--keyboards/handwired/dactyl_manuform/6x6/6x6.h60
-rw-r--r--keyboards/handwired/dactyl_manuform/6x6/info.json2
-rw-r--r--keyboards/handwired/terminus_mini/info.json59
-rw-r--r--keyboards/handwired/terminus_mini/keymaps/default/keymap.c119
-rw-r--r--keyboards/handwired/terminus_mini/readme.md7
-rw-r--r--keyboards/handwired/terminus_mini/terminus_mini.h16
-rw-r--r--keyboards/hecomi/alpha/info.json368
-rw-r--r--keyboards/hs60/v2/keymaps/ansi/readme.md6
-rw-r--r--keyboards/hs60/v2/keymaps/ansi_via/config.h23
-rw-r--r--keyboards/hs60/v2/keymaps/ansi_via/keymap.c60
-rw-r--r--keyboards/hs60/v2/keymaps/ansi_via/readme.md6
-rw-r--r--keyboards/hs60/v2/keymaps/ansi_via/rules.mk66
-rw-r--r--keyboards/hs60/v2/keymaps/default/readme.md4
-rw-r--r--keyboards/hs60/v2/keymaps/default_via/keymap.c60
-rw-r--r--keyboards/hs60/v2/keymaps/default_via/readme.md6
-rw-r--r--keyboards/hs60/v2/keymaps/default_via/rules.mk66
-rw-r--r--keyboards/hs60/v2/keymaps/hhkb/readme.md4
-rw-r--r--keyboards/hs60/v2/keymaps/hhkb_via/config.h34
-rw-r--r--keyboards/hs60/v2/keymaps/hhkb_via/keymap.c60
-rw-r--r--keyboards/hs60/v2/keymaps/hhkb_via/readme.md6
-rw-r--r--keyboards/hs60/v2/keymaps/hhkb_via/rules.mk66
-rw-r--r--keyboards/hs60/v2/keymaps/iso_andys8/rules.mk66
-rw-r--r--keyboards/hs60/v2/keymaps/stanrc85/rules.mk66
-rw-r--r--keyboards/hs60/v2/keymaps/win_osx_dual/rules.mk65
-rw-r--r--keyboards/hs60/v2/rules.mk4
-rw-r--r--keyboards/kbdfans/kbd67/rev1/keymaps/default/keymap.c18
-rw-r--r--keyboards/niu_mini/keymaps/yttyx/keymap.c2
-rw-r--r--keyboards/planck/keymaps/cbbrowne/readme.org (renamed from keyboards/planck/keymaps/cbbrowne/readme.md)63
-rw-r--r--keyboards/planck/keymaps/vxid/config.h1
-rw-r--r--keyboards/planck/keymaps/vxid/keymap.c49
-rw-r--r--keyboards/planck/keymaps/vxid/readme.md13
-rw-r--r--keyboards/westfoxtrot/aanzee/info.json3
-rw-r--r--keyboards/xd75/keymaps/cbbrowne/keymap.c141
-rw-r--r--keyboards/xd75/keymaps/cbbrowne/rules.mk24
-rw-r--r--layouts/community/ortho_4x12/symbolic/README.md23
-rw-r--r--layouts/community/ortho_4x12/symbolic/config.h3
-rw-r--r--layouts/community/ortho_4x12/symbolic/keymap.c138
-rw-r--r--quantum/audio/audio.c2
-rw-r--r--quantum/audio/audio_arm.c2
-rw-r--r--quantum/audio/audio_pwm.c2
-rw-r--r--quantum/debounce/eager_pk.c (renamed from quantum/debounce/debounce_eager_pk.c)0
-rw-r--r--quantum/debounce/readme.md18
-rw-r--r--quantum/debounce/sym_g.c (renamed from quantum/debounce/debounce_sym_g.c)0
-rw-r--r--show_options.mk2
-rw-r--r--users/cbbrowne/cbbrowne.c0
-rw-r--r--users/cbbrowne/cbbrowne.h39
-rw-r--r--users/cbbrowne/rules.mk1
-rw-r--r--users/stanrc85/config.h5
-rw-r--r--users/stanrc85/layer_rgb.c26
-rw-r--r--users/stanrc85/rules.mk5
83 files changed, 2425 insertions, 568 deletions
diff --git a/common_features.mk b/common_features.mk
index f5bef3d5dd..20c38ae82e 100644
--- a/common_features.mk
+++ b/common_features.mk
@@ -298,19 +298,11 @@ ifneq ($(strip $(CUSTOM_MATRIX)), yes)
endif
DEBOUNCE_DIR:= $(QUANTUM_DIR)/debounce
-# Debounce Modules. If implemented in matrix.c, don't use these.
+# Debounce Modules. Set DEBOUNCE_TYPE=custom if including one manually.
DEBOUNCE_TYPE?= sym_g
-VALID_DEBOUNCE_TYPES := sym_g eager_pk custom
-ifeq ($(filter $(DEBOUNCE_TYPE),$(VALID_DEBOUNCE_TYPES)),)
- $(error DEBOUNCE_TYPE="$(DEBOUNCE_TYPE)" is not a valid debounce algorithm)
+ifneq ($(strip $(DEBOUNCE_TYPE)), custom)
+ QUANTUM_SRC += $(DEBOUNCE_DIR)/$(strip $(DEBOUNCE_TYPE)).c
endif
-ifeq ($(strip $(DEBOUNCE_TYPE)), sym_g)
- QUANTUM_SRC += $(DEBOUNCE_DIR)/debounce_sym_g.c
-else ifeq ($(strip $(DEBOUNCE_TYPE)), eager_pk)
- QUANTUM_SRC += $(DEBOUNCE_DIR)/debounce_eager_pk.c
-endif
-
-
ifeq ($(strip $(SPLIT_KEYBOARD)), yes)
OPT_DEFS += -DSPLIT_KEYBOARD
diff --git a/docs/_summary.md b/docs/_summary.md
index 09ea9e6e79..35936df00d 100644
--- a/docs/_summary.md
+++ b/docs/_summary.md
@@ -60,6 +60,7 @@
* [Key Lock](feature_key_lock.md)
* [Layouts](feature_layouts.md)
* [Leader Key](feature_leader_key.md)
+ * [LED Matrix](feature_led_matrix.md)
* [Macros](feature_macros.md)
* [Mouse Keys](feature_mouse_keys.md)
* [One Shot Keys](feature_advanced_keycodes.md#one-shot-keys)
diff --git a/docs/config_options.md b/docs/config_options.md
index 8fa6e944f0..336feee8fd 100644
--- a/docs/config_options.md
+++ b/docs/config_options.md
@@ -307,8 +307,8 @@ Use these to enable or disable building certain features. The more you have enab
* Enables split keyboard support (dual MCU like the let's split and bakingpy's boards) and includes all necessary files located at quantum/split_common
* `CUSTOM_MATRIX`
* Allows replacing the standard matrix scanning routine with a custom one.
-* `CUSTOM_DEBOUNCE`
- * Allows replacing the standard key debouncing routine with a custom one.
+* `DEBOUNCE_TYPE`
+ * Allows replacing the standard key debouncing routine with an alternative or custom one.
* `WAIT_FOR_USB`
* Forces the keyboard to wait for a USB connection to be established before it starts up
* `NO_USB_STARTUP_CHECK`
diff --git a/docs/custom_quantum_functions.md b/docs/custom_quantum_functions.md
index cc84e141f9..f291fc2d21 100644
--- a/docs/custom_quantum_functions.md
+++ b/docs/custom_quantum_functions.md
@@ -321,7 +321,7 @@ uint32_t layer_state_set_user(uint32_t state) {
```
### `layer_state_set_*` Function Documentation
-* Keyboard/Revision: `void uint32_t layer_state_set_kb(uint32_t state)`
+* Keyboard/Revision: `uint32_t layer_state_set_kb(uint32_t state)`
* Keymap: `uint32_t layer_state_set_user(uint32_t state)`
The `state` is the bitmask of the active layers, as explained in the [Keymap Overview](keymap.md#keymap-layer-status)
diff --git a/docs/feature_debounce_type.md b/docs/feature_debounce_type.md
index 82b3d7de12..5d4343f08b 100644
--- a/docs/feature_debounce_type.md
+++ b/docs/feature_debounce_type.md
@@ -2,45 +2,38 @@
QMK supports multiple debounce algorithms through its debounce API.
-The underlying debounce algorithm is determined by which matrix.c file you are using.
-
The logic for which debounce method called is below. It checks various defines that you have set in rules.mk
```
+DEBOUNCE_DIR:= $(QUANTUM_DIR)/debounce
DEBOUNCE_TYPE?= sym_g
-VALID_DEBOUNCE_TYPES := sym_g eager_pk custom
-ifeq ($(filter $(DEBOUNCE_TYPE),$(VALID_DEBOUNCE_TYPES)),)
- $(error DEBOUNCE_TYPE="$(DEBOUNCE_TYPE)" is not a valid debounce algorithm)
-endif
-ifeq ($(strip $(DEBOUNCE_TYPE)), sym_g)
- QUANTUM_SRC += $(DEBOUNCE_DIR)/debounce_sym_g.c
-else ifeq ($(strip $(DEBOUNCE_TYPE)), eager_pk)
- QUANTUM_SRC += $(DEBOUNCE_DIR)/debounce_eager_pk.c
+ifneq ($(strip $(DEBOUNCE_TYPE)), custom)
+ QUANTUM_SRC += $(DEBOUNCE_DIR)/$(strip $(DEBOUNCE_TYPE)).c
endif
```
# Debounce selection
-| DEBOUNCE_ALGO | Description | What to do |
-| ------------- | --------------------------------------------------- | ----------------------------- |
-| Not defined | You are using the included matrix.c and debounce.c | Nothing. Debounce_sym_g will be compiled, and used if necessary |
-| custom | Use your own debounce.c | ```SRC += debounce.c``` add your own debounce.c and implement necessary functions |
-| sym_g / eager_pk | You are using the included matrix.c and debounce.c | Use an alternative debounce algorithm |
+| DEBOUNCE_TYPE | Description | What else is needed |
+| ------------- | --------------------------------------------------- | ----------------------------- |
+| Not defined | Use the default algorithm, currently sym_g | Nothing |
+| custom | Use your own debounce.c | ```SRC += debounce.c``` add your own debounce.c and implement necessary functions |
+| anything_else | Use another algorithm from quantum/debounce/* | Nothing |
-**Regarding split keyboards**:
+**Regarding split keyboards**:
The debounce code is compatible with split keyboards.
# Use your own debouncing code
* Set ```DEBOUNCE_TYPE = custom ```.
* Add ```SRC += debounce.c```
-* Add your own ```debounce.c```. Look at included ```debounce_sym_g.c```s for sample implementations.
+* Add your own ```debounce.c```. Look at current implementations in ```quantum/debounce``` for examples.
* Debouncing occurs after every raw matrix scan.
* Use num_rows rather than MATRIX_ROWS, so that split keyboards are supported correctly.
# Changing between included debouncing methods
You can either use your own code, by including your own debounce.c, or switch to another included one.
Included debounce methods are:
-* debounce_eager_pk - debouncing per key. On any state change, response is immediate, followed by ```DEBOUNCE_DELAY``` millseconds of no further input for that key
-* debounce_sym_g - debouncing per keyboard. On any state change, a global timer is set. When ```DEBOUNCE_DELAY``` milliseconds of no changes has occured, all input changes are pushed.
+* eager_pk - debouncing per key. On any state change, response is immediate, followed by ```DEBOUNCE_DELAY``` millseconds of no further input for that key
+* sym_g - debouncing per keyboard. On any state change, a global timer is set. When ```DEBOUNCE_DELAY``` milliseconds of no changes has occured, all input changes are pushed.
diff --git a/docs/features.md b/docs/features.md
index 9030500a2b..014d6ef107 100644
--- a/docs/features.md
+++ b/docs/features.md
@@ -17,6 +17,7 @@ QMK has a staggering number of features for building your keyboard. It can take
* [Key Lock](feature_key_lock.md) - Lock a key in the "down" state.
* [Layouts](feature_layouts.md) - Use one keymap with any keyboard that supports your layout.
* [Leader Key](feature_leader_key.md) - Tap the leader key followed by a sequence to trigger custom behavior.
+* [LED Matrix](feature_led_matrix.md) - LED Matrix single color lights for per key lighting (Single Color, not RGB).
* [Macros](feature_macros.md) - Send multiple key presses when pressing only one physical key.
* [Mouse keys](feature_mouse_keys.md) - Control your mouse pointer from your keyboard.
* [One Shot Keys](feature_advanced_keycodes.md#one-shot-keys) - Sticky Keys, lets hit a key rather than holding it.
diff --git a/docs/getting_started_make_guide.md b/docs/getting_started_make_guide.md
index bb7e1e7e3b..75eafd42cc 100644
--- a/docs/getting_started_make_guide.md
+++ b/docs/getting_started_make_guide.md
@@ -143,9 +143,9 @@ As there is no standard split communication driver for ARM-based split keyboards
Lets you replace the default matrix scanning routine with your own code. You will need to provide your own implementations of matrix_init() and matrix_scan().
-`CUSTOM_DEBOUNCE`
+`DEBOUNCE_TYPE`
-Lets you replace the default key debouncing routine with your own code. You will need to provide your own implementation of debounce().
+Lets you replace the default key debouncing routine with an alternative one. If `custom` you will need to provide your own implementation.
## Customizing Makefile Options on a Per-Keymap Basis
diff --git a/docs/hand_wire.md b/docs/hand_wire.md
index 697a508052..d2cba770e2 100644
--- a/docs/hand_wire.md
+++ b/docs/hand_wire.md
@@ -196,7 +196,7 @@ If you're more of a visual learner, or want some additional tips and something m
From here, you should have a working keyboard once you program a firmware. Before we attach the Teensy permanently to the keyboard, let's quickly get some firmware loaded onto the Teensy so we can test each keyswitch.
-To start out, download [the firmware](https://github.com/qmk/qmk_firmware/) - we'll be using my (Jack's) fork of TMK called QMK/Quantum. We'll be doing a lot from the Terminal/command prompt, so get that open, along with a decent text editor like [Sublime Text](http://www.sublimetext.com/).
+To start out, download [the firmware](https://github.com/qmk/qmk_firmware/) - we'll be using my (Jack's) fork of TMK called QMK/Quantum. We'll be doing a lot from the Terminal/command prompt, so get that open, along with a decent text editor like [Sublime Text](http://www.sublimetext.com/) (paid) or [Visual Studio Code](https://code.visualstudio.com) (free).
The first thing we're going to do is create a new project using the script in the root directory of the firmware. In your terminal, run this command with `<project_name>` replaced by the name of your project - it'll need to be different from any other project in the `keyboards/` folder:
diff --git a/keyboards/40percentclub/foobar/info.json b/keyboards/40percentclub/foobar/info.json
index cb7f29b256..6d722ae6ee 100644
--- a/keyboards/40percentclub/foobar/info.json
+++ b/keyboards/40percentclub/foobar/info.json
@@ -2,10 +2,12 @@
"keyboard_name": "foobar",
"url": "",
"maintainer": "qmk",
- "width": 6,
- "height": 2,
+ "width": 10,
+ "height": 3,
"layouts": {
"LAYOUT_macro": {
+ "width": 5,
+ "height": 3,
"key_count": 15,
"layout": [
{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0},
diff --git a/keyboards/atreus/keymaps/yttyx/README.md b/keyboards/atreus/keymaps/yttyx/README.md
index 9ed9d6239b..aac02c6c11 100644
--- a/keyboards/atreus/keymaps/yttyx/README.md
+++ b/keyboards/atreus/keymaps/yttyx/README.md
@@ -1,77 +1,103 @@
# Overview
-A Balance 12 layout for the Atreus keyboard.
+This layout is based on Balance Twelve (mirror variant) by Sasha Viminitz. Please see [this page](https://mathematicalmulticore.wordpress.com/the-keyboard-layout-project/)
+for more information. It's designed for left-handers who use their right hand for the mouse.
-Balance 12 was created by Sasha Viminitz. Please see [this page](https://mathematicalmulticore.wordpress.com/the-keyboard-layout-project/)
-for some background on the design of the layout.
+## To build
-* The variant used here is a mirror of the original for left-handers
-* The central column of punctuation keys has been moved elsewhere
-* Home positions for the left and right forefingers are *T* and *A* respectively
+```
+sudo make atreus:yttyx
+```
-## To build/flash
+## To flash (example)
-> make atreus:yttyx:avrdude
+```
+sudo avrdude -p atmega32u4 -c avr109 -U flash:w:atreus_yttyx.hex -P /dev/ttyACM0
+```
## Layers
### Base:
- .----------------------------------. .------------------------------.
- | P | L | C | D | W | | U | O | Y | K | Q |
- +------+------+------+-----+-------| |------+-----+-----+-----+-----|
- | N | R | S | T | M | | A | E | I | H | V |
- +------+------+------+-----+-------| |------+-----+-----+-----+-----|
- | Z | J | F | G | B | | , | . | ; | X | - |
- +------+------+------+-----+-------+---------+------+-----+-----+-----+-----|
- | Shft | Ctl | Alt | BS | Space | L1 | R1 | Shft | R2 | Win | Ctl | Alt |
- '---------------------------------------------------------------------------'
-
-### L1:
-
- .---------------------------------. .--------------------------------.
- | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 |
- |------+------+------+----+-------| |------+----+-----+------+-------|
- | Tab | ? | = | - | _ | | ' | " | + | * | Enter |
- |------+------+------+----+-------| |------+----+-----+------+-------|
- | Esc | ! | & | | | | , | . | ; | | - |
-