Remove non-default keymaps
This commit is contained in:
@@ -1,199 +0,0 @@
|
||||
[
|
||||
{
|
||||
"name": "AB's Practical Keymap for Planck",
|
||||
"author": "Anand Babu Periasamy"
|
||||
},
|
||||
[
|
||||
{
|
||||
"fa": [
|
||||
2,
|
||||
2,
|
||||
0,
|
||||
2
|
||||
]
|
||||
},
|
||||
"F1\n1\n\n!\n\n\n\n\n\nTab",
|
||||
"F2\n2\n\n@\n\n\n\n\n\nQ",
|
||||
"F3\n3\n\n#\n\n\n\n\n\nW",
|
||||
"F4\n4\n\n$\n\n\n\n\n\nE",
|
||||
"F5\n5\n\n%\n\n\n\n\n\nR",
|
||||
"F6\n6\n\n^\n\n\n\n\n\nT",
|
||||
"F7\n7\n\n&\n\n\n\n\n\nY",
|
||||
"F8\n8\n\n*\n\n\n\n\n\nU",
|
||||
"F9\n9\n\n(\n\n\n\n\n\nI",
|
||||
"F10\n0\n\n)\n\n\n\n\n\nO",
|
||||
"F11\n-\n\n_\n\n\n\n\n\nP",
|
||||
"F12\n=\n\n+\n\n\n\n\n\n<i class=\"fa fa-chevron-circle-left\" aria-hidden=\"true\"></i>"
|
||||
],
|
||||
[
|
||||
{
|
||||
"a": 7,
|
||||
"f": 3
|
||||
},
|
||||
"Ctrl",
|
||||
{
|
||||
"f": 3
|
||||
},
|
||||
"A",
|
||||
{
|
||||
"f": 3
|
||||
},
|
||||
"S",
|
||||
{
|
||||
"f": 3
|
||||
},
|
||||
"D",
|
||||
{
|
||||
"c": "#c4bcbc",
|
||||
"a": 4,
|
||||
"f": 3
|
||||
},
|
||||
"\n(\n\n\n\n\n\n\n\nF",
|
||||
{
|
||||
"c": "#cccccc",
|
||||
"f": 3
|
||||
},
|
||||
"\n)\n\n\n\n\n\n\n\nG",
|
||||
{
|
||||
"f": 3
|
||||
},
|
||||
"\\\n\n\n\n\n\n\n\n\nH",
|
||||
{
|
||||
"c": "#c4bcbc",
|
||||
"f": 3
|
||||
},
|
||||
"|\n\n\n\n\n\n\n\n\nJ",
|
||||
{
|
||||
"c": "#cccccc",
|
||||
"a": 7,
|
||||
"f": 3
|
||||
},
|
||||
"K",
|
||||
{
|
||||
"f": 3
|
||||
},
|
||||
"L",
|
||||
{
|
||||
"a": 6,
|
||||
"f": 3
|
||||
},
|
||||
";\n\n:",
|
||||
{
|
||||
"f": 3
|
||||
},
|
||||
"'\n\n\""
|
||||
],
|
||||
[
|
||||
{
|
||||
"a": 7,
|
||||
"f": 3
|
||||
},
|
||||
"Shift",
|
||||
{
|
||||
"f": 3
|
||||
},
|
||||
"Z",
|
||||
{
|
||||
"f": 3
|
||||
},
|
||||
"X",
|
||||
{
|
||||
"f": 3
|
||||
},
|
||||
"C",
|
||||
{
|
||||
"a": 4,
|
||||
"fa": [
|
||||
2,
|
||||
2,
|
||||
0,
|
||||
2,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
2
|
||||
]
|
||||
},
|
||||
"\n[\n\n\n\n\n\n\n\nV",
|
||||
"\n]\n\n\n\n\n\n\n\nB",
|
||||
{
|
||||
"fa": [
|
||||
0,
|
||||
2,
|
||||
0,
|
||||
2,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
2
|
||||
]
|
||||
},
|
||||
"`\n{\n\n\n\n\n\n\n\nN",
|
||||
"~\n}\n\n\n\n\n\n\n\nM",
|
||||
{
|
||||
"a": 6
|
||||
},
|
||||
",\n\n<",
|
||||
".\n\n>",
|
||||
"/\n\n?",
|
||||
{
|
||||
"a": 7
|
||||
},
|
||||
"Shift ↵"
|
||||
],
|
||||
[
|
||||
{
|
||||
"a": 4,
|
||||
"fa": [
|
||||
2,
|
||||
2
|
||||
]
|
||||
},
|
||||
"<i class='fa fa-download'></i>\n<i class='fa fa-lightbulb-o'></i>\n\n\n\n\n\n\n\nCtrl",
|
||||
"\n<i class=\"fa fa-search\" aria-hidden=\"true\"></i>\n\n\n\n\n\n\n\nEsc",
|
||||
"\n<i class=\"fa fa-search-minus\" aria-hidden=\"true\"></i>\n\n\n\n\n\n\n\n<i class='fa fa-linux'></i>",
|
||||
"\n<i class=\"fa fa-search-plus\" aria-hidden=\"true\"></i>\n\n\n\n\n\n\n\nAlt",
|
||||
{
|
||||
"a": 7,
|
||||
"f": 3
|
||||
},
|
||||
"<i class='fa fa-sort-down'></i>",
|
||||
{
|
||||
"a": 4,
|
||||
"fa": [
|
||||
1,
|
||||
1
|
||||
],
|
||||
"w": 2
|
||||
},
|
||||
"PgUp\nPgDn\n\n\n\n\n\n\n\nSpace",
|
||||
{
|
||||
"a": 7,
|
||||
"f": 3
|
||||
},
|
||||
"<i class='fa fa-sort-up'></i>",
|
||||
{
|
||||
"a": 4,
|
||||
"fa": [
|
||||
2
|
||||
]
|
||||
},
|
||||
"<i class=\"fa fa-undo\" aria-hidden=\"true\"></i>\n\n\n\n\n\n\n\n\n<i class=\"fa fa-long-arrow-left\" aria-hidden=\"true\"></i>",
|
||||
{
|
||||
"f": 3
|
||||
},
|
||||
"<i class='fa fa-volume-down'></i>\n\n\n\n\n\n\n\n\n<i class=\"fa fa-long-arrow-down\" aria-hidden=\"true\"></i>",
|
||||
{
|
||||
"f": 3
|
||||
},
|
||||
"<i class='fa fa-volume-up'></i>\n\n\n\n\n\n\n\n\n<i class=\"fa fa-long-arrow-up\" aria-hidden=\"true\"></i>",
|
||||
{
|
||||
"f": 3
|
||||
},
|
||||
"<i class='fa fa-volume-off'></i>\n\n\n\n\n\n\n\n\n<i class=\"fa fa-long-arrow-right\" aria-hidden=\"true\"></i>"
|
||||
]
|
||||
]
|
||||
@@ -1,131 +0,0 @@
|
||||
|
||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
|
||||
#include "planck.h"
|
||||
#include "action_layer.h"
|
||||
#include "eeconfig.h"
|
||||
#ifdef BACKLIGHT_ENABLE
|
||||
#include "backlight.h"
|
||||
#endif
|
||||
|
||||
extern keymap_config_t keymap_config;
|
||||
|
||||
// Symbolic names for macro IDs.
|
||||
#define _QWERTY 0 // QUERTY layer
|
||||
#define _LOWER 1 // Lower layer
|
||||
#define _RAISE 2 // Raise layer
|
||||
#define _CUSTOM 3 // Custom layer (LOWER + RAISE)
|
||||
#define _BL 4 // Backlight
|
||||
#define _MOB 5 // Mobile#
|
||||
#define _CUS1 6 // Custom macro 1
|
||||
#define _CUS2 7 // Custom macro 2
|
||||
|
||||
// Macro shortcuts.
|
||||
#define QWERTY M(_LOWER)
|
||||
#define LOWER M(_LOWER)
|
||||
#define RAISE M(_RAISE)
|
||||
#define CUSTOM M(_CUSTOM)
|
||||
#define BL M(_BL)
|
||||
#define MOB M(_MOB)
|
||||
#define CUS1 M(_CUS1)
|
||||
#define CUS2 M(_CUS2)
|
||||
|
||||
// Func macro definitions.
|
||||
#define LWR_PGDN FUNC(0) // Tap for PgDn, hold for LOWER
|
||||
#define RSE_PGUP FUNC(1) // Tap for PgUp, hold for RAISE
|
||||
#define CTL_CAPS FUNC(2) // Tap for Caps, hold for Ctrl (DOESN'T SEEM TO WORK)
|
||||
#define SFT_ENT FUNC(3) // Tap for Enter, hold for Shift
|
||||
#define ZM_NRM FUNC(4) // Zoom normal
|
||||
#define ZM_IN FUNC(5) // Zoom out
|
||||
#define ZM_OUT FUNC(6) // Zoom in
|
||||
#define EM_UNDO FUNC(7) // Emacs Undo
|
||||
|
||||
// Enable these functions using FUNC(n) macro.
|
||||
const uint16_t PROGMEM fn_actions[] = {
|
||||
[0] = ACTION_LAYER_TAP_KEY(_LOWER, KC_PGDN),
|
||||
[1] = ACTION_LAYER_TAP_KEY(_RAISE, KC_PGUP),
|
||||
[2] = ACTION_MODS_TAP_KEY(MOD_LCTL, KC_CAPS),
|
||||
[3] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_ENT),
|
||||
[4] = ACTION_MODS_KEY(MOD_LCTL, KC_0),
|
||||
[5] = ACTION_MODS_KEY(MOD_LCTL, KC_MINS),
|
||||
[6] = ACTION_MODS_KEY(MOD_LCTL, KC_PLUS),
|
||||
[7] = ACTION_MODS_KEY(MOD_LCTL, KC_UNDS),
|
||||
};
|
||||
|
||||
// This config can be found at Keyboard layout editor site: http://goo.gl/zjXL2l
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_QWERTY] = { /* QWERTY */
|
||||
{KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC},
|
||||
{KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},
|
||||
{KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ENT},
|
||||
{KC_LCTL, KC_ESC, KC_LGUI, KC_LALT, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
|
||||
},
|
||||
[_LOWER] = { /* LOWER */
|
||||
{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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LPRN, KC_RPRN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS},
|
||||
{KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_LCBR, KC_RCBR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS},
|
||||
{BL, ZM_NRM, ZM_IN, ZM_OUT, KC_TRNS, KC_PGDN, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}
|
||||
},
|
||||
[_RAISE] = { /* RAISE */
|
||||
{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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BSLS, KC_PIPE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS},
|
||||
{KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_GRV, KC_TILD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS},
|
||||
{RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_PGUP, KC_TRNS, EM_UNDO, KC_VOLD, KC_VOLU, KC_MUTE}
|
||||
},
|
||||
[_CUSTOM] = { /* CUSTOM */
|
||||
{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, 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, MOB, KC_TRNS, CUS1, CUS2, 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, KC_TRNS, KC_TRNS}
|
||||
}
|
||||
};
|
||||
|
||||
// Set a layer persistently.
|
||||
void persistent_default_layer_set(uint16_t default_layer) {
|
||||
eeconfig_update_default_layer(default_layer);
|
||||
default_layer_set(default_layer);
|
||||
}
|
||||
|
||||
// Macro actions for each corresponding ID.
|
||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
|
||||
{
|
||||
switch(id) {
|
||||
case _RAISE: // Raised layer.
|
||||
if (record->event.pressed) {
|
||||
layer_on(_RAISE);
|
||||
update_tri_layer(_LOWER, _RAISE, _CUSTOM);
|
||||
} else {
|
||||
layer_off(_RAISE);
|
||||
update_tri_layer(_LOWER, _RAISE, _CUSTOM);
|
||||
}
|
||||
break;
|
||||
case _LOWER: // Lowered layer.
|
||||
if (record->event.pressed) {
|
||||
layer_on(_LOWER);
|
||||
update_tri_layer(_LOWER, _RAISE, _CUSTOM);
|
||||
} else {
|
||||
layer_off(_LOWER);
|
||||
update_tri_layer(_LOWER, _RAISE, _CUSTOM);
|
||||
}
|
||||
break;
|
||||
case _BL: // Backlight
|
||||
if (record->event.pressed) {
|
||||
register_code(KC_RSFT);
|
||||
#ifdef BACKLIGHT_ENABLE
|
||||
backlight_step();
|
||||
#endif
|
||||
} else {
|
||||
unregister_code(KC_RSFT);
|
||||
}
|
||||
break;
|
||||
case _MOB: // Your mobile# here.
|
||||
return MACRODOWN(T(1), T(2), T(3), T(MINS),
|
||||
T(1), T(2), T(3), T(MINS),
|
||||
T(1), T(2), T(3), T(4),
|
||||
END);
|
||||
case _CUS1: // Your custom macro 1
|
||||
return MACRODOWN(T(E), T(M), T(A), T(C), T(S), T(SPC), END);
|
||||
case _CUS2: // Your custom macro 2
|
||||
return MACRODOWN(T(L), T(S), T(SPC), T(MINS), T(L), T(ENT), END);
|
||||
};
|
||||
return MACRO_NONE;
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
# Practical keymap for Planck Ortholinear 40% Mechanical Keyboard
|
||||
A practical keymap that emulates standard QWERTY keyboard for Planck. Once you get comfortable with this keymap, you may fork and customize it for your own needs.
|
||||
|
||||

|
||||

|
||||
|
||||
* Online keyboard layout editor: http://www.keyboard-layout-editor.com/#/gists/bda299020baaafe6a2a4a82e615e3cfc
|
||||
|
||||
# Programming Instructions:
|
||||
Enter into programming mode and run the following command.
|
||||
```
|
||||
$ sudo KEYMAP=ab make dfu
|
||||
```
|
||||
# Notes
|
||||
* Simultaneous RAISE+LOWER enters CUSTOM layer. You may add your own macros and custom keys here.
|
||||
* RAISE and LOWER also acts as PgUp and PgDn when tapped.
|
||||
* [CapsLock] also acts as [Ctrl] key when you press and hold. It is convenient for GNU Emacs users.
|
||||
* Bracket keys are placed in the center of the keyboard for programmer's convenience.
|
||||
@@ -1,60 +0,0 @@
|
||||
#----------------------------------------------------------------------------
|
||||
# On command line:
|
||||
#
|
||||
# make all = Make software.
|
||||
#
|
||||
# make clean = Clean out built project files.
|
||||
#
|
||||
# make coff = Convert ELF to AVR COFF.
|
||||
#
|
||||
# make extcoff = Convert ELF to AVR Extended COFF.
|
||||
#
|
||||
# make program = Download the hex file to the device.
|
||||
# Please customize your programmer settings(PROGRAM_CMD)
|
||||
#
|
||||
# make teensy = Download the hex file to the device, using teensy_loader_cli.
|
||||
# (must have teensy_loader_cli installed).
|
||||
#
|
||||
# make dfu = Download the hex file to the device, using dfu-programmer (must
|
||||
# have dfu-programmer installed).
|
||||
#
|
||||
# make flip = Download the hex file to the device, using Atmel FLIP (must
|
||||
# have Atmel FLIP installed).
|
||||
#
|
||||
# make dfu-ee = Download the eeprom file to the device, using dfu-programmer
|
||||
# (must have dfu-programmer installed).
|
||||
#
|
||||
# make flip-ee = Download the eeprom file to the device, using Atmel FLIP
|
||||
# (must have Atmel FLIP installed).
|
||||
#
|
||||
# make debug = Start either simulavr or avarice as specified for debugging,
|
||||
# with avr-gdb or avr-insight as the front end for debugging.
|
||||
#
|
||||
# make filename.s = Just compile filename.c into the assembler code only.
|
||||
#
|
||||
# make filename.i = Create a preprocessed source file for use in submitting
|
||||
# bug reports to the GCC project.
|
||||
#
|
||||
# To rebuild project do "make clean" then "make all".
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
# Build Options
|
||||
# change to "no" to disable the options, or define them in the makefile.mk in
|
||||
# the appropriate keymap folder that will get included automatically
|
||||
#
|
||||
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
|
||||
MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
|
||||
CONSOLE_ENABLE = no # Console for debug(+400)
|
||||
COMMAND_ENABLE = yes # Commands for debug and configuration
|
||||
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
|
||||
MIDI_ENABLE = no # MIDI controls
|
||||
AUDIO_ENABLE = no # Audio output on port C6
|
||||
UNICODE_ENABLE = no # Unicode
|
||||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
|
||||
|
||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||
|
||||
@@ -1,344 +0,0 @@
|
||||
#include "planck.h"
|
||||
#include "action_layer.h"
|
||||
#include "eeconfig.h"
|
||||
#include "keymap_uk.h"
|
||||
|
||||
extern keymap_config_t keymap_config;
|
||||
|
||||
enum planck_layers {
|
||||
_QWERTY,
|
||||
_MAC,
|
||||
_LOWER,
|
||||
_MLWR,
|
||||
_RAISE,
|
||||
_MRSE,
|
||||
_FUNC,
|
||||
_MFNC,
|
||||
_FUNC2,
|
||||
_MFNC2,
|
||||
_ADJUST,
|
||||
_MOUSE
|
||||
};
|
||||
|
||||
enum planck_keycodes {
|
||||
QWERTY = SAFE_RANGE,
|
||||
MAC,
|
||||
FUNC,
|
||||
MFNC,
|
||||
FUNC2,
|
||||
MFNC2,
|
||||
LOWER,
|
||||
MLWR,
|
||||
RAISE,
|
||||
MRSE,
|
||||
MOUSE,
|
||||
DYNAMIC_MACRO_RANGE
|
||||
};
|
||||
|
||||
#include "dynamic_macro.h"
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
/* Qwerty
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | Tab | A | S | D | F | G | H | J | K | L | ;: | Enter|
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | Shft | Z | X | C | V | B | N | M | ,< | .> | /? | Shft |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Raise | Shift| MENU | Ctrl | Fn2 |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_QWERTY] = LAYOUT_planck_grid(
|
||||
KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
|
||||
MT(MOD_LSFT, KC_TAB), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, MT(MOD_RSFT, KC_ENT),
|
||||
KC_LSHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSHIFT,
|
||||
MO(_FUNC), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_BSPC, KC_SPC, RAISE, KC_LSHIFT, KC_BTN2, KC_RCTL, MO(_FUNC2)
|
||||
),
|
||||
|
||||
/* Function
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | 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 |Mouse | MENU | Alt | Ctrl | Fn |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_FUNC] = LAYOUT_planck_grid(
|
||||
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
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | 1! | 2" | 3£ | 4$ | 5% | 6^ | 7& | 8* | 9( | 0) | DEL | Bksp |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | ! | " | £ | $ | % | ^ | & | * | ( | ) |WrdDel|WrdBks|
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | Shift| \| | `¬ | #~ | '@ | -_ | =+ | #~ | [{ | ]} | '@ |Shift |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | |Lower | Del |Space | | Next | Vol- | Vol+ | Play |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_LOWER] = LAYOUT_planck_grid(
|
||||
KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, KC_BSPC,
|
||||
LSFT(KC_1), LSFT(KC_2), LSFT(KC_3), LSFT(KC_4), LSFT(KC_5), LSFT(KC_6), LSFT(KC_7), LSFT(KC_8), LSFT(KC_9), LSFT(KC_0), LCTL(KC_DEL), LCTL(KC_BSPC),
|
||||
KC_LSPO, KC_NONUS_BSLASH, KC_GRAVE, KC_NONUS_HASH, KC_QUOT, KC_MINS, KC_EQL, KC_NONUS_HASH, KC_LBRC, KC_RBRC, KC_QUOT, MT(MOD_RSFT, KC_ENT),
|
||||
_______, _______, _______, _______, _______, KC_DEL, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
|
||||
),
|
||||
|
||||
/* Raise
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | ` | |WRDSEL| [ | ] | | | PGUP | HOME |PGDOWN| |PRNTSC|
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | ` | | | ( | ) | | | HOME | UP | END | |ZOOM +|
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | | | | { | } | | |< | LEFT | DOWN |RIGHT | >| |ZOOM -|
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | Mouse| | | | | Alt | Enter|Raise | | | | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_RAISE] = LAYOUT_planck_grid(
|
||||
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| | | REC1 | REC2 | | | | | Del |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | CAPS | | | | | PLAY1| PLAY2| Mute | Vol+ | Play | | |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | PC/MC| | | | | STOP | STOP | Prev | Vol- | Next | | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | | | | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_ADJUST] = LAYOUT_planck_grid(
|
||||
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] = LAYOUT_planck_grid(
|
||||
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, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
/* Function 2 (Right hand side)
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | | |WRDSEL| | | | LNDEL| | | | | |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | | | LNSEL| DUP | | | | |LNJOIN| | | |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | | UNDO | CUT | COPY | PASTE| | | | | | | MODE |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | | | | | | | | | | | | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_FUNC2] = LAYOUT_planck_grid(
|
||||
_______, _______, M(1), _______, _______, _______, M(5), _______, _______, _______, _______, _______,
|
||||
_______, _______, M(3), M(7), _______, _______, _______, M(10), _______, _______, _______, _______,
|
||||
_______, LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), _______, _______, _______, _______, _______, _______, M(98) ,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
[_MAC] = LAYOUT_planck_grid(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
MFNC, _______, _______, _______, MLWR, _______, _______, MRSE, _______, _______, _______, MFNC2
|
||||
),
|
||||
|
||||
[_MLWR] = LAYOUT_planck_grid(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
[_MRSE] = LAYOUT_planck_grid(
|
||||
_______, _______, M(2), _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, LCTL(KC_A), _______, LCTL(KC_E), _______, LGUI(KC_EQL),
|
||||
_______, _______, _______, _______, _______, _______, LALT(KC_LEFT), _______, _______, _______, LALT(KC_RIGHT), LGUI(KC_MINS),
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
[_MFNC]= LAYOUT_planck_grid(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, LGUI(KC_PENT),
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
[_MFNC2] = LAYOUT_planck_grid(
|
||||
_______, _______, M(2), _______, _______, _______, M(6), _______, _______, _______, _______, _______,
|
||||
_______, _______, M(4), M(8), _______, _______, _______, M(10), _______, _______, _______, _______,
|
||||
_______, LGUI(KC_Z), LGUI(KC_X), LGUI(KC_C), LGUI(KC_V), _______, _______, _______, _______, _______, _______, M(99) ,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
)
|
||||
|
||||
};
|
||||
|
||||
void persistant_default_layer_set(uint16_t default_layer) {
|
||||
eeconfig_update_default_layer(default_layer);
|
||||
default_layer_set(default_layer);
|
||||
}
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
|
||||
if (!process_record_dynamic_macro(keycode, record)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
switch (keycode) {
|
||||
case QWERTY:
|
||||
if (record->event.pressed) {
|
||||
persistant_default_layer_set(1UL<<_QWERTY);
|
||||
}
|
||||
return false;
|
||||
case LOWER:
|
||||
if (record->event.pressed) {
|
||||
layer_on(_LOWER);
|
||||
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
||||
} else {
|
||||
layer_off(_LOWER);
|
||||
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
||||
}
|
||||
return false;
|
||||
case RAISE:
|
||||
if (record->event.pressed) {
|
||||
layer_on(_RAISE);
|
||||
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
||||
} else {
|
||||
layer_off(_RAISE);
|
||||
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
||||
}
|
||||
return false;
|
||||
case MLWR:
|
||||
if (record->event.pressed) {
|
||||
layer_on(_LOWER);
|
||||
layer_on(_MLWR);
|
||||
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
||||
} else {
|
||||
layer_off(_LOWER);
|
||||
layer_off(_MLWR);
|
||||
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
||||
}
|
||||
return false;
|
||||
case MRSE:
|
||||
if (record->event.pressed) {
|
||||
layer_on(_RAISE);
|
||||
layer_on(_MRSE);
|
||||
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
||||
} else {
|
||||
layer_off(_RAISE);
|
||||
layer_off(_MRSE);
|
||||
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
||||
}
|
||||
return false;
|
||||
case MFNC:
|
||||
if (record->event.pressed) {
|
||||
layer_on(_FUNC);
|
||||
layer_on(_MFNC);
|
||||
} else {
|
||||
layer_off(_FUNC);
|
||||
layer_off(_MFNC);
|
||||
}
|
||||
return false;
|
||||
case MFNC2:
|
||||
if (record->event.pressed) {
|
||||
layer_on(_FUNC2);
|
||||
layer_on(_MFNC2);
|
||||
} else {
|
||||
layer_off(_FUNC2);
|
||||
layer_off(_MFNC2);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
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;
|
||||
|
||||
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;
|
||||
|
||||
case 3: // Line Select
|
||||
SEND_STRING(SS_TAP(X_HOME) SS_DOWN(X_LSHIFT) SS_TAP(X_END) SS_UP(X_LSHIFT));
|
||||
return false;
|
||||
|
||||
case 4: // Line Select Mac
|
||||
SEND_STRING(SS_LCTRL("a") SS_DOWN(X_LSHIFT) SS_LCTRL("e") SS_UP(X_LSHIFT));
|
||||
return false;
|
||||
|
||||
case 5: // Line Delete
|
||||
SEND_STRING(SS_TAP(X_HOME) SS_DOWN(X_LSHIFT) SS_TAP(X_END) SS_UP(X_LSHIFT));
|
||||
SEND_STRING(SS_TAP(X_BSPACE));
|
||||
return false;
|
||||
|
||||
case 6: // Line Delete Mac
|
||||
SEND_STRING(SS_LCTRL("a") SS_DOWN(X_LSHIFT) SS_LCTRL("e") SS_UP(X_LSHIFT));
|
||||
SEND_STRING(SS_TAP(X_BSPACE));
|
||||
return false;
|
||||
|
||||
case 7: // Duplicate Selection
|
||||
SEND_STRING(SS_LCTRL("c") SS_TAP(X_RIGHT) SS_LCTRL("v"));
|
||||
return false;
|
||||
|
||||
case 8: // Duplicate Selection Mac
|
||||
SEND_STRING(SS_LGUI("c") SS_TAP(X_RIGHT) SS_LGUI("v"));
|
||||
return false;
|
||||
|
||||
case 9: // Join line
|
||||
SEND_STRING(SS_TAP(X_END) SS_TAP(X_DELETE));
|
||||
return false;
|
||||
|
||||
case 10: // Join line Mac
|
||||
SEND_STRING(SS_LCTRL("e") SS_TAP(X_DELETE));
|
||||
return false;
|
||||
|
||||
case 98: // Print mode
|
||||
SEND_STRING("PC");
|
||||
return false;
|
||||
|
||||
case 99: // Print mode
|
||||
SEND_STRING("OSX");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return MACRO_NONE;
|
||||
};
|
||||
@@ -1,108 +0,0 @@
|
||||
# AJP10304 Custom Planck Layout
|
||||
# Also available for the Atreus50 and JJ40
|
||||
|
||||
**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.
|
||||
|
||||
####Flashing
|
||||
Rev <=5: sudo make planck:ajp10304:dfu
|
||||
Rev 6: sudo make planck/rev6:ajp10304:dfu-util
|
||||
|
||||
##### Main Qwerty Layer
|
||||
|
||||
* Tab: when held, operates as shift.
|
||||
* Enter: when held, operates as shift.
|
||||
* MENU: perform right-click
|
||||
|
||||
| | | | | | | | | | | | |
|
||||
| ---- |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| ----:|
|
||||
| Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp |
|
||||
| Tab | A | S | D | F | G | H | J | K | L | ;: | Enter|
|
||||
| Shft | Z | X | C | V | B | N | M | ,< | .> | /? | Shft |
|
||||
| Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Raise | Shift| MENU | Ctrl | Fn2 |
|
||||
|
||||
##### Function Layer
|
||||
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 |Mouse | MENU | Alt | Ctrl | Fn2 |
|
||||
|
||||
##### 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.
|
||||
* WrdDel: `delete` with `ctrl` applied. I.e. forward delete a word.
|
||||
|
||||
| | | | | | | | | | | | |
|
||||
| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
|
||||
| 1! | 2" | 3£ | 4$ | 5% | 6^ | 7& | 8* | 9( | 0) | DEL | Bksp |
|
||||
| ! | " | £ | $ | % | ^ | & | * | ( | ) |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 +|
|
||||
| | | | { | } | ||<| LEFT | DOWN |RIGHT |>||ZOOM -|
|
||||
| Mouse | | | | | Alt | Enter |Raise | | | | |
|
||||
|
||||
##### 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.
|
||||
* Macro functions: 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.
|
||||
* MAC: Toggle MAC OS extensions to layers. This allows MLWR to be enabled with LOWER,
|
||||
MRSE with RAISE, MFNC with FUNC and MFNC2 with FUNC2 respectively.
|
||||
|
||||
| | | | | | | | | | | | |
|
||||
| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
|
||||
| ???? | Reset|Qwerty| | | REC1 | REC2 | | | | | Del |
|
||||
| CAPS | | | | | PLAY1|PLAY2 | Mute | Vol+ | Play | | |
|
||||
| MAC | | | | | STOP1|STOP2 | Prev | Vol- | Next | | |
|
||||
| | | | | | | | | DYN | | | |
|
||||
|
||||
##### Function 2 Layer
|
||||
Activated when `fn` held in the above `qwerty` layer.
|
||||
* WRDSEL: Select the word where the cursor is.
|
||||
* LNDEL: Delete the line where the cursor is.
|
||||
* LNSEL: Select the line where the cursor is.
|
||||
* DUP: Duplicate the selected text.
|
||||
* LNJOIN: Join the line where the cursor is with the following line.
|
||||
* MODE: Print either `PC` or `OSX` depending on what layer mode is active.
|
||||
|
||||
| | | | | | | | | | | | |
|
||||
| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
|
||||
| | |WRDSEL| | | | LNDEL| | | | | |
|
||||
| | | LNSEL| DUP | | | | |LNJOIN| | | |
|
||||
| | UNDO | CUT | COPY | PASTE| | | | | | | MODE |
|
||||
| | | | | | | | | | | | |
|
||||
|
||||
##### Mouse Layer
|
||||
Activated when `fn` and `raise` held together.
|
||||
|
||||
| | | | | | | | | | | | |
|
||||
| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
|
||||
| ESC | | | | | | | | | | | |
|
||||
| ACC0 | ACC1 | ACC2 | | | | | BTN1 | UP | BTN2 | | |
|
||||
| ACC0 | ACC1 | ACC2 | | | | | LEFT | DOWN | RIGHT| | |
|
||||
| | | | | | | | | | | | |
|
||||
@@ -1,3 +0,0 @@
|
||||
AUDIO_ENABLE = no
|
||||
MOUSEKEY_ENABLE = yes
|
||||
|
||||
@@ -1,48 +0,0 @@
|
||||
#include "keymap.h"
|
||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
|
||||
#include "planck.h"
|
||||
#include "backlight.h"
|
||||
|
||||
#define _QW 0
|
||||
#define _LW 1
|
||||
#define _RS 2
|
||||
|
||||
// This layout tries to imitate the Atreus keyboard
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_QW] = { /* Qwerty */
|
||||
{KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC},
|
||||
{KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, MO(_LW)},
|
||||
{KC_TRNS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_TRNS},
|
||||
{M(0), KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, KC_SPC, KC_SPC, MO(_RS), KC_MINS, KC_QUOT, KC_ENT, KC_TRNS}
|
||||
},
|
||||
[_RS] = { /* RAISE */
|
||||
{KC_TRNS, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_PGUP, KC_7, KC_8, KC_9, KC_ASTR, KC_TRNS},
|
||||
{KC_TRNS, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_GRV, KC_PGDN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS},
|
||||
{KC_TRNS, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS},
|
||||
{KC_TRNS, KC_TRNS, KC_INS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_0, KC_EQL, KC_TRNS}
|
||||
},
|
||||
[_LW] = { /* LOWER */
|
||||
{KC_TRNS, KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS},
|
||||
{KC_TRNS, KC_DELETE, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_TRNS, KC_F4, KC_F5, KC_F6, KC_F11, KC_TRNS},
|
||||
{KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F12, KC_TRNS},
|
||||
{KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY, KC_TRNS}
|
||||
}
|
||||
};
|
||||
|
||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
|
||||
{
|
||||
// MACRODOWN only works in this function
|
||||
switch(id) {
|
||||
case 0:
|
||||
if (record->event.pressed) {
|
||||
register_code(KC_RSFT);
|
||||
backlight_step();
|
||||
} else {
|
||||
unregister_code(KC_RSFT);
|
||||
}
|
||||
break;
|
||||
}
|
||||
return MACRO_NONE;
|
||||
};
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
|
||||
|
||||
# Build Options
|
||||
# change to "no" to disable the options, or define them in the Makefile in
|
||||
# the appropriate keymap folder that will get included automatically
|
||||
#
|
||||
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
|
||||
MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
|
||||
CONSOLE_ENABLE = no # Console for debug(+400)
|
||||
COMMAND_ENABLE = yes # Commands for debug and configuration
|
||||
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
|
||||
MIDI_ENABLE = no # MIDI controls
|
||||
AUDIO_ENABLE = yes # Audio output on port C6
|
||||
UNICODE_ENABLE = no # Unicode
|
||||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
|
||||
|
||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||
|
||||
@@ -1,612 +0,0 @@
|
||||
|
||||
// const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
// .................................................................... BEAKL EZ
|
||||
#ifdef BEAKLEZ
|
||||
// ,-----------------------------------------------------------------------------------.
|
||||
// | Q | Y | O | U | K | ^Alt | ^GUI | F | G | R | C | V |
|
||||
// |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
// | H | I | E | A | " | ↑Alt | ↑GUI | L | S | T | N | W |
|
||||
// |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
// | ; | , | J | . | X | Caps |^Shift| B | D | M | P | Z |
|
||||
// |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
// | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right|
|
||||
// `-----------------------------------------------------------------------------------'
|
||||
|
||||
[_BASE] = {
|
||||
{KC_Q, KC_Y, KC_O, KC_U, KC_K, CNTR_TL, CNTR_TR, KC_F, KC_G, KC_R, KC_C, KC_V },
|
||||
{KC_H, KC_I, KC_E, HOME_A, TD_QUOT, CNTR_HL, CNTR_HR, KC_L, KC_S, KC_T, KC_N, KC_W },
|
||||
{KC_SCLN, KC_COMM, KC_J, KC_DOT, KC_X, CNTR_BL, CNTR_BR, KC_B, KC_D, KC_M, KC_P, KC_Z },
|
||||
{OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT},
|
||||
},
|
||||
|
||||
[_SHIFT] = {
|
||||
{S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_K), CNTR_TL, CNTR_TR, S(KC_F), S(KC_G), S(KC_R), S(KC_C), S(KC_V)},
|
||||
{S(KC_H), S(KC_I), S(KC_E), S(KC_A), TD_QUOT, CNTR_HL, CNTR_HR, S(KC_L), S(KC_S), S(KC_T), S(KC_N), S(KC_W)},
|
||||
{KC_SCLN, KC_COMM, S(KC_J), KC_DOT, S(KC_X), CNTR_BL, CNTR_BR, S(KC_B), S(KC_D), S(KC_M), S(KC_P), S(KC_Z)},
|
||||
{OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT},
|
||||
},
|
||||
|
||||
// ,-----------------------------------------------------------------------------------.
|
||||
// | Q | Y | O | U | K | ^Alt | ^GUI | F | G | R | C | V |
|
||||
// |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
// | H | I | E | A | " | ↑Alt | ↑GUI | L | S | T | N | W |
|
||||
// |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
// | : | ~ | J | ` | X | Caps |^Shift| B | D | M | P | Z |
|
||||
// |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
// | Ctrl | GUI | Alt | Esc | f() | Tab | Del | _ | Left | Down | Up | Right|
|
||||
// `-----------------------------------------------------------------------------------'
|
||||
|
||||
[_LSHIFT] = {
|
||||
{S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_K), CNTR_TL, CNTR_TR, S(KC_F), S(KC_G), S(KC_R), S(KC_C), S(KC_V)},
|
||||
{S(KC_H), S(KC_I), S(KC_E), S(KC_A), TD_DQOT, CNTR_HL, CNTR_HR, S(KC_L), S(KC_S), S(KC_T), S(KC_N), S(KC_W)},
|
||||
{TD_COLN, TD_TILD, S(KC_J), TD_GRV, S(KC_X), CNTR_BL, CNTR_BR, S(KC_B), S(KC_D), S(KC_M), S(KC_P), S(KC_Z)},
|
||||
{OS_CTL, OS_GUI, OS_ALT, LT_ESC, ___fn__, LT_TAB, KC_DEL, KC_UNDS, SL_LEFT, S_DOWN, S_UP, S_RGHT },
|
||||
},
|
||||
|
||||
// ,-----------------------------------------------------------------------------------.
|
||||
// | Q | Y | O | U | K | ^Alt | ^GUI | F | G | R | C | V |
|
||||
// |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
// | H | I | E | A | " | ↑Alt | ↑GUI | L | S | T | N | W |
|
||||
// |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
// | : | / | J | ? | X | Caps |^Shift| B | D | M | P | Z |
|
||||
// |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
// | Ctrl | GUI | Alt | Caps | - | ↑Tab | Bksp | f() | Left | Down | Up | Right|
|
||||
// `-----------------------------------------------------------------------------------'
|
||||
|
||||
[_RSHIFT] = {
|
||||
{S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_K), CNTR_TL, CNTR_TR, S(KC_F), S(KC_G), S(KC_R), S(KC_C), S(KC_V)},
|
||||
{S(KC_H), S(KC_I), S(KC_E), S(KC_A), TD_DQOT, CNTR_HL, CNTR_HR, S(KC_L), S(KC_S), S(KC_T), S(KC_N), S(KC_W)},
|
||||
{TD_COLN, KC_SLSH, S(KC_J), KC_QUES, S(KC_X), CNTR_BL, CNTR_BR, S(KC_B), S(KC_D), S(KC_M), S(KC_P), S(KC_Z)},
|
||||
{OS_CTL, OS_GUI, OS_ALT, KC_CAPS, KC_MINS, SL_TAB, LT_BSPC, ___fn__, SL_LEFT, S_DOWN, S_UP, S_RGHT },
|
||||
},
|
||||
#endif
|
||||
|
||||
// ..................................................................... BEAKL 8
|
||||
#ifdef BEAKL8
|
||||
// ,-----------------------------------------------------------------------------------.
|
||||
// | Q | Y | O | U | X | ^Alt | ^GUI | G | C | R | F | Z |
|
||||
// |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
// | K | H | E | A | . | ↑Alt | ↑GUI | D | S | T | N | B |
|
||||
// |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
// | J | ; | " | I | , | Caps |^Shift| W | M | L | P | V |
|
||||
// |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
// | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right|
|
||||
// `-----------------------------------------------------------------------------------'
|
||||
|
||||
[_BASE] = {
|
||||
{KC_Q, KC_Y, KC_O, KC_U, KC_X, CNTR_TL, CNTR_TR, KC_G, KC_C, KC_R, KC_F, KC_Z },
|
||||
{KC_K, KC_H, KC_E, HOME_A, KC_DOT, CNTR_HL, CNTR_HR, KC_D, KC_S, KC_T, KC_N, KC_B },
|
||||
{KC_J, KC_SCLN, TD_QUOT, KC_I, KC_COMM, CNTR_BL, CNTR_BR, KC_W, KC_M, KC_L, KC_P, KC_V },
|
||||
{OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT},
|
||||
},
|
||||
|
||||
[_SHIFT] = {
|
||||
{S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_X), CNTR_TL, CNTR_TR, S(KC_G), S(KC_C), S(KC_R), S(KC_F), S(KC_Z)},
|
||||
{S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_DOT, CNTR_HL, CNTR_HR, S(KC_D), S(KC_S), S(KC_T), S(KC_N), S(KC_B)},
|
||||
{S(KC_J), KC_SCLN, TD_QUOT, S(KC_I), KC_COMM, CNTR_BL, CNTR_BR, S(KC_W), S(KC_M), S(KC_L), S(KC_P), S(KC_V)},
|
||||
{OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT},
|
||||
},
|
||||
|
||||
// ,-----------------------------------------------------------------------------------.
|
||||
// | Q | Y | O | U | X | ^Alt | ^GUI | G | C | R | F | Z |
|
||||
// |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
// | K | H | E | A | ~ | ↑Alt | ↑GUI | D | S | T | N | B |
|
||||
// |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
// | J | : | " | I | ` | Caps |^Shift| W | M | L | P | V |
|
||||
// |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
// | Ctrl | GUI | Alt | Esc | f() | Tab | Del | _ | Left | Down | Up | Right|
|
||||
// `-----------------------------------------------------------------------------------'
|
||||
|
||||
[_LSHIFT] = {
|
||||
{S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_X), CNTR_TL, CNTR_TR, S(KC_G), S(KC_C), S(KC_R), S(KC_F), S(KC_Z)},
|
||||
{S(KC_K), S(KC_H), S(KC_E), S(KC_A), TD_TILD, CNTR_HL, CNTR_HR, S(KC_D), S(KC_S), S(KC_T), S(KC_N), S(KC_B)},
|
||||
{S(KC_J), TD_COLN, TD_DQOT, S(KC_I), TD_GRV, CNTR_BL, CNTR_BR, S(KC_W), S(KC_M), S(KC_L), S(KC_P), S(KC_V)},
|
||||
{OS_CTL, OS_GUI, OS_ALT, LT_ESC, ___fn__, LT_TAB, KC_DEL, KC_UNDS, SL_LEFT, S_DOWN, S_UP, S_RGHT },
|
||||
},
|
||||
|
||||
// ,-----------------------------------------------------------------------------------.
|
||||
// | Q | Y | O | U | X | ^Alt | ^GUI | G | C | R | F | Z |
|
||||
// |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
// | K | H | E | A | ? | ↑Alt | ↑GUI | D | S | T | N | B |
|
||||
// |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
// | J | : | " | I | / | Caps |^Shift| W | M | L | P | V |
|
||||
// |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
// | Ctrl | GUI | Alt | Caps | - | ↑Tab | Bksp | f() | Left | Down | Up | Right|
|
||||
// `-----------------------------------------------------------------------------------'
|
||||
|
||||
[_RSHIFT] = {
|
||||
{S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_X), CNTR_TL, CNTR_TR, S(KC_G), S(KC_C), S(KC_R), S(KC_F), S(KC_Z)},
|
||||
{S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_QUES, CNTR_HL, CNTR_HR, S(KC_D), S(KC_S), S(KC_T), S(KC_N), S(KC_B)},
|
||||
{S(KC_J), TD_COLN, TD_DQOT, S(KC_I), KC_SLSH, CNTR_BL, CNTR_BR, S(KC_W), S(KC_M), S(KC_L), S(KC_P), S(KC_V)},
|
||||
{OS_CTL, OS_GUI, OS_ALT, KC_CAPS, KC_MINS, SL_TAB, LT_BSPC, ___fn__, SL_LEFT, S_DOWN, S_UP, S_RGHT },
|
||||
},
|
||||
#endif
|
||||
|
||||
// .................................................................... BEAKL 8P
|
||||
#ifdef BEAKL8P
|
||||
// ,-----------------------------------------------------------------------------------.
|
||||
// | Q | Y | O | U | Z | ^Alt | ^GUI | G | D | R | F | X |
|
||||
// |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
// | K | H | E | A | . | ↑Alt | ↑GUI | C | T | S | N | B |
|
||||
// |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
// | J | ; | " | I | , | Caps |^Shift| W | M | L | P | V |
|
||||
// |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
// | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right|
|
||||
// `-----------------------------------------------------------------------------------'
|
||||
|
||||
[_BASE] = {
|
||||
{KC_Q, KC_Y, KC_O, KC_U, KC_Z, CNTR_TL, CNTR_TR, KC_G, KC_D, KC_R, KC_F, KC_X },
|
||||
{KC_K, KC_H, KC_E, HOME_A, KC_DOT, CNTR_HL, CNTR_HR, KC_C, KC_T, KC_S, KC_N, KC_B },
|
||||
{KC_J, KC_SCLN, TD_QUOT, KC_I, KC_COMM, CNTR_BL, CNTR_BR, KC_W, KC_M, KC_L, KC_P, KC_V },
|
||||
{OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT},
|
||||
},
|
||||
|
||||
[_SHIFT] = {
|
||||
{S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_R), S(KC_F), S(KC_X)},
|
||||
{S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_DOT, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_S), S(KC_N), S(KC_B)},
|
||||
{S(KC_J), KC_SCLN, TD_QUOT, S(KC_I), KC_COMM, CNTR_BL, CNTR_BR, S(KC_W), S(KC_M), S(KC_L), S(KC_P), S(KC_V)},
|
||||
{OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT},
|
||||
},
|
||||
|
||||
// ,-----------------------------------------------------------------------------------.
|
||||
// | Q | Y | { | } | $ | ^Alt | ^GUI | G | D | R | F | X |
|
||||
// |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
// | K | H | < | > | ~ | ↑Alt | ↑GUI | C | T | S | N | B |
|
||||
// |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
// | J | : | ! | = | ` | Caps |^Shift| W | M | L | P | V |
|
||||
// |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
// | Ctrl | GUI | Alt | Esc | f() | Tab | Del | _ | Left | Down | Up | Right|
|
||||
// `-----------------------------------------------------------------------------------'
|
||||
|
||||
[_LSHIFT] = {
|
||||
{S(KC_Q), S(KC_Y), KC_LCBR, KC_RCBR, KC_DLR, CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_R), S(KC_F), S(KC_X)},
|
||||
{S(KC_K), S(KC_H), TD_LT, TD_GT, TD_TILD, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_S), S(KC_N), S(KC_B)},
|
||||
{S(KC_J), KC_COLN, KC_EXLM, KC_EQL, TD_GRV, CNTR_BL, CNTR_BR, S(KC_W), S(KC_M), S(KC_L), S(KC_P), S(KC_V)},
|
||||
{OS_CTL, OS_GUI, OS_ALT, LT_ESC, ___fn__, LT_TAB, KC_DEL, KC_UNDS, SL_LEFT, S_DOWN, S_UP, S_RGHT },
|
||||
},
|
||||
|
||||
// ,-----------------------------------------------------------------------------------.
|
||||
// | Q | Y | O | U | Z | ^Alt | ^GUI | ^ | [ | ] | F | X |
|
||||
// |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
// | K | H | E | A | ? | ↑Alt | ↑GUI | | | ( | ) | N | B |
|
||||
// |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
// | J | : | " | I | / | Caps |^Shift| \ | $ | * | P | V |
|
||||
// |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
// | Ctrl | GUI | Alt | Caps | - | ↑Tab | Bksp | f() | Left | Down | Up | Right|
|
||||
// `-----------------------------------------------------------------------------------'
|
||||
|
||||
[_RSHIFT] = {
|
||||
{S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_Z), CNTR_TL, CNTR_TR, KC_CIRC, KC_LBRC, KC_RBRC, S(KC_F), S(KC_X)},
|
||||
{S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_QUES, CNTR_HL, CNTR_HR, KC_PIPE, KC_LPRN, KC_RPRN, S(KC_N), S(KC_B)},
|
||||
{S(KC_J), TD_COLN, TD_DQOT, S(KC_I), KC_SLSH, CNTR_BL, CNTR_BR, KC_BSLS, KC_DLR, KC_ASTR, S(KC_P), S(KC_V)},
|
||||
{OS_CTL, OS_GUI, OS_ALT, KC_CAPS, KC_MINS, SL_TAB, LT_BSPC, ___fn__, SL_LEFT, S_DOWN, S_UP, S_RGHT },
|
||||
},
|
||||
#endif
|
||||
|
||||
// ................................................................... BEAKL 8TX
|
||||
#ifdef BEAKL8TX
|
||||
// ,-----------------------------------------------------------------------------------.
|
||||
// | Q | Y | O | U | J | ^Alt | ^GUI | G | D | R | F | X |
|
||||
// |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
// | K | H | E | A | . | ↑Alt | ↑GUI | C | T | S | N | B |
|
||||
// |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
// | Z | ; | " | I | , | Caps |^Shift| W | M | L | P | V |
|
||||
// |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
// | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right|
|
||||
// `-----------------------------------------------------------------------------------'
|
||||
|
||||
[_BASE] = {
|
||||
{KC_Q, KC_Y, KC_O, KC_U, KC_J, CNTR_TL, CNTR_TR, KC_G, KC_D, KC_R, KC_F, KC_X },
|
||||
{HOME_K, HOME_H, HOME_E, HOME_A, KC_DOT, CNTR_HL, CNTR_HR, KC_C, HOME_T, HOME_S, HOME_N, HOME_B },
|
||||
{KC_Z, KC_SCLN, TD_QUOT, KC_I, KC_COMM, CNTR_BL, CNTR_BR, KC_W, KC_M, KC_L, KC_P, KC_V },
|
||||
{OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT},
|
||||
},
|
||||
|
||||
[_SHIFT] = {
|
||||
{S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_J), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_R), S(KC_F), S(KC_X)},
|
||||
{S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_DOT, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_S), S(KC_N), S(KC_B)},
|
||||
{S(KC_Z), KC_SCLN, TD_QUOT, S(KC_I), KC_COMM, CNTR_BL, CNTR_BR, S(KC_W), S(KC_M), S(KC_L), S(KC_P), S(KC_V)},
|
||||
{OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT},
|
||||
},
|
||||
|
||||
// ,-----------------------------------------------------------------------------------.
|
||||
// | Q | $ | { | } | J | ^Alt | ^GUI | G | D | R | F | X |
|
||||
// |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
// | K | / | < | > | ~ | ↑Alt | ↑GUI | C | T | S | N | B |
|
||||
// |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
// | Z | : | ! | = | ` | Caps |^Shift| W | M | L | P | V |
|
||||
// |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
// | Ctrl | GUI | Alt | Esc | f() | Tab | Del | _ | Left | Down | Up | Right|
|
||||
// `-----------------------------------------------------------------------------------'
|
||||
|
||||
[_LSHIFT] = {
|
||||
{S(KC_Q), KC_DLR, KC_LCBR, KC_RCBR, S(KC_J), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_R), S(KC_F), S(KC_X)},
|
||||
{S(KC_K), KC_SLSH, TD_LT, TD_GT, TD_TILD, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_S), S(KC_N), S(KC_B)},
|
||||
{S(KC_Z), KC_COLN, KC_EXLM, KC_EQL, TD_GRV, CNTR_BL, CNTR_BR, S(KC_W), S(KC_M), S(KC_L), S(KC_P), S(KC_V)},
|
||||
{OS_CTL, OS_GUI, OS_ALT, LT_ESC, ___fn__, LT_TAB, KC_DEL, KC_UNDS, SL_LEFT, S_DOWN, S_UP, S_RGHT },
|
||||
},
|
||||
|
||||
// ,-----------------------------------------------------------------------------------.
|
||||
// | Q | Y | O | U | J | ^Alt | ^GUI | G | [ | ] | ^ | X |
|
||||
// |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
// | K | H | E | A | ? | ↑Alt | ↑GUI | | | ( | ) | $ | B |
|
||||
// |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
// | Z | : | " | I | / | Caps |^Shift| \ | * | . | P | V |
|
||||
// |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
// | Ctrl | GUI | Alt | Caps | - | ↑Tab | Bksp | f() | Left | Down | Up | Right|
|
||||
// `-----------------------------------------------------------------------------------'
|
||||
|
||||
[_RSHIFT] = {
|
||||
{S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_J), CNTR_TL, CNTR_TR, S(KC_G), KC_LBRC, KC_RBRC, KC_CIRC, S(KC_X)},
|
||||
{S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_QUES, CNTR_HL, CNTR_HR, KC_PIPE, KC_LPRN, KC_RPRN, KC_DLR, S(KC_B)},
|
||||
{S(KC_Z), TD_COLN, TD_DQOT, S(KC_I), KC_SLSH, CNTR_BL, CNTR_BR, KC_BSLS, KC_ASTR, KC_DOT, S(KC_P), S(KC_V)},
|
||||
{OS_CTL, OS_GUI, OS_ALT, KC_CAPS, KC_MINS, SL_TAB, LT_BSPC, ___fn__, SL_LEFT, S_DOWN, S_UP, S_RGHT },
|
||||
},
|
||||
#endif
|
||||
|
||||
// ................................................................... BEAKL 8TT
|
||||
#ifdef BEAKL8TT
|
||||
// ,-----------------------------------------------------------------------------------.
|
||||
// | Q | Y | O | U | J | Fn | Caps | G | D | R | F | X |
|
||||
// |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
// | K | H | E | A | . |Cursor| Mouse| C | T | S | N | B |
|
||||
// |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
// | Z | ; | " | I | , | Num | Regex| W | M | L | P | V |
|
||||
// |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
// | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right|
|
||||
// `-----------------------------------------------------------------------------------'
|
||||
|
||||
[_BASE] = {
|
||||
{KC_Q, KC_Y, KC_O, KC_U, KC_J, CNTR_TL, CNTR_TR, KC_G, KC_D, KC_R, KC_F, KC_X },
|
||||
{HOME_K, HOME_H, HOME_E, HOME_A, KC_DOT, CNTR_HL, CNTR_HR, KC_C, HOME_T, HOME_S, HOME_N, HOME_B },
|
||||
{KC_Z, KC_SCLN, TD_QUOT, KC_I, KC_COMM, CNTR_BL, CNTR_BR, KC_W, KC_M, KC_L, KC_P, KC_V },
|
||||
{OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT},
|
||||
},
|
||||
|
||||
[_SHIFT] = {
|
||||
{S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_J), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_R), S(KC_F), S(KC_X)},
|
||||
{S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_DOT, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_S), S(KC_N), S(KC_B)},
|
||||
{S(KC_Z), KC_SCLN, TD_QUOT, S(KC_I), KC_COMM, CNTR_BL, CNTR_BR, S(KC_W), S(KC_M), S(KC_L), S(KC_P), S(KC_V)},
|
||||
{OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT},
|
||||
},
|
||||
|
||||
// ,-----------------------------------------------------------------------------------.
|
||||
// | Q | $ | { | } | J | Fn | Caps | G | D | R | F | X |
|
||||
// |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
// | K | / | < | > | ~ |Cursor| Mouse| C | T | S | N | B |
|
||||
// |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
// | Z | : | ! | = | ` | Num | Regex| W | M | L | P | V |
|
||||
// |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
// | Ctrl | GUI | Alt | Esc | f() | Tab | Del | _ | Left | Down | Up | Right|
|
||||
// `-----------------------------------------------------------------------------------'
|
||||
|
||||
[_LSHIFT] = {
|
||||
{S(KC_Q), KC_DLR, KC_LCBR, KC_RCBR, S(KC_J), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_R), S(KC_F), S(KC_X)},
|
||||
{S(KC_K), KC_SLSH, TD_LT, TD_GT, TD_TILD, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_S), S(KC_N), S(KC_B)},
|
||||
{S(KC_Z), KC_COLN, KC_EXLM, KC_EQL, TD_GRV, CNTR_BL, CNTR_BR, S(KC_W), S(KC_M), S(KC_L), S(KC_P), S(KC_V)},
|
||||
{OS_CTL, OS_GUI, OS_ALT, LT_ESC, ___fn__, LT_TAB, KC_DEL, KC_UNDS, SL_LEFT, S_DOWN, S_UP, S_RGHT },
|
||||
},
|
||||
|
||||
// ,-----------------------------------------------------------------------------------.
|
||||
// | Q | Y | O | U | J | Fn | Caps | G | [ | ] | ^ | X |
|
||||
// |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
// | K | H | E | A | ? |Cursor| Mouse| | | ( | ) | $ | B |
|
||||
// |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
// | Z | : | " | I | / | Num | Regex| \ | * | . | P | V |
|
||||
// |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
// | Ctrl | GUI | Alt | Caps | - | ↑Tab | Bksp | f() | Left | Down | Up | Right|
|
||||
// `-----------------------------------------------------------------------------------'
|
||||
|
||||
[_RSHIFT] = {
|
||||
{S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_J), CNTR_TL, CNTR_TR, S(KC_G), KC_LBRC, KC_RBRC, KC_CIRC, S(KC_X)},
|
||||
{S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_QUES, CNTR_HL, CNTR_HR, KC_PIPE, KC_LPRN, KC_RPRN, KC_DLR, S(KC_B)},
|
||||
{S(KC_Z), TD_COLN, TD_DQOT, S(KC_I), KC_SLSH, CNTR_BL, CNTR_BR, KC_BSLS, KC_ASTR, KC_DOT, S(KC_P), S(KC_V)},
|
||||
{OS_CTL, OS_GUI, OS_ALT, KC_CAPS, KC_MINS, SL_TAB, LT_BSPC, ___fn__, SL_LEFT, S_DOWN, S_UP, S_RGHT },
|
||||
},
|
||||
#endif
|
||||
|
||||
// .................................................................... BEAKL 10
|
||||
#ifdef BEAKL10
|
||||
// ,-----------------------------------------------------------------------------------.
|
||||
// | Q | H | O | U | X | ^Alt | ^GUI | G | D | N | M | V |
|
||||
// |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
// | Y | I | E | A | . | ↑Alt | ↑GUI | C | S | R | T | W |
|
||||
// |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
// | J | ; | " | , | Z | Caps |^Shift| B | P | L | F | K |
|
||||
// |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
// | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right|
|
||||
// `-----------------------------------------------------------------------------------'
|
||||
|
||||
[_BASE] = {
|
||||
{KC_Q, KC_H, KC_O, KC_U, KC_X, CNTR_TL, CNTR_TR, KC_G, KC_D, KC_N, KC_M, KC_V },
|
||||
{KC_Y, KC_I, KC_E, HOME_A, KC_DOT, CNTR_HL, CNTR_HR, KC_C, KC_S, KC_R, KC_T, KC_W },
|
||||
{KC_J, KC_SCLN, TD_QUOT, KC_COMM, KC_Z, CNTR_BL, CNTR_BR, KC_B, KC_P, KC_L, KC_F, KC_K },
|
||||
{OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT},
|
||||
},
|
||||
|
||||
[_SHIFT] = {
|
||||
{S(KC_Q), S(KC_H), S(KC_O), S(KC_U), S(KC_X), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_N), S(KC_M), S(KC_V)},
|
||||
{S(KC_Y), S(KC_I), S(KC_E), S(KC_A), KC_DOT, CNTR_HL, CNTR_HR, S(KC_C), S(KC_S), S(KC_R), S(KC_T), S(KC_W)},
|
||||
{S(KC_J), KC_SCLN, TD_QUOT, KC_COMM, S(KC_Z), CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_K)},
|
||||
{OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT},
|
||||
},
|
||||
|
||||
// ,-----------------------------------------------------------------------------------.
|
||||
// | Q | [ | ! | ] | X | ^Alt | ^GUI | G | D | N | M | V |
|
||||
// |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
// | Y | < | = | > | ~ | ↑Alt | ↑GUI | C | S | R | T | W |
|
||||
// |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
// | J | : | " | ` | Z | Caps |^Shift| B | P | L | F | K |
|
||||
// |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
// | Ctrl | GUI | Alt | Esc | f() | Tab | Del | _ | Left | Down | Up | Right|
|
||||
// `-----------------------------------------------------------------------------------'
|
||||
|
||||
[_LSHIFT] = {
|
||||
{S(KC_Q), TD_LBRC, KC_EXLM, TD_RBRC, S(KC_X), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_N), S(KC_M), S(KC_V)},
|
||||
{S(KC_Y), TD_LT, KC_EQL, TD_GT, TD_TILD, CNTR_HL, CNTR_HR, S(KC_C), S(KC_S), S(KC_R), S(KC_T), S(KC_W)},
|
||||
{S(KC_J), KC_COLN, TD_DQOT, TD_GRV, S(KC_Z), CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_K)},
|
||||
{OS_CTL, OS_GUI, OS_ALT, LT_ESC, ___fn__, LT_TAB, KC_DEL, KC_UNDS, SL_LEFT, S_DOWN, S_UP, S_RGHT },
|
||||
},
|
||||
|
||||
// ,-----------------------------------------------------------------------------------.
|
||||
// | Q | H | O | U | X | ^Alt | ^GUI | G | { | + | } | V |
|
||||
// |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
// | Y | I | E | A | ? | ↑Alt | ↑GUI | C | ( | * | ) | W |
|
||||
// |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
// | J | : | " | / | Z | Caps |^Shift| B | P | L | F | K |
|
||||
// |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
// | Ctrl | GUI | Alt | Caps | - | ↑Tab | Bksp | f() | Left | Down | Up | Right|
|
||||
// `-----------------------------------------------------------------------------------'
|
||||
|
||||
[_RSHIFT] = {
|
||||
{S(KC_Q), S(KC_H), S(KC_O), S(KC_U), S(KC_X), CNTR_TL, CNTR_TR, S(KC_G), TD_LCBR, KC_PLUS, TD_RCBR, S(KC_V)},
|
||||
{S(KC_Y), S(KC_I), S(KC_E), S(KC_A), KC_QUES, CNTR_HL, CNTR_HR, S(KC_C), TD_LPRN, KC_ASTR, TD_RPRN, S(KC_W)},
|
||||
{S(KC_J), TD_COLN, TD_DQOT, KC_SLSH, S(KC_Z), CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_K)},
|
||||
{OS_CTL, OS_GUI, OS_ALT, KC_CAPS, KC_MINS, SL_TAB, LT_BSPC, ___fn__, SL_LEFT, S_DOWN, S_UP, S_RGHT },
|
||||
},
|
||||
#endif
|
||||
|
||||
// ............................................................... BEAKL Mash Up
|
||||
#ifdef BEAKL810
|
||||
// ,-----------------------------------------------------------------------------------.
|
||||
// | Q | Y | O | U | Z | ^Alt | ^GUI | G | D | N | M | X |
|
||||
// |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
// | K | H | E | A | . | ↑Alt | ↑GUI | C | T | R | S | W |
|
||||
// |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
// | J | ; | " | I | , | Caps |^Shift| B | P | L | F | V |
|
||||
// |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
// | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right|
|
||||
// `-----------------------------------------------------------------------------------'
|
||||
|
||||
[_BASE] = {
|
||||
{KC_Q, KC_Y, KC_O, KC_U, KC_Z, CNTR_TL, CNTR_TR, KC_G, KC_D, KC_N, KC_M, KC_X },
|
||||
{KC_K, KC_H, KC_E, HOME_A, KC_DOT, CNTR_HL, CNTR_HR, KC_C, KC_T, KC_R, KC_S, KC_W },
|
||||
{KC_J, KC_SCLN, TD_QUOT, KC_I, KC_COMM, CNTR_BL, CNTR_BR, KC_B, KC_P, KC_L, KC_F, KC_V },
|
||||
{OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT},
|
||||
},
|
||||
|
||||
[_SHIFT] = {
|
||||
{S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_N), S(KC_M), S(KC_X)},
|
||||
{S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_DOT, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_R), S(KC_S), S(KC_W)},
|
||||
{S(KC_J), KC_SCLN, TD_QUOT, S(KC_I), KC_COMM, CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_V)},
|
||||
{OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT},
|
||||
},
|
||||
|
||||
// ,-----------------------------------------------------------------------------------.
|
||||
// | Q | Y | { | } | $ | ^Alt | ^GUI | G | D | N | M | X |
|
||||
// |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
// | K | H | < | > | ~ | ↑Alt | ↑GUI | C | T | R | S | W |
|
||||
// |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
// | J | : | ! | = | ` | Caps |^Shift| B | P | L | F | V |
|
||||
// |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
// | Ctrl | GUI | Alt | Esc | f() | Tab | Del | _ | Left | Down | Up | Right|
|
||||
// `-----------------------------------------------------------------------------------'
|
||||
|
||||
[_LSHIFT] = {
|
||||
{S(KC_Q), S(KC_Y), KC_LCBR, KC_RCBR, KC_DLR, CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_N), S(KC_M), S(KC_X)},
|
||||
{S(KC_K), S(KC_H), TD_LT, TD_GT, TD_TILD, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_R), S(KC_S), S(KC_W)},
|
||||
{S(KC_J), KC_COLN, KC_EXLM, KC_EQL, TD_GRV, CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_V)},
|
||||
{OS_CTL, OS_GUI, OS_ALT, LT_ESC, ___fn__, LT_TAB, KC_DEL, KC_UNDS, SL_LEFT, S_DOWN, S_UP, S_RGHT },
|
||||
},
|
||||
|
||||
// ,-----------------------------------------------------------------------------------.
|
||||
// | Q | Y | O | U | Z | ^Alt | ^GUI | ^ | [ | ] | M | X |
|
||||
// |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
// | K | H | E | A | ? | ↑Alt | ↑GUI | | | ( | ) | S | W |
|
||||
// |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
// | J | : | " | I | / | Caps |^Shift| \ | $ | * | F | V |
|
||||
// |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
// | Ctrl | GUI | Alt | Caps | - | ↑Tab | Bksp | f() | Left | Down | Up | Right|
|
||||
// `-----------------------------------------------------------------------------------'
|
||||
|
||||
[_RSHIFT] = {
|
||||
{S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_Z), CNTR_TL, CNTR_TR, KC_CIRC, KC_LBRC, KC_RBRC, S(KC_M), S(KC_X)},
|
||||
{S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_QUES, CNTR_HL, CNTR_HR, KC_PIPE, KC_LPRN, KC_RPRN, S(KC_S), S(KC_W)},
|
||||
{S(KC_J), TD_COLN, TD_DQOT, S(KC_I), KC_SLSH, CNTR_BL, CNTR_BR, KC_BSLS, KC_DLR, KC_ASTR, S(KC_F), S(KC_V)},
|
||||
{OS_CTL, OS_GUI, OS_ALT, KC_CAPS, KC_MINS, SL_TAB, LT_BSPC, ___fn__, SL_LEFT, S_DOWN, S_UP, S_RGHT },
|
||||
},
|
||||
#endif
|
||||
|
||||
// .................................................................... BEAKL MU
|
||||
#ifdef BEAKLMU
|
||||
// ,-----------------------------------------------------------------------------------.
|
||||
// | Q | Y | O | U | Z | Fn | Caps | G | D | N | M | X |
|
||||
// |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
// | K | H | E | A | . |Cursor| Mouse| C | T | R | S | W |
|
||||
// |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
// | J | ; | " | I | , | Num | Regex| B | P | L | F | V |
|
||||
// |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
// | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right|
|
||||
// `-----------------------------------------------------------------------------------'
|
||||
|
||||
[_BASE] = {
|
||||
{KC_Q, KC_Y, KC_O, KC_U, KC_Z, CNTR_TL, CNTR_TR, KC_G, KC_D, KC_N, KC_M, KC_X },
|
||||
{HOME_K, HOME_H, HOME_E, HOME_A, KC_DOT, CNTR_HL, CNTR_HR, KC_C, HOME_T, HOME_R, HOME_S, HOME_W },
|
||||
{KC_J, KC_SCLN, TD_QUOT, KC_I, KC_COMM, CNTR_BL, CNTR_BR, KC_B, KC_P, KC_L, KC_F, KC_V },
|
||||
{OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT},
|
||||
},
|
||||
|
||||
[_SHIFT] = {
|
||||
{S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_N), S(KC_M), S(KC_X)},
|
||||
{S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_DOT, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_R), S(KC_S), S(KC_W)},
|
||||
{S(KC_J), KC_SCLN, TD_QUOT, S(KC_I), KC_COMM, CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_V)},
|
||||
{OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT},
|
||||
},
|
||||
|
||||
// ,-----------------------------------------------------------------------------------.
|
||||
// | Q | $ | { | } | Z | Fn | Caps | G | D | N | M | X |
|
||||
// |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
// | K | / | < | > | ~ |Cursor| Mouse| C | T | R | S | W |
|
||||
// |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
// | J | : | ! | = | ` | Num | Regex| B | P | L | F | V |
|
||||
// |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
// | Ctrl | GUI | Alt | Esc | f() | Tab | Del | _ | Left | Down | Up | Right|
|
||||
// `-----------------------------------------------------------------------------------'
|
||||
|
||||
[_LSHIFT] = {
|
||||
{S(KC_Q), KC_DLR, KC_LCBR, KC_RCBR, S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_N), S(KC_M), S(KC_X)},
|
||||
{S(KC_K), KC_SLSH, TD_LT, TD_GT, TD_TILD, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_R), S(KC_S), S(KC_W)},
|
||||
{S(KC_Z), KC_COLN, KC_EXLM, KC_EQL, TD_GRV, CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_V)},
|
||||
{OS_CTL, OS_GUI, OS_ALT, LT_ESC, ___fn__, LT_TAB, KC_DEL, KC_UNDS, SL_LEFT, S_DOWN, S_UP, S_RGHT },
|
||||
},
|
||||
|
||||
// ,-----------------------------------------------------------------------------------.
|
||||
// | Q | Y | O | U | Z | Fn | Caps | G | [ | ] | ^ | X |
|
||||
// |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
// | K | H | E | A | ? |Cursor| Mouse| | | ( | ) | $ | W |
|
||||
// |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
// | J | : | " | I | / | Num | Regex| \ | * | . | P | V |
|
||||
// |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
// | Ctrl | GUI | Alt | Caps | - | ↑Tab | Bksp | f() | Left | Down | Up | Right|
|
||||
// `-----------------------------------------------------------------------------------'
|
||||
|
||||
[_RSHIFT] = {
|
||||
{S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), KC_LBRC, KC_RBRC, KC_CIRC, S(KC_X)},
|
||||
{S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_QUES, CNTR_HL, CNTR_HR, KC_PIPE, KC_LPRN, KC_RPRN, KC_DLR, S(KC_W)},
|
||||
{S(KC_J), TD_COLN, TD_DQOT, S(KC_I), KC_SLSH, CNTR_BL, CNTR_BR, KC_BSLS, KC_ASTR, KC_DOT, S(KC_P), S(KC_V)},
|
||||
{OS_CTL, OS_GUI, OS_ALT, KC_CAPS, KC_MINS, SL_TAB, LT_BSPC, ___fn__, SL_LEFT, S_DOWN, S_UP, S_RGHT },
|
||||
},
|
||||
#endif
|
||||
|
||||
// .................................................................... BEAKL SP
|
||||
#ifdef BEAKLSP
|
||||
// ,-----------------------------------------------------------------------------------.
|
||||
// | Q | Y | O | U | Z | Shift| Caps | G | D | N | M | X |
|
||||
// |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
// | K | H | E | A | . |Cursor| Mouse| C | T | R | S | W |
|
||||
// |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
// | J | ; | " | I | , | Num | Regex| B | P | L | F | V |
|
||||
// |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
// | Ctrl | GUI | Alt | Esc | Space| Ins | Left | Ent | Bksp | Down | Up | Right|
|
||||
// `-----------------------------------------------------------------------------------'
|
||||
|
||||
[_BASE] = {
|
||||
{KC_Q, KC_Y, KC_O, KC_U, KC_Z, CNTR_TL, CNTR_TR, KC_G, KC_D, KC_N, KC_M, KC_X },
|
||||
{HOME_K, HOME_H, HOME_E, HOME_A, KC_DOT, CNTR_HL, CNTR_HR, KC_C, HOME_T, HOME_R, HOME_S, HOME_W },
|
||||
{KC_J, KC_SCLN, TD_QUOT, KC_I, KC_COMM, CNTR_BL, CNTR_BR, KC_B, KC_P, KC_L, KC_F, KC_V },
|
||||
{OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_INS, SP_LEFT, TD_ENT, SP_BSPC, AT_DOWN, GT_UP, CT_RGHT},
|
||||
},
|
||||
|
||||
[_SHIFT] = {
|
||||
{S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_N), S(KC_M), S(KC_X)},
|
||||
{S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_DOT, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_R), S(KC_S), S(KC_W)},
|
||||
{S(KC_J), KC_SCLN, TD_QUOT, S(KC_I), KC_COMM, CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_V)},
|
||||
{OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_INS, SP_LEFT, TD_ENT, SP_BSPC, AT_DOWN, GT_UP, CT_RGHT},
|
||||
},
|
||||
|
||||
// ,-----------------------------------------------------------------------------------.
|
||||
// | Q | Y | [ | ] | Z | Shift| Caps | G | D | N | M | X |
|
||||
// |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
// | K | ^ | < | > | ~ |Cursor| Mouse| C | T | R | S | W |
|
||||
// |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
// | J | : | ! | = | ` | Num | Regex| B | P | L | F | V |
|
||||
// |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
// | Ctrl | GUI | Alt | ↑Tab | f() | Ins | Left | _ | Del | Down | Up | Right|
|
||||
// `-----------------------------------------------------------------------------------'
|
||||
|
||||
[_LSHIFT] = {
|
||||
{S(KC_Q), S(KC_Y), KC_LBRC, KC_RBRC, S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_N), S(KC_M), S(KC_X)},
|
||||
{S(KC_K), KC_CIRC, TD_LT, TD_GT, TD_TILD, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_R), S(KC_S), S(KC_W)},
|
||||
{S(KC_Z), KC_COLN, KC_EXLM, KC_EQL, TD_GRV, CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_V)},
|
||||
{OS_CTL, OS_GUI, OS_ALT, S_TAB, ___fn__, LT_INS, S_LEFT, KC_UNDS, SP_DEL, S_DOWN, S_UP, S_RGHT },
|
||||
},
|
||||
|
||||
// ,-----------------------------------------------------------------------------------.
|
||||
// | Q | Y | O | U | Z | Shift| Caps | G | { | } | M | X |
|
||||
// |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
// | K | H | E | A | ? |Cursor| Mouse| | | ( | ) | $ | W |
|
||||
// |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
// | J | : | " | I | / | Num | Regex| \ | * | . | P | V |
|
||||
// |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
// | Ctrl | GUI | Alt | Tab | - | Ins | Left | f() | Bksp | Down | Up | Right|
|
||||
// `-----------------------------------------------------------------------------------'
|
||||
|
||||
[_RSHIFT] = {
|
||||
{S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), KC_LCBR, KC_RCBR, S(KC_M), S(KC_X)},
|
||||
{S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_QUES, CNTR_HL, CNTR_HR, KC_PIPE, KC_LPRN, KC_RPRN, KC_DLR, S(KC_W)},
|
||||
{S(KC_J), TD_COLN, TD_DQOT, S(KC_I), KC_SLSH, CNTR_BL, CNTR_BR, KC_BSLS, KC_ASTR, KC_DOT, S(KC_P), S(KC_V)},
|
||||
{OS_CTL, OS_GUI, OS_ALT, KC_TAB, KC_MINS, LT_INS, S_LEFT, ___fn__, SP_BSPC, S_DOWN, S_UP, S_RGHT },
|
||||
},
|
||||
#endif
|
||||
|
||||
// .................................................................... BEAKL GR
|
||||
#ifdef BEAKLGR
|
||||
// ,-----------------------------------------------------------------------------------.
|
||||
// | Q | Y | O | U | Z | Shift| Caps | G | D | N | M | X |
|
||||
// |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
// | K | H | E | A | . |Cursor| Mouse| C | T | R | S | W |
|
||||
// |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
// | J | ; | " | I | , | Num | Regex| B | P | L | F | V |
|
||||
// |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
// | Ctrl | GUI | Alt | Esc | Space| Ins | Left | Ent | Bksp | Down | Up | Right|
|
||||
// `-----------------------------------------------------------------------------------'
|
||||
|
||||
[_BASE] = {
|
||||
{KC_Q, KC_Y, KC_O, KC_U, KC_Z, CNTR_TL, CNTR_TR, KC_G, KC_D, KC_N, KC_M, KC_X },
|
||||
{HOME_K, HOME_H, HOME_E, HOME_A, KC_DOT, CNTR_HL, CNTR_HR, KC_C, HOME_T, HOME_R, HOME_S, HOME_W },
|
||||
{KC_J, KC_SCLN, TD_QUOT, KC_I, KC_COMM, CNTR_BL, CNTR_BR, KC_B, KC_P, KC_L, KC_F, KC_V },
|
||||
{OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_INS, SP_LEFT, TD_ENT, SP_BSPC, AT_DOWN, GT_UP, CT_RGHT},
|
||||
},
|
||||
|
||||
[_SHIFT] = {
|
||||
{S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_N), S(KC_M), S(KC_X)},
|
||||
{S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_DOT, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_R), S(KC_S), S(KC_W)},
|
||||
{S(KC_J), KC_SCLN, TD_QUOT, S(KC_I), KC_COMM, CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_V)},
|
||||
{OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_INS, SP_LEFT, TD_ENT, SP_BSPC, AT_DOWN, GT_UP, CT_RGHT},
|
||||
},
|
||||
|
||||
// ,-----------------------------------------------------------------------------------.
|
||||
// | Q | Y | [ | ] | Z | Shift| Caps | G | D | N | M | X |
|
||||
// |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
// | K | ^ | < | > | ~ |Cursor| Mouse| C | T | R | S | W |
|
||||
// |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
// | J | : | ! | = | ` | Num | Regex| B | P | L | F | V |
|
||||
// |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
// | Ctrl | GUI | Alt | ↑Tab | f() | Ins | Left | _ | Del | Down | Up | Right|
|
||||
// `-----------------------------------------------------------------------------------'
|
||||
|
||||
[_LSHIFT] = {
|
||||
{S(KC_Q), S(KC_Y), KC_LBRC, KC_RBRC, S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_N), S(KC_M), S(KC_X)},
|
||||
{SM_K, KC_CIRC, TD_LT, TD_GT, TD_TILD, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_R), S(KC_S), S(KC_W)},
|
||||
{S(KC_Z), KC_COLN, KC_EXLM, KC_EQL, TD_GRV, CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_V)},
|
||||
{OS_CTL, OS_GUI, OS_ALT, S_TAB, ___fn__, LT_INS, S_LEFT, KC_UNDS, SP_DEL, S_DOWN, S_UP, S_RGHT },
|
||||
},
|
||||
|
||||
// ,-----------------------------------------------------------------------------------.
|
||||
// | Q | Y | O | U | Z | Shift| Caps | G | { | } | M | X |
|
||||
// |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
// | K | H | E | A | ? |Cursor| Mouse| | | ( | ) | $ | W |
|
||||
// |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
// | J | : | " | I | / | Num | Regex| \ | * | . | P | V |
|
||||
// |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
// | Ctrl | GUI | Alt | Tab | - | Ins | Left | f() | Bksp | Down | Up | Right|
|
||||
// `-----------------------------------------------------------------------------------'
|
||||
|
||||
[_RSHIFT] = {
|
||||
{S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), KC_LCBR, KC_RCBR, S(KC_M), S(KC_X)},
|
||||
{S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_QUES, CNTR_HL, CNTR_HR, KC_PIPE, KC_LPRN, KC_RPRN, KC_DLR, SM_W },
|
||||
{S(KC_J), TD_COLN, TD_DQOT, S(KC_I), KC_SLSH, CNTR_BL, CNTR_BR, KC_BSLS, KC_ASTR, KC_DOT, S(KC_P), S(KC_V)},
|
||||
{OS_CTL, OS_GUI, OS_ALT, KC_TAB, KC_MINS, LT_INS, S_LEFT, ___fn__, SP_BSPC, S_DOWN, S_UP, S_RGHT },
|
||||
},
|
||||
#endif
|
||||
@@ -1,124 +0,0 @@
|
||||
|
||||
// const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
// .............................................................. Colemak Mod-DH
|
||||
#ifdef COLEMAK
|
||||
// ,-----------------------------------------------------------------------------------.
|
||||
// | Q | W | F | P | B | ^Alt | ^GUI | J | L | U | Y | ; |
|
||||
// |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
// | A | R | S | T | G | ↑Alt | ↑GUI | M | N | E | I | O |
|
||||
// |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
// | Z | X | C | D | V | Caps |^Shift| K | H | , | . | " |
|
||||
// |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
// | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right|
|
||||
// `-----------------------------------------------------------------------------------'
|
||||
|
||||
[_BASE] = {
|
||||
{KC_Q, KC_W, KC_F, KC_P, KC_B, CNTR_TL, CNTR_TR, KC_J, KC_L, KC_U, KC_Y, KC_SCLN},
|
||||
{KC_A, KC_R, KC_S, KC_T, KC_G, CNTR_HL, CNTR_HR, KC_M, KC_N, KC_E, KC_I, KC_O },
|
||||
{KC_Z, KC_X, KC_C, KC_D, KC_V, CNTR_BL, CNTR_BR, KC_K, KC_H, KC_COMM, KC_DOT, TD_QUOT},
|
||||
{OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT},
|
||||
},
|
||||
|
||||
[_SHIFT] = {
|
||||
{S(KC_Q), S(KC_W), S(KC_F), S(KC_P), S(KC_B), CNTR_TL, CNTR_TR, S(KC_J), S(KC_L), S(KC_U), S(KC_Y), KC_SCLN},
|
||||
{S(KC_A), S(KC_R), S(KC_S), S(KC_T), S(KC_G), CNTR_HL, CNTR_HR, S(KC_M), S(KC_N), S(KC_E), S(KC_I), S(KC_O)},
|
||||
{S(KC_Z), S(KC_X), S(KC_C), S(KC_D), S(KC_V), CNTR_BL, CNTR_BR, S(KC_K), S(KC_H), KC_COMM, KC_DOT, TD_QUOT},
|
||||
{OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT},
|
||||
},
|
||||
|
||||
// ,-----------------------------------------------------------------------------------.
|
||||
// | Q | W | F | P | B | ^Alt | ^GUI | J | L | U | Y | : |
|
||||
// |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
// | A | R | S | T | G | ↑Alt | ↑GUI | M | N | E | I | O |
|
||||
// |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
// | Z | X | C | D | V | Caps |^Shift| K | H | / | ? | " |
|
||||
// |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
// | Ctrl | GUI | Alt | Esc | f() | Tab | Del | - | Left | Down | Up | Right|
|
||||
// `-----------------------------------------------------------------------------------'
|
||||
|
||||
[_LSHIFT] = {
|
||||
{S(KC_Q), S(KC_W), S(KC_F), S(KC_P), S(KC_B), CNTR_TL, CNTR_TR, S(KC_J), S(KC_L), S(KC_U), S(KC_Y), TD_COLN},
|
||||
{S(KC_A), S(KC_R), S(KC_S), S(KC_T), S(KC_G), CNTR_HL, CNTR_HR, S(KC_M), S(KC_N), S(KC_E), S(KC_I), S(KC_O)},
|
||||
{S(KC_Z), S(KC_X), S(KC_C), S(KC_D), S(KC_V), CNTR_BL, CNTR_BR, S(KC_K), S(KC_H), KC_SLSH, KC_QUES, TD_DQOT},
|
||||
{OS_CTL, OS_GUI, OS_ALT, LT_ESC, ___fn__, LT_TAB, KC_DEL, KC_MINS, SL_LEFT, S_DOWN, S_UP, S_RGHT },
|
||||
},
|
||||
|
||||
// ,-----------------------------------------------------------------------------------.
|
||||
// | Q | W | F | P | B | ^Alt | ^GUI | J | L | U | Y | : |
|
||||
// |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
// | A | R | S | T | G | ↑Alt | ↑GUI | M | N | E | I | O |
|
||||
// |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
// | Z | X | C | D | V | Caps |^Shift| K | H | ~ | ` | " |
|
||||
// |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
// | Ctrl | GUI | Alt | Caps | _ | ↑Tab | Bksp | f() | Left | Down | Up | Right|
|
||||
// `-----------------------------------------------------------------------------------'
|
||||
|
||||
[_RSHIFT] = {
|
||||
{S(KC_Q), S(KC_W), S(KC_F), S(KC_P), S(KC_B), CNTR_TL, CNTR_TR, S(KC_J), S(KC_L), S(KC_U), S(KC_Y), TD_COLN},
|
||||
{S(KC_A), S(KC_R), S(KC_S), S(KC_T), S(KC_G), CNTR_HL, CNTR_HR, S(KC_M), S(KC_N), S(KC_E), S(KC_I), S(KC_O)},
|
||||
{S(KC_Z), S(KC_X), S(KC_C), S(KC_D), S(KC_V), CNTR_BL, CNTR_BR, S(KC_K), S(KC_H), TD_TILD, TD_GRV, TD_DQOT},
|
||||
{OS_CTL, OS_GUI, OS_ALT, KC_CAPS, KC_UNDS, SL_TAB, LT_BSPC, ___fn__, SL_LEFT, S_DOWN, S_UP, S_RGHT },
|
||||
},
|
||||
#endif
|
||||
|
||||
// ..................................................................... ColemaX
|
||||
#ifdef COLEMAX
|
||||
// ,-----------------------------------------------------------------------------------.
|
||||
// | Q | W | C | G | Z | ^Alt | ^GUI | J | L | U | Y | ; |
|
||||
// |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
// | A | R | S | T | B | ↑Alt | ↑GUI | K | N | E | I | O |
|
||||
// |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
// | X | V | F | D | P | Caps |^Shift| M | H | , | . | " |
|
||||
// |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
// | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right|
|
||||
// `-----------------------------------------------------------------------------------'
|
||||
|
||||
[_BASE] = {
|
||||
{KC_Q, KC_W, KC_C, KC_G, KC_Z, CNTR_TL, CNTR_TR, KC_J, KC_L, KC_U, KC_Y, KC_SCLN},
|
||||
{KC_A, KC_R, KC_S, KC_T, KC_B, CNTR_HL, CNTR_HR, KC_K, KC_N, KC_E, KC_I, KC_O },
|
||||
{KC_X, KC_V, KC_F, KC_D, KC_P, CNTR_BL, CNTR_BR, KC_M, KC_H, KC_COMM, KC_DOT, TD_QUOT},
|
||||
{OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT},
|
||||
},
|
||||
|
||||
[_SHIFT] = {
|
||||
{S(KC_Q), S(KC_W), S(KC_C), S(KC_G), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_J), S(KC_L), S(KC_U), S(KC_Y), KC_SCLN},
|
||||
{S(KC_A), S(KC_R), S(KC_S), S(KC_T), S(KC_B), CNTR_HL, CNTR_HR, S(KC_K), S(KC_N), S(KC_E), S(KC_I), S(KC_O)},
|
||||
{S(KC_X), S(KC_V), S(KC_F), S(KC_D), S(KC_P), CNTR_BL, CNTR_BR, S(KC_M), S(KC_H), KC_COMM, KC_DOT, TD_QUOT},
|
||||
{OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT},
|
||||
},
|
||||
|
||||
// ,-----------------------------------------------------------------------------------.
|
||||
// | Q | W | C | G | Z | ^Alt | ^GUI | J | L | U | Y | : |
|
||||
// |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
// | A | R | S | T | B | ↑Alt | ↑GUI | K | N | E | I | O |
|
||||
// |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
// | X | V | F | D | P | Caps |^Shift| M | H | / | ? | " |
|
||||
// |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
// | Ctrl | GUI | Alt | Esc | f() | Tab | Del | - | Left | Down | Up | Right|
|
||||
// `-----------------------------------------------------------------------------------'
|
||||
|
||||
[_LSHIFT] = {
|
||||
{S(KC_Q), S(KC_W), S(KC_C), S(KC_G), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_J), S(KC_L), S(KC_U), S(KC_Y), TD_COLN},
|
||||
{S(KC_A), S(KC_R), S(KC_S), S(KC_T), S(KC_B), CNTR_HL, CNTR_HR, S(KC_K), S(KC_N), S(KC_E), S(KC_I), S(KC_O)},
|
||||
{S(KC_X), S(KC_V), S(KC_F), S(KC_D), S(KC_P), CNTR_BL, CNTR_BR, S(KC_M), S(KC_H), KC_SLSH, KC_QUES, TD_DQOT},
|
||||
{OS_CTL, OS_GUI, OS_ALT, LT_ESC, ___fn__, LT_TAB, KC_DEL, KC_MINS, SL_LEFT, S_DOWN, S_UP, S_RGHT },
|
||||
},
|
||||
|
||||
// ,-----------------------------------------------------------------------------------.
|
||||
// | Q | W | C | G | Z | ^Alt | ^GUI | J | L | U | Y | : |
|
||||
// |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
// | A | R | S | T | B | ↑Alt | ↑GUI | K | N | E | I | O |
|
||||
// |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
// | X | V | F | D | P | Caps |^Shift| M | H | ~ | ` | " |
|
||||
// |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
// | Ctrl | GUI | Alt | Caps | _ | ↑Tab | Bksp | f() | Left | Down | Up | Right|
|
||||
// `-----------------------------------------------------------------------------------'
|
||||
|
||||
[_RSHIFT] = {
|
||||
{S(KC_Q), S(KC_W), S(KC_C), S(KC_G), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_J), S(KC_L), S(KC_U), S(KC_Y), TD_COLN},
|
||||
{S(KC_A), S(KC_R), S(KC_S), S(KC_T), S(KC_B), CNTR_HL, CNTR_HR, S(KC_K), S(KC_N), S(KC_E), S(KC_I), S(KC_O)},
|
||||
{S(KC_X), S(KC_V), S(KC_F), S(KC_D), S(KC_P), CNTR_BL, CNTR_BR, S(KC_M), S(KC_H), TD_TILD, TD_GRV, TD_DQOT},
|
||||
{OS_CTL, OS_GUI, OS_ALT, KC_CAPS, KC_UNDS, SL_TAB, LT_BSPC, ___fn__, SL_LEFT, S_DOWN, S_UP, S_RGHT },
|
||||
},
|
||||
#endif
|
||||
@@ -1,41 +0,0 @@
|
||||
|
||||
// const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
// .................................................................. Short Cuts
|
||||
|
||||
// .-----------------------------------------------------------------------------------.
|
||||
// | | | Copy | Paste| | | | | | | | |
|
||||
// |--------------------------------------------------------------+------+------+------|
|
||||
// | Undo | Cut | Copy | Paste| | | | | PRIV | PUB | | |
|
||||
// |-----------------------------------------------------------------------------------|
|
||||
// | | | Nak | Eot | | | | | | | | |
|
||||
// |-----------------------------------------------------------------------------------|
|
||||
// | | | | | | | f() | | | | | |
|
||||
// | | | | | | | | f() | | | | | see _PLOVER
|
||||
// '-----------------------------------------------------------------------------------'
|
||||
|
||||
[_EDIT] = {
|
||||
{_______, _______, TMCOPY, TMPASTE, _______, _______, _______, _______, _______, _______, _______, _______},
|
||||
{UNDO, CUT, COPY, PASTE, _______, _______, _______, _______, TD_PRIV, TD_SEND, _______, _______},
|
||||
{_______, _______, NAK, EOT, _______, _______, _______, _______, _______, _______, _______, _______},
|
||||
{_______, _______, _______, _______, _______, _______, ___fn__, ___fn__, _______, _______, _______, _______},
|
||||
},
|
||||
|
||||
// ................................................................ Adjust Layer
|
||||
|
||||
// ,-----------------------------------------------------------------------------------.
|
||||
// |Plover| | | | | | | | | | | |
|
||||
// |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
// |Aud on| | | | | | | | | | | |
|
||||
// |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
// | Reset| | | | | | | | | | | |
|
||||
// |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
// | | | | f() | | | | | f() | | | |
|
||||
// `-----------------------------------------------------------------------------------'
|
||||
|
||||
[_ADJUST] = {
|
||||
{PLOVER, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
|
||||
{AU_ON, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
|
||||
{RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
|
||||
{_______, _______, _______, ___fn__, _______, _______, _______, _______, ___fn__, _______, _______, _______},
|
||||
},
|
||||
@@ -1,56 +0,0 @@
|
||||
|
||||
// ....................................................................... Audio
|
||||
|
||||
void matrix_init_user(void)
|
||||
{
|
||||
#ifdef STENO_ENABLE
|
||||
steno_set_mode(STENO_MODE_BOLT); // or STENO_MODE_GEMINI
|
||||
#endif
|
||||
#ifdef AUDIO_ENABLE
|
||||
startup_user();
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef AUDIO_ENABLE
|
||||
#ifdef BACKLIGHT_ENABLE
|
||||
void led_set_user(uint8_t usb_led)
|
||||
{
|
||||
static uint8_t old_usb_led = 0;
|
||||
_delay_ms(10); // gets rid of tick
|
||||
if (!is_playing_notes()) {
|
||||
if ((usb_led & (1<<USB_LED_CAPS_LOCK)) && !(old_usb_led & (1<<USB_LED_CAPS_LOCK))) {
|
||||
// if capslock LED is turning on
|
||||
PLAY_SONG(song_caps_on);
|
||||
}
|
||||
else if (!(usb_led & (1<<USB_LED_CAPS_LOCK)) && (old_usb_led & (1<<USB_LED_CAPS_LOCK))) {
|
||||
// if capslock LED is turning off
|
||||
PLAY_SONG(song_caps_off);
|
||||
}
|
||||
}
|
||||
old_usb_led = usb_led;
|
||||
}
|
||||
#endif
|
||||
|
||||
void startup_user(void)
|
||||
{
|
||||
_delay_ms(20); // gets rid of tick
|
||||
PLAY_SONG(song_startup);
|
||||
}
|
||||
|
||||
void shutdown_user(void)
|
||||
{
|
||||
PLAY_SONG(song_goodbye);
|
||||
_delay_ms(150);
|
||||
stop_all_notes();
|
||||
}
|
||||
|
||||
void music_on_user(void)
|
||||
{
|
||||
music_scale_user();
|
||||
}
|
||||
|
||||
void music_scale_user(void)
|
||||
{
|
||||
PLAY_SONG(music_scale);
|
||||
}
|
||||
#endif
|
||||
@@ -1,657 +0,0 @@
|
||||
|
||||
// .......................................................... Keycode Primitives
|
||||
|
||||
// register simple key press
|
||||
void tap_key(uint16_t keycode)
|
||||
{
|
||||
register_code (keycode);
|
||||
unregister_code(keycode);
|
||||
}
|
||||
|
||||
void shift_key(uint16_t keycode)
|
||||
{
|
||||
register_code (KC_LSFT);
|
||||
tap_key (keycode);
|
||||
unregister_code(KC_LSFT);
|
||||
}
|
||||
|
||||
#define SHIFT 1
|
||||
#define NOSHIFT 0
|
||||
|
||||
static uint16_t key_timer = 0;
|
||||
|
||||
// key press for thumb_layer() and lt_shift() macros
|
||||
bool key_press(uint8_t shift, uint16_t keycode)
|
||||
{
|
||||
if (keycode) {
|
||||
if (timer_elapsed(key_timer) < TAPPING_TERM) {
|
||||
if (shift) {
|
||||
shift_key(keycode);
|
||||
}
|
||||
else {
|
||||
tap_key(keycode);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
// ALT_T, CTL_T, GUI_T, SFT_T for shifted keycodes
|
||||
void mt_shift(keyrecord_t *record, uint16_t modifier, uint16_t modifier2, uint16_t keycode)
|
||||
{
|
||||
if (record->event.pressed) {
|
||||
key_timer = timer_read();
|
||||
register_code(modifier);
|
||||
if (modifier2) {
|
||||
register_code(modifier2);
|
||||
}
|
||||
}
|
||||
else {
|
||||
unregister_code(modifier);
|
||||
if (modifier2) {
|
||||
unregister_code(modifier2);
|
||||
}
|
||||
if (timer_elapsed(key_timer) < TAPPING_TERM) {
|
||||
shift_key(keycode);
|
||||
}
|
||||
key_timer = 0;
|
||||
}
|
||||
}
|
||||
|
||||
// ................................................................... Mod Masks
|
||||
|
||||
// tap dance persistant mods, see process_record_user()
|
||||
// keyboard_report->mods (?) appears to be cleared by tap dance
|
||||
static uint8_t mods = 0;
|
||||
|
||||
void tap_mods(keyrecord_t *record, uint16_t keycode)
|
||||
{
|
||||
if (record->event.pressed) {
|
||||
mods |= MOD_BIT(keycode);
|
||||
}
|
||||
else {
|
||||
mods &= ~(MOD_BIT(keycode));
|
||||
}
|
||||
}
|
||||
|
||||
// (un)register modifiers
|
||||
void modifier(void (*f)(uint8_t))
|
||||
{
|
||||
if (mods & MOD_BIT(KC_LCTL)) {
|
||||
(*f)(KC_LCTL);
|
||||
}
|
||||
if (mods & MOD_BIT(KC_LGUI)) {
|
||||
(*f)(KC_LGUI);
|
||||
}
|
||||
if (mods & MOD_BIT(KC_LALT)) {
|
||||
(*f)(KC_LALT);
|
||||
}
|
||||
}
|
||||
|
||||
// .................................................... Triple Dance Shift/Layer
|
||||
|
||||
static uint8_t dt_shift = 0;
|
||||
|
||||
void double_shift(uint16_t keycode, uint8_t layer)
|
||||
{
|
||||
tap_key (keycode);
|
||||
if (DT_SHIFT) {
|
||||
// set_oneshot_mods(MOD_LSFT);
|
||||
// layer_on(layer);
|
||||
layer_on (_SHIFT);
|
||||
set_oneshot_layer(_SHIFT, ONESHOT_START);
|
||||
dt_shift = 1;
|
||||
}
|
||||
else {
|
||||
layer_on(layer);
|
||||
}
|
||||
}
|
||||
|
||||
// tap dance LT (LAYER, KEY) emulation with <KEY><DOWN> -> <KEY><SHIFT> and auto-repeat extensions!
|
||||
void tap_shift(qk_tap_dance_state_t *state, uint16_t keycode, uint8_t layer)
|
||||
{
|
||||
// double tap plus down
|
||||
if (state->count > 2) {
|
||||
// double enter shift
|
||||
if (keycode == KC_ENT) {
|
||||
tap_key (keycode);
|
||||
double_shift(keycode, layer);
|
||||
}
|
||||
// repeating keycode
|
||||
else {
|
||||
register_code(keycode);
|
||||
}
|
||||
}
|
||||
// tap plus down (or double tap): keycode (one shot) shift
|
||||
else if (state->count > 1) {
|
||||
double_shift(keycode, layer);
|
||||
}
|
||||
// down: shift
|
||||
else if (state->pressed) {
|
||||
layer_on(layer);
|
||||
}
|
||||
// tap: keycode
|
||||
else {
|
||||
modifier(register_code);
|
||||
tap_key (keycode);
|
||||
modifier(unregister_code);
|
||||
}
|
||||
}
|
||||
|
||||
void tap_reset(uint16_t keycode, uint8_t layer)
|
||||
{
|
||||
unregister_code(keycode);
|
||||
if (DT_SHIFT && dt_shift) {
|
||||
clear_oneshot_layer_state(ONESHOT_PRESSED);
|
||||
dt_shift = 0;
|
||||
}
|
||||
else {
|
||||
layer_off(layer);
|
||||
}
|
||||
}
|
||||
|
||||
// augment pseudo LT (_RSHIFT, KC_ENT) handling below for rapid <ENTER><SHIFT> sequences
|
||||
void enter(qk_tap_dance_state_t *state, void *user_data)
|
||||
{
|
||||
tap_shift(state, KC_ENT, _RSHIFT);
|
||||
}
|
||||
|
||||
void enter_reset(qk_tap_dance_state_t *state, void *user_data)
|
||||
{
|
||||
tap_reset(KC_ENT, _RSHIFT);
|
||||
}
|
||||
|
||||
// augment pseudo LT (_LSHIFT, KC_SPC) handling below for rapid <SPACE><SHIFT> sequences
|
||||
void space(qk_tap_dance_state_t *state, void *user_data)
|
||||
{
|
||||
tap_shift(state, KC_SPC, _LSHIFT);
|
||||
}
|
||||
|
||||
void space_reset(qk_tap_dance_state_t *state, void *user_data)
|
||||
{
|
||||
tap_reset(KC_SPC, _LSHIFT);
|
||||
}
|
||||
|
||||
// ......................................................... Triple Dance Insert
|
||||
|
||||
void double_max(uint8_t count, uint8_t shift, uint16_t keycode)
|
||||
{
|
||||
if (shift) {
|
||||
shift_key(keycode);
|
||||
if (count > 1) {
|
||||
shift_key(keycode);
|
||||
}
|
||||
}
|
||||
else {
|
||||
tap_key(keycode);
|
||||
if (count > 1) {
|
||||
tap_key(keycode);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void colon(qk_tap_dance_state_t *state, void *user_data)
|
||||
{
|
||||
if (state->count > 2) {
|
||||
tap_key (KC_SPC);
|
||||
shift_key(KC_SCLN);
|
||||
shift_key(KC_SCLN);
|
||||
tap_key (KC_SPC);
|
||||
}
|
||||
else {
|
||||
double_max(state->count, SHIFT, KC_SCLN);
|
||||
}
|
||||
reset_tap_dance(state);
|
||||
}
|
||||
|
||||
void eql(qk_tap_dance_state_t *state, void *user_data)
|
||||
{
|
||||
if (state->count > 2) {
|
||||
tap_key(KC_SPC);
|
||||
tap_key(KC_SLSH);
|
||||
tap_key(KC_EQL);
|
||||
tap_key(KC_SPC);
|
||||
}
|
||||
else {
|
||||
double_max(state->count, NOSHIFT, KC_EQL);
|
||||
}
|
||||
reset_tap_dance(state);
|
||||
}
|
||||
|
||||
void greater(qk_tap_dance_state_t *state, void *user_data)
|
||||
{
|
||||
if (state->count > 2) {
|
||||
tap_key (KC_SPC);
|
||||
tap_key (KC_MINS);
|
||||
shift_key(KC_DOT);
|
||||
tap_key (KC_SPC);
|
||||
}
|
||||
else {
|
||||
double_max(state->count, SHIFT, KC_DOT);
|
||||
}
|
||||
reset_tap_dance(state);
|
||||
}
|
||||
|
||||
void lesser(qk_tap_dance_state_t *state, void *user_data)
|
||||
{
|
||||
if (state->count > 2) {
|
||||
tap_key (KC_SPC);
|
||||
shift_key(KC_COMM);
|
||||
tap_key (KC_MINS);
|
||||
tap_key (KC_SPC);
|
||||
}
|
||||
else {
|
||||
double_max(state->count, SHIFT, KC_COMM);
|
||||
}
|
||||
reset_tap_dance(state);
|
||||
}
|
||||
|
||||
void tilde(qk_tap_dance_state_t *state, void *user_data)
|
||||
{
|
||||
// double tap plus down: repeating keycode
|
||||
if (state->count > 2) {
|
||||
register_code(KC_LSFT);
|
||||
register_code(KC_GRV);
|
||||
}
|
||||
// tap: keycode
|
||||
else {
|
||||
shift_key(KC_GRV);
|
||||
// double tap: unix home directory
|
||||
if (state->count > 1) {
|
||||
tap_key(KC_SLSH);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void tilde_reset(qk_tap_dance_state_t *state, void *user_data)
|
||||
{
|
||||
unregister_code(KC_GRV);
|
||||
unregister_code(KC_LSFT);
|
||||
}
|
||||
|
||||
// ............................................................. Tap Dance Pairs
|
||||
|
||||
// tap dance shift rules
|
||||
#define S_NEVER 0
|
||||
#define S_SINGLE 1
|
||||
#define S_DOUBLE 2
|
||||
#define S_ALWAYS S_SINGLE | S_DOUBLE
|
||||
|
||||
void symbol_pair(uint8_t shift, uint16_t left, uint16_t right)
|
||||
{
|
||||
if (shift & S_DOUBLE) {
|
||||
shift_key(left);
|
||||
shift_key(right);
|
||||
}
|
||||
else {
|
||||
tap_key(left);
|
||||
tap_key(right);
|
||||
}
|
||||
}
|
||||
|
||||
#define CLOSE 1
|
||||
|
||||
// tap dance symbol pairs
|
||||
void tap_pair(qk_tap_dance_state_t *state, uint8_t shift, uint16_t left, uint16_t right, uint16_t modifier, uint8_t close)
|
||||
{
|
||||
// triple tap: left right with cursor between symbol pair a la vim :-)
|
||||
if (state->count > 2) {
|
||||
symbol_pair(shift, left, right);
|
||||
tap_key (KC_LEFT);
|
||||
}
|
||||
// double tap: left right
|
||||
else if (state->count > 1) {
|
||||
symbol_pair(shift, left, right);
|
||||
}
|
||||
// down: modifier
|
||||
else if (state->pressed) {
|
||||
if (modifier) {
|
||||
register_code(modifier);
|
||||
}
|
||||
}
|
||||
// tap: left (close: right)
|
||||
else {
|
||||
if (shift & S_SINGLE) {
|
||||
shift_key(close ? right : left);
|
||||
}
|
||||
else {
|
||||
tap_key(close ? right : left);
|
||||
}
|
||||
}
|
||||
if (!modifier) {
|
||||
reset_tap_dance(state);
|
||||
}
|
||||
}
|
||||
|
||||
void doublequote(qk_tap_dance_state_t *state, void *user_data)
|
||||
{
|
||||
tap_pair(state, S_ALWAYS, KC_QUOT, KC_QUOT, 0, 0);
|
||||
}
|
||||
|
||||
void grave(qk_tap_dance_state_t *state, void *user_data)
|
||||
{
|
||||
tap_pair(state, S_NEVER, KC_GRV, KC_GRV, 0, 0);
|
||||
}
|
||||
|
||||
void lbrace(qk_tap_dance_state_t *state, void *user_data)
|
||||
{
|
||||
tap_pair(state, S_NEVER, KC_LBRC, KC_RBRC, 0, 0);
|
||||
}
|
||||
|
||||
void lcurly(qk_tap_dance_state_t *state, void *user_data)
|
||||
{
|
||||
tap_pair(state, S_ALWAYS, KC_LBRC, KC_RBRC, 0, 0);
|
||||
}
|
||||
|
||||
void lparen(qk_tap_dance_state_t *state, void *user_data)
|
||||
{
|
||||
tap_pair(state, S_ALWAYS, KC_9, KC_0, KC_LCTL, 0);
|
||||
}
|
||||
|
||||
void lparen_reset(qk_tap_dance_state_t *state, void *user_data)
|
||||
{
|
||||
unregister_code(KC_LCTL);
|
||||
}
|
||||
|
||||
void quote(qk_tap_dance_state_t *state, void *user_data)
|
||||
{
|
||||
tap_pair(state, S_NEVER, KC_QUOT, KC_QUOT, 0, 0);
|
||||
}
|
||||
|
||||
void rangle(qk_tap_dance_state_t *state, void *user_data)
|
||||
{
|
||||
tap_pair(state, S_ALWAYS, KC_COMM, KC_DOT, 0, CLOSE);
|
||||
}
|
||||
|
||||
void rbrace(qk_tap_dance_state_t *state, void *user_data)
|
||||
{
|
||||
tap_pair(state, S_NEVER, KC_LBRC, KC_RBRC, 0, CLOSE);
|
||||
}
|
||||
|
||||
void rcurly(qk_tap_dance_state_t *state, void *user_data)
|
||||
{
|
||||
tap_pair(state, S_ALWAYS, KC_LBRC, KC_RBRC, 0, CLOSE);
|
||||
}
|
||||
|
||||
void rparen(qk_tap_dance_state_t *state, void *user_data)
|
||||
{
|
||||
tap_pair(state, S_ALWAYS, KC_9, KC_0, 0, CLOSE);
|
||||
}
|
||||
|
||||
void rparen_reset(qk_tap_dance_state_t *state, void *user_data)
|
||||
{
|
||||
unregister_code(KC_LCTL);
|
||||
}
|
||||
|
||||
// ............................................................ Tap Dance Insert
|
||||
|
||||
void comma(qk_tap_dance_state_t *state, void *user_data)
|
||||
{
|
||||
tap_key(KC_COMM);
|
||||
if (state->count > 1) {
|
||||
tap_key(KC_SPC);
|
||||
}
|
||||
reset_tap_dance(state);
|
||||
}
|
||||
|
||||
void dot(qk_tap_dance_state_t *state, void *user_data)
|
||||
{
|
||||
if (state->count > 1) {
|
||||
shift_key(KC_COLN);
|
||||
}
|
||||
else {
|
||||
tap_key(KC_DOT);
|
||||
}
|
||||
reset_tap_dance(state);
|
||||
}
|
||||
|
||||
// compile time macro string, see functions/hardware planck script
|
||||
void private(qk_tap_dance_state_t *state, void *user_data)
|
||||
{
|
||||
if (state->count > 1) {
|
||||
#ifdef PRIVATE_STRING
|
||||
#include "private_string.h"
|
||||
#endif
|
||||
}
|
||||
reset_tap_dance(state);
|
||||
}
|
||||
|
||||
// config.h defined string
|
||||
void send(qk_tap_dance_state_t *state, void *user_data)
|
||||
{
|
||||
if (state->count > 1) {
|
||||
SEND_STRING(PUBLIC_STRING);
|
||||
}
|
||||
reset_tap_dance(state);
|
||||
}
|
||||
|
||||
// .......................................................... Tap Dance One Shot
|
||||
|
||||
void caps(qk_tap_dance_state_t *state, void *user_data)
|
||||
{
|
||||
if (state->count > 1) {
|
||||
tap_key(KC_CAPS);
|
||||
}
|
||||
else {
|
||||
set_oneshot_mods(MOD_LSFT);
|
||||
register_code (KC_LSFT); // on hold down
|
||||
}
|
||||
}
|
||||
|
||||
void caps_reset(qk_tap_dance_state_t *state, void *user_data)
|
||||
{
|
||||
unregister_code(KC_LSFT);
|
||||
}
|
||||
|
||||
// ................................................................... Tap Dance
|
||||
|
||||
qk_tap_dance_action_t tap_dance_actions[] = {
|
||||
[_CAPS] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, caps, caps_reset)
|
||||
,[_COLN] = ACTION_TAP_DANCE_FN (colon)
|
||||
,[_COMM] = ACTION_TAP_DANCE_FN (comma)
|
||||
,[_DOT] = ACTION_TAP_DANCE_FN (dot)
|
||||
,[_DQOT] = ACTION_TAP_DANCE_FN (doublequote)
|
||||
,[_ENT] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, enter, enter_reset)
|
||||
,[_EQL] = ACTION_TAP_DANCE_FN (eql)
|
||||
,[_GRV] = ACTION_TAP_DANCE_FN (grave)
|
||||
,[_GT] = ACTION_TAP_DANCE_FN (greater)
|
||||
,[_LBRC] = ACTION_TAP_DANCE_FN (lbrace)
|
||||
,[_LCBR] = ACTION_TAP_DANCE_FN (lcurly)
|
||||
,[_LPRN] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, lparen, lparen_reset)
|
||||
,[_LT] = ACTION_TAP_DANCE_FN (lesser)
|
||||
,[_PRIV] = ACTION_TAP_DANCE_FN (private)
|
||||
,[_QUOT] = ACTION_TAP_DANCE_FN (quote)
|
||||
,[_RBRC] = ACTION_TAP_DANCE_FN (rbrace)
|
||||
,[_RCBR] = ACTION_TAP_DANCE_FN (rcurly)
|
||||
,[_RNGL] = ACTION_TAP_DANCE_FN (rangle)
|
||||
,[_RPRN] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, rparen, rparen_reset)
|
||||
,[_SEND] = ACTION_TAP_DANCE_FN (send)
|
||||
,[_SPC] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, space, space_reset)
|
||||
,[_TILD] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, tilde, tilde_reset)
|
||||
};
|
||||
|
||||
// .............................................................. Dynamic Layers
|
||||
|
||||
#define LEFT 1
|
||||
#define RIGHT 2
|
||||
static uint8_t thumb = 0;
|
||||
|
||||
// LEFT (KC_SPC, S(KC_BSLS)), RIGHT (KC_LEFT, S(KC_LEFT)) opposite thumb combinations, see process_record_user()
|
||||
// up, up -> _BASE
|
||||
// up, down -> _SYMBOL
|
||||
// down, up -> _NUMBER
|
||||
// down, down -> _MOUSE // see layer keycodes that raise mouse layer
|
||||
#define THUMBS_DOWN _MOUSE // layer
|
||||
|
||||
static uint8_t overlayer = 0;
|
||||
|
||||
// left right thumb layer combinations
|
||||
void thumb_layer(keyrecord_t *record, uint8_t side, uint8_t shift, uint16_t keycode, uint8_t thumb_dn_layer, uint8_t thumb_up_layer)
|
||||
{
|
||||
if (record->event.pressed) {
|
||||
// layer_on via tap_layer(), see process_record_user()
|
||||
key_timer = timer_read();
|
||||
thumb = thumb | side;
|
||||
}
|
||||
else {
|
||||
layer_off(thumb_dn_layer);
|
||||
// opposite thumb_layer() thumb may have switched effective layer!
|
||||
if (overlayer) {
|
||||
layer_off(overlayer);
|
||||
overlayer = 0;
|
||||
}
|
||||
if (!key_press(shift, keycode)) {
|
||||
layer_off(THUMBS_DOWN); // both thumbs needed
|
||||
// opposite thumb down? see left right combination layer table above
|
||||
if (thumb & (side == LEFT ? RIGHT : LEFT)) {
|
||||
layer_on(thumb_up_layer);
|
||||
overlayer = thumb_up_layer;
|
||||
}
|
||||
}
|
||||
clear_mods();
|
||||
thumb = thumb & ~side;
|
||||
key_timer = 0;
|
||||
}
|
||||
}
|
||||
|
||||
// #ifdef STENO_ENABLE
|
||||
// // LT for steno keycode
|
||||
// void stn_layer(keyrecord_t *record, uint16_t keycode, uint8_t layer)
|
||||
// {
|
||||
// if (record->event.pressed) {
|
||||
// key_timer = timer_read();
|
||||
// if (keycode) {
|
||||
// process_steno(keycode, record);
|
||||
// }
|
||||
// layer_on(layer);
|
||||
// }
|
||||
// else {
|
||||
// layer_off(layer);
|
||||
// if (keycode) {
|
||||
// if (timer_elapsed(key_timer) < TAPPING_TERM) {
|
||||
// process_steno(keycode, record);
|
||||
// }
|
||||
// else {
|
||||
// // clear pressed state (request push of updated) process_steno.c and .h
|
||||
// // steno_clear_state();
|
||||
// }
|
||||
// }
|
||||
// key_timer = 0;
|
||||
// }
|
||||
// }
|
||||
// #endif
|
||||
|
||||
// LT for S(keycode)
|
||||
void lt_shift(keyrecord_t *record, uint16_t keycode, uint8_t layer)
|
||||
{
|
||||
if (record->event.pressed) {
|
||||
key_timer = timer_read();
|
||||
layer_on(layer);
|
||||
}
|
||||
else {
|
||||
layer_off(layer);
|
||||
// for shifted keycodes, hence, LT_SHIFT
|
||||
key_press(SHIFT, keycode);
|
||||
clear_mods();
|
||||
key_timer = 0;
|
||||
}
|
||||
}
|
||||
|
||||
// set layer asap to overcome macro latency errors, notably tap dance and LT usage
|
||||
// this routine inexplicably (?) sets layer_on() faster than can be done in thumb_layer()
|
||||
void tap_layer(keyrecord_t *record, uint8_t layer)
|
||||
{
|
||||
if (record->event.pressed) {
|
||||
layer_on(layer);
|
||||
}
|
||||
else {
|
||||
layer_off(layer);
|
||||
}
|
||||
}
|
||||
|
||||
// ..................................................................... Keymaps
|
||||
|
||||
// void persistant_default_layer_set(uint16_t default_layer)
|
||||
// {
|
||||
// eeconfig_update_default_layer(default_layer);
|
||||
// default_layer_set (default_layer);
|
||||
// }
|
||||
|
||||
void clear_layers(void)
|
||||
{
|
||||
uint8_t layer;
|
||||
for (layer = 0; layer < _END_LAYERS; layer++) {
|
||||
layer_off(layer);
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef CENTER_TT
|
||||
static uint16_t tt_keycode = 0; // current TT keycode
|
||||
|
||||
void clear_tt(void)
|
||||
{
|
||||
if (tt_keycode == KC_CAPS) {
|
||||
tap_key(KC_CAPS); // clear capslock
|
||||
}
|
||||
tt_keycode = 0;
|
||||
clear_layers();
|
||||
set_single_persistent_default_layer(_BASE);
|
||||
}
|
||||
#endif
|
||||
|
||||
// txbolt plover run state
|
||||
static uint8_t plover = 0;
|
||||
|
||||
void toggle_plover(uint8_t state)
|
||||
{
|
||||
if (plover != state) {
|
||||
#ifdef PLOVER_KEYBIND
|
||||
#include "plover_keybind.h"
|
||||
#endif
|
||||
plover = state;
|
||||
}
|
||||
}
|
||||
|
||||
void base_layer(void)
|
||||
{
|
||||
#ifdef AUDIO_ENABLE
|
||||
if (plover) {
|
||||
PLAY_SONG(song_plover_gb);
|
||||
}
|
||||
else {
|
||||
PLAY_SONG(song_qwerty);
|
||||
}
|
||||
#endif
|
||||
clear_layers();
|
||||
set_single_persistent_default_layer(_BASE);
|
||||
toggle_plover(0);
|
||||
}
|
||||
|
||||
void steno(keyrecord_t *record)
|
||||
{
|
||||
if (record->event.pressed) {
|
||||
#ifdef AUDIO_ENABLE
|
||||
PLAY_SONG(song_plover);
|
||||
#endif
|
||||
clear_layers();
|
||||
layer_on(_PLOVER);
|
||||
if (!eeconfig_is_enabled()) {
|
||||
eeconfig_init();
|
||||
}
|
||||
keymap_config.raw = eeconfig_read_keymap();
|
||||
keymap_config.nkro = 1;
|
||||
eeconfig_update_keymap(keymap_config.raw);
|
||||
if (!plover) {
|
||||
toggle_plover(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void steno_exit(keyrecord_t *record)
|
||||
{
|
||||
if (record->event.pressed) {
|
||||
base_layer();
|
||||
toggle_plover(0);
|
||||
}
|
||||
}
|
||||
@@ -1,86 +0,0 @@
|
||||
|
||||
// const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
// ......................................................... Number Keypad Layer
|
||||
#ifdef SHIFT_SYMBOLS
|
||||
// .-----------------------------------------------------------------------------------.
|
||||
// | | F | E | D | | | | / | 7 | 8 | 9 | * |
|
||||
// |-----------------------------------------------------------------------------------|
|
||||
// | GUI | C | B | A | | | | . | 4 | 5 | 6 | - |
|
||||
// |-----------------------------------------------------------------------------------|
|
||||
// | | # | G | \ | | | | , | 1 | 2 | 3 | + |
|
||||
// |-----------------------------------------------------------------------------------|
|
||||
// | | | | f() | | | | 0 | = | | | |
|
||||
// | | | | f() | | | | = | 0 | | | |
|
||||
// '-----------------------------------------------------------------------------------'
|
||||
|
||||
[_NUMBER] = {
|
||||
{_______, KC_F, MT_E, KC_D, _______, ___x___, ___x___, KC_SLSH, KC_7, KC_8, KC_9, KC_ASTR},
|
||||
{OS_GUI, GT_C, AT_B, ST_A, _______, ___x___, ___x___, TD_DOT, KC_4, KC_5, KC_6, KC_MINS},
|
||||
{_______, KC_HASH, SM_G, KC_BSLS, _______, ___x___, ___x___, TD_COMM, KC_1, KC_2, KC_3, KC_PLUS},
|
||||
#ifdef THUMB_0
|
||||
{___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___, KC_0, LT_EQL, ___x___, ___x___, ___x___},
|
||||
#else
|
||||
{___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___, KC_EQL, LT_0, ___x___, ___x___, ___x___},
|
||||
#endif
|
||||
},
|
||||
#else
|
||||
// .-----------------------------------------------------------------------------------.
|
||||
// | | F | E | D | | | | / | 7 | 8 | 9 | * |
|
||||
// |-----------------------------------------------------------------------------------|
|
||||
// | GUI | C | B | A | | | | . | 4 | 5 | 6 | - |
|
||||
// |-----------------------------------------------------------------------------------|
|
||||
// | | # | X | G | | | | , | 1 | 2 | 3 | + |
|
||||
// |-----------------------------------------------------------------------------------|
|
||||
// | | f() | | 0 | = | |
|
||||
// | | f() | | = | 0 | |
|
||||
// '-----------------------------------------------------------------------------------'
|
||||
|
||||
[_NUMBER] = {
|
||||
{_______, KC_F, MT_E, KC_D, _______, _______, _______, KC_SLSH, KC_7, KC_8, KC_9, KC_ASTR},
|
||||
{OS_GUI, GT_C, AT_B, LT_A, _______, _______, _______, KC_DOT, KC_4, KC_5, KC_6, KC_MINS},
|
||||
{_______, KC_HASH, MT_X, S(KC_G), _______, _______, _______, TD_COMM, KC_1, KC_2, KC_3, KC_PLUS},
|
||||
#ifdef THUMB_0
|
||||
{___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___, KC_0, LT_EQL, ___x___, ___x___, ___x___},
|
||||
#else
|
||||
{___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___, KC_EQL, LT_0, ___x___, ___x___, ___x___},
|
||||
#endif
|
||||
},
|
||||
|
||||
// .-----------------------------------------------------------------------------------.
|
||||
// | | | | | | | | { | & | ? | : | } |
|
||||
// |-----------------------------------------------------------------------------------|
|
||||
// | | | | f() | | | | ( | $ | % | ^ | ) |
|
||||
// |-----------------------------------------------------------------------------------|
|
||||
// | | | | | | | | [ | < | ~ | > | ] |
|
||||
// |-----------------------------------------------------------------------------------|
|
||||
// | | f() | | \ | | | |
|
||||
// '-----------------------------------------------------------------------------------'
|
||||
|
||||
[_NUMSYM] = {
|
||||
{_______, _______, _______, ___x___, _______, _______, _______, TD_LCBR, KC_AMPR, KC_QUES, KC_COLN, KC_RCBR},
|
||||
{___x___, ___x___, ___x___, ___fn__, _______, _______, _______, TD_LPRN, KC_DLR, KC_PERC, KC_CIRC, KC_RPRN},
|
||||
{_______, _______, _______, ___x___, _______, _______, _______, TD_LBRC, KC_LT, KC_TILD, KC_GT, KC_RBRC},
|
||||
{___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___, KC_BSLS, KC_PIPE, ___x___, ___x___, ___x___},
|
||||
},
|
||||
#endif
|
||||
|
||||
// ............ .................................................. Function Keys
|
||||
|
||||
// .-----------------------------------------------------------------------------------.
|
||||
// | | | | | | | | | F7 | F8 | F9 | F12 |
|
||||
// |-----------------------------------------------------------------------------------|
|
||||
// | Ctrl | GUI | Alt | Shift| | | | | F4 | F5 | F6 | F11 |
|
||||
// |-----------------------------------------------------------------------------------|
|
||||
// | | | | | | | | | F1 | F2 | F3 | F10 |
|
||||
// |-----------------------------------------------------------------------------------|
|
||||
// | | | | | | f() | | + | | | | |
|
||||
// | | | | | f() | | | + | | | | | see _PLOVER
|
||||
// '-----------------------------------------------------------------------------------'
|
||||
|
||||
[_FNCKEY] = {
|
||||
{_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_F7, KC_F8, KC_F9, KC_F12 },
|
||||
{OS_GUI, OS_CTL, OS_ALT, OS_SFT, _______, ___x___, ___x___, _______, KC_F4, KC_F5, KC_F6, KC_F11 },
|
||||
{_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_F1, KC_F2, KC_F3, KC_F10 },
|
||||
{_______, _______, _______, _______, ___fn__, ___fn__, _______, KC_PLUS, _______, _______, _______, _______},
|
||||
},
|
||||
@@ -1,86 +0,0 @@
|
||||
|
||||
// const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
// ......................................................... Number Keypad Layer
|
||||
#ifdef SHIFT_SYMBOLS
|
||||
// .-----------------------------------------------------------------------------------.
|
||||
// | | F | E | D | | | | / | 7 | 8 | 9 | * |
|
||||
// |-----------------------------------------------------------------------------------|
|
||||
// | Ctrl | C | B | A | | | | . | 4 | 5 | 6 | - |
|
||||
// |-----------------------------------------------------------------------------------|
|
||||
// | | # | G | \ | | | | , | 1 | 2 | 3 | + |
|
||||
// |-----------------------------------------------------------------------------------|
|
||||
// | | | | f() | | | | 0 | = | | | |
|
||||
// | | | | f() | | | | = | 0 | | | |
|
||||
// '-----------------------------------------------------------------------------------'
|
||||
|
||||
[_NUMBER] = {
|
||||
{_______, KC_F, MT_E, KC_D, _______, ___x___, ___x___, KC_SLSH, KC_7, KC_8, KC_9, KC_ASTR},
|
||||
{OS_CTL, GT_C, AT_B, ST_A, _______, ___x___, ___x___, TD_DOT, KC_4, KC_5, KC_6, KC_MINS},
|
||||
{_______, KC_HASH, SM_G, KC_BSLS, _______, ___x___, ___x___, TD_COMM, KC_1, KC_2, KC_3, KC_PLUS},
|
||||
#ifdef THUMB_0
|
||||
{___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___, KC_0, LT_EQL, ___x___, ___x___, ___x___},
|
||||
#else
|
||||
{___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___, KC_EQL, LT_0, ___x___, ___x___, ___x___},
|
||||
#endif
|
||||
},
|
||||
#else
|
||||
// .-----------------------------------------------------------------------------------.
|
||||
// | | F | E | D | | | | / | 7 | 8 | 9 | * |
|
||||
// |-----------------------------------------------------------------------------------|
|
||||
// | Ctrl | C | B | A | | | | . | 4 | 5 | 6 | - |
|
||||
// |-----------------------------------------------------------------------------------|
|
||||
// | | # | X | G | | | | , | 1 | 2 | 3 | + |
|
||||
// |-----------------------------------------------------------------------------------|
|
||||
// | | | | f() | | | | 0 | = | | | |
|
||||
// | | | | f() | | | | = | 0 | | | |
|
||||
// '-----------------------------------------------------------------------------------'
|
||||
|
||||
[_NUMBER] = {
|
||||
{_______, KC_F, MT_E, KC_D, _______, _______, _______, KC_SLSH, KC_7, KC_8, KC_9, KC_ASTR},
|
||||
{OS_CTL, GT_C, AT_B, LT_A, _______, _______, _______, KC_DOT, KC_4, KC_5, KC_6, KC_MINS},
|
||||
{_______, KC_HASH, MT_X, S(KC_G), _______, _______, _______, TD_COMM, KC_1, KC_2, KC_3, KC_PLUS},
|
||||
#ifdef THUMB_0
|
||||
{___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___, KC_0, LT_EQL, ___x___, ___x___, ___x___},
|
||||
#else
|
||||
{___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___, KC_EQL, LT_0, ___x___, ___x___, ___x___},
|
||||
#endif
|
||||
},
|
||||
|
||||
// .-----------------------------------------------------------------------------------.
|
||||
// | | | | | | | | { | & | ? | : | } |
|
||||
// |-----------------------------------------------------------------------------------|
|
||||
// | | | | f() | | | | ( | $ | % | ^ | ) |
|
||||
// |-----------------------------------------------------------------------------------|
|
||||
// | | | | | | | | [ | < | ~ | > | ] |
|
||||
// |-----------------------------------------------------------------------------------|
|
||||
// | | | | f() | | | | \ | | | | | |
|
||||
// '-----------------------------------------------------------------------------------'
|
||||
|
||||
[_NUMSYM] = {
|
||||
{_______, _______, _______, ___x___, _______, _______, _______, TD_LCBR, KC_AMPR, KC_QUES, KC_COLN, KC_RCBR},
|
||||
{___x___, ___x___, ___x___, ___fn__, _______, _______, _______, TD_LPRN, KC_DLR, KC_PERC, KC_CIRC, KC_RPRN},
|
||||
{_______, _______, _______, ___x___, _______, _______, _______, TD_LBRC, KC_LT, KC_TILD, KC_GT, KC_RBRC},
|
||||
{___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___, KC_BSLS, KC_PIPE, ___x___, ___x___, ___x___},
|
||||
},
|
||||
#endif
|
||||
|
||||
// ............ .................................................. Function Keys
|
||||
|
||||
// .-----------------------------------------------------------------------------------.
|
||||
// | | | | | | | | | F7 | F8 | F9 | F12 |
|
||||
// |-----------------------------------------------------------------------------------|
|
||||
// | Ctrl | GUI | Alt | Shift| | | | | F4 | F5 | F6 | F11 |
|
||||
// |-----------------------------------------------------------------------------------|
|
||||
// | | | | | | | | | F1 | F2 | F3 | F10 |
|
||||
// |-----------------------------------------------------------------------------------|
|
||||
// | | | | | | f() | | + | | | | |
|
||||
// | | | | | f() | | | + | | | | | see _PLOVER
|
||||
// '-----------------------------------------------------------------------------------'
|
||||
|
||||
[_FNCKEY] = {
|
||||
{_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_F7, KC_F8, KC_F9, KC_F12 },
|
||||
{OS_CTL, OS_GUI, OS_ALT, OS_SFT, _______, ___x___, ___x___, _______, KC_F4, KC_F5, KC_F6, KC_F11 },
|
||||
{_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_F1, KC_F2, KC_F3, KC_F10 },
|
||||
{_______, _______, _______, _______, ___fn__, ___fn__, _______, KC_PLUS, _______, _______, _______, _______},
|
||||
},
|
||||
@@ -1,9 +0,0 @@
|
||||
|
||||
// simple window manager specific plover keybind hook
|
||||
|
||||
// toggle plover application, see herbstluftwm/config/appbinds
|
||||
register_code (KC_LGUI);
|
||||
register_code (KC_LCTL);
|
||||
tap_key (KC_EQL);
|
||||
unregister_code(KC_LCTL);
|
||||
unregister_code(KC_LGUI);
|
||||
@@ -1,14 +0,0 @@
|
||||
|
||||
// ................................................................ Audio Sounds
|
||||
|
||||
#ifdef AUDIO_ENABLE
|
||||
float song_startup [][2] = SONG(STARTUP_SOUND);
|
||||
float song_colemak [][2] = SONG(COLEMAK_SOUND);
|
||||
float song_qwerty [][2] = SONG(QWERTY_SOUND);
|
||||
float song_plover [][2] = SONG(PLOVER_SOUND);
|
||||
float song_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND);
|
||||
float song_caps_on [][2] = SONG(CAPS_LOCK_ON_SOUND);
|
||||
float song_caps_off [][2] = SONG(CAPS_LOCK_OFF_SOUND);
|
||||
float music_scale [][2] = SONG(MUSIC_SCALE_SOUND);
|
||||
float song_goodbye [][2] = SONG(GOODBYE_SOUND);
|
||||
#endif
|
||||
@@ -1,39 +0,0 @@
|
||||
|
||||
// const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
// ...................................................................... Plover
|
||||
#ifdef STENO_ENABLE
|
||||
// ,-----------------------------------------------------------------------------------.
|
||||
// | # | # | # | # | # | # | # | # | # | # | # | # |
|
||||
// |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
// | Base | S | T | P | H | * | * | F | P | L | T | D |
|
||||
// |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
// | Base | S | K | W | R | * | * | R | B | G | S | Z |
|
||||
// |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
// | | A | O | E | U | |
|
||||
// `-----------------------------------------------------------------------------------'
|
||||
|
||||
[_PLOVER] = {
|
||||
{STN_N1, STN_N2, STN_N3, STN_N4, STN_N5, STN_N6, STN_N7, STN_N8, STN_N9, STN_NA, STN_NB, STN_NC },
|
||||
{BASE1, STN_S1, STN_TL, STN_PL, STN_HL, STN_ST1, STN_ST3, STN_FR, STN_PR, STN_LR, STN_TR, STN_DR },
|
||||
{BASE2, STN_S2, STN_KL, STN_WL, STN_RL, STN_ST2, STN_ST4, STN_RR, STN_BR, STN_GR, STN_SR, STN_ZR },
|
||||
{_______, _______, _______, PS_STNA, PS_STNO, _______, _______, PS_STNE, PS_STNU, _______, _______, _______},
|
||||
},
|
||||
#else
|
||||
// ,-----------------------------------------------------------------------------------.
|
||||
// | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
|
||||
// |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
// | Base | S | T | P | H | * | * | F | P | L | T | D |
|
||||
// |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
// | Base | S | K | W | R | * | * | R | B | G | S | Z |
|
||||
// |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
// | | A | O | E | U | |
|
||||
// `-----------------------------------------------------------------------------------'
|
||||
|
||||
[_PLOVER] = {
|
||||
{KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 },
|
||||
{BASE1, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC},
|
||||
{BASE2, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},
|
||||
{_______, _______, _______, LT_C, LT_V, _______, _______, LT_N, LT_M, _______, _______, _______},
|
||||
},
|
||||
#endif
|
||||
@@ -1,75 +0,0 @@
|
||||
|
||||
// const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
// ..................................................... Symbol Navigation Layer
|
||||
#ifdef SHIFT_SYMBOLS
|
||||
// .-----------------------------------------------------------------------------------.
|
||||
// | | ~ | * | & | | | | | Home | Up | End | PgUp |
|
||||
// |-----------------------------------------------------------------------------------|
|
||||
// | GUI | ^ | % | $ | | | | | Left | Down | Right| PgDn |
|
||||
// |-----------------------------------------------------------------------------------|
|
||||
// | | # | @ | ! | | | | | | | | |
|
||||
// |-----------------------------------------------------------------------------------|
|
||||
// | |Adjust| \ | | f() | |
|
||||
// '-----------------------------------------------------------------------------------'
|
||||
|
||||
[_SYMBOL] = {
|
||||
{_______, KC_TILD, KC_ASTR, KC_AMPR, _______, ___x___, ___x___, _______, KC_HOME, KC_UP, KC_END, KC_PGUP},
|
||||
{OS_GUI, SM_CIRC, SM_PERC, SM_DLR, _______, ___x___, ___x___, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN},
|
||||
{_______, KC_HASH, KC_AT, KC_EXLM, _______, ___x___, ___x___, _______, _______, _______, _______, _______},
|
||||
{___x___, ___x___, ___x___, ADJUST, LT_BSLS, ___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___},
|
||||
},
|
||||
#else
|
||||
// .-----------------------------------------------------------------------------------.
|
||||
// | { | . | * | & | } | | | | Home | Up | End | PgUp |
|
||||
// |-----------------------------------------------------------------------------------|
|
||||
// | ( | ^ | % | $ | ) | | | | Left | Down | Right| PgDn |
|
||||
// |-----------------------------------------------------------------------------------|
|
||||
// | [ | # | @ | ! | ] | | | | | | | |
|
||||
// |-----------------------------------------------------------------------------------|
|
||||
// | | | | \ | | f() | |
|
||||
// '-----------------------------------------------------------------------------------'
|
||||
|
||||
[_SYMBOL] = {
|
||||
{KC_LCBR, KC_DOT, KC_ASTR, KC_AMPR, TD_RCBR, _______, _______, _______, KC_HOME, KC_UP, KC_END, KC_PGUP},
|
||||
{SM_LPRN, SM_CIRC, SM_PERC, SM_DLR, TD_RPRN, _______, _______, _______, LT_LFTX, KC_DOWN, KC_RGHT, KC_PGDN},
|
||||
{KC_LBRC, KC_HASH, KC_AT, KC_EXLM, TD_RBRC, _______, _______, _______, _______, _______, _______, _______},
|
||||
{___x___, ___x___, ___x___, SL_PIPE, LT_BSLS, ___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___},
|
||||
},
|
||||
|
||||
// .-----------------------------------------------------------------------------------.
|
||||
// | | ? | + | ~ | | | | | | | | |
|
||||
// |-----------------------------------------------------------------------------------|
|
||||
// | | < | = | > | | | | | f() | | | |
|
||||
// |-----------------------------------------------------------------------------------|
|
||||
// | | 3 | 2 | 1 | | | | | | | | |
|
||||
// |-----------------------------------------------------------------------------------|
|
||||
// | | | | | f() | |
|
||||
// '-----------------------------------------------------------------------------------'
|
||||
|
||||
[_SYMREG] = {
|
||||
{___x___, KC_QUES, KC_PLUS, KC_TILD, ___x___, _______, _______, _______, ___x___, ___x___, ___x___, ___x___},
|
||||
{___x___, KC_LT, KC_EQL, TD_RNGL, ___x___, _______, _______, _______, ___fn__, ___x___, ___x___, ___x___},
|
||||
{___x___, KC_3, KC_2, KC_1, ___x___, _______, _______, _______, _______, _______, _______, _______},
|
||||
{___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___},
|
||||
},
|
||||
#endif
|
||||
|
||||
// ............................................................... Mouse Actions
|
||||
|
||||
// .-----------------------------------------------------------------------------------.
|
||||
// | | | | | | | | | Left | Up | Right| Up |
|
||||
// |-----------------------------------------------------------------------------------|
|
||||
// | | Btn3 | Btn2 | Btn1 | | | | | Left | Down | Right| Down |
|
||||
// |-----------------------------------------------------------------------------------|
|
||||
// | | | | | | | | | | | | |
|
||||
// |-----------------------------------------------------------------------------------|
|
||||
// | | | f() | | f() | |
|
||||
// '-----------------------------------------------------------------------------------'
|
||||
|
||||
[_MOUSE] = {
|
||||
{_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_WH_L, KC_MS_U, KC_WH_R, KC_WH_U},
|
||||
{_______, KC_BTN3, KC_BTN2, KC_BTN1, _______, ___x___, ___x___, _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D},
|
||||
{_______, _______, _______, _______, _______, ___x___, ___x___, _______, _______, _______, _______, _______},
|
||||
{_______, _______, _______, _______, ___fn__, _______, _______, _______, ___fn__, _______, _______, _______},
|
||||
},
|
||||
@@ -1,49 +0,0 @@
|
||||
|
||||
// tap dance keys
|
||||
enum tap_dance {
|
||||
_CAPS = 0
|
||||
,_COLN
|
||||
,_COMM
|
||||
,_DOT
|
||||
,_DQOT
|
||||
,_ENT
|
||||
,_EQL
|
||||
,_GRV
|
||||
,_GT
|
||||
,_LBRC
|
||||
,_LCBR
|
||||
,_LPRN
|
||||
,_LT
|
||||
,_PRIV
|
||||
,_QUOT
|
||||
,_RBRC
|
||||
,_RCBR
|
||||
,_RNGL
|
||||
,_RPRN
|
||||
,_SEND
|
||||
,_SPC
|
||||
,_TILD
|
||||
};
|
||||
|
||||
#define TD_CAPS TD(_CAPS)
|
||||
#define TD_COLN TD(_COLN)
|
||||
#define TD_COMM TD(_COMM)
|
||||
#define TD_DOT TD(_DOT)
|
||||
#define TD_DQOT TD(_DQOT)
|
||||
#define TD_ENT TD(_ENT)
|
||||
#define TD_EQL TD(_EQL)
|
||||
#define TD_GRV TD(_GRV)
|
||||
#define TD_GT TD(_GT)
|
||||
#define TD_LBRC TD(_LBRC)
|
||||
#define TD_LCBR TD(_LCBR)
|
||||
#define TD_LPRN TD(_LPRN)
|
||||
#define TD_LT TD(_LT)
|
||||
#define TD_PRIV TD(_PRIV) // compile time macro string, provided in private_string.h
|
||||
#define TD_QUOT TD(_QUOT)
|
||||
#define TD_RBRC TD(_RBRC)
|
||||
#define TD_RCBR TD(_RCBR)
|
||||
#define TD_RNGL TD(_RNGL)
|
||||
#define TD_RPRN TD(_RPRN)
|
||||
#define TD_SEND TD(_SEND) // config.h defined macro string
|
||||
#define TD_SPC TD(_SPC) // see process_record_user() for extended handling of Spc
|
||||
#define TD_TILD TD(_TILD)
|
||||
@@ -1,102 +0,0 @@
|
||||
|
||||
// const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
// ......................................................... Number Keypad Layer
|
||||
|
||||
// .-----------------------------------------------------------------------------------.
|
||||
// | | F | E | D | | | | / | 7 | 8 | 9 | * |
|
||||
// |-----------------------------------------------------------------------------------|
|
||||
// | GUI | C | B | A | | | | . | 4 | 5 | 6 | - |
|
||||
// |-----------------------------------------------------------------------------------|
|
||||
// | | # | G | \ | | | | , | 1 | 2 | 3 | + |
|
||||
// |-----------------------------------------------------------------------------------|
|
||||
// | | | | f() | Space| | | 0 | = | | | |
|
||||
// | | | | f() | Space| | | = | 0 | | | |
|
||||
// '-----------------------------------------------------------------------------------'
|
||||
|
||||
[_TTNUMBER] = {
|
||||
{_______, KC_F, MT_E, KC_D, _______, ___x___, ___x___, KC_SLSH, KC_7, KC_8, KC_9, KC_ASTR},
|
||||
{OS_GUI, GT_C, AT_B, ST_A, _______, ___x___, ___x___, TD_DOT, KC_4, KC_5, KC_6, KC_MINS},
|
||||
{_______, KC_HASH, SM_G, KC_BSLS, _______, ___x___, ___x___, TD_COMM, KC_1, KC_2, KC_3, KC_PLUS},
|
||||
#ifdef THUMB_0
|
||||
{_______, _______, _______, TT_ESC, KC_SPC, _______, _______, KC_0, LT_EQL, _______, _______, _______},
|
||||
#else
|
||||
{_______, _______, _______, TT_ESC, KC_SPC, _______, _______, KC_EQL, LT_0, _______, _______, _______},
|
||||
#endif
|
||||
},
|
||||
|
||||
// ............ .................................................. Function Keys
|
||||
|
||||
// .-----------------------------------------------------------------------------------.
|
||||
// | | | | | | | | | F7 | F8 | F9 | F12 |
|
||||
// |-----------------------------------------------------------------------------------|
|
||||
// | GUI | Ctrl | Alt | Shift| | | | | F4 | F5 | F6 | F11 |
|
||||
// |-----------------------------------------------------------------------------------|
|
||||
// | | | | | | | | | F1 | F2 | F3 | F10 |
|
||||
// |-----------------------------------------------------------------------------------|
|
||||
// | | | | f() | | | | + | | | | |
|
||||
// '-----------------------------------------------------------------------------------'
|
||||
|
||||
[_TTFNCKEY] = {
|
||||
{_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_F7, KC_F8, KC_F9, KC_F12 },
|
||||
{OS_GUI, OS_CTL, OS_ALT, OS_SFT, _______, ___x___, ___x___, _______, KC_F4, KC_F5, KC_F6, KC_F11 },
|
||||
{_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_F1, KC_F2, KC_F3, KC_F10 },
|
||||
{_______, _______, _______, TT_ESC, _______, _______, _______, KC_PLUS, _______, _______, _______, _______},
|
||||
},
|
||||
|
||||
// ....................................................................... Regex
|
||||
|
||||
// ,-----------------------------------------------------------------------------------.
|
||||
// | | ~ | { | } | & | | | % | [ | ] | @ | |
|
||||
// |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
// | | ^ | < | > | ? | | | | | ( | ) | $ | |
|
||||
// |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
// | | : | ! | = | / | | | \ | * | . | # | |
|
||||
// |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
// | | | | f() | - | | | + | Space| | | |
|
||||
// `-----------------------------------------------------------------------------------'
|
||||
|
||||
[_TTREGEX] = {
|
||||
{___x___, KC_TILD, KC_LCBR, KC_RCBR, KC_AMPR, ___x___, ___x___, KC_PERC, KC_LBRC, KC_RBRC, KC_AT, ___x___},
|
||||
{___x___, KC_CIRC, KC_LT, KC_GT, KC_QUES, ___x___, ___x___, KC_PIPE, KC_LPRN, KC_RPRN, KC_DLR, ___x___},
|
||||
{___x___, KC_COLN, KC_EXLM, KC_EQL, KC_SLSH, ___x___, ___x___, KC_BSLS, KC_ASTR, KC_DOT, KC_HASH, ___x___},
|
||||
{_______, _______, _______, TT_ESC, KC_MINS, _______, _______, KC_PLUS, KC_SPC, _______, _______, _______},
|
||||
},
|
||||
|
||||
// ............................................................ Navigation Layer
|
||||
|
||||
// .-----------------------------------------------------------------------------------.
|
||||
// | | | | | | | | | Home | Up | End | PgUp |
|
||||
// |-----------------------------------------------------------------------------------|
|
||||
// | GUI | Ctrl | Alt | Shift| | | | | Left | Down | Right| PgDn |
|
||||
// |-----------------------------------------------------------------------------------|
|
||||
// | | | | | | | | | | | | |
|
||||
// |-----------------------------------------------------------------------------------|
|
||||
// | | | | f() | | | | | | | | |
|
||||
// '-----------------------------------------------------------------------------------'
|
||||
|
||||
[_TTCURSOR] = {
|
||||
{_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_HOME, KC_UP, KC_END, KC_PGUP},
|
||||
{OS_GUI, OS_CTL, OS_ALT, OS_SFT, _______, ___x___, ___x___, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN},
|
||||
{_______, _______, _______, _______, _______, ___x___, ___x___, _______, _______, _______, _______, _______},
|
||||
{_______, _______, _______, TT_ESC, _______, _______, _______, _______, _______, _______, _______, _______},
|
||||
},
|
||||
|
||||
// ............................................................... Mouse Actions
|
||||
|
||||
// .-----------------------------------------------------------------------------------.
|
||||
// | | | | | | | | | Left | Up | Right| Up |
|
||||
// |-----------------------------------------------------------------------------------|
|
||||
// | | Btn3 | Btn2 | Btn1 | | | | | Left | Down | Right| Down |
|
||||
// |-----------------------------------------------------------------------------------|
|
||||
// | | | | | | | | | | | | |
|
||||
// |-----------------------------------------------------------------------------------|
|
||||
// | | | | f() | | | | | | | | |
|
||||
// '-----------------------------------------------------------------------------------'
|
||||
|
||||
[_TTMOUSE] = {
|
||||
{_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_WH_L, KC_MS_U, KC_WH_R, KC_WH_U},
|
||||
{_______, KC_BTN3, KC_BTN2, KC_BTN1, _______, ___x___, ___x___, _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D},
|
||||
{_______, _______, _______, _______, _______, ___x___, ___x___, _______, _______, _______, _______, _______},
|
||||
{_______, _______, _______, TT_ESC, _______, _______, _______, _______, _______, _______, _______, _______},
|
||||
},
|
||||
@@ -1,47 +0,0 @@
|
||||
#ifndef CONFIG_USER_H
|
||||
#define CONFIG_USER_H
|
||||
|
||||
#include "../../config.h"
|
||||
|
||||
// tap dance key press termination interval
|
||||
#define TAPPING_TERM 250
|
||||
|
||||
// smooth mouse motion
|
||||
// #define MOUSEKEY_INTERVAL 20
|
||||
// #define MOUSEKEY_DELAY 0
|
||||
// #define MOUSEKEY_TIME_TO_MAX 60
|
||||
// #define MOUSEKEY_MAX_SPEED 7
|
||||
// #define MOUSEKEY_WHEEL_DELAY 0
|
||||
|
||||
// compile time macro string, see functions/hardware planck script (undefine otherwise)
|
||||
#define PRIVATE_STRING
|
||||
|
||||
// compile time macro string, must be in quotes
|
||||
#define PUBLIC_STRING ":%s/arch=(.*)/arch=('any')\n"
|
||||
|
||||
// thumb key tap-shift() double tap: one shot shift (0) off (1) on
|
||||
#define DT_SHIFT 1
|
||||
|
||||
// number layer 0 position KEYPAD_0, THUMB_0
|
||||
#define THUMB_0
|
||||
|
||||
// home block shift symbol clustes defined (no overlays required for extended symbols, undefine otherwise)
|
||||
#define SHIFT_SYMBOLS
|
||||
|
||||
// center column TT assignments (undefine for OSM chords)
|
||||
#define CENTER_TT
|
||||
#define TAPPING_TOGGLE 1
|
||||
|
||||
// home row modifiers
|
||||
#define HOME_MODS
|
||||
// fix dual function timing
|
||||
#define PERMISSIVE_HOLD
|
||||
#define IGNORE_MOD_TAP_INTERRUPT
|
||||
|
||||
// layout ADNW*, BEAKL*, COLEKA*, QWERTY (default)
|
||||
#define BEAKLGR
|
||||
|
||||
// sync app with window manager keybind hook defined in plover_keybind.h
|
||||
#define PLOVER_KEYBIND
|
||||
|
||||
#endif
|
||||
@@ -1,489 +0,0 @@
|
||||
// This is the canonical layout file for the Quantum project. If you want to add another keyboard,
|
||||
// this is the style you want to emulate.
|
||||
//
|
||||
// To flash planck firmware
|
||||
// ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
|
||||
// Reset keyboard or press hw reset button on base (hole)
|
||||
//
|
||||
// cd qmk_firmware/keyboards/planck
|
||||
// sudo make KEYMAP=sdothum dfu
|
||||
//
|
||||
// sudo make clean (good practice before flashing)
|
||||
// sudo make KEYMAP=sdothum (to compile check)
|
||||
//
|
||||
// Package requirements (for arch linux)
|
||||
// ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
|
||||
// avr-gcc-atmel
|
||||
// avr-libc-atmel
|
||||
// dfu-programmer
|
||||
//
|
||||
// Notes
|
||||
// ▔▔▔▔▔
|
||||
// ** E R G O W I D E S P L I T ** Layout
|
||||
//
|
||||
// Autocompletion tap dance key pairs (),[],{} are available from the
|
||||
// number/symbol layer, as well as, numerous (un)shift key values
|
||||
//
|
||||
// The navigation pad provides a single hand right thumb activated cluster
|
||||
// with left hand modifiers
|
||||
//
|
||||
// #define PRIVATE_STRING includes private_string.h, a user defined code
|
||||
// block for the PRIV tap dance e.g. SEND_STRING("secret messape"),
|
||||
// see function private()
|
||||
//
|
||||
// Modifier clusters
|
||||
// ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
|
||||
// The num and sym keys together access the navigation pad layer
|
||||
//
|
||||
// ,-----------------------------------------------------------------------------------.
|
||||
// | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right|
|
||||
// `-----------------------------------------------------------------------------------'
|
||||
//
|
||||
// Hint
|
||||
// ▔▔▔▔
|
||||
// For sculpted keycaps such as Cherry or OEM profile, reverse the Alt, Num,
|
||||
// Shift, Shift, Nav, Sym keycaps for more ergonomic thumb orientation and
|
||||
// actuation
|
||||
//
|
||||
// Code
|
||||
// ▔▔▔▔
|
||||
// This source is shamelessly based on the "default" planck layout
|
||||
//
|
||||
// #ifdef/#endif block structures are not indented, as syntax highlighting
|
||||
// in vim is sufficient for identification
|
||||
//
|
||||
// c++ commenting style is used throughout
|
||||
//
|
||||
// Change history
|
||||
// ▔▔▔▔▔▔▔▔▔▔▔▔▔▔
|
||||
// See http://thedarnedestthing.com/planck%20constant
|
||||
// See http://thedarnedestthing.com/planck%20done
|
||||
|
||||
|
||||
|
||||
// === N O T E ===
|
||||
//
|
||||
// sudo CPATH=<keymap.c directory>/common make ...
|
||||
|
||||
|
||||
#include "config.h"
|
||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
|
||||
#include "planck.h"
|
||||
#include "action_layer.h"
|
||||
#ifdef STENO_ENABLE
|
||||
#include "keymap_steno.h"
|
||||
#endif
|
||||
#ifdef AUDIO_ENABLE
|
||||
#include "audio.h"
|
||||
#endif
|
||||
#include "eeconfig.h"
|
||||
|
||||
extern keymap_config_t keymap_config;
|
||||
|
||||
enum planck_layers {
|
||||
_BASE = 0
|
||||
,_SHIFT
|
||||
,_LSHIFT
|
||||
,_RSHIFT
|
||||
,_PLOVER
|
||||
,_NUMBER
|
||||
,_SYMBOL
|
||||
,_FNCKEY
|
||||
,_MOUSE
|
||||
#ifdef CENTER_TT
|
||||
,_TTNUMBER
|
||||
,_TTREGEX
|
||||
,_TTFNCKEY
|
||||
,_TTCURSOR
|
||||
,_TTMOUSE
|
||||
#endif
|
||||
#ifndef SHIFT_SYMBOLS
|
||||
,_NUMSYM
|
||||
,_SYMREG
|
||||
#endif
|
||||
,_EDIT
|
||||
,_QWERTY
|
||||
,_ADJUST
|
||||
,_END_LAYERS
|
||||
};
|
||||
|
||||
enum planck_keycodes {
|
||||
BASE = SAFE_RANGE
|
||||
,BASE1
|
||||
,BASE2
|
||||
,PLOVER
|
||||
,PLOEXIT
|
||||
,SM_CIRC // pseudo GUI_T(S(KC_6)) for shifted key-codes, see process_record_user()
|
||||
,SM_DLR // pseudo SFT_T(S(KC_4)) for shifted key-codes, see process_record_user()
|
||||
,SM_G // pseudo MT (MOD_LALT | MOD_LSFT, S(KC_G)) for shifted key-codes, see process_record_user()
|
||||
,SM_K // pseudo MT (MOD_LGUI | MOD_LSFT, S(KC_K)) for shifted key-codes, see process_record_user()
|
||||
,SM_PERC // pseudo ALT_T(S(KC_5)) for shifted key-codes, see process_record_user()
|
||||
,SM_LPRN // pseudo CTL_T(S(KC_9)) for shifted key-codes, see process_record_user()
|
||||
,SM_W // pseudo MT (MOD_LGUI | MOD_LSFT, S(KC_W)) for shifted key-codes, see process_record_user()
|
||||
,SL_LEFT // pseudo LT (_MOUSE, S(KC_LEFT)) for shifted key-codes, see process_record_user()
|
||||
,SP_DEL // pseudo LT (_MOUSE, KC_DEL) for shifted key-codes, see process_record_user()
|
||||
,SL_PIPE // pseudo LT (_ADJUST, S(KC_BSLS)) for shifted key-codes, see process_record_user()
|
||||
,SL_TAB // pseudo LT (_FNCKEY, S(KC_TAB)) for shifted key-codes, see process_record_user()
|
||||
#ifdef CENTER_TT
|
||||
,TT_ESC
|
||||
#endif
|
||||
#ifdef STENO_ENABLE
|
||||
,PS_STNA = STN_A
|
||||
,PS_STNO = STN_O
|
||||
,PS_STNE = STN_E
|
||||
,PS_STNU = STN_U
|
||||
#else
|
||||
,LT_C = LT (_NUMBER, KC_C)
|
||||
,LT_V = LT (_FNCKEY, KC_V)
|
||||
,LT_N = LT (_EDIT, KC_N)
|
||||
,LT_M = LT (_SYMBOL, KC_M)
|
||||
#endif
|
||||
,PS_BASE
|
||||
};
|
||||
|
||||
// modifier keys
|
||||
#define AT_B ALT_T(KC_B)
|
||||
#define AT_DOWN ALT_T(KC_DOWN)
|
||||
#define CT_RGHT CTL_T(KC_RGHT)
|
||||
#define GT_C GUI_T(KC_C)
|
||||
#define GT_UP GUI_T(KC_UP)
|
||||
#define MT_E MT (MOD_LCTL | MOD_LALT, KC_E)
|
||||
#define MT_X MT (MOD_LALT | MOD_LSFT, KC_X)
|
||||
#define ST_A SFT_T(KC_A)
|
||||
#ifdef HOME_MODS
|
||||
#define HOME_K GUI_T(KC_K)
|
||||
#define HOME_H CTL_T(KC_H)
|
||||
#define HOME_E ALT_T(KC_E)
|
||||
#define HOME_A SFT_T(KC_A)
|
||||
#if defined(BEAKLMU) || defined(BEAKLSP) || defined(BEAKLGR)
|
||||
#define HOME_T SFT_T(KC_T)
|
||||
#define HOME_R ALT_T(KC_R)
|
||||
#define HOME_S CTL_T(KC_S)
|
||||
#define HOME_W GUI_T(KC_W)
|
||||
#else
|
||||
#define HOME_T SFT_T(KC_T)
|
||||
#define HOME_S ALT_T(KC_S)
|
||||
#define HOME_N GUI_T(KC_N)
|
||||
#define HOME_B CTL_T(KC_B)
|
||||
#endif
|
||||
#else
|
||||
#define HOME_K KC_K
|
||||
#define HOME_H KC_H
|
||||
#define HOME_E KC_E
|
||||
#define HOME_A KC_A
|
||||
#define HOME_T KC_T
|
||||
#define HOME_S KC_S
|
||||
#define HOME_N KC_N
|
||||
#define HOME_B KC_B
|
||||
#endif
|
||||
|
||||
#define S_DOWN S (KC_DOWN)
|
||||
#define S_LEFT S (KC_LEFT)
|
||||
#define S_RGHT S (KC_RGHT)
|
||||
#define S_TAB S (KC_TAB)
|
||||
#define S_UP S (KC_UP)
|
||||
|
||||
#include "tapdance.h"
|
||||
|
||||
// keycodes
|
||||
#define ___x___ KC_TRNS
|
||||
#define ___fn__ KC_TRNS
|
||||
#undef _______
|
||||
#define _______ KC_NO
|
||||
|
||||
#define COPY LCTL(KC_C)
|
||||
#define CUT LCTL(KC_X)
|
||||
#define EOT LCTL(KC_D)
|
||||
#define NAK LCTL(KC_U)
|
||||
#define PASTE LCTL(KC_V)
|
||||
#define UNDO LCTL(KC_Z)
|
||||
#define TMCOPY LALT(LCTL(KC_C))
|
||||
#define TMPASTE LALT(LCTL(KC_V))
|
||||
#define LT_BSLS LT (_MOUSE, KC_BSLS) // see process_record_user() for extended handling
|
||||
#define LT_BSPC LT (_EDIT, KC_BSPC)
|
||||
#define SP_LEFT LT (_EDIT, KC_LEFT)
|
||||
#define LT_ESC LT (_NUMBER, KC_ESC)
|
||||
#define LT_LEFT LT (_SYMBOL, KC_LEFT) // see process_record_user() for extended handling
|
||||
#define SP_BSPC LT (_SYMBOL, KC_BSPC) // see process_record_user() for extended handling
|
||||
#define LT_TAB LT (_FNCKEY, KC_TAB)
|
||||
#define LT_INS LT (_FNCKEY, KC_INS)
|
||||
#define LT_ALTG LT (_FNCKEY, KC_RALT)
|
||||
#define ADJUST MO (_ADJUST)
|
||||
#define OS_ALT OSM (MOD_LALT)
|
||||
#define OS_CTL OSM (MOD_LCTL)
|
||||
#define OS_GUI OSM (MOD_LGUI)
|
||||
#define OS_SFT OSM (MOD_LSFT)
|
||||
#define OS_CALT OSM (MOD_LALT | MOD_LCTL)
|
||||
#define OS_CGUI OSM (MOD_LGUI | MOD_LCTL)
|
||||
#define OS_CSFT OSM (MOD_LSFT | MOD_LCTL)
|
||||
#define OS_SALT OSM (MOD_LALT | MOD_LSFT)
|
||||
#define OS_SGUI OSM (MOD_LGUI | MOD_LSFT)
|
||||
|
||||
#ifdef CENTER_TT
|
||||
#ifdef BEAKLSP
|
||||
#define CNTR_TL OSM (MOD_LSFT)
|
||||
#else
|
||||
#define CNTR_TL TT (_TTFNCKEY)
|
||||
#endif
|
||||
#define CNTR_TR KC_CAPS
|
||||
#define CNTR_HL TT (_TTCURSOR)
|
||||
#define CNTR_HR TT (_TTMOUSE)
|
||||
#define CNTR_BL TT (_TTNUMBER)
|
||||
#define CNTR_BR TT (_TTREGEX)
|
||||
#else
|
||||
#define CNTR_TL OSM (MOD_LALT | MOD_LCTL)
|
||||
#define CNTR_TR OSM (MOD_LGUI | MOD_LCTL)
|
||||
#define CNTR_HL OSM (MOD_LALT | MOD_LSFT)
|
||||
#define CNTR_HR OSM (MOD_LGUI | MOD_LSFT)
|
||||
#define CNTR_BL TD (_CAPS)
|
||||
#define CNTR_BR OSM (MOD_LSFT | MOD_LCTL)
|
||||
#endif
|
||||
|
||||
#ifdef THUMB_0
|
||||
#define LT_EQL LT (_ADJUST, KC_EQL)
|
||||
#else
|
||||
#define LT_0 LT (_ADJUST, KC_0)
|
||||
#endif
|
||||
#ifndef SHIFT_SYMBOLS
|
||||
#define LT_A LT (_NUMSYM, KC_A)
|
||||
#define LT_LFTX LT (_SYMREG, KC_LEFT)
|
||||
#endif
|
||||
|
||||
// ........................................................ Default Alpha Layout
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
#include "beakl.h"
|
||||
#include "colemak.h"
|
||||
#include "qwerty.h"
|
||||
#include "steno_layout.h"
|
||||
|
||||
// ...................................................... Number / Function Keys
|
||||
|
||||
#include "number_fkey_layout.h"
|
||||
|
||||
// ......................................................... Symbol / Navigation
|
||||
|
||||
#include "symbol_guifn_layout.h"
|
||||
|
||||
// ............................................................... Toggle Layers
|
||||
|
||||
#ifdef CENTER_TT
|
||||
#include "toggle_layout.h"
|
||||
#endif
|
||||
|
||||
// ......................................................... Short Cuts / Adjust
|
||||
|
||||
#include "chord_layout.h"
|
||||
|
||||
};
|
||||
|
||||
// ...................................................................... Sounds
|
||||
|
||||
#include "sounds.h"
|
||||
|
||||
// ........................................................... User Keycode Trap
|
||||
|
||||
#include "keycode_functions.h"
|
||||
|
||||
#define BASE_1 1
|
||||
#define BASE_2 2
|
||||
#define BASE_12 3
|
||||
static uint8_t base_n = 0;
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record)
|
||||
{
|
||||
switch (keycode) {
|
||||
case BASE1:
|
||||
if (record->event.pressed) {
|
||||
base_n = base_n | BASE_1;
|
||||
if (base_n == BASE_12) {
|
||||
base_layer();
|
||||
}
|
||||
}
|
||||
else {
|
||||
base_n = base_n & ~BASE_1;
|
||||
}
|
||||
return false;
|
||||
case BASE2:
|
||||
if (record->event.pressed) {
|
||||
base_n = base_n | BASE_2;
|
||||
if (base_n == BASE_12) {
|
||||
base_layer();
|
||||
}
|
||||
}
|
||||
else {
|
||||
base_n = base_n & ~BASE_2;
|
||||
}
|
||||
return false;
|
||||
case AT_DOWN:
|
||||
#ifdef HOME_MODS
|
||||
case HOME_E:
|
||||
#if defined(BEAKLMU) || defined(BEAKLSP) || defined(BEAKLGR)
|
||||
case HOME_R:
|
||||
#else
|
||||
case HOME_S:
|
||||
#endif
|
||||
#endif
|
||||
tap_mods(record, KC_LALT);
|
||||
break;
|
||||
case CT_RGHT:
|
||||
#ifdef HOME_MODS
|
||||
case HOME_K:
|
||||
#if defined(BEAKLMU) || defined(BEAKLSP) || defined(BEAKLGR)
|
||||
case HOME_W:
|
||||
#else
|
||||
case HOME_B:
|
||||
#endif
|
||||
#endif
|
||||
tap_mods(record, KC_LGUI);
|
||||
break;
|
||||
case GT_UP:
|
||||
#ifdef HOME_MODS
|
||||
case HOME_H:
|
||||
#if defined(BEAKLMU) || defined(BEAKLSP) || defined(BEAKLGR)
|
||||
case HOME_S:
|
||||
#else
|
||||
case HOME_N:
|
||||
#endif
|
||||
#endif
|
||||
tap_mods(record, KC_LCTL);
|
||||
break;
|
||||
#ifdef HOME_MODS
|
||||
case HOME_A:
|
||||
case HOME_T:
|
||||
tap_mods(record, KC_LSFT);
|
||||
break;
|
||||
#endif
|
||||
#ifdef CENTER_TT
|
||||
case TT_ESC:
|
||||
clear_tt(); // exit TT layer
|
||||
return false;
|
||||
#endif
|
||||
case LT_ESC:
|
||||
#ifdef CENTER_TT
|
||||
if (tt_keycode != 0) {
|
||||
clear_tt(); // exit TT layer
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
tap_layer(record, _NUMBER);
|
||||
break;
|
||||
case LT_LEFT:
|
||||
case SP_BSPC:
|
||||
tap_layer(record, _SYMBOL);
|
||||
// LT (_SYMBOL, KC_LEFT) left right combination layer
|
||||
thumb_layer(record, RIGHT, 0, 0, _SYMBOL, _LSHIFT);
|
||||
break;
|
||||
case OS_ALT:
|
||||
tap_mods(record, KC_LALT);
|
||||
break;
|
||||
case OS_CTL:
|
||||
tap_mods(record, KC_LCTL);
|
||||
break;
|
||||
case OS_GUI:
|
||||
tap_mods(record, KC_LGUI);
|
||||
break;
|
||||
case SM_CIRC:
|
||||
// GUI_T(S(KC_6))
|
||||
mt_shift(record, KC_LGUI, 0, KC_6);
|
||||
break;
|
||||
case SM_DLR:
|
||||
// SFT_T(S(KC_4))
|
||||
mt_shift(record, KC_LSFT, 0, KC_4);
|
||||
break;
|
||||
case SM_G:
|
||||
// MT(MOD_LALT | MOD_LSFT, S(KC_G))
|
||||
mt_shift(record, KC_LALT, KC_LSFT, KC_G);
|
||||
break;
|
||||
case SM_K:
|
||||
// MT(MOD_LGUI | MOD_LSFT, S(KC_K))
|
||||
mt_shift(record, KC_LGUI, KC_LSFT, KC_K);
|
||||
break;
|
||||
case SM_W:
|
||||
// MT(MOD_LGUI | MOD_LSFT, S(KC_W))
|
||||
mt_shift(record, KC_LGUI, KC_LSFT, KC_W);
|
||||
break;
|
||||
case SM_LPRN:
|
||||
// CTL_T(S(KC_9))
|
||||
mt_shift(record, KC_LCTL, 0, KC_9);
|
||||
break;
|
||||
case SM_PERC:
|
||||
// ALT_T(S(KC_5))
|
||||
mt_shift(record, KC_LALT, 0, KC_5);
|
||||
break;
|
||||
case LT_BSLS:
|
||||
tap_layer(record, _MOUSE);
|
||||
// LT (_MOUSE, KC_BSLS) left right combination layer, see #define LT_BSLS
|
||||
thumb_layer(record, LEFT, 0, 0, _MOUSE, _SYMBOL);
|
||||
break;
|
||||
case SL_LEFT:
|
||||
tap_layer(record, _MOUSE);
|
||||
// LT (_MOUSE, S(KC_LEFT)) left right combination layer
|
||||
thumb_layer(record, RIGHT, SHIFT, KC_LEFT, _MOUSE, _LSHIFT);
|
||||
break;
|
||||
case SP_DEL:
|
||||
tap_layer(record, _MOUSE);
|
||||
// LT (_MOUSE, S(KC_LEFT)) left right combination layer
|
||||
thumb_layer(record, RIGHT, NOSHIFT, KC_DEL, _MOUSE, _LSHIFT);
|
||||
break;
|
||||
case SL_PIPE:
|
||||
// LT (_ADJUST, S(KC_BSLS)) emulation
|
||||
lt_shift(record, KC_BSLS, _ADJUST);
|
||||
break;
|
||||
case SL_TAB:
|
||||
// LT (_FNCKEY, S(KC_TAB)) emulation
|
||||
lt_shift(record, KC_TAB, _FNCKEY);
|
||||
break;
|
||||
case TD_ENT:
|
||||
tap_layer(record, _RSHIFT);
|
||||
// LT (_RSHIFT, KC_ENT) emulation, see tap dance enter
|
||||
break;
|
||||
case TD_SPC:
|
||||
tap_layer(record, _LSHIFT);
|
||||
// LT (_LSHIFT, KC_SPC) left right combination layer, see tap dance TD_SPC
|
||||
thumb_layer(record, LEFT, 0, 0, _LSHIFT, _SYMBOL);
|
||||
break;
|
||||
#ifdef CENTER_TT
|
||||
case CNTR_TL:
|
||||
case CNTR_TR:
|
||||
case CNTR_HL:
|
||||
case CNTR_HR:
|
||||
case CNTR_BL:
|
||||
case CNTR_BR:
|
||||
if (tt_keycode != keycode && tt_keycode != 0) {
|
||||
clear_tt(); // return to base layer first if different TT layer selected
|
||||
}
|
||||
tt_keycode = keycode;
|
||||
break;
|
||||
#endif
|
||||
// #ifdef STENO_ENABLE
|
||||
// case PS_STNA:
|
||||
// stn_layer(record, STN_A, _NUMBER);
|
||||
// break;
|
||||
// case PS_STNO:
|
||||
// stn_layer(record, STN_O, _FNCKEY);
|
||||
// break;
|
||||
// case PS_STNE:
|
||||
// stn_layer(record, STN_E, _EDIT);
|
||||
// break;
|
||||
// case PS_STNU:
|
||||
// stn_layer(record, STN_U, _SYMBOL);
|
||||
// break;
|
||||
// #endif
|
||||
case PS_BASE:
|
||||
if (record->event.pressed) {
|
||||
base_layer();
|
||||
}
|
||||
return false;
|
||||
case PLOVER:
|
||||
steno(record);
|
||||
return false;
|
||||
case PLOEXIT:
|
||||
steno_exit(record);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
#include "init.h"
|
||||
@@ -1 +0,0 @@
|
||||
SEND_STRING("the keys of enoch");
|
||||
@@ -1,64 +0,0 @@
|
||||
|
||||
// const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
// ...................................................................... Qwerty
|
||||
#ifdef QWERTY
|
||||
// ,-----------------------------------------------------------------------------------.
|
||||
// | Q | W | E | R | T | ^Alt | ^GUI | Y | U | I | O | P |
|
||||
// |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
// | A | S | D | F | G | ↑Alt | ↑GUI | H | J | K | L | ; |
|
||||
// |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
// | Z | X | C | V | B | Caps |^Shift| N | M | , | . | " |
|
||||
// |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
// | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right|
|
||||
// `-----------------------------------------------------------------------------------'
|
||||
|
||||
[_BASE] = {
|
||||
{KC_Q, KC_W, KC_E, KC_R, KC_T, CNTR_TL, CNTR_TR, KC_Y, KC_U, KC_I, KC_O, KC_P },
|
||||
{KC_A, KC_S, KC_D, KC_F, KC_G, CNTR_HL, CNTR_HR, KC_H, KC_J, KC_K, KC_L, KC_SCLN},
|
||||
{KC_Z, KC_X, KC_C, KC_V, KC_B, CNTR_BL, CNTR_BR, KC_N, KC_M, KC_COMM, KC_DOT, TD_QUOT},
|
||||
{OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT},
|
||||
},
|
||||
|
||||
[_SHIFT] = {
|
||||
{S(KC_Q), S(KC_W), S(KC_E), S(KC_R), S(KC_T), CNTR_TL, CNTR_TR, S(KC_Y), S(KC_U), S(KC_I), S(KC_O), S(KC_P)},
|
||||
{S(KC_A), S(KC_S), S(KC_D), S(KC_F), S(KC_G), CNTR_HL, CNTR_HR, S(KC_H), S(KC_J), S(KC_K), S(KC_L), KC_SCLN},
|
||||
{S(KC_Z), S(KC_X), S(KC_C), S(KC_V), S(KC_B), CNTR_BL, CNTR_BR, S(KC_N), S(KC_M), KC_COMM, KC_DOT, TD_QUOT},
|
||||
{OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT},
|
||||
},
|
||||
|
||||
// ,-----------------------------------------------------------------------------------.
|
||||
// | Q | W | E | R | T | ^Alt | ^GUI | Y | U | I | O | P |
|
||||
// |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
// | A | S | D | F | G | ↑Alt | ↑GUI | H | J | K | L | : |
|
||||
// |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
// | Z | X | C | V | B | Caps |^Shift| N | M | / | ? | " |
|
||||
// |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
// | Ctrl | GUI | Alt | Esc | f() | Tab | Del | - | Left | Down | Up | Right|
|
||||
// `-----------------------------------------------------------------------------------'
|
||||
|
||||
[_LSHIFT] = {
|
||||
{S(KC_Q), S(KC_W), S(KC_E), S(KC_R), S(KC_T), CNTR_TL, CNTR_TR, S(KC_Y), S(KC_U), S(KC_I), S(KC_O), S(KC_P)},
|
||||
{S(KC_A), S(KC_S), S(KC_D), S(KC_F), S(KC_G), CNTR_HL, CNTR_HR, S(KC_H), S(KC_J), S(KC_K), S(KC_L), TD_COLN},
|
||||
{S(KC_Z), S(KC_X), S(KC_C), S(KC_V), S(KC_B), CNTR_BL, CNTR_BR, S(KC_N), S(KC_M), KC_SLSH, KC_QUES, TD_DQOT},
|
||||
{OS_CTL, OS_GUI, OS_ALT, LT_ESC, ___fn__, LT_TAB, KC_DEL, KC_MINS, SL_LEFT, S_DOWN, S_UP, S_RGHT },
|
||||
},
|
||||
|
||||
// ,-----------------------------------------------------------------------------------.
|
||||
// | Q | W | E | R | T | ^Alt | ^GUI | Y | U | I | O | P |
|
||||
// |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
// | A | S | D | F | G | ↑Alt | ↑GUI | H | J | K | L | : |
|
||||
// |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
// | Z | X | C | V | B | Caps |^Shift| N | M | ~ | ` | " |
|
||||
// |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
// | Ctrl | GUI | Alt | Caps | _ | ↑Tab | Bksp | f() | Left | Down | Up | Right|
|
||||
// `-----------------------------------------------------------------------------------'
|
||||
|
||||
[_RSHIFT] = {
|
||||
{S(KC_Q), S(KC_W), S(KC_E), S(KC_R), S(KC_T), CNTR_TL, CNTR_TR, S(KC_Y), S(KC_U), S(KC_I), S(KC_O), S(KC_P)},
|
||||
{S(KC_A), S(KC_S), S(KC_D), S(KC_F), S(KC_G), CNTR_HL, CNTR_HR, S(KC_H), S(KC_J), S(KC_K), S(KC_L), TD_COLN},
|
||||
{S(KC_Z), S(KC_X), S(KC_C), S(KC_V), S(KC_B), CNTR_BL, CNTR_BR, S(KC_N), S(KC_M), TD_TILD, TD_GRV, TD_DQOT},
|
||||
{OS_CTL, OS_GUI, OS_ALT, KC_CAPS, KC_UNDS, SL_TAB, LT_BSPC, ___fn__, SL_LEFT, S_DOWN, S_UP, S_RGHT },
|
||||
},
|
||||
#endif
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
# The sdothum extended Default Planck Layout
|
||||
|
||||
- Colemak-DH layout layer with shift/tab key overlays
|
||||
- Number and symbol/function key layer
|
||||
- Hexadecimal keypad layer
|
||||
- Navigation keypad layer
|
||||
- Dynamic macro layer
|
||||
- Autocompletion tap key pairs (),[],{}
|
||||
- Normalized enter and esc key position across keyboard layers
|
||||
- Extensive use of tap keys
|
||||
@@ -1,23 +0,0 @@
|
||||
# Build Options:
|
||||
# change to "no" to disable the options, or define them in the Makefile in
|
||||
# the appropriate keymap folder that will get included automatically
|
||||
|
||||
BOOTMAGIC_ENABLE = no # virtual DIP switch configuration(+1000)
|
||||
MOUSEKEY_ENABLE = yes # mouse keys(+4700)
|
||||
EXTRAKEY_ENABLE = no # audio control and System control(+450)
|
||||
CONSOLE_ENABLE = no # console for debug(+400)
|
||||
COMMAND_ENABLE = no # commands for debug and configuration
|
||||
NKRO_ENABLE = yes # nkey rollover
|
||||
BACKLIGHT_ENABLE = no # enable keyboard backlight functionality
|
||||
MIDI_ENABLE = no # MIDI controls
|
||||
AUDIO_ENABLE = no # audio output on port C6
|
||||
UNICODE_ENABLE = no # unicode
|
||||
BLUETOOTH_ENABLE = no # enable Bluetooth with the Adafruit EZ-Key HID
|
||||
RGBLIGHT_ENABLE = no # enable WS2812 RGB underlight, do not enable this with audio at the same time.
|
||||
STENO_ENABLE = yes # enable TX Bolt protocol, requires VIRTSER and may not work with mouse keys
|
||||
|
||||
# do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||
SLEEP_LED_ENABLE = no # breathing sleep LED during USB suspend
|
||||
|
||||
TAP_DANCE_ENABLE = yes # enable double tap completion of (),[],{}
|
||||
|
||||
@@ -1,38 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#ifdef AUDIO_ENABLE
|
||||
#define STARTUP_SONG SONG(PLANCK_SOUND)
|
||||
|
||||
#define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \
|
||||
SONG(COLEMAK_SOUND) \
|
||||
}
|
||||
#endif
|
||||
|
||||
#define MUSIC_MASK (keycode != KC_NO)
|
||||
|
||||
/*
|
||||
* MIDI options
|
||||
*/
|
||||
|
||||
/* Prevent use of disabled MIDI features in the keymap */
|
||||
//#define MIDI_ENABLE_STRICT 1
|
||||
|
||||
/* enable basic MIDI features:
|
||||
- MIDI notes can be sent when in Music mode is on
|
||||
*/
|
||||
|
||||
#define MIDI_BASIC
|
||||
|
||||
/* enable advanced MIDI features:
|
||||
- MIDI notes can be added to the keymap
|
||||
- Octave shift and transpose
|
||||
- Virtual sustain, portamento, and modulation wheel
|
||||
- etc.
|
||||
*/
|
||||
//#define MIDI_ADVANCED
|
||||
|
||||
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
|
||||
//#define MIDI_TONE_KEYCODE_OCTAVES 2
|
||||
|
||||
// Most tactile encoders have detents every 4 stages
|
||||
#define ENCODER_RESOLUTION 4
|
||||
@@ -1,204 +0,0 @@
|
||||
// This is the canonical layout file for the Quantum project. If you want to add another keyboard,
|
||||
// this is the style you want to emulate.
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
extern keymap_config_t keymap_config;
|
||||
|
||||
// Each layer gets a name for readability, which is then used in the keymap matrix below.
|
||||
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
|
||||
// Layer names don't all need to be of the same length, obviously, and you can also skip them
|
||||
// entirely and just use numbers.
|
||||
enum planck_layers {
|
||||
_QWERTY,
|
||||
_COLEMAK,
|
||||
_LOWER,
|
||||
_RAISE,
|
||||
_TOUCHCURSOR,
|
||||
_MOUSE,
|
||||
_ADJUST
|
||||
};
|
||||
|
||||
enum planck_keycodes {
|
||||
QWERTY = SAFE_RANGE,
|
||||
COLEMAK,
|
||||
LOWER,
|
||||
RAISE,
|
||||
};
|
||||
|
||||
#define LOWER MO(_LOWER)
|
||||
#define RAISE MO(_RAISE)
|
||||
|
||||
// Taps
|
||||
#define CTL_ESC CTL_T(KC_ESC) // Tap for Esc, hold for Ctr
|
||||
#define SFT_ENT SFT_T(KC_ENT) // Tap for Enter, hold for Shift
|
||||
#define LT_TC LT(_TOUCHCURSOR, KC_SPC) // L-ayer T-ap T-ouch C-ursor
|
||||
#define LT_ML LT(_MOUSE, KC_A) // L-ayer T-ap M-ouse C-ursor (on A)
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
/* Qwerty
|
||||
* ,--------------------------------------------------------------------------------------.
|
||||
* | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
|
||||
* |--------+------+------+------+------+-------------+------+------+------+------+-------|
|
||||
* |Ctrl/Esc| ML/A | S | D | F | G | H | J | K | L | ; | " |
|
||||
* |--------+------+------+------+------+------|------+------+------+------+------+-------|
|
||||
* | Shift | Z | X | C | V | B | N | M | , | . | / |Sft/Ent|
|
||||
* |--------+------+------+------+------+------+------+------+------+------+------+-------|
|
||||
* | Power | ~ | Alt | GUI |Lower | TC/Space |Raise | Next | Vol- | Vol+ | Play |
|
||||
* `--------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_QWERTY] = LAYOUT_planck_grid(
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
|
||||
CTL_ESC, LT_ML, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ENT,
|
||||
KC_CAPS, KC_TILD, KC_LALT, KC_LGUI, LOWER, LT_TC, LT_TC, RAISE, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
|
||||
),
|
||||
|
||||
/* Colemak
|
||||
* ,-------------------------------------------------------------------------------------.
|
||||
* | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp |
|
||||
* |--------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* |Ctrl/Esc| ML/A | R | S | T | D | H | N | E | I | O | " |
|
||||
* |--------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | Shift | Z | X | C | V | B | K | M | , | . | / |Enter |
|
||||
* |--------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Power | ~ | Alt | GUI |Lower | TC/Space |Raise | Next | Vol- | Vol+ | Play |
|
||||
* `-------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_COLEMAK] = LAYOUT_planck_grid(
|
||||
KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC,
|
||||
CTL_ESC, LT_ML, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
|
||||
KC_CAPS, KC_TILD, KC_LALT, KC_LGUI, LOWER, LT_TC, LT_TC, RAISE, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
|
||||
),
|
||||
|
||||
/* Lower
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | | | F1 | F2 | F3 | F4 | F5 | F6 | - | + | { | } | ` |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | \ | F7 | F8 | F9 | F10 | F11 | F12 | _ | = | [ | ] | / |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* |Sleep | | | | | | | | | | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_LOWER] = LAYOUT_planck_grid(
|
||||
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
|
||||
KC_PIPE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_PLUS, KC_LCBR, KC_RCBR, KC_GRV,
|
||||
KC_BSLS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_UNDS, KC_EQL, KC_LBRC, KC_RBRC, KC_SLSH,
|
||||
KC_SLEP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
/* Raise
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | ^ | 4 | 5 | 6 | . | + | * | 4 | 5 | 6 | - | $ |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | = | 7 | 8 | 9 | 0 | - | / | 1 | 2 | 3 | . |Enter |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* |Sleep | | | | | | | | | | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_RAISE] = LAYOUT_planck_grid(
|
||||
KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
|
||||
KC_CIRC, KC_4, KC_5, KC_6, KC_DOT, KC_PLUS, KC_ASTR, KC_4, KC_5, KC_6, KC_MINS, KC_DLR,
|
||||
KC_EQL, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_SLSH, KC_1, KC_2, KC_3, KC_DOT, KC_ENT,
|
||||
KC_SLEP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
/* TouchCursor layer (http://martin-stone.github.io/touchcursor/) plus personal customizations
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | | | |Shift | GUI | ~ |Insert| Home | Up | End | Bksp | |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | | Alt |Space | | Find |Again | PgUp | Left | Down |Right | | |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | | Undo | Cut | Copy |Paste | ` | PgDn | Del | | | | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | | | | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*
|
||||
* The KC_UNDO, KC_CUT, KC_COPY, KC_PASTE, KC_FIND, and KC_AGAIN keycodes don't
|
||||
* seem to work on Mac. Presumably they'll work under Windows.
|
||||
*/
|
||||
|
||||
[_TOUCHCURSOR] = LAYOUT_planck_grid(
|
||||
_______, _______, _______, KC_LSFT, KC_LGUI, KC_TILD, KC_INS, KC_HOME, KC_UP, KC_END, KC_BSPC, _______,
|
||||
_______, KC_LALT, KC_SPC, _______, KC_FIND,KC_AGAIN, KC_PGUP, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______,
|
||||
_______, KC_UNDO, KC_CUT, KC_COPY, KC_PASTE,KC_GRV, KC_PGDN, KC_DEL, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
/* Mouse Layer
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | | |ACCL0 |ACCL1 |ACCL2 |ACCL2 | |WHL_L | Up |WHL_R | BTN2 | |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | | | | BTN3 | BTN1 | BTN4 |WHL_Up| Left | Down |Right | | |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | | | | | BTN2 | BTN5 |WHL_Dn| BTN1 | | | | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | | | | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
|
||||
[_MOUSE] = LAYOUT_planck_grid(
|
||||
_______, _______, KC_ACL0, KC_ACL1, KC_ACL2, KC_ACL2, _______, KC_WH_L, KC_MS_U, KC_WH_R, KC_BTN2, _______,
|
||||
_______, _______, _______, KC_BTN3, KC_BTN1, KC_BTN4, KC_WH_U, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______,
|
||||
_______, _______, _______, _______, KC_BTN2, KC_BTN5, KC_WH_D, KC_BTN1, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
/* Adjust (Lower + Raise)
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | | Reset| | | | | | | | | | Del |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk| | | |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | | | | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_ADJUST] = LAYOUT_planck_grid(
|
||||
_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL,
|
||||
_______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, _______, _______, _______,
|
||||
_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
)
|
||||
|
||||
|
||||
};
|
||||
|
||||
uint32_t layer_state_set_user(uint32_t state) {
|
||||
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
|
||||
}
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
case QWERTY:
|
||||
if (record->event.pressed) {
|
||||
set_single_persistent_default_layer(_QWERTY);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case COLEMAK:
|
||||
if (record->event.pressed) {
|
||||
set_single_persistent_default_layer(_COLEMAK);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool music_mask_user(uint16_t keycode) {
|
||||
switch (keycode) {
|
||||
case RAISE:
|
||||
case LOWER:
|
||||
return false;
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
# The Am Planck Layout
|
||||
|
||||
Heavily inspired by other layouts out there, and fine tuned to work well on emacs (most recently spacemacs with vim bindings).
|
||||
|
||||
It features:
|
||||
|
||||
- Media keys (bottom right)
|
||||
- Focused on Qwerty and Colemak
|
||||
- Number pads (normal and reversed)
|
||||
- TouchCursor layer
|
||||
- Mouse layer
|
||||
|
||||
## Build
|
||||
|
||||
Making planck/rev4 with keymap am and target dfu
|
||||
|
||||
make planck/rev4:am:dfu
|
||||
@@ -1,10 +0,0 @@
|
||||
# Build Options
|
||||
# change to "no" to disable the options, or define them in the Makefile in
|
||||
# the appropriate keymap folder that will get included automatically
|
||||
#
|
||||
MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
|
||||
CONSOLE_ENABLE = no # Console for debug(+400)
|
||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||
AUDIO_ENABLE = yes # Audio output on port C6
|
||||
@@ -1,44 +0,0 @@
|
||||
#ifndef CONFIG_USER_H
|
||||
#define CONFIG_USER_H
|
||||
|
||||
#include "config_common.h"
|
||||
|
||||
#ifdef AUDIO_ENABLE
|
||||
#define STARTUP_SONG SONG(PLANCK_SOUND)
|
||||
// #define STARTUP_SONG SONG(NO_SOUND)
|
||||
|
||||
#define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \
|
||||
SONG(COLEMAK_SOUND), \
|
||||
SONG(DVORAK_SOUND) \
|
||||
}
|
||||
#endif
|
||||
|
||||
#define MUSIC_MASK (keycode != KC_NO)
|
||||
|
||||
#define PERMISSIVE_HOLD
|
||||
|
||||
/*
|
||||
* MIDI options
|
||||
*/
|
||||
|
||||
/* Prevent use of disabled MIDI features in the keymap */
|
||||
//#define MIDI_ENABLE_STRICT 1
|
||||
|
||||
/* enable basic MIDI features:
|
||||
- MIDI notes can be sent when in Music mode is on
|
||||
*/
|
||||
|
||||
#define MIDI_BASIC
|
||||
|
||||
/* enable advanced MIDI features:
|
||||
- MIDI notes can be added to the keymap
|
||||
- Octave shift and transpose
|
||||
- Virtual sustain, portamento, and modulation wheel
|
||||
- etc.
|
||||
*/
|
||||
//#define MIDI_ADVANCED
|
||||
|
||||
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
|
||||
//#define MIDI_TONE_KEYCODE_OCTAVES 2
|
||||
|
||||
#endif
|
||||
@@ -1,289 +0,0 @@
|
||||
/* Copyright 2015-2017 Jack Humbert
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
|
||||
#include "planck.h"
|
||||
#include "action_layer.h"
|
||||
|
||||
extern keymap_config_t keymap_config;
|
||||
|
||||
enum planck_layers {
|
||||
_QWERTY,
|
||||
_COLEMAK,
|
||||
_DVORAK,
|
||||
_LOWER,
|
||||
_RAISE,
|
||||
_PLOVER,
|
||||
_ADJUST,
|
||||
_NAVIGATION
|
||||
};
|
||||
|
||||
enum planck_keycodes {
|
||||
QWERTY = SAFE_RANGE,
|
||||
COLEMAK,
|
||||
DVORAK,
|
||||
PLOVER,
|
||||
BACKLIT,
|
||||
EXT_PLV
|
||||
};
|
||||
|
||||
#define LOWER MO(_LOWER)
|
||||
#define RAISE MO(_RAISE)
|
||||
#define _NAVIGATION 8
|
||||
#define NAVL MO(_NAVIGATION)
|
||||
#define NAVSPC LT( 8, KC_SPC)
|
||||
//#define SHFTENT SHFT_T(KC_ENT)
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
/* Qwerty
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | Esc | A | S | D | F | G | H | J | K | L | ; | " |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | Shift| Z | X | C | V | B | N | M | , | . | / |Shift |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Ctrl | CS | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_QWERTY] = {
|
||||
{KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC},
|
||||
{KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},
|
||||
{KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_T(KC_ENT) },
|
||||
{KC_LCTL, LCTL(KC_LSFT), KC_LGUI, KC_LALT, LOWER, NAVSPC, NAVSPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
|
||||
},
|
||||
|
||||
/* Colemak
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | Esc | A | R | S | T | D | H | N | E | I | O | " |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | Shift| Z | X | C | V | B | K | M | , | . | / |SftEnt|
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Ctrl | CS | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_COLEMAK] = {
|
||||
{KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC},
|
||||
{KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT},
|
||||
{KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_T(KC_ENT) },
|
||||
{KC_LCTL, LCTL(KC_LSFT), KC_LGUI, KC_LALT, LOWER, NAVSPC, NAVSPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
|
||||
},
|
||||
|
||||
/* Dvorak REUSED AS COLEMAK
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | Esc | A | R | S | T | D | H | N | E | I | O | " |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | Shift| Z | X | C | V | B | K | M | , | . | / |Shift |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Ctrl | CS | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_DVORAK] = {
|
||||
{KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC},
|
||||
{KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_QUOT},
|
||||
{KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, SFT_T(KC_ENT) },
|
||||
{KC_LCTL, LCTL(KC_LSFT), KC_LGUI, KC_LALT, LOWER, NAVSPC, NAVSPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
|
||||
},
|
||||
// /* Dvorak
|
||||
// * ,-----------------------------------------------------------------------------------.
|
||||
// * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp |
|
||||
// * |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
// * | Esc | A | O | E | U | I | D | H | T | N | S | / |
|
||||
// * |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
// * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter |
|
||||
// * |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
// * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
|
||||
// * `-----------------------------------------------------------------------------------'
|
||||
// */
|
||||
// [_DVORAK] = {
|
||||
// {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC},
|
||||
// {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH},
|
||||
// {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT },
|
||||
// {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, NAVSPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
|
||||
// },
|
||||
//
|
||||
// /* Lower
|
||||
// * ,-----------------------------------------------------------------------------------.
|
||||
// * | ~ | F7 | F8 | F9 | F10 | F11 | F12 | _ | + | { | } | Bksp |
|
||||
// * |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
// * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | | |
|
||||
// * |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
// * | |Ctl+z |Ctl+x |Ctl+c |Ctl+v | | | | | | |Enter |
|
||||
// * |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
// * | | | | | | | | HOME | PGDN | PGUP | END |
|
||||
// * `-----------------------------------------------------------------------------------'
|
||||
// */
|
||||
[_LOWER] = {
|
||||
{ KC_TILD, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_BSPC },
|
||||
{ KC_DEL , KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_PIPE },
|
||||
{ _______, LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), _______, _______, _______, _______, _______, _______, KC_ENT },
|
||||
{ _______, _______, _______, _______, _______, KC_SPC, KC_SPC, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END }
|
||||
},
|
||||
|
||||
/* Raise
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | ` | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | Del | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | \ |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | | | | | | | | | | | |Enter |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | HOME | PGDN | PGUP | END |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_RAISE] = {
|
||||
{ KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC },
|
||||
{ KC_DEL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS },
|
||||
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_ENT },
|
||||
{ _______, _______, _______, _______, _______, KC_SPC, KC_SPC, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END }
|
||||
},
|
||||
|
||||
/* Plover layer (http://opensteno.org)
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | # | # | # | # | # | # | # | # | # | # | # | # |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | | S | T | P | H | * | * | F | P | L | T | D |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | | S | K | W | R | * | * | R | B | G | S | Z |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Exit | | | A | O | | E | U | | | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
|
||||
[_PLOVER] = {
|
||||
{KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 },
|
||||
{XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC},
|
||||
{XXXXXXX, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},
|
||||
{EXT_PLV, XXXXXXX, XXXXXXX, KC_C, KC_V, XXXXXXX, XXXXXXX, KC_N, KC_M, XXXXXXX, XXXXXXX, XXXXXXX}
|
||||
},
|
||||
|
||||
/* Adjust (Lower + Raise)
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | Reset| | | | | | | | | | | Bksp |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* |C.A.D.| | | | | | | | | | | |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | CAPS | | | | | | |Insert|PntScn|Scroll|Pause | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | |Qwerty|Colemk|Dvorak|Plover|
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_ADJUST] = {
|
||||
{RESET, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX },
|
||||
{LALT(LCTL(KC_DEL)), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX},
|
||||
{KC_CAPSLOCK, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_INS, KC_PSCR, KC_SLCK, KC_PAUS, XXXXXXX},
|
||||
{_______, _______, _______, _______, _______, _______, _______, _______, QWERTY, COLEMAK, DVORAK, XXXXXXX} //PLOVER}
|
||||
},
|
||||
/* Navigation
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | | | | | | | | Home | PgDn | PgUp | End |ctlBsp|
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | Del |Ctl+A | |Shift | Ctrl | | | Left | Down | Up |Right | Del |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | C+S |Ctl+z |Ctl+x |Ctl+c |Ctl+v | | | |Shift |Shift |Shift |Enter |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* |C+A+S | | | | | | |C+Left|C+Down| C+Up |C+Right|
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_NAVIGATION] = {
|
||||
{XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_HOME, KC_PGDN, KC_PGUP, KC_END, LCTL(KC_BSPC) },
|
||||
{KC_DEL, LCTL(KC_A), XXXXXXX, KC_LSFT, KC_LCTL, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_DEL},
|
||||
{LCTL(KC_LSFT), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_RSFT, KC_RSFT, KC_RSFT, KC_ENT},
|
||||
{_______, _______, _______, _______, _______, _______, _______, LCTL(KC_LEFT), LCTL(KC_DOWN), LCTL(KC_UP), LCTL(KC_RGHT), _______}
|
||||
}
|
||||
|
||||
|
||||
};
|
||||
|
||||
#ifdef AUDIO_ENABLE
|
||||
float plover_song[][2] = SONG(PLOVER_SOUND);
|
||||
float plover_gb_song[][2] = SONG(PLOVER_GOODBYE_SOUND);
|
||||
#endif
|
||||
|
||||
uint32_t layer_state_set_user(uint32_t state) {
|
||||
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
|
||||
}
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
case QWERTY:
|
||||
if (record->event.pressed) {
|
||||
print("mode just switched to qwerty and this is a huge string\n");
|
||||
set_single_persistent_default_layer(_QWERTY);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case COLEMAK:
|
||||
if (record->event.pressed) {
|
||||
set_single_persistent_default_layer(_COLEMAK);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case DVORAK:
|
||||
if (record->event.pressed) {
|
||||
set_single_persistent_default_layer(_DVORAK);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case BACKLIT:
|
||||
if (record->event.pressed) {
|
||||
register_code(KC_RSFT);
|
||||
#ifdef BACKLIGHT_ENABLE
|
||||
backlight_step();
|
||||
#endif
|
||||
PORTE &= ~(1<<6);
|
||||
} else {
|
||||
unregister_code(KC_RSFT);
|
||||
PORTE |= (1<<6);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case PLOVER:
|
||||
if (record->event.pressed) {
|
||||
#ifdef AUDIO_ENABLE
|
||||
stop_all_notes();
|
||||
PLAY_SONG(plover_song);
|
||||
#endif
|
||||
layer_off(_RAISE);
|
||||
layer_off(_LOWER);
|
||||
layer_off(_ADJUST);
|
||||
layer_on(_PLOVER);
|
||||
if (!eeconfig_is_enabled()) {
|
||||
eeconfig_init();
|
||||
}
|
||||
keymap_config.raw = eeconfig_read_keymap();
|
||||
keymap_config.nkro = 1;
|
||||
eeconfig_update_keymap(keymap_config.raw);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case EXT_PLV:
|
||||
if (record->event.pressed) {
|
||||
#ifdef AUDIO_ENABLE
|
||||
PLAY_SONG(plover_gb_song);
|
||||
#endif
|
||||
layer_off(_PLOVER);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -1,2 +0,0 @@
|
||||
# The Default Planck Layout
|
||||
|
||||
@@ -1,39 +0,0 @@
|
||||
#include "keymap.h"
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = { /* Qwerty */
|
||||
{KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC},
|
||||
{KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, 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_QUOT},
|
||||
{KC_LCTL, KC_LGUI, KC_LALT, BL_STEP, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
|
||||
// Space is repeated to accommodate for both spacebar wiring positions
|
||||
},
|
||||
[1] = { /* WASD + NumPad */
|
||||
{KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_P7, KC_P8, KC_P9, KC_PSLS, KC_PMNS, KC_TRNS},
|
||||
{KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_P4, KC_P5, KC_P6, KC_PAST, KC_PPLS, KC_TRNS},
|
||||
{KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_PDOT, KC_PENT, KC_TRNS},
|
||||
{KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2), KC_SPC, KC_P0, FUNC(1), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}
|
||||
},
|
||||
[2] = { /* RAISE */
|
||||
{KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS},
|
||||
{KC_TRNS, FUNC(3), FUNC(4), LSFT(RSFT(KC_PAUSE)), KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS},
|
||||
{KC_TRNS, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_TRNS},
|
||||
{KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, FUNC(1), KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
|
||||
},
|
||||
[3] = { /* LOWER */
|
||||
{S(KC_GRV), S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), S(KC_9), S(KC_0), KC_DEL},
|
||||
{KC_TRNS, FUNC(3), FUNC(4), LSFT(RSFT(KC_PAUSE)), KC_TRNS, KC_TRNS, KC_TRNS, S(KC_MINS), S(KC_EQL), S(KC_LBRC), S(KC_RBRC), S(KC_BSLS)},
|
||||
{KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS},
|
||||
{KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_PGUP, KC_END}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
const uint16_t PROGMEM fn_actions[] = {
|
||||
[1] = ACTION_LAYER_MOMENTARY(2), // to RAISE
|
||||
[2] = ACTION_LAYER_MOMENTARY(3), // to LOWER
|
||||
|
||||
[3] = ACTION_DEFAULT_LAYER_SET(0),
|
||||
[4] = ACTION_DEFAULT_LAYER_SET(1),
|
||||
|
||||
};
|
||||
@@ -1,22 +0,0 @@
|
||||
|
||||
|
||||
# Build Options
|
||||
# change to "no" to disable the options, or define them in the Makefile in
|
||||
# the appropriate keymap folder that will get included automatically
|
||||
#
|
||||
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
|
||||
MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
|
||||
CONSOLE_ENABLE = no # Console for debug(+400)
|
||||
COMMAND_ENABLE = yes # Commands for debug and configuration
|
||||
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
|
||||
MIDI_ENABLE = no # MIDI controls
|
||||
AUDIO_ENABLE = yes # Audio output on port C6
|
||||
UNICODE_ENABLE = no # Unicode
|
||||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
|
||||
|
||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||
|
||||
@@ -1,39 +0,0 @@
|
||||
#include "keymap.h"
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = { /* Qwerty */
|
||||
{KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC},
|
||||
{KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},
|
||||
{KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT},
|
||||
{BL_STEP, KC_LGUI, KC_LALT, KC_LCTL, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
|
||||
// Space is repeated to accommadate for both spacebar wiring positions
|
||||
},
|
||||
[1] = { /* Colemak */
|
||||
{KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC},
|
||||
{KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT},
|
||||
{KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT},
|
||||
{KC_FN3, KC_LGUI, KC_LALT, KC_LCTL, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
|
||||
},
|
||||
[2] = { /* RAISE */
|
||||
{KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
|
||||
{KC_TRNS, FUNC(3), FUNC(4), LSFT(RSFT(KC_PAUSE)), KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS},
|
||||
{KC_TRNS, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_TRNS},
|
||||
{KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(1), KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
|
||||
},
|
||||
[3] = { /* LOWER */
|
||||
{S(KC_GRV), S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), S(KC_9), S(KC_0), KC_BSPC},
|
||||
{KC_TRNS, FUNC(3), FUNC(4), LSFT(RSFT(KC_PAUSE)), KC_TRNS, KC_TRNS, KC_TRNS, S(KC_MINS), S(KC_EQL), S(KC_LBRC), S(KC_RBRC), S(KC_BSLS)},
|
||||
{KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS},
|
||||
{KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
const uint16_t PROGMEM fn_actions[] = {
|
||||
[1] = ACTION_LAYER_MOMENTARY(2), // to RAISE
|
||||
[2] = ACTION_LAYER_MOMENTARY(3), // to LOWER
|
||||
|
||||
[3] = ACTION_DEFAULT_LAYER_SET(0),
|
||||
[4] = ACTION_DEFAULT_LAYER_SET(1),
|
||||
|
||||
};
|
||||
@@ -1,22 +0,0 @@
|
||||
|
||||
|
||||
# Build Options
|
||||
# change to "no" to disable the options, or define them in the Makefile in
|
||||
# the appropriate keymap folder that will get included automatically
|
||||
#
|
||||
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
|
||||
MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
|
||||
CONSOLE_ENABLE = no # Console for debug(+400)
|
||||
COMMAND_ENABLE = yes # Commands for debug and configuration
|
||||
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
|
||||
MIDI_ENABLE = no # MIDI controls
|
||||
AUDIO_ENABLE = yes # Audio output on port C6
|
||||
UNICODE_ENABLE = no # Unicode
|
||||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
|
||||
|
||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||
|
||||
@@ -1,47 +0,0 @@
|
||||
#ifndef CONFIG_USER_H
|
||||
#define CONFIG_USER_H
|
||||
|
||||
#include "config_common.h"
|
||||
|
||||
#ifndef LIGHT_CONFIG_H
|
||||
#define BACKLIGHT_BREATHING
|
||||
#define BREATHING_PERIOD 3
|
||||
#endif
|
||||
|
||||
#ifdef AUDIO_ENABLE
|
||||
#define STARTUP_SONG SONG(PLANCK_SOUND)
|
||||
// #define STARTUP_SONG SONG(NO_SOUND)
|
||||
|
||||
#define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \
|
||||
SONG(COLEMAK_SOUND), \
|
||||
SONG(DVORAK_SOUND) \
|
||||
}
|
||||
#endif
|
||||
|
||||
#define MUSIC_MASK (keycode != KC_NO)
|
||||
|
||||
/*
|
||||
* MIDI options
|
||||
*/
|
||||
|
||||
/* Prevent use of disabled MIDI features in the keymap */
|
||||
//#define MIDI_ENABLE_STRICT 1
|
||||
|
||||
/* enable basic MIDI features:
|
||||
- MIDI notes can be sent when in Music mode is on
|
||||
*/
|
||||
|
||||
#define MIDI_BASIC
|
||||
|
||||
/* enable advanced MIDI features:
|
||||
- MIDI notes can be added to the keymap
|
||||
- Octave shift and transpose
|
||||
- Virtual sustain, portamento, and modulation wheel
|
||||
- etc.
|
||||
*/
|
||||
//#define MIDI_ADVANCED
|
||||
|
||||
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
|
||||
//#define MIDI_TONE_KEYCODE_OCTAVES 2
|
||||
|
||||
#endif
|
||||
@@ -1,138 +0,0 @@
|
||||
[
|
||||
{
|
||||
"name": "The Aviator",
|
||||
"author": "John Ramsay",
|
||||
"notes": "Designed for aeronautical data entry on the OLKB Planck.",
|
||||
"switchMount": "cherry",
|
||||
"switchBrand": "gateron",
|
||||
"switchType": "KS-3-Green",
|
||||
"plate": true
|
||||
},
|
||||
[
|
||||
{
|
||||
"c": "#ADADAD",
|
||||
"t": "#000000\n#3f76d4\n#d67509"
|
||||
},
|
||||
"\nDel\nDel\n\n\n\n\n\n\nEsc",
|
||||
{
|
||||
"c": "#CDC1B0"
|
||||
},
|
||||
"\n!\nF1\n\n\n\n\n\n\nQ",
|
||||
"\n@\nF2\n\n\n\n\n\n\nW",
|
||||
"\n#\nF3\n\n\n\n\n\n\nE",
|
||||
"\n$\nF4\n\n\n\n\n\n\nR",
|
||||
"\n%\n\n\n\n\n\n\n\nT",
|
||||
"\n^\nN\n\n\n\n\n\n\nY",
|
||||
"\n&\nS\n\n\n\n\n\n\nU",
|
||||
"\n*\n7\n\n\n\n\n\n\nI",
|
||||
"\n(\n8\n\n\n\n\n\n\nO",
|
||||
"\n)\n9\n\n\n\n\n\n\nP",
|
||||
{
|
||||
"c": "#ADADAD",
|
||||
"t": "#000000",
|
||||
"a": 7
|
||||
},
|
||||
"Back Space"
|
||||
],
|
||||
[
|
||||
"Tab",
|
||||
{
|
||||
"c": "#CDC1B0",
|
||||
"t": "#000000\n#3f76d4\n#d67509",
|
||||
"a": 4
|
||||
},
|
||||
"\n~\nF5\n\n\n\n\n\n\nA",
|
||||
"\n`\nF6\n\n\n\n\n\n\nS",
|
||||
{
|
||||
"t": "#000000\n\n#d67509"
|
||||
},
|
||||
"\n\nF7\n\n\n\n\n\n\nD",
|
||||
"\n\nF8\n\n\n\n\n\n\nF",
|
||||
{
|
||||
"t": "#000000",
|
||||
"a": 7
|
||||
},
|
||||
"G",
|
||||
{
|
||||
"t": "#000000\n\n#d67509",
|
||||
"a": 4
|
||||
},
|
||||
"\n\nE\n\n\n\n\n\n\nH",
|
||||
{
|
||||
"t": "#000000\n#3f76d4\n#d67509"
|
||||
},
|
||||
"\n_\nW\n\n\n\n\n\n\nJ",
|
||||
"\n+\n4\n\n\n\n\n\n\nK",
|
||||
"\n{\n5\n\n\n\n\n\n\nL",
|
||||
"\n}\n6\n\n\n\n\n\n\n:\n;",
|
||||
"\n\\\nTab\n\n\n\n\n\n\n\"\n'"
|
||||
],
|
||||
[
|
||||
{
|
||||
"c": "#ADADAD",
|
||||
"t": "#000000",
|
||||
"a": 7
|
||||
},
|
||||
"Shift",
|
||||
{
|
||||
"c": "#CDC1B0",
|
||||
"t": "#000000\n\n#d67509",
|
||||
"a": 4
|
||||
},
|
||||
"\n\nF9\n\n\n\n\n\n\nZ",
|
||||
"\n\nF10\n\n\n\n\n\n\nX",
|
||||
"\n\nF11\n\n\n\n\n\n\nC",
|
||||
"\n\nF12\n\n\n\n\n\n\nV",
|
||||
{
|
||||
"t": "#000000",
|
||||
"a": 7
|
||||
},
|
||||
"B",
|
||||
{
|
||||
"t": "#000000\n\n#d67509",
|
||||
"a": 4
|
||||
},
|
||||
"\n\n+\n\n\n\n\n\n\nN",
|
||||
{
|
||||
"t": "#000000\n#3f76d4\n#d67509"
|
||||
},
|
||||
"\n-\n-\n\n\n\n\n\n\nM",
|
||||
"\n=\n1\n\n\n\n\n\n\n<\n,",
|
||||
"\n[\n2\n\n\n\n\n\n\n>\n.",
|
||||
"\n]\n3\n\n\n\n\n\n\n?\n/",
|
||||
{
|
||||
"c": "#ADADAD",
|
||||
"t": "#000000",
|
||||
"a": 7
|
||||
},
|
||||
"Return"
|
||||
],
|
||||
[
|
||||
"Fn",
|
||||
"Ctrl",
|
||||
"Alt",
|
||||
"Meta",
|
||||
{
|
||||
"c": "#9FACBF"
|
||||
},
|
||||
"⇓",
|
||||
{
|
||||
"c": "#CDC1B0"
|
||||
},
|
||||
"",
|
||||
"",
|
||||
{
|
||||
"c": "#E5A65B"
|
||||
},
|
||||
"⇑",
|
||||
{
|
||||
"c": "#ADADAD",
|
||||
"t": "#000000\n#3f76d4\n#d67509",
|
||||
"a": 4
|
||||
},
|
||||
"\nHome\n0\n\n\n\n\n\n\n←",
|
||||
"\nPDwn\n.\n\n\n\n\n\n\n↓",
|
||||
"\nPUp\nShift\n\n\n\n\n\n\n↑",
|
||||
"\nEnd\nReturn\n\n\n\n\n\n\n→"
|
||||
]
|
||||
]
|
||||
@@ -1,201 +0,0 @@
|
||||
/* Copyright 2017 John Ramsay
|
||||
* Aviator Keymap v1.0
|
||||
*
|
||||
* Designed for aeronautical data entry on the OLKB Planck.
|
||||
*/
|
||||
|
||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
|
||||
#include "planck.h"
|
||||
#include "action_layer.h"
|
||||
|
||||
extern keymap_config_t keymap_config;
|
||||
|
||||
enum planck_layers {
|
||||
_QWERTY,
|
||||
_DATA,
|
||||
_LOWER,
|
||||
_RAISE,
|
||||
_ADJUST
|
||||
};
|
||||
|
||||
enum planck_keycodes {
|
||||
QWERTY = SAFE_RANGE,
|
||||
DATA,
|
||||
LOWER,
|
||||
RAISE,
|
||||
BACKLIT
|
||||
};
|
||||
|
||||
#define ___x___ KC_NO
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
/* Qwerty
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | Tab | A | S | D | F | G | H | J | K | L | ; | " |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_QWERTY] = {
|
||||
{KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC},
|
||||
{KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},
|
||||
{KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT },
|
||||
{BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
|
||||
},
|
||||
|
||||
/* Data
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | Esc | Home | Up | End | | | N | S | 7 | 8 | 9 | Bksp |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | Tab | Left | Down | Right| | | E | W | 4 | 5 | 6 | Tab |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | Shift| Z | X | C | V | | + | - | 1 | 2 | 3 |Enter |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | 0 | . |Shift |Enter |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_DATA] = {
|
||||
{KC_ESC, KC_HOME, KC_UP, KC_END, ___x___, ___x___, KC_N, KC_S, KC_7, KC_8, KC_9, KC_BSPC},
|
||||
{KC_TAB, KC_LEFT, KC_DOWN, KC_RIGHT, ___x___, ___x___, KC_E, KC_W, KC_4, KC_5, KC_6, KC_TAB},
|
||||
{KC_LSFT, KC_Z, KC_X, KC_C, KC_V, ___x___, KC_PLUS, KC_MINS, KC_1, KC_2, KC_3, KC_ENT},
|
||||
{BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_0, KC_DOT, KC_RSFT, KC_ENT}
|
||||
},
|
||||
|
||||
/* Lower
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | Del | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | | ~ | ` | | | | | _ | + | { | } | \ |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | | | | | | | | - | = | [ | ] | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | Home |Pg Dn |Pg Up | End |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_LOWER] = {
|
||||
{KC_DEL, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC},
|
||||
{_______, KC_TILD, KC_GRV, ___x___, ___x___, ___x___, ___x___, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_BSLS},
|
||||
{_______, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, _______},
|
||||
{_______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END}
|
||||
},
|
||||
|
||||
/* Raise
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | Del | F1 | F2 | F3 | F4 | | N | S | 7 | 8 | 9 | Bksp |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | | F5 | F6 | F7 | F8 | | E | W | 4 | 5 | 6 | Tab |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | | F9 | F10 | F11 | F12 | | + | - | 1 | 2 | 3 | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | 0 | . |Shift |Enter |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_RAISE] = {
|
||||
{KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, ___x___, KC_N, KC_S, KC_7, KC_8, KC_9, KC_BSPC},
|
||||
{_______, KC_F5, KC_F6, KC_F7, KC_F8, ___x___, KC_E, KC_W, KC_4, KC_5, KC_6, KC_TAB},
|
||||
{_______, KC_F9, KC_F10, KC_F11, KC_F12, ___x___, KC_PLUS, KC_MINS, KC_1, KC_2, KC_3, _______,},
|
||||
{_______, _______, _______, _______, _______, _______, _______, _______, KC_0, KC_DOT, KC_RSFT, KC_ENT}
|
||||
},
|
||||
|
||||
/* Adjust (Lower + Raise)
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | Esc | Reset| Debug| | | | | | | | | Del |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty| Data | | | |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | | | | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_ADJUST] = {
|
||||
{KC_ESC, RESET, DEBUG, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, KC_DEL},
|
||||
{_______, ___x___, ___x___, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, DATA, ___x___, ___x___, _______},
|
||||
{_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, ___x___, ___x___, ___x___, ___x___, _______},
|
||||
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
|
||||
}
|
||||
};
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
case QWERTY:
|
||||
if (record->event.pressed) {
|
||||
set_single_persistent_default_layer(_QWERTY);
|
||||
#ifdef BACKLIGHT_BREATHING
|
||||
breathing_self_disable();
|
||||
#endif
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case DATA:
|
||||
if (record->event.pressed) {
|
||||
set_single_persistent_default_layer(_DATA);
|
||||
#ifdef BACKLIGHT_BREATHING
|
||||
breathing_enable();
|
||||
#endif
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case LOWER:
|
||||
if (record->event.pressed) {
|
||||
layer_on(_LOWER);
|
||||
uint8_t default_layer = biton32(default_layer_state);
|
||||
if (default_layer == _QWERTY) {
|
||||
#ifdef BACKLIGHT_BREATHING
|
||||
breathing_enable();
|
||||
#endif
|
||||
}
|
||||
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
||||
} else {
|
||||
layer_off(_LOWER);
|
||||
uint8_t default_layer = biton32(default_layer_state);
|
||||
if (default_layer == _QWERTY) {
|
||||
#ifdef BACKLIGHT_BREATHING
|
||||
breathing_self_disable();
|
||||
#endif
|
||||
}
|
||||
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case RAISE:
|
||||
if (record->event.pressed) {
|
||||
layer_on(_RAISE);
|
||||
uint8_t default_layer = biton32(default_layer_state);
|
||||
if (default_layer == _QWERTY) {
|
||||
#ifdef BACKLIGHT_BREATHING
|
||||
breathing_enable();
|
||||
#endif
|
||||
}
|
||||
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
||||
} else {
|
||||
layer_off(_RAISE);
|
||||
uint8_t default_layer = biton32(default_layer_state);
|
||||
if (default_layer == _QWERTY) {
|
||||
#ifdef BACKLIGHT_BREATHING
|
||||
breathing_self_disable();
|
||||
#endif
|
||||
}
|
||||
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case BACKLIT:
|
||||
if (record->event.pressed) {
|
||||
register_code(KC_RSFT);
|
||||
#ifdef BACKLIGHT_BREATHING
|
||||
backlight_step();
|
||||
#endif
|
||||
} else {
|
||||
unregister_code(KC_RSFT);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -1,68 +0,0 @@
|
||||
# The Aviator
|
||||
|
||||
Designed for aeronautical data entry on the OLKB Planck.
|
||||
|
||||

|
||||
|
||||
## Layers
|
||||
|
||||
````
|
||||
Qwerty
|
||||
,-----------------------------------------------------------------------------------.
|
||||
| Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp |
|
||||
|------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
| Tab | A | S | D | F | G | H | J | K | L | ; | " |
|
||||
|------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
| Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
|
||||
|------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
| Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
|
||||
`-----------------------------------------------------------------------------------'
|
||||
|
||||
Data
|
||||
,-----------------------------------------------------------------------------------.
|
||||
| Esc | Home | Up | End | | | N | S | 7 | 8 | 9 | Bksp |
|
||||
|------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
| Tab | Left | Down | Right| | | E | W | 4 | 5 | 6 | Tab |
|
||||
|------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
| Shift| Z | X | C | V | | + | - | 1 | 2 | 3 |Enter |
|
||||
|------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
| Brite| Ctrl | Alt | GUI |Lower | Space |Raise | 0 | . |Shift |Enter |
|
||||
`-----------------------------------------------------------------------------------'
|
||||
|
||||
Lower
|
||||
,-----------------------------------------------------------------------------------.
|
||||
| Del | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
|
||||
|------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
| | ~ | ` | | | | | _ | + | { | } | \ |
|
||||
|------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
| | | | | | | | - | = | [ | ] | |
|
||||
|------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
| | | | | | | | Home |Pg Dn |Pg Up | End |
|
||||
`-----------------------------------------------------------------------------------'
|
||||
|
||||
Raise
|
||||
,-----------------------------------------------------------------------------------.
|
||||
| Del | F1 | F2 | F3 | F4 | | N | S | 7 | 8 | 9 | Bksp |
|
||||
|------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
| | F5 | F6 | F7 | F8 | | E | W | 4 | 5 | 6 | Tab |
|
||||
|------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
| | F9 | F10 | F11 | F12 | | + | - | 1 | 2 | 3 | |
|
||||
|------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
| | | | | | | | 0 | . |Shift |Enter |
|
||||
`-----------------------------------------------------------------------------------'
|
||||
|
||||
Adjust (Lower + Raise)
|
||||
,-----------------------------------------------------------------------------------.
|
||||
| Esc | Reset| Debug| | | | | | | | | Del |
|
||||
|------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
| | | |Aud on|Audoff|AGnorm|AGswap|Qwerty| Data | | | |
|
||||
|------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
| |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | |
|
||||
|------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
| | | | | | | | | | | |
|
||||
`-----------------------------------------------------------------------------------'
|
||||
````
|
||||
|
||||
## Notes
|
||||
|
||||
Supports LED backlighting.
|
||||
@@ -1 +0,0 @@
|
||||
BACKLIGHT_ENABLE = yes
|
||||
@@ -1,87 +0,0 @@
|
||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
|
||||
#include "planck.h"
|
||||
|
||||
// Each layer gets a name for readability, which is then used in the keymap matrix below.
|
||||
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
|
||||
// Layer names don't all need to be of the same length, obviously, and you can also skip them
|
||||
// entirely and just use numbers.
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
/* Qwerty
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | Esc | A | S | D | F | G | H | J | K | L | ; | " |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[0] = {
|
||||
{KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC},
|
||||
{KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},
|
||||
{KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT },
|
||||
{KC_RSFT, KC_LCTL, KC_LALT, KC_LGUI, M(1), KC_SPC, KC_SPC, M(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
|
||||
},
|
||||
|
||||
/* Lower
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | |Enter |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* |Reset | | | | | | | Next | Vol- | Vol+ | Play |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[1] = {
|
||||
{KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC},
|
||||
{KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE},
|
||||
{_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),_______, _______, _______},
|
||||
{RESET, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
|
||||
},
|
||||
|
||||
/* Raise
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | | |Enter |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* |Reset | | | | | | | Next | Vol- | Vol+ | Play |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[2] = {
|
||||
{KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
|
||||
{KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS},
|
||||
{_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, _______, _______, _______},
|
||||
{RESET, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
|
||||
},
|
||||
|
||||
|
||||
};
|
||||
|
||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
|
||||
{
|
||||
switch(id) {
|
||||
case 1:
|
||||
if (record->event.pressed) {
|
||||
layer_on(1);
|
||||
} else {
|
||||
layer_off(1);
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (record->event.pressed) {
|
||||
layer_on(2);
|
||||
} else {
|
||||
layer_off(2);
|
||||
}
|
||||
break;
|
||||
}
|
||||
return MACRO_NONE;
|
||||
};
|
||||
@@ -1,2 +0,0 @@
|
||||
# A more basic Planck Layout for copying
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
|
||||
|
||||
# Build Options
|
||||
# change to "no" to disable the options, or define them in the Makefile in
|
||||
# the appropriate keymap folder that will get included automatically
|
||||
#
|
||||
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
|
||||
MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
|
||||
CONSOLE_ENABLE = no # Console for debug(+400)
|
||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||
MIDI_ENABLE = no # MIDI controls
|
||||
AUDIO_ENABLE = no # Audio output on port C6
|
||||
UNICODE_ENABLE = no # Unicode
|
||||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
|
||||
|
||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
# Planck Layout
|
||||
|
||||
Current keymap is for rev4.
|
||||
Audio is disabled in favor of RGB.
|
||||
Check out [user readme](../../../../users/bbaserdem/README.md) for more info.
|
||||
|
||||
# Build
|
||||
|
||||
Get keyboard into reset mode, and then;
|
||||
|
||||
```
|
||||
make planck/rev4:bbaserdem:dfu
|
||||
```
|
||||
|
||||
Either use sudo or set up udev rules.
|
||||
@@ -1,24 +0,0 @@
|
||||
#ifndef CONFIG_KEYMAP_H
|
||||
#define CONFIG_KEYMAP_H
|
||||
|
||||
#include "config_common.h"
|
||||
|
||||
// LED strip stuff
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
#define RGB_DI_PIN B2
|
||||
#define RGBLED_NUM 12
|
||||
#define RGBLIGHT_HUE_STEP 6
|
||||
#define RGBLIGHT_SAT_STEP 12
|
||||
#define RGBLIGHT_VAL_STEP 20
|
||||
#define RGBLIGHT_ANIMATIONS
|
||||
#define RGBLIGHT_EFFECT_SNAKE_LENGTH 6
|
||||
#define RGBLIGHT_EFFECT_KNIGHT_LENGTH 2
|
||||
#define RGBLIGHT_EFFECT_KNIGHT_OFFSET 6
|
||||
#define RGBLIGHT_EFFECT_KNIGHT_LED_NUM 6
|
||||
#define RGBLIGHT_EFFECT_CHRISTMAS_INTERVAL 2000
|
||||
#define RGBLIGHT_EFFECT_CHRISTMAS_STEP 1
|
||||
#endif
|
||||
|
||||
#define ENCODER_RESOLUTION 4
|
||||
|
||||
#endif
|
||||
@@ -1,28 +0,0 @@
|
||||
/*
|
||||
* PLANCK - Dvorak turkish
|
||||
* Keymap by @bbaserdem
|
||||
* Dvorak layout with multiple features
|
||||
* Most of the code is in the "user" directory.
|
||||
* Check qmk_firmware/users/bbaserdem for the main part of the code
|
||||
*/
|
||||
|
||||
#include "planck.h"
|
||||
#include "bbaserdem.h"
|
||||
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
// Main Dvorak layer
|
||||
[_DV] = LAYOUT_planck_wrapper(DVORAK),
|
||||
// Turkish and special character overlay
|
||||
[_AL] = LAYOUT_planck_wrapper(ALTCHAR),
|
||||
// Gaming layer
|
||||
[_GA] = LAYOUT_planck_wrapper(GAME),
|
||||
// Numbers layer
|
||||
[_NU] = LAYOUT_planck_wrapper(NUMBERS),
|
||||
// Settings layer
|
||||
[_SE] = LAYOUT_planck_wrapper(SETTINGS),
|
||||
// Mouse emulation layer
|
||||
[_MO] = LAYOUT_planck_wrapper(MOUSE),
|
||||
// Music mode
|
||||
[_MU] = LAYOUT_planck_wrapper(MUSIC),
|
||||
};
|
||||
@@ -1,7 +0,0 @@
|
||||
# Build options
|
||||
|
||||
BACKLIGHT_ENABLE = yes # Switch LEDs
|
||||
MOUSEKEY_ENABLE = yes # Emulates mouse key using keypresses
|
||||
RGBLIGHT_ENABLE = yes # LED strips
|
||||
TAP_DANCE_ENABLE = no # Use multi-tap features
|
||||
AUDIO_ENABLE = yes # Audio stuff
|
||||
@@ -1,158 +0,0 @@
|
||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
|
||||
#include "planck.h"
|
||||
#ifdef BACKLIGHT_ENABLE
|
||||
#include "backlight.h"
|
||||
#endif
|
||||
#include "keymap_german.h"
|
||||
|
||||
// for intellisense, has to be commented for building
|
||||
/*
|
||||
#include "..\..\..\..\quantum\keymap_extras\keymap_german.h"
|
||||
#include "..\..\..\..\tmk_core\common\keycode.h"
|
||||
*/
|
||||
|
||||
/* This Layout tries to emulate the Bone2 Variant of Neo2, and is intended to be used with a German QWERTZ Softwarelayout.
|
||||
It has "üäöß" as it is optimized for a mix of German & English.
|
||||
My favourite features are the placement of the special characters often used for programming right on the home row
|
||||
and the number & navigation block combo, so you never have to move your hands from their home position.
|
||||
|
||||
Bone2 wiki page: http://wiki.neo-layout.org/wiki/Bone
|
||||
*/
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
/* Bone2 (adapted)
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | ß | J | D | U | A | X | P | H | L | M | W | Q |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | M1 | C | T | I | E | O | B | N | R | S | G |M1/Ent| //hold for M1, tap for Enter
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | Shift| F | V | Ü | Ä | Ö | Y | Z | , | . | K |Shift |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Ctrl | GUI | Alt | M4 | M2 | Space | M2 | M4 | Alt | Esc | Ctrl |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[0] = {
|
||||
{ DE_SS, DE_J, DE_D, DE_U, DE_A, DE_X, DE_P, DE_H, DE_L, DE_M, DE_W, DE_Q },
|
||||
//{ LT(1,KC_TAB), DE_C, DE_T, DE_I, DE_E, DE_O, DE_B, DE_N, DE_R, DE_S, DE_G, LT(1,KC_ENT) },
|
||||
{ MO(1), DE_C, DE_T, DE_I, DE_E, DE_O, DE_B, DE_N, DE_R, DE_S, DE_G, LT(1,KC_ENT) },
|
||||
{ KC_LSFT, DE_F, DE_V, DE_UE, DE_AE, DE_OE, DE_Y, DE_Z, DE_COMM, DE_DOT, DE_K, KC_LSFT },
|
||||
{ KC_LCTL, KC_LGUI, KC_LALT, MO(4), MO(2), KC_SPC, KC_SPC, MO(2), MO(4), KC_RALT, KC_ESC, KC_RCTL }
|
||||
},
|
||||
|
||||
/* M1 Special Characters
|
||||
* very ergonomic placement for coding
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | ° | @ | _ | [ | ] | ^ | ! | < | > | = | & | ´ |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | M1 | \ | / | { | } | * | ? | ( | ) | - | : |M1/Ent| //hold for M1, tap for Enter
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | Shift| # | ~ | | | $ | € | + | % | " | ' | ; |Shift |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Ctrl | GUI | Alt | M4 | M2 | Space | M2 | M4 | Alt | Esc | Ctrl |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[1] = {
|
||||
{ DE_RING, DE_AT, DE_UNDS, DE_LBRC, DE_RBRC, DE_CIRC, DE_EXLM, DE_LESS, DE_MORE, DE_EQL, DE_AMPR, DE_ACUT },
|
||||
{ _______, DE_BSLS, DE_SLSH, DE_LCBR, DE_RCBR, DE_ASTR, DE_QST, DE_LPRN, DE_RPRN, DE_MINS, DE_COLN, _______ },
|
||||
{ _______, DE_HASH, DE_TILD, DE_PIPE, DE_DLR, DE_EURO, DE_PLUS, DE_PERC, DE_DQOT, DE_QUOT, DE_SCLN, _______ },
|
||||
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }
|
||||
},
|
||||
|
||||
/* M2 Navigation & Number Blocks
|
||||
* very easy to get used to & intuituve placement
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | | PgUp | Bksp | Up | DEL | PgDn | | 7 | 8 | 9 | | Ins |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | Tab | Home | Lft | Down | Right| End | | 4 | 5 | 6 | . | Enter|
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | Shift| | Tab | | Enter| | 0 | 1 | 2 | 3 | , |Shift |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Ctrl | GUI | Alt | M3 | M2 | Space | M2 | M3 | Alt | Esc | Ctrl |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[2] = {
|
||||
{ XXXXXXX, KC_PGUP, KC_BSPC, KC_UP, KC_DEL, KC_PGDN, XXXXXXX, DE_7, DE_8, DE_9, XXXXXXX, KC_INS },
|
||||
{ KC_TAB, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, XXXXXXX, DE_4, DE_5, DE_6, DE_DOT, KC_ENT },
|
||||
{ _______, XXXXXXX, KC_TAB, XXXXXXX, KC_ENT, XXXXXXX, DE_0, DE_1, DE_2, DE_3, DE_COMM, _______ },
|
||||
{ _______, _______, _______, MO(3), _______, _______, _______, _______, MO(3), _______, _______, _______ }
|
||||
},
|
||||
|
||||
/* M3 Switched Navigation & Number Blocks for one handed use
|
||||
* accessed by sliding from M2 to M3 with thumb
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | Ins | | 7 | 8 | 9 | | PgUp | Bksp | Up | DEL | PgDn | |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | Tab | | 4 | 5 | 6 | . | Home | Left | Down | Right| End | Enter|
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | Shift| 0 | 1 | 2 | 3 | , | | Tab | | Enter| |Shift |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Ctrl | GUI | Alt | M3 | | Space | | M3 | Alt | Esc | Ctrl |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
|
||||
[3] = {
|
||||
{ KC_INS, XXXXXXX, DE_7, DE_8, DE_9, XXXXXXX, KC_PGUP, KC_BSPC, KC_UP, KC_DEL, KC_PGDN, XXXXXXX },
|
||||
{ _______, XXXXXXX, DE_4, DE_5, DE_6, DE_DOT, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, _______ },
|
||||
{ _______, DE_0, DE_1, DE_2, DE_3, DE_COMM, XXXXXXX, KC_TAB, XXXXXXX, KC_ENT, XXXXXXX, _______ },
|
||||
{ _______, _______, _______, _______, XXXXXXX, _______, _______, XXXXXXX, _______, _______, _______, _______ }
|
||||
},
|
||||
|
||||
|
||||
/* M4 Function & Media Keys
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | | | Print|Scroll|Pause | | | F7 | F8 | F9 | F12 | |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | Tab | | Mute | Vol- | Vol+ | | ³ | F4 | F5 | F6 | F11 | Enter|
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | Shift| | Prev | Play | Next | | ² | F1 | F2 | F3 | F10 |Shift |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Ctrl | GUI | Alt | M4 | M5 | Space | M5 | M4 | Alt | Esc | Ctrl |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[4] = {
|
||||
{ XXXXXXX, XXXXXXX, KC_PSCR, KC_SLCK, KC_PAUS, XXXXXXX, XXXXXXX, KC_F7, KC_F8, KC_F9, KC_F12, XXXXXXX },
|
||||
{ KC_TAB, XXXXXXX, KC_MUTE, KC_VOLD, KC_VOLU, XXXXXXX, DE_SQ3, KC_F4, KC_F5, KC_F6, KC_F11, KC_ENT },
|
||||
{ _______, XXXXXXX, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, DE_SQ2, KC_F1, KC_F2, KC_F3, KC_F10, _______ },
|
||||
{ _______, _______, _______, _______, MO(5), _______, _______, MO(5), _______, _______, _______, _______ }
|
||||
},
|
||||
|
||||
|
||||
/* M5 Switched Function & Media Keys|
|
||||
* accessed by sliding from M4 to M5 with thumb
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | | | F7 | F8 | F9 | F12 | | Print|Scroll| Pause| | |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | Tab | ³ | F4 | F5 | F6 | F11 | | Mute | Vol- | Vol+ | | Enter|
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | Shift| ² | F1 | F2 | F3 | F10 | | Prev | Play | Next | |Shift |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Ctrl | GUI | Alt | | M5 | Space | M5 | | Alt | Esc | Ctrl |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[5] = {
|
||||
{ XXXXXXX, XXXXXXX, KC_F7, KC_F8, KC_F9, KC_F12, XXXXXXX, KC_PSCR, KC_SLCK, KC_PAUS, XXXXXXX, XXXXXXX },
|
||||
{ _______, DE_SQ3, KC_F4, KC_F5, KC_F6, KC_F11, XXXXXXX, KC_MUTE, KC_VOLD, KC_VOLU, XXXXXXX, _______ },
|
||||
{ _______, DE_SQ2, KC_F1, KC_F2, KC_F3, KC_F10, XXXXXXX, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, _______ },
|
||||
{ _______, _______, _______, XXXXXXX, _______, _______, _______, _______, XXXXXXX, _______, _______, _______ }
|
||||
}
|
||||
};
|
||||
|
||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
|
||||
{
|
||||
// MACRODOWN only works in this function
|
||||
switch (id) {
|
||||
case 0:
|
||||
if (record->event.pressed) {
|
||||
register_code(KC_RSFT);
|
||||
#ifdef BACKLIGHT_ENABLE
|
||||
backlight_step();
|
||||
#endif
|
||||
}
|
||||
else {
|
||||
unregister_code(KC_RSFT);
|
||||
}
|
||||
break;
|
||||
}
|
||||
return MACRO_NONE;
|
||||
};
|
||||
@@ -1,96 +0,0 @@
|
||||
Bone2Planck
|
||||
=====================================
|
||||
|
||||
This layout tries to emulate the Bone2 variant of Neo2, and is intended to be used with a German QWERTZ softwarelayout.
|
||||
It has "üäöß" as it is optimized for a mix of German & English.
|
||||
The special character layer and the navigation & number block layer are inspired by the Neo2 layers,
|
||||
designed to keep the fingers near the home row.
|
||||
|
||||
Bone2 wiki page: http://wiki.neo-layout.org/wiki/Bone
|
||||
|
||||
To build, run "make" from within the \bone2planck folder.
|
||||
|
||||
## Bone2 (adapted) Base Layer
|
||||
```
|
||||
,-----------------------------------------------------------------------------------.
|
||||
| ß | J | D | U | A | X | P | H | L | M | W | Q |
|
||||
|------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
| M1 | C | T | I | E | O | B | N | R | S | G |M1/Ent| hold: M1, tap: Enter
|
||||
|------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
| Shift| F | V | Ü | Ä | Ö | Y | Z | , | . | K |Shift |
|
||||
|------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
| Ctrl | GUI | Alt | M4 | M2 | Space | M2 | M4 | Alt | Esc | Ctrl |
|
||||
`-----------------------------------------------------------------------------------'
|
||||
```
|
||||
|
||||
## M1 Special Characters
|
||||
very ergonomic placement for coding
|
||||
```
|
||||
,-----------------------------------------------------------------------------------.
|
||||
| ° | @ | _ | [ | ] | ^ | ! | < | > | = | & | ´ |
|
||||
|------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
| M1 | \ | / | { | } | * | ? | ( | ) | - | : |M1/Ent| hold: M1, tap: Enter
|
||||
|------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
| Shift| # | ~ | | | $ | € | + | % | " | ' | ; |Shift |
|
||||
|------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
| Ctrl | GUI | Alt | M4 | M2 | Space | M2 | M4 | Alt | Esc | Ctrl |
|
||||
`-----------------------------------------------------------------------------------'
|
||||
```
|
||||
|
||||
## M2 Navigation & Number Blocks
|
||||
very easy to get used to & intuituve placement
|
||||
```
|
||||
,-----------------------------------------------------------------------------------.
|
||||
| | PgUp | Bksp | Up | DEL | PgDn | | 7 | 8 | 9 | | Ins |
|
||||
|------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
| Tab | Home | Lft | Down | Right| End | | 4 | 5 | 6 | . | Enter|
|
||||
|------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
| Shift| | Tab | | Enter| | 0 | 1 | 2 | 3 | , |Shift |
|
||||
|------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
| Ctrl | GUI | Alt | M3 | M2 | Space | M2 | M3 | Alt | Esc | Ctrl |
|
||||
`-----------------------------------------------------------------------------------'
|
||||
```
|
||||
|
||||
## M4 Function & Media Keys
|
||||
```
|
||||
,-----------------------------------------------------------------------------------.
|
||||
| | | Print|Scroll|Pause | | | F7 | F8 | F9 | F12 | |
|
||||
|------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
| Tab | | Mute | Vol- | Vol+ | | ³ | F4 | F5 | F6 | F11 | Enter|
|
||||
|------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
| Shift| | Prev | Play | Next | | ² | F1 | F2 | F3 | F10 |Shift |
|
||||
|------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
| Ctrl | GUI | Alt | M4 | M5 | Space | M5 | M4 | Alt | Esc | Ctrl |
|
||||
`-----------------------------------------------------------------------------------'
|
||||
```
|
||||
|
||||
|
||||
##Switched layers for one handed access:
|
||||
|
||||
### M3 Switched Navigation & Number Blocks
|
||||
accessed by sliding from M2 to M3 with thumb
|
||||
```
|
||||
,-----------------------------------------------------------------------------------.
|
||||
| Ins | | 7 | 8 | 9 | | PgUp | Bksp | Up | DEL | PgDn | |
|
||||
|------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
| Tab | | 4 | 5 | 6 | . | Home | Left | Down | Right| End | Enter|
|
||||
|------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
| Shift| 0 | 1 | 2 | 3 | , | | Tab | | Enter| |Shift |
|
||||
|------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
| Ctrl | GUI | Alt | M3 | | Space | | M3 | Alt | Esc | Ctrl |
|
||||
`-----------------------------------------------------------------------------------'
|
||||
```
|
||||
|
||||
### M5 Switched Function & Media Keys
|
||||
accessed by sliding from M4 to M5 with thumb
|
||||
```
|
||||
,-----------------------------------------------------------------------------------.
|
||||
| | | F7 | F8 | F9 | F12 | | Print|Scroll| Pause| | |
|
||||
|------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
| Tab | ³ | F4 | F5 | F6 | F11 | | Mute | Vol- | Vol+ | | Enter|
|
||||
|------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
| Shift| ² | F1 | F2 | F3 | F10 | | Prev | Play | Next | |Shift |
|
||||
|------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
| Ctrl | GUI | Alt | | M5 | Space | M5 | | Alt | Esc | Ctrl |
|
||||
`-----------------------------------------------------------------------------------'
|
||||
```
|
||||
@@ -1,20 +0,0 @@
|
||||
# Build Options
|
||||
# change to "no" to disable the options, or define them in the Makefile in
|
||||
# the appropriate keymap folder that will get included automatically
|
||||
#
|
||||
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
|
||||
MOUSEKEY_ENABLE = no # Mouse keys(+4700)
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
|
||||
CONSOLE_ENABLE = no # Console for debug(+400)
|
||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||
MIDI_ENABLE = no # MIDI controls
|
||||
AUDIO_ENABLE = no # Audio output on port C6
|
||||
UNICODE_ENABLE = no # Unicode
|
||||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
|
||||
|
||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||
|
||||
@@ -1,35 +0,0 @@
|
||||
#ifndef CONFIG_USER_H
|
||||
#define CONFIG_USER_H
|
||||
|
||||
#include "../../config.h"
|
||||
|
||||
/*
|
||||
* MIDI options
|
||||
*/
|
||||
|
||||
/* Prevent use of disabled MIDI features in the keymap */
|
||||
//#define MIDI_ENABLE_STRICT 1
|
||||
|
||||
/* enable basic MIDI features:
|
||||
- MIDI notes can be sent when in Music mode is on
|
||||
*/
|
||||
#define MIDI_BASIC
|
||||
|
||||
/* enable advanced MIDI features:
|
||||
- MIDI notes can be added to the keymap
|
||||
- Octave shift and transpose
|
||||
- Virtual sustain, portamento, and modulation wheel
|
||||
- etc.
|
||||
*/
|
||||
//#define MIDI_ADVANCED
|
||||
|
||||
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
|
||||
//#define MIDI_TONE_KEYCODE_OCTAVES 2
|
||||
|
||||
#define MOUSEKEY_INTERVAL 20
|
||||
#define MOUSEKEY_DELAY 0
|
||||
#define MOUSEKEY_TIME_TO_MAX 60
|
||||
#define MOUSEKEY_MAX_SPEED 7
|
||||
#define MOUSEKEY_WHEEL_DELAY 0
|
||||
|
||||
#endif
|
||||
@@ -1,406 +0,0 @@
|
||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
|
||||
#include "planck.h"
|
||||
#include "action_layer.h"
|
||||
#include "eeconfig.h"
|
||||
#include "keymap_plover.h"
|
||||
#include "action_tapping.h"
|
||||
|
||||
extern keymap_config_t keymap_config;
|
||||
|
||||
// Keymap layers
|
||||
enum planck_layers {
|
||||
BASE_QWERTY_LAYER,
|
||||
BASE_COLEMAK_LAYER,
|
||||
BASE_STENO_LAYER,
|
||||
LOWER_LAYER,
|
||||
RAISE_LAYER,
|
||||
NAVIGATION_LAYER,
|
||||
GUI_LAYER,
|
||||
KEYBOARD_LAYER
|
||||
};
|
||||
|
||||
// Key aliases for legibility
|
||||
#define ___x___ KC_NO
|
||||
|
||||
// Macros
|
||||
enum planck_macros {
|
||||
LALT_BRACE,
|
||||
RALT_BRACE
|
||||
};
|
||||
|
||||
// Dashes (macOS)
|
||||
#define KC_NDSH LALT(KC_MINS)
|
||||
#define KC_MDSH S(LALT(KC_MINS))
|
||||
|
||||
// Window manager keys
|
||||
#define WM_FULL LALT(LGUI(KC_F))
|
||||
#define WM_NEXT LCTL(LALT(LGUI(KC_RGHT)))
|
||||
#define WM_PREV LCTL(LALT(LGUI(KC_LEFT)))
|
||||
#define WM_NW LCTL(LGUI(KC_LEFT))
|
||||
#define WM_N LALT(LGUI(KC_UP))
|
||||
#define WM_NE LCTL(LGUI(KC_RGHT))
|
||||
#define WM_E LALT(LGUI(KC_RGHT))
|
||||
#define WM_SE S(LCTL(LGUI(KC_RGHT)))
|
||||
#define WM_S LALT(LGUI(KC_DOWN))
|
||||
#define WM_SW S(LCTL(LGUI(KC_LEFT)))
|
||||
#define WM_W LALT(LGUI(KC_LEFT))
|
||||
#define WM_CNTR LALT(LGUI(KC_C))
|
||||
|
||||
// Special key codes
|
||||
enum planck_keycodes {
|
||||
QWERTY = SAFE_RANGE,
|
||||
COLEMAK,
|
||||
STENO,
|
||||
LOWER,
|
||||
RAISE,
|
||||
PV_EXIT,
|
||||
PV_LOOK
|
||||
};
|
||||
|
||||
//Tap Dance Declarations
|
||||
enum {
|
||||
TD_ESC_GRV = 0
|
||||
};
|
||||
|
||||
// Tap Dance Definitions
|
||||
qk_tap_dance_action_t tap_dance_actions[] = {
|
||||
// Tap once for Esc, twice for Backspace
|
||||
[TD_ESC_GRV] = ACTION_TAP_DANCE_DOUBLE(KC_ESC, KC_GRV)
|
||||
// Other declarations would go here, separated by commas, if you have them
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/* Base layer (Qwerty)
|
||||
* ,-----------------------------------------------------------------------.
|
||||
* Double tap 4 ~ | ESC | Q | W | E | R | T | Y | U | I | O | P | ' |
|
||||
* |-----------------------------------------------------------------------|
|
||||
* Tap for Tab -- |Ctrl | A | S | D | F | G | H | J | K | L |; Fn4|Ctrl | -- Tap for Enter
|
||||
* |-----------------------------------------------------------------------|
|
||||
* Tap for ( -- |Shift| Z | X | C | V | B | N | M | , | . | / |Shift| -- Tap for )
|
||||
* |-----------------------------------------------------------------------|
|
||||
* Tap for [ -- | Fn3 |Hyper| Alt |Super| Fn1 | Space | Fn2 |Super| Alt |Hyper| Fn3 | -- Tap for ]
|
||||
* `-----------------------------------------------------------------------'
|
||||
* / /
|
||||
* Tap for ] [ --------'-----------------------------------------------------'
|
||||
*/
|
||||
[BASE_QWERTY_LAYER] = {
|
||||
{TD(TD_ESC_GRV), KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_QUOT},
|
||||
{F(5), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, F(1), F(6)},
|
||||
{KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC},
|
||||
{F(3), ALL_T(KC_RBRC), M(LALT_BRACE), KC_LGUI, LOWER, KC_SPC, KC_BSPC, RAISE, KC_RGUI, M(RALT_BRACE), ALL_T(KC_LBRC), F(4)}
|
||||
},
|
||||
|
||||
/* Base layer (Colemak)
|
||||
* ,-----------------------------------------------------------------------.
|
||||
* | | Q | W | F | P | G | J | L | U | Y | ; | |
|
||||
* |-----------------------------------------------------------------------|
|
||||
* | | A | R | S | T | D | H | N | E | I |O Fn4| |
|
||||
* |-----------------------------------------------------------------------|
|
||||
* | | Z | X | C | V | B | K | M | | | | |
|
||||
* |-----------------------------------------------------------------------|
|
||||
* | | | | | | | | | | | |
|
||||
* `-----------------------------------------------------------------------'
|
||||
*/
|
||||
[BASE_COLEMAK_LAYER] = {
|
||||
{_______, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, _______},
|
||||
{_______, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, F(2), _______},
|
||||
{_______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, _______, _______, _______, _______},
|
||||
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
|
||||
},
|
||||
|
||||
/* Base layer (Qwerty-Steno)
|
||||
* ,-----------------------------------------------------------------------.
|
||||
* | # | # | # | # | # | # | # | # | # | # | # | # |
|
||||
* |-----------------------------------------------------------------------|
|
||||
* |Look | | T | P | H | | F | P | L | T | D |
|
||||
* | -up | S |-----+-----+-----| * |-----+-----+-----+-----+-----|
|
||||
* | | | K | W | R | | R | B | G | S | Z |
|
||||
* |-----------------------------------------------------------------------|
|
||||
* |Exit | | | A | O | | E | U | | | |
|
||||
* `-----------------------------------------------------------------------'
|
||||
*/
|
||||
[BASE_STENO_LAYER] = {
|
||||
{PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM},
|
||||
{PV_LOOK, PV_LS, PV_LT, PV_LP, PV_LH, PV_STAR, PV_STAR, PV_RF, PV_RP, PV_RL, PV_RT, PV_RD},
|
||||
{PV_LOOK, PV_LS, PV_LK, PV_LW, PV_LR, PV_STAR, PV_STAR, PV_RR, PV_RB, PV_RG, PV_RS, PV_RZ},
|
||||
{PV_EXIT, ___x___, ___x___, PV_A, PV_O, _______, _______, PV_E, PV_U, ___x___, ___x___, ___x___}
|
||||
},
|
||||
|
||||
/* Numeric layer
|
||||
* ,-----------------------------------------------------------------------.
|
||||
* Application -- |D-Grv| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | # |
|
||||
* window |-----------------------------------------------------------------------|
|
||||
* switcher | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | |
|
||||
* |-----------------------------------------------------------------------|
|
||||
* | | - | = | ` | \ | |ndash|mdash| , | . | / | |
|
||||
* |-----------------------------------------------------------------------|
|
||||
* | | | | | | Backspace | | | | | |
|
||||
* `-----------------------------------------------------------------------'
|
||||
*/
|
||||
[LOWER_LAYER] = {
|
||||
{LGUI(KC_GRV), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, S(KC_3)},
|
||||
{F(5), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, F(6)},
|
||||
{KC_LSPO, KC_MINS, KC_EQL, KC_GRV, KC_BSLS, ___x___, KC_NDSH, KC_MDSH, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC},
|
||||
{F(3), ALL_T(KC_LBRC), M(LALT_BRACE), KC_LGUI, LOWER, KC_BSPC, KC_BSPC, RAISE, KC_RGUI, M(RALT_BRACE), ALL_T(KC_RBRC), F(4)}
|
||||
},
|
||||
|
||||
/* Symbol layer
|
||||
* ,-----------------------------------------------------------------------.
|
||||
* | | F11 | F12 | F13 | F14 | F15 | F16 | F17 | F18 | F19 | F20 | # |
|
||||
* |-----------------------------------------------------------------------|
|
||||
* | | ! | @ | # | $ | % | ^ | & | * | ' | " | | \
|
||||
* |-----------------------------------------------------------------------| |-- Mostly shifted version
|
||||
* | | _ | + | ~ | | | |ndash|mdash| , | . | / | | / of lower layer
|
||||
* |-----------------------------------------------------------------------|
|
||||
* | | | | | | Delete | | | | | |
|
||||
* `-----------------------------------------------------------------------'
|
||||
*/
|
||||
[RAISE_LAYER] = {
|
||||
{_______, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, S(KC_3)},
|
||||
{_______, S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), KC_QUOT, S(KC_QUOT), _______},
|
||||
{_______, KC_UNDS, KC_PLUS, KC_TILD, KC_PIPE, ___x___, KC_NDSH, KC_MDSH, KC_COMM, KC_DOT, KC_SLSH, _______},
|
||||
{_______, _______, _______, _______, _______, KC_DEL, KC_DEL, _______, _______, _______, _______, _______}
|
||||
},
|
||||
|
||||
/* Directional navigation layer
|
||||
*
|
||||
* Large movements -----/```````````````````\ /```````````````````\----- Vim-style arrow keys
|
||||
* ,-----------------------------------------------------------------------.
|
||||
* | | | | | | | | | | | | |
|
||||
* |-----------------------------------------------------------------------|
|
||||
* | | |Home |PgUp |PgDn | End |Left |Down | Up |Right| | |
|
||||
* |-----------------------------------------------------------------------|
|
||||
* | | | | | | | | | | | | |
|
||||
* |-----------------------------------------------------------------------|
|
||||
* | | | | | | | | | | | |
|
||||
* `-----------------------------------------------------------------------'
|
||||
*/
|
||||
[NAVIGATION_LAYER] = {
|
||||
{___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___},
|
||||
{_______, ___x___, KC_HOME, KC_PGUP, KC_PGDN, KC_END, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, F(1), _______},
|
||||
{_______, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, _______},
|
||||
{_______, _______, _______, _______, ___x___, ___x___, ___x___, ___x___, _______, _______, _______, _______}
|
||||
},
|
||||
|
||||
/* GUI (window management/mouse/media controls) layer
|
||||
*
|
||||
* Mouse keys -----/```````````````````\ /```````````````````\----- Window manager
|
||||
* ,-----------------------------------------------------------------------.
|
||||
* | |Ms B2|Ms Up|Ms B1|Ms WD| | |Prev | NW | N | NE | |
|
||||
* |-----------------------------------------------------------------------|
|
||||
* | |Ms L |Ms Dn|Ms R |Ms WU| | |Full | W |Centr| E | |
|
||||
* |-----------------------------------------------------------------------|
|
||||
* | |Ms WL|Ms B3|Ms WR| | | |Next | SW | S | SE | |
|
||||
* |-----------------------------------------------------------------------|
|
||||
* | |Prev |Play |Next |Brig-| Sleep |Brig+|Mute |Vol- |Vol+ | |
|
||||
* `-----------------------------------------------------------------------'
|
||||
* \___ Media ___/ \___ Screen/sleep __/ \___ Volume __/
|
||||
*/
|
||||
[GUI_LAYER] = {
|
||||
{_______, KC_BTN2, KC_MS_U, KC_BTN1, KC_WH_D, ___x___, ___x___, WM_PREV, WM_NW, WM_N, WM_NE, _______},
|
||||
{_______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_U, ___x___, ___x___, WM_FULL, WM_W, WM_CNTR, WM_E, _______},
|
||||
{_______, KC_WH_L, KC_BTN3, KC_WH_R, ___x___, ___x___, ___x___, WM_NEXT, WM_SW, WM_S, WM_SE, _______},
|
||||
{_______, KC_MPRV, KC_MPLY, KC_MNXT, KC_SLCK, KC_SLEP, KC_SLEP, KC_PAUS, KC_MUTE, KC_VOLD, KC_VOLU, _______}
|
||||
},
|
||||
|
||||
/* Keyboard settings layer
|
||||
* ,-----------------------------------------------------------------------.
|
||||
* Firmware -- | |Reset| | | | | | | | | | |
|
||||
* |-----------------------------------------------------------------------|
|
||||
* Set layer -- | |Qwert|Colem|Steno| ... | | | | | | | |
|
||||
* |-----------------------------------------------------------------------|
|
||||
* Audio -- | |Voic-|Voic+|Mus +|Mus -|MIDI+|MIDI-| | |Aud +|Aud -| |
|
||||
* |-----------------------------------------------------------------------|
|
||||
* | | | | | | Toggle | |Toggl| BL- | BL+ | |
|
||||
* `-----------------------------------------------------------------------'
|
||||
* \_____________\_ Backlight _/
|
||||
*/
|
||||
[KEYBOARD_LAYER] = {
|
||||
{___x___, RESET, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___},
|
||||
{___x___, QWERTY, COLEMAK, STENO, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___},
|
||||
{___x___, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, ___x___, ___x___, AU_ON, AU_OFF, ___x___},
|
||||
{___x___, ___x___, ___x___, ___x___, LOWER, BL_TOGG, BL_TOGG, RAISE, BL_TOGG, BL_DEC, BL_INC, ___x___}
|
||||
}
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM fn_actions[] = {
|
||||
// Layer switching
|
||||
[1] = ACTION_LAYER_TAP_KEY(NAVIGATION_LAYER, KC_SCOLON),
|
||||
[2] = ACTION_LAYER_TAP_KEY(NAVIGATION_LAYER, KC_O),
|
||||
[3] = ACTION_LAYER_TAP_KEY(GUI_LAYER, KC_LBRACKET),
|
||||
[4] = ACTION_LAYER_TAP_KEY(GUI_LAYER, KC_RBRACKET),
|
||||
|
||||
// Modifiers
|
||||
[5] = ACTION_MODS_TAP_KEY(MOD_LCTL, KC_TAB),
|
||||
[6] = ACTION_MODS_TAP_KEY(MOD_RCTL, KC_ENT),
|
||||
};
|
||||
|
||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
|
||||
{
|
||||
switch(id) {
|
||||
case LALT_BRACE:
|
||||
if (record->event.pressed) {
|
||||
register_mods(MOD_LALT);
|
||||
record->tap.interrupted = 0;
|
||||
} else {
|
||||
unregister_mods(MOD_LALT);
|
||||
|
||||
if (record->tap.count && !record->tap.interrupted) {
|
||||
add_weak_mods(MOD_LSFT);
|
||||
register_code(KC_LBRACKET);
|
||||
unregister_code(KC_LBRACKET);
|
||||
del_weak_mods(MOD_LSFT);
|
||||
}
|
||||
|
||||
record->tap.count = 0;
|
||||
}
|
||||
break;
|
||||
case RALT_BRACE:
|
||||
if (record->event.pressed) {
|
||||
register_mods(MOD_RALT);
|
||||
record->tap.interrupted = 0;
|
||||
} else {
|
||||
unregister_mods(MOD_RALT);
|
||||
|
||||
if (record->tap.count && !record->tap.interrupted) {
|
||||
add_weak_mods(MOD_LSFT);
|
||||
register_code(KC_RBRACKET);
|
||||
unregister_code(KC_RBRACKET);
|
||||
del_weak_mods(MOD_LSFT);
|
||||
}
|
||||
|
||||
record->tap.count = 0;
|
||||
}
|
||||
break;
|
||||
}
|
||||
return MACRO_NONE;
|
||||
}
|
||||
|
||||
#ifdef AUDIO_ENABLE
|
||||
|
||||
float tone_startup[][2] = SONG(STARTUP_SOUND);
|
||||
float tone_qwerty[][2] = SONG(QWERTY_SOUND);
|
||||
float tone_colemak[][2] = SONG(COLEMAK_SOUND);
|
||||
float tone_plover[][2] = SONG(PLOVER_SOUND);
|
||||
float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND);
|
||||
float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
|
||||
float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
|
||||
|
||||
#endif
|
||||
|
||||
void persistant_default_layer_set(uint16_t default_layer) {
|
||||
eeconfig_update_default_layer(default_layer);
|
||||
default_layer_set(default_layer);
|
||||
}
|
||||
|
||||
// Send PHROPB ({PLOVER:RESUME}).
|
||||
void plover_resume(void) {
|
||||
register_code(PV_LP);
|
||||
register_code(PV_LH);
|
||||
register_code(PV_LR);
|
||||
register_code(PV_O);
|
||||
register_code(PV_RP);
|
||||
register_code(PV_RB);
|
||||
unregister_code(PV_LP);
|
||||
unregister_code(PV_LH);
|
||||
unregister_code(PV_LR);
|
||||
unregister_code(PV_O);
|
||||
unregister_code(PV_RP);
|
||||
unregister_code(PV_RB);
|
||||
}
|
||||
|
||||
// Send PHROF ({PLOVER:SUSPEND}).
|
||||
void plover_suspend(void) {
|
||||
register_code(PV_LP);
|
||||
register_code(PV_LH);
|
||||
register_code(PV_LR);
|
||||
register_code(PV_O);
|
||||
register_code(PV_RF);
|
||||
unregister_code(PV_LP);
|
||||
unregister_code(PV_LH);
|
||||
unregister_code(PV_LR);
|
||||
unregister_code(PV_O);
|
||||
unregister_code(PV_RF);
|
||||
}
|
||||
|
||||
// Send PHROBG ({PLOVER:LOOKUP}).
|
||||
void plover_lookup(void) {
|
||||
register_code(PV_LP);
|
||||
register_code(PV_LH);
|
||||
register_code(PV_LR);
|
||||
register_code(PV_O);
|
||||
register_code(PV_RB);
|
||||
register_code(PV_RG);
|
||||
unregister_code(PV_LP);
|
||||
unregister_code(PV_LH);
|
||||
unregister_code(PV_LR);
|
||||
unregister_code(PV_O);
|
||||
unregister_code(PV_RB);
|
||||
unregister_code(PV_RG);
|
||||
}
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
case QWERTY:
|
||||
if (record->event.pressed) {
|
||||
persistant_default_layer_set(1UL<<BASE_QWERTY_LAYER);
|
||||
}
|
||||
return false;
|
||||
case COLEMAK:
|
||||
if (record->event.pressed) {
|
||||
persistant_default_layer_set(1UL<<BASE_COLEMAK_LAYER);
|
||||
}
|
||||
return false;
|
||||
case LOWER:
|
||||
if (record->event.pressed) {
|
||||
layer_on(LOWER_LAYER);
|
||||
update_tri_layer(LOWER_LAYER, RAISE_LAYER, KEYBOARD_LAYER);
|
||||
} else {
|
||||
layer_off(LOWER_LAYER);
|
||||
update_tri_layer(LOWER_LAYER, RAISE_LAYER, KEYBOARD_LAYER);
|
||||
}
|
||||
return false;
|
||||
case RAISE:
|
||||
if (record->event.pressed) {
|
||||
layer_on(RAISE_LAYER);
|
||||
update_tri_layer(LOWER_LAYER, RAISE_LAYER, KEYBOARD_LAYER);
|
||||
} else {
|
||||
layer_off(RAISE_LAYER);
|
||||
update_tri_layer(LOWER_LAYER, RAISE_LAYER, KEYBOARD_LAYER);
|
||||
}
|
||||
return false;
|
||||
case STENO:
|
||||
if (record->event.pressed) {
|
||||
layer_off(RAISE_LAYER);
|
||||
layer_off(LOWER_LAYER);
|
||||
layer_off(KEYBOARD_LAYER);
|
||||
layer_on(BASE_STENO_LAYER);
|
||||
if (!eeconfig_is_enabled()) {
|
||||
eeconfig_init();
|
||||
}
|
||||
keymap_config.raw = eeconfig_read_keymap();
|
||||
keymap_config.nkro = 1;
|
||||
eeconfig_update_keymap(keymap_config.raw);
|
||||
plover_resume();
|
||||
}
|
||||
return false;
|
||||
case PV_EXIT:
|
||||
if (record->event.pressed) {
|
||||
plover_suspend();
|
||||
layer_off(BASE_STENO_LAYER);
|
||||
}
|
||||
return false;
|
||||
case PV_LOOK:
|
||||
if (record->event.pressed) {
|
||||
plover_lookup();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void matrix_init_user(void) {
|
||||
#ifdef AUDIO_ENABLE
|
||||
startup_user();
|
||||
#endif
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
# This gets included at the beginning of the Planck's Makefile.
|
||||
# Alternatively, you can run make from the keymap directory
|
||||
# and the main Makefile will be included after.
|
||||
|
||||
COMMAND_ENABLE = no # Disable shift combination, which conflicts with shift-parens
|
||||
NKRO_ENABLE = yes # N-key rollover required for use as a steno board
|
||||
AUDIO_ENABLE = no # Audio output on port C6
|
||||
TAP_DANCE_ENABLE = yes
|
||||
MOUSEKEY_ENABLE = yes
|
||||
CONSOLE_ENABLE = no
|
||||
BACKLIGHT_ENABLE = yes
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#ifdef AUDIO_ENABLE
|
||||
#define STARTUP_SONG SONG(MARIO_MUSHROOM)
|
||||
#define UNICODE_SONG_OSX SONG(COIN_SOUND)
|
||||
#define UNICODE_SONG_LNX SONG(UNICODE_LINUX)
|
||||
#define UNICODE_SONG_WIN SONG(UNICODE_WINDOWS)
|
||||
#define UNICODE_SONG_WINC SONG(UNICODE_WINDOWS)
|
||||
#endif
|
||||
|
||||
#define ENCODER_RESOLUTION 4
|
||||
#define MOUSEKEY_DELAY 300
|
||||
#define MOUSEKEY_INTERVAL 50
|
||||
#define MOUSEKEY_MAX_SPEED 8
|
||||
#define MOUSEKEY_TIME_TO_MAX 20
|
||||
@@ -1,99 +0,0 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
#include "muse.h"
|
||||
|
||||
extern keymap_config_t keymap_config;
|
||||
|
||||
enum custom_keycodes {
|
||||
B_UPD = SAFE_RANGE,
|
||||
B_SSH,
|
||||
B_SSHK,
|
||||
B_USR,
|
||||
B_X11,
|
||||
B_X12,
|
||||
B_X13
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[0] = LAYOUT_planck_grid(
|
||||
KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
|
||||
LT(5,KC_TAB),KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, LT(4,KC_BSLS),
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, MT(MOD_RSFT,KC_ENT),
|
||||
KC_LCTL, KC_LGUI, KC_LALT, MO(3), MO(2), KC_SPC, KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
|
||||
),
|
||||
|
||||
[1] = LAYOUT_planck_grid(
|
||||
KC_TRNS, B_UPD, B_USR, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_7, KC_8, KC_9, KC_DEL,
|
||||
KC_TRNS, B_SSH, B_SSHK, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_4, KC_5, KC_6, KC_TRNS,
|
||||
KC_TRNS, B_X11, B_X12, B_X13, KC_NO, KC_NO, KC_NO, KC_NO, KC_1, KC_2, KC_3, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_0, KC_PDOT, KC_PPLS, KC_PMNS
|
||||
),
|
||||
|
||||
[2] = LAYOUT_planck_grid(
|
||||
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
|
||||
KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_SLSH, KC_QUOT, KC_MINS, KC_LCBR, KC_RCBR, KC_TRNS,
|
||||
KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_DQUO, KC_EQL, KC_LBRC, KC_RBRC, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UNDS, KC_LT, KC_GT, KC_NO
|
||||
),
|
||||
|
||||
[3] = LAYOUT_planck_grid(
|
||||
KC_TRNS, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, KC_DEL,
|
||||
KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_PGUP, KC_MS_U, KC_PGDN, KC_TRNS,
|
||||
KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_HOME,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, KC_BTN3, KC_END
|
||||
),
|
||||
|
||||
[4] = LAYOUT_planck_grid(
|
||||
KC_TRNS, RESET, DEBUG, KC_NO, KC_NO, KC_NO, KC_NO, MU_MOD, MUV_IN, MU_ON, AU_ON, KC_EJCT,
|
||||
KC_TRNS, EEP_RST, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, MUV_DE, MU_OFF, AU_OFF, KC_TRNS,
|
||||
KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MUTE, KC_MPRV, KC_MNXT, KC_NO,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MSTP, KC_VOLD, KC_VOLU, KC_MPLY
|
||||
),
|
||||
|
||||
[5] = LAYOUT_planck_grid(
|
||||
UC(0xB0), UC(0xB9), UC(0xB2), UC(0xB3), UC(0xDF), UC(0x20AC), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||
KC_TRNS, UC(0xC4), UC(0xD6), UC(0xDC), UC(0xBB), UC(0xAB), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||
KC_TRNS, UC(0xE4), UC(0xF6), UC(0xFC), UC(0x2022), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, UC_M_OS, UC_M_LN, UC_M_WI, UC_M_WC
|
||||
)};
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
case B_UPD:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING("sudo apt update && sudo apt full-upgrade -yyy" SS_TAP(X_ENTER));
|
||||
}
|
||||
break;
|
||||
case B_SSH:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING("cd /etc/ssh" SS_TAP(X_ENTER) "sudo shasum ssh_host_*" SS_TAP(X_ENTER) "sudo rm ssh_host_*" SS_TAP(X_ENTER) "sudo dpkg-reconfigure openssh-server" SS_TAP(X_ENTER));
|
||||
}
|
||||
break;
|
||||
case B_SSHK:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING("ssh-keygen -t ed25519" SS_TAP(X_ENTER) SS_TAP(X_ENTER) SS_TAP(X_ENTER) SS_TAP(X_ENTER));
|
||||
}
|
||||
break;
|
||||
case B_USR:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING("useradd -m user" SS_TAP(X_ENTER) "usermod -a -G sudo user" SS_TAP(X_ENTER) "chsh -s /bin/bash user" SS_TAP(X_ENTER) "passwd user" SS_TAP(X_ENTER));
|
||||
}
|
||||
break;
|
||||
case B_X11:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING("sudo x11vnc -storepasswd /etc/x11vnc.pass" SS_TAP(X_ENTER));
|
||||
}
|
||||
break;
|
||||
case B_X12:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING("sudo nano /lib/systemd/system/x11vnc.service" SS_TAP(X_ENTER) "[Unit]" SS_TAP(X_ENTER) "Description=Start X11VNC" SS_TAP(X_ENTER) "After=multi-user.target" SS_TAP(X_ENTER) SS_TAP(X_ENTER) "[Service]" SS_TAP(X_ENTER) "Type=simple" SS_TAP(X_ENTER) "ExecStart=/usr/bin/x11vnc -display :0 -auth guess -forever -loop -noxdamage -repeat -rfbauth /etc/x11vnc.pass -rfbport 5900 -shared -localhost -o /var/log/x11vnc.log" SS_TAP(X_ENTER) SS_TAP(X_ENTER) "[Install]" SS_TAP(X_ENTER) "WantedBy=multi-user.target");
|
||||
}
|
||||
break;
|
||||
case B_X13:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING("sudo systemctl enable x11vnc.service" SS_TAP(X_ENTER));
|
||||
}
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
};
|
||||
@@ -1,20 +0,0 @@
|
||||
Buhearns Keymap (February 12th, 2019)
|
||||
=====================================
|
||||
|
||||
Simple QWERTY keymap with german Unicode umlauts, special characters and several Linux commands. Intended to be working with ENGLISH layout.
|
||||
|
||||
|
||||
## Buhearns base layer
|
||||
```
|
||||
,-----------------------------------------------------------------------------------.
|
||||
| GESC | Q | W | E | R | T | Y | U | I | O | P | BKSP |
|
||||
|------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
|M5/TAB| A | S | D | F | G | H | J | K | L | ; |M4/BSL| hold: M5, tap: TAB // hold: M4, tap: Backslash
|
||||
|------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
|LSHIFT| Z | X | C | V | B | N | M | , | . | / |ST/ENT| hold: RSHIFT, tap: Enter
|
||||
|------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
| CTRL | LGUI | LALT | M3 | M2 | SPACE | M1 | LEFT | DOWN | UP | RIGHT|
|
||||
`-----------------------------------------------------------------------------------'
|
||||
```
|
||||
|
||||
## Other layers are a WIP and being tested (DON'T WAIT FOR UPDATES!)
|
||||
@@ -1,13 +0,0 @@
|
||||
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
|
||||
MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
|
||||
CONSOLE_ENABLE = no # Console for debug(+400)
|
||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||
NKRO_ENABLE = yes # Nkey Rollover
|
||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||
MIDI_ENABLE = no # MIDI controls
|
||||
AUDIO_ENABLE = yes # Audio output on port C6
|
||||
UNICODE_ENABLE = yes # Unicode
|
||||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
|
||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||
@@ -1,7 +0,0 @@
|
||||
#define MOUSEKEY_DELAY 0
|
||||
#define MOUSEKEY_INTERVAL 16
|
||||
#define MOUSEKEY_MAX_SPEED 10
|
||||
#define MOUSEKEY_TIME_TO_MAX 60
|
||||
#define MOUSEKEY_WHEEL_DELAY 0
|
||||
#define MOUSEKEY_WHEEL_MAX_SPEED 8
|
||||
#define MOUSEKEY_WHEEL_TIME_TO_MAX 60
|
||||
@@ -1,361 +0,0 @@
|
||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
|
||||
#include "planck.h"
|
||||
#include "action_layer.h"
|
||||
|
||||
extern keymap_config_t keymap_config;
|
||||
|
||||
#define AC(X) A(C(X))
|
||||
#define SC(X) S(C(X))
|
||||
|
||||
enum planck_layers {
|
||||
_COLEMAK,
|
||||
_QWERTY,
|
||||
_SYMB,
|
||||
_MOVE,
|
||||
_FUNC,
|
||||
_MOUSE,
|
||||
};
|
||||
|
||||
enum planck_keycodes {
|
||||
COLEMAK = SAFE_RANGE,
|
||||
QWERTY,
|
||||
SYMB,
|
||||
MOVE,
|
||||
FUNC,
|
||||
MOUSE,
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
/* COLEMAK
|
||||
* ,-----------------------------------------------------------------------.
|
||||
* |Tab | Q | W | F | P | G | J | L | U | Y | ; | - |
|
||||
* |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----|
|
||||
* |Bksp | A | R | S | T | D | H | N | E | I | O | ' |
|
||||
* |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----|
|
||||
* |Shift| Z | X | C | V | B | K | M | , | . | / |Shift|
|
||||
* |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----|
|
||||
* |Func |Ctrl | Alt |Super|Symb |Enter|Space|Move |Super| Alt |Ctrl |Func |
|
||||
* `-----------------------------------------------------------------------'
|
||||
*/
|
||||
[_COLEMAK] = {
|
||||
{
|
||||
KC_TAB, KC_Q, KC_W, KC_F,
|
||||
KC_P, KC_G, KC_J, KC_L,
|
||||
KC_U, KC_Y, KC_SCLN, KC_MINS
|
||||
},
|
||||
{
|
||||
KC_BSPC, KC_A, KC_R, KC_S,
|
||||
KC_T, KC_D, KC_H, KC_N,
|
||||
KC_E, KC_I, KC_O, KC_QUOT
|
||||
},
|
||||
{
|
||||
KC_LSFT, KC_Z, KC_X, KC_C,
|
||||
KC_V, KC_B, KC_K, KC_M,
|
||||
KC_COMM, KC_DOT, KC_SLSH, KC_RSFT
|
||||
},
|
||||
{
|
||||
FUNC, KC_LCTL, KC_LALT, KC_LGUI,
|
||||
SYMB, KC_ENT, KC_SPC, MOVE,
|
||||
KC_RGUI, KC_RALT, KC_RCTL, FUNC
|
||||
}
|
||||
},
|
||||
|
||||
/* QWERTY
|
||||
* ,-----------------------------------------------------------------------.
|
||||
* |Tab | Q | W | E | R | T | Y | U | I | O | P | - |
|
||||
* |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----|
|
||||
* |Bksp | A | S | D | F | G | H | J | K | L | ; | ' |
|
||||
* |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----|
|
||||
* |Shift| Z | X | C | V | B | N | M | , | . | / |Shift|
|
||||
* |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----|
|
||||
* |Func |Ctrl | Alt |Super|Symb |Enter|Space|Move |Super| Alt |Ctrl |Func |
|
||||
* `-----------------------------------------------------------------------'
|
||||
*/
|
||||
[_QWERTY] = {
|
||||
{
|
||||
KC_TAB, KC_Q, KC_W, KC_E,
|
||||
KC_R, KC_T, KC_Y, KC_U,
|
||||
KC_I, KC_O, KC_P, KC_MINS
|
||||
},
|
||||
{
|
||||
KC_BSPC, KC_A, KC_S, KC_D,
|
||||
KC_F, KC_G, KC_H, KC_J,
|
||||
KC_K, KC_L, KC_SCLN, KC_QUOT
|
||||
},
|
||||
{
|
||||
KC_LSFT, KC_Z, KC_X, KC_C,
|
||||
KC_V, KC_B, KC_N, KC_M,
|
||||
KC_COMM, KC_DOT, KC_SLSH, KC_RSFT
|
||||
},
|
||||
{
|
||||
FUNC, KC_LCTL, KC_LALT, KC_LGUI,
|
||||
SYMB, KC_ENT, KC_SPC, MOVE,
|
||||
KC_RGUI, KC_RALT, KC_RCTL, FUNC
|
||||
}
|
||||
},
|
||||
|
||||
/* SYMB
|
||||
* ,-----------------------------------------------------------------------.
|
||||
* | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | |
|
||||
* |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----|
|
||||
* | Del | ! | @ | # | $ | % | ^ | & | * | ( | ) | |
|
||||
* |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----|
|
||||
* | | ~ | ` | + | = | | | \ | [ | ] | { | } | |
|
||||
* |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----|
|
||||
* | | | | | | | |Mouse| | | | |
|
||||
* `-----------------------------------------------------------------------'
|
||||
*/
|
||||
[_SYMB] = {
|
||||
{
|
||||
KC_ESC, KC_1, KC_2, KC_3,
|
||||
KC_4, KC_5, KC_6, KC_7,
|
||||
KC_8, KC_9, KC_0, _______
|
||||
},
|
||||
{
|
||||
KC_DEL, KC_EXLM, KC_AT, KC_HASH,
|
||||
KC_DLR, KC_PERC, KC_CIRC, KC_AMPR,
|
||||
KC_ASTR, KC_LPRN, KC_RPRN, _______
|
||||
},
|
||||
{
|
||||
_______, KC_TILD, KC_GRV, KC_PLUS,
|
||||
KC_EQL, KC_PIPE, KC_BSLS, KC_LBRC,
|
||||
KC_RBRC, KC_LCBR, KC_RCBR, _______
|
||||
},
|
||||
{
|
||||
_______, _______, _______, _______,
|
||||
_______, _______, _______, MOUSE,
|
||||
_______, _______, _______, _______
|
||||
}
|
||||
},
|
||||
|
||||
/* MOVE
|
||||
* ,-----------------------------------------------------------------------.
|
||||
* | | | | | | |CtrUp|Home | Up | End |Caps | Esc |
|
||||
* |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----|
|
||||
* | | | | | | |SpaL |Left |Down |Right|SpaR | Del |
|
||||
* |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----|
|
||||
* | | | | | | |CtrDn|PgDn |PgUp |TabL |TabR | |
|
||||
* |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----|
|
||||
* | | | | |Mouse| | | | | | | |
|
||||
* `-----------------------------------------------------------------------'
|
||||
*/
|
||||
[_MOVE] = {
|
||||
{
|
||||
AC(KC_A), AC(KC_B), AC(KC_C), AC(KC_D),
|
||||
AC(KC_E), AC(KC_F), C(KC_UP), KC_HOME,
|
||||
KC_UP, KC_END, KC_CAPS, KC_ESC
|
||||
},
|
||||
{
|
||||
AC(KC_G), AC(KC_H), AC(KC_I), AC(KC_J),
|
||||
AC(KC_K), AC(KC_L), C(KC_LEFT), KC_LEFT,
|
||||
KC_DOWN, KC_RGHT, C(KC_RIGHT), KC_DEL
|
||||
},
|
||||
{
|
||||
_______, AC(KC_M), AC(KC_N), AC(KC_O),
|
||||
AC(KC_P), AC(KC_Q), C(KC_DOWN), KC_PGDN,
|
||||
KC_PGUP, SC(KC_TAB), C(KC_TAB), _______
|
||||
},
|
||||
{
|
||||
_______, _______, _______, _______,
|
||||
MOUSE, _______, _______, _______,
|
||||
_______, _______, _______, _______
|
||||
}
|
||||
},
|
||||
|
||||
/* FUNC
|
||||
* ,-----------------------------------------------------------------------.
|
||||
* |Reset| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 |VolUp|
|
||||
* |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----|
|
||||
* |Power| F11 | F12 | F13 | F14 | F15 | F16 | F17 | F18 | F19 | F20 |VolDn|
|
||||
* |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----|
|
||||
* | | |Home |TabL |TabR |End | | | |Clmak|Qwrty| |
|
||||
* |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----|
|
||||
* | | | | |Prev |Mute |Play |Next | | | | |
|
||||
* `-----------------------------------------------------------------------'
|
||||
*/
|
||||
[_FUNC] = {
|
||||
{
|
||||
RESET, KC_F1, KC_F2, KC_F3,
|
||||
KC_F4, KC_F5, KC_F6, KC_F7,
|
||||
KC_F8, KC_F9, KC_F10, KC_VOLU
|
||||
},
|
||||
{
|
||||
KC_POWER, KC_F11, KC_F12, KC_F13,
|
||||
KC_F14, KC_F15, KC_F16, KC_F17,
|
||||
KC_F18, KC_F19, KC_F20, KC_VOLD
|
||||
},
|
||||
{
|
||||
_______, XXXXXXX, KC_HOME, SC(KC_TAB),
|
||||
C(KC_TAB), KC_END, XXXXXXX, XXXXXXX,
|
||||
XXXXXXX, COLEMAK, QWERTY, _______
|
||||
},
|
||||
{
|
||||
_______, _______, _______, _______,
|
||||
KC_MPRV, KC_MUTE, KC_MPLY, KC_MNXT,
|
||||
_______, _______, _______, _______
|
||||
}
|
||||
},
|
||||
|
||||
/* MOUSE
|
||||
* ,-----------------------------------------------------------------------.
|
||||
* | | | | | | | | ScL |Up | ScR | | |
|
||||
* |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----|
|
||||
* | | B4 | B3 | B2 | B1 | | |Left |Down |Right| | |
|
||||
* |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----|
|
||||
* | | | Ac0 | Ac1 | Ac2 | | | ScD | ScU | | | |
|
||||
* |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----|
|
||||
* | | | | | | | | | | | | |
|
||||
* `-----------------------------------------------------------------------'
|
||||
*/
|
||||
[_MOUSE] = {
|
||||
{
|
||||
_______, _______, C(KC_LEFT), C(KC_UP),
|
||||
C(KC_RIGHT), _______, _______, KC_WH_L,
|
||||
KC_MS_U, KC_WH_R, _______, _______
|
||||
},
|
||||
{
|
||||
_______, KC_BTN4, KC_BTN3, KC_BTN2,
|
||||
KC_BTN1, _______, _______, KC_MS_L,
|
||||
KC_MS_D, KC_MS_R, _______, _______
|
||||
},
|
||||
{
|
||||
_______, _______, KC_ACL0, KC_ACL1,
|
||||
KC_ACL2, _______, _______, KC_WH_D,
|
||||
KC_WH_U, _______, _______, _______
|
||||
},
|
||||
{
|
||||
_______, _______, _______, _______,
|
||||
_______, _______, _______, _______,
|
||||
_______, _______, _______, _______
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
#ifdef AUDIO_ENABLE
|
||||
float colemak_song[][2] = SONG(COLEMAK_SOUND);
|
||||
float qwerty_song[][2] = SONG(QWERTY_SOUND);
|
||||
#endif
|
||||
|
||||
void set_colemak(void) {
|
||||
#ifdef AUDIO_ENABLE
|
||||
stop_all_notes();
|
||||
PLAY_SONG(colemak_song);
|
||||
#endif
|
||||
set_single_persistent_default_layer(_COLEMAK);
|
||||
}
|
||||
|
||||
void set_qwerty(void) {
|
||||
#ifdef AUDIO_ENABLE
|
||||
stop_all_notes();
|
||||
PLAY_SONG(qwerty_song);
|
||||
#endif
|
||||
set_single_persistent_default_layer(_QWERTY);
|
||||
}
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
case COLEMAK:
|
||||
if (record->event.pressed) {
|
||||
set_colemak();
|
||||
}
|
||||
return false;
|
||||
case QWERTY:
|
||||
if (record->event.pressed) {
|
||||
set_qwerty();
|
||||
}
|
||||
return false;
|
||||
case SYMB:
|
||||
if (record->event.pressed) {
|
||||
layer_on(_SYMB);
|
||||
} else {
|
||||
layer_off(_SYMB);
|
||||
}
|
||||
return false;
|
||||
case MOVE:
|
||||
if (record->event.pressed) {
|
||||
layer_on(_MOVE);
|
||||
} else {
|
||||
layer_off(_MOVE);
|
||||
}
|
||||
return false;
|
||||
case FUNC:
|
||||
if (record->event.pressed) {
|
||||
layer_on(_FUNC);
|
||||
} else {
|
||||
layer_off(_FUNC);
|
||||
}
|
||||
return false;
|
||||
case MOUSE:
|
||||
if (record->event.pressed) {
|
||||
layer_on(_MOUSE);
|
||||
} else {
|
||||
layer_off(_MOUSE);
|
||||
}
|
||||
return false;
|
||||
|
||||
// Override the defualt auto shifted symbols to use SEND_STRING
|
||||
// See https://github.com/qmk/qmk_firmware/issues/4072
|
||||
case KC_EXLM:
|
||||
if (record->event.pressed) { SEND_STRING("!"); }
|
||||
return false;
|
||||
case KC_AT:
|
||||
if (record->event.pressed) { SEND_STRING("@"); }
|
||||
return false;
|
||||
case KC_HASH:
|
||||
if (record->event.pressed) { SEND_STRING("#"); }
|
||||
return false;
|
||||
case KC_DLR:
|
||||
if (record->event.pressed) { SEND_STRING("$"); }
|
||||
return false;
|
||||
case KC_PERC:
|
||||
if (record->event.pressed) { SEND_STRING("%"); }
|
||||
return false;
|
||||
case KC_CIRC:
|
||||
if (record->event.pressed) { SEND_STRING("^"); }
|
||||
return false;
|
||||
case KC_AMPR:
|
||||
if (record->event.pressed) { SEND_STRING("&"); }
|
||||
return false;
|
||||
case KC_ASTR:
|
||||
if (record->event.pressed) { SEND_STRING("*"); }
|
||||
return false;
|
||||
case KC_LPRN:
|
||||
if (record->event.pressed) { SEND_STRING("("); }
|
||||
return false;
|
||||
case KC_RPRN:
|
||||
if (record->event.pressed) { SEND_STRING(")"); }
|
||||
return false;
|
||||
case KC_TILD:
|
||||
if (record->event.pressed) { SEND_STRING("~"); }
|
||||
return false;
|
||||
case KC_GRV:
|
||||
if (record->event.pressed) { SEND_STRING("`"); }
|
||||
return false;
|
||||
case KC_PLUS:
|
||||
if (record->event.pressed) { SEND_STRING("+"); }
|
||||
return false;
|
||||
case KC_EQL:
|
||||
if (record->event.pressed) { SEND_STRING("="); }
|
||||
return false;
|
||||
case KC_PIPE:
|
||||
if (record->event.pressed) { SEND_STRING("|"); }
|
||||
return false;
|
||||
case KC_BSLS:
|
||||
if (record->event.pressed) { SEND_STRING("\\"); }
|
||||
return false;
|
||||
case KC_LBRC:
|
||||
if (record->event.pressed) { SEND_STRING("["); }
|
||||
return false;
|
||||
case KC_RBRC:
|
||||
if (record->event.pressed) { SEND_STRING("]"); }
|
||||
return false;
|
||||
case KC_LCBR:
|
||||
if (record->event.pressed) { SEND_STRING("{"); }
|
||||
return false;
|
||||
case KC_RCBR:
|
||||
if (record->event.pressed) { SEND_STRING("}"); }
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
# callum’s planck layout
|
||||
|
||||
This is a layout for the grid planck, built with a few ideals in mind:
|
||||
|
||||
- Consistent and minimal response times should be maintained. Keys that react
|
||||
differently depending on whether they are tapped or held, keys that react
|
||||
differently if they are double tapped, etc. should be avoided -- they
|
||||
inevitably send their keycode later than a normal key -- interrupting the
|
||||
immediate feedback from the screen. Therefore we restrict ourselves to
|
||||
chording as our only means of getting more than one symbol out of a single
|
||||
physical key.
|
||||
|
||||
- The hands should never need to leave the home position. The usual culprit for
|
||||
this is the arrow cluster, so the arrow cluster should be as close to home as
|
||||
possible.
|
||||
|
||||
- There should be two of every modifier (one on each side), otherwise certain
|
||||
long key combinations become hard to make.
|
||||
|
||||
A layout graphic can be found [here][keyboard-layout-editor] (excludes window
|
||||
management keys).
|
||||
|
||||
[keyboard-layout-editor]: http://www.keyboard-layout-editor.com/#/gists/ade5ec1f814bf83046489a4b632575ff
|
||||
@@ -1,20 +0,0 @@
|
||||
# Build Options
|
||||
# change to "no" to disable the options, or define them in the Makefile in
|
||||
# the appropriate keymap folder that will get included automatically
|
||||
#
|
||||
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
|
||||
MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
|
||||
CONSOLE_ENABLE = no # Console for debug(+400)
|
||||
COMMAND_ENABLE = yes # Commands for debug and configuration
|
||||
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||
MIDI_ENABLE = no # MIDI controls
|
||||
AUDIO_ENABLE = yes # Audio output on port C6
|
||||
UNICODE_ENABLE = no # Unicode
|
||||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
|
||||
|
||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||
|
||||
@@ -1,47 +0,0 @@
|
||||
/* Copyright 2017 Christopher Browne
|
||||
*
|
||||
* 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
|
||||
|
||||
#ifndef NO_DEBUG
|
||||
#define NO_DEBUG
|
||||
#endif
|
||||
#ifndef NO_PRINT
|
||||
#define NO_PRINT
|
||||
#endif
|
||||
|
||||
#include "../../config.h"
|
||||
|
||||
#define LEADER_TIMEOUT 300
|
||||
|
||||
#ifndef LIGHT_CONFIG_H
|
||||
#define BACKLIGHT_BREATHING
|
||||
#endif
|
||||
|
||||
/* cbbrowne user configuration */
|
||||
|
||||
#define randadd 53
|
||||
#define randmul 181
|
||||
#define randmod 167
|
||||
|
||||
/* Filler to make layering a bit clearer *
|
||||
* borrowed from basic keymap */
|
||||
|
||||
#define _____ KC_NO
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,365 +0,0 @@
|
||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
|
||||
#include "planck.h"
|
||||
#ifdef BACKLIGHT_ENABLE
|
||||
#include "backlight.h"
|
||||
#endif
|
||||
#include "config.h"
|
||||
#include "quantum.h"
|
||||
#include "version.h"
|
||||
|
||||
/* Each layer is given a name to aid in readability, which is then
|
||||
used in the keymap matrix below. The underscores do not denote
|
||||
anything - you can have a layer called STUFF or any other name.
|
||||
|
||||
Layer names don't all need to be of the same length, obviously, and
|
||||
you could also skip them entirely and just use numbers, though that
|
||||
means needing to manage the numbers.
|
||||
|
||||
It is preferable to keep the symbols short so that a line worth of
|
||||
key mappings fits compactly onto a line of code. */
|
||||
|
||||
/* This was originally based on planck/keymaps/default/default.c, and
|
||||
then cbbrowne has revised things */
|
||||
|
||||
/* Things I did not like about the default mapping
|
||||
|
||||
- I found control too hard to get to. I use it more than Tab, so
|
||||
switched it there.
|
||||
- Having dash on [lower-j] is a bit nonintuitive, but may be OK
|
||||
- I'll bet I should switch ESC/TAB
|
||||
- I'm suspicious that I want to shift M(0) from [4][1] to [4][2],
|
||||
and shift ESC off the first column so KC_LCTL and KC_LALT can
|
||||
be on the first column.
|
||||
- I needed to swap ' and ENTER
|
||||
|
||||
- All of the above are done :-)
|
||||
|
||||
- Dropped out support for Dvorak and friends. They aren't
|
||||
improvements to me
|
||||
*/
|
||||
|
||||
|
||||
/* Some interesting things implemented
|
||||
|
||||
- There is a macro that writes out "cbbrowne" just to show that I
|
||||
could
|
||||
- There is a (somewhat cruddy) linear congruential random number
|
||||
generator.
|
||||
- I seed it somewhat with clock info to make it look more random
|
||||
- There are two macros that use the random number generators
|
||||
- one, M_RANDDIGIT, generates a random digit based on state
|
||||
of the random number generator
|
||||
- the other, M_RANDLETTER, generates a random letter based on state
|
||||
of the random number generator
|
||||
- in both, note the use of register_code()/unregister_code()
|
||||
to indicate the desired key
|
||||
- I do indeed want a sweet number pad!
|
||||
*/
|
||||
|
||||
/* Other things to do...
|
||||
|
||||
- Need to think about what zsh and readline actions I use lots
|
||||
- Ought to ensure that Control-Alt-Delete is convenient enough
|
||||
- How about Alt-F1 thru Alt-F8? Not yet...
|
||||
- What's the keystroke to get from X to console these days?
|
||||
- A layer for doing console switching would not be a bad idea
|
||||
|
||||
- I'm messing with jeremy-dev's keymap that shifts everything
|
||||
outwards. Gotta figure out how to make it sensible...
|
||||
*/
|
||||
|
||||
enum layers {
|
||||
_QWERTY = 0, /* Qwerty mapping */
|
||||
_LOWER, /* Lower layer, where top line has symbols !@#$%^&*() */
|
||||
_RAISE, /* Raised layer, where top line has digits 1234567890 */
|
||||
_KEYPAD, /* Key pad */
|
||||
_ADJUST, /* Special Adjust layer coming via tri-placement */
|
||||
|
||||
};
|
||||
|
||||
enum my_keycodes {
|
||||
MY_ABVE = SAFE_RANGE,
|
||||
MY_BELW,
|
||||
MY_TERM,
|
||||
MY_DEQL, // /=
|
||||
MY_MEQL, // *=
|
||||
MY_SEQL, // -=
|
||||
MY_PEQL, // +=
|
||||
MY_NEQL, // !=
|
||||
MY_LTGT, // <>
|
||||
MY_DPIP, // ||
|
||||
MY_DAMP, // &&
|
||||
};
|
||||
|
||||
enum macro_id {
|
||||
M_LED = 0,
|
||||
M_USERNAME,
|
||||
M_RANDDIGIT,
|
||||
M_RANDLETTER,
|
||||
M_VERSION,
|
||||
MACRO_UPPER,
|
||||
MACRO_LOWER,
|
||||
};
|
||||
|
||||
#define M_LOWER M(MACRO_LOWER)
|
||||
#define M_UPPER M(MACRO_UPPER)
|
||||
#define ROT_LED M(M_LED) /* Rotate LED */
|
||||
#define QWERTY DF(_QWERTY) /* Switch to QWERTY layout */
|
||||
#define KEYPAD DF(_KEYPAD) /* Switch to keypad */
|
||||
#define USERNAME M(M_USERNAME) /* shortcut for username */
|
||||
#define RANDDIG M(M_RANDDIGIT)
|
||||
#define RANDALP M(M_RANDLETTER)
|
||||
#define CTLENTER MT(MOD_RCTL, KC_ENT)
|
||||
#define SHIFTQUOTE MT(MOD_RSFT, KC_QUOT)
|
||||
#define ALTRIGHT MT(MOD_LALT, KC_RGHT)
|
||||
#define MVERSION M(M_VERSION)
|
||||
#define ALTSLASH LALT(KC_SLSH)
|
||||
|
||||
|
||||
/* Note that Planck has dimensions 4 rows x 12 columns */
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_QWERTY] = { /* Qwerty */
|
||||
{KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC},
|
||||
{KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, CTLENTER},
|
||||
{KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SHIFTQUOTE },
|
||||
{KC_TAB, KC_LALT, ROT_LED, KC_LGUI, M_LOWER, KC_SPC, KC_SPC, M_UPPER, KC_LEFT, KC_DOWN, KC_UP, ALTRIGHT}
|
||||
/* Note that KC_SPC is recorded TWICE, so that either matrix position can activate it */
|
||||
},
|
||||
[_RAISE] = { /* RAISE */
|
||||
{KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
|
||||
{_______, KC_4, KC_5, KC_6, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS},
|
||||
{_______, KC_7, KC_8, KC_9, _______, _______, _______, QWERTY, KEYPAD, KEYPAD, ALTSLASH,_______},
|
||||
{_______, KC_0, _______, _______, _______, _______, _______, _______, KC_PGDN, KC_HOME, KC_END, KC_PGUP}
|
||||
},
|
||||
[_LOWER] = { /* LOWER */
|
||||
{KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC},
|
||||
{_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE},
|
||||
{_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, QWERTY, KEYPAD, KEYPAD, ALTSLASH, _______},
|
||||
{_______, KEYPAD, _______, _______, _______, _______, _______, _______, KC_PGDN, KC_HOME, KC_END, KC_PGUP}
|
||||
},
|
||||
[_KEYPAD] = { /* Key Pad */
|
||||
{KC_ESC, USERNAME, MVERSION, KC_F10, KC_F11, KC_F12, KC_PGUP, KC_KP_ENTER, KC_7, KC_8, KC_9, KC_BSPC},
|
||||
{KC_LCTL, RANDDIG, KC_F5, KC_F6, KC_F7, KC_F8, KC_PGDN, KC_KP_MINUS, KC_4, KC_5, KC_6, KC_PIPE},
|
||||
{KC_LSFT, RANDALP, KC_F1, KC_F2, KC_F3, KC_F4, KC_DEL, KC_KP_PLUS, KC_1, KC_2, KC_3, KC_ENTER},
|
||||
{KC_TAB, KC_LALT, ROT_LED, KC_LGUI, M_LOWER, KC_SPC, KC_SPC, QWERTY, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT}
|
||||
},
|
||||
|
||||
[_ADJUST] = { /* Adjustments - gonna shift the wild tools in here */
|
||||
{ROT_LED,USERNAME,MVERSION, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
|
||||
{_______, RANDDIG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
|
||||
{_______, RANDALP, _______, _______, _______, RESET, RESET, _______, _______, _______, _______, _______ },
|
||||
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }
|
||||
}
|
||||
};
|
||||
|
||||
/* This bit of logic seeds a wee linear congruential random number generator */
|
||||
/* lots of prime numbers everywhere... */
|
||||
static uint16_t random_value = 157;
|
||||
|
||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
|
||||
{
|
||||
uint8_t clockbyte=0;
|
||||
clockbyte = TCNT1 % 256;
|
||||
uint8_t rval;
|
||||
// MACRODOWN only works in this function
|
||||
switch(id) {
|
||||
case M_LED:
|
||||
if (record->event.pressed) {
|
||||
register_code(KC_RSFT);
|
||||
#ifdef BACKLIGHT_ENABLE
|
||||
backlight_step();
|
||||
#endif
|
||||
} else {
|
||||
unregister_code(KC_RSFT);
|
||||
}
|
||||
break;
|
||||
case M_USERNAME:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING("cbbrowne");
|
||||
}
|
||||
break;
|
||||
case M_VERSION:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING(QMK_KEYBOARD "/" QMK_KEYMAP "@" QMK_VERSION "@" QMK_BUILDDATE);
|
||||
}
|
||||
break;
|
||||
case M_RANDDIGIT:
|
||||
/* Generate, based on random number generator, a keystroke for
|
||||
a numeric digit chosen at random */
|
||||
random_value = ((random_value + randadd) * randmul) % randmod;
|
||||
if (record->event.pressed) {
|
||||
/* Here, we mix the LCRNG with low bits from one of the system
|
||||
clocks via XOR in the theory that this may be more random
|
||||
than either separately */
|
||||
rval = (random_value ^ clockbyte) % 10;
|
||||
/* Note that KC_1 thru KC_0 are a contiguous range */
|
||||
register_code (KC_1 + rval);
|
||||
unregister_code (KC_1 + rval);
|
||||
}
|
||||
break;
|
||||
case M_RANDLETTER:
|
||||
/* Generate, based on random number generator, a keystroke for
|
||||
a letter chosen at random */
|
||||
/* Here, we mix the LCRNG with low bits from one of the system
|
||||
clocks via XOR in the theory that this may be more random
|
||||
than either separately */
|
||||
random_value = ((random_value + randadd) * randmul) % randmod;
|
||||
if (record->event.pressed) {
|
||||
rval = (random_value ^ clockbyte) % 26;
|
||||
register_code (KC_A + rval);
|
||||
unregister_code (KC_A + rval);
|
||||
}
|
||||
break;
|
||||
case MACRO_UPPER:
|
||||
if (record->event.pressed)
|
||||
{
|
||||
layer_on(_RAISE);
|
||||
#ifdef BACKLIGHT_BREATHING
|
||||
breathing_period_set(2);
|
||||
breathing_pulse();
|
||||
#endif
|
||||
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
||||
}
|
||||
else
|
||||
{
|
||||
layer_off(_RAISE);
|
||||
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
||||
}
|
||||
break;
|
||||
case MACRO_LOWER:
|
||||
if (record->event.pressed)
|
||||
{
|
||||
layer_on(_LOWER);
|
||||
#ifdef BACKLIGHT_BREATHING
|
||||
breathing_period_set(2);
|
||||
breathing_pulse();
|
||||
#endif
|
||||
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
||||
}
|
||||
else
|
||||
{
|
||||
layer_off(_LOWER);
|
||||
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
||||
}
|
||||
break;
|
||||
|
||||
}
|
||||
return MACRO_NONE;
|
||||
};
|
||||
|
||||
void press_key(uint16_t key) {
|
||||
register_code(key);
|
||||
unregister_code(key);
|
||||
}
|
||||
|
||||
void press_two_keys(uint16_t key1, uint16_t key2) {
|
||||
register_code(key1);
|
||||
register_code(key2);
|
||||
unregister_code(key2);
|
||||
unregister_code(key1);
|
||||
}
|
||||
|
||||
void press_three_keys(uint16_t key1, uint16_t key2, uint16_t key3) {
|
||||
register_code(key1);
|
||||
register_code(key2);
|
||||
register_code(key3);
|
||||
unregister_code(key3);
|
||||
unregister_code(key2);
|
||||
unregister_code(key1);
|
||||
}
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
case MY_BELW:
|
||||
if (record->event.pressed) {
|
||||
press_two_keys(KC_LGUI, KC_RGHT);
|
||||
press_key(KC_ENT);
|
||||
}
|
||||
|
||||
return false;
|
||||
|
||||
case MY_ABVE:
|
||||
if (record->event.pressed) {
|
||||
press_two_keys(KC_LGUI, KC_LEFT);
|
||||
press_key(KC_ENT);
|
||||
press_key(KC_UP);
|
||||
}
|
||||
|
||||
return false;
|
||||
|
||||
case MY_TERM:
|
||||
if (record->event.pressed) {
|
||||
press_three_keys(KC_LGUI, KC_LSFT, KC_ENT);
|
||||
}
|
||||
|
||||
return false;
|
||||
|
||||
case MY_DEQL: // /=
|
||||
if (record->event.pressed) {
|
||||
press_key(KC_SLSH);
|
||||
press_key(KC_EQL);
|
||||
}
|
||||
|
||||
return false;
|
||||
|
||||
case MY_MEQL: // *=
|
||||
if (record->event.pressed) {
|
||||
press_two_keys(KC_LSFT, KC_ASTR);
|
||||
press_key(KC_EQL);
|
||||
}
|
||||
|
||||
return false;
|
||||
|
||||
case MY_SEQL: // -=
|
||||
if (record->event.pressed) {
|
||||
press_key(KC_MINS);
|
||||
press_key(KC_EQL);
|
||||
}
|
||||
|
||||
return false;
|
||||
|
||||
case MY_PEQL: // +=
|
||||
if (record->event.pressed) {
|
||||
press_two_keys(KC_LSFT, KC_PLUS);
|
||||
press_key(KC_EQL);
|
||||
}
|
||||
|
||||
return false;
|
||||
|
||||
case MY_NEQL: // !=
|
||||
if (record->event.pressed) {
|
||||
press_two_keys(KC_LSFT, KC_EXLM);
|
||||
press_key(KC_EQL);
|
||||
}
|
||||
|
||||
return false;
|
||||
|
||||
case MY_LTGT: // <>
|
||||
if (record->event.pressed) {
|
||||
press_two_keys(KC_LSFT, KC_LABK);
|
||||
press_two_keys(KC_LSFT, KC_RABK);
|
||||
}
|
||||
|
||||
return false;
|
||||
|
||||
case MY_DPIP: // ||
|
||||
if (record->event.pressed) {
|
||||
press_two_keys(KC_LSFT, KC_PIPE);
|
||||
press_two_keys(KC_LSFT, KC_PIPE);
|
||||
}
|
||||
|
||||
return false;
|
||||
|
||||
case MY_DAMP: // &&
|
||||
if (record->event.pressed) {
|
||||
press_two_keys(KC_LSFT, KC_AMPR);
|
||||
press_two_keys(KC_LSFT, KC_AMPR);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -1,117 +0,0 @@
|
||||
* cbbrowne custom keyboard
|
||||
|
||||
Due to cbbrowne@acm.org
|
||||
Christopher Browne
|
||||
|
||||
This was originally based on the default keyboard map, but I have
|
||||
been doing sundry experimentation:
|
||||
|
||||
** Useful Experiments
|
||||
|
||||
- It made sense to mess around some with keyboard maps.
|
||||
- I added a keypad, originally based on keymaps/numpad.c, but
|
||||
mighty substantially revised, as that one seems to be rotated 90
|
||||
degrees from usual conventions for number pads
|
||||
- The keypad layer also includes some sample "hacks" of cool things,
|
||||
all using actions attached in using the function action_get_macro()
|
||||
- Key [1][2] aka "q" types out my name, cbbrowne, as a fun example
|
||||
of a key generating a bunch of keystrokes. The keystroke is
|
||||
sufficiently inconvenient that it isn't terribly practical for me
|
||||
to use it, but hey, it shows how others might use this facility
|
||||
in a more useful context.
|
||||
- Key [2][2] aka "a" uses a random number generator to select a digit 0-9 at random
|
||||
- Key [3][2] aka "z" uses a random number generator to select a letter a-z at random
|
||||
- Key [1][3] aka "e" spits out the keymap version number
|
||||
- Trying out sgoodwin's "hold Enter down to get Shift"
|
||||
- Liking this Quite Well Enough...
|
||||
- Applied this to both Shift and Quote
|
||||
- It seems likely that Alt should get a right-hand-side, akin to this...
|
||||
- Alt needs to move, and get a RHS
|
||||
- Hence ALTRIGHT, and shifted ROT_LED over
|
||||
- Emacs likes this!!! :-)
|
||||
- I'm suspicious that I'll want to shift ROT_LED another location over,
|
||||
so some modifier can replace the OS/KC_LGUI key
|
||||
- I have added an alternate ADJUST layer that is activated via update_tri_layer()
|
||||
- e.g. - LOWER+RAISE simultaneously
|
||||
- This seems entirely more useful for handling my "special keys"
|
||||
like the random numbers, user name, and such, than the keypad layer
|
||||
- The _ADJUST layer provides a good place to have RESET
|
||||
- But this isn't strictly enough; I want RESET somewhat accessible from
|
||||
main layer lest an error hide that layer
|
||||
- I never use the OS/KC_LGUI key (that's Command on MacOS, Windows
|
||||
Key on Windows), so that's a good place to have it as a chord of
|
||||
some sort
|
||||
|
||||
|
||||
** Some code structure ideas
|
||||
|
||||
Each layer is given a name to aid in readability, which is then
|
||||
used in the keymap matrix below. The underscores do not denote
|
||||
anything - you can have a layer called STUFF or any other name.
|
||||
|
||||
Layer names don't all need to be of the same length, obviously, and
|
||||
you could also skip them entirely and just use numbers, though that
|
||||
means needing to manage the numbers.
|
||||
|
||||
It is preferable to keep the symbols short so that a line worth of
|
||||
key mappings fits compactly onto a line of code. It might be an
|
||||
interesting idea to express the maps rotated 90%, so that you
|
||||
only need to fit 4 symbols onto each line, rather than 12.
|
||||
|
||||
I use enums to manage layer IDs and macro IDs so that I don't need
|
||||
to care (beyond "start at 0", and arguably even that's not needed)
|
||||
about their values.
|
||||
|
||||
** Things I did not like about the default mapping
|
||||
|
||||
|
||||
- I found control too hard to get to. I use it more than Tab, so
|
||||
switched it there.
|
||||
- Having dash on [lower-j] is a bit nonintuitive, but may be OK
|
||||
- I switched ESC/TAB/M(0) around
|
||||
- I'm suspicious that I want to shift M(0) from [4][1] to [4][2],
|
||||
and shift ESC off the first column so KC_LCTL and KC_LALT can
|
||||
be on the first column.
|
||||
- I needed to swap ' and ENTER
|
||||
|
||||
** Unuseful experiments
|
||||
|
||||
I have tried some things out that didn't turn out particularly well.
|
||||
I'll note some of these for posterity, hopefully helpful in not doing
|
||||
unwise things again...
|
||||
|
||||
- I tried added Workman alongside Dvorak and Colemak
|
||||
- Boy, oh boy, these don't help!!!
|
||||
- I have done 30 years of learning of Emacs key mappings, and
|
||||
these alternative keyboards massively mess me up
|
||||
|
||||
- Space Cadet Shift; switching L_SHIFT to KC_LSP0, so that when I
|
||||
just hit SHIFT, I get a left parens. In principle, this is great
|
||||
for Lisping.
|
||||
- Unfortunately, there are times when mouse interfaces use SHIFT
|
||||
to allow selecting multiple items, and this really interferes
|
||||
with that
|
||||
|
||||
** TODO
|
||||
|
||||
- I use tmux quite a lot; the mollat keymap seems to have some
|
||||
interesting helpers. It might be interesting to add a "tmux
|
||||
layer," or to have a few keys in a layer oriented towards that
|
||||
- Keys for...
|
||||
- Picking windows 0 thru 8
|
||||
- next/prev/new window
|
||||
- The mollat tmux layer also suggests some thoughts about Emacs
|
||||
helpers.
|
||||
- I do not presently have anything that handles X11 screen
|
||||
switching, as with Control-Alt-various
|
||||
- I ought to probably look into KC_LEAD, to have some key combos
|
||||
that do not need to be concurrent
|
||||
- The jeebak keymap seems to have some neat ideas:
|
||||
- Number layer which is aggressive about having numbers in several places
|
||||
- TouchCursor layer seems interesting
|
||||
- It sets up a layer with cursor keys on the home keys
|
||||
- The jeremy-dev keymap has some very interesting concepts
|
||||
- Shift hands outwards; the special keys go in the center
|
||||
- Symbol layer has some compound keys for C operators like /=, *=, -=, +=, ...
|
||||
- This is likely what I'll use for my XD75re, and maybe I'll fork a
|
||||
planck keymap for similar
|
||||
@@ -1,21 +0,0 @@
|
||||
# Build Options
|
||||
# change to "no" to disable the options, or define them in the Makefile in
|
||||
# the appropriate keymap folder that will get included automatically
|
||||
#
|
||||
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
|
||||
MOUSEKEY_ENABLE = no # Mouse keys(+4700)
|
||||
EXTRAKEY_ENABLE = no # Audio control and System control(+450)
|
||||
CONSOLE_ENABLE = no # Console for debug(+400)
|
||||
COMMAND_ENABLE = yes # Commands for debug and configuration
|
||||
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
|
||||
MIDI_ENABLE = no # MIDI controls
|
||||
AUDIO_ENABLE = no # Audio output on port C6
|
||||
UNICODE_ENABLE = no # Unicode
|
||||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
|
||||
API_SYSEX_ENABLE = no # Enable SYSEX API (+5390)
|
||||
|
||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||
|
||||
@@ -1,16 +0,0 @@
|
||||
#ifndef CONFIG_USER_H
|
||||
#define CONFIG_USER_H
|
||||
|
||||
#include "../../config.h"
|
||||
|
||||
#define TAPPING_TERM 165
|
||||
|
||||
/* ws2812 RGB LED */
|
||||
#define RGB_DI_PIN D3
|
||||
#define RGBLIGHT_ANIMATIONS
|
||||
#define RGBLED_NUM 10 // Number of LEDs
|
||||
#define RGBLIGHT_HUE_STEP 10
|
||||
#define RGBLIGHT_SAT_STEP 17
|
||||
#define RGBLIGHT_VAL_STEP 17
|
||||
//#define BACKLIGHT_ENABLE
|
||||
#endif
|
||||
@@ -1,381 +0,0 @@
|
||||
|
||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
|
||||
#include "planck.h"
|
||||
#include "action_layer.h"
|
||||
#ifdef AUDIO_ENABLE
|
||||
#include "audio.h"
|
||||
#endif
|
||||
#ifdef BACKLIGHT_ENABLE
|
||||
#include "backlight.h"
|
||||
#endif
|
||||
#include "eeconfig.h"
|
||||
|
||||
extern keymap_config_t keymap_config;
|
||||
|
||||
// Each layer gets a name for readability, which is then used in the keymap matrix below.
|
||||
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
|
||||
// Layer names don't all need to be of the same length, obviously, and you can also skip them
|
||||
// entirely and just use numbers.
|
||||
#define _QWERTY 0
|
||||
#define _COLEMAK 1
|
||||
#define _DVORAK 2
|
||||
#define _LOWER 3
|
||||
#define _RAISE 4
|
||||
#define _PLOVER 5
|
||||
#define _NUMPAD 6
|
||||
#define _ADJUST 16
|
||||
|
||||
enum planck_keycodes {
|
||||
QWERTY = SAFE_RANGE,
|
||||
NUMPAD,
|
||||
EXT_NUM,
|
||||
COLEMAK,
|
||||
DVORAK,
|
||||
PLOVER,
|
||||
LOWER,
|
||||
RAISE,
|
||||
BACKLIT,
|
||||
EXT_PLV
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
/* Qwerty
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | Esc | A | S | D | F | G | H | J | K | L | ; | " |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | Shift| Z | X | C | V | B | N | M | , | . | / |En/sh |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Ctrl | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_QWERTY] = {
|
||||
{KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC},
|
||||
{KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},
|
||||
{KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, F(0) },
|
||||
{KC_LCTRL,KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
|
||||
},
|
||||
|
||||
/* Colemak
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | Esc | A | R | S | T | D | H | N | E | I | O | " |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | Shift| Z | X | C | V | B | K | M | , | . | / |Enter |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_COLEMAK] = {
|
||||
{KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC},
|
||||
{KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT},
|
||||
{KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT },
|
||||
{BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
|
||||
},
|
||||
|
||||
/* Dvorak
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | Esc | A | O | E | U | I | D | H | T | N | S | / |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_DVORAK] = {
|
||||
{KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC},
|
||||
{KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH},
|
||||
{KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT },
|
||||
{BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
|
||||
},
|
||||
|
||||
/* Lower
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | Shift | F7 | F8 | F9 | F10 | F11 | F12 | | | Home | End |Enter |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Brite| | | | | | | Play | Vol- | Vol+ | Next |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_LOWER] = {
|
||||
{KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC},
|
||||
{KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE},
|
||||
{_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______,KC_HOME, KC_END, _______},
|
||||
{BACKLIT, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_VOLD, KC_VOLU, KC_MNXT}
|
||||
},
|
||||
\
|
||||
/* Raise
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | Shift | F7 | F8 | F9 | F10 | F11 | F12 | | | PgUp | PgDn |Enter |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Brite| | | | | | | Play | Vol- | Vol+ | Next |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_RAISE] = {
|
||||
{KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
|
||||
{KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS},
|
||||
{_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_PGUP, KC_PGDN, _______},
|
||||
{BACKLIT, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_VOLD, KC_VOLU, KC_MNXT}
|
||||
},
|
||||
|
||||
/* Plover layer (http://opensteno.org)
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | # | # | # | # | # | # | # | # | # | # | # | # |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | | S | T | P | H | * | * | F | P | L | T | D |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* |TogOut| S | K | W | R | * | * | R | B | G | S | Z |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Exit | | | A | O | | E | U | | | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
|
||||
[_PLOVER] = {
|
||||
{KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 },
|
||||
{XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC},
|
||||
{XXXXXXX, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},
|
||||
{EXT_PLV, XXXXXXX, XXXXXXX, KC_C, KC_V, XXXXXXX, XXXXXXX, KC_N, KC_M, XXXXXXX, XXXXXXX, XXXXXXX}
|
||||
},
|
||||
|
||||
/* Numpad
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | Tab | | | ^ | / | 7 | 8 | 9 | - | = | | Bksp |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | Esc | | | % | * | 4 | 5 | 6 | + | ( | ) | |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | Shft | | | $ | Del | 1 | 2 | 3 |Enter | [ | ] |Enter |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Exit | Ctrl | Alt | Gui | | 0 | . | Left | Down | Up |Right |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_NUMPAD] = {
|
||||
{KC_TAB, XXXXXXX, XXXXXXX, KC_CIRC, KC_PSLS, KC_P7, KC_P8, KC_P9, KC_PMNS, KC_EQL, XXXXXXX, KC_BSPC},
|
||||
{KC_ESC, XXXXXXX, XXXXXXX, KC_PERC, KC_PAST, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_LPRN, KC_RPRN, XXXXXXX},
|
||||
{KC_LSFT, XXXXXXX, XXXXXXX, KC_DLR, KC_DEL, KC_P1, KC_P2, KC_P3, KC_PENT, KC_LBRC, KC_RBRC, KC_ENT },
|
||||
{EXT_NUM, KC_LCTL, KC_LALT, KC_LGUI, XXXXXXX, KC_P0, KC_P0, KC_PDOT, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
|
||||
},
|
||||
|
||||
/* Adjust (Lower + Raise)
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | | Reset| | | | | | | | | | Del |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | Login| | | | | | Num |Qwerty|Colemk|Dvorak|Plover| |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | Caps |RGBTOG|RGBMOD| Hue+ | Hue- | Sat+ | Sat- | Val+ | Val- | | | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | | | | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_ADJUST] = {
|
||||
{_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL },
|
||||
{ M(1) , _______, _______, _______, _______, _______, NUMPAD, QWERTY, COLEMAK, DVORAK, PLOVER, _______},
|
||||
{KC_CAPS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______},
|
||||
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
|
||||
}
|
||||
|
||||
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM fn_actions[] = {
|
||||
[0] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_ENT),
|
||||
};
|
||||
|
||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
|
||||
{
|
||||
// MACRODOWN only works in this function
|
||||
switch(id) {
|
||||
case 0:
|
||||
if (record->event.pressed) {
|
||||
register_code(KC_RSFT);
|
||||
register_code(KC_RCTL);
|
||||
register_code(KC_ESC);
|
||||
}
|
||||
else{
|
||||
clear_keyboard();
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (record->event.pressed) {
|
||||
register_code(KC_LCTL);
|
||||
register_code(KC_LALT);
|
||||
register_code(KC_DEL);
|
||||
}
|
||||
else{
|
||||
clear_keyboard();
|
||||
}
|
||||
break;
|
||||
}
|
||||
return MACRO_NONE;
|
||||
};
|
||||
|
||||
|
||||
#ifdef AUDIO_ENABLE
|
||||
|
||||
float tone_startup[][2] = SONG(STARTUP_SOUND);
|
||||
float tone_qwerty[][2] = SONG(QWERTY_SOUND);
|
||||
float tone_dvorak[][2] = SONG(DVORAK_SOUND);
|
||||
float tone_colemak[][2] = SONG(COLEMAK_SOUND);
|
||||
float tone_plover[][2] = SONG(PLOVER_SOUND);
|
||||
float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND);
|
||||
float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
|
||||
|
||||
float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
|
||||
#endif
|
||||
|
||||
|
||||
void persistant_default_layer_set(uint16_t default_layer) {
|
||||
eeconfig_update_default_layer(default_layer);
|
||||
default_layer_set(default_layer);
|
||||
}
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
case QWERTY:
|
||||
if (record->event.pressed) {
|
||||
#ifdef AUDIO_ENABLE
|
||||
PLAY_SONG(tone_qwerty);
|
||||
#endif
|
||||
persistant_default_layer_set(1UL<<_QWERTY);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case NUMPAD:
|
||||
if (record->event.pressed) {
|
||||
layer_off(_RAISE);
|
||||
layer_off(_LOWER);
|
||||
layer_off(_ADJUST);
|
||||
layer_on(_NUMPAD);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case EXT_NUM:
|
||||
if (record->event.pressed) {
|
||||
layer_off(_NUMPAD);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case COLEMAK:
|
||||
if (record->event.pressed) {
|
||||
#ifdef AUDIO_ENABLE
|
||||
PLAY_SONG(tone_colemak);
|
||||
#endif
|
||||
persistant_default_layer_set(1UL<<_COLEMAK);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case DVORAK:
|
||||
if (record->event.pressed) {
|
||||
#ifdef AUDIO_ENABLE
|
||||
PLAY_SONG(tone_dvorak);
|
||||
#endif
|
||||
persistant_default_layer_set(1UL<<_DVORAK);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case LOWER:
|
||||
if (record->event.pressed) {
|
||||
layer_on(_LOWER);
|
||||
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
||||
} else {
|
||||
layer_off(_LOWER);
|
||||
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case RAISE:
|
||||
if (record->event.pressed) {
|
||||
layer_on(_RAISE);
|
||||
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
||||
} else {
|
||||
layer_off(_RAISE);
|
||||
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case BACKLIT:
|
||||
if (record->event.pressed) {
|
||||
register_code(KC_RSFT);
|
||||
#ifdef BACKLIGHT_ENABLE
|
||||
backlight_step();
|
||||
#endif
|
||||
} else {
|
||||
unregister_code(KC_RSFT);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case PLOVER:
|
||||
if (record->event.pressed) {
|
||||
#ifdef AUDIO_ENABLE
|
||||
stop_all_notes();
|
||||
PLAY_SONG(tone_plover);
|
||||
#endif
|
||||
layer_off(_RAISE);
|
||||
layer_off(_LOWER);
|
||||
layer_off(_ADJUST);
|
||||
layer_on(_PLOVER);
|
||||
if (!eeconfig_is_enabled()) {
|
||||
eeconfig_init();
|
||||
}
|
||||
keymap_config.raw = eeconfig_read_keymap();
|
||||
keymap_config.nkro = 1;
|
||||
eeconfig_update_keymap(keymap_config.raw);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case EXT_PLV:
|
||||
if (record->event.pressed) {
|
||||
#ifdef AUDIO_ENABLE
|
||||
PLAY_SONG(tone_plover_gb);
|
||||
#endif
|
||||
layer_off(_PLOVER);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void matrix_init_user(void) {
|
||||
#ifdef AUDIO_ENABLE
|
||||
startup_user();
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef AUDIO_ENABLE
|
||||
|
||||
void startup_user()
|
||||
{
|
||||
_delay_ms(20); // gets rid of tick
|
||||
PLAY_SONG(tone_startup);
|
||||
}
|
||||
|
||||
void shutdown_user()
|
||||
{
|
||||
PLAY_SONG(tone_goodbye);
|
||||
_delay_ms(150);
|
||||
stop_all_notes();
|
||||
}
|
||||
|
||||
void music_on_user(void)
|
||||
{
|
||||
music_scale_user();
|
||||
}
|
||||
|
||||
void music_scale_user(void)
|
||||
{
|
||||
PLAY_SONG(music_scale);
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -1,3 +0,0 @@
|
||||
RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
|
||||
AUDIO_ENABLE = no
|
||||
|
||||
@@ -1,54 +0,0 @@
|
||||
#include "keymap.h"
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = { /* Native */
|
||||
{KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, FUNC(2)},
|
||||
{KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},
|
||||
{KC_TAB, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT},
|
||||
{KC_DEL, KC_LCTL, KC_NO, KC_LSFT, KC_LALT, KC_SPC, KC_NO, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
|
||||
},
|
||||
[1] = { /* QWERTY->PHOTOSHOP */
|
||||
{KC_DELETE, KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, FUNC(1)},
|
||||
{KC_O, KC_G, KC_S, KC_U, KC_T, FUNC(27), KC_F21, KC_F10, KC_F11, KC_F7, KC_F8, KC_F9},
|
||||
{KC_TAB, FUNC(4), FUNC(5), FUNC(6), KC_F1, FUNC(7), KC_F18, KC_F19, KC_F23, KC_F20, KC_F22, FUNC(9)},
|
||||
{KC_COMM, KC_DOT, KC_R, FUNC(11), FUNC(3), KC_SPC, FUNC(12), KC_F2, FUNC(8), KC_F3, KC_F14}
|
||||
},
|
||||
[2] = { /* 2: FUNC(3 PHOTOSHOP */
|
||||
{KC_ESC, FUNC(25), FUNC(26), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO},
|
||||
{KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, FUNC(19), FUNC(20), FUNC(21)},
|
||||
{KC_C, KC_NO, FUNC(22), FUNC(5), KC_NO, FUNC(23), KC_NO, KC_NO, KC_NO, KC_NO, FUNC(13), KC_NO},
|
||||
{FUNC(14), FUNC(15), FUNC(16), FUNC(17), FUNC(3), KC_SPC, FUNC(18), KC_NO, KC_NO, KC_F24, KC_NO}
|
||||
}
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM fn_actions[] = {
|
||||
[1] = ACTION_DEFAULT_LAYER_SET(0), // set Qwerty layout
|
||||
[2] = ACTION_DEFAULT_LAYER_SET(1), // set Photoshop presets
|
||||
[3] = ACTION_LAYER_MOMENTARY(2), // Photoshop function layer
|
||||
|
||||
[4] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL | MOD_LALT, KC_F9), // photo folder AHK
|
||||
[5] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL, KC_I), // select inverse
|
||||
[6] = ACTION_MODS_KEY(MOD_LSFT, KC_M), // marquee select
|
||||
[7] = ACTION_MODS_KEY(MOD_LALT, KC_BSPC), // fill
|
||||
[8] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL | MOD_LALT, KC_X), // warp
|
||||
[9] = ACTION_MODS_KEY(MOD_LCTL | MOD_LALT | MOD_LSFT, KC_F12), // merge all new layer
|
||||
[10] = ACTION_MODS_KEY(MOD_LCTL, KC_MINS), // zoom out
|
||||
[11] = ACTION_MODS_KEY(MOD_LCTL, KC_H), // RBG sliders
|
||||
[12] = ACTION_MODS_KEY(MOD_LCTL, KC_S), // save
|
||||
[13] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL, KC_F5), // layer mask from transparancy
|
||||
[14] = ACTION_MODS_KEY(MOD_LCTL, KC_F2), // stroke
|
||||
[15] = ACTION_MODS_KEY(MOD_LCTL | MOD_LSFT, KC_F2), // stroke layer
|
||||
[16] = ACTION_MODS_KEY(MOD_LCTL, KC_0), // zoom 0
|
||||
[17] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL, KC_H), // HSV sliders
|
||||
[18] = ACTION_MODS_KEY(MOD_LCTL | MOD_LSFT, KC_S), // save as
|
||||
[19] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL | MOD_LALT, KC_F7), // gaussian blur
|
||||
[20] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL | MOD_LALT, KC_F8), // motion blur
|
||||
[21] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL, KC_X), // liquify filter
|
||||
[22] = ACTION_MODS_KEY(MOD_LSFT, KC_MINS), // prev layer blending
|
||||
[23] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL, KC_BSPC), // KC_NOrmal layer blending
|
||||
[24] = ACTION_MODS_KEY(MOD_LSFT, KC_EQL), // next layer blending
|
||||
[25] = ACTION_MODS_KEY(MOD_LCTL, KC_Z), // step back
|
||||
[26] = ACTION_MODS_KEY(MOD_LCTL, KC_Y), // step forward
|
||||
[27] = ACTION_MODS_KEY(MOD_LCTL, KC_R), // rasterize
|
||||
|
||||
};
|
||||
@@ -1,22 +0,0 @@
|
||||
|
||||
|
||||
# Build Options
|
||||
# change to "no" to disable the options, or define them in the Makefile in
|
||||
# the appropriate keymap folder that will get included automatically
|
||||
#
|
||||
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
|
||||
MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
|
||||
CONSOLE_ENABLE = no # Console for debug(+400)
|
||||
COMMAND_ENABLE = yes # Commands for debug and configuration
|
||||
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
|
||||
MIDI_ENABLE = no # MIDI controls
|
||||
AUDIO_ENABLE = yes # Audio output on port C6
|
||||
UNICODE_ENABLE = no # Unicode
|
||||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
|
||||
|
||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||
|
||||
@@ -1,46 +0,0 @@
|
||||
##Design goals:
|
||||
1. Arrow keys always available.
|
||||
2. As close to a to my US layout 107-key QWERTY keyboard as I could manage, (i.e. as few arbitrary decisions as possible).
|
||||
3. Togglable DVORAK keyboard.
|
||||
4. most frequently used things in the easiest to reach places.
|
||||
5. Ability to game on it, just for fun.
|
||||
|
||||
My layout differs from most in the placement the ARROW keys, `ESC`, VOL keys, use of double-tap `CAPS`, and the GAME LOCK function.
|
||||
|
||||
I put the layer buttons in the usual spots. I originally wanted only function/symbols layer, but that proved detrimental. I use some timed press actions to save some space, but this has been accounted for, (see GAME LOCK below). I'm not fully satisfied with the current product (see NOTES below), so it may change in the future.
|
||||
|
||||
##Effective layers:
|
||||
* Default later is obviously your letters and modifiers.
|
||||
* Lower layer [NUMBER] is your numbers and punctuation.
|
||||
* Upper layer [ACTION] is your symbols and actions.
|
||||
* Function layer is the infrequently used function keys, layout toggle, game lock, and reset.
|
||||
|
||||
There is also a toggle for the DVORAK/QWERTY layers, but in normal typing this is not of concern.
|
||||
|
||||
###Special keys:
|
||||
* `RSHFT` and `ENTER` are combined. Tap once for `ENTER` and hold for `RSHFT`. `ENTER` will be registered on release if released within 200 ms, else `RSHFT` is registered starting at 201 ms until release.
|
||||
* If for some reason, this interferes with the normal usage of the `ENTER` key in any way, (some problem that may never happen), I have added a regular non-modified `ENTER` key on the same key in the [ACTION] layer.
|
||||
* `LSHFT` and `CAPS` are also combined. The key works like a normal `LSHFT` unless double-tapped, in which case it counts as `CAPS`. This functionality unfortunately delays all key presses by at most 200 ms, but I have added ways to disable this both temporarily or permanently, described below.
|
||||
* A failsafe `CAPS` key is on the same key in the [ACTION] layer.
|
||||
* There are `UNDO`, `CUT`, `COPY`, and `PASTE` keys. This was intended to be a universal way to use these commands since in macOS cut is `⌘ + C` but in Windows it is `⌃ + C`. Unfortunately these special keys only work in Windows. ¯\\\_(ツ)\_/¯
|
||||
|
||||
##Game lock:
|
||||
**TL;DR** the game lock toggle disables the double-tap `CAPS`, and disables `GUI` keys (WINDOWS key).
|
||||
|
||||
I wished for this keyboard to be fully usable in the most demanding of games. The most demanding game I know of is ARMA 3 which has a binding to practically every individual key of a 107-key keyboard. This means I need to have pretty much every key possible somewhere. I also wanted the keyboard to be responsive in games for every critical keypress. This means having a way to disable features that introduce an inherent delay to registering keys, such as double-tap.
|
||||
|
||||
I do not expect to see this used by the pros, but I enjoyed making it. As for use in ARMA 3, I got a little ways into the APEX campaign, but I found a few flaws. For Example, I cannot enable my HUD GPS since that requires `RCTRL`+`M` but `RCTRL` is not bound. The obvious fix is to rebind the action to a new key, but I still take this as a shortcoming of my layout.
|
||||
|
||||
###If you wish to disable double-tap
|
||||
####Disable it temporarily
|
||||
Turn on the game lock. While on, it registers as normal `LSHFT` and has no delay. Whether in game mode or not, `CAPS` is on the same key in the [ACTION] layer.
|
||||
|
||||
####Disable it permanently
|
||||
Open the `Makefile` and set `TAP_DANCE_ENABLE = no`. I wrote the layout to compensate for this change, and no further changes to the code should be necessary. Whether or not it's disabled, `CAPS` is on the same key in the [ACTION] layer.
|
||||
|
||||
##Notes:
|
||||
* `ALT` and `GUI` are reversed compared to the normal US layout. I will also be using my Planck on my mac, and that's the standard in the Apple ecosystem. I may add a special compiler flag in the future to swap the two.
|
||||
* The DVORAK `Z` key is to the right of the `S` key instead of under it as part of a compromise I made to keep the ARROW keys available on the default layer. I prioritize the ARROW keys, so the DVORAK layout is the one to suffer.
|
||||
* I also support the little tones that the default Planck layout features, identical to them too, (minus those for layouts I don't support). To enable it, open the `Makefile` and set `AUDIO_ENABLE = yes`.
|
||||
|
||||

|
||||
@@ -1,29 +0,0 @@
|
||||
#ifndef CONFIG_USER_H
|
||||
#define CONFIG_USER_H
|
||||
|
||||
#include "../../config.h"
|
||||
|
||||
/*
|
||||
* MIDI options
|
||||
*/
|
||||
|
||||
/* Prevent use of disabled MIDI features in the keymap */
|
||||
//#define MIDI_ENABLE_STRICT 1
|
||||
|
||||
/* enable basic MIDI features:
|
||||
- MIDI notes can be sent when in Music mode is on
|
||||
*/
|
||||
#define MIDI_BASIC
|
||||
|
||||
/* enable advanced MIDI features:
|
||||
- MIDI notes can be added to the keymap
|
||||
- Octave shift and transpose
|
||||
- Virtual sustain, portamento, and modulation wheel
|
||||
- etc.
|
||||
*/
|
||||
//#define MIDI_ADVANCED
|
||||
|
||||
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
|
||||
//#define MIDI_TONE_KEYCODE_OCTAVES 2
|
||||
|
||||
#endif
|
||||
@@ -1,257 +0,0 @@
|
||||
// Layout picture at http://www.keyboard-layout-editor.com/#/gists/125febfad6960add078e6f14256539b6
|
||||
|
||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
|
||||
#include "planck.h"
|
||||
#include "action_layer.h"
|
||||
#ifdef AUDIO_ENABLE
|
||||
#include "audio.h"
|
||||
#endif
|
||||
#include "eeconfig.h"
|
||||
|
||||
extern keymap_config_t keymap_config;
|
||||
|
||||
// Each layer gets a name for readability, which is then used in the keymap matrix below.
|
||||
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
|
||||
// Layer names don't all need to be of the same length, obviously, and you can also skip them
|
||||
// entirely and just use numbers.
|
||||
#define _QWERTY 0
|
||||
#define _DVORAK 1
|
||||
#define _LOCKED 2
|
||||
#define _NUMBER 3
|
||||
#define _ACTION 4
|
||||
#define _FUNCTN 5
|
||||
|
||||
enum planck_keycodes {
|
||||
QWERTY = SAFE_RANGE,
|
||||
DVORAK,
|
||||
NUMBER,
|
||||
ACTION
|
||||
};
|
||||
|
||||
// Key code names
|
||||
#define SFT_ENT FUNC(0) // Tap for enter, hold for right shift
|
||||
#define LOCK FUNC(1)
|
||||
#define KC_PSTE KC_PASTE
|
||||
|
||||
#ifdef TAP_DANCE_ENABLE
|
||||
#define SFT_CAP TD(0) // Left shift, double tap for caps
|
||||
#endif
|
||||
#ifndef TAP_DANCE_ENABLE
|
||||
#define SFT_CAP KC_LSFT // Regular left shift
|
||||
#endif
|
||||
|
||||
// Tap Dance Definitions
|
||||
#ifdef TAP_DANCE_ENABLE
|
||||
qk_tap_dance_action_t tap_dance_actions[] = {
|
||||
[0] = ACTION_TAP_DANCE_DOUBLE(KC_LSFT, KC_CAPS)
|
||||
};
|
||||
#endif
|
||||
|
||||
// Function definitions
|
||||
const uint16_t PROGMEM fn_actions[] = {
|
||||
[0] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_ENT),
|
||||
[1] = ACTION_LAYER_TOGGLE(_LOCKED)
|
||||
};
|
||||
|
||||
// Layout definitions
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
/* QWERTY
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | Esc | Q | W | E | R | T | Y | U | I | O | P | BKSP |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Tab | A | S | D | F | G | H | J | K | L | ; | ' |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* |*Shift| Z | X | C | V | B | N | M | , | . | Up |SftEnt|
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | Ctrl | Alt | Cmd | Vol- | ACTN | Space | NUMS | Vol+ | Left | Down | Left |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_QWERTY] = {
|
||||
{KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC},
|
||||
{KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},
|
||||
{SFT_CAP, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, SFT_ENT},
|
||||
{KC_LCTL, KC_LALT, KC_LGUI, KC_VOLD, ACTION, KC_SPC, KC_SPC, NUMBER, KC_VOLU, KC_LEFT, KC_DOWN, KC_RGHT}
|
||||
},
|
||||
|
||||
/* DVORAK
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | | ' | , | . | P | Y | F | G | C | R | L | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | A | O | E | U | I | D | H | T | N | S | Z |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | ; | Q | J | K | X | B | M | W | V | | |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | | | | | | | | | | | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_DVORAK] = {
|
||||
{_______, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, _______},
|
||||
{_______, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_Z },
|
||||
{_______, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, _______, _______},
|
||||
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
|
||||
},
|
||||
|
||||
/* LOCK
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | | | | | | | | | | | | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | | | | | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Shift| | | | | | | | | | | |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | | | NULL | | | | | | | | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_LOCKED] = {
|
||||
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
|
||||
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
|
||||
{KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
|
||||
{_______, _______, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, _______}
|
||||
},
|
||||
|
||||
/* NUMBERS
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | ~ | NULL | NULL | NULL | | | _ | + | { | } | ? | / |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | ` | NULL | NULL | NULL | \ | - | = | [ | ] | | |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | | | | | | NULL | | | | | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_NUMBER] = {
|
||||
{_______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______},
|
||||
{_______, KC_TILD, XXXXXXX, XXXXXXX, XXXXXXX, KC_PIPE, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_QUES, KC_SLSH},
|
||||
{_______, KC_GRV, XXXXXXX, XXXXXXX, XXXXXXX, KC_BSLS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, _______, _______},
|
||||
{_______, _______, _______, _______, _______, XXXXXXX, XXXXXXX, _______, _______, _______, _______, _______}
|
||||
},
|
||||
|
||||
/* ACTIONS
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | CAPS | Undo | Cut | Copy | Paste| NULL | NULL | NULL | NULL | NULL | PgUp | Enter|
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | | | | Mute | | NULL | | NULL | Home | PgDn | End |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_ACTION] = {
|
||||
{_______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL },
|
||||
{_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX},
|
||||
{KC_CAPS, KC_UNDO, KC_CUT, KC_COPY, KC_PSTE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PGUP, KC_ENT },
|
||||
{_______, _______, _______, KC_MUTE, _______, XXXXXXX, XXXXXXX, _______, XXXXXXX, KC_HOME, KC_PGDN, KC_END }
|
||||
},
|
||||
|
||||
/* FUNCTIONS
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | F13 | F14 | F15 | F16 | F17 | F18 | F19 | F20 | F21 | F22 | F23 | F24 |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | NULL | NULL | NULL | NULL | NULL |QWERTY|DVORAK| NULL | NULL | NULL | NULL | NULL |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | Reset| NULL | Lock | NULL | | NULL | | NULL | NULL | NULL | NULL |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_FUNCTN] = {
|
||||
{KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12 },
|
||||
{KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24 },
|
||||
{XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QWERTY, DVORAK, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX},
|
||||
{RESET, XXXXXXX, LOCK, XXXXXXX, _______, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
#ifdef AUDIO_ENABLE
|
||||
float tone_startup[][2] = SONG(STARTUP_SOUND);
|
||||
float tone_qwerty[][2] = SONG(QWERTY_SOUND);
|
||||
float tone_dvorak[][2] = SONG(DVORAK_SOUND);
|
||||
float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
|
||||
float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
|
||||
#endif
|
||||
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
case QWERTY:
|
||||
if (record->event.pressed) {
|
||||
if (IS_LAYER_ON(_DVORAK)) {
|
||||
#ifdef AUDIO_ENABLE
|
||||
PLAY_SONG(tone_qwerty);
|
||||
#endif
|
||||
layer_off(_DVORAK);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case DVORAK:
|
||||
if (record->event.pressed) {
|
||||
if (!IS_LAYER_ON(_DVORAK)) {
|
||||
#ifdef AUDIO_ENABLE
|
||||
PLAY_SONG(tone_dvorak);
|
||||
#endif
|
||||
layer_on(_DVORAK);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case NUMBER:
|
||||
if (record->event.pressed) {
|
||||
layer_on(_NUMBER);
|
||||
update_tri_layer(_NUMBER, _ACTION, _FUNCTN);
|
||||
} else {
|
||||
layer_off(_NUMBER);
|
||||
update_tri_layer(_NUMBER, _ACTION, _FUNCTN);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case ACTION:
|
||||
if (record->event.pressed) {
|
||||
layer_on(_ACTION);
|
||||
update_tri_layer(_NUMBER, _ACTION, _FUNCTN);
|
||||
} else {
|
||||
layer_off(_ACTION);
|
||||
update_tri_layer(_NUMBER, _ACTION, _FUNCTN);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void matrix_init_user(void) {
|
||||
#ifdef AUDIO_ENABLE
|
||||
startup_user();
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef AUDIO_ENABLE
|
||||
|
||||
void startup_user()
|
||||
{
|
||||
_delay_ms(20); // gets rid of tick
|
||||
PLAY_SONG(tone_startup);
|
||||
}
|
||||
|
||||
void shutdown_user()
|
||||
{
|
||||
PLAY_SONG(tone_goodbye);
|
||||
_delay_ms(150);
|
||||
stop_all_notes();
|
||||
}
|
||||
|
||||
void music_on_user(void)
|
||||
{
|
||||
music_scale_user();
|
||||
}
|
||||
|
||||
void music_scale_user(void)
|
||||
{
|
||||
PLAY_SONG(music_scale);
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -1,22 +0,0 @@
|
||||
|
||||
# Build Options
|
||||
# change to "no" to disable the options, or define them in the makefile.mk in
|
||||
# the appropriate keymap folder that will get included automatically
|
||||
#
|
||||
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
|
||||
MOUSEKEY_ENABLE = no # Mouse keys(+4700)
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
|
||||
CONSOLE_ENABLE = no # Console for debug(+400)
|
||||
COMMAND_ENABLE = yes # Commands for debug and configuration
|
||||
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||
MIDI_ENABLE = no # MIDI controls
|
||||
AUDIO_ENABLE = no # Audio output on port C6
|
||||
UNICODE_ENABLE = no # Unicode
|
||||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
|
||||
TAP_DANCE_ENABLE = yes # Enables the double-tap functionality of keys
|
||||
|
||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||
|
||||
@@ -1,42 +0,0 @@
|
||||
#ifndef CONFIG_USER_H
|
||||
#define CONFIG_USER_H
|
||||
|
||||
#include "config_common.h"
|
||||
|
||||
#ifdef AUDIO_ENABLE
|
||||
#define STARTUP_SONG SONG(PLANCK_SOUND)
|
||||
// #define STARTUP_SONG SONG(NO_SOUND)
|
||||
|
||||
#define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \
|
||||
SONG(COLEMAK_SOUND), \
|
||||
SONG(DVORAK_SOUND) \
|
||||
}
|
||||
#endif
|
||||
|
||||
#define MUSIC_MASK (keycode != KC_NO)
|
||||
|
||||
/*
|
||||
* MIDI options
|
||||
*/
|
||||
|
||||
/* Prevent use of disabled MIDI features in the keymap */
|
||||
//#define MIDI_ENABLE_STRICT 1
|
||||
|
||||
/* enable basic MIDI features:
|
||||
- MIDI notes can be sent when in Music mode is on
|
||||
*/
|
||||
|
||||
#define MIDI_BASIC
|
||||
|
||||
/* enable advanced MIDI features:
|
||||
- MIDI notes can be added to the keymap
|
||||
- Octave shift and transpose
|
||||
- Virtual sustain, portamento, and modulation wheel
|
||||
- etc.
|
||||
*/
|
||||
//#define MIDI_ADVANCED
|
||||
|
||||
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
|
||||
//#define MIDI_TONE_KEYCODE_OCTAVES 2
|
||||
|
||||
#endif
|
||||
@@ -1,262 +0,0 @@
|
||||
/* Copyright 2015-2017 Jack Humbert
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
|
||||
#include "planck.h"
|
||||
#include "action_layer.h"
|
||||
|
||||
extern keymap_config_t keymap_config;
|
||||
|
||||
enum planck_layers {
|
||||
_QWERTY,
|
||||
_COLEMAK,
|
||||
_DVORAK,
|
||||
_LOWER,
|
||||
_RAISE,
|
||||
_PLOVER,
|
||||
_ADJUST
|
||||
};
|
||||
|
||||
enum planck_keycodes {
|
||||
QWERTY = SAFE_RANGE,
|
||||
COLEMAK,
|
||||
DVORAK,
|
||||
PLOVER,
|
||||
LOWER,
|
||||
RAISE,
|
||||
BACKLIT,
|
||||
EXT_PLV
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
/* Qwerty
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | Tab | A | S | D | F | G | H | J | K | L | ; | " |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Ctrl | GUI | Alt | App |Lower | Space |Raise | - | = | \ | Alt |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_QWERTY] = {
|
||||
{KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC},
|
||||
{KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},
|
||||
{KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, RSFT_T(KC_ENT) },
|
||||
{KC_LCTL, KC_LGUI, KC_LALT, KC_APP, LOWER, KC_SPC, KC_SPC, RAISE, KC_MINS, KC_EQL, KC_BSLS, KC_RALT}
|
||||
},
|
||||
|
||||
/* Colemak
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | Esc | A | R | S | T | D | H | N | E | I | O | " |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | Shift| Z | X | C | V | B | K | M | , | . | / |Enter |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_COLEMAK] = {
|
||||
{KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC},
|
||||
{KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT},
|
||||
{KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT },
|
||||
{BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
|
||||
},
|
||||
|
||||
/* Dvorak
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | Esc | A | O | E | U | I | D | H | T | N | S | / |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_DVORAK] = {
|
||||
{KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC},
|
||||
{KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH},
|
||||
{KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT },
|
||||
{BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
|
||||
},
|
||||
|
||||
/* Lower
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | | | | { | } | Del | Home | PgDn | PgUp | End | | |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | | F1 | F2 | F3 | F4 | F5 | F6 |ISO ~ |ISO | | | | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | Mute | Vol- | Vol+ | Play |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_LOWER] = {
|
||||
{KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC},
|
||||
{_______, _______, _______, KC_LCBR, KC_RCBR, KC_DEL, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______},
|
||||
{_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, S(KC_NUHS), KC_MPRV, KC_MNXT, S(KC_NUBS), _______},
|
||||
{_______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MPLY, KC_MUTE}
|
||||
},
|
||||
|
||||
/* Raise
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | | | | [ | ] | Del | Left | Down | Up | Right| | |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | | | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | Mute | Vol- | Vol+ | Play |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_RAISE] = {
|
||||
{KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
|
||||
{_______, _______, _______, KC_LBRC, KC_RBRC, KC_DEL, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______},
|
||||
{_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_MPRV, KC_MNXT, KC_NUBS, _______},
|
||||
{_______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MPLY, KC_MUTE}
|
||||
},
|
||||
|
||||
/* Plover layer (http://opensteno.org)
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | # | # | # | # | # | # | # | # | # | # | # | # |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | | S | T | P | H | * | * | F | P | L | T | D |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | | S | K | W | R | * | * | R | B | G | S | Z |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Exit | | | A | O | | E | U | | | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
|
||||
[_PLOVER] = {
|
||||
{KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 },
|
||||
{XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC},
|
||||
{XXXXXXX, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},
|
||||
{EXT_PLV, XXXXXXX, XXXXXXX, KC_C, KC_V, XXXXXXX, XXXXXXX, KC_N, KC_M, XXXXXXX, XXXXXXX, XXXXXXX}
|
||||
},
|
||||
|
||||
/* Adjust (Lower + Raise)
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | | Reset| | | | | | | | | | Del |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak|Plover| |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | | | | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_ADJUST] = {
|
||||
{_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL },
|
||||
{_______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______},
|
||||
{_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______},
|
||||
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
|
||||
}
|
||||
|
||||
|
||||
};
|
||||
|
||||
#ifdef AUDIO_ENABLE
|
||||
float plover_song[][2] = SONG(PLOVER_SOUND);
|
||||
float plover_gb_song[][2] = SONG(PLOVER_GOODBYE_SOUND);
|
||||
#endif
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
case QWERTY:
|
||||
if (record->event.pressed) {
|
||||
set_single_persistent_default_layer(_QWERTY);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case COLEMAK:
|
||||
if (record->event.pressed) {
|
||||
set_single_persistent_default_layer(_COLEMAK);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case DVORAK:
|
||||
if (record->event.pressed) {
|
||||
set_single_persistent_default_layer(_DVORAK);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case LOWER:
|
||||
if (record->event.pressed) {
|
||||
layer_on(_LOWER);
|
||||
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
||||
} else {
|
||||
layer_off(_LOWER);
|
||||
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case RAISE:
|
||||
if (record->event.pressed) {
|
||||
layer_on(_RAISE);
|
||||
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
||||
} else {
|
||||
layer_off(_RAISE);
|
||||
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case BACKLIT:
|
||||
if (record->event.pressed) {
|
||||
register_code(KC_RSFT);
|
||||
#ifdef BACKLIGHT_ENABLE
|
||||
backlight_step();
|
||||
#endif
|
||||
} else {
|
||||
unregister_code(KC_RSFT);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case PLOVER:
|
||||
if (record->event.pressed) {
|
||||
#ifdef AUDIO_ENABLE
|
||||
stop_all_notes();
|
||||
PLAY_SONG(plover_song);
|
||||
#endif
|
||||
layer_off(_RAISE);
|
||||
layer_off(_LOWER);
|
||||
layer_off(_ADJUST);
|
||||
layer_on(_PLOVER);
|
||||
if (!eeconfig_is_enabled()) {
|
||||
eeconfig_init();
|
||||
}
|
||||
keymap_config.raw = eeconfig_read_keymap();
|
||||
keymap_config.nkro = 1;
|
||||
eeconfig_update_keymap(keymap_config.raw);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case EXT_PLV:
|
||||
if (record->event.pressed) {
|
||||
#ifdef AUDIO_ENABLE
|
||||
PLAY_SONG(plover_gb_song);
|
||||
#endif
|
||||
layer_off(_PLOVER);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -1,2 +0,0 @@
|
||||
# /u/Coloneljesus's Planck Layout
|
||||
|
||||
@@ -1,53 +0,0 @@
|
||||
#ifndef CONFIG_USER_H
|
||||
#define CONFIG_USER_H
|
||||
|
||||
#include "config_common.h"
|
||||
|
||||
#ifdef AUDIO_ENABLE
|
||||
#define STARTUP_SONG SONG(PLANCK_SOUND)
|
||||
// #define STARTUP_SONG SONG(NO_SOUND)
|
||||
|
||||
#define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \
|
||||
SONG(COLEMAK_SOUND), \
|
||||
SONG(DVORAK_SOUND) \
|
||||
}
|
||||
#endif
|
||||
|
||||
#define MUSIC_MASK (keycode != KC_NO)
|
||||
|
||||
/*
|
||||
* MIDI options
|
||||
*/
|
||||
|
||||
/* Prevent use of disabled MIDI features in the keymap */
|
||||
//#define MIDI_ENABLE_STRICT 1
|
||||
|
||||
/* enable basic MIDI features:
|
||||
- MIDI notes can be sent when in Music mode is on
|
||||
*/
|
||||
|
||||
#define MIDI_BASIC
|
||||
|
||||
/* enable advanced MIDI features:
|
||||
- MIDI notes can be added to the keymap
|
||||
- Octave shift and transpose
|
||||
- Virtual sustain, portamento, and modulation wheel
|
||||
- etc.
|
||||
*/
|
||||
//#define MIDI_ADVANCED
|
||||
|
||||
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
|
||||
//#define MIDI_TONE_KEYCODE_OCTAVES 2
|
||||
|
||||
#define PERMISSIVE_HOLD
|
||||
|
||||
// AutoShift config
|
||||
#define AUTO_SHIFT_TIMEOUT 135
|
||||
#define NO_AUTO_SHIFT_SPECIAL
|
||||
// #define NO_AUTO_SHIFT_NUMERIC
|
||||
// #define NO_AUTO_SHIFT_ALPHA
|
||||
|
||||
// TapDance config
|
||||
#define TAPPING_TERM 150
|
||||
|
||||
#endif
|
||||
@@ -1,208 +0,0 @@
|
||||
/* Copyright 2015-2018 Jack Humbert, Corey Kump
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
|
||||
#include "planck.h"
|
||||
#include "action_layer.h"
|
||||
|
||||
extern keymap_config_t keymap_config;
|
||||
|
||||
enum planck_layers {
|
||||
_COLEMAK,
|
||||
_QWERTY,
|
||||
_LOWER,
|
||||
_LEANDOWN,
|
||||
_RAISE,
|
||||
_WOBBLE,
|
||||
_PLOVER,
|
||||
_ADJUST
|
||||
};
|
||||
|
||||
/* This include relies on the layer constants above and so must be declared after them */
|
||||
#include "tapdance.c"
|
||||
|
||||
enum planck_keycodes {
|
||||
QWERTY = SAFE_RANGE,
|
||||
COLEMAK,
|
||||
LOWER,
|
||||
RAISE,
|
||||
BACKLIT
|
||||
};
|
||||
|
||||
#define KC_ KC_TRNS
|
||||
#define KC_____ KC_TRNS
|
||||
#define KC_XXXX KC_NO
|
||||
#define KC_LOWR LOWER
|
||||
#define KC_RASE RAISE
|
||||
|
||||
/**
|
||||
* Custom Corvec Bindings
|
||||
*
|
||||
* Previously used but currently unused bindings are commented out.
|
||||
**/
|
||||
|
||||
// Activate the Wobble layer
|
||||
#define KC_WOBL MO(_WOBBLE)
|
||||
// Dual function with Raise
|
||||
#define KC_RESC LT(_RAISE, KC_ESC)
|
||||
// Dual functions with Lower
|
||||
#define KC_LENT LT(_LOWER, KC_ENT)
|
||||
#define KC_LQUT LT(_LEANDOWN, KC_QUOT)
|
||||
// Dual functions with Shift
|
||||
#define KC_SDEL MT(MOD_LSFT, KC_DEL)
|
||||
#define KC_SAPP MT(MOD_LSFT, KC_APP)
|
||||
|
||||
/**
|
||||
* Functions taking advantage of tap dance:
|
||||
**/
|
||||
// Tap once: quote. Hold: LEANDOWN layer. Tap twice: minus.
|
||||
#define KC_TQTD TD(TD_QUOT_LEAN_MINS)
|
||||
// Tap once: [. Hold: RALT. Tap twice: {
|
||||
#define KC_TALT TD(TD_LBRC_RALT_LCBR)
|
||||
// Tap once: ]. Hold: RGUI. Tap twice: }
|
||||
#define KC_TGUI TD(TD_RBRC_RGUI_RCBR)
|
||||
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[_COLEMAK] = KC_KEYMAP(
|
||||
//-----+----+----+----+----+----+----+----+----+----+----+----
|
||||
TAB , Q , W , F , P , G , J , L , U , Y ,SCLN,BSPC,
|
||||
//-----+----+----+----+----+----+----+----+----+----+----+----
|
||||
RESC, A , R , S , T , D , H , N , E , I , O ,TQTD,
|
||||
//-----+----+----+----+----+----+----+----+----+----+----+----
|
||||
LSFT, Z , X , C , V , B , K , M ,COMM,DOT ,SLSH,RSFT,
|
||||
//-----+----+----+----+----+----+----+----+----+----+----+----
|
||||
LCTL,LGUI,WOBL,LALT,LENT, SPC, SPC,RASE,SDEL,TALT,TGUI,RCTL
|
||||
),
|
||||
|
||||
[_QWERTY] = KC_KEYMAP(
|
||||
//-----+----+----+----+----+----+----+----+----+----+----+----
|
||||
TAB , Q , W , E , R , T , Y , U , I , O , P ,BSPC,
|
||||
//-----+----+----+----+----+----+----+----+----+----+----+----
|
||||
RESC, A , S , D , F , G , H , J , K , L ,SCLN,TQTD,
|
||||
//-----+----+----+----+----+----+----+----+----+----+----+----
|
||||
LSFT, Z , X , C , V , B , N , M ,COMM,DOT ,SLSH,RSFT,
|
||||
//-----+----+----+----+----+----+----+----+----+----+----+----
|
||||
LCTL,LGUI,WOBL,LALT,LENT, SPC, SPC,RASE,RALT,SAPP,RGUI,RCTL
|
||||
),
|
||||
|
||||
[_LOWER] = KC_KEYMAP(
|
||||
GRV ,EXLM, AT ,HASH, DLR,PERC,CIRC,AMPR,ASTR,LPRN,RPRN,____,
|
||||
____,LPRN,RPRN,LBRC,RBRC,XXXX,LEFT,DOWN, UP ,RGHT,XXXX,MINS,
|
||||
____,BSLS,TILD,PIPE,EQL ,UNDS,HOME,PGDN,PGUP,END ,BSLS,____,
|
||||
____,____,____,____,____,____,____,____,____,____,____,____
|
||||
),
|
||||
|
||||
[_LEANDOWN] = KC_KEYMAP(
|
||||
GRV ,EXLM, AT ,HASH, DLR,PERC,CIRC,AMPR,ASTR,LPRN,RPRN,____,
|
||||
____,LPRN,RPRN,LBRC,RBRC,LCBR,LCBR,DLR ,PERC,CIRC,____,____,
|
||||
____,BSLS,TILD,PIPE,EQL ,UNDS,HOME,EXLM, AT ,HASH,BSLS,____,
|
||||
____,____,____,____,____,____,____,____,LEFT,DOWN, UP ,RGHT
|
||||
),
|
||||
|
||||
[_RAISE] = KC_KEYMAP(
|
||||
GRV , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,____,
|
||||
____,LPRN,RPRN,LCBR,RCBR,XXXX,XXXX, 4 , 5 , 6 ,PPLS,MINS,
|
||||
____,BSLS,TILD,PIPE,EQL ,UNDS,XXXX, 1 , 2 , 3 ,PAST,____,
|
||||
____,____,____,____,____,____,____,____,____,____,____,____
|
||||
),
|
||||
|
||||
[_WOBBLE] = KC_KEYMAP(
|
||||
GRV , F1 , F2 , F3 , F4 , NO ,MUTE,VOLD,VOLU, NO , NO , DEL,
|
||||
, F5 , F6 , F7 , F8 , NO ,MPRV,MPLY,MSTP,MNXT, NO ,BSLS,
|
||||
, F9 , F10, F11, F12, NO , NO , NO , NO , INS,PSCR, ,
|
||||
, , , , , , , , , , ,
|
||||
),
|
||||
|
||||
/* Adjust (Lower + Raise)
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* |Colemk| | Debug|RGB Tg|RGB Md|RGB H+|RGB H-|RGB S+|RGB S-|RGB V+|RGB V-|Qwerty|
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk| |AS On | AS + |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof|TermOn|TermOf|AS Rep|AS Off| AS - |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | | | | Reset|
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
|
||||
[_ADJUST] = {
|
||||
{COLEMAK, _______, DEBUG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, QWERTY },
|
||||
{_______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, _______, KC_ASON, KC_ASUP},
|
||||
{_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, TERM_ON, TERM_OFF,KC_ASRP, KC_ASOFF,KC_ASDN},
|
||||
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET }
|
||||
}
|
||||
|
||||
|
||||
};
|
||||
|
||||
#ifdef AUDIO_ENABLE
|
||||
float plover_song[][2] = SONG(PLOVER_SOUND);
|
||||
float plover_gb_song[][2] = SONG(PLOVER_GOODBYE_SOUND);
|
||||
#endif
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
case QWERTY:
|
||||
if (record->event.pressed) {
|
||||
print("mode just switched to qwerty and this is a huge string\n");
|
||||
set_single_persistent_default_layer(_QWERTY);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case COLEMAK:
|
||||
if (record->event.pressed) {
|
||||
set_single_persistent_default_layer(_COLEMAK);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case LOWER:
|
||||
if (record->event.pressed) {
|
||||
layer_on(_LOWER);
|
||||
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
||||
} else {
|
||||
layer_off(_LOWER);
|
||||
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case RAISE:
|
||||
if (record->event.pressed) {
|
||||
layer_on(_RAISE);
|
||||
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
||||
} else {
|
||||
layer_off(_RAISE);
|
||||
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case BACKLIT:
|
||||
if (record->event.pressed) {
|
||||
register_code(KC_RSFT);
|
||||
#ifdef BACKLIGHT_ENABLE
|
||||
backlight_step();
|
||||
#endif
|
||||
PORTE &= ~(1<<6);
|
||||
} else {
|
||||
unregister_code(KC_RSFT);
|
||||
PORTE |= (1<<6);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -1,28 +0,0 @@
|
||||
# Corvec's Planck Layout
|
||||
|
||||
This layout is a development-focused layout with an emphasis on ergonomics. It is intended to be used in Colemak mode,
|
||||
but has a full-QWERTY mode for gaming compatibility.
|
||||
|
||||
It utilizes redundancy for common keys so that they are more easily accessible in every task. For example, the common
|
||||
layers, Raise and Lower, both can be activated with two different keys, each pressed with either hand. Certain symbols
|
||||
( \~|+_ ) are on both layers, since the keys they take up are a bit out of the way. The minus symbol is available on the
|
||||
quote key in a variety of ways - both layers, as well as via tap dance.
|
||||
|
||||
The right-hand Lower activation key activates a slightly different layer. The keys accessed by the opposite hand are the
|
||||
same as the Lower layer, but the keys on the right hand differ. For this reason, we refer to this instead as the
|
||||
Leandown layer.
|
||||
|
||||
Auto-shift is enabled, but there are also three shift keys, since typing with auto-shift is by necessity slow.
|
||||
|
||||
Movement is done Vim-style, on the hjkl / hnei keys, on the Lower layer so that it is easiest to activate it.
|
||||
The arrow keys are mimicked by Home/PgDn/PgUp/End on the next row.
|
||||
|
||||
The arrow keys and broad navigation keys are replaced by a symbol-pad on the Leandown layer. However, in order to allow
|
||||
single-hand navigation, the bottom right corner cluster becomes arrow keys.
|
||||
|
||||
Media keys are in the same location as the arrow keys, but are on the Wobble layer instead.
|
||||
|
||||
Toggle layers are minimized so that the state of the keyboard is more predictable. Shift Toggle is in the works, but
|
||||
will not be included until it can be set to deactivate automatically.
|
||||
|
||||
Delete is accessible from the third Shift key.
|
||||
@@ -1,5 +0,0 @@
|
||||
AUTO_SHIFT_ENABLE = yes
|
||||
TAP_DANCE_ENABLE = yes
|
||||
API_SYSEX_ENABLE = no
|
||||
CONSOLE_ENABLE = no
|
||||
EXTRAKEY_ENABLE = no
|
||||
@@ -1,156 +0,0 @@
|
||||
/**
|
||||
* Tap Dance config and functions
|
||||
**/
|
||||
/* Copyright 2018 Corey Kump
|
||||
*
|
||||
* 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/>.
|
||||
*/
|
||||
|
||||
enum {
|
||||
SINGLE_TAP = 1,
|
||||
SINGLE_HOLD = 2,
|
||||
DOUBLE_TAP = 3,
|
||||
DOUBLE_SINGLE_TAP = 4,
|
||||
UNKNOWN_TAPS = 5
|
||||
};
|
||||
|
||||
typedef struct {
|
||||
bool is_press_action;
|
||||
int state;
|
||||
} tap;
|
||||
|
||||
int cur_dance (qk_tap_dance_state_t *state) {
|
||||
if (state->count == 1) {
|
||||
if (state->interrupted || !state->pressed) {
|
||||
return SINGLE_TAP;
|
||||
} else {
|
||||
return SINGLE_HOLD;
|
||||
}
|
||||
}
|
||||
if (state->count == 2) {
|
||||
if (state->interrupted) {
|
||||
return DOUBLE_SINGLE_TAP;
|
||||
} else if (!state->pressed) {
|
||||
return DOUBLE_TAP;
|
||||
}
|
||||
}
|
||||
return UNKNOWN_TAPS;
|
||||
}
|
||||
|
||||
/**
|
||||
* quote
|
||||
**/
|
||||
|
||||
static tap quote_state = {
|
||||
.is_press_action = true,
|
||||
.state = 0
|
||||
};
|
||||
|
||||
void quote_finished(qk_tap_dance_state_t *state, void *user_data) {
|
||||
quote_state.state = cur_dance(state);
|
||||
switch(quote_state.state) {
|
||||
case SINGLE_TAP: register_code(KC_QUOT); break;
|
||||
case SINGLE_HOLD: layer_on(_LEANDOWN); break;
|
||||
case DOUBLE_TAP: register_code(KC_MINS); break;
|
||||
case DOUBLE_SINGLE_TAP: register_code(KC_QUOT); unregister_code(KC_QUOT); register_code(KC_QUOT); break;
|
||||
}
|
||||
}
|
||||
void quote_reset(qk_tap_dance_state_t *state, void *user_data) {
|
||||
switch(quote_state.state) {
|
||||
case SINGLE_TAP: unregister_code(KC_QUOT); break;
|
||||
case SINGLE_HOLD: layer_off(_LEANDOWN); break;
|
||||
case DOUBLE_TAP: unregister_code(KC_MINS); break;
|
||||
case DOUBLE_SINGLE_TAP: unregister_code(KC_QUOT); break;
|
||||
}
|
||||
quote_state.state = 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* ralt / left bracket / left curly brace
|
||||
**/
|
||||
|
||||
static tap ralt_state = {
|
||||
.is_press_action = true,
|
||||
.state = 0
|
||||
};
|
||||
|
||||
void ralt_finished(qk_tap_dance_state_t *state, void *user_data) {
|
||||
ralt_state.state = cur_dance(state);
|
||||
switch(ralt_state.state) {
|
||||
case SINGLE_TAP: register_code(KC_LBRC); break;
|
||||
case SINGLE_HOLD: register_code(KC_RALT); break;
|
||||
case DOUBLE_TAP: register_code(KC_LSFT); register_code(KC_LBRC); break;
|
||||
// fallback to alt because it's the primary purpose of this key
|
||||
case DOUBLE_SINGLE_TAP: register_code(KC_RALT); break;
|
||||
}
|
||||
}
|
||||
void ralt_reset(qk_tap_dance_state_t *state, void *user_data) {
|
||||
switch(ralt_state.state) {
|
||||
case SINGLE_TAP: unregister_code(KC_LBRC); break;
|
||||
case SINGLE_HOLD: unregister_code(KC_RALT); break;
|
||||
case DOUBLE_TAP: unregister_code(KC_LBRC); unregister_code(KC_LSFT); break;
|
||||
case DOUBLE_SINGLE_TAP: unregister_code(KC_RALT); break;
|
||||
}
|
||||
ralt_state.state = 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* rgui / right bracket / right curly brace
|
||||
**/
|
||||
|
||||
static tap rgui_state = {
|
||||
.is_press_action = true,
|
||||
.state = 0
|
||||
};
|
||||
|
||||
void rgui_finished(qk_tap_dance_state_t *state, void *user_data) {
|
||||
rgui_state.state = cur_dance(state);
|
||||
switch(rgui_state.state) {
|
||||
case SINGLE_TAP: register_code(KC_RBRC); break;
|
||||
case SINGLE_HOLD: register_code(KC_RGUI); break;
|
||||
case DOUBLE_TAP: register_code(KC_LSFT); register_code(KC_RBRC); break;
|
||||
// fallback to alt because it's the primary purpose of this key
|
||||
case DOUBLE_SINGLE_TAP: register_code(KC_RGUI); break;
|
||||
}
|
||||
}
|
||||
void rgui_reset(qk_tap_dance_state_t *state, void *user_data) {
|
||||
switch(rgui_state.state) {
|
||||
case SINGLE_TAP: unregister_code(KC_RBRC); break;
|
||||
case SINGLE_HOLD: unregister_code(KC_RGUI); break;
|
||||
case DOUBLE_TAP: unregister_code(KC_RBRC); unregister_code(KC_LSFT); break;
|
||||
case DOUBLE_SINGLE_TAP: unregister_code(KC_RGUI); break;
|
||||
}
|
||||
rgui_state.state = 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Define the available tap dance keys
|
||||
**/
|
||||
|
||||
enum {
|
||||
TD_ALT_SHIFT = 0,
|
||||
TD_LQUT_MINS,
|
||||
TD_QUOT_LEAN_MINS,
|
||||
TD_LBRC_RALT_LCBR,
|
||||
TD_RBRC_RGUI_RCBR
|
||||
};
|
||||
|
||||
qk_tap_dance_action_t tap_dance_actions[] = {
|
||||
// Tap once for Alt, twice for Shift
|
||||
[TD_ALT_SHIFT] = ACTION_TAP_DANCE_DOUBLE(KC_RALT, KC_RSFT),
|
||||
[TD_QUOT_LEAN_MINS] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, quote_finished, quote_reset),
|
||||
[TD_LBRC_RALT_LCBR] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, ralt_finished, ralt_reset),
|
||||
[TD_RBRC_RGUI_RCBR] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, rgui_finished, rgui_reset)
|
||||
};
|
||||
|
||||
@@ -1,37 +0,0 @@
|
||||
#include "keymap.h"
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = { /* Qwerty */
|
||||
{KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC},
|
||||
{KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},
|
||||
{KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT},
|
||||
{FUNC(3), KC_LCTL, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
|
||||
// Space is repeated to accommadate for both spacebar wiring positions
|
||||
},
|
||||
[1] = { /* RAISE */
|
||||
{KC_GRV, S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), S(KC_9), S(KC_0), KC_EQL},
|
||||
{KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC},
|
||||
{KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, S(KC_MINS), KC_BSLS, KC_TRNS},
|
||||
{KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(1), KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
|
||||
},
|
||||
[2] = { /* LOWER */
|
||||
{S(KC_GRV), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, S(KC_EQL)},
|
||||
{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_CAPS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_ENT},
|
||||
{KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
|
||||
},
|
||||
[3] = { /* Qwerty */
|
||||
{KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL},
|
||||
{KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},
|
||||
{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_TRNS, KC_LCTL, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
|
||||
// Space is repeated to accommadate for both spacebar wiring positions
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
const uint16_t PROGMEM fn_actions[] = {
|
||||
[1] = ACTION_LAYER_MOMENTARY(1), // to RAISE
|
||||
[2] = ACTION_LAYER_MOMENTARY(2), // to LOWER
|
||||
[3] = ACTION_LAYER_MOMENTARY(3) // to LOWER
|
||||
};
|
||||
@@ -1,22 +0,0 @@
|
||||
|
||||
|
||||
# Build Options
|
||||
# change to "no" to disable the options, or define them in the Makefile in
|
||||
# the appropriate keymap folder that will get included automatically
|
||||
#
|
||||
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
|
||||
MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
|
||||
CONSOLE_ENABLE = no # Console for debug(+400)
|
||||
COMMAND_ENABLE = yes # Commands for debug and configuration
|
||||
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
|
||||
MIDI_ENABLE = no # MIDI controls
|
||||
AUDIO_ENABLE = yes # Audio output on port C6
|
||||
UNICODE_ENABLE = no # Unicode
|
||||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
|
||||
|
||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||
|
||||
@@ -1,139 +0,0 @@
|
||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
|
||||
#include "planck.h"
|
||||
#include "action_layer.h"
|
||||
|
||||
extern keymap_config_t keymap_config;
|
||||
|
||||
// Each layer gets a name for readability, which is then used in the keymap matrix below.
|
||||
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
|
||||
// Layer names don't all need to be of the same length, obviously, and you can also skip them
|
||||
// entirely and just use numbers.
|
||||
enum custom_layers {
|
||||
_QWERTY,
|
||||
_LOWER,
|
||||
_RAISE,
|
||||
_ARROW
|
||||
};
|
||||
|
||||
enum custom_keycodes {
|
||||
QWERTY = SAFE_RANGE,
|
||||
LOWER,
|
||||
RAISE,
|
||||
ARROW
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
/* QWERTY
|
||||
* .----------------------------------------------------------------------------------.
|
||||
* | Esc | Q | W | E | R | T | Y | U | I | O | P |Enter |
|
||||
* |-----+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | Tab | A | S | D | F | G | H | J | K | L | ; | " |
|
||||
* |-----+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* |Lshft| Z | X | C | V | B | N | M | , | . | / |Rshft |
|
||||
* |-----+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* |Arrow| LCtrl| LAlt | LGui | Lower| Bspc | Space| Raise| RGui | RAlt |RCtrl | - |
|
||||
* `----------------------------------------------------------------------------------'
|
||||
*/
|
||||
|
||||
[_QWERTY] = {
|
||||
{KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_ENT},
|
||||
{KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},
|
||||
{KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT},
|
||||
{ARROW, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_BSPC, KC_SPC, RAISE, KC_RGUI, KC_RALT, KC_RCTL, KC_MINS}
|
||||
},
|
||||
|
||||
/* Lower
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | | | | | | | 7 | 8 | 9 | / | \ | ` |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | | | | | | | 4 | 5 | 6 | * | ( | ) |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | Lshft| | | | | | 1 | 2 | 3 | - | [ | ] |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | | | | LGui | | | 0 | . | = | + | { | } |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
|
||||
[_LOWER] = {
|
||||
{XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_7, KC_8, KC_9, KC_PSLS, KC_BSLS, KC_GRV},
|
||||
{XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_4, KC_5, KC_6, KC_PAST, KC_LPRN, KC_RPRN},
|
||||
{_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_1, KC_2, KC_3, KC_MINS, KC_LBRC, KC_RBRC},
|
||||
{XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, KC_0, KC_DOT, KC_PEQL, KC_PPLS, KC_LCBR, KC_RCBR}
|
||||
},
|
||||
|
||||
/* Raise
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | F1 | F2 | F3 | F4 | F5 | F6 | | | | | | |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | F7 | F8 | F9 | F10 | F11 | F12 | | | | | | |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | >/|| | Mute | Vol- | Vol+ | |<< | >>| | | | | | | |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | | | | | | | | | | | | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
|
||||
[_RAISE] = {
|
||||
{KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX},
|
||||
{KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX},
|
||||
{KC_MPLY, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPRV, KC_MNXT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX},
|
||||
{XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}
|
||||
},
|
||||
|
||||
/* Arrow
|
||||
* ,----------------------------------------------------------------------------------.
|
||||
* | | | | | | | | | Up | | | |
|
||||
* |------+------+------+------+------+------|-----+------+------+------+------+------|
|
||||
* | | | | | | | | Left | Down |Right | | |
|
||||
* |------+------+------+------+------+------|-----+------+------+------+------+------|
|
||||
* | | | | | | | | | | | | |
|
||||
* |------+------+------+------+------+------|-----+------+------+------+------+------|
|
||||
* | | | | Gui | | | | | | | | |
|
||||
* `----------------------------------------------------------------------------------'
|
||||
*/
|
||||
|
||||
[_ARROW] = {
|
||||
{XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_UP, XXXXXXX, XXXXXXX, XXXXXXX},
|
||||
{XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX, XXXXXXX},
|
||||
{XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX},
|
||||
{_______, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}
|
||||
},
|
||||
|
||||
};
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
case QWERTY:
|
||||
if (record->event.pressed) {
|
||||
set_single_persistent_default_layer(_QWERTY);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case LOWER:
|
||||
if (record->event.pressed) {
|
||||
layer_on(_LOWER);
|
||||
} else {
|
||||
layer_off(_LOWER);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case RAISE:
|
||||
if (record->event.pressed) {
|
||||
layer_on(_RAISE);
|
||||
} else {
|
||||
layer_off(_RAISE);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case ARROW:
|
||||
if (record->event.pressed) {
|
||||
layer_on(_ARROW);
|
||||
} else {
|
||||
layer_off(_ARROW);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
|
||||
MOUSEKEY_ENABLE = no # Mouse keys(+4700)
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
|
||||
CONSOLE_ENABLE = no # Console for debug(+400)
|
||||
COMMAND_ENABLE = yes # Commands for debug and configuration
|
||||
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||
MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
|
||||
AUDIO_ENABLE = no # Audio output on port C6
|
||||
UNICODE_ENABLE = no # Unicode
|
||||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
|
||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||
TAP_DANCE_ENABLE = no # Enable Tap Dance
|
||||
@@ -1,38 +0,0 @@
|
||||
#include "keymap.h"
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = { /* Qwerty */
|
||||
{KC_Q, KC_W, KC_E, KC_R, KC_T, KC_BSPC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC},
|
||||
{KC_A, KC_S, KC_D, KC_F, KC_G, KC_ENT, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},
|
||||
{KC_Z, KC_X, KC_C, KC_V, KC_B, KC_ESC, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT},
|
||||
{M(10), KC_LCTL, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
|
||||
// Space is repeated to accommadate for both spacebar wiring positions
|
||||
},
|
||||
[1] = { /* Colemak */
|
||||
{KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC},
|
||||
{KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT},
|
||||
{KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT},
|
||||
{KC_FN3, KC_LCTL, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
|
||||
},
|
||||
[2] = { /* RAISE */
|
||||
{KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
|
||||
{KC_TRNS, FUNC(3), FUNC(4), RESET, M(0), M(1), M(2), KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS},
|
||||
{KC_TRNS, KC_F11, KC_F12, M(0), M(1), M(2), M(3), M(4), M(5), M(6), M(7), KC_TRNS},
|
||||
{KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(1), KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
|
||||
},
|
||||
[3] = { /* LOWER */
|
||||
{S(KC_GRV), S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), S(KC_9), S(KC_0), KC_BSPC},
|
||||
{KC_TRNS, FUNC(3), FUNC(4), RESET, M(0), M(1), M(2), S(KC_MINS), S(KC_EQL), S(KC_LBRC), S(KC_RBRC), S(KC_BSLS)},
|
||||
{KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS},
|
||||
{KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
|
||||
}
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM fn_actions[] = {
|
||||
[1] = ACTION_LAYER_MOMENTARY(2), // to RAISE
|
||||
[2] = ACTION_LAYER_MOMENTARY(3), // to LOWER
|
||||
|
||||
[3] = ACTION_DEFAULT_LAYER_SET(0),
|
||||
[4] = ACTION_DEFAULT_LAYER_SET(1),
|
||||
|
||||
};
|
||||
@@ -1,22 +0,0 @@
|
||||
|
||||
|
||||
# Build Options
|
||||
# change to "no" to disable the options, or define them in the Makefile in
|
||||
# the appropriate keymap folder that will get included automatically
|
||||
#
|
||||
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
|
||||
MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
|
||||
CONSOLE_ENABLE = no # Console for debug(+400)
|
||||
COMMAND_ENABLE = yes # Commands for debug and configuration
|
||||
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
|
||||
MIDI_ENABLE = no # MIDI controls
|
||||
AUDIO_ENABLE = yes # Audio output on port C6
|
||||
UNICODE_ENABLE = no # Unicode
|
||||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
|
||||
|
||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
#ifndef CONFIG_USER_H
|
||||
|
||||
#define CONFIG_USER_H
|
||||
#define TAPPING_TERM 200
|
||||
#include "../../config.h"
|
||||
#define PERMISSIVE_HOLD
|
||||
|
||||
#endif
|
||||
@@ -1,97 +0,0 @@
|
||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
|
||||
#include "planck.h"
|
||||
|
||||
#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 )
|
||||
};
|
||||
@@ -1,3 +0,0 @@
|
||||
TAP_DANCE_ENABLE = yes
|
||||
MOUSEKEY_ENABLE = yes
|
||||
|
||||
@@ -1,29 +0,0 @@
|
||||
#ifndef CONFIG_USER_H
|
||||
#define CONFIG_USER_H
|
||||
|
||||
#include "../../config.h"
|
||||
|
||||
/*
|
||||
* MIDI options
|
||||
*/
|
||||
|
||||
/* Prevent use of disabled MIDI features in the keymap */
|
||||
//#define MIDI_ENABLE_STRICT 1
|
||||
|
||||
/* enable basic MIDI features:
|
||||
- MIDI notes can be sent when in Music mode is on
|
||||
*/
|
||||
#define MIDI_BASIC
|
||||
|
||||
/* enable advanced MIDI features:
|
||||
- MIDI notes can be added to the keymap
|
||||
- Octave shift and transpose
|
||||
- Virtual sustain, portamento, and modulation wheel
|
||||
- etc.
|
||||
*/
|
||||
//#define MIDI_ADVANCED
|
||||
|
||||
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
|
||||
//#define MIDI_TONE_KEYCODE_OCTAVES 2
|
||||
|
||||
#endif
|
||||
@@ -1,229 +0,0 @@
|
||||
|
||||
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
|
||||
#include "planck.h"
|
||||
#include "action_layer.h"
|
||||
#ifdef AUDIO_ENABLE
|
||||
#include "audio.h"
|
||||
#endif
|
||||
#include "eeconfig.h"
|
||||
|
||||
extern keymap_config_t keymap_config;
|
||||
|
||||
// Each layer gets a name for readability, which is then used in the keymap matrix below.
|
||||
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
|
||||
// Layer names don't all need to be of the same length, obviously, and you can also skip them
|
||||
// entirely and just use numbers.
|
||||
#define _QWERTY 0
|
||||
#define _LOWER 1
|
||||
#define _RAISE 2
|
||||
#define _MULTIMEDIA 3
|
||||
#define _ADJUST 4
|
||||
|
||||
enum planck_keycodes {
|
||||
QWERTY = SAFE_RANGE,
|
||||
LOWER,
|
||||
RAISE,
|
||||
BACKLIT
|
||||
};
|
||||
|
||||
// Func macro definitions.
|
||||
#define SFT_TAB FUNC(0) // Tap for Enter, hold for Shift
|
||||
|
||||
// Enable these functions using FUNC(n) macro.
|
||||
const uint16_t PROGMEM fn_actions[] = {
|
||||
[0] = ACTION_LAYER_TAP_KEY(_MULTIMEDIA, KC_TAB)
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
/* Qwerty
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Tab | A | S | D | F | G | H | J | K | L | ; | " |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Ctrl | GUI | AltGr| Alt | Lower| Space | Raise| Left | Down | Up |Right |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_QWERTY] = {
|
||||
{KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC},
|
||||
{SFT_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},
|
||||
{KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT },
|
||||
{KC_LCTL, KC_LGUI, KC_RALT, KC_LALT, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT}
|
||||
},
|
||||
|
||||
/* Lower
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | | | | | | | | | | | ( | ) |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Brite| | | | | | | | | | { | } |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | | | | [ | ] |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | Home | PgDwn| PgUp | End |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_LOWER] = {
|
||||
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LPRN, KC_RPRN},
|
||||
{BACKLIT, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LCBR, KC_RCBR},
|
||||
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC},
|
||||
{_______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END}
|
||||
},
|
||||
|
||||
/* Raise
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | - | = |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | | | | | ` |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | | | | \ | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | | | | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_RAISE] = {
|
||||
{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_BSLS, _______},
|
||||
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
|
||||
},
|
||||
|
||||
/* _MULTIMEDIA
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | Psc | | | | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | Mute | Vol+ | Vol- | | | |Insert|
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | Prev | Play | Next | Del |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_MULTIMEDIA] = {
|
||||
{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_MUTE, KC_VOLU, KC_VOLD, _______, _______, _______, KC_INS},
|
||||
{_______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_DEL}
|
||||
},
|
||||
|
||||
|
||||
/* Adjust (Lower + Raise)
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | | Reset| | | | | | | | | | Del |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty| | | | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | | | | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_ADJUST] = {
|
||||
{_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL},
|
||||
{_______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, _______, _______, _______, _______},
|
||||
{_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______},
|
||||
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
|
||||
}
|
||||
|
||||
|
||||
};
|
||||
|
||||
#ifdef AUDIO_ENABLE
|
||||
|
||||
float tone_startup[][2] = SONG(STARTUP_SOUND);
|
||||
float tone_qwerty[][2] = SONG(QWERTY_SOUND);
|
||||
float tone_dvorak[][2] = SONG(DVORAK_SOUND);
|
||||
float tone_colemak[][2] = SONG(COLEMAK_SOUND);
|
||||
float tone_plover[][2] = SONG(PLOVER_SOUND);
|
||||
float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND);
|
||||
float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
|
||||
|
||||
float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
|
||||
#endif
|
||||
|
||||
|
||||
void persistent_default_layer_set(uint16_t default_layer) {
|
||||
eeconfig_update_default_layer(default_layer);
|
||||
default_layer_set(default_layer);
|
||||
}
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
case QWERTY:
|
||||
if (record->event.pressed) {
|
||||
#ifdef AUDIO_ENABLE
|
||||
PLAY_SONG(tone_qwerty);
|
||||
#endif
|
||||
persistent_default_layer_set(1UL<<_QWERTY);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case LOWER:
|
||||
if (record->event.pressed) {
|
||||
layer_on(_LOWER);
|
||||
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
||||
} else {
|
||||
layer_off(_LOWER);
|
||||
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case RAISE:
|
||||
if (record->event.pressed) {
|
||||
layer_on(_RAISE);
|
||||
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
||||
} else {
|
||||
layer_off(_RAISE);
|
||||
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case BACKLIT:
|
||||
if (record->event.pressed) {
|
||||
register_code(KC_RSFT);
|
||||
#ifdef BACKLIGHT_ENABLE
|
||||
backlight_step();
|
||||
#endif
|
||||
} else {
|
||||
unregister_code(KC_RSFT);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void matrix_init_user(void) {
|
||||
#ifdef AUDIO_ENABLE
|
||||
startup_user();
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef AUDIO_ENABLE
|
||||
|
||||
void startup_user()
|
||||
{
|
||||
_delay_ms(20); // gets rid of tick
|
||||
PLAY_SONG(tone_startup);
|
||||
}
|
||||
|
||||
void shutdown_user()
|
||||
{
|
||||
PLAY_SONG(tone_goodbye);
|
||||
_delay_ms(150);
|
||||
stop_all_notes();
|
||||
}
|
||||
|
||||
void music_on_user(void)
|
||||
{
|
||||
music_scale_user();
|
||||
}
|
||||
|
||||
void music_scale_user(void)
|
||||
{
|
||||
PLAY_SONG(music_scale);
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -1,14 +0,0 @@
|
||||
# Dbroqua Layout
|
||||
|
||||

|
||||
|
||||
* Online keyboard layout editor: http://www.keyboard-layout-editor.com/#/gists/e77306f9d14cc93fa26123b93b106474
|
||||
* Online keyboard layout editor (lower layer): http://www.keyboard-layout-editor.com/#/gists/786e03f6fbd274cb4f4e77a3d67f85fa
|
||||
* Online keyboard layout editor (raise layer): http://www.keyboard-layout-editor.com/#/gists/2e22c71f6910103c20d595d1caa713d6
|
||||
* Online keyboard layout editor (multimedia layer): http://www.keyboard-layout-editor.com/#/gists/132ebf8053508a7a81dfa8e0756edb40
|
||||
|
||||
# Programming Instructions:
|
||||
Enter into programming mode and run the following command.
|
||||
```
|
||||
$ sudo KEYMAP=dbroqua make dfu
|
||||
```
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user