Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4d5705ea6c | ||
|
|
627ee050b4 | ||
|
|
223081bf2b | ||
|
|
61f9541066 | ||
|
|
118e948e35 | ||
|
|
6347a654de | ||
|
|
2b23072c34 | ||
|
|
9dc19fdb6d | ||
|
|
a54f09d4f3 | ||
|
|
a0309db983 | ||
|
|
cfb1b353ee | ||
|
|
e72e4b6920 | ||
|
|
b7e25f9ec4 | ||
|
|
9012f4c2e0 | ||
|
|
07d317ab88 | ||
|
|
ce057ea474 | ||
|
|
58b9b22670 | ||
|
|
57ec309d3e | ||
|
|
35e76539e7 | ||
|
|
747cf78b5d | ||
|
|
99c1c5bfe9 | ||
|
|
cfdc23bbae | ||
|
|
4c22e92ce8 | ||
|
|
6cab514036 | ||
|
|
5b4bcfa7f2 | ||
|
|
14be5258a6 | ||
|
|
2bdeccd7ba | ||
|
|
334e2629df | ||
|
|
77433b1a31 | ||
|
|
14f691d2a7 | ||
|
|
c23233f41a | ||
|
|
71fe973190 | ||
|
|
92f67719cc | ||
|
|
23da333ae3 | ||
|
|
03b8ce206d | ||
|
|
ec64be6622 | ||
|
|
cb8d352cb3 | ||
|
|
a6d1db2c27 | ||
|
|
244e1c5a57 | ||
|
|
3f680a93eb | ||
|
|
ed2dd3b59c | ||
|
|
fe3bfd91c1 | ||
|
|
743449472e | ||
|
|
b65e214375 | ||
|
|
6bf2c07715 | ||
|
|
232ef75783 | ||
|
|
9712501bf3 | ||
|
|
db35065e14 | ||
|
|
b1f11636c6 | ||
|
|
48a992f1c0 | ||
|
|
170de1273c | ||
|
|
6d6d91c834 | ||
|
|
ce122c4981 | ||
|
|
cd3518b802 | ||
|
|
7ff4faf3be | ||
|
|
b8a0d3de3d | ||
|
|
132c44bab1 | ||
|
|
87faf55b01 | ||
|
|
f1612b7fa1 | ||
|
|
5dd4b2af53 | ||
|
|
7551e0bbc7 | ||
|
|
32ff7be266 | ||
|
|
df8e417032 | ||
|
|
c7e1b53913 | ||
|
|
e9a67f8fde | ||
|
|
265eca0f7c |
No files matched your search
+12
-4
@@ -221,17 +221,25 @@ ifeq ($(strip $(USB_HID_ENABLE)), yes)
|
|||||||
include $(TMK_DIR)/protocol/usb_hid.mk
|
include $(TMK_DIR)/protocol/usb_hid.mk
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
||||||
ifeq ($(strip $(HD44780_ENABLE)), yes)
|
ifeq ($(strip $(HD44780_ENABLE)), yes)
|
||||||
SRC += drivers/avr/hd44780.c
|
SRC += drivers/avr/hd44780.c
|
||||||
OPT_DEFS += -DHD44780_ENABLE
|
OPT_DEFS += -DHD44780_ENABLE
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq ($(strip $(DYNAMIC_KEYMAP_ENABLE)), yes)
|
||||||
|
OPT_DEFS += -DDYNAMIC_KEYMAP_ENABLE
|
||||||
|
SRC += $(QUANTUM_DIR)/dynamic_keymap.c
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(strip $(LEADER_ENABLE)), yes)
|
||||||
|
SRC += $(QUANTUM_DIR)/process_keycode/process_leader.c
|
||||||
|
OPT_DEFS += -DLEADER_ENABLE
|
||||||
|
endif
|
||||||
|
|
||||||
QUANTUM_SRC:= \
|
QUANTUM_SRC:= \
|
||||||
$(QUANTUM_DIR)/quantum.c \
|
$(QUANTUM_DIR)/quantum.c \
|
||||||
$(QUANTUM_DIR)/keymap_common.c \
|
$(QUANTUM_DIR)/keymap_common.c \
|
||||||
$(QUANTUM_DIR)/keycode_config.c \
|
$(QUANTUM_DIR)/keycode_config.c
|
||||||
$(QUANTUM_DIR)/process_keycode/process_leader.c
|
|
||||||
|
|
||||||
ifndef CUSTOM_MATRIX
|
ifndef CUSTOM_MATRIX
|
||||||
ifeq ($(strip $(SPLIT_KEYBOARD)), yes)
|
ifeq ($(strip $(SPLIT_KEYBOARD)), yes)
|
||||||
@@ -246,5 +254,5 @@ ifeq ($(strip $(SPLIT_KEYBOARD)), yes)
|
|||||||
QUANTUM_SRC += $(QUANTUM_DIR)/split_common/split_flags.c \
|
QUANTUM_SRC += $(QUANTUM_DIR)/split_common/split_flags.c \
|
||||||
$(QUANTUM_DIR)/split_common/split_util.c \
|
$(QUANTUM_DIR)/split_common/split_util.c \
|
||||||
$(QUANTUM_DIR)/split_common/i2c.c \
|
$(QUANTUM_DIR)/split_common/i2c.c \
|
||||||
$(QUANTUM_DIR)/split_common/serial.c
|
$(QUANTUM_DIR)/split_common/serial.c
|
||||||
endif
|
endif
|
||||||
@@ -119,8 +119,8 @@ If you define these options you will enable the associated feature, which may in
|
|||||||
|
|
||||||
* `#define FORCE_NKRO`
|
* `#define FORCE_NKRO`
|
||||||
* NKRO by default requires to be turned on, this forces it on during keyboard startup regardless of EEPROM setting. NKRO can still be turned off but will be turned on again if the keyboard reboots.
|
* NKRO by default requires to be turned on, this forces it on during keyboard startup regardless of EEPROM setting. NKRO can still be turned off but will be turned on again if the keyboard reboots.
|
||||||
* `#define PREVENT_STUCK_MODIFIERS`
|
* `#define STRICT_LAYER_RELEASE`
|
||||||
* stores the layer a key press came from so the same layer is used when the key is released, regardless of which layers are enabled
|
* force a key release to be evaluated using the current layer stack instead of remembering which layer it came from (used for advanced cases)
|
||||||
|
|
||||||
## Behaviors That Can Be Configured
|
## Behaviors That Can Be Configured
|
||||||
|
|
||||||
|
|||||||
@@ -70,6 +70,7 @@ Most of our style is pretty easy to pick up on, but right now it's not entirely
|
|||||||
* Do not write obvious comments
|
* Do not write obvious comments
|
||||||
* If you not sure if a comment is obvious, go ahead and include it.
|
* If you not sure if a comment is obvious, go ahead and include it.
|
||||||
* In general we don't wrap lines, they can be as long as needed. If you do choose to wrap lines please do not wrap any wider than 76 columns.
|
* In general we don't wrap lines, they can be as long as needed. If you do choose to wrap lines please do not wrap any wider than 76 columns.
|
||||||
|
* We use `#pragma once` at the start of header files rather than old-style include guards (`#ifndef THIS_FILE_H`, `#define THIS_FILE_H`, ..., `#endif`)
|
||||||
|
|
||||||
# General Guidelines
|
# General Guidelines
|
||||||
|
|
||||||
|
|||||||
@@ -119,22 +119,22 @@ You can completely disable Music Mode as well. This is useful, if you're pressed
|
|||||||
|
|
||||||
#define NO_MUSIC_MODE
|
#define NO_MUSIC_MODE
|
||||||
|
|
||||||
## Faux Click
|
## Audio Click
|
||||||
|
|
||||||
This adds a click sound each time you hit a button, to simulate click sounds from the keyboard. And the sounds are slightly different for each keypress, so it doesn't sound like a single long note, if you type rapidly.
|
This adds a click sound each time you hit a button, to simulate click sounds from the keyboard. And the sounds are slightly different for each keypress, so it doesn't sound like a single long note, if you type rapidly.
|
||||||
|
|
||||||
* `CK_TOGG` - Toggles the status (will play sound if enabled)
|
* `CK_TOGG` - Toggles the status (will play sound if enabled)
|
||||||
* `CK_RST` - Resets the frequency to the default state
|
* `CK_ON` - Turns on Audio Click (plays sound)
|
||||||
* `CK_UP` - Increases the frequency of the clicks
|
* `CK_OFF` - Turns off Audio Click (doesn't play sound)
|
||||||
* `CK_DOWN` - Decreases the frequency of the clicks
|
* `CK_RST` - Resets the frequency to the default state (plays sound at default frequency)
|
||||||
|
* `CK_UP` - Increases the frequency of the clicks (plays sound at new frequency)
|
||||||
|
* `CK_DOWN` - Decreases the frequency of the clicks (plays sound at new frequency)
|
||||||
|
|
||||||
|
|
||||||
The feature is disabled by default, to save space. To enable it, add this to your `config.h`:
|
The feature is disabled by default, to save space. To enable it, add this to your `config.h`:
|
||||||
|
|
||||||
#define AUDIO_CLICKY
|
#define AUDIO_CLICKY
|
||||||
|
|
||||||
Additionally, even when enabled, the feature is not enabled by default, so you would need to turn it on first. And since we don't use EEPROM to store the setting (yet), you can default this to on by adding this to your `config.h`:
|
|
||||||
|
|
||||||
#define AUDIO_CLICKY_ON
|
|
||||||
|
|
||||||
You can configure the default, min and max frequencies, the stepping and built in randomness by defining these values:
|
You can configure the default, min and max frequencies, the stepping and built in randomness by defining these values:
|
||||||
|
|
||||||
@@ -144,7 +144,7 @@ You can configure the default, min and max frequencies, the stepping and built i
|
|||||||
| `AUDIO_CLICKY_FREQ_MIN` | 65.0f | Sets the lowest frequency (under 60f are a bit buggy). |
|
| `AUDIO_CLICKY_FREQ_MIN` | 65.0f | Sets the lowest frequency (under 60f are a bit buggy). |
|
||||||
| `AUDIO_CLICKY_FREQ_MAX` | 1500.0f | Sets the the highest frequency. Too high may result in coworkers attacking you. |
|
| `AUDIO_CLICKY_FREQ_MAX` | 1500.0f | Sets the the highest frequency. Too high may result in coworkers attacking you. |
|
||||||
| `AUDIO_CLICKY_FREQ_FACTOR` | 1.18921f| Sets the stepping of UP/DOWN key codes. |
|
| `AUDIO_CLICKY_FREQ_FACTOR` | 1.18921f| Sets the stepping of UP/DOWN key codes. |
|
||||||
| `AUDIO_CLICKY_FREQ_RANDOMNESS` | 0.05f | Sets a factor of randomness for the clicks, Setting this to `0f` will make each click identical. |
|
| `AUDIO_CLICKY_FREQ_RANDOMNESS` | 0.05f | Sets a factor of randomness for the clicks, Setting this to `0f` will make each click identical, and `1.0f` will make this sound much like the 90's computer screen scrolling/typing effect. |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -57,6 +57,7 @@ Hold down the Bootmagic key (Space by default) and the desired hotkey while plug
|
|||||||
|`MAGIC_UNNO_GUI` | |Enable the GUI keys |
|
|`MAGIC_UNNO_GUI` | |Enable the GUI keys |
|
||||||
|`MAGIC_SWAP_ALT_GUI` |`AG_SWAP`|Swap Alt and GUI on both sides (for macOS)|
|
|`MAGIC_SWAP_ALT_GUI` |`AG_SWAP`|Swap Alt and GUI on both sides (for macOS)|
|
||||||
|`MAGIC_UNSWAP_ALT_GUI` |`AG_NORM`|Unswap Left Alt and Left GUI |
|
|`MAGIC_UNSWAP_ALT_GUI` |`AG_NORM`|Unswap Left Alt and Left GUI |
|
||||||
|
|`MAGIC_TOGGLE_ALT_GUI` |`AG_TOGG`|Toggle Left Alt and GUI swap |
|
||||||
|`MAGIC_SWAP_BACKSLASH_BACKSPACE` | |Swap `\` and Backspace |
|
|`MAGIC_SWAP_BACKSLASH_BACKSPACE` | |Swap `\` and Backspace |
|
||||||
|`MAGIC_UNSWAP_BACKSLASH_BACKSPACE`| |Unswap `\` and Backspace |
|
|`MAGIC_UNSWAP_BACKSLASH_BACKSPACE`| |Unswap `\` and Backspace |
|
||||||
|`MAGIC_SWAP_CONTROL_CAPSLOCK` | |Swap Left Control and Caps Lock |
|
|`MAGIC_SWAP_CONTROL_CAPSLOCK` | |Swap Left Control and Caps Lock |
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ If you've ever used Vim, you know what a Leader key is. If not, you're about to
|
|||||||
That's what `KC_LEAD` does. Here's an example:
|
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.
|
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.
|
2. Include the line `#define LEADER_TIMEOUT 300` in your config.h. 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:
|
3. Within your `matrix_scan_user` function, do something like this:
|
||||||
|
|
||||||
```
|
```
|
||||||
@@ -39,3 +39,11 @@ void matrix_scan_user(void) {
|
|||||||
As you can see, you have a few function. You can use `SEQ_ONE_KEY` for single-key sequences (Leader followed by just one key), and `SEQ_TWO_KEYS`, `SEQ_THREE_KEYS` up to `SEQ_FIVE_KEYS` for longer sequences.
|
As you can see, you have a few function. You can use `SEQ_ONE_KEY` for single-key sequences (Leader followed by just one key), and `SEQ_TWO_KEYS`, `SEQ_THREE_KEYS` up to `SEQ_FIVE_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.
|
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.
|
||||||
|
|
||||||
|
## Adding Leader Key Support in the `rules.mk`
|
||||||
|
|
||||||
|
To add support for Leader Key you simply need to add a single line to your keymap's `rules.mk`:
|
||||||
|
|
||||||
|
```
|
||||||
|
LEADER_ENABLE = yes
|
||||||
|
```
|
||||||
@@ -6,6 +6,24 @@ To hook up a Trackpoint, you need to obtain a Trackpoint module (i.e. harvest fr
|
|||||||
|
|
||||||
There are three available modes for hooking up PS/2 devices: USART (best), interrupts (better) or busywait (not recommended).
|
There are three available modes for hooking up PS/2 devices: USART (best), interrupts (better) or busywait (not recommended).
|
||||||
|
|
||||||
|
### The Cirtuitry between Trackpoint and Controller
|
||||||
|
|
||||||
|
To get the things working, a 4.7K drag is needed between the two lines DATA and CLK and the line 5+.
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
DATA ----------+--------- PIN
|
||||||
|
|
|
||||||
|
4.7K
|
||||||
|
|
|
||||||
|
MODULE 5+ --------+--+--------- PWR CONTROLLER
|
||||||
|
|
|
||||||
|
4.7K
|
||||||
|
|
|
||||||
|
CLK ------+------------ PIN
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
### Busywait Version
|
### Busywait Version
|
||||||
|
|
||||||
Note: This is not recommended, you may encounter jerky movement or unsent inputs. Please use interrupt or USART version if possible.
|
Note: This is not recommended, you may encounter jerky movement or unsent inputs. Please use interrupt or USART version if possible.
|
||||||
|
|||||||
+26
-14
@@ -79,20 +79,23 @@ Your RGB lighting can be configured by placing these `#define`s in your `config.
|
|||||||
|
|
||||||
## Animations
|
## Animations
|
||||||
|
|
||||||
Not only can this lighting be whatever color you want, if `RGBLIGHT_ANIMATIONS` is defined, you also have a number of animation modes at your disposal:
|
|
||||||
|
|
||||||
|Mode |Description |
|
Not only can this lighting be whatever color you want,
|
||||||
|-----|---------------------|
|
if `RGBLIGHT_EFFECT_xxxx` or `RGBLIGHT_ANIMATIONS` is defined, you also have a number of animation modes at your disposal:
|
||||||
|1 |Solid color |
|
|
||||||
|2-5 |Solid color breathing|
|
|Mode number symbol |Additional number |Description |
|
||||||
|6-8 |Cycling rainbow |
|
|-----------------------------|-------------------|---------------------------------------|
|
||||||
|9-14 |Swirling rainbow |
|
|`RGBLIGHT_MODE_STATIC_LIGHT` | *None* |Solid color (this mode is always enabled) |
|
||||||
|15-20|Snake |
|
|`RGBLIGHT_MODE_BREATHING` | 0,1,2,3 |Solid color breathing |
|
||||||
|21-23|Knight |
|
|`RGBLIGHT_MODE_RAINBOW_MOOD` | 0,1,2 |Cycling rainbow |
|
||||||
|24 |Christmas |
|
|`RGBLIGHT_MODE_RAINBOW_SWIRL`| 0,1,2,3,4,5 |Swirling rainbow |
|
||||||
|25-34|Static gradient |
|
|`RGBLIGHT_MODE_SNAKE` | 0,1,2,3,4,5 |Snake |
|
||||||
|35 |RGB Test |
|
|`RGBLIGHT_MODE_KNIGHT` | 0,1,2 |Knight |
|
||||||
|36 |Alternating |
|
|`RGBLIGHT_MODE_CHRISTMAS` | *None* |Christmas |
|
||||||
|
|`RGBLIGHT_MODE_STATIC_GRADIENT`| 0,1,..,9 |Static gradient |
|
||||||
|
|`RGBLIGHT_MODE_RGB_TEST` | *None* |RGB Test |
|
||||||
|
|`RGBLIGHT_MODE_ALTERNATING` | *None* |Alternating |
|
||||||
|
|
||||||
|
|
||||||
Check out [this video](https://youtube.com/watch?v=VKrpPAHlisY) for a demonstration.
|
Check out [this video](https://youtube.com/watch?v=VKrpPAHlisY) for a demonstration.
|
||||||
|
|
||||||
@@ -100,7 +103,16 @@ The following options can be used to tweak the various animations:
|
|||||||
|
|
||||||
|Define |Default |Description |
|
|Define |Default |Description |
|
||||||
|------------------------------------|-------------|-------------------------------------------------------------------------------------|
|
|------------------------------------|-------------|-------------------------------------------------------------------------------------|
|
||||||
|`RGBLIGHT_ANIMATIONS` |*Not defined*|If defined, enables additional animation modes |
|
|`RGBLIGHT_EFFECT_BREATHING` |*Not defined*|If defined, enable breathing animation mode. |
|
||||||
|
|`RGBLIGHT_EFFECT_RAINBOW_MOOD` |*Not defined*|If defined, enable rainbow mood animation mode. |
|
||||||
|
|`RGBLIGHT_EFFECT_RAINBOW_SWIRL` |*Not defined*|If defined, enable rainbow swirl animation mode. |
|
||||||
|
|`RGBLIGHT_EFFECT_SNAKE` |*Not defined*|If defined, enable snake animation mode. |
|
||||||
|
|`RGBLIGHT_EFFECT_KNIGHT` |*Not defined*|If defined, enable knight animation mode. |
|
||||||
|
|`RGBLIGHT_EFFECT_CHRISTMAS` |*Not defined*|If defined, enable christmas animation mode. |
|
||||||
|
|`RGBLIGHT_EFFECT_STATIC_GRADIENT` |*Not defined*|If defined, enable static gradient mode. |
|
||||||
|
|`RGBLIGHT_EFFECT_RGB_TEST` |*Not defined*|If defined, enable RGB test animation mode. |
|
||||||
|
|`RGBLIGHT_EFFECT_ALTERNATING` |*Not defined*|If defined, enable alternating animation mode. |
|
||||||
|
|`RGBLIGHT_ANIMATIONS` |*Not defined*|If defined, enables all additional animation modes |
|
||||||
|`RGBLIGHT_EFFECT_BREATHE_CENTER` |`1.85` |Used to calculate the curve for the breathing animation. Valid values are 1.0 to 2.7 |
|
|`RGBLIGHT_EFFECT_BREATHE_CENTER` |`1.85` |Used to calculate the curve for the breathing animation. Valid values are 1.0 to 2.7 |
|
||||||
|`RGBLIGHT_EFFECT_BREATHE_MAX` |`255` |The maximum brightness for the breathing mode. Valid values are 1 to 255 |
|
|`RGBLIGHT_EFFECT_BREATHE_MAX` |`255` |The maximum brightness for the breathing mode. Valid values are 1 to 255 |
|
||||||
|`RGBLIGHT_EFFECT_SNAKE_LENGTH` |`4` |The number of LEDs to light up for the "Snake" animation |
|
|`RGBLIGHT_EFFECT_SNAKE_LENGTH` |`4` |The number of LEDs to light up for the "Snake" animation |
|
||||||
|
|||||||
@@ -271,6 +271,7 @@ This is a reference only. Each group of keys links to the page documenting their
|
|||||||
|`MAGIC_UNSWAP_BACKSLASH_BACKSPACE`| |Unswap `\` and Backspace |
|
|`MAGIC_UNSWAP_BACKSLASH_BACKSPACE`| |Unswap `\` and Backspace |
|
||||||
|`MAGIC_UNHOST_NKRO` | |Force NKRO off |
|
|`MAGIC_UNHOST_NKRO` | |Force NKRO off |
|
||||||
|`MAGIC_UNSWAP_ALT_GUI` |`AG_NORM`|Unswap Alt and GUI on both sides |
|
|`MAGIC_UNSWAP_ALT_GUI` |`AG_NORM`|Unswap Alt and GUI on both sides |
|
||||||
|
|`MAGIC_TOGGLE_ALT_GUI` |`AG_TOGG`|Toggle Alt and GUI swap on both sides|
|
||||||
|`MAGIC_TOGGLE_NKRO` | |Turn NKRO on or off |
|
|`MAGIC_TOGGLE_NKRO` | |Turn NKRO on or off |
|
||||||
|
|
||||||
## [Bluetooth](feature_bluetooth.md)
|
## [Bluetooth](feature_bluetooth.md)
|
||||||
|
|||||||
+9
-3
@@ -89,11 +89,15 @@ There are 3 main sections of a `keymap.c` file you'll want to concern yourself w
|
|||||||
|
|
||||||
At the top of the file you'll find this:
|
At the top of the file you'll find this:
|
||||||
|
|
||||||
#include "clueboard.h"
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
// Helpful defines
|
// 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 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
|
|
||||||
|
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||||
|
* You can use _______ in place for KC_TRNS (transparent) *
|
||||||
|
* Or you can use XXXXXXX for KC_NO (NOOP) *
|
||||||
|
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||||
|
|
||||||
// Each layer gets a name for readability.
|
// Each layer gets a name for readability.
|
||||||
// The underscores don't mean anything - you can
|
// The underscores don't mean anything - you can
|
||||||
@@ -105,7 +109,9 @@ At the top of the file you'll find this:
|
|||||||
#define _FL 1
|
#define _FL 1
|
||||||
#define _CL 2
|
#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.
|
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, and the following `_BL`, `_FL`, and `_CL` defines make it easier to refer to each of our layers.
|
||||||
|
|
||||||
|
Note: You may also find some older keymap files may also have a define(s) for `_______` and/or `XXXXXXX`. These can be used in place for `KC_TRNS` and `KC_NO` respectively, making it easier to see what keys a layer is overriding. These definitions are now unecessary, as they are included by default.
|
||||||
|
|
||||||
### Layers and Keymaps
|
### Layers and Keymaps
|
||||||
|
|
||||||
|
|||||||
@@ -22,6 +22,20 @@ Start by navigating to the `keymaps` folder for your keyboard.
|
|||||||
|
|
||||||
Once you have the `keymaps` folder open you will want to create a copy of the `default` folder. We highly recommend you name your folder the same as your GitHub username, but you can use any name you want as long as it contains only lower case letters, numbers, and the underscore character.
|
Once you have the `keymaps` folder open you will want to create a copy of the `default` folder. We highly recommend you name your folder the same as your GitHub username, but you can use any name you want as long as it contains only lower case letters, numbers, and the underscore character.
|
||||||
|
|
||||||
|
To automate the process, you also have the option to run the `new_keymap.sh` script.
|
||||||
|
|
||||||
|
Navigate to the `qmk_firmware/util` directory and type the following:
|
||||||
|
|
||||||
|
```
|
||||||
|
./new_keymap.sh <keyboard path> <username>
|
||||||
|
```
|
||||||
|
|
||||||
|
For example, for a user named John, trying to make a new keymap for the 1up60hse, they would type in
|
||||||
|
|
||||||
|
```
|
||||||
|
./new_keymap.sh 1upkeyboards/1up60hse john
|
||||||
|
```
|
||||||
|
|
||||||
## Open `keymap.c` In Your Favorite Text Editor
|
## Open `keymap.c` In Your Favorite Text Editor
|
||||||
|
|
||||||
Open up your `keymap.c`. Inside this file you'll find the structure that controls how your keyboard behaves. At the top of `keymap.c` there may be some defines and enums that make the keymap easier to read. Farther down you'll find a line that looks like this:
|
Open up your `keymap.c`. Inside this file you'll find the structure that controls how your keyboard behaves. At the top of `keymap.c` there may be some defines and enums that make the keymap easier to read. Farther down you'll find a line that looks like this:
|
||||||
|
|||||||
@@ -129,6 +129,7 @@ Comparing against our keymap we can see that the pressed key is KC_NLCK. From he
|
|||||||
<!-- FIXME: Magic happens between here and process_record -->
|
<!-- FIXME: Magic happens between here and process_record -->
|
||||||
|
|
||||||
##### Process Record
|
##### Process Record
|
||||||
|
|
||||||
The `process_record()` function itself is deceptively simple, but hidden within is a gateway to overriding functionality at various levels of QMK. The chain of events is listed below, using cluecard whenever we need to look at the keyboard/keymap level functions. Depending on options set in rule.mk or elsewhere, only a subset of the functions below will be included in final firmware.
|
The `process_record()` function itself is deceptively simple, but hidden within is a gateway to overriding functionality at various levels of QMK. The chain of events is listed below, using cluecard whenever we need to look at the keyboard/keymap level functions. Depending on options set in rule.mk or elsewhere, only a subset of the functions below will be included in final firmware.
|
||||||
|
|
||||||
* [`void process_record(keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/08c682c193f43e5d54df990680ae93fc2e06150a/tmk_core/common/action.c#L172)
|
* [`void process_record(keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/08c682c193f43e5d54df990680ae93fc2e06150a/tmk_core/common/action.c#L172)
|
||||||
@@ -146,7 +147,6 @@ The `process_record()` function itself is deceptively simple, but hidden within
|
|||||||
* [`bool process_music(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/661ca4440cc42f3b60697e98985c44b0571ccfc1/quantum/process_keycode/process_music.c#L114)
|
* [`bool process_music(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/661ca4440cc42f3b60697e98985c44b0571ccfc1/quantum/process_keycode/process_music.c#L114)
|
||||||
* [`bool process_tap_dance(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/661ca4440cc42f3b60697e98985c44b0571ccfc1/quantum/process_keycode/process_tap_dance.c#L136)
|
* [`bool process_tap_dance(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/661ca4440cc42f3b60697e98985c44b0571ccfc1/quantum/process_keycode/process_tap_dance.c#L136)
|
||||||
* [`bool process_leader(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/661ca4440cc42f3b60697e98985c44b0571ccfc1/quantum/process_keycode/process_leader.c#L38)
|
* [`bool process_leader(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/661ca4440cc42f3b60697e98985c44b0571ccfc1/quantum/process_keycode/process_leader.c#L38)
|
||||||
* [`bool process_chording(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/661ca4440cc42f3b60697e98985c44b0571ccfc1/quantum/process_keycode/process_chording.c#L41)
|
|
||||||
* [`bool process_combo(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/661ca4440cc42f3b60697e98985c44b0571ccfc1/quantum/process_keycode/process_combo.c#L115)
|
* [`bool process_combo(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/661ca4440cc42f3b60697e98985c44b0571ccfc1/quantum/process_keycode/process_combo.c#L115)
|
||||||
* [`bool process_unicode(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/661ca4440cc42f3b60697e98985c44b0571ccfc1/quantum/process_keycode/process_unicode.c#L22)
|
* [`bool process_unicode(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/661ca4440cc42f3b60697e98985c44b0571ccfc1/quantum/process_keycode/process_unicode.c#L22)
|
||||||
* [`bool process_ucis(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/661ca4440cc42f3b60697e98985c44b0571ccfc1/quantum/process_keycode/process_ucis.c#L91)
|
* [`bool process_ucis(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/661ca4440cc42f3b60697e98985c44b0571ccfc1/quantum/process_keycode/process_ucis.c#L91)
|
||||||
|
|||||||
@@ -43,9 +43,6 @@
|
|||||||
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
|
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
|
||||||
)
|
)
|
||||||
|
|
||||||
/* prevent stuck modifiers */
|
|
||||||
#define PREVENT_STUCK_MODIFIERS
|
|
||||||
|
|
||||||
#define RGB_DI_PIN E2
|
#define RGB_DI_PIN E2
|
||||||
#ifdef RGB_DI_PIN
|
#ifdef RGB_DI_PIN
|
||||||
#define RGBLIGHT_ANIMATIONS
|
#define RGBLIGHT_ANIMATIONS
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
#define DEVICE_VER 0x0001
|
#define DEVICE_VER 0x0001
|
||||||
#define MANUFACTURER 1up Keyboards
|
#define MANUFACTURER 1up Keyboards
|
||||||
#define PRODUCT Sweet16
|
#define PRODUCT Sweet16
|
||||||
#define DESCRIPTION 4x4 grid
|
#define DESCRIPTION 4x4 grid
|
||||||
|
|
||||||
/* key matrix size */
|
/* key matrix size */
|
||||||
#define MATRIX_ROWS 4
|
#define MATRIX_ROWS 4
|
||||||
@@ -43,9 +43,6 @@
|
|||||||
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
|
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
|
||||||
)
|
)
|
||||||
|
|
||||||
/* prevent stuck modifiers */
|
|
||||||
#define PREVENT_STUCK_MODIFIERS
|
|
||||||
|
|
||||||
#define RGB_DI_PIN B1
|
#define RGB_DI_PIN B1
|
||||||
#ifdef RGB_DI_PIN
|
#ifdef RGB_DI_PIN
|
||||||
#define RGBLIGHT_ANIMATIONS
|
#define RGBLIGHT_ANIMATIONS
|
||||||
@@ -55,4 +52,4 @@
|
|||||||
#define RGBLIGHT_VAL_STEP 8
|
#define RGBLIGHT_VAL_STEP 8
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
+2
-2
@@ -43,7 +43,7 @@
|
|||||||
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0a, K0b, ___, ___, ___, ___}, \
|
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0a, K0b, ___, ___, ___, ___}, \
|
||||||
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1a, K1b, ___, ___, ___, ___}, \
|
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1a, K1b, ___, ___, ___, ___}, \
|
||||||
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2a, K2b, ___, ___, ___, ___}, \
|
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2a, K2b, ___, ___, ___, ___}, \
|
||||||
{ K30, K31, K32, K33, K34, K35, K35, K37, K38, K39, K3a, K3b, ___, ___, ___, ___} \
|
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3a, K3b, ___, ___, ___, ___} \
|
||||||
}
|
}
|
||||||
|
|
||||||
#define LAYOUT_ortho_4x16( \
|
#define LAYOUT_ortho_4x16( \
|
||||||
@@ -56,7 +56,7 @@
|
|||||||
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0a, K0b, K0c, K0d, K0e, K0f }, \
|
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0a, K0b, K0c, K0d, K0e, K0f }, \
|
||||||
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1a, K1b, K1c, K1d, K1e, K1f }, \
|
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1a, K1b, K1c, K1d, K1e, K1f }, \
|
||||||
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2a, K2b, K2c, K2d, K2e, K2f }, \
|
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2a, K2b, K2c, K2d, K2e, K2f }, \
|
||||||
{ K30, K31, K32, K33, K34, K35, K35, K37, K38, K39, K3a, K3b, K3c, K3d, K3e, K3f } \
|
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3a, K3b, K3c, K3d, K3e, K3f } \
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
@@ -41,9 +41,6 @@
|
|||||||
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
|
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
|
||||||
)
|
)
|
||||||
|
|
||||||
/* prevent stuck modifiers */
|
|
||||||
#define PREVENT_STUCK_MODIFIERS
|
|
||||||
|
|
||||||
#define RGB_DI_PIN E2
|
#define RGB_DI_PIN E2
|
||||||
#define RGBLIGHT_ANIMATIONS
|
#define RGBLIGHT_ANIMATIONS
|
||||||
#define RGBLED_NUM 20
|
#define RGBLED_NUM 20
|
||||||
|
|||||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -10,6 +10,6 @@ Hardware Availability: [Geekhack GB](https://geekhack.org/index.php?topic=96616.
|
|||||||
|
|
||||||
Make example for this keyboard (after setting up your build environment):
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
make dc60:default
|
make alf/dc60:default
|
||||||
|
|
||||||
See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information.
|
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||||
File renamed without changes.
@@ -43,9 +43,6 @@
|
|||||||
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
|
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
|
||||||
)
|
)
|
||||||
|
|
||||||
/* prevent stuck modifiers */
|
|
||||||
#define PREVENT_STUCK_MODIFIERS
|
|
||||||
|
|
||||||
#define RGB_DI_PIN E2
|
#define RGB_DI_PIN E2
|
||||||
#ifdef RGB_DI_PIN
|
#ifdef RGB_DI_PIN
|
||||||
#define RGBLIGHT_ANIMATIONS
|
#define RGBLIGHT_ANIMATIONS
|
||||||
@@ -55,4 +52,4 @@
|
|||||||
#define RGBLIGHT_VAL_STEP 8
|
#define RGBLIGHT_VAL_STEP 8
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -0,0 +1,15 @@
|
|||||||
|
# X2
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
A customizable 60% keyboard.
|
||||||
|
|
||||||
|
Keyboard Maintainer: QMK Community
|
||||||
|
Hardware Supported: ALF X2 60%
|
||||||
|
Hardware Availability: [zFrontier](https://en.zfrontier.com/products/group-buy-alf-x2-60)
|
||||||
|
|
||||||
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make alf/x2:default
|
||||||
|
|
||||||
|
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||||
File renamed without changes.
@@ -0,0 +1 @@
|
|||||||
|
#include "x2.h"
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
#ifndef ALF_X2_H
|
#ifndef X2_H
|
||||||
#define ALF_X2_H
|
#define X2_H
|
||||||
|
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
|
|
||||||
@@ -95,4 +95,4 @@
|
|||||||
{ K400, K401, KC_NO, K403, K404, KC_NO, K406, KC_NO, K408, KC_NO, K410, K411, K412, K413, K414 } \
|
{ K400, K401, KC_NO, K403, K404, KC_NO, K406, KC_NO, K408, KC_NO, K410, K411, K412, K413, K414 } \
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
@@ -1 +0,0 @@
|
|||||||
#include "alf_x2.h"
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
# ALF X2
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
A customizable 60% keyboard.
|
|
||||||
|
|
||||||
Keyboard Maintainer: QMK Community
|
|
||||||
Hardware Supported: ALF X2 60%
|
|
||||||
Hardware Availability: [zFrontier](https://en.zfrontier.com/products/group-buy-alf-x2-60)
|
|
||||||
|
|
||||||
Make example for this keyboard (after setting up your build environment):
|
|
||||||
|
|
||||||
make alf_x2:default
|
|
||||||
|
|
||||||
See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information.
|
|
||||||
@@ -43,8 +43,6 @@
|
|||||||
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
|
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
|
||||||
)
|
)
|
||||||
|
|
||||||
/* prevent stuck modifiers */
|
|
||||||
#define PREVENT_STUCK_MODIFIERS
|
|
||||||
|
|
||||||
#define RGB_DI_PIN F4
|
#define RGB_DI_PIN F4
|
||||||
#ifdef RGB_DI_PIN
|
#ifdef RGB_DI_PIN
|
||||||
|
|||||||
@@ -59,9 +59,6 @@
|
|||||||
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
|
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
|
||||||
)
|
)
|
||||||
|
|
||||||
/* prevent stuck modifiers */
|
|
||||||
#define PREVENT_STUCK_MODIFIERS
|
|
||||||
|
|
||||||
#define RGB_DI_PIN E2
|
#define RGB_DI_PIN E2
|
||||||
#ifdef RGB_DI_PIN
|
#ifdef RGB_DI_PIN
|
||||||
#define RGBLED_NUM 16
|
#define RGBLED_NUM 16
|
||||||
|
|||||||
@@ -38,6 +38,3 @@
|
|||||||
#define IS_COMMAND() ( \
|
#define IS_COMMAND() ( \
|
||||||
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
|
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
|
||||||
)
|
)
|
||||||
|
|
||||||
/* prevent stuck modifiers */
|
|
||||||
#define PREVENT_STUCK_MODIFIERS
|
|
||||||
@@ -4,8 +4,6 @@
|
|||||||
#include "action_layer.h"
|
#include "action_layer.h"
|
||||||
#include "keymap_colemak.h"
|
#include "keymap_colemak.h"
|
||||||
|
|
||||||
#define PREVENT_STUCK_MODIFIERS
|
|
||||||
|
|
||||||
// Each layer gets a name for readability, which is then used in the keymap matrix below.
|
// Each layer gets a name for readability, which is then used in the keymap matrix below.
|
||||||
#define ALPH 0
|
#define ALPH 0
|
||||||
#define NUMS 1
|
#define NUMS 1
|
||||||
|
|||||||
@@ -3,8 +3,6 @@
|
|||||||
|
|
||||||
#include "../../config.h"
|
#include "../../config.h"
|
||||||
|
|
||||||
#define PREVENT_STUCK_MODIFIERS
|
|
||||||
|
|
||||||
#define IGNORE_MOD_TAP_INTERRUPT
|
#define IGNORE_MOD_TAP_INTERRUPT
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
#ifndef CONFIG_USER_H
|
||||||
|
#define CONFIG_USER_H
|
||||||
|
|
||||||
|
#include QMK_KEYBOARD_CONFIG_H
|
||||||
|
|
||||||
|
#define PREVENT_STUCK_MODIFIERS
|
||||||
|
#define SPACE_COUNT 2
|
||||||
|
|
||||||
|
#define TEMPLATE( \
|
||||||
|
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2D, \
|
||||||
|
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
|
||||||
|
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \
|
||||||
|
K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
|
||||||
|
K40, K41, K42, K44, K45, K46, K48, K49, K4B, K4C \
|
||||||
|
) LAYOUT( \
|
||||||
|
K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \
|
||||||
|
K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, \
|
||||||
|
K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, \
|
||||||
|
K10, K41, K42, K30, K44, K1D, K20, K45, K3C, K0D, K2B, K3D \
|
||||||
|
)
|
||||||
|
|
||||||
|
#define TEMPLATE_NUM( \
|
||||||
|
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2D, \
|
||||||
|
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
|
||||||
|
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \
|
||||||
|
K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
|
||||||
|
K40, K41, K42, K44, K45, K46, K48, K49, K4B, K4C \
|
||||||
|
) LAYOUT( \
|
||||||
|
K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \
|
||||||
|
K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, \
|
||||||
|
K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, \
|
||||||
|
K10, K41, K42, K30, K44, K1D, K20, K45, K48, K49, K2B, K3D \
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
#define TEMPLATE_RESET LAYOUT( \
|
||||||
|
RESET , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
|
||||||
|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
|
||||||
|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
|
||||||
|
RESET , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX \
|
||||||
|
)
|
||||||
|
#endif
|
||||||
File renamed without changes.
@@ -0,0 +1 @@
|
|||||||
|
USER_NAME := talljoe
|
||||||
@@ -30,8 +30,7 @@ the Free Software Foundation, either version 2 of the License, or
|
|||||||
#define MOUSEKEY_WHEEL_MAX_SPEED 8
|
#define MOUSEKEY_WHEEL_MAX_SPEED 8
|
||||||
#define MOUSEKEY_WHEEL_TIME_TO_MAX 40
|
#define MOUSEKEY_WHEEL_TIME_TO_MAX 40
|
||||||
|
|
||||||
#define PREVENT_STUCK_MODIFIERS
|
|
||||||
#define IGNORE_MOD_TAP_INTERRUPT
|
#define IGNORE_MOD_TAP_INTERRUPT
|
||||||
#define PERMISSIVE_HOLD
|
#define PERMISSIVE_HOLD
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
@@ -1,6 +1,5 @@
|
|||||||
#define ONESHOT_TIMEOUT 3000
|
#define ONESHOT_TIMEOUT 3000
|
||||||
#define TAPPING_TERM 200
|
#define TAPPING_TERM 200
|
||||||
#define PREVENT_STUCK_MODIFIERS
|
|
||||||
#define FORCE_NKRO
|
#define FORCE_NKRO
|
||||||
#define LEADER_TIMEOUT 1000
|
#define LEADER_TIMEOUT 1000
|
||||||
|
|
||||||
|
|||||||
@@ -3,3 +3,4 @@ NKRO_ENABLE = true
|
|||||||
MOUSEKEY_ENABLE = no
|
MOUSEKEY_ENABLE = no
|
||||||
EXTRAKEY_ENABLE = yes
|
EXTRAKEY_ENABLE = yes
|
||||||
CONSOLE_ENABLE = no
|
CONSOLE_ENABLE = no
|
||||||
|
LEADER_ENABLE = yes
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
BananaSplit60
|
|
||||||
===
|
|
||||||
|
|
||||||
A 60% PCB featuring a split spacebar.
|
|
||||||
|
|
||||||
Keyboard Maintainer: QMK Community
|
|
||||||
Hardware Supported: BananaSplit60 PCB
|
|
||||||
Hardware Availability: https://thevankeyboards.com/products/gb-bananasplit-60-keyboard-kit?variant=42149104910
|
|
||||||
|
|
||||||
Make example for this keyboard (after setting up your build environment):
|
|
||||||
|
|
||||||
make bananasplit:default
|
|
||||||
|
|
||||||
See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information.
|
|
||||||
|
|
||||||
@@ -37,7 +37,4 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
|
|
||||||
#define PERMISSIVE_HOLD
|
#define PERMISSIVE_HOLD
|
||||||
|
|
||||||
#define PREVENT_STUCK_MODIFIERS
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
@@ -47,9 +47,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
false \
|
false \
|
||||||
)
|
)
|
||||||
|
|
||||||
/* prevent stuck modifiers */
|
|
||||||
#define PREVENT_STUCK_MODIFIERS
|
|
||||||
|
|
||||||
#ifdef RGBLIGHT_ENABLE
|
#ifdef RGBLIGHT_ENABLE
|
||||||
#define RGB_DI_PIN D3
|
#define RGB_DI_PIN D3
|
||||||
#define RGBLIGHT_ANIMATIONS
|
#define RGBLIGHT_ANIMATIONS
|
||||||
|
|||||||
@@ -47,9 +47,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
false \
|
false \
|
||||||
)
|
)
|
||||||
|
|
||||||
/* prevent stuck modifiers */
|
|
||||||
#define PREVENT_STUCK_MODIFIERS
|
|
||||||
|
|
||||||
#ifdef RGBLIGHT_ENABLE
|
#ifdef RGBLIGHT_ENABLE
|
||||||
#define RGB_DI_PIN D3
|
#define RGB_DI_PIN D3
|
||||||
#define RGBLIGHT_ANIMATIONS
|
#define RGBLIGHT_ANIMATIONS
|
||||||
|
|||||||
@@ -47,9 +47,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
false \
|
false \
|
||||||
)
|
)
|
||||||
|
|
||||||
/* prevent stuck modifiers */
|
|
||||||
#define PREVENT_STUCK_MODIFIERS
|
|
||||||
|
|
||||||
#ifdef RGBLIGHT_ENABLE
|
#ifdef RGBLIGHT_ENABLE
|
||||||
#define RGB_DI_PIN D3
|
#define RGB_DI_PIN D3
|
||||||
#define RGBLIGHT_ANIMATIONS
|
#define RGBLIGHT_ANIMATIONS
|
||||||
|
|||||||
@@ -47,9 +47,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
false \
|
false \
|
||||||
)
|
)
|
||||||
|
|
||||||
/* prevent stuck modifiers */
|
|
||||||
#define PREVENT_STUCK_MODIFIERS
|
|
||||||
|
|
||||||
#ifdef RGBLIGHT_ENABLE
|
#ifdef RGBLIGHT_ENABLE
|
||||||
#define RGB_DI_PIN D3
|
#define RGB_DI_PIN D3
|
||||||
#define RGBLIGHT_ANIMATIONS
|
#define RGBLIGHT_ANIMATIONS
|
||||||
|
|||||||
@@ -19,10 +19,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
volatile uint8_t runonce = true;
|
volatile uint8_t runonce = true;
|
||||||
static uint16_t my_timer;
|
static uint16_t my_timer;
|
||||||
|
|
||||||
|
__attribute__ ((weak))
|
||||||
void matrix_init_user(void) {
|
void matrix_init_user(void) {
|
||||||
my_timer = timer_read();
|
my_timer = timer_read();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
__attribute__ ((weak))
|
||||||
void matrix_scan_user(void) {
|
void matrix_scan_user(void) {
|
||||||
if (runonce && timer_elapsed(my_timer) > 1000) {
|
if (runonce && timer_elapsed(my_timer) > 1000) {
|
||||||
runonce = false;
|
runonce = false;
|
||||||
|
|||||||
@@ -47,8 +47,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
false \
|
false \
|
||||||
)
|
)
|
||||||
|
|
||||||
/* prevent stuck modifiers */
|
|
||||||
#define PREVENT_STUCK_MODIFIERS
|
|
||||||
|
|
||||||
#ifdef RGBLIGHT_ENABLE
|
#ifdef RGBLIGHT_ENABLE
|
||||||
#define RGB_DI_PIN D3
|
#define RGB_DI_PIN D3
|
||||||
|
|||||||
@@ -0,0 +1,45 @@
|
|||||||
|
/* Copyright 2018 wanleg
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
// place overrides here
|
||||||
|
#undef MATRIX_ROW_PINS
|
||||||
|
#define MATRIX_ROW_PINS { B4 }
|
||||||
|
#undef MATRIX_COL_PINS
|
||||||
|
#define MATRIX_COL_PINS { B6 }
|
||||||
|
//#define UNUSED_PINS
|
||||||
|
|
||||||
|
/* COL2ROW, ROW2COL, or CUSTOM_MATRIX */
|
||||||
|
#undef DIODE_DIRECTION
|
||||||
|
#define DIODE_DIRECTION COL2ROW
|
||||||
|
|
||||||
|
#define BACKLIGHT_PIN B5
|
||||||
|
#define BACKLIGHT_BREATHING
|
||||||
|
#define BACKLIGHT_LEVELS 3
|
||||||
|
#define BREATHING_PERIOD 5
|
||||||
|
|
||||||
|
/* for Tap Dance */
|
||||||
|
#undef TAPPING_TERM
|
||||||
|
#define TAPPING_TERM 700
|
||||||
|
|
||||||
|
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||||
|
//#define DEBOUNCING_DELAY 5
|
||||||
|
#undef DEBOUNCING_DELAY
|
||||||
|
#define DEBOUNCING_DELAY 2
|
||||||
|
|
||||||
|
// set flashing LED with QMK DFU
|
||||||
|
#define QMK_LED B0
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
/* Copyright 2018 wanleg
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
#include "wanleg.h"
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
[0] = LAYOUT( /* Base */
|
||||||
|
TD(CAD_TD) \
|
||||||
|
),
|
||||||
|
};
|
||||||
|
|
||||||
|
void led_set_user(uint8_t usb_led) {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
|
||||||
|
|
||||||
|
#If using a ProMicro and it has the QMK DFU bootloader instead of Caterina,
|
||||||
|
#run "make <keyboard>:<keymap> dfu=qmk" when compiling to ensure it is flagged properly after being flashed
|
||||||
|
ifeq ($(strip $(dfu)), qmk)
|
||||||
|
BOOTLOADER = qmk-dfu
|
||||||
|
endif
|
||||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
+2
-1
@@ -1,5 +1,5 @@
|
|||||||
# Build Options
|
# Build Options
|
||||||
# change to "no" to disable the options, or define them in the Makefile in
|
# change to "no" to disable the options, or define them in the Makefile in
|
||||||
# the appropriate keymap folder that will get included automatically
|
# the appropriate keymap folder that will get included automatically
|
||||||
#
|
#
|
||||||
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
|
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
|
||||||
@@ -17,6 +17,7 @@ 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.
|
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
|
||||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||||
TAP_DANCE_ENABLE = yes
|
TAP_DANCE_ENABLE = yes
|
||||||
|
LEADER_ENABLE = yes
|
||||||
|
|
||||||
ifndef QUANTUM_DIR
|
ifndef QUANTUM_DIR
|
||||||
include ../../../../Makefile
|
include ../../../../Makefile
|
||||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -32,6 +32,24 @@ static uint8_t debouncing = DEBOUNCING_DELAY;
|
|||||||
static matrix_row_t matrix[MATRIX_ROWS];
|
static matrix_row_t matrix[MATRIX_ROWS];
|
||||||
static matrix_row_t matrix_debouncing[MATRIX_ROWS];
|
static matrix_row_t matrix_debouncing[MATRIX_ROWS];
|
||||||
|
|
||||||
|
__attribute__ ((weak))
|
||||||
|
void matrix_init_kb(void) {
|
||||||
|
matrix_init_user();
|
||||||
|
}
|
||||||
|
|
||||||
|
__attribute__ ((weak))
|
||||||
|
void matrix_scan_kb(void) {
|
||||||
|
matrix_scan_user();
|
||||||
|
}
|
||||||
|
|
||||||
|
__attribute__ ((weak))
|
||||||
|
void matrix_init_user(void) {
|
||||||
|
}
|
||||||
|
|
||||||
|
__attribute__ ((weak))
|
||||||
|
void matrix_scan_user(void) {
|
||||||
|
}
|
||||||
|
|
||||||
static matrix_row_t scan_col(void) {
|
static matrix_row_t scan_col(void) {
|
||||||
return (
|
return (
|
||||||
(PINC&(1<<7) ? 0 : ((matrix_row_t)1<<0)) |
|
(PINC&(1<<7) ? 0 : ((matrix_row_t)1<<0)) |
|
||||||
@@ -25,22 +25,19 @@ Make example for this keyboard (after setting up your build environment):
|
|||||||
104 key default layout:
|
104 key default layout:
|
||||||
|
|
||||||
```
|
```
|
||||||
make frosty_flake:default
|
make bpiphany/frosty_flake:default
|
||||||
```
|
```
|
||||||
|
|
||||||
To directly flash the frosty_flake after compiling use
|
To directly flash the frosty_flake after compiling use
|
||||||
|
|
||||||
```
|
```
|
||||||
make frosty_flake:default:dfu
|
make bpiphany/frosty_flake:default:dfu
|
||||||
```
|
```
|
||||||
|
|
||||||
87 key tkl layout:
|
87 key tkl layout:
|
||||||
|
|
||||||
```
|
```
|
||||||
make frosty_flake:tkl:dfu
|
make bpiphany/frosty_flake:tkl:dfu
|
||||||
```
|
```
|
||||||
|
|
||||||
See [build environment
|
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||||
setup](https://docs.qmk.fm/build_environment_setup.html) then the
|
|
||||||
[make instructions](https://docs.qmk.fm/make_instructions.html) for
|
|
||||||
more information.
|
|
||||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -35,6 +35,24 @@ static matrix_row_t matrix_debouncing[MATRIX_ROWS];
|
|||||||
static uint8_t read_rows(void);
|
static uint8_t read_rows(void);
|
||||||
static void select_col(uint8_t col);
|
static void select_col(uint8_t col);
|
||||||
|
|
||||||
|
__attribute__ ((weak))
|
||||||
|
void matrix_init_kb(void) {
|
||||||
|
matrix_init_user();
|
||||||
|
}
|
||||||
|
|
||||||
|
__attribute__ ((weak))
|
||||||
|
void matrix_scan_kb(void) {
|
||||||
|
matrix_scan_user();
|
||||||
|
}
|
||||||
|
|
||||||
|
__attribute__ ((weak))
|
||||||
|
void matrix_init_user(void) {
|
||||||
|
}
|
||||||
|
|
||||||
|
__attribute__ ((weak))
|
||||||
|
void matrix_scan_user(void) {
|
||||||
|
}
|
||||||
|
|
||||||
inline uint8_t matrix_rows(void) {
|
inline uint8_t matrix_rows(void) {
|
||||||
return MATRIX_ROWS;
|
return MATRIX_ROWS;
|
||||||
}
|
}
|
||||||
@@ -48,7 +66,7 @@ inline uint8_t matrix_cols(void) {
|
|||||||
* col: 0 1 2 3 4 5 6 7
|
* col: 0 1 2 3 4 5 6 7
|
||||||
* pin: PC7 PD5 PD3 PD1 PC2 PD6 PD4 PD2
|
* pin: PC7 PD5 PD3 PD1 PC2 PD6 PD4 PD2
|
||||||
*
|
*
|
||||||
* Rrr pin configuration
|
* Rrr pin configuration
|
||||||
*
|
*
|
||||||
* These rrrs uses one 74HC154 4 to 16 bit demultiplexer (low
|
* These rrrs uses one 74HC154 4 to 16 bit demultiplexer (low
|
||||||
* active), together with 2 rrrs driven directly from the micro
|
* active), together with 2 rrrs driven directly from the micro
|
||||||
@@ -84,7 +102,7 @@ uint8_t matrix_scan(void) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (debouncing) {
|
if (debouncing) {
|
||||||
if (--debouncing) {
|
if (--debouncing) {
|
||||||
_delay_ms(1);
|
_delay_ms(1);
|
||||||
@@ -11,6 +11,6 @@ Hardware Availability: https://geekhack.org/index.php?topic=46700.0
|
|||||||
|
|
||||||
Make example for this keyboard (after setting up your build environment):
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
make kitten_paw:default
|
make bpiphany/kitten_paw:default
|
||||||
|
|
||||||
See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information.
|
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||||
File renamed without changes.
@@ -0,0 +1,12 @@
|
|||||||
|
Pegasus Hoof Controller
|
||||||
|
===
|
||||||
|
|
||||||
|
Keyboard Maintainer: QMK Community
|
||||||
|
Hardware Supported: Pegasus Hoof
|
||||||
|
Hardware Availability: https://1upkeyboards.com/filco-pegasus-hoof-controller.html
|
||||||
|
|
||||||
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make bpiphany/pegasus_hoof:default
|
||||||
|
|
||||||
|
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
-3
@@ -8,7 +8,4 @@
|
|||||||
#undef PRODUCT
|
#undef PRODUCT
|
||||||
#define PRODUCT Pegasus Hoof Citadel
|
#define PRODUCT Pegasus Hoof Citadel
|
||||||
|
|
||||||
/* necessary option for this keymap, because CAPS is redefined in Layer 0 */
|
|
||||||
#define PREVENT_STUCK_MODIFIERS
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Loaded 100 of 740 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user