Compare commits

...

8 Commits
0.6.7 ... 0.6.9

Author SHA1 Message Date
ajp10304
ed62c6e146 Ajp10304 (#2719)
* AJP10304 layouts for Planck and JJ40 now have mouse support. Moved macros onto Adjust layer

* .gitignore for intellij iml files.

* Updated Macros to use send string
2018-04-15 09:48:19 -07:00
David Rambo
32fd5e4f61 keymaps for Iris, Planck, Satan, and XD75 (#2747)
* DRambo Planck keymap in Colemak

* DRambo Planck keymap in Colemak

* Satan GH60 keymap for Bri

QWERTY layout with Navigation layer toggled with "Caps Lock" key.

* xd75 keymap in Colemak for Mac and Win

* DRambo Planck keymap in Colemak

* Satan GH60 keymap for Bri

QWERTY layout with Navigation layer toggled with "Caps Lock" key.

* xd75 keymap in Colemak for Mac and Win

* Added Iris Colemak layout for Mac, Windows, and Gaming.

* changed comment text

* DRambo Planck keymap in Colemak

* Satan GH60 keymap for Bri

QWERTY layout with Navigation layer toggled with "Caps Lock" key.

* xd75 keymap in Colemak for Mac and Win

* Added Iris Colemak layout for Mac, Windows, and Gaming.

* changed comment text

* Added Iris keymap from DavidRambo

* Added planck keymap from DavidRambo

* Added xd75 keymap from DavidRambo

* Added readme
2018-04-15 09:46:26 -07:00
Fayek Helmi
fe8b9d0d0f adding the 256k HHKB layout to the library (#2742)
* adding the 256k HHKB layout to the library

* changed the layouts for the modifying layers and added a readme file to explain my layout
2018-04-15 09:09:55 -07:00
Oliver Ladner
412af0f4e7 New DZ60 layout (#2744)
* initial commit

* - Move layout to readme
- Finish first (0) layer

* remove cruft

* fix ASCII keymap in readme

* fix ASCII keymap in readme #2

* fix ASCII keymap in readme

* rename layers

* use 2 shift layout

* rename layers, populate additional layers

* final layout (TM)

* fix RGB saturation increase position
2018-04-15 09:09:15 -07:00
Campbell Barton
d55ee204db qwerty_code_friendly: optional 80 key layout (#2745) 2018-04-15 09:08:28 -07:00
Kevin Foley
cdb967f22b Fix link to command page 2018-04-15 11:53:31 -04:00
mechmerlin
28307be72f Add chiwi60 layout for the do60
Add info.json to support the layouts for QMK Configurator
Rename LAYOUT to LAYOUT_all
2018-04-13 23:50:48 -04:00
walkerstop
530dd446cb Fix incorrect port direction setting in my previous pull request for pins B5, B6, B7 (#2739)
* Added support for audio using pins C4, C5, B6, B7

* Fixed bug where port direction wasn't set correctly for B5, B6, B7 audio ports
2018-04-13 03:53:29 -04:00
43 changed files with 2112 additions and 421 deletions

1
.gitignore vendored
View File

@@ -43,6 +43,7 @@ doxygen/
.project
.settings/
.idea
*.iml
.browse.VC.db*
*.stackdump
util/Win_Check_Output.txt

View File

@@ -6,7 +6,7 @@ Bootmagic is a system for configuring your keyboard while it initializes. To tri
Bootmagic Keycodes allow you to access the Bootmagic functionality after your keyboard has initialized. To use Bootmagic Keycodes you assign keycodes starting with `MAGIC_`, much in the same way you define any other key.
Command is a feature that allows you to control different aspects of your keyboard. Command used to be called Magic. Command is typically accessed by holding Left and Right Shift at the same time, although that can be customized. While it shares some functionality with Bootmagic it also allows you to access functionality that Bootmagic does not. For more information see the (Command)[feature_command.md) documentation page.
Command is a feature that allows you to control different aspects of your keyboard. Command used to be called Magic. Command is typically accessed by holding Left and Right Shift at the same time, although that can be customized. While it shares some functionality with Bootmagic it also allows you to access functionality that Bootmagic does not. For more information see the [Command](feature_command.md) documentation page.
## Enabling Bootmagic

View File

@@ -24,7 +24,7 @@ inline void do60_bl_led_off(void) { DDRF &= ~(1<<4); PORTF &= ~(1<<4); }
/* Do60 Keymap Definition Macro */
#define LAYOUT( \
#define LAYOUT_all( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, \
@@ -38,4 +38,18 @@ inline void do60_bl_led_off(void) { DDRF &= ~(1<<4); PORTF &= ~(1<<4); }
{ K40, K41, K42, KC_NO,KC_NO,K45, K46, K47, KC_NO,KC_NO,K4A, K4B, K4C, K4D, K4E } \
}
#define LAYOUT_chiwi60_default( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2E, \
K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, \
K40, K41, K42, K45, K47, K4A, K4B, K4C, K4D, K4E \
) { \
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, KC_NO, K1E }, \
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, KC_NO, K2E }, \
{ K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, KC_NO, K3D, K3E }, \
{ K40, K41, K42, KC_NO, KC_NO, K45, KC_NO, K47, KC_NO, KC_NO, K4A, K4B, K4C, K4D, K4E } \
}
#endif

16
keyboards/do60/info.json Normal file
View File

@@ -0,0 +1,16 @@
{
"keyboard_name": "do60",
"url": "",
"maintainer": "qmk",
"width": 15,
"height": 5,
"layouts": {
"LAYOUT_all": {
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"~", "x":13, "y":0}, {"label":"\u2190", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":2, "w":1.25}, {"label":"Shift", "x":0, "y":3}, {"x":1, "y":3}, {"label":"Z", "x":2, "y":3}, {"label":"X", "x":3, "y":3}, {"label":"C", "x":4, "y":3}, {"label":"V", "x":5, "y":3}, {"label":"B", "x":6, "y":3}, {"label":"N", "x":7, "y":3}, {"label":"M", "x":8, "y":3}, {"label":"<", "x":9, "y":3}, {"label":">", "x":10, "y":3}, {"label":"?", "x":11, "y":3}, {"x":12, "y":3}, {"label":"\u2191", "x":13, "y":3}, {"label":"Del", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"label":"3u(Space)", "x":3.75, "y":4, "w":2.75}, {"x":6.5, "y":4}, {"label":"3u(Space)", "x":7.5, "y":4, "w":2.25}, {"label":"Alt", "x":9.75, "y":4, "w":1.25}, {"label":"win", "x":11, "y":4}, {"label":"\u2190", "x":12, "y":4}, {"label":"\u2193", "x":13, "y":4}, {"label":"\u2192", "x":14, "y":4}]
},
"LAYOUT_chiwi60_default": {
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"~", "x":13, "y":0}, {"label":"\u2190", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3, "w":1.75}, {"label":"\u2191", "x":13, "y":3}, {"label":"Del", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"label":"3u(Space)", "x":3.75, "y":4, "w":3}, {"label":"3u(Space)", "x":6.75, "y":4, "w":3}, {"label":"Alt", "x":9.75, "y":4, "w":1.25}, {"label":"win", "x":11, "y":4}, {"label":"\u2190", "x":12, "y":4}, {"label":"\u2193", "x":13, "y":4}, {"label":"\u2192", "x":14, "y":4}]
}
}
}

View File

@@ -4,7 +4,7 @@
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// 0: Base Layer
[0] = LAYOUT(
[0] = LAYOUT_all(
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_GRV, KC_BSPC, \
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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NO, KC_ENT, \
@@ -12,7 +12,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_NO, KC_BSPC, KC_RGUI, F(0), KC_LEFT, KC_DOWN, KC_RIGHT),
// 1: Function Layer
[1] = LAYOUT(
[1] = LAYOUT_all(
RESET, 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_NO, KC_NO, \
KC_NO, RGB_HUI, RGB_SAI, RGB_VAI, RGB_MOD, KC_HOME,KC_CALC,KC_NO, KC_INS, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, KC_DEL, \
KC_NO, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SMOD, KC_END, KC_PGDN,KC_NO, KC_NO, KC_NO, KC_HOME, KC_PGUP, KC_NO, KC_ENT, \

View File

@@ -4,7 +4,7 @@
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// 0: Base Layer
[0] = LAYOUT(
[0] = LAYOUT_all(
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_NO, KC_BSPC, \
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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NO, KC_ENT, \
@@ -12,7 +12,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LCTL, KC_LGUI, KC_LALT, KC_BSPC,KC_SPC, KC_DEL, KC_RGUI, F(0), KC_LEFT, KC_DOWN, KC_RIGHT),
// 1: Function Layer
[1] = LAYOUT(
[1] = LAYOUT_all(
RESET, 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_NO, KC_NO, \
KC_NO, RGB_HUI, RGB_SAI, RGB_VAI, RGB_MOD, KC_HOME,KC_CALC,KC_NO, KC_INS, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, KC_DEL, \
KC_NO, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SMOD, KC_END, KC_PGDN,KC_NO, KC_NO, KC_NO, KC_HOME, KC_PGUP, KC_NO, KC_ENT, \

View File

@@ -0,0 +1,113 @@
256k HHKB Layout:
===
this is my personal layer that i use on my Tina-C HHKB layout board with a DZ60 PCB.
---
there is 1 base layer and 4 modifyer layers:
BASE:
---
```
/* BASE LAYER
*
* ,-----------------------------------------------------------------------------------------.
* | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \| | ~ ` |
* |-----------------------------------------------------------------------------------------+
* | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ |
* |-----------------------------------------------------------------------------------------+
* | CTRL | A | S | D | F | G | H | J | K | L | ; | ' | Enter |
* |-----------------------------------------------------------------------------------------+
* | Shift | Z | X | C | V | B | N | M | , | . | / | RShift | FN |
* |-----------------------------------------------------------------------------------------+
* | Win | Alt | Space | Alt | LIGHTS |
* `-----------------------------------------------------------------------------------------'
*/
```
LAYER 1 (ALTFN):
---
this layer is my main function layer, i changed the default HHKB function layer to suit my need and also changed the placement of the modifyer key to the left alt since i want to control the layer activation with one hand and have the other hand control the keys on that layer freely. perhaps this is due to me being left handed but it feels more natural to me this way.
```
/* ALTFN LAYER
*
* ,---------------------------------------------------------------------------------------------------------------------
* | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | INSERT | _ |
* |---------------------------------------------------------------------------------------------------------------------+
* | CAPS | _ | _ | _ | _ | _ | _ | _ | _ | UP | MUTE | V_DEC | V_INC | DEL |
* |---------------------------------------------------------------------------------------------------------------------+
* | CTRL | _ | _ | _ | _ | _ | _ | HOME | LEFT | DOWN | RIGHT | END | _ |
* |---------------------------------------------------------------------------------------------------------------------+
* | Shift | _ | _ | _ | _ | _ | _ | _ | PREV | NEXT | PLAY | _ | _ |
* |---------------------------------------------------------------------------------------------------------------------+
* | _ | _ | _ | _ | _ |
* `---------------------------------------------------------------------------------------------------------------------'
*/
```
MOUSE LAYER (MOUSEFN):
---
*To access this layer you need to enter the ALTFN layer first then hit ESC button which will switch to the MOUSEFN layer*
this is the second *hidden* layer that controls the mouse scroll wheel directions. i find it's useful to have these controls on the keyboard for certain applications that require scrolling in all 4 directions (Simple example: expanding an image preview to full size that overflows outside of the default monitor size and using the scroll wheel to mouve the image around.)
also another benefit is that a lot of mice do not have horizontal control buttons for the scrolling
(This layer is still experimental so i might change it later or modify it but so far i enjoy it)
```
/* MOUSEFN LAYER
*
* ,---------------------------------------------------------------------------------------------------------------------
* | | ACC_1 | ACC_2 | ACC_3 | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ |
* |---------------------------------------------------------------------------------------------------------------------+
* | CAPS | _ | _ | _ | _ | _ | _ | _ | _ | WHEEL_UP | _ | _ | _ | _ |
* |---------------------------------------------------------------------------------------------------------------------+
* | CTRL | _ | _ | _ | _ | _ | _ | _ | WH_LEFT | WH_DOWN | WH_RIGHT | _ | _ |
* |---------------------------------------------------------------------------------------------------------------------+
* | Shift | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ |
* |---------------------------------------------------------------------------------------------------------------------+
* | _ | _ | _ | _ | _ |
* `---------------------------------------------------------------------------------------------------------------------'
*/
```
STANDARD HHKB FN LAYER (FN):
---
this is the default HHKB function layer (mostly)... I have left it there on the same button and everything for 2 reasons: 1. for backup incase i forget where something was or if it contains a button that i did not include in my ALTFN layer. 2. as a reference for anyone else.
*this layer will probably get removed once i get comfortable with my ALTFN layer.*
LIGHTS LAYER:
---
this is the basic lights layer used to control the RBG backlight on the DZ60... i have removed the 3 backlight controls since i do not use any key LED Backlight.
```
/* LIGHTS LAYER
*
* ,---------------------------------------------------------------------------------------------------------------------+
* | RGB_TOGGLE | STATIC | BREATHE | RAINBOW | SWIRL | SNAKE | KNIGHTRIDER | XMAS | STATIC_GRAD | _ | _ | _ | _ | _ | _ |
* |----------------------------------------------------------------------------------------------------------------------+
* | RBG_MOD | HUE_INC | SATURATION_INC | BRIGHT_INC | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ |
* |----------------------------------------------------------------------------------------------------------------------+
* | CTRL | HUE_DEC | SATURATION_DEC | BRIGHT_DEC | _ | _ | _ | _ | _ | _ | _ | _ | _ |
* |----------------------------------------------------------------------------------------------------------------------+
* | Shift | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ |
* |----------------------------------------------------------------------------------------------------------------------+
* | _ | _ | _ | _ | _ |
* `----------------------------------------------------------------------------------------------------------------------'
*/
```

View File

@@ -0,0 +1,250 @@
#include "dz60.h"
#include "action_layer.h"
// My layout is practically the default HHKB layout.
#define _DEFAULT 0
#define _ALTFN 1
#define _MOUSEFN 2
#define _FN 3
#define _LIGHTS 4
#define ______ KC_TRNS
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* BASE LAYER
*
* ,-----------------------------------------------------------------------------------------.
* | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \| | ~ ` |
* |-----------------------------------------------------------------------------------------+
* | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ |
* |-----------------------------------------------------------------------------------------+
* | CTRL | A | S | D | F | G | H | J | K | L | ; | ' | Enter |
* |-----------------------------------------------------------------------------------------+
* | Shift | Z | X | C | V | B | N | M | , | . | / | RShift | FN |
* |-----------------------------------------------------------------------------------------+
* | Win | Alt | Space | Alt | LIGHTS |
* `-----------------------------------------------------------------------------------------'
*/
[_DEFAULT] = LAYOUT_hhkb(
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_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_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN),
KC_LGUI, MO(_ALTFN), KC_SPC, KC_RALT, MO(_LIGHTS)),
/* ALTFN LAYER
*
* ,---------------------------------------------------------------------------------------------------------------------
* | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | INSERT | _ |
* |---------------------------------------------------------------------------------------------------------------------+
* | CAPS | _ | _ | _ | _ | _ | _ | _ | _ | UP | MUTE | V_DEC | V_INC | DEL |
* |---------------------------------------------------------------------------------------------------------------------+
* | CTRL | _ | _ | _ | _ | _ | _ | HOME | LEFT | DOWN | RIGHT | END | _ |
* |---------------------------------------------------------------------------------------------------------------------+
* | Shift | _ | _ | _ | _ | _ | _ | _ | PREV | NEXT | PLAY | _ | _ |
* |---------------------------------------------------------------------------------------------------------------------+
* | _ | _ | _ | _ | _ |
* `---------------------------------------------------------------------------------------------------------------------'
*/
[_ALTFN] = LAYOUT_hhkb(
MO(_MOUSEFN), 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_PSCR,
KC_CAPS, ______, ______, ______, ______, ______, ______, ______, ______, KC_UP, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL,
______, ______, ______, ______, ______, ______, ______, KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT, KC_END, ______,
______, ______, ______, ______, ______, ______, ______, ______, ______, KC_MPRV, KC_MNXT, KC_MPLY, ______, ______,
______, ______, ______, ______, ______),
/* MOUSEFN LAYER
*
* ,---------------------------------------------------------------------------------------------------------------------
* | | ACC_1 | ACC_2 | ACC_3 | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ |
* |---------------------------------------------------------------------------------------------------------------------+
* | CAPS | _ | _ | _ | _ | _ | _ | _ | _ | WHEEL_UP | _ | _ | _ | _ |
* |---------------------------------------------------------------------------------------------------------------------+
* | CTRL | _ | _ | _ | _ | _ | _ | _ | WH_LEFT | WH_DOWN | WH_RIGHT | _ | _ |
* |---------------------------------------------------------------------------------------------------------------------+
* | Shift | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ |
* |---------------------------------------------------------------------------------------------------------------------+
* | _ | _ | _ | _ | _ |
* `---------------------------------------------------------------------------------------------------------------------'
*/
[_MOUSEFN] = LAYOUT_hhkb(
______, KC_ACL0, KC_ACL1, KC_ACL2, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______,
______, ______, ______, ______, ______, ______, ______, ______, ______, KC_WH_U, ______, ______, ______, ______,
______, ______, ______, ______, ______, ______, ______, ______, KC_WH_L, KC_WH_D, KC_WH_R, ______, ______,
______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______,
______, ______, ______, ______, ______),
/* FN LAYER
*
* ,------------------------------------------------------------------------------------------------------
* | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |INSERT | _ |
* |------------------------------------------------------------------------------------------------------+
* | CAPS | _ | _ | _ | _ | _ | _ | _ | PRSC | SLOCK | PAUSE | UP | _ | DEL |
* |------------------------------------------------------------------------------------------------------+
* | CTRL | _ | VOLDOWN | VOLUP | VOLMUTE | _ | _ | _ | HOME | PGUP | LEFT | IGHT | _ |
* |------------------------------------------------------------------------------------------------------+
* | Shift | _ | _ | _ | _ | _ | _ | _ | END | PGDN | DOWN | _ | _ |
* |------------------------------------------------------------------------------------------------------+
* | _ | _ | _ | _ | _ |
* `------------------------------------------------------------------------------------------------------'
*/
[_FN] = LAYOUT_hhkb(
______, 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_CAPS, ______, ______, ______, ______, ______, ______, ______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, ______, KC_DEL,
______, KC_VOLD, KC_VOLU, KC_MUTE, ______, ______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, ______,
______, ______, KC_MPRV, KC_MPLY, KC_MNXT, ______, ______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, ______, ______,
______, ______, ______, ______, ______),
/* LIGHTS LAYER
*
* ,---------------------------------------------------------------------------------------------------------------------+
* | RGB_TOGGLE | STATIC | BREATHE | RAINBOW | SWIRL | SNAKE | KNIGHTRIDER | XMAS | STATIC_GRAD | _ | _ | _ | _ | _ | _ |
* |----------------------------------------------------------------------------------------------------------------------+
* | RBG_MOD | HUE_INC | SATURATION_INC | BRIGHT_INC | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ |
* |----------------------------------------------------------------------------------------------------------------------+
* | CTRL | HUE_DEC | SATURATION_DEC | BRIGHT_DEC | _ | _ | _ | _ | _ | _ | _ | _ | _ |
* |----------------------------------------------------------------------------------------------------------------------+
* | Shift | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ |
* |----------------------------------------------------------------------------------------------------------------------+
* | _ | _ | _ | _ | _ |
* `----------------------------------------------------------------------------------------------------------------------'
*/
[_LIGHTS] = LAYOUT_hhkb(
RGB_TOG, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, RGB_M_K, RGB_M_X, RGB_M_G, ______, ______, ______, ______, ______, ______,
RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______,
______, RGB_HUD, RGB_SAD, RGB_VAD, ______, ______, ______, ______, ______, ______, ______, ______, ______,
______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______,
______, ______, ______, ______, ______),
};
/*
RGB controls
Key -> Description
=========================
RGB_TOG -> Toggle RGB lighting on or off
RGB_MOD -> Cycle through modes, reverse direction when Shift is held
RGB_RMOD -> Cycle through modes in reverse, forward direction when Shift is held
RGB_HUI -> Increase hue
RGB_HUD -> Decrease hue
RGB_SAI -> Increase saturation
RGB_SAD -> Decrease saturation
RGB_VAI -> Increase value (brightness)
RGB_VAD -> Decrease value (brightness)
RGB_M_P -> Static (no animation) mode
RGB_M_B -> Breathing animation mode
RGB_M_R -> Rainbow animation mode
RGB_M_SW -> Swirl animation mode
RGB_M_SN -> Snake animation mode
RGB_M_K -> "Knight Rider" animation mode
RGB_M_X -> Christmas animation mode
RGB_M_G -> Static gradient animation mode
*/
/*
Mouse controls:
Key -> Aliases -> 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 -> Set mouse acceleration to 0
KC_MS_ACCEL1 -> KC_ACL1 -> Set mouse acceleration to 1
KC_MS_ACCEL2 -> KC_ACL2 -> Set mouse acceleration to 2
*/
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
switch (id) {
}
return MACRO_NONE;
}

View File

@@ -0,0 +1,61 @@
![DZ60 split spacebar layout image](https://i.imgur.com/EFF7pBN.png)
# weeheavy's DZ60 split spacebar layout
* 2u left shift
* arrow cluster
* split spacebar with a center key
## Layouts
The base layout is ANSI QWERTY.
Key sizes (ASCII keyboards below match this scale):
1u = 4 chars = | |
1.25u = 5 chars = | |
1.5u = 6 chars = | |
1.75u = 7 chars = | |
2u = 8 chars = | |
2.25u = 9 chars = | |
2.75u = 11 chars = | |
6.25u = 25 chars = | |
### Layer 0: Base layout
Specialities:
* Arrow cluster
* FN1: access to layer 1
* F2: access to layer 2
```
,----------------------------------------------------------.
|Es||1 ||2 ||3 ||4 ||5 ||6 ||7 ||8 ||9 ||0 ||- ||= || Bksp |
|----------------------------------------------------------+
|Tab ||Q ||W ||E ||R ||T ||Y ||U ||I ||O ||P ||[ ||] || \ |
|----------------------------------------------------------+
|Caps ||A ||S ||D ||F ||G ||H ||J ||K ||L ||; ||' || Enter |
|----------------------------------------------------------+
|Shift ||Z ||X ||C ||V ||B ||N ||M ||, ||. ||/ ||Sf||↑ ||Dl|
|----------------------------------------------------------+
|Ctl||Win||Alt|| Space ||FN1|| Space ||Al||F2||← ||↓ ||→ |
`----------------------------------------------------------'
```
### Layer 1: Utility
Specialities:
* F1-F12 keys when holding FN1
* Movement cluster on the right hand side
* Multimedia cluster on the bottom right
* RGB config on the left hand side
### Layer 2: Config and setup
Specialities:
* Reset key on ESC and backslash location
* Additional "B" key (a learning from my mistakes)

View File

@@ -0,0 +1,39 @@
#include "dz60.h"
// Make special keycodes more visible
#define ____ KC_TRNS
#define XXXX KC_NO
// Layer definition
#define L0 0
#define L1 1
#define L2 2
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// Base layer - ANSI QWERTY
[L0] = LAYOUT_2_shifts(
KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, XXXX, KC_BSPC,
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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
KC_LSFT, XXXX, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_DEL,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(L1), KC_SPC, KC_RALT, MO(L2), KC_LEFT, KC_DOWN, KC_RIGHT),
// Utility layer - RGB and multimedia control
[L1] = LAYOUT_2_shifts(
____, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ____, ____,
____, RGB_TOG, RGB_MOD, RGB_M_K, RGB_M_R, ____, ____, KC_PSCR, ____, KC_PAUS, ____, ____, ____, ____,
____, RGB_HUI, RGB_HUD, ____, ____, ____, ____, KC_INS, KC_HOME, KC_PGUP, ____, ____, ____,
____, ____, RGB_SAI, RGB_SAD, ____, ____, ____, ____, ____, KC_END, KC_PGDN, ____, KC_MPLY, KC_VOLU, KC_MUTE,
____, RGB_VAI, RGB_VAD, ____, ____, ____, ____, ____, KC_MPRV, KC_VOLD, KC_MNXT),
// Setup layer - Reset an additional "b" button
[L2] = LAYOUT_2_shifts(
RESET, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____,
KC_B, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, RESET,
____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____,
____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____,
____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____),
};

View File

@@ -0,0 +1,45 @@
/*
Copyright 2017 Danny Nguyen <danny@keeb.io>
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/>.
*/
#ifndef CONFIG_USER_H
#define CONFIG_USER_H
#include "config_common.h"
/* Use I2C or Serial, not both */
#define USE_SERIAL
// #define USE_I2C
/* Select hand configuration */
#define PERMISSIVE_HOLD
#define PREVENT_STUCK_MODIFIERS
#define MASTER_LEFT
// #define MASTER_RIGHT
// #define EE_HANDS
/*
#undef RGBLED_NUM
#define RGBLIGHT_ANIMATIONS
#define RGBLED_NUM 12
#define RGBLIGHT_HUE_STEP 8
#define RGBLIGHT_SAT_STEP 8
#define RGBLIGHT_VAL_STEP 8
*/
#define TAPPING_TERM 200
#include "../../config.h"
#endif

View File

@@ -0,0 +1,158 @@
#include "iris.h"
#include "action_layer.h"
#include "eeconfig.h"
extern keymap_config_t keymap_config;
//keycode shorthands
#define KC____ KC_TRNS
#define KC_SYM MO(3)
#define KC_MAC TO(0)
#define KC_PC TO(1)
#define KC_GM TO(2)
#define KC_NAV LT(4, KC_TAB)
#define KC_NAVPC LT(5, KC_TAB)
//text editor shortcuts for NAV and NAVPC
#define KC_AL LALT(KC_LEFT)
#define KC_AR LALT(KC_RGHT)
#define KC_CL LCTL(KC_LEFT)
#define KC_CR LCTL(KC_RGHT)
#define KC_A_BS LALT(KC_BSPC)
#define KC_C_BS LALT(KC_BSPC)
//internet browser tab shortcuts and window swapping for Mac and Windows
#define KC_GSL LGUI(S(KC_LEFT))
#define KC_GSR LGUI(S(KC_RGHT))
#define KC_CPGD LCTL(KC_PGDN)
#define KC_CPGU LCTL(KC_PGUP)
#define KC_CMBS GUI_T(KC_BSPC)
#define KC_CTBS CTL_T(KC_BSPC)
#define KC_C_TAB LCTL(KC_TAB)
#define KC_G_TAB LGUI(KC_TAB)
#define KC_A_TAB LALT(KC_TAB)
//layer shorthands
#define _COLEMAK 0
#define _PC 1
#define _GAME 2
#define _SYMBOL 3
#define _NAV 4
#define _NAVPC 5
enum {
// SFT_LCK //tapdance declarations
COLEMAK = 0,
PC,
GAME,
SYMBOL,
NAV, //Navigation layer for Mac Colemak
NAVPC, //Navigation layer for PC Colemak
SFT_LCK //tapdance declaration
};
#define KC_SFLK TD(SFT_LCK) // alias for tapdance
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_COLEMAK] = KC_KEYMAP(
//,----+----+----+----+----+----. ,----+----+----+----+----+----.
ESC , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,MINS,
//|----+----+----+----+----+----| |----+----+----+----+----+----|
GRV , Q , W , F , P , G , J , L , U , Y ,SCLN,BSPC,
//|----+----+----+----+----+----| |----+----+----+----+----+----|
NAV , A , R , S , T , D , H , N , E , I , O ,QUOT,
//|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----|
SFLK, Z , X , C , V , B , PC , ENT , K , M ,COMM, DOT,SLSH,RSFT,
//`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----'
LCTL,LGUI,CMBS, SPC, SYM, LALT
// `----+----+----' `----+----+----'
),
[_PC] = KC_KEYMAP(
___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ ,
___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ ,
NAVPC,___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ ,
___ , ___ , ___ , ___ , ___ , ___ , GM, ___, ___ , ___ , ___ , ___ , ___ , ___ ,
LGUI , LCTL , CTBS , ___ , ___ , ___
),
[_GAME] = KC_KEYMAP(
___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ ,
___ , T , Q , W , E , R , ___ , ___ , ___ , ___ , ___ , ___ ,
TAB , LSFT, A , S , D , F , ___ , ___ , ___ , ___ , ___ , ___ ,
I , LCTL, Z , X , C , V , M, P , ___, ___ , ___ , ___ , ___ , ___ ,
LALT , LALT , SPC, BSPC, MAC, ___
),
[_SYMBOL] = KC_KEYMAP(
___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ ,
LBRC, 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 , RBRC,
BSLS, EXLM, AT , HASH, DLR , PERC, CIRC, AMPR, ASTR, LPRN, RPRN, EQL ,
___ , HOME, END , VOLD, VOLU, MPLY,___, ___,___, MINS, ___ , ___ , ___ , ___ ,
___ , ___ , A_BS, ___, ___ , ___
),
[_NAV] = KC_KEYMAP(
___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ ,
___ , ___ , ___ , ___ , ___ , ___ , C_TAB, AL , UP , AR , DEL , ___ ,
___ , ___ , ___ , ___ , ___ , ___ , GSL , LEFT, DOWN, RGHT, GSR , ___ ,
___ , ___ , ___ , ___ , ___ , ___ ,___, ___,G_TAB, ___ , ___ , ___ , ___ , ___ ,
___ , ___ , ___ , ___ , ___ , ___
),
[_NAVPC] = KC_KEYMAP(
___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ ,
___ , ___ , ___ , ___ , ___ , ___ , C_TAB, CL , UP , CR , DEL , ___ ,
___ , ___ , ___ , ___ , ___ , ___ , CPGU, LEFT, DOWN, RGHT, CPGD, ___ ,
___ , ___ , ___ , ___ , ___ , ___ ,___, ___,A_TAB, ___ , ___ , ___ , ___ , ___ ,
___ , ___ , ___ , ___ , ___ , ___
),
};
// Shift vs. capslock function. From bbaserdem's Planck keymap.
void caps_tap (qk_tap_dance_state_t *state, void *user_data) {
if (state->count == 1) {
register_code (KC_LSFT);
} else if (state->count == 2) {
unregister_code (KC_LSFT);
register_code (KC_CAPS);
}
}
void caps_tap_end (qk_tap_dance_state_t *state, void *user_data) {
if (state->count == 1) {
unregister_code (KC_LSFT);
} else {
unregister_code (KC_CAPS);
}
}
qk_tap_dance_action_t tap_dance_actions[] = {
//Tap once for Shift, twice for Caps Lock
[SFT_LCK] = ACTION_TAP_DANCE_FN_ADVANCED( caps_tap, NULL, caps_tap_end)
};

View File

@@ -0,0 +1,3 @@
# Colemak layout for Iris rev2.1 with Mac and Windows layers and a Gaming Layer.
# Symbol layer is based on my Planck layout, so it provides numbers, symbols, and volume controls.
# Two Navigation layers, for Mac and Windows Colemak layers respectively.

View File

@@ -0,0 +1,7 @@
RGBLIGHT_ENABLE = no
BACKLIGHT_ENABLE = no
TAP_DANCE_ENABLE = yes
ifndef QUANTUM_DIR
include ../../../../Makefile
endif

View File

@@ -0,0 +1,45 @@
/*
Copyright 2017 Danny Nguyen <danny@keeb.io>
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/>.
*/
#ifndef CONFIG_USER_H
#define CONFIG_USER_H
#include "config_common.h"
/* Use I2C or Serial, not both */
#define USE_SERIAL
// #define USE_I2C
/* Select hand configuration */
#define PERMISSIVE_HOLD
#define PREVENT_STUCK_MODIFIERS
#define MASTER_LEFT
// #define MASTER_RIGHT
// #define EE_HANDS
/*
#undef RGBLED_NUM
#define RGBLIGHT_ANIMATIONS
#define RGBLED_NUM 12
#define RGBLIGHT_HUE_STEP 8
#define RGBLIGHT_SAT_STEP 8
#define RGBLIGHT_VAL_STEP 8
*/
#define TAPPING_TERM 200
#include "../../config.h"
#endif

View File

@@ -0,0 +1,158 @@
#include "iris.h"
#include "action_layer.h"
#include "eeconfig.h"
extern keymap_config_t keymap_config;
//keycode shorthands
#define KC____ KC_TRNS
#define KC_SYM MO(3)
#define KC_MAC TO(0)
#define KC_PC TO(1)
#define KC_GM TO(2)
#define KC_NAV LT(4, KC_TAB)
#define KC_NAVPC LT(5, KC_TAB)
//text editor shortcuts for NAV and NAVPC
#define KC_AL LALT(KC_LEFT)
#define KC_AR LALT(KC_RGHT)
#define KC_CL LCTL(KC_LEFT)
#define KC_CR LCTL(KC_RGHT)
#define KC_A_BS LALT(KC_BSPC)
#define KC_C_BS LALT(KC_BSPC)
//internet browser tab shortcuts and window swapping for Mac and Windows
#define KC_GSL LGUI(S(KC_LEFT))
#define KC_GSR LGUI(S(KC_RGHT))
#define KC_CPGD LCTL(KC_PGDN)
#define KC_CPGU LCTL(KC_PGUP)
#define KC_CMBS GUI_T(KC_BSPC)
#define KC_CTBS CTL_T(KC_BSPC)
#define KC_C_TAB LCTL(KC_TAB)
#define KC_G_TAB LGUI(KC_TAB)
#define KC_A_TAB LALT(KC_TAB)
//layer shorthands
#define _COLEMAK 0
#define _PC 1
#define _GAME 2
#define _SYMBOL 3
#define _NAV 4
#define _NAVPC 5
enum {
// SFT_LCK //tapdance declarations
COLEMAK = 0,
PC,
GAME,
SYMBOL,
NAV, //Navigation layer for Mac Colemak
NAVPC, //Navigation layer for PC Colemak
SFT_LCK //tapdance declaration
};
#define KC_SFLK TD(SFT_LCK) // alias for tapdance
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_COLEMAK] = KC_KEYMAP(
//,----+----+----+----+----+----. ,----+----+----+----+----+----.
ESC , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,MINS,
//|----+----+----+----+----+----| |----+----+----+----+----+----|
GRV , Q , W , F , P , G , J , L , U , Y ,SCLN,BSPC,
//|----+----+----+----+----+----| |----+----+----+----+----+----|
NAV , A , R , S , T , D , H , N , E , I , O ,QUOT,
//|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----|
SFLK, Z , X , C , V , B , PC , ENT , K , M ,COMM, DOT,SLSH,RSFT,
//`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----'
LCTL,LGUI,CMBS, SPC, SYM, LALT
// `----+----+----' `----+----+----'
),
[_PC] = KC_KEYMAP(
___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ ,
___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ ,
NAVPC,___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ ,
___ , ___ , ___ , ___ , ___ , ___ , GM, ___, ___ , ___ , ___ , ___ , ___ , ___ ,
LGUI , LCTL , CTBS , ___ , ___ , ___
),
[_GAME] = KC_KEYMAP(
___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ ,
___ , T , Q , W , E , R , ___ , ___ , ___ , ___ , ___ , ___ ,
TAB , LSFT, A , S , D , F , ___ , ___ , ___ , ___ , ___ , ___ ,
I , LCTL, Z , X , C , V , M, P , ___, ___ , ___ , ___ , ___ , ___ ,
LALT , LALT , SPC, BSPC, MAC, ___
),
[_SYMBOL] = KC_KEYMAP(
___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ ,
LBRC, 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 , RBRC,
BSLS, EXLM, AT , HASH, DLR , PERC, CIRC, AMPR, ASTR, LPRN, RPRN, EQL ,
___ , HOME, END , VOLD, VOLU, MPLY,___, ___,___, MINS, ___ , ___ , ___ , ___ ,
___ , ___ , A_BS, ___, ___ , ___
),
[_NAV] = KC_KEYMAP(
___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ ,
___ , ___ , ___ , ___ , ___ , ___ , C_TAB, AL , UP , AR , DEL , ___ ,
___ , ___ , ___ , ___ , ___ , ___ , GSL , LEFT, DOWN, RGHT, GSR , ___ ,
___ , ___ , ___ , ___ , ___ , ___ ,___, ___,G_TAB, ___ , ___ , ___ , ___ , ___ ,
___ , ___ , ___ , ___ , ___ , ___
),
[_NAVPC] = KC_KEYMAP(
___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ ,
___ , ___ , ___ , ___ , ___ , ___ , C_TAB, CL , UP , CR , DEL , ___ ,
___ , ___ , ___ , ___ , ___ , ___ , CPGU, LEFT, DOWN, RGHT, CPGD, ___ ,
___ , ___ , ___ , ___ , ___ , ___ ,___, ___,A_TAB, ___ , ___ , ___ , ___ , ___ ,
___ , ___ , ___ , ___ , ___ , ___
),
};
// Shift vs. capslock function. From bbaserdem's Planck keymap.
void caps_tap (qk_tap_dance_state_t *state, void *user_data) {
if (state->count == 1) {
register_code (KC_LSFT);
} else if (state->count == 2) {
unregister_code (KC_LSFT);
register_code (KC_CAPS);
}
}
void caps_tap_end (qk_tap_dance_state_t *state, void *user_data) {
if (state->count == 1) {
unregister_code (KC_LSFT);
} else {
unregister_code (KC_CAPS);
}
}
qk_tap_dance_action_t tap_dance_actions[] = {
//Tap once for Shift, twice for Caps Lock
[SFT_LCK] = ACTION_TAP_DANCE_FN_ADVANCED( caps_tap, NULL, caps_tap_end)
};

View File

@@ -0,0 +1,3 @@
# Colemak layout for Iris rev2.1 with Mac and Windows layers and a Gaming Layer.
# Symbol layer is based on my Planck layout, so it provides numbers, symbols, and volume controls.
# Two Navigation layers, for Mac and Windows Colemak layers respectively.

View File

@@ -0,0 +1,7 @@
RGBLIGHT_ENABLE = no
BACKLIGHT_ENABLE = no
TAP_DANCE_ENABLE = yes
ifndef QUANTUM_DIR
include ../../../../Makefile
endif

View File

@@ -15,7 +15,7 @@ enum jj40_layers {
_FUNC,
_MFNC,
_ADJUST,
_DYN
_MOUSE
};
enum jj40_keycodes {
@@ -27,6 +27,7 @@ enum jj40_keycodes {
MLWR,
RAISE,
MRSE,
MOUSE,
DYNAMIC_MACRO_RANGE
};
@@ -64,14 +65,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | Shift| \| | `¬ | #~ | * | -_ | =+ | \| | [{ | ]} | '@ |Shift |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Raise | MENU | Alt | Ctrl | Fn |
* | Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Mouse | MENU | Alt | Ctrl | Fn |
* `-----------------------------------------------------------------------------------'
*/
[_FUNC] = KEYMAP(\
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_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, UK_TILD, KC_INSERT ,\
KC_LSHIFT, KC_NONUS_BSLASH, KC_GRAVE, KC_NONUS_HASH, KC_PAST, KC_MINS, KC_EQL, KC_BSLASH, KC_LBRC, KC_RBRC, KC_QUOT, MT(MOD_RSFT, KC_ENT) ,\
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
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_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, UK_TILD, KC_INSERT ,\
KC_LSHIFT, KC_NONUS_BSLASH, KC_GRAVE, KC_NONUS_HASH, KC_PAST, KC_MINS, KC_EQL, KC_BSLASH, KC_LBRC, KC_RBRC, KC_QUOT, MT(MOD_RSFT, KC_ENT) ,\
_______, _______, _______, _______, _______, _______, _______, MO(_MOUSE), _______, _______, _______, _______ \
),
/* Lower
@@ -100,51 +101,50 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | | | | { | } | | |< | LEFT | DOWN |RIGHT | >| |ZOOM -|
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | | | | | | Alt | Enter|Raise | | | | |
* | Mouse| | | | | Alt | Enter|Raise | | | | |
* `-----------------------------------------------------------------------------------'
*/
[_RAISE] = KEYMAP(\
KC_GRV, XXXXXXX, M(1), KC_LBRC, KC_RBRC, XXXXXXX, XXXXXXX, KC_PGUP, KC_HOME, KC_PGDOWN, XXXXXXX, KC_PSCREEN ,\
KC_GRV, XXXXXXX, XXXXXXX, LSFT(KC_9), LSFT(KC_0), XXXXXXX, XXXXXXX, KC_HOME, KC_UP, KC_END, XXXXXXX, LCTL(LSFT(KC_EQL)) ,\
_______, XXXXXXX, XXXXXXX, LSFT(KC_LBRC), LSFT(KC_RBRC), XXXXXXX, LCTL(KC_LEFT), KC_LEFT, KC_DOWN, KC_RIGHT, LCTL(KC_RIGHT), LCTL(KC_MINS) ,\
_______, _______, _______, _______, _______, KC_LALT, KC_ENT, _______, XXXXXXX, _______, _______, _______ \
KC_GRV, XXXXXXX, M(1), KC_LBRC, KC_RBRC, XXXXXXX, XXXXXXX, KC_PGUP, KC_HOME, KC_PGDOWN, XXXXXXX, KC_PSCREEN ,\
KC_GRV, XXXXXXX, XXXXXXX, LSFT(KC_9), LSFT(KC_0), XXXXXXX, XXXXXXX, KC_HOME, KC_UP, KC_END, XXXXXXX, LCTL(LSFT(KC_EQL)) ,\
_______, XXXXXXX, XXXXXXX, LSFT(KC_LBRC), LSFT(KC_RBRC), XXXXXXX, LCTL(KC_LEFT), KC_LEFT, KC_DOWN, KC_RIGHT, LCTL(KC_RIGHT), LCTL(KC_MINS) ,\
MO(_MOUSE), _______, _______, _______, _______, KC_LALT, KC_ENT, _______, XXXXXXX, _______, _______, _______ \
),
/* Adjust (Lower + Raise)
* ,-----------------------------------------------------------------------------------.
* | ???? | Reset|Qwerty| | | | | | | | | Del |
* | ???? | Reset|Qwerty| | | REC1 | REC2 | | | | | Del |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | CAPS | | | | | | | Mute | Vol+ | Play | | |
* | CAPS | | | | | PLAY1| PLAY2| Mute | Vol+ | Play | | |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | | | | | | | | Prev | Vol- | Next | | |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | | | | DYN | | | |
* `-----------------------------------------------------------------------------------'
*/
[_ADJUST] = KEYMAP(\
M(0), RESET, QWERTY, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL ,\
KC_CAPS, _______, _______, _______, _______, _______, _______, KC_AUDIO_MUTE, KC_AUDIO_VOL_UP, KC_MEDIA_PLAY_PAUSE, _______, _______ ,\
TG(_MAC), _______, _______, _______, _______, _______, _______, KC_MEDIA_PREV_TRACK, KC_AUDIO_VOL_DOWN, KC_MEDIA_NEXT_TRACK, _______, _______ ,\
_______, _______, _______, _______, _______, _______, _______, _______, MO(_DYN), _______, _______, _______ \
),
/* DYN: Macro Recording and Playback
* ,-----------------------------------------------------------------------------------.
* | | | | | | REC1 | REC2 | | | | | |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | | | | | | PLAY1| PLAY2| | | | | |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | | | | | | STOP | STOP | | | | | |
* | | | | | | STOP | STOP | Prev | Vol- | Next | | |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | | | | | | | |
* `-----------------------------------------------------------------------------------'
*/
[_DYN]= KEYMAP(\
_______, _______, _______, _______, _______, DYN_REC_START1, DYN_REC_START2, _______, _______, _______, _______, _______,\
_______, _______, _______, _______, _______, DYN_MACRO_PLAY1, DYN_MACRO_PLAY2, _______, _______, _______, _______, _______,\
_______, _______, _______, _______, _______, DYN_REC_STOP, DYN_REC_STOP, _______, _______, _______, _______, _______,\
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______\
[_ADJUST] = KEYMAP(\
M(0), RESET, QWERTY, _______, _______, DYN_REC_START1, DYN_REC_START2, _______, _______, _______, _______, KC_DEL ,\
KC_CAPS, _______, _______, _______, _______, DYN_MACRO_PLAY1, DYN_MACRO_PLAY2, KC_AUDIO_MUTE, KC_AUDIO_VOL_UP, KC_MEDIA_PLAY_PAUSE, _______, _______ ,\
TG(_MAC), _______, _______, _______, _______, DYN_REC_STOP, DYN_REC_STOP, KC_MEDIA_PREV_TRACK, KC_AUDIO_VOL_DOWN, KC_MEDIA_NEXT_TRACK, _______, _______ ,\
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
),
/* Mouse
* ,-----------------------------------------------------------------------------------.
* | ESC | | | | | | | | | | | |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | ACC0 | ACC1 | ACC2 | | | | | BTN1 | UP | BTN2 | | |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | ACC0 | ACC1 | ACC2 | | | | | LEFT | DOWN |RIGHT | | |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | | | | | | | | | | | | |
* `-----------------------------------------------------------------------------------'
*/
[_MOUSE] = KEYMAP(\
KC_ESC , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,\
KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, _______, _______, _______, _______, KC_MS_BTN1, KC_MS_UP, KC_MS_BTN2, _______, _______,\
KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, _______, _______, _______, _______, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, _______, _______,\
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______\
),
[_MAC]= KEYMAP(\
@@ -247,32 +247,22 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
return true;
}
const macro_t *action_get_macro(keyrecord_t *record, uint8_t keycode, uint8_t opt) {
// These would trigger when you hit a key mapped as M(0)
if (record->event.pressed) {
switch(keycode) {
case 0: // Some custom string here
SEND_STRING("");
return false;
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
switch(id) {
// These would trigger when you hit a key mapped as M(0)
case 0:
if (record->event.pressed) {
return MACRO(
// SENSITIVE
END
);
}
break;
case 1: // Word Select
if (record->event.pressed) {
return MACRO(
DOWN(KC_LCTL), DOWN(KC_RIGHT), UP(KC_RIGHT), DOWN(KC_LSFT), DOWN(KC_LEFT), UP(KC_LEFT), UP(KC_LSFT), UP(KC_LCTL),
END
);
}
case 2: // Word Select - MAC
if (record->event.pressed) {
return MACRO(
DOWN(KC_LALT), DOWN(KC_RIGHT), UP(KC_RIGHT), DOWN(KC_LSFT), DOWN(KC_LEFT), UP(KC_LEFT), UP(KC_LSFT), UP(KC_LALT),
END
);
}
case 1: // Word Select
SEND_STRING(SS_DOWN(X_LCTRL) SS_TAP(X_RIGHT) SS_DOWN(X_LSHIFT) SS_TAP(X_LEFT) SS_UP(X_LSHIFT) SS_UP(X_LCTRL));
return false;
case 2: // Word Select Mac
SEND_STRING(SS_DOWN(X_LALT) SS_TAP(X_RIGHT) SS_DOWN(X_LSHIFT) SS_TAP(X_LEFT) SS_UP(X_LSHIFT) SS_UP(X_LALT));
return false;
}
}
return MACRO_NONE;
};

View File

@@ -27,7 +27,7 @@ Activated when `fn` held in the above `qwerty` layer.
| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
| 1! | 2" | 3£ | 4$ | 5% | 6^ | 7& | 8* | 9( | 0) | ~ |INSERT|
| Shift | \| | `¬ | #~ | * | -_ | =+ | \| | [{ | ]} | '@ |Shift |
| Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Raise | MENU | Alt | Ctrl | Fn |
| Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Mouse | MENU | Alt | Ctrl | Fn |
##### Lower Layer
Activated when `Lower` is held in the above `qwerty` layer.
@@ -56,38 +56,37 @@ Activated when `Lower` is held in the above `qwerty` layer.
| ` | |WRDSEL| [ | ] | | | PGUP | HOME |PGDOWN| |PRNTSC|
| ` | | | ( | ) | | | HOME | UP | END | |ZOOM +|
| | | | { | } | |&#124;<| LEFT | DOWN |RIGHT |>&#124;|ZOOM -|
| | | | | | Alt | Enter |Raise | | | | |
| Mouse | | | | | Alt | Enter |Raise | | | | |
##### Lower + Raise
Activated when `Lower` and `Raise` are held together the above `qwerty` layer.
Activated when `Lower` and `Raise` are held together in the above `qwerty` layer.
* Audio controls in the same position as cursor keys from the `Raise` layer.
* ????: Runs a macro for outputting a text string. Do not use this store passwords.
* Reset: Enter bootloader for flashing firmware to the keyboard.
* CAPS: Toggle caps lock.
* DYN: Enter `DYN` layer.
* MAC: Toggle MAC OS extensions to layers. This allows MLWR to be enabled with LOWER,
MRSE with RAISE and MFNC with FUNC respectively.
* REC1, REC2: Start recording macro.
* PLAY1, PLAY2: Playback macro.
* STOP1, STOP2: Stop recording macro.
| | | | | | | | | | | | |
| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
| ???? | Reset|Qwerty| | | | | | | | | Del |
| CAPS | | | | | | | Mute | Vol+ | Play | | |
| MAC | | | | | | | Prev | Vol- | Next | | |
| | | | | | | | | DYN | | | |
##### DYN
Activated when `DYN` held along with `Lower` and `Raise`
Allows recording of macros. To start recording the macro, press either REC1 or REC2.
To finish the recording, press STOP. To replay the macro, press either PLAY1 or PLAY2.
| | | | | | | | | | | | |
| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
| | | | | | REC1 | REC2 | | | | | |
| | | | | | PLAY1| PLAY2| | | | | |
| | | | | | STOP | STOP | | | | | |
| ???? | Reset|Qwerty| | | REC1 | REC2 | | | | | Del |
| CAPS | | | | | PLAY1| PLAY | Mute | Vol+ | Play | | |
| MAC | | | | | STOP | STOP | Prev | Vol- | Next | | |
| | | | | | | | | | | | |
##### Mouse
Activated when `fn` and `Raise` are held together.
| | | | | | | | | | | | |
| :---: |:----:| :---:| :---:| :---:| :---:| :---: | :---:| :---:| :---:| :---: | :---:|
| | | | | | | | | | | | |
| ACC0 | ACC1 | ACC2 | | | | | BTN1 | UP | BTN2 | | |
| ACC0 | ACC1 | ACC2 | | | | | LEFT | DOWN |RIGHT | | |
| | | | | | | | | | | | |
####Manual Flashing of hex file
`bootloadHID -r .build/jj40_ajp10304.hex`

View File

@@ -2,4 +2,5 @@ ifndef QUANTUM_DIR
include ../../../../Makefile
endif
AUDIO_ENABLE = no
AUDIO_ENABLE = no
MOUSEKEY_ENABLE = yes

View File

@@ -15,7 +15,7 @@ enum planck_layers {
_FUNC,
_MFNC,
_ADJUST,
_DYN
_MOUSE
};
enum planck_keycodes {
@@ -27,6 +27,7 @@ enum planck_keycodes {
MLWR,
RAISE,
MRSE,
MOUSE,
DYNAMIC_MACRO_RANGE
};
@@ -64,14 +65,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | Shift| \| | `¬ | #~ | * | -_ | =+ | \| | [{ | ]} | '@ |Shift |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Raise | MENU | Alt | Ctrl | Fn |
* | Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Mouse | MENU | Alt | Ctrl | Fn |
* `-----------------------------------------------------------------------------------'
*/
[_FUNC] = {
{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_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, UK_TILD, KC_INSERT },
{KC_LSHIFT, KC_NONUS_BSLASH, KC_GRAVE, KC_NONUS_HASH, KC_PAST, KC_MINS, KC_EQL, KC_BSLASH, KC_LBRC, KC_RBRC, KC_QUOT, MT(MOD_RSFT, KC_ENT) },
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }
{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_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, UK_TILD, KC_INSERT },
{KC_LSHIFT, KC_NONUS_BSLASH, KC_GRAVE, KC_NONUS_HASH, KC_PAST, KC_MINS, KC_EQL, KC_BSLASH, KC_LBRC, KC_RBRC, KC_QUOT, MT(MOD_RSFT, KC_ENT) },
{_______, _______, _______, _______, _______, _______, _______, MO(_MOUSE), _______, _______, _______, _______ }
},
/* Lower
@@ -100,53 +101,51 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | | | | { | } | | |< | LEFT | DOWN |RIGHT | >| |ZOOM -|
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | | | | | | Alt | Enter|Raise | | | | |
* | Mouse| | | | | Alt | Enter|Raise | | | | |
* `-----------------------------------------------------------------------------------'
*/
[_RAISE] = {
{KC_GRV, XXXXXXX, M(1), KC_LBRC, KC_RBRC, XXXXXXX, XXXXXXX, KC_PGUP, KC_HOME, KC_PGDOWN, XXXXXXX, KC_PSCREEN },
{KC_GRV, XXXXXXX, XXXXXXX, LSFT(KC_9), LSFT(KC_0), XXXXXXX, XXXXXXX, KC_HOME, KC_UP, KC_END, XXXXXXX, LCTL(LSFT(KC_EQL)) },
{_______, XXXXXXX, XXXXXXX, LSFT(KC_LBRC), LSFT(KC_RBRC), XXXXXXX, LCTL(KC_LEFT), KC_LEFT, KC_DOWN, KC_RIGHT, LCTL(KC_RIGHT), LCTL(KC_MINS) },
{_______, _______, _______, _______, _______, KC_LALT, KC_ENT, _______, XXXXXXX, _______, _______, _______ }
{KC_GRV, XXXXXXX, M(1), KC_LBRC, KC_RBRC, XXXXXXX, XXXXXXX, KC_PGUP, KC_HOME, KC_PGDOWN, XXXXXXX, KC_PSCREEN },
{KC_GRV, XXXXXXX, XXXXXXX, LSFT(KC_9), LSFT(KC_0), XXXXXXX, XXXXXXX, KC_HOME, KC_UP, KC_END, XXXXXXX, LCTL(LSFT(KC_EQL)) },
{_______, XXXXXXX, XXXXXXX, LSFT(KC_LBRC), LSFT(KC_RBRC), XXXXXXX, LCTL(KC_LEFT), KC_LEFT, KC_DOWN, KC_RIGHT, LCTL(KC_RIGHT), LCTL(KC_MINS) },
{MO(_MOUSE), _______, _______, _______, _______, KC_LALT, KC_ENT, _______, XXXXXXX, _______, _______, _______ }
},
/* Adjust (Lower + Raise)
* ,-----------------------------------------------------------------------------------.
* | ???? | Reset|Qwerty| | | | | | | | | Del |
* | ???? | Reset|Qwerty| | | REC1 | REC2 | | | | | Del |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | CAPS | | | | | | | Mute | Vol+ | Play | | |
* | CAPS | | | | | PLAY1| PLAY2| Mute | Vol+ | Play | | |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | | | | | | | | Prev | Vol- | Next | | |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | | | | DYN | | | |
* `-----------------------------------------------------------------------------------'
*/
[_ADJUST] = {
{M(0), RESET, QWERTY, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL },
{KC_CAPS, _______, _______, _______, _______, _______, _______, KC_AUDIO_MUTE, KC_AUDIO_VOL_UP, KC_MEDIA_PLAY_PAUSE, _______, _______ },
{TG(_MAC), _______, _______, _______, _______, _______, _______, KC_MEDIA_PREV_TRACK, KC_AUDIO_VOL_DOWN, KC_MEDIA_NEXT_TRACK, _______, _______ },
{_______, _______, _______, _______, _______, _______, _______, _______, MO(_DYN), _______, _______, _______ }
},
/* DYN: Macro Recording and Playback
* ,-----------------------------------------------------------------------------------.
* | | | | | | REC1 | REC2 | | | | | |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | | | | | | PLAY1| PLAY2| | | | | |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | | | | | | STOP | STOP | | | | | |
* | | | | | | STOP | STOP | Prev | Vol- | Next | | |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | | | | | | | |
* `-----------------------------------------------------------------------------------'
*/
[_DYN]= {
{_______, _______, _______, _______, _______, DYN_REC_START1, DYN_REC_START2, _______, _______, _______, _______, _______},
{_______, _______, _______, _______, _______, DYN_MACRO_PLAY1, DYN_MACRO_PLAY2, _______, _______, _______, _______, _______},
{_______, _______, _______, _______, _______, DYN_REC_STOP, DYN_REC_STOP, _______, _______, _______, _______, _______},
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
[_ADJUST] = {
{M(0), RESET, QWERTY, _______, _______, DYN_REC_START1, DYN_REC_START2, _______, _______, _______, _______, KC_DEL },
{KC_CAPS, _______, _______, _______, _______, DYN_MACRO_PLAY1, DYN_MACRO_PLAY2, KC_AUDIO_MUTE, KC_AUDIO_VOL_UP, KC_MEDIA_PLAY_PAUSE, _______, _______ },
{TG(_MAC), _______, _______, _______, _______, DYN_REC_STOP, DYN_REC_STOP, KC_MEDIA_PREV_TRACK, KC_AUDIO_VOL_DOWN, KC_MEDIA_NEXT_TRACK, _______, _______ },
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }
},
/* Mouse
* ,-----------------------------------------------------------------------------------.
* | ESC | | | | | | | | | | | |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | ACC0 | ACC1 | ACC2 | | | | | BTN1 | UP | BTN2 | | |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | ACC0 | ACC1 | ACC2 | | | | | LEFT | DOWN |RIGHT | | |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | | | | | | | | | | | | |
* `-----------------------------------------------------------------------------------'
*/
[_MOUSE] = {
{KC_ESC , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
{KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, _______, _______, _______, _______, KC_MS_BTN1, KC_MS_UP, KC_MS_BTN2, _______, _______ },
{KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, _______, _______, _______, _______, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, _______, _______ },
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }
},
[_MAC]= {
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
@@ -248,32 +247,22 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
return true;
}
const macro_t *action_get_macro(keyrecord_t *record, uint8_t keycode, uint8_t opt) {
// These would trigger when you hit a key mapped as M(0)
if (record->event.pressed) {
switch(keycode) {
case 0: // Some custom string here
SEND_STRING("");
return false;
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
switch(id) {
// These would trigger when you hit a key mapped as M(0)
case 0:
if (record->event.pressed) {
return MACRO(
// SENSITIVE
END
);
}
break;
case 1: // Word Select
if (record->event.pressed) {
return MACRO(
DOWN(KC_LCTL), DOWN(KC_RIGHT), UP(KC_RIGHT), DOWN(KC_LSFT), DOWN(KC_LEFT), UP(KC_LEFT), UP(KC_LSFT), UP(KC_LCTL),
END
);
}
case 2: // Word Select - MAC
if (record->event.pressed) {
return MACRO(
DOWN(KC_LALT), DOWN(KC_RIGHT), UP(KC_RIGHT), DOWN(KC_LSFT), DOWN(KC_LEFT), UP(KC_LEFT), UP(KC_LSFT), UP(KC_LALT),
END
);
}
case 1: // Word Select
SEND_STRING(SS_DOWN(X_LCTRL) SS_TAP(X_RIGHT) SS_DOWN(X_LSHIFT) SS_TAP(X_LEFT) SS_UP(X_LSHIFT) SS_UP(X_LCTRL));
return false;
case 2: // Word Select Mac
SEND_STRING(SS_DOWN(X_LALT) SS_TAP(X_RIGHT) SS_DOWN(X_LSHIFT) SS_TAP(X_LEFT) SS_UP(X_LSHIFT) SS_UP(X_LALT));
return false;
}
}
return MACRO_NONE;
};

View File

@@ -1,11 +1,12 @@
# AJP10304 Custom Planck Layout
# Also available for the JJ40
**Note:** In the tables below where there are two characters on a key,
**Note:** In the tables below where there are two characters on a key,
the second is the output when shift is applied.
**Note:** The below tables assume a UK layout.
##### Main Qwerty Layer
##### Main Qwerty Layer
* Tab: when held, operates as shift.
* Enter: when held, operates as shift.
@@ -26,13 +27,13 @@ Activated when `fn` held in the above `qwerty` layer.
| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
| 1! | 2" | 3£ | 4$ | 5% | 6^ | 7& | 8* | 9( | 0) | ~ |INSERT|
| Shift | \| | `¬ | #~ | * | -_ | =+ | \| | [{ | ]} | '@ |Shift |
| Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Raise | MENU | Alt | Ctrl | Fn |
| Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Mouse | MENU | Alt | Ctrl | Fn |
##### Lower Layer
Activated when `Lower` is held in the above `qwerty` layer.
* Numbers are along the top row, their shifted counterparts are on row 2.
* WrdBks: `backspace` with `ctrl` applied. I.e. delete a word.
* WrdBks: `backspace` with `ctrl` applied. I.e. delete a word.
* WrdDel: `delete` with `ctrl` applied. I.e. forward delete a word.
| | | | | | | | | | | | |
@@ -41,48 +42,48 @@ Activated when `Lower` is held in the above `qwerty` layer.
| ! | " | £ | $ | % | ^ | & | * | ( | ) |WrdDel|WrdBks|
| Shift | \| | `¬ | #~ | '@ | -_ | =+ | #~ | [{ | ]} | '@ |Shift |
| | | | |Lower | Del |Space | | Next | Vol- | Vol+ | Play |
##### Raise Layer
Activated when `Raise` is held in the above `qwerty` layer.
* Preferred layer for typing brackets.
* Allows for cursor navigation to be used solely with the right hand.
* WRDSEL: Select the word where the cursor is.
* |< and >|: Apply `ctrl` to `left` and `right` respectively for word jumping.
| | | | | | | | | | | | |
| :---: |:----:| :---:| :---:| :---:| :---:| :---: | :---:| :---:| :---:| :---: | :---:|
| | | | | | | | | | | | |
| :---: |:----:| :---:| :---:| :---:| :---:| :---: | :---:| :---:| :---:| :---: | :---:|
| ` | |WRDSEL| [ | ] | | | PGUP | HOME |PGDOWN| |PRNTSC|
| ` | | | ( | ) | | | HOME | UP | END | |ZOOM +|
| | | | { | } | |&#124;<| LEFT | DOWN |RIGHT |>&#124;|ZOOM -|
| | | | | | Alt | Enter |Raise | | | | |
##### Lower + Raise
Activated when `Lower` and `Raise` are held together the above `qwerty` layer.
| Mouse | | | | | Alt | Enter |Raise | | | | |
* Audio controls in the same position as cursor keys from the `Raise` layer.
##### Lower + Raise
Activated when `Lower` and `Raise` are held together in the above `qwerty` layer.
* Audio controls in the same position as cursor keys from the `Raise` layer.
* ????: Runs a macro for outputting a text string. Do not use this store passwords.
* Reset: Enter bootloader for flashing firmware to the keyboard.
* CAPS: Toggle caps lock.
* DYN: Enter `DYN` layer.
* MAC: Toggle MAC OS extensions to layers. This allows MLWR to be enabled with LOWER,
* MAC: Toggle MAC OS extensions to layers. This allows MLWR to be enabled with LOWER,
MRSE with RAISE and MFNC with FUNC respectively.
* REC1, REC2: Start recording macro.
* PLAY1, PLAY2: Playback macro.
* STOP1, STOP2: Stop recording macro.
| | | | | | | | | | | | |
| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
| ???? | Reset|Qwerty| | | | | | | | | Del |
| CAPS | | | | | | | Mute | Vol+ | Play | | |
| MAC | | | | | | | Prev | Vol- | Next | | |
| | | | | | | | | DYN | | | |
##### DYN
Activated when `DYN` held along with `Lower` and `Raise`
Allows recording of macros. To start recording the macro, press either REC1 or REC2.
To finish the recording, press STOP. To replay the macro, press either PLAY1 or PLAY2.
| | | | | | | | | | | | |
| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
| | | | | | REC1 | REC2 | | | | | |
| | | | | | PLAY1| PLAY2| | | | | |
| | | | | | STOP | STOP | | | | | |
| | | | | | | | | | | | |
| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
| ???? | Reset|Qwerty| | | REC1 | REC2 | | | | | Del |
| CAPS | | | | | PLAY1| PLAY | Mute | Vol+ | Play | | |
| MAC | | | | | STOP | STOP | Prev | Vol- | Next | | |
| | | | | | | | | | | | |
##### Mouse
Activated when `fn` and `Raise` are held together.
| | | | | | | | | | | | |
| :---: |:----:| :---:| :---:| :---:| :---:| :---: | :---:| :---:| :---:| :---: | :---:|
| | | | | | | | | | | | |
| ACC0 | ACC1 | ACC2 | | | | | BTN1 | UP | BTN2 | | |
| ACC0 | ACC1 | ACC2 | | | | | LEFT | DOWN |RIGHT | | |
| | | | | | | | | | | | |

View File

@@ -2,4 +2,5 @@ ifndef QUANTUM_DIR
include ../../../../Makefile
endif
AUDIO_ENABLE = no
AUDIO_ENABLE = no
MOUSEKEY_ENABLE = yes

View File

@@ -0,0 +1,9 @@
#ifndef CONFIG_USER_H
#define CONFIG_USER_H
#define TAPPING_TERM 200
#include "../../config.h"
#define PERMISSIVE_HOLD
#define PREVENT_STUCK_MODIFIERS
#endif

View File

@@ -0,0 +1,98 @@
#include "planck.h"
//alias for clarity in layering
#define _______ KC_TRNS
#define A_BSPC LALT(KC_BSPC)
#define A_LEFT LALT(KC_LEFT)
#define A_RGHT LALT(KC_RGHT)
#define C_TAB LCTL(KC_TAB)
#define GSL LGUI(S(KC_LEFT))
#define GSR LGUI(S(KC_RGHT))
#define G_TAB LGUI(KC_TAB)
#define G_GRV LGUI(KC_GRV) // MAC: switch between windows within an application
#define SftEnt SFT_T(KC_ENT)
#define NAV LT(2, KC_TAB)
#define _COLEMAK 0
#define _SYMBOL 1
#define _NAVIGATION 2
//tapdance declarations
enum {
SFT_LCK
};
//alias for tapdance
#define SftLck TD(SFT_LCK)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Colemak
* ,-----------------------------------------------------------------------------------.
* | ESC` | Q | W | F | P | G | J | L | U | Y | ; | Bksp |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | Tab | A | R | S | T | D | H | N | E | I | O | " |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* |SftLck| Z | X | C | V | B | K | M | , | . | /? |SftEnt|
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | Del | GUI | Ctrl | Alt | GUI | Space |Symbol| Left | Down | Up |Right |
* `-----------------------------------------------------------------------------------'
*/
[_COLEMAK] = {
{KC_GESC, KC_Q , KC_W , KC_F , KC_P , KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC},
{NAV , KC_A , KC_R , KC_S , KC_T , KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT},
{SftLck , KC_Z , KC_X , KC_C , KC_V , KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, SftEnt },
{KC_DEL , KC_LGUI, KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
},
/* Symbol
* ,-----------------------------------------------------------------------------------.
* | [ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | ] |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | \| | ! | @ | # | $ | % | ^ | & | * | ( | ) | =+ |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | | Home | End | ScUp | ScDn | F1 | F2 | -_ |Pg Up | | / | |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | `~ | | | |Alt(Bk)| | |Pg Dn | Vol- | Vol+ | |
* `-----------------------------------------------------------------------------------'
*/
[_SYMBOL] = {
{KC_LBRC, KC_1, KC_2, KC_3, KC_4 , KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_RBRC},
{KC_BSLS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_EQL },
{_______, KC_HOME, KC_END, KC_WH_U, KC_WH_D,KC_F1 , KC_F2 , KC_MINS, KC_PGUP, _______, _______, _______},
{KC_GRV, _______, _______, _______, A_BSPC, _______, _______, _______, KC_PGDN, KC_VOLD, KC_VOLU, KC_MUTE}
},
/* Navigation*/
[_NAVIGATION] = {
{_______, _______, _______, _______, _______, _______, C_TAB , A_LEFT, KC_UP, A_RGHT , KC_DEL , _______},
{_______, _______, _______, _______, _______, _______, GSL , KC_LEFT, KC_DOWN, KC_RGHT, GSR , _______},
{_______, _______, _______, _______, _______, _______, G_TAB , KC_HOME, _______, KC_END, G_GRV , _______},
{RESET , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
}
};
// Shift vs capslock function. From bbaserdem's Planck keymap.
void caps_tap (qk_tap_dance_state_t *state, void *user_data) {
if (state->count == 1) {
register_code (KC_LSFT);
} else if (state->count == 2) {
unregister_code (KC_LSFT);
register_code (KC_CAPS);
}
}
void caps_tap_end (qk_tap_dance_state_t *state, void *user_data) {
if (state->count == 1) {
unregister_code (KC_LSFT);
} else {
unregister_code (KC_CAPS);
}
}
//Tap Dance Definitions
qk_tap_dance_action_t tap_dance_actions[] = {
//Tap once for Shift, twice for Caps Lock
[SFT_LCK] = ACTION_TAP_DANCE_FN_ADVANCED( caps_tap, NULL, caps_tap_end )
};

View File

@@ -0,0 +1,6 @@
TAP_DANCE_ENABLE = yes
MOUSEKEY_ENABLE = yes
ifndef QUANTUM_DIR
include ../../../../Makefile
endif

View File

@@ -0,0 +1,9 @@
#ifndef CONFIG_USER_H
#define CONFIG_USER_H
#define TAPPING_TERM 200
#include "../../config.h"
#define PERMISSIVE_HOLD
#define PREVENT_STUCK_MODIFIERS
#endif

View File

@@ -0,0 +1,98 @@
#include "planck.h"
//alias for clarity in layering
#define _______ KC_TRNS
#define A_BSPC LALT(KC_BSPC)
#define A_LEFT LALT(KC_LEFT)
#define A_RGHT LALT(KC_RGHT)
#define C_TAB LCTL(KC_TAB)
#define GSL LGUI(S(KC_LEFT))
#define GSR LGUI(S(KC_RGHT))
#define G_TAB LGUI(KC_TAB)
#define G_GRV LGUI(KC_GRV) // MAC: switch between windows within an application
#define SftEnt SFT_T(KC_ENT)
#define NAV LT(2, KC_TAB)
#define _COLEMAK 0
#define _SYMBOL 1
#define _NAVIGATION 2
//tapdance declarations
enum {
SFT_LCK
};
//alias for tapdance
#define SftLck TD(SFT_LCK)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Colemak
* ,-----------------------------------------------------------------------------------.
* | ESC` | Q | W | F | P | G | J | L | U | Y | ; | Bksp |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | Tab | A | R | S | T | D | H | N | E | I | O | " |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* |SftLck| Z | X | C | V | B | K | M | , | . | /? |SftEnt|
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | Del | GUI | Ctrl | Alt | GUI | Space |Symbol| Left | Down | Up |Right |
* `-----------------------------------------------------------------------------------'
*/
[_COLEMAK] = {
{KC_GESC, KC_Q , KC_W , KC_F , KC_P , KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC},
{NAV , KC_A , KC_R , KC_S , KC_T , KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT},
{SftLck , KC_Z , KC_X , KC_C , KC_V , KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, SftEnt },
{KC_DEL , KC_LGUI, KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
},
/* Symbol
* ,-----------------------------------------------------------------------------------.
* | [ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | ] |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | \| | ! | @ | # | $ | % | ^ | & | * | ( | ) | =+ |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | | Home | End | ScUp | ScDn | F1 | F2 | -_ |Pg Up | | / | |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | `~ | | | |Alt(Bk)| | |Pg Dn | Vol- | Vol+ | |
* `-----------------------------------------------------------------------------------'
*/
[_SYMBOL] = {
{KC_LBRC, KC_1, KC_2, KC_3, KC_4 , KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_RBRC},
{KC_BSLS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_EQL },
{_______, KC_HOME, KC_END, KC_WH_U, KC_WH_D,KC_F1 , KC_F2 , KC_MINS, KC_PGUP, _______, _______, _______},
{KC_GRV, _______, _______, _______, A_BSPC, _______, _______, _______, KC_PGDN, KC_VOLD, KC_VOLU, KC_MUTE}
},
/* Navigation*/
[_NAVIGATION] = {
{_______, _______, _______, _______, _______, _______, C_TAB , A_LEFT, KC_UP, A_RGHT , KC_DEL , _______},
{_______, _______, _______, _______, _______, _______, GSL , KC_LEFT, KC_DOWN, KC_RGHT, GSR , _______},
{_______, _______, _______, _______, _______, _______, G_TAB , KC_HOME, _______, KC_END, G_GRV , _______},
{RESET , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
}
};
// Shift vs capslock function. From bbaserdem's Planck keymap.
void caps_tap (qk_tap_dance_state_t *state, void *user_data) {
if (state->count == 1) {
register_code (KC_LSFT);
} else if (state->count == 2) {
unregister_code (KC_LSFT);
register_code (KC_CAPS);
}
}
void caps_tap_end (qk_tap_dance_state_t *state, void *user_data) {
if (state->count == 1) {
unregister_code (KC_LSFT);
} else {
unregister_code (KC_CAPS);
}
}
//Tap Dance Definitions
qk_tap_dance_action_t tap_dance_actions[] = {
//Tap once for Shift, twice for Caps Lock
[SFT_LCK] = ACTION_TAP_DANCE_FN_ADVANCED( caps_tap, NULL, caps_tap_end )
};

View File

@@ -0,0 +1,6 @@
TAP_DANCE_ENABLE = yes
MOUSEKEY_ENABLE = yes
ifndef QUANTUM_DIR
include ../../../../Makefile
endif

View File

@@ -0,0 +1,102 @@
#include "satan.h"
#define _BL 0
#define _FL 1
#define _NAV 2
#define _______ KC_TRNS
#define A_LEFT LALT(KC_LEFT)
#define A_RGHT LALT(KC_RGHT)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap _BL: (Base Layer) Default Layer
* ,-----------------------------------------------------------.
* |Esc~| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |
* |-----------------------------------------------------------|
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ |
* |-----------------------------------------------------------|
* |CAPS | A| S| D| F| G| H| J| K| L| ;| '|Return |
* |-----------------------------------------------------------|
* |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |
* |-----------------------------------------------------------|
* |Ctrl|Gui |Alt | Space |Alt |Gui |FN |Ctrl |
* `-----------------------------------------------------------'
*/
[_BL] = KEYMAP_ANSI(
KC_GESC, 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_BSPC, \
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, \
MO(2), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_ENT, \
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, \
KC_LCTL, KC_LALT,KC_LGUI, KC_SPC, KC_RGUI,KC_RALT, KC_RCTL, MO(_FL) ),
/* Keymap _FL: Function Layer
* ,-----------------------------------------------------------.
* | | | | | | | | | | | | | | |
* |-----------------------------------------------------------|
* | | | | | | | | | | | |BL-|BL+|BL |
* |-----------------------------------------------------------|
* | | | | | | | | | | | | |
* |-----------------------------------------------------------|
* | | F1|F2 | F3|F4 | F5| F6| F7| F8| | | |
* |-----------------------------------------------------------|
* |RESET| | | | | | | |
* `-----------------------------------------------------------'
*/
[_FL] = KEYMAP_ANSI(
#ifdef RGBLIGHT_ENABLE
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,_______, \
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, BL_DEC,BL_INC, BL_TOGG, \
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \
_______,RGB_TOG,RGB_MOD,RGB_HUI,RGB_HUD,RGB_SAI,RGB_SAD,RGB_VAI,RGB_VAD,_______,_______,_______, \
RESET ,_______,_______, _______, _______,_______,_______, _______),
#else
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,_______, \
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, BL_DEC, BL_INC,BL_TOGG, \
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, \
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, \
RESET ,_______,_______, _______, _______,_______,_______,_______),
#endif
[_NAV] = KEYMAP_ANSI(
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, \
_______,_______,_______,_______,_______,_______,_______,A_LEFT , KC_UP ,A_RGHT ,_______,_______,_______,_______, \
_______,_______,_______,_______,_______,_______,_______,KC_LEFT,KC_DOWN,KC_RGHT,_______,_______, _______, \
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, \
_______,_______,_______, _______, _______,_______,_______,_______),
};
/*
enum function_id {
SHIFT_ESC,
};
const uint16_t PROGMEM fn_actions[] = {
[0] = ACTION_FUNCTION(SHIFT_ESC),
};
void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
static uint8_t shift_esc_shift_mask;
switch (id) {
case SHIFT_ESC:
shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK;
if (record->event.pressed) {
if (shift_esc_shift_mask) {
add_key(KC_GRV);
send_keyboard_report();
} else {
add_key(KC_ESC);
send_keyboard_report();
}
} else {
if (shift_esc_shift_mask) {
del_key(KC_GRV);
send_keyboard_report();
} else {
del_key(KC_ESC);
send_keyboard_report();
}
}
break;
}
}
*/

View File

@@ -0,0 +1,2 @@
#QWERTY keymap for Satan GH60 with layers for arrow keys, function keys, and backlight controls.
#The layout of modifiers is intended to mimic the MacBook Air keyboard.

View File

@@ -0,0 +1,26 @@
/* Copyright 2017 Benjamin Kesselring
*
* 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/>.
*/
#ifndef CONFIG_USER_H
#define CONFIG_USER_H
#include "../../config.h"
#define TAPPING_TERM 200
#define PERMISSIVE_HOLD
#define PREVENT_STUCK_MODIFIERS
#endif

View File

@@ -0,0 +1,150 @@
#include "xd75.h"
//aliases for clarity in layering
#define _______ KC_TRNS
#define A_BSPC LALT(KC_BSPC) // delete whole word in Mac
#define C_BSPS LCTL(KC_BSPC) // delete whole word in PC
#define A_LEFT LALT(KC_LEFT)
#define A_RGHT LALT(KC_RGHT)
#define C_RGHT LCTL(KC_RGHT)
#define C_LEFT LCTL(KC_LEFT)
#define SftEnt SFT_T(KC_ENT)
#define GBSPC LGUI_T(KC_BSPC)
#define CBSPC LCTL_T(KC_BSPC)
//internet browser tab shortcuts and window swapping for Mac and Win
#define GSL LGUI(S(KC_LEFT)) // back one tab in Safari
#define GSR LGUI(S(KC_RGHT)) // forward one tab in Safari
#define CTLPGDN LCTL(KC_PGDN) // back one tab on Windows
#define CTLPGUP LCTL(KC_PGUP) // forward one tab on Windows
#define G_TAB LGUI(KC_TAB) // MAC: switch applications
#define G_GRV LGUI(KC_GRV) // MAC: switch between windows within an application
#define A_TAB LALT(KC_TAB)
#define C_TAB LCTL(KC_TAB)
//
#define NAV LT(3, KC_TAB)
#define NAVPC LT(4, KC_TAB)
// Layer shorthand
#define _COLEMAK 0
#define _PC 1
#define _SYMBOL 2 //Function keys, numbers, symbols, Backlighting
#define _NAV 3 //Navigation Layer on Mac
#define _NAVPC 4 //Navigation Layer on Win
//tapdance declarations
enum {
SFT_LCK
};
//alias for tapdance
#define SftLck TD(SFT_LCK)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* COLEMAK
* .--------------------------------------------------------------------------------------------------------------------------------------.
* | `~ | 1 | 2 | 3 | 4 | 5 | - | SWITCH | = | 6 | 7 | 8 | 9 | 0 | BACKSP |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
* | ESC/`~ | Q | W | F | P | G | [ | \ | ] | J | L | U | Y | ; | BACKSP |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------|
* | NAVTAB | A | S | D | F | G | PgUp |PlayPaus| ENTER | H | N | E | I | O | ' |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------|
* |SFT/CAPS| Z | X | C | V | B | PgDn | UP | ENTER | K | M | , | . | / | SftEnt |
* |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+-----------------+--------+--------|
* | DEL | LGUI | LCTRL | LALT | LGUI | BKSPC | LEFT | DOWN | RIGHT | SPACE | SYMBOL | RGUI | RALT | RCTRL | BL |
* '--------------------------------------------------------------------------------------------------------------------------------------'
*/
[_COLEMAK] = { /* COLEMAK */
{ KC_GRV , KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, TG(1) , KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC },
{ KC_GESC, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_LBRC, KC_BSLS, KC_RBRC, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC },
{ NAV , KC_A, KC_R, KC_S, KC_T, KC_D, KC_PGUP, KC_ESC , KC_ENT , KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT },
{ SftLck , KC_Z, KC_X, KC_C, KC_V, KC_B, KC_PGDN, KC_UP , KC_ENT , KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, SftEnt },
{ KC_DEL , KC_LGUI, KC_LCTL, KC_LALT, KC_LGUI, GBSPC, KC_LEFT, KC_DOWN, KC_RGHT, KC_SPC, MO(2) , KC_RGUI, KC_RALT, KC_RCTL, BL_STEP },
},
// Windows Layer: essentially swaps Control and GUI
[_PC] = { /* WINDOWS */
{ _______, _______, _______, _______, _______, _______, _______, TG(0) , _______, _______, _______, _______, _______, _______, _______ },
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
{ NAVPC , _______, _______, _______, _______, _______, _______, KC_MPLY, _______, _______, _______, _______, _______, _______, _______ },
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
{ _______, KC_LCTL, KC_LGUI, _______, KC_LCTL, CBSPC , _______, _______, _______, _______, _______, KC_RCTL, KC_RALT, KC_RGUI, _______ },
},
/* SYMBOL
* .--------------------------------------------------------------------------------------------------------------------------------------.
* | F12 | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
* | [{ | 1 | 2 | 3 | 4 | 5 | | | | 6 | 7 | 8 | 9 | 0 | }] |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
* | | ! | @ | # | $ | % | | | | ^ | & | * | ( | ) | = |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
* | | | | | | | | | | | -_ | | | | |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
* | | | | | | | | | | | | | | | |
* '--------------------------------------------------------------------------------------------------------------------------------------'
*/
[_SYMBOL] = { /* SYMBOL */
{ _______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , _______, _______, _______, KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , _______},
{ KC_LBRC, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , _______, _______, _______, KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_RBRC},
{ _______, KC_EXLM, KC_AT , KC_HASH, KC_DLR , KC_PERC, _______, _______, _______, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_EQL },
{ _______, BL_OFF , BL_ON , BL_DEC , BL_INC , KC_F11 , _______, _______, _______, KC_F12 , KC_MINS, _______, _______, _______, _______},
{ _______, _______, _______, _______, _______, A_BSPC , _______, _______, _______, _______, _______, _______, _______, _______, _______},
},
[_NAV] = { /* NAVIGATION for Mac */
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, C_TAB , A_LEFT, KC_UP, A_RGHT , KC_DEL , _______},
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, GSL , KC_LEFT, KC_DOWN, KC_RGHT, GSR , _______},
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, G_TAB , KC_HOME, _______, KC_END , G_GRV , _______},
{ RESET , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
},
[_NAVPC] = { /* NAVIGATION FOR WINDOWS: replaces Alt with Control, GUI with Alt, and browser tab shortcuts*/
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, C_TAB , C_LEFT, KC_UP, C_RGHT , KC_DEL , _______},
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, CTLPGDN, KC_LEFT, KC_DOWN, KC_RGHT, CTLPGUP, _______},
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, A_TAB , KC_HOME, _______, KC_END , _______, _______},
{ RESET , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
}
};
// Shift vs capslock function. From bbaserdem's Planck keymap.
void caps_tap (qk_tap_dance_state_t *state, void *user_data) {
if (state->count == 1) {
register_code (KC_LSFT);
} else if (state->count == 2) {
unregister_code (KC_LSFT);
register_code (KC_CAPS);
}
}
void caps_tap_end (qk_tap_dance_state_t *state, void *user_data) {
if (state->count == 1) {
unregister_code (KC_LSFT);
} else {
unregister_code (KC_CAPS);
}
}
//Tap Dance Definitions
qk_tap_dance_action_t tap_dance_actions[] = {
//Tap once for Shift, twice for Caps Lock
[SFT_LCK] = ACTION_TAP_DANCE_FN_ADVANCED( caps_tap, NULL, caps_tap_end )
};
/* Template for future layers
[_LAYER_NAME] = {
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
}
};
*/

View File

@@ -0,0 +1,4 @@
# A Colemak layout for XD75 with both Mac and Windows layers.
# These two layers share momentary toggle access to a "Symbol" layer, which is modeled after my Planck layout.
# Each of the base Colemak layers have their own Navigation layers for the right hand to use arrows and shortcuts for both text editing and web browsing.
# The rules.mk file overrides the XD75's "BACKLIGHT_ENABLE" with YES and also adds tap dance functionality.

View File

@@ -0,0 +1,2 @@
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
TAP_DANCE_ENABLE = yes # Enable tap dance functionality

View File

@@ -0,0 +1,26 @@
/* Copyright 2017 Benjamin Kesselring
*
* 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/>.
*/
#ifndef CONFIG_USER_H
#define CONFIG_USER_H
#include "../../config.h"
#define TAPPING_TERM 200
#define PERMISSIVE_HOLD
#define PREVENT_STUCK_MODIFIERS
#endif

View File

@@ -0,0 +1,150 @@
#include "xd75.h"
//aliases for clarity in layering
#define _______ KC_TRNS
#define A_BSPC LALT(KC_BSPC) // delete whole word in Mac
#define C_BSPS LCTL(KC_BSPC) // delete whole word in PC
#define A_LEFT LALT(KC_LEFT)
#define A_RGHT LALT(KC_RGHT)
#define C_RGHT LCTL(KC_RGHT)
#define C_LEFT LCTL(KC_LEFT)
#define SftEnt SFT_T(KC_ENT)
#define GBSPC LGUI_T(KC_BSPC)
#define CBSPC LCTL_T(KC_BSPC)
//internet browser tab shortcuts and window swapping for Mac and Win
#define GSL LGUI(S(KC_LEFT)) // back one tab in Safari
#define GSR LGUI(S(KC_RGHT)) // forward one tab in Safari
#define CTLPGDN LCTL(KC_PGDN) // back one tab on Windows
#define CTLPGUP LCTL(KC_PGUP) // forward one tab on Windows
#define G_TAB LGUI(KC_TAB) // MAC: switch applications
#define G_GRV LGUI(KC_GRV) // MAC: switch between windows within an application
#define A_TAB LALT(KC_TAB)
#define C_TAB LCTL(KC_TAB)
//
#define NAV LT(3, KC_TAB)
#define NAVPC LT(4, KC_TAB)
// Layer shorthand
#define _COLEMAK 0
#define _PC 1
#define _SYMBOL 2 //Function keys, numbers, symbols, Backlighting
#define _NAV 3 //Navigation Layer on Mac
#define _NAVPC 4 //Navigation Layer on Win
//tapdance declarations
enum {
SFT_LCK
};
//alias for tapdance
#define SftLck TD(SFT_LCK)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* COLEMAK
* .--------------------------------------------------------------------------------------------------------------------------------------.
* | `~ | 1 | 2 | 3 | 4 | 5 | - | SWITCH | = | 6 | 7 | 8 | 9 | 0 | BACKSP |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
* | ESC/`~ | Q | W | F | P | G | [ | \ | ] | J | L | U | Y | ; | BACKSP |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------|
* | NAVTAB | A | S | D | F | G | PgUp |PlayPaus| ENTER | H | N | E | I | O | ' |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------|
* |SFT/CAPS| Z | X | C | V | B | PgDn | UP | ENTER | K | M | , | . | / | SftEnt |
* |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+-----------------+--------+--------|
* | DEL | LGUI | LCTRL | LALT | LGUI | BKSPC | LEFT | DOWN | RIGHT | SPACE | SYMBOL | RGUI | RALT | RCTRL | BL |
* '--------------------------------------------------------------------------------------------------------------------------------------'
*/
[_COLEMAK] = { /* COLEMAK */
{ KC_GRV , KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, TG(1) , KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC },
{ KC_GESC, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_LBRC, KC_BSLS, KC_RBRC, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC },
{ NAV , KC_A, KC_R, KC_S, KC_T, KC_D, KC_PGUP, KC_ESC , KC_ENT , KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT },
{ SftLck , KC_Z, KC_X, KC_C, KC_V, KC_B, KC_PGDN, KC_UP , KC_ENT , KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, SftEnt },
{ KC_DEL , KC_LGUI, KC_LCTL, KC_LALT, KC_LGUI, GBSPC, KC_LEFT, KC_DOWN, KC_RGHT, KC_SPC, MO(2) , KC_RGUI, KC_RALT, KC_RCTL, BL_STEP },
},
// Windows Layer: essentially swaps Control and GUI
[_PC] = { /* WINDOWS */
{ _______, _______, _______, _______, _______, _______, _______, TG(0) , _______, _______, _______, _______, _______, _______, _______ },
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
{ NAVPC , _______, _______, _______, _______, _______, _______, KC_MPLY, _______, _______, _______, _______, _______, _______, _______ },
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
{ _______, KC_LCTL, KC_LGUI, _______, KC_LCTL, CBSPC , _______, _______, _______, _______, _______, KC_RCTL, KC_RALT, KC_RGUI, _______ },
},
/* SYMBOL
* .--------------------------------------------------------------------------------------------------------------------------------------.
* | F12 | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
* | [{ | 1 | 2 | 3 | 4 | 5 | | | | 6 | 7 | 8 | 9 | 0 | }] |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
* | | ! | @ | # | $ | % | | | | ^ | & | * | ( | ) | = |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
* | | | | | | | | | | | -_ | | | | |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
* | | | | | | | | | | | | | | | |
* '--------------------------------------------------------------------------------------------------------------------------------------'
*/
[_SYMBOL] = { /* SYMBOL */
{ _______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , _______, _______, _______, KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , _______},
{ KC_LBRC, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , _______, _______, _______, KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_RBRC},
{ _______, KC_EXLM, KC_AT , KC_HASH, KC_DLR , KC_PERC, _______, _______, _______, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_EQL },
{ _______, BL_OFF , BL_ON , BL_DEC , BL_INC , KC_F11 , _______, _______, _______, KC_F12 , KC_MINS, _______, _______, _______, _______},
{ _______, _______, _______, _______, _______, A_BSPC , _______, _______, _______, _______, _______, _______, _______, _______, _______},
},
[_NAV] = { /* NAVIGATION for Mac */
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, C_TAB , A_LEFT, KC_UP, A_RGHT , KC_DEL , _______},
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, GSL , KC_LEFT, KC_DOWN, KC_RGHT, GSR , _______},
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, G_TAB , KC_HOME, _______, KC_END , G_GRV , _______},
{ RESET , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
},
[_NAVPC] = { /* NAVIGATION FOR WINDOWS: replaces Alt with Control, GUI with Alt, and browser tab shortcuts*/
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, C_TAB , C_LEFT, KC_UP, C_RGHT , KC_DEL , _______},
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, CTLPGDN, KC_LEFT, KC_DOWN, KC_RGHT, CTLPGUP, _______},
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, A_TAB , KC_HOME, _______, KC_END , _______, _______},
{ RESET , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
}
};
// Shift vs capslock function. From bbaserdem's Planck keymap.
void caps_tap (qk_tap_dance_state_t *state, void *user_data) {
if (state->count == 1) {
register_code (KC_LSFT);
} else if (state->count == 2) {
unregister_code (KC_LSFT);
register_code (KC_CAPS);
}
}
void caps_tap_end (qk_tap_dance_state_t *state, void *user_data) {
if (state->count == 1) {
unregister_code (KC_LSFT);
} else {
unregister_code (KC_CAPS);
}
}
//Tap Dance Definitions
qk_tap_dance_action_t tap_dance_actions[] = {
//Tap once for Shift, twice for Caps Lock
[SFT_LCK] = ACTION_TAP_DANCE_FN_ADVANCED( caps_tap, NULL, caps_tap_end )
};
/* Template for future layers
[_LAYER_NAME] = {
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
}
};
*/

View File

@@ -0,0 +1,4 @@
# A Colemak layout for XD75 with both Mac and Windows layers.
# These two layers share momentary toggle access to a "Symbol" layer, which is modeled after my Planck layout.
# Each of the base Colemak layers have their own Navigation layers for the right hand to use arrows and shortcuts for both text editing and web browsing.
# The rules.mk file overrides the XD75's "BACKLIGHT_ENABLE" with YES and also adds tap dance functionality.

View File

@@ -0,0 +1,2 @@
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
TAP_DANCE_ENABLE = yes # Enable tap dance functionality

View File

@@ -9,14 +9,22 @@
* See `readme.md` for notes on each define.
*/
/* Personal preference (enable by passing EXTRAFLAGS=... to make). */
/**
* Optionally support 80 key layout.
*
* No default keys defined: use 'CFQ_USER_K80_L0K0' .. etc.
*/
/* #define CFQ_USE_80_KEYS */
/** Personal preference (enable by passing 'EXTRAFLAGS=...' to make). */
/* #define CFQ_USE_MOMENTARY_LAYER_KEYS */
/* Holding right/left or left/right shift for single or double quote pair */
/** Holding right/left or left/right shift for single or double quote pair */
/* #define CFQ_USE_SHIFT_QUOTES */
#define CFQ_USE_DYNAMIC_MACRO
#if !defined(CFQ_USER_KEY0)
# define CFQ_USER_KEY0 KC_BSPC
#endif
@@ -45,6 +53,91 @@
# define CFQ_USER_KEY8 KC_DEL
#endif
#ifdef CFQ_USE_80_KEYS
# define LAYOUT_ergodox_76_or_80 KEYMAP_80
# define K80(a) CFQ_USER_K80_##a
#else
# define LAYOUT_ergodox_76_or_80( \
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, \
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, \
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, \
k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, \
\
k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, \
k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, \
k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, \
k70, k71, k72, k73, k74, k75, k76, k77, k78, k79) \
LAYOUT_ergodox( \
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, \
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, \
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, \
k30, k31, k32, k33, k36, k37, k38, k39, \
\
k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, \
k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, \
k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, \
k70, k71, k72, k73, k76, k77, k78, k79)
# define K80(a) KC_TRNS
#endif
/**
* Used to generate lines below:
* \code{.py}
* text = '# ifndef CFQ_USER_K80_L0K0\n# define CFQ_USER_K80_L0K0 KC_TRNS\n# endif'
* print('\n'.join([text.replace('L0', f'L{l}').replace('K0', f'K{k}') for l in range(3) for k in range(4)]))
* \endcode
*/
#ifdef CFQ_USE_80_KEYS
# ifndef CFQ_USER_K80_L0K0
# define CFQ_USER_K80_L0K0 KC_TRNS
# endif
# ifndef CFQ_USER_K80_L0K1
# define CFQ_USER_K80_L0K1 KC_TRNS
# endif
# ifndef CFQ_USER_K80_L0K2
# define CFQ_USER_K80_L0K2 KC_TRNS
# endif
# ifndef CFQ_USER_K80_L0K3
# define CFQ_USER_K80_L0K3 KC_TRNS
# endif
# ifndef CFQ_USER_K80_L1K0
# define CFQ_USER_K80_L1K0 KC_TRNS
# endif
# ifndef CFQ_USER_K80_L1K1
# define CFQ_USER_K80_L1K1 KC_TRNS
# endif
# ifndef CFQ_USER_K80_L1K2
# define CFQ_USER_K80_L1K2 KC_TRNS
# endif
# ifndef CFQ_USER_K80_L1K3
# define CFQ_USER_K80_L1K3 KC_TRNS
# endif
# ifndef CFQ_USER_K80_L2K0
# define CFQ_USER_K80_L2K0 KC_TRNS
# endif
# ifndef CFQ_USER_K80_L2K1
# define CFQ_USER_K80_L2K1 KC_TRNS
# endif
# ifndef CFQ_USER_K80_L2K2
# define CFQ_USER_K80_L2K2 KC_TRNS
# endif
# ifndef CFQ_USER_K80_L2K3
# define CFQ_USER_K80_L2K3 KC_TRNS
# endif
# ifndef CFQ_USER_K80_L3K0
# define CFQ_USER_K80_L3K0 KC_TRNS
# endif
# ifndef CFQ_USER_K80_L3K1
# define CFQ_USER_K80_L3K1 KC_TRNS
# endif
# ifndef CFQ_USER_K80_L3K2
# define CFQ_USER_K80_L3K2 KC_TRNS
# endif
# ifndef CFQ_USER_K80_L3K3
# define CFQ_USER_K80_L3K3 KC_TRNS
# endif
#endif
#ifndef CFQ_WORD_A
#define CFQ_WORD_A ""
#endif
@@ -147,10 +240,10 @@ static char cfq_word_lut_title_caps[
sizeof(CFQ_WORD_Y) + sizeof(CFQ_WORD_Z)
];
#define BASE 0 /* default layer */
#define SYMB 1 /* symbols */
#define MDIA 2 /* media keys */
#define WORD 3 /* experimental keys */
#define LAYER_BASE 0 /* default layer */
#define LAYER_SYMB 1 /* symbols */
#define LAYER_MDIA 2 /* media keys */
#define LAYER_FKEY 3 /* F-Keys & Words */
enum custom_keycodes {
PLACEHOLDER = SAFE_RANGE, /* can always be here */
@@ -183,7 +276,14 @@ enum custom_keycodes {
};
#ifdef CFQ_USE_DYNAMIC_MACRO
#include "dynamic_macro.h"
# include "dynamic_macro.h"
#else
/* avoid ifdef's in keymap */
# define DYN_REC_START1 KC_TRNS
# define DYN_REC_START2 KC_TRNS
# define DYN_REC_PLAY1 KC_TRNS
# define DYN_REC_PLAY2 KC_TRNS
# define DYN_REC_STOP KC_TRNS
#endif
#ifdef CFQ_USE_MOMENTARY_LAYER_KEYS
@@ -198,50 +298,50 @@ enum custom_keycodes {
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap 0: Basic layer
* ,--------------------------------------------------. ,--------------------------------------------------.
* | Grave | ! | @ | # | $ | % | { | | } | ^ | & | * | - | = | BSpace |
* |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
* | Tab | Q | W | E | R | T | ( | | ) | Y | U | I | O | P | \ |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | Esc | A | S | D | F | G |------| |------| H | J | K | L | ; | ' |
* |--------+------+------+------+------+------| [ | | ] |------+------+------+------+------+--------|
* | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | LCtl |Super | Alt | ~L1 |Space | | Left | Down | Up |Right | Del |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | Ins |NumClk| | Home | End |
* ,------+------+------| |------+------+------.
* | | |CapsLk| | PgUp | | |
* |BSpace| Del |------| |------| ~L2 |Enter |
* | | | ~L3 | | PgDn | | |
* `--------------------' `--------------------'
* .--------------------------------------------------. .--------------------------------------------------.
* | Grave | ! | @ | # | $ | % | { | | } | ^ | & | * | - | = | BSpace |
* |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
* | Tab | Q | W | E | R | T | ( | | ) | Y | U | I | O | P | \ |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | Esc | A | S | D | F | G |------| |------| H | J | K | L | ; | ' |
* |--------+------+------+------+------+------| [ | | ] |------+------+------+------+------+--------|
* | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift |
* '--------+------+------+------+------+-------------' '-------------+------+------+------+------+--------'
* | LCtl |Super | Alt | ~L1 |Space | | Left | Down | Up |Right | Del |
* '----------------------------------' '----------------------------------'
* .-------------. .-------------.
* | Ins |NumClk| | Home | End |
* .------+------+------| |------+------+------.
* | | |CapsLk| | PgUp | | |
* |BSpace| Del |------| |------| ~L2 |Enter |
* | | | ~L3 | | PgDn | | |
* '--------------------' '--------------------'
*
* Optional overrides: see CFQ_USER_KEY# defines.
*
* ,--------------------------------------------------. ,--------------------------------------------------.
* | | | | | | | | | | | | | | | USR0 |
* |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
* | | | | | | | | | | | | | | | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | | | | | |------| |------| | | | | | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | | | | | | | | | | | | | | |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | | | | USR1 | | | | | | | USR8 |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | USR2 | USR3 | | | |
* ,------+------+------| |------+------+------.
* | | | USR6 | | | | |
* | USR4 | USR5 |------| |------| | |
* | | | USR7 | | | | |
* `--------------------' `--------------------'
* .--------------------------------------------------. .--------------------------------------------------.
* | | | | | | | | | | | | | | | USR0 |
* |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
* | | | | | | | | | | | | | | | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | | | | | |------| |------| | | | | | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | | | | | | | | | | | | | | |
* '--------+------+------+------+------+-------------' '-------------+------+------+------+------+--------'
* | | | | USR1 | | | | | | | USR8 |
* '----------------------------------' '----------------------------------'
* .-------------. .-------------.
* | USR2 | USR3 | | | |
* .------+------+------| |------+------+------.
* | | | USR6 | | | | |
* | USR4 | USR5 |------| |------| | |
* | | | USR7 | | | | |
* '--------------------' '--------------------'
*/
/* If it accepts an argument (i.e, is a function), it doesn't need KC_.
* Otherwise, it needs KC_* */
[BASE] = LAYOUT_ergodox( /* layer 0 : default */
[LAYER_BASE] = LAYOUT_ergodox_76_or_80( /* layer 0 : default */
/* left hand */
KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_LCBR,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LPRN,
@@ -249,7 +349,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LBRC,
KC_LCTL, KC_LGUI, KC_LALT, CFQ_USER_KEY1, KC_SPC,
CFQ_USER_KEY2, CFQ_USER_KEY3,
CFQ_USER_KEY6,
K80(L0K0), K80(L0K1), CFQ_USER_KEY6,
CFQ_USER_KEY4, CFQ_USER_KEY5, CFQ_USER_KEY7,
/* right hand */
KC_RCBR, KC_CIRC, KC_AMPR, KC_ASTR,KC_MINS, KC_EQL, CFQ_USER_KEY0,
@@ -258,46 +358,41 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_RBRC, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT,
KC_LEFT, KC_DOWN,KC_UP, KC_RGHT, CFQ_USER_KEY8,
KC_HOME, KC_END,
KC_PGUP,
KC_PGUP, K80(L0K2), K80(L0K3),
KC_PGDN, CFQ_KC_FN2, KC_ENT
),/* Keymap 1: KeyPad, Macro Record
),
/* Keymap 1: KeyPad, Macro Record
*
* ,--------------------------------------------------. ,--------------------------------------------------.
* | | | | | | | {} | | }{ | |NumLck| / | * | - | |
* |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
* | | | | | | => | () | | )( | <= | 7 | 8 | 9 | + | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | | | | | -> |------| |------| <- | 4 | 5 | 6 | + | |
* |--------+------+------+------+------+------| [] | | ][ |------+------+------+------+------+--------|
* | | | | | | <> | | | | >< | 1 | 2 | 3 | Enter| |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | | | | | | | 0 | | . | Enter| |
* `----------------------------------' `----------------------------------'
* ,-------------. ,--------------.
* |Start1|Start2| | | |
* ,------+------+------| |------+-------+------.
* | | | Stop | | | | |
* |Play1 |Play2 |------| |------| | |
* | | | | | | | |
* `--------------------' `---------------------'
* .--------------------------------------------------. .--------------------------------------------------.
* | | | | | | | {} | | }{ | |NumLck| / | * | - | |
* |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
* | | | | | | => | () | | )( | <= | 7 | 8 | 9 | + | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | | | | | -> |------| |------| <- | 4 | 5 | 6 | + | |
* |--------+------+------+------+------+------| [] | | ][ |------+------+------+------+------+--------|
* | | | | | | <> | | | | >< | 1 | 2 | 3 | Enter| |
* '--------+------+------+------+------+-------------' '-------------+------+------+------+------+--------'
* | | | | | | | 0 | | . | Enter| |
* '----------------------------------' '----------------------------------'
* .-------------. .-------------.
* |Start1|Start2| | | |
* .------+------+------| |------+------+------.
* | | | Stop | | | | |
* |Play1 |Play2 |------| |------| | |
* | | | | | | | |
* '--------------------' '--------------------'
*/
/* SYMBOLS */
[SYMB] = LAYOUT_ergodox(
[LAYER_SYMB] = LAYOUT_ergodox_76_or_80(
/* left hand */
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, M_BRACKET_IN_CBR,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, M_BRACKET_IN_CBR,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, M_ARROW_REQL, M_BRACKET_IN_PRN,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, M_ARROW_RMINUS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, M_BRACKET_IN_ANG, M_BRACKET_IN_BRC,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
#ifdef CFQ_USE_DYNAMIC_MACRO
DYN_REC_START1, DYN_REC_START2,
DYN_REC_STOP,
DYN_MACRO_PLAY1, DYN_MACRO_PLAY2, KC_TRNS,
#else
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS,
#endif
DYN_REC_START1, DYN_REC_START2,
K80(L1K0), K80(L1K1), DYN_REC_STOP,
DYN_MACRO_PLAY1, DYN_MACRO_PLAY2, KC_TRNS,
/* right hand */
M_BRACKET_OUT_CBR, KC_TRNS, KC_NLCK, KC_KP_SLASH, KC_KP_ASTERISK, KC_KP_MINUS, KC_TRNS,
M_BRACKET_OUT_PRN, M_ARROW_LEQL, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_PLUS, KC_TRNS,
@@ -305,41 +400,41 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
M_BRACKET_OUT_BRC, M_BRACKET_OUT_ANG, KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_ENTER, KC_TRNS,
KC_KP_0, KC_TRNS, KC_KP_DOT, KC_KP_ENTER, KC_TRNS,
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, K80(L1K2), K80(L1K3),
KC_TRNS, KC_TRNS, KC_TRNS
),
/* Keymap 2: F-Keys, media and mouse keys
*
* ,--------------------------------------------------. ,--------------------------------------------------.
* | | | | | | | | | | | | | | | |
* |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
* | | | | MsUp | | |MWhlUp| | | | | | | | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | |MsLeft|MsDown|MsRght| |------| |------| Left | Down | Up |Right | | |
* |--------+------+------+------+------+------|MWhlDn| | |------+------+------+------+------+--------|
* | | | Rclk | Mclk | Lclk | | | | | | | | | | |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | | | | | | | | | | | |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | MRwd | MFwd | | MPrv | MNxt |
* ,------+------+------| |------+------+------.
* | | | | |VolUp | | |
* | Mute | |------| |------| | Play |
* | | | | |VolDn | | |
* `--------------------' `--------------------'
* .--------------------------------------------------. .--------------------------------------------------.
* | | | | | | | | | | | | | | | |
* |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
* | | | | MsUp | | |MWhlUp| | | | | | | | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | |MsLeft|MsDown|MsRght| |------| |------| Left | Down | Up |Right | | |
* |--------+------+------+------+------+------|MWhlDn| | |------+------+------+------+------+--------|
* | | | Rclk | Mclk | Lclk | | | | | | | | | | |
* '--------+------+------+------+------+-------------' '-------------+------+------+------+------+--------'
* | | | | | | | | | | | |
* '----------------------------------' '----------------------------------'
* .-------------. .-------------.
* | MRwd | MFwd | | MPrv | MNxt |
* .------+------+------| |------+------+------.
* | | | | |VolUp | | |
* | Mute | |------| |------| | Play |
* | | | | |VolDn | | |
* '--------------------' '--------------------'
*/
/* MEDIA AND MOUSE */
[MDIA] = LAYOUT_ergodox(
[LAYER_MDIA] = LAYOUT_ergodox_76_or_80(
/* left hand */
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_WH_U,
KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,
KC_TRNS, KC_TRNS, KC_BTN2, KC_BTN3, KC_BTN1, KC_TRNS, KC_WH_D,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_MRWD, KC_MFFD,
KC_TRNS,
KC_MUTE, KC_TRNS, KC_TRNS,
KC_MRWD, KC_MFFD,
K80(L2K0), K80(L2K1), KC_TRNS,
KC_MUTE, KC_TRNS, KC_TRNS,
/* right hand */
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
@@ -347,42 +442,42 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_MPRV, KC_MNXT,
KC_VOLU,
KC_VOLU, K80(L2K2), K80(L1K3),
KC_VOLD, KC_TRNS, KC_MPLY
),
/* Keymap 3: Entire Words (one for each key)
*
* ,--------------------------------------------------. ,--------------------------------------------------.
* | | F1 | F2 | F3 | F4 | F5 | F11 | | F12 | F6 | F7 | F8 | F9 | F10 | |
* |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
* | | Q | W | E | R | T | | | | Y | U | I | O | P | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | A | S | D | F | G |------| |------| H | J | K | L | | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | Z | X | C | V | B | | | | N | M | | | | |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | | | | | | | | | | | |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | | | | | |
* ,------+------+------| |------+------+------.
* | | | | | | | |
* | | |------| |------| | |
* | | | | | | | |
* `--------------------' `--------------------'
* .--------------------------------------------------. .--------------------------------------------------.
* | | F1 | F2 | F3 | F4 | F5 | F11 | | F12 | F6 | F7 | F8 | F9 | F10 | |
* |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
* | | Q | W | E | R | T | | | | Y | U | I | O | P | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | A | S | D | F | G |------| |------| H | J | K | L | | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | Z | X | C | V | B | | | | N | M | | | | |
* '--------+------+------+------+------+-------------' '-------------+------+------+------+------+--------'
* | | | | | | | | | | | |
* '----------------------------------' '----------------------------------'
* .-------------. .-------------.
* | | | | | |
* .------+------+------| |------+------+------.
* | | | | | | | |
* | | |------| |------| | |
* | | | | | | | |
* '--------------------' '--------------------'
*/
/* WORDS */
[WORD] = LAYOUT_ergodox(
/* FKEY & WORDS */
[LAYER_FKEY] = LAYOUT_ergodox_76_or_80(
/* left hand */
KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11,
KC_TRNS, M_WORD_Q, M_WORD_W, M_WORD_E, M_WORD_R, M_WORD_T, KC_TRNS,
KC_TRNS, M_WORD_A, M_WORD_S, M_WORD_D, M_WORD_F, M_WORD_G,
KC_TRNS, M_WORD_Z, M_WORD_X, M_WORD_C, M_WORD_V, M_WORD_B, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS,
K80(L3K0), K80(L3K1), KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS,
/* right hand */
KC_F12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS,
KC_TRNS, M_WORD_Y, M_WORD_U, M_WORD_I, M_WORD_O, M_WORD_P, KC_TRNS,
@@ -390,25 +485,24 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TRNS, M_WORD_N, M_WORD_M, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, K80(L3K2), K80(L3K3),
KC_TRNS, KC_TRNS, KC_TRNS
),
};
const uint16_t PROGMEM fn_actions[] = {
[1] = ACTION_LAYER_TAP_TOGGLE(SYMB), /* FN1 - Momentary Layer 1 (Symbols) */
[2] = ACTION_LAYER_TAP_TOGGLE(MDIA), /* FN2 - Momentary Layer 2 (Media) */
[3] = ACTION_LAYER_TAP_TOGGLE(WORD), /* FN3 - Momentary Layer 3 (Words) */
[1] = ACTION_LAYER_TAP_TOGGLE(LAYER_SYMB), /* FN1 - Momentary Layer 1 (Symbols) */
[2] = ACTION_LAYER_TAP_TOGGLE(LAYER_MDIA), /* FN2 - Momentary Layer 2 (Media) */
[3] = ACTION_LAYER_TAP_TOGGLE(LAYER_FKEY), /* FN3 - Momentary Layer 3 (FKey's & Words) */
};
#define WITHOUT_MODS(...) \
do { \
uint8_t _real_mods = get_mods(); \
clear_mods(); \
{ __VA_ARGS__ } \
set_mods(_real_mods); \
} while (0)
#define WITHOUT_MODS(...) \
do { \
uint8_t _real_mods = get_mods(); \
clear_mods(); \
{ __VA_ARGS__ } \
set_mods(_real_mods); \
} while (0)
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
#ifdef CFQ_USE_DYNAMIC_MACRO

View File

@@ -44,50 +44,54 @@ using `CFQ_` prefixed defines which can be set by passing `EXTRAFLAGS` to make.
- `CFQ_WORD_[A-Z]`
defines can bind a key to an entire user defined word.
- `CFQ_USE_80_KEYS`
enables 80 key layout, none of the extra keys are bound,
they need to be set with defines: `CFQ_USER_K80_L0K0` .. `CFQ_USER_K80_L3K4`.
Where `L#` is the layer and `K#` is the key.
## Keymap 0: Basic layer
```
,--------------------------------------------------. ,--------------------------------------------------.
| Grave | ! | @ | # | $ | % | { | | } | ^ | & | * | - | = | BSpace |
|--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
| Tab | Q | W | E | R | T | ( | | ) | Y | U | I | O | P | \ |
|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
| Esc | A | S | D | F | G |------| |------| H | J | K | L | ; | ' |
|--------+------+------+------+------+------| [ | | ] |------+------+------+------+------+--------|
| LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift |
`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
| LCtl |Super | Alt | ~L1 |Space | | Left | Down | Up |Right | Del |
`----------------------------------' `----------------------------------'
,-------------. ,-------------.
| Ins |NumClk| | Home | End |
,------+------+------| |------+------+------.
| | |CapsLk| | PgUp | | |
|BSpace| Del |------| |------| ~L2 |Enter |
| | | ~L3 | | PgDn | | |
`--------------------' `--------------------'
.--------------------------------------------------. .--------------------------------------------------.
| Grave | ! | @ | # | $ | % | { | | } | ^ | & | * | - | = | BSpace |
|--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
| Tab | Q | W | E | R | T | ( | | ) | Y | U | I | O | P | \ |
|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
| Esc | A | S | D | F | G |------| |------| H | J | K | L | ; | ' |
|--------+------+------+------+------+------| [ | | ] |------+------+------+------+------+--------|
| LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift |
'--------+------+------+------+------+-------------' '-------------+------+------+------+------+--------'
| LCtl |Super | Alt | ~L1 |Space | | Left | Down | Up |Right | Del |
'----------------------------------' '----------------------------------'
.-------------. .-------------.
| Ins |NumClk| | Home | End |
.------+------+------| |------+------+------.
| | |CapsLk| | PgUp | | |
|BSpace| Del |------| |------| ~L2 |Enter |
| | | ~L3 | | PgDn | | |
'--------------------' '--------------------'
Optional overrides: see CFQ_USER_KEY# defines.
,--------------------------------------------------. ,--------------------------------------------------.
| | | | | | | | | | | | | | | USR0 |
|--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
| | | | | | | | | | | | | | | |
|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
| | | | | | |------| |------| | | | | | |
|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
| | | | | | | | | | | | | | | |
`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
| | | | USR1 | | | | | | | USR8 |
`----------------------------------' `----------------------------------'
,-------------. ,-------------.
| USR2 | USR3 | | | |
,------+------+------| |------+------+------.
| | | USR6 | | | | |
| USR4 | USR5 |------| |------| | |
| | | USR7 | | | | |
`--------------------' `--------------------'
.--------------------------------------------------. .--------------------------------------------------.
| | | | | | | | | | | | | | | USR0 |
|--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
| | | | | | | | | | | | | | | |
|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
| | | | | | |------| |------| | | | | | |
|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
| | | | | | | | | | | | | | | |
'--------+------+------+------+------+-------------' '-------------+------+------+------+------+--------'
| | | | USR1 | | | | | | | USR8 |
'----------------------------------' '----------------------------------'
.-------------. .-------------.
| USR2 | USR3 | | | |
.------+------+------| |------+------+------.
| | | USR6 | | | | |
| USR4 | USR5 |------| |------| | |
| | | USR7 | | | | |
'--------------------' '--------------------'
```
## Keymap 1: KeyPad, Macro Record
@@ -98,47 +102,47 @@ Notes:
- The left thumb cluster is used for macro record/replay.
```
,--------------------------------------------------. ,--------------------------------------------------.
| | | | | | | {} | | }{ | |NumLck| / | * | - | |
|--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
| | | | | | => | () | | )( | <= | 7 | 8 | 9 | + | |
|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
| | | | | | -> |------| |------| <- | 4 | 5 | 6 | + | |
|--------+------+------+------+------+------| [] | | ][ |------+------+------+------+------+--------|
| | | | | | <> | | | | >< | 1 | 2 | 3 | Enter| |
`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
| | | | | | | 0 | | . | Enter| |
`----------------------------------' `----------------------------------'
,-------------. ,--------------.
|Start1|Start2| | | |
,------+------+------| |------+-------+------.
| | | Stop | | | | |
|Play1 |Play2 |------| |------| | |
| | | | | | | |
`--------------------' `---------------------'
.--------------------------------------------------. .--------------------------------------------------.
| | | | | | | {} | | }{ | |NumLck| / | * | - | |
|--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
| | | | | | => | () | | )( | <= | 7 | 8 | 9 | + | |
|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
| | | | | | -> |------| |------| <- | 4 | 5 | 6 | + | |
|--------+------+------+------+------+------| [] | | ][ |------+------+------+------+------+--------|
| | | | | | <> | | | | >< | 1 | 2 | 3 | Enter| |
'--------+------+------+------+------+-------------' '-------------+------+------+------+------+--------'
| | | | | | | 0 | | . | Enter| |
'----------------------------------' '----------------------------------'
.-------------. .-------------.
|Start1|Start2| | | |
.------+------+------| |------+------+------.
| | | Stop | | | | |
|Play1 |Play2 |------| |------| | |
| | | | | | | |
'--------------------' '--------------------'
```
## Keymap 2: Keymap 2: Media and mouse keys
```
,--------------------------------------------------. ,--------------------------------------------------.
| | | | | | | | | | | | | | | |
|--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
| | | | MsUp | | |MWhlUp| | | | | | | | |
|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
| | |MsLeft|MsDown|MsRght| |------| |------| Left | Down | Up |Right | | |
|--------+------+------+------+------+------|MWhlDn| | |------+------+------+------+------+--------|
| | | Rclk | Mclk | Lclk | | | | | | | | | | |
`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
| | | | | | | | | | | |
`----------------------------------' `----------------------------------'
,-------------. ,-------------.
| MRwd | MFwd | | MPrv | MNxt |
,------+------+------| |------+------+------.
| | | | |VolUp | | |
| Mute | |------| |------| | Play |
| | | | |VolDn | | |
`--------------------' `--------------------'
.--------------------------------------------------. .--------------------------------------------------.
| | | | | | | | | | | | | | | |
|--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
| | | | MsUp | | |MWhlUp| | | | | | | | |
|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
| | |MsLeft|MsDown|MsRght| |------| |------| Left | Down | Up |Right | | |
|--------+------+------+------+------+------|MWhlDn| | |------+------+------+------+------+--------|
| | | Rclk | Mclk | Lclk | | | | | | | | | | |
'--------+------+------+------+------+-------------' '-------------+------+------+------+------+--------'
| | | | | | | | | | | |
'----------------------------------' '----------------------------------'
.-------------. .-------------.
| MRwd | MFwd | | MPrv | MNxt |
.------+------+------| |------+------+------.
| | | | |VolUp | | |
| Mute | |------| |------| | Play |
| | | | |VolDn | | |
'--------------------' '--------------------'
```
## Keymap 3: K-Keys & User defined words
@@ -148,28 +152,31 @@ You can define the arguments (which must be quoted) using: `CFQ_WORD_[A-Z]`
eg: `-DCFQ_WORD_E=\"my@email.com\"`
```
,--------------------------------------------------. ,--------------------------------------------------.
| | F1 | F2 | F3 | F4 | F5 | F11 | | F12 | F6 | F7 | F8 | F9 | F10 | |
|--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
| | Q | W | E | R | T | | | | Y | U | I | O | P | |
|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
| | A | S | D | F | G |------| |------| H | J | K | L | | |
|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
| | Z | X | C | V | B | | | | N | M | | | | |
`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
| | | | | | | | | | | |
`----------------------------------' `----------------------------------'
,-------------. ,-------------.
| | | | | |
,------+------+------| |------+------+------.
| | | | | | | |
| | |------| |------| | |
| | | | | | | |
`--------------------' `--------------------'
.--------------------------------------------------. .--------------------------------------------------.
| | F1 | F2 | F3 | F4 | F5 | F11 | | F12 | F6 | F7 | F8 | F9 | F10 | |
|--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
| | Q | W | E | R | T | | | | Y | U | I | O | P | |
|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
| | A | S | D | F | G |------| |------| H | J | K | L | | |
|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
| | Z | X | C | V | B | | | | N | M | | | | |
'--------+------+------+------+------+-------------' '-------------+------+------+------+------+--------'
| | | | | | | | | | | |
'----------------------------------' '----------------------------------'
.-------------. .-------------.
| | | | | |
.------+------+------| |------+------+------.
| | | | | | | |
| | |------| |------| | |
| | | | | | | |
'--------------------' '--------------------'
```
## Changelog
- 2018/04/14
Add `CFQ_USE_80_KEYS` to optionally support an 80 key layout.
- 2018/03/08
Add `CFQ_USE_SHIFT_QUOTES` option.
Add `CFQ_USER_KEY8` key.

View File

@@ -76,7 +76,7 @@
#if defined(B5_AUDIO)
#define BPIN_AUDIO
#define BPIN_SET_DIRECTION DDRC |= _BV(PORTB5);
#define BPIN_SET_DIRECTION DDRB |= _BV(PORTB5);
#define INIT_AUDIO_COUNTER_1 TCCR1A = (0 << COM1A1) | (0 << COM1A0) | (1 << WGM11) | (0 << WGM10);
#define ENABLE_AUDIO_COUNTER_1_ISR TIMSK1 |= _BV(OCIE1A)
#define DISABLE_AUDIO_COUNTER_1_ISR TIMSK1 &= ~_BV(OCIE1A)
@@ -88,7 +88,7 @@
#endif
#if defined(B6_AUDIO)
#define BPIN_AUDIO
#define BPIN_SET_DIRECTION DDRC |= _BV(PORTB6);
#define BPIN_SET_DIRECTION DDRB |= _BV(PORTB6);
#define INIT_AUDIO_COUNTER_1 TCCR1A = (0 << COM1B1) | (0 << COM1B0) | (1 << WGM11) | (0 << WGM10);
#define ENABLE_AUDIO_COUNTER_1_ISR TIMSK1 |= _BV(OCIE1B)
#define DISABLE_AUDIO_COUNTER_1_ISR TIMSK1 &= ~_BV(OCIE1B)
@@ -100,7 +100,7 @@
#endif
#if defined(B7_AUDIO)
#define BPIN_AUDIO
#define BPIN_SET_DIRECTION DDRC |= _BV(PORTB7);
#define BPIN_SET_DIRECTION DDRB |= _BV(PORTB7);
#define INIT_AUDIO_COUNTER_1 TCCR1A = (0 << COM1C1) | (0 << COM1C0) | (1 << WGM11) | (0 << WGM10);
#define ENABLE_AUDIO_COUNTER_1_ISR TIMSK1 |= _BV(OCIE1C)
#define DISABLE_AUDIO_COUNTER_1_ISR TIMSK1 &= ~_BV(OCIE1C)
@@ -187,16 +187,11 @@ void audio_init()
// Set audio ports as output
#ifdef CPIN_AUDIO
CPIN_SET_DIRECTION
DISABLE_AUDIO_COUNTER_3_ISR;
#endif
#ifdef BPIN_AUDIO
BPIN_SET_DIRECTION
#endif
#ifdef CPIN_AUDIO
DISABLE_AUDIO_COUNTER_3_ISR;
#endif
#ifdef BPIN_AUDIO
DISABLE_AUDIO_COUNTER_1_ISR;
DISABLE_AUDIO_COUNTER_1_ISR;
#endif
// TCCR3A / TCCR3B: Timer/Counter #3 Control Registers TCCR3A/TCCR3B, TCCR1A/TCCR1B