Remove keymaps that still reference legacy macros (#18693)
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,113 +0,0 @@
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
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 LT(_LOWER, KC_PGDN) // Tap for PgDn, hold for LOWER
|
||||
#define RSE_PGUP LT(_RAISE, KC_PGUP) // Tap for PgUp, hold for RAISE
|
||||
#define CTL_CAPS MT(MOD_LCTL, KC_CAPS) // Tap for Caps, hold for Ctrl (DOESN'T SEEM TO WORK)
|
||||
#define SFT_ENT MT(MOD_RSFT, KC_ENT) // Tap for Enter, hold for Shift
|
||||
#define ZM_NRM C(KC_0) // Zoom normal
|
||||
#define ZM_IN C(KC_MINS) // Zoom out
|
||||
#define ZM_OUT C(KC_PLUS) // Zoom in
|
||||
#define EM_UNDO C(KC_UNDS) // Emacs Undo
|
||||
|
||||
// This config can be found at Keyboard layout editor site: http://goo.gl/zjXL2l
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_QWERTY] = LAYOUT_planck_grid( /* 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] = LAYOUT_planck_grid( /* 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] = LAYOUT_planck_grid( /* 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,
|
||||
QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_PGUP, KC_TRNS, EM_UNDO, KC_VOLD, KC_VOLU, KC_MUTE
|
||||
),
|
||||
[_CUSTOM] = LAYOUT_planck_grid( /* 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 # Enable Bootmagic Lite
|
||||
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,45 +0,0 @@
|
||||
#include QMK_KEYBOARD_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] = LAYOUT_planck_grid( /* 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] = LAYOUT_planck_grid( /* 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] = LAYOUT_planck_grid( /* 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 # Enable Bootmagic Lite
|
||||
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,32 +0,0 @@
|
||||
#ifndef CONFIG_USER_H
|
||||
#define CONFIG_USER_H
|
||||
|
||||
#include "../../config.h"
|
||||
|
||||
/*
|
||||
* MIDI options
|
||||
*/
|
||||
|
||||
/* 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,395 +0,0 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
#include "keymap_plover.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))
|
||||
|
||||
#define LT_NAVS LT(NAVIGATION_LAYER, KC_SCLN)
|
||||
#define LT_NAVO LT(NAVIGATION_LAYER, KC_O)
|
||||
#define LT_GUIL LT(GUI_LAYER, KC_LBRC)
|
||||
#define LT_GUIR LT(GUI_LAYER, KC_RBRC)
|
||||
|
||||
// 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] = LAYOUT_planck_grid(
|
||||
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,
|
||||
MT(MOD_LCTL, KC_TAB), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, LT_NAVS, MT(MOD_RCTL, KC_ENT),
|
||||
KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC,
|
||||
LT_GUIL, ALL_T(KC_RBRC), M(LALT_BRACE), KC_LGUI, LOWER, KC_SPC, KC_BSPC, RAISE, KC_RGUI, M(RALT_BRACE), ALL_T(KC_LBRC), LT_GUIR
|
||||
),
|
||||
|
||||
/* 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] = LAYOUT_planck_grid(
|
||||
_______, 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, LT_NAVO, _______,
|
||||
_______, 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] = LAYOUT_planck_grid(
|
||||
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] = LAYOUT_planck_grid(
|
||||
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),
|
||||
MT(MOD_LCTL, KC_TAB), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, MT(MOD_RCTL, KC_ENT),
|
||||
KC_LSPO, KC_MINS, KC_EQL, KC_GRV, KC_BSLS, ___x___, KC_NDSH, KC_MDSH, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC,
|
||||
LT_GUIL, ALL_T(KC_LBRC), M(LALT_BRACE), KC_LGUI, LOWER, KC_BSPC, KC_BSPC, RAISE, KC_RGUI, M(RALT_BRACE), ALL_T(KC_RBRC), LT_GUIR
|
||||
),
|
||||
|
||||
/* Symbol layer
|
||||
* ,-----------------------------------------------------------------------.
|
||||
* | | F11 | F12 | F13 | F14 | F15 | F16 | F17 | F18 | F19 | F20 | # |
|
||||
* |-----------------------------------------------------------------------|
|
||||
* | | ! | @ | # | $ | % | ^ | & | * | ' | " | | \
|
||||
* |-----------------------------------------------------------------------| |-- Mostly shifted version
|
||||
* | | _ | + | ~ | | | |ndash|mdash| , | . | / | | / of lower layer
|
||||
* |-----------------------------------------------------------------------|
|
||||
* | | | | | | Delete | | | | | |
|
||||
* `-----------------------------------------------------------------------'
|
||||
*/
|
||||
[RAISE_LAYER] = LAYOUT_planck_grid(
|
||||
_______, 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] = LAYOUT_planck_grid(
|
||||
___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, LT_NAVS, _______,
|
||||
_______, ___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] = LAYOUT_planck_grid(
|
||||
_______, 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] = LAYOUT_planck_grid(
|
||||
___x___, QK_BOOT, ___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 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_LEFT_BRACKET);
|
||||
unregister_code(KC_LEFT_BRACKET);
|
||||
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_RIGHT_BRACKET);
|
||||
unregister_code(KC_RIGHT_BRACKET);
|
||||
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,43 +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/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#ifndef NO_DEBUG
|
||||
#define NO_DEBUG
|
||||
#endif
|
||||
#ifndef NO_PRINT
|
||||
#define NO_PRINT
|
||||
#endif
|
||||
|
||||
#include "../../config.h"
|
||||
|
||||
#define LEADER_TIMEOUT 300
|
||||
|
||||
#ifndef KEYBOARD_planck_light
|
||||
#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
|
||||
@@ -1,359 +0,0 @@
|
||||
#include QMK_KEYBOARD_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] = LAYOUT_planck_grid( /* 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] = LAYOUT_planck_grid( /* 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] = LAYOUT_planck_grid( /* 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] = LAYOUT_planck_grid( /* 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] = LAYOUT_planck_grid( /* Adjustments - gonna shift the wild tools in here */
|
||||
ROT_LED,USERNAME,MVERSION, _______, _______, _______, _______, _______, _______, _______, _______, _______ ,
|
||||
_______, RANDDIG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ,
|
||||
_______, RANDALP, _______, _______, _______, QK_BOOT, QK_BOOT, _______, _______, _______, _______, _______ ,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
)
|
||||
};
|
||||
|
||||
/* 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,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 # Enable Bootmagic Lite
|
||||
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.
|
||||
|
||||
# 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,368 +0,0 @@
|
||||
|
||||
#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.
|
||||
#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] = 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,
|
||||
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, MT(MOD_RSFT, KC_ENT),
|
||||
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] = 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,
|
||||
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] = LAYOUT_planck_grid(
|
||||
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] = 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_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] = LAYOUT_planck_grid(
|
||||
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] = LAYOUT_planck_grid(
|
||||
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] = LAYOUT_planck_grid(
|
||||
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] = LAYOUT_planck_grid(
|
||||
_______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, 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 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,33 +0,0 @@
|
||||
#ifndef CONFIG_USER_H
|
||||
#define CONFIG_USER_H
|
||||
|
||||
#include "../../config.h"
|
||||
|
||||
/*
|
||||
* MIDI options
|
||||
*/
|
||||
|
||||
/* 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 100
|
||||
#define MOUSEKEY_MAX_SPEED 10
|
||||
#define MOUSEKEY_WHEEL_DELAY 0
|
||||
|
||||
#endif
|
||||
@@ -1,264 +0,0 @@
|
||||
// Can't Remember Sh*t Keymap for Planck
|
||||
// http://www.keyboard-layout-editor.com/#/gists/c6c0ac051b2b118a34ef84ebadab54c7
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
extern keymap_config_t keymap_config;
|
||||
|
||||
|
||||
enum planck_layers {
|
||||
_QWERTY,
|
||||
_ARROW,
|
||||
_GAME,
|
||||
_LOWER,
|
||||
_RAISE,
|
||||
_PLOVER,
|
||||
_ADJUST
|
||||
};
|
||||
|
||||
|
||||
enum planck_keycodes {
|
||||
QWERTY = SAFE_RANGE,
|
||||
ARROW,
|
||||
GAME,
|
||||
LOWER,
|
||||
RAISE,
|
||||
BACKLIT,
|
||||
PLOVER,
|
||||
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 | Lower| Space |Raise | [ | - | = | ] |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_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,
|
||||
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, SFT_T(KC_ENT) ,
|
||||
KC_LCTL, KC_LGUI, KC_BSLS, KC_LALT, LOWER, KC_SPC, KC_SPC, RAISE, LT(_LOWER, KC_LBRC), KC_MINS, KC_EQL, MT(MOD_RCTL, KC_RBRC)
|
||||
),
|
||||
|
||||
/* Arrow
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | 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 | Lower| Space |Raise | Left | Down | Up | Right|
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_ARROW] = 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,
|
||||
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, SFT_T(KC_ENT) ,
|
||||
KC_LCTL, KC_LGUI, KC_BSLS, KC_LALT, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT
|
||||
),
|
||||
|
||||
|
||||
/* Game
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | 1 | Q | W | E | R | T | Y | U | I | O | P | Bksp |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* |Shift | A | S | D | F | G | H | J | K | L | ; | ' |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | Ctrl | Z | X | C | V | B | N | M | , | . | / |Enter |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Alt | 4 | 3 | 2 | Lower| Space |Raise | Left | Down | Up | Right|
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_GAME] = LAYOUT_planck_grid(
|
||||
KC_1, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
|
||||
KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
|
||||
KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______ ,
|
||||
KC_LALT, KC_4, KC_3, KC_2, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT
|
||||
),
|
||||
|
||||
|
||||
/* Lower (switched to # because KP# were weird in terminal emulators)
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | Del | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | Tab | F1 | F2 | F3 | F4 | F5 | F6 | 4 | 5 | 6 | . | * |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | F7 | F8 | F9 | F10 | F11 | F12 | 1 | 2 | 3 | / |Enter |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Esc | | | | | 0 | | | | KP_+ | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_LOWER] = LAYOUT_planck_grid(
|
||||
KC_DEL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______,
|
||||
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_4, KC_5, KC_6, KC_DOT, KC_ASTR,
|
||||
_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_1, KC_2, KC_3, KC_SLSH, _______,
|
||||
KC_ESC, _______, _______, _______, _______, KC_0, KC_0, _______, _______, _______, KC_PLUS, _______
|
||||
),
|
||||
|
||||
/* Raise
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | Del | Wh Up|RightC| M-Up | LeftC|QWERTY| Left | Down | Up | Right| | | ` |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | | Wh Dn| M-L | M-Dn | M-R | | - | = | [ | ] | \ | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | App | | | | Ins | | Home | PGDN | PGUP | End |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_RAISE] = 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_DEL,
|
||||
KC_DEL, KC_WH_U, KC_BTN2, KC_MS_U, KC_BTN1, QWERTY, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_PIPE, KC_GRV,
|
||||
_______, KC_WH_D, KC_MS_L, KC_MS_D, KC_MS_R, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLASH, _______,
|
||||
_______, KC_APP, _______, _______, _______, KC_INS, KC_INS, _______, 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] = LAYOUT_planck_grid(
|
||||
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)
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | C-A-I|Qwerty| | |Reset |Macro0| | | | |PLOVER|C-A-D |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | Caps | Arrow| |Aud on|Audoff| Game |AGswap|AGnorm| PrtSc|ScrLck| Break| |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | |Voice-|Voice+|Mus on|Musoff| Prev | Next | Mute | VolDn| VolUp| | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Brite| | | | | Play/Pause | | BL_T |BL_DEC|BL_INC|BL_ST |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_ADJUST] = LAYOUT_planck_grid(
|
||||
LALT(LCTL(KC_INS)), QWERTY, _______, _______, QK_BOOT, M(0), _______, _______, _______, _______, PLOVER, LALT(LCTL(KC_DEL)),
|
||||
KC_CAPS, ARROW, _______, AU_ON, AU_OFF, GAME, AG_SWAP, AG_NORM, KC_PSCR, KC_SLCK, KC_PAUS, _______,
|
||||
_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, KC_MPRV, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______,
|
||||
BACKLIT, _______, _______, _______, _______, KC_MPLY, KC_MPLY, _______, BL_TOGG, BL_DEC , BL_INC , BL_STEP
|
||||
)
|
||||
|
||||
|
||||
};
|
||||
|
||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) // this is the function signature -- just copy/paste it into your keymap file as it is.
|
||||
{
|
||||
switch(id) {
|
||||
case 0: // this would trigger when you hit a key mapped as M(0)
|
||||
if (record->event.pressed) {
|
||||
return MACRO( D(LSFT), T(LEFT), U(LSFT), D(LCTL), T(X), U(LCTL), T(RIGHT), D(LCTL), T(V), U(LCTL), T(LEFT), END ); // this swaps the characters on either side of the cursor when the macro executes
|
||||
}
|
||||
break;
|
||||
}
|
||||
return MACRO_NONE;
|
||||
};
|
||||
|
||||
#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 ARROW:
|
||||
if (record->event.pressed) {
|
||||
set_single_persistent_default_layer(_ARROW);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case GAME:
|
||||
if (record->event.pressed) {
|
||||
set_single_persistent_default_layer(_GAME);
|
||||
}
|
||||
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,12 +0,0 @@
|
||||
# CRS Planck Layout
|
||||
Goals:
|
||||
|
||||
*Maximum compatibility with standard keyboards
|
||||
* I have to work on other staggered Qwerty keyboards all the time so I wanted to keep essentially the same layout instead of optimizing too much.
|
||||
* Trying to fit as many characters as possible on the default layer
|
||||
* its easier for me to remember logical functions than characters
|
||||
* Using the extra punctuation caps in place of arrows frees up some Row 4 caps
|
||||
* however, I'm trying out an arrows layout with the other punctuation on the Raise layer and it is quite nice too
|
||||
* A number pad AND a number row
|
||||
|
||||
[Here is the layout in easily readable KLE form.](http://www.keyboard-layout-editor.com/#/gists/c6c0ac051b2b118a34ef84ebadab54c7)
|
||||
@@ -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 # Enable Bootmagic Lite
|
||||
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 = 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,133 +0,0 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
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 _CUS0 5 // Mobile#
|
||||
#define _CUS1 6 // signature
|
||||
#define _CUS2 7 // macro 2
|
||||
#define _CUS3 8 // macro 3
|
||||
#define _CUS4 9 // macro 4
|
||||
#define _CUS5 10 // email
|
||||
#define _COPY 11 // copy
|
||||
#define _PASTE 12 // paste
|
||||
#define _CUT 13 // cut
|
||||
|
||||
// Macro shortcuts.
|
||||
#define QWERTY M(_LOWER)
|
||||
#define LOWER M(_LOWER)
|
||||
#define RAISE M(_RAISE)
|
||||
#define CUSTOM M(_CUSTOM)
|
||||
#define BL M(_BL)
|
||||
#define CUS0 M(_CUS0)
|
||||
#define CUS1 M(_CUS1)
|
||||
#define CUS2 M(_CUS2)
|
||||
#define CUS3 M(_CUS3)
|
||||
#define CUS4 M(_CUS4)
|
||||
#define CUS5 M(_CUS5)
|
||||
#define COPY M(_COPY)
|
||||
#define PASTE M(_PASTE)
|
||||
#define CUT M(_CUT)
|
||||
|
||||
// Func macro definitions.
|
||||
#define LWR_PGDN LT(_LOWER, KC_PGDN) // Tap for PgDn, hold for LOWER
|
||||
#define RSE_PGUP LT(_RAISE, KC_PGUP) // Tap for PgUp, hold for RAISE
|
||||
#define CTL_CAPS MT(MOD_LCTL, KC_CAPS) // Tap for Caps, hold for Ctrl (DOESN'T SEEM TO WORK)
|
||||
#define SFT_ENT MT(MOD_RSFT, KC_ENT) // Tap for Enter, hold for Shift
|
||||
#define ZM_NRM C(KC_0) // Zoom normal
|
||||
#define ZM_IN C(KC_MINS) // Zoom out
|
||||
#define ZM_OUT C(KC_PLUS) // Zoom in
|
||||
|
||||
// This config can be found at Keyboard layout editor site: https://goo.gl/cF7uIO
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_QWERTY] = LAYOUT_planck_grid( /* 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_DEL, 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, 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] = LAYOUT_planck_grid( /* LOWER */
|
||||
KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_UNDS, KC_LPRN, KC_RPRN, KC_LCBR, KC_RCBR, KC_MINS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_QUOT, KC_DQT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, ZM_NRM, ZM_IN, ZM_OUT, KC_TRNS, KC_PGDN, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
[_RAISE] = LAYOUT_planck_grid( /* RAISE */
|
||||
KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_UNDS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_EQL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PLUS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BSLS, KC_PIPE, KC_GRV, KC_TILD, S(KC_COMM), S(KC_DOT), KC_BSLS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_PGUP, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
|
||||
),
|
||||
[_CUSTOM] = LAYOUT_planck_grid( /* CUSTOM */
|
||||
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, CUS0, CUS3, CUS4, KC_TRNS, KC_F12, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, CUT, COPY, PASTE, CUS1, CUS5, CUS2, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
BL, QK_BOOT, LALT(LCTL(KC_DEL)), 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 _CUS0: // enter your mobile# here
|
||||
return MACRODOWN(T(9), T(9), T(9), T(MINS),T(9), T(9), T(9), T(MINS),T(9), T(9), T(9), T(9),END);
|
||||
case _CUS1: // signature line for email
|
||||
return MACRODOWN(T(ENT), T(ENT), T(MINS), T(J), T(W), END);
|
||||
case _CUS2: // Custom macro 2
|
||||
return MACRODOWN( DOWN(KC_LSFT), TYPE(KC_L), UP(KC_LSFT), END );
|
||||
case _CUS3: // custom macro 3
|
||||
return MACRODOWN( DOWN(KC_LSFT), TYPE(KC_F), UP(KC_LSFT), END );
|
||||
case _CUS4: // custom macro 4
|
||||
return MACRODOWN( DOWN(KC_LSFT), TYPE(KC_I), UP(KC_LSFT), END );
|
||||
case _CUS5: // Enter your email here
|
||||
return MACRODOWN( TYPE(KC_F),
|
||||
DOWN(KC_LSFT), TYPE(KC_2), UP(KC_LSFT),
|
||||
TYPE(KC_G), TYPE(KC_M), TYPE(KC_A), TYPE(KC_I), TYPE(KC_L), TYPE(KC_DOT), TYPE(KC_C), TYPE(KC_O), TYPE(KC_M), END );
|
||||
case _CUT: //cut macro
|
||||
return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_X), UP(KC_LCTL), END );
|
||||
case _COPY: // copy macro
|
||||
return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_C), UP(KC_LCTL), END );
|
||||
case _PASTE: // paste macro
|
||||
return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_V), UP(KC_LCTL), END );
|
||||
};
|
||||
return MACRO_NONE;
|
||||
}
|
||||
@@ -1,290 +0,0 @@
|
||||
[
|
||||
{
|
||||
"backcolor": "#858585",
|
||||
"name": "Planck 40%",
|
||||
"author": "James Folkert",
|
||||
"notes": "# Espynn's keymap for Planck Ortholinear 40% Mechanical Keyboard\nAdded several custom functions to the keymap from the \"ab\" map. Special thanks to \"mollat\" for demonstration of macros in their keymap.c\n \n\n\n\n* Online keyboard layout editor: http://goo.gl/mlLAFZ\n\n# Notes\n* Front legend text is the custom layer (both raise and lower)\n* Holding is denoted by down arrow, for example, right shift is an enter button when tapped, shift when held\n* Simultaneous RAISE+LOWER enters CUSTOM layer. Several custom keymaps are here\n* I disregarded the advice of Jack and used macros for passwords. I accept my fate.\n* RAISE and LOWER also acts as PgUp and PgDn when tapped.\n* [CapsLock] also acts as [Ctrl] key when you press and hold. It is convenient for GNU Emacs users. (not sure if this works)\n* Bracket/ paran/ brace keys are placed in the center of the keyboard for programmer's convenience.",
|
||||
"background": {
|
||||
"name": "Aluminium brushed",
|
||||
"style": "background-image: url('/bg/metal/aluminum_texture1642.jpg');"
|
||||
},
|
||||
"switchMount": "cherry",
|
||||
"switchBrand": "cherry",
|
||||
"switchType": "MX1A-A1xx",
|
||||
"pcb": true,
|
||||
"plate": true
|
||||
},
|
||||
[
|
||||
{
|
||||
"fa": [
|
||||
2,
|
||||
2,
|
||||
0,
|
||||
0
|
||||
]
|
||||
},
|
||||
"!\n1\n\n\nF1\n\n\n\n\n<i class='kb kb-Tab-2'></i>",
|
||||
"@\n2\n\n\nF2\n\n\n\n\nQ",
|
||||
"#\n3\n\n\nF3\n\n\n\n\nW",
|
||||
"$\n4\n\n\nF4\n\n\n\n\nE",
|
||||
"%\n5\n\n\nF5\n\n\n\n\nR",
|
||||
"^\n6\n\n\nF6\n\n\n\n\nT",
|
||||
"&\n7\n\n\nF7\n\n\n\n\nY",
|
||||
"*\n8\n\n\nF8\n\n\n\n\nU",
|
||||
"(\n9\n\n\nF9\n\n\n\n\nI",
|
||||
{
|
||||
"fa": [
|
||||
2,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
]
|
||||
},
|
||||
")\n0\n\n\nF10\n\n\n\n\nO",
|
||||
{
|
||||
"fa": [
|
||||
2,
|
||||
2,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
]
|
||||
},
|
||||
"_\n-\n\n\nF11\n\n\n\n\nP",
|
||||
{
|
||||
"a": 7,
|
||||
"f": 3
|
||||
},
|
||||
"<i class='kb kb-Unicode-BackSpace-DeleteLeft-Big'></i>"
|
||||
],
|
||||
[
|
||||
{
|
||||
"f": 3
|
||||
},
|
||||
"<i class='mss mss-Unicode-DeleteRight-Big-2'></i>",
|
||||
{
|
||||
"f": 3
|
||||
},
|
||||
"A",
|
||||
{
|
||||
"f": 3
|
||||
},
|
||||
"S",
|
||||
{
|
||||
"a": 4,
|
||||
"f": 3
|
||||
},
|
||||
"=\n_\n\n\n\n\n\n\n\nD",
|
||||
{
|
||||
"t": "#ff0000",
|
||||
"f": 3
|
||||
},
|
||||
"\n(\n\n\n\n\n\n\n\nF",
|
||||
{
|
||||
"t": "#000000",
|
||||
"f": 3
|
||||
},
|
||||
"\n)\n\n\n\n\n\n\n\nG",
|
||||
{
|
||||
"f": 3
|
||||
},
|
||||
"\n{\n\n\nMacro0\n\n\n\n\nH",
|
||||
{
|
||||
"t": "#ff0000",
|
||||
"f": 3
|
||||
},
|
||||
"\n}\n\n\nMacro3\n\n\n\n\nJ",
|
||||
{
|
||||
"t": "#000000",
|
||||
"f": 3
|
||||
},
|
||||
"+\n-\n\n\nMacro4\n\n\n\n\nK",
|
||||
{
|
||||
"a": 7,
|
||||
"f": 3
|
||||
},
|
||||
"L",
|
||||
{
|
||||
"a": 6,
|
||||
"fa": [
|
||||
2,
|
||||
2,
|
||||
2
|
||||
]
|
||||
},
|
||||
"\n\n:\n\nF12\n\n\n\n;",
|
||||
{
|
||||
"a": 7,
|
||||
"fa": [
|
||||
9
|
||||
]
|
||||
},
|
||||
"<i class='mss mss-Unicode-Enter-3'></i>"
|
||||
],
|
||||
[
|
||||
{
|
||||
"f": 3
|
||||
},
|
||||
"Shift",
|
||||
{
|
||||
"f": 3
|
||||
},
|
||||
"Z",
|
||||
{
|
||||
"f": 3
|
||||
},
|
||||
"X\n\n\n\nCut",
|
||||
{
|
||||
"f": 3
|
||||
},
|
||||
"C\n\n\n\nCopy",
|
||||
{
|
||||
"a": 4,
|
||||
"fa": [
|
||||
2,
|
||||
2,
|
||||
0,
|
||||
0
|
||||
]
|
||||
},
|
||||
"\\\n[\n\n\nPaste\n\n\n\n\nV",
|
||||
"|\n]\n\n\nMacro1\n\n\n\n\nB",
|
||||
"`\n'\n\n\nMacro5\n\n\n\n\nN",
|
||||
"~\n\"\n\n\nMacro2\n\n\n\n\nM",
|
||||
{
|
||||
"fa": [
|
||||
2,
|
||||
2,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
2
|
||||
]
|
||||
},
|
||||
"<\n\n\n\n\n\n\n<\n\n,",
|
||||
{
|
||||
"fa": [
|
||||
2,
|
||||
2,
|
||||
0
|
||||
]
|
||||
},
|
||||
">\n\n\n\n\n\n\n>\n\n.",
|
||||
{
|
||||
"fa": [
|
||||
0,
|
||||
2,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
2
|
||||
]
|
||||
},
|
||||
"\\\n\n\n\n\n\n\n?\n\n/",
|
||||
{
|
||||
"fa": [
|
||||
0,
|
||||
2,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
2,
|
||||
9
|
||||
]
|
||||
},
|
||||
"\n\n\n<i class='kb kb-Arrows-Bottom-4'></i>Shift\n\n\n\n\n<i class='mss mss-Unicode-Enter-3'></i>\n\n<i class='kb kb-Arrows-Bottom-4'></i>Shift"
|
||||
],
|
||||
[
|
||||
{
|
||||
"a": 7
|
||||
},
|
||||
"Ctrl\n\n\n\nBLight",
|
||||
{
|
||||
"a": 4,
|
||||
"fa": [
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
2,
|
||||
9,
|
||||
9
|
||||
]
|
||||
},
|
||||
"\nZNorm\n\n\nRESET\n\n\n\n\n<i class='mss mss-Unicode-Escape-3'></i>",
|
||||
{
|
||||
"fa": [
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
2,
|
||||
9,
|
||||
6
|
||||
]
|
||||
},
|
||||
"\nZIn\n\n\nc.a.del\n\n\n\n\n<i class='kb kb-logo-windows-8'></i>",
|
||||
{
|
||||
"fa": [
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
2,
|
||||
9,
|
||||
9
|
||||
]
|
||||
},
|
||||
"\nZOut\n\n\n\n\n\n\n\n<i class='kb kb-Unicode-Alternate-1'></i>",
|
||||
{
|
||||
"a": 7,
|
||||
"fa": [
|
||||
9
|
||||
]
|
||||
},
|
||||
"⇓",
|
||||
{
|
||||
"a": 4,
|
||||
"fa": [
|
||||
9,
|
||||
5,
|
||||
5
|
||||
],
|
||||
"w": 2
|
||||
},
|
||||
"\n<i class='kb kb-Unicode-Page-Down-3'></i>\n<i class='kb kb-Unicode-Page-Up-3'></i>",
|
||||
{
|
||||
"a": 7
|
||||
},
|
||||
"⇑",
|
||||
{
|
||||
"a": 4,
|
||||
"fa": [
|
||||
2
|
||||
]
|
||||
},
|
||||
"<i class='kb kb-Multimedia-FastForward-End'></i>\n\n\n\n\n\n\n\n\n←",
|
||||
"<i class='kb kb-Multimedia-Volume-Down-1'></i>\n\n\n\n\n\n\n\n\n↓",
|
||||
"<i class='kb kb-Multimedia-Volume-Up-1'></i>\n\n\n\n\n\n\n\n\n↑",
|
||||
"<i class='kb kb-Multimedia-Play-Pause'></i>\n\n\n\n\n\n\n\n\n→"
|
||||
]
|
||||
]
|
||||
@@ -1,24 +0,0 @@
|
||||
# Espynn's keymap for Planck Ortholinear 40% Mechanical Keyboard
|
||||
Created by James Folkert: https://twitter.com/trekloFsemaJ
|
||||
Added several custom functions to the keymap from the "ab" map. Special thanks to "mollat" for demonstration of macros in their keymap.c
|
||||
|
||||
|
||||

|
||||
|
||||
|
||||
* Online keyboard layout editor: http://www.keyboard-layout-editor.com/
|
||||
* [JSON of raw layout] (layout.json "JSON of raw layout")
|
||||
|
||||
# Notes
|
||||
* Simultaneous RAISE+LOWER enters CUSTOM layer. Several custom keymaps are here
|
||||
* I disregarded the advice of Jack and used macros for passwords. I accept my fate. These have been abstracted to macros 2, 3, and 4
|
||||
* add your mobile and email to the keymap before make
|
||||
* RAISE and LOWER also acts as PgUp and PgDn when tapped.
|
||||
* Bracket/ paran/ brace keys are placed in the center of the keyboard for programmer's convenience.
|
||||
|
||||
## changes
|
||||
* Removed some unneeded keys from raise and lower layers
|
||||
* moved the + and = signs, backspace is now more intuitive
|
||||
* moved all the Function keys to CUSTOM layer
|
||||
* added ctrl alt del to CUSTOM layer
|
||||
* simplified the layout picture greatly
|
||||
@@ -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 # Enable Bootmagic Lite
|
||||
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,48 +0,0 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
//Simple Keymap where CTRL, WINKEY, and ALT keys are placed in a more familiar location for Windows users.
|
||||
//Focus of this particular keymap is to enable easy transition from more traditional keyboards to OLKB Planck.
|
||||
|
||||
// Each layer gets a name for readability, which is then used in the keymap matrix below.
|
||||
#define _QW 0
|
||||
#define _LW 1
|
||||
#define _RS 2
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_QW] = LAYOUT_planck_grid( /* 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, MT(MOD_RSFT, KC_ENT),
|
||||
KC_LCTL, KC_LGUI, KC_LALT, M(0), MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
|
||||
),
|
||||
[_RS] = LAYOUT_planck_grid( /* RAISE */
|
||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL ,
|
||||
KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||
KC_TRNS, 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
[_LW] = LAYOUT_planck_grid( /* LOWER */
|
||||
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL ,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
|
||||
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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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);
|
||||
#ifdef BACKLIGHT_ENABLE
|
||||
backlight_step();
|
||||
#endif
|
||||
} else {
|
||||
unregister_code(KC_RSFT);
|
||||
}
|
||||
break;
|
||||
}
|
||||
return MACRO_NONE;
|
||||
};
|
||||
@@ -1,3 +0,0 @@
|
||||
Focus of this particular keymap is to enable easy transition from more traditional keyboards to OLKB Planck.
|
||||
|
||||

|
||||
@@ -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 # Enable Bootmagic Lite
|
||||
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,26 +0,0 @@
|
||||
#ifndef CONFIG_USER_H
|
||||
#define CONFIG_USER_H
|
||||
|
||||
#include "../../config.h"
|
||||
|
||||
/*
|
||||
* MIDI options
|
||||
*/
|
||||
|
||||
/* 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,448 +0,0 @@
|
||||
|
||||
#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.
|
||||
#define _QWERTY 0
|
||||
#define _COLEMAK 1
|
||||
#define _DVORAK 2
|
||||
#define _LOWER 3
|
||||
#define _RAISE 4
|
||||
#define _PLOVER 5
|
||||
#define _TOUCHCURSOR 6
|
||||
#define _MOUSECURSOR 7
|
||||
#define _ADJUST 16
|
||||
|
||||
// Keycodes
|
||||
enum planck_keycodes {
|
||||
QWERTY = SAFE_RANGE,
|
||||
COLEMAK,
|
||||
DVORAK,
|
||||
PLOVER,
|
||||
LOWER,
|
||||
RAISE,
|
||||
BACKLIT,
|
||||
EXT_PLV
|
||||
};
|
||||
|
||||
enum macro_keycodes {
|
||||
KC_ALT_TAB,
|
||||
KC_CMD_TAB,
|
||||
KC_CTL_TAB,
|
||||
KC_CMD_SLSH,
|
||||
KC_AG_FIND,
|
||||
KC_AG_AGAIN,
|
||||
KC_AG_UNDO,
|
||||
KC_AG_CUT,
|
||||
KC_AG_COPY,
|
||||
KC_AG_PASTE,
|
||||
KC_AG_DESK_L,
|
||||
KC_AG_DESK_R,
|
||||
KC_AG_TAB_C,
|
||||
KC_AG_TAB_N,
|
||||
KC_AG_TAB_R,
|
||||
};
|
||||
|
||||
// Custom macros
|
||||
#define CTL_ESC CTL_T(KC_ESC) // Tap for Esc, hold for Ctrl
|
||||
#define SFT_ENT SFT_T(KC_ENT) // Tap for Enter, hold for Shift
|
||||
#define HPR_TAB ALL_T(KC_TAB) // Tap for Tab, hold for Hyper
|
||||
#define GUI_SEM GUI_T(KC_SCLN) // Tap for Semicolon, hold for GUI
|
||||
#define ALT_QUO ALT_T(KC_QUOT) // Tap for Quote, hold for Alt
|
||||
// Requires KC_TRNS/_______ for the trigger key in the destination layer
|
||||
#define LT_TC LT(_TOUCHCURSOR, KC_SPC) // L-ayer T-ap T-ouch C-ursor
|
||||
#define LT_MC(kc) LT(_MOUSECURSOR, kc) // L-ayer T-ap M-ouse C-ursor
|
||||
#define ALT_TAB M(KC_ALT_TAB) // Macro for Alt-Tab
|
||||
#define CMD_TAB M(KC_CMD_TAB) // Macro for Cmd-Tab
|
||||
#define CTL_TAB M(KC_CTL_TAB) // Macro for Ctl-Tab
|
||||
#define CMD_SLSH M(KC_CMD_SLSH) // Macro for Cmd-Slash (personal shortcut to toggle iTerm2 visibility)
|
||||
#define AG_FIND M(KC_AG_FIND) // Macros for Cmd-[x] vs Ctrl-[x] based on current AG_NORM or AG_SWAP settings
|
||||
#define AG_AGAIN M(KC_AG_AGAIN)
|
||||
#define AG_UNDO M(KC_AG_UNDO)
|
||||
#define AG_CUT M(KC_AG_CUT)
|
||||
#define AG_COPY M(KC_AG_COPY)
|
||||
#define AG_PASTE M(KC_AG_PASTE)
|
||||
#define AG_D_L M(KC_AG_DESK_L) // For Virtual Desktop Switching: Left, and
|
||||
#define AG_D_R M(KC_AG_DESK_R) // Right
|
||||
#define AG_T_C M(KC_AG_TAB_C) // For Chrome, etc. Tab Close,
|
||||
#define AG_T_N M(KC_AG_TAB_N) // Tab New, and
|
||||
#define AG_T_R M(KC_AG_TAB_R) // Tab Reopen Closed
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
/* Qwerty
|
||||
* ,-----------------------------------------------------------------------------------------.
|
||||
* | Hyper/Tab| Q | W | E | R | T | Y | U | I | O | P | Bksp |
|
||||
* |----------+------+------+------+------+-------------+------+------+------+------+--------|
|
||||
* | Ctrl/Esc | A | S | MC/D | F | G | H | J | K | L |GUI/; | Alt/" |
|
||||
* |----------+------+------+------+------+------|------+------+------+------+------+--------|
|
||||
* | Shift | Z | X | C | V | B | N | M | , | . | / |Sft/Ent |
|
||||
* |----------+------+------+------+------+------+------+------+------+------+------+--------|
|
||||
* | PrntScrn | RGUI | Alt | GUI |Lower | TC/Space |Raise | Next | Vol- | Vol+ | Play |
|
||||
* `-----------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_QWERTY] = LAYOUT_planck_grid(
|
||||
HPR_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, KC_A, KC_S, LT_MC(KC_D),KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, GUI_SEM, ALT_QUO,
|
||||
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_PSCR, KC_RGUI, KC_LALT, KC_LGUI, LOWER, LT_TC, LT_TC, RAISE, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
|
||||
),
|
||||
|
||||
/* Colemak
|
||||
* ,-----------------------------------------------------------------------------------------.
|
||||
* | Hyper/Tab| Q | W | F | P | G | J | L | U | Y | ; | Bksp |
|
||||
* |----------+------+------+------+------+-------------+------+------+------+------+--------|
|
||||
* | Ctrl/Esc | A | R | MC/S | T | D | H | N | E | I | O | " |
|
||||
* |----------+------+------+------+------+------|------+------+------+------+------+--------|
|
||||
* | Shift | Z | X | C | V | B | K | M | , | . | / |Sft/Ent |
|
||||
* |----------+------+------+------+------+------+------+------+------+------+------+--------|
|
||||
* | PrntScrn | RGUI | Alt | GUI |Lower | TC/Space |Raise | Next | Vol- | Vol+ | Play |
|
||||
* `-----------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_COLEMAK] = LAYOUT_planck_grid(
|
||||
HPR_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, KC_A, KC_R, LT_MC(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_ENT,
|
||||
KC_PSCR, KC_RGUI, KC_LALT, KC_LGUI, LOWER, LT_TC, LT_TC, RAISE, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
|
||||
),
|
||||
|
||||
/* Dvorak
|
||||
* ,-----------------------------------------------------------------------------------------.
|
||||
* | Hyper/Tab| " | , | . | P | Y | F | G | C | R | L | Bksp |
|
||||
* |----------+------+------+------+------+-------------+------+------+------+------+--------|
|
||||
* | Ctrl/Esc | A | O | MC/E | U | I | D | H | T | N | S | / |
|
||||
* |----------+------+------+------+------+------|------+------+------+------+------+--------|
|
||||
* | Shift | ; | Q | J | K | X | B | M | W | V | Z |Sft/Ent |
|
||||
* |----------+------+------+------+------+------+------+------+------+------+------+--------|
|
||||
* | PrntScrn | RGUI | Alt | GUI |Lower | TC/Space |Raise | Next | Vol- | Vol+ | Play |
|
||||
* `-----------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_DVORAK] = LAYOUT_planck_grid(
|
||||
HPR_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC,
|
||||
CTL_ESC, KC_A, KC_O, LT_MC(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, SFT_ENT,
|
||||
KC_PSCR, KC_RGUI, 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 | - | = | [ | ] | \ |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* |Brite | | | | | | | Prev | Stop | Slct | Mute |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_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_LBRC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
|
||||
KC_RBRC, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||
BACKLIT, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MSTP, KC_MSEL, KC_MUTE
|
||||
),
|
||||
|
||||
/* 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 | / | \ |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* |Brite | | | | | | | Prev | Stop | Slct | Mute |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_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_DLR, KC_4, KC_5, KC_6, KC_DOT, KC_PLUS, KC_DOT, KC_4, KC_5, KC_6, KC_ASTR, KC_PIPE,
|
||||
KC_EQL, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_DOT, KC_1, KC_2, KC_3, KC_SLSH, KC_BSLS,
|
||||
BACKLIT, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MSTP, KC_MSEL, KC_MUTE
|
||||
),
|
||||
|
||||
/* TouchCursor layer (http://martin-stone.github.io/touchcursor/) plus personal customizations
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* |AltTab|CmdTab|CtlTab| GUI |Shift | ~ |Insert| Home | Up | End | Bksp | |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | | Alt |Space |Tab_C | Find |Again | PgUp | Left | Down |Right |Desk_L|Desk_R|
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | | Undo | Cut | Copy |Paste | ` | PgDn | Del |Tab_N |Tab_R |iTerm2| |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | | | | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*
|
||||
* 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(
|
||||
ALT_TAB, CMD_TAB, CTL_TAB, KC_LGUI, KC_LSFT, KC_TILD, KC_INS, KC_HOME, KC_UP, KC_END, KC_BSPC, _______,
|
||||
_______, KC_LALT, KC_SPC, AG_T_C, AG_FIND,AG_AGAIN, KC_PGUP, KC_LEFT, KC_DOWN, KC_RGHT, AG_D_L, AG_D_R ,
|
||||
_______, AG_UNDO, AG_CUT, AG_COPY, AG_PASTE,KC_GRV, KC_PGDN, KC_DEL, AG_T_N, AG_T_R, CMD_SLSH,_______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
/* Mouse Layer
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | | |ACCL0 | | | | |WHL_L | Up |WHL_R | BTN2 | |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | |ACCL2 | BTN2 | | BTN1 |ACCL1 |WHL_Up| Left | Down |Right | BTN4 | BTN5 |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | | | | | BTN3 | |WHL_Dn| BTN1 | | | BTN3 | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | | | | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
|
||||
[_MOUSECURSOR] = LAYOUT_planck_grid(
|
||||
_______, _______, KC_ACL0, _______, _______, _______, _______, KC_WH_L, KC_MS_U, KC_WH_R, KC_BTN2, _______,
|
||||
_______, KC_ACL2, KC_BTN2, _______, KC_BTN1, KC_ACL1, KC_WH_U, KC_MS_L, KC_MS_D, KC_MS_R, KC_BTN4, KC_BTN5,
|
||||
_______, _______, _______, _______, KC_BTN3, _______, KC_WH_D, KC_BTN1, _______, _______, KC_BTN3, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
/* 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] = LAYOUT_planck_grid(
|
||||
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)
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | | | | | | | | | | | | Del |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak|Plover| |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | | | |Reset |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_ADJUST] = LAYOUT_planck_grid(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL,
|
||||
_______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______,
|
||||
_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT
|
||||
)
|
||||
|
||||
|
||||
};
|
||||
|
||||
#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
|
||||
default_layer_set(1UL<<_QWERTY);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case COLEMAK:
|
||||
if (record->event.pressed) {
|
||||
#ifdef AUDIO_ENABLE
|
||||
PLAY_SONG(tone_colemak);
|
||||
#endif
|
||||
default_layer_set(1UL<<_COLEMAK);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case DVORAK:
|
||||
if (record->event.pressed) {
|
||||
#ifdef AUDIO_ENABLE
|
||||
PLAY_SONG(tone_dvorak);
|
||||
#endif
|
||||
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;
|
||||
}
|
||||
|
||||
/*
|
||||
* Macro definition
|
||||
*/
|
||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
|
||||
{
|
||||
if (!eeconfig_is_enabled()) {
|
||||
eeconfig_init();
|
||||
}
|
||||
|
||||
bool use_cmd = true; // Use, for example, Cmd-Tab, Cmd-C, Cmd-V, etc.
|
||||
// Compare to MAGIC_SWAP_ALT_GUI and MAGIC_UNSWAP_ALT_GUI configs, set in:
|
||||
// quantum/quantum.c
|
||||
if(keymap_config.swap_lalt_lgui == 1 && keymap_config.swap_ralt_rgui == 1) {
|
||||
use_cmd = false; // ... or, Alt-Tab, Ctrl-C, Ctrl-V, etc.
|
||||
}
|
||||
|
||||
switch (id) {
|
||||
case KC_ALT_TAB:
|
||||
if(use_cmd) { return (record->event.pressed ? MACRO( D(LALT), D(TAB), END ) : MACRO( U(TAB), END )); }
|
||||
else { return (record->event.pressed ? MACRO( D(LGUI), D(TAB), END ) : MACRO( U(TAB), END )); }
|
||||
case KC_CMD_TAB:
|
||||
if(use_cmd) { return (record->event.pressed ? MACRO( D(LGUI), D(TAB), END ) : MACRO( U(TAB), END )); }
|
||||
else { return (record->event.pressed ? MACRO( D(LALT), D(TAB), END ) : MACRO( U(TAB), END )); }
|
||||
|
||||
case KC_CTL_TAB:
|
||||
return (record->event.pressed ? MACRO( D(LCTRL), D(TAB), END ) : MACRO( U(TAB), END ));
|
||||
case KC_CMD_SLSH:
|
||||
return (record->event.pressed ? MACRO( D(LGUI), D(SLSH),END ) : MACRO( U(SLSH),END ));
|
||||
|
||||
case KC_AG_FIND:
|
||||
return use_cmd ? MACRODOWN( D(LGUI), T(F), END ) : MACRODOWN( D(LCTRL), T(F), END );
|
||||
case KC_AG_AGAIN:
|
||||
return use_cmd ? MACRODOWN( D(LGUI), T(G), END ) : MACRODOWN( D(LCTRL), T(G), END );
|
||||
case KC_AG_UNDO:
|
||||
return use_cmd ? MACRODOWN( D(LGUI), T(Z), END ) : MACRODOWN( D(LCTRL), T(Z), END );
|
||||
case KC_AG_CUT:
|
||||
return use_cmd ? MACRODOWN( D(LGUI), T(X), END ) : MACRODOWN( D(LCTRL), T(X), END );
|
||||
case KC_AG_COPY:
|
||||
return use_cmd ? MACRODOWN( D(LGUI), T(C), END ) : MACRODOWN( D(LCTRL), T(C), END );
|
||||
case KC_AG_PASTE:
|
||||
return use_cmd ? MACRODOWN( D(LGUI), T(V), END ) : MACRODOWN( D(LCTRL), T(V), END );
|
||||
|
||||
case KC_AG_DESK_L:
|
||||
return use_cmd ? MACRODOWN( D(LGUI), D(LCTRL), T(SCLN), END ) : MACRODOWN( D(LALT), D(LCTRL), T(SCLN), END );
|
||||
case KC_AG_DESK_R:
|
||||
return use_cmd ? MACRODOWN( D(LGUI), D(LCTRL), T(QUOT), END ) : MACRODOWN( D(LALT), D(LCTRL), T(QUOT), END );
|
||||
|
||||
case KC_AG_TAB_C:
|
||||
return use_cmd ? MACRODOWN( D(LGUI), T(W), END ) : MACRODOWN( D(LCTRL), T(W), END );
|
||||
case KC_AG_TAB_N:
|
||||
return use_cmd ? MACRODOWN( D(LGUI), T(T), END ) : MACRODOWN( D(LCTRL), T(T), END );
|
||||
case KC_AG_TAB_R:
|
||||
return use_cmd ? MACRODOWN( D(LGUI), D(LSHIFT), T(T), END ) : MACRODOWN( D(LCTRL), D(LSHIFT), T(T), END );
|
||||
}
|
||||
|
||||
return MACRO_NONE;
|
||||
}
|
||||
|
||||
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,127 +0,0 @@
|
||||
jeebak's layout
|
||||
=======================
|
||||
This WIP keymap attempts to minimize fingers straying away from the home row.
|
||||
To aid in this endeavor, when additional modifyer keys to switch layers are
|
||||
needed, they will be mapped to home row keys. The `keymap.c` file will contain
|
||||
the exact changes. The diagrams in this README shows the highlights of the
|
||||
changes from the default mappings.
|
||||
|
||||
I also decided to change all calls to `persistent_default_layer_set()` to
|
||||
`default_layer_set()` since this is my personal perference.
|
||||
|
||||
## Macros
|
||||
```
|
||||
#define ALT_TAB M(KC_ALT_TAB)
|
||||
```
|
||||
|
||||
## Base Layers (Qwerty/Colemak/Dvorak)
|
||||
These base layers are mostly the same as the default mappings. The interesting
|
||||
changes are shown below.
|
||||
|
||||
- The `Ctrl/Esc`, will emit an `Escape` when tapped, and act as a `Control` key when held,
|
||||
- `GUI/;` as `;` and `GUI`,
|
||||
- `Alt/"` as `"` and `Alt`,
|
||||
- `Sft/Ent` as `Enter` and `Shift`, and
|
||||
- `Hyper/Tab` as `Tab` and `Hyper`
|
||||
|
||||
A `TODO` item is to see if it can also act as a `CapsLock` when double-tapped.
|
||||
The arrow keys, which have been moved to the
|
||||
[TouchCursor](http://martin-stone.github.io/touchcursor/) layer, have been
|
||||
replaced with the Media keys as shown. The `MC/kc` key activates the
|
||||
`MouseCursor` layer when held, and emits the corresponding `kc` for its layer,
|
||||
when tapped.
|
||||
```
|
||||
,-----------------------------------------------------------------------------------------.
|
||||
| Hyper/Tab| | | | | | | | | | | |
|
||||
|----------+------+------+------+------+-------------+------+------+------+------+--------|
|
||||
| Ctrl/Esc | | |MC/kc | | | | | | |GUI/; | Alt/" |
|
||||
|----------+------+------+------+------+------|------+------+------+------+------+--------|
|
||||
| | | | | | | | | | | |Sft/Ent |
|
||||
|----------+------+------+------+------+------+------+------+------+------+------+--------|
|
||||
| PrntScrn | RGUI | Alt | GUI |Lower | TC/Space |Raise | Next | Vol- | Vol+ | Play |
|
||||
`-----------------------------------------------------------------------------------------'
|
||||
```
|
||||
|
||||
## Lower Layer (Symbols and Function Keys)
|
||||
The symbols and functions keys are essentially the same as the default mapping.
|
||||
The most notable changes are that the symbol keys from the `RAISE` layer have
|
||||
been moved here. The remaining Media keys replace those that are now on the
|
||||
base layers. The `BACKLIT` key has also been moved here.
|
||||
```
|
||||
,-----------------------------------------------------------------------------------.
|
||||
| ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
|
||||
|------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
| [ | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
|
||||
|------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
| ] | F7 | F8 | F9 | F10 | F11 | F12 | - | = | [ | ] | \ |
|
||||
|------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
|Brite | | | | | | | Prev | Stop | Slct | Mute |
|
||||
`-----------------------------------------------------------------------------------'
|
||||
```
|
||||
|
||||
## Raise Layer (Numbers and Arithmetic Operators)
|
||||
All of the numbers and arithmetic operators are available on this layer. Some
|
||||
keys are duplicated for the convenience of their positions. The `0` and `$`
|
||||
keys at the far left are for quick access to beginning and end of line in vim.
|
||||
```
|
||||
,-----------------------------------------------------------------------------------.
|
||||
| 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 | / | \ |
|
||||
|------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
|Brite | | | | | | | Prev | Stop | Slct | Mute |
|
||||
`-----------------------------------------------------------------------------------'
|
||||
```
|
||||
|
||||
## TouchCursor layer plus personal customizations
|
||||
[TouchCursor](http://martin-stone.github.io/touchcursor/) uses the `Space` key
|
||||
as the modifier, with the `IJKL` home row keys representing the inverted-T of
|
||||
the arrow keys. All of the default TouchCursor keymappings for the right hand
|
||||
are represented below. My personalizations include all of the keys shown for
|
||||
the left hand. Having the `Alt` and `Shift` keys (as well as the `Control` key
|
||||
from the base layers) readily accessible from the home row allows quick word
|
||||
jumps and highlighting when used in conjunction with the arrow keys. The
|
||||
`Alt-Tab` macro is not only useful under Windows, but also under Mac when used
|
||||
with alternative switchers like [HyperSwitch](https://bahoom.com/hyperswitch).
|
||||
The `Cmd-Tab` and `Ctrl-Tab` sequences are duplicated for easy access while in
|
||||
this layer. The `KC_UNDO, KC_CUT, KC_COPY, KC_PASTE, KC_FIND,` and `KC_AGAIN`
|
||||
keycodes do not seem to work. There are macros in place that'll "automatically"
|
||||
choose the correct version (`Cmd-Tab` vs. `Alt-Tab`, `Cmd-C` vs. `Ctrl-C`,
|
||||
etc.) depending on which layout you've currently selected (`AG_NORM` or
|
||||
`AG_SWAP`) in the `_ADJUST` layer. The `Desk_L` and `Desk_R` macros are what I
|
||||
use to switch between Virtual Desktops Left/Right. The `Tab_C`, `Tab_N` and
|
||||
`Tab_R` are for "Close Tab," "New Tab" and "Reopen Closed Tab" for apps such as
|
||||
Google Chrome.
|
||||
```
|
||||
,-----------------------------------------------------------------------------------.
|
||||
|AltTab|CmdTab|CtlTab| GUI |Shift | ~ |Insert| Home | Up | End | Bksp | |
|
||||
|------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
| | Alt |Space |Tab_C | Find |Again | PgUp | Left | Down |Right |Desk_L|Desk_R|
|
||||
|------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
| | Undo | Cut | Copy |Paste | ` | PgDn | Del |Tab_N |Tab_R |iTerm2| |
|
||||
|------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
| | | | | | | | | | | |
|
||||
`-----------------------------------------------------------------------------------'
|
||||
```
|
||||
|
||||
## Mouse Layer
|
||||
The Mouse layer, closely mimics the layout/behaviour of the TouchCursor layer.
|
||||
The `D` key (on QWERTY) is used to activate this layer. All 16 keycodes for the
|
||||
mouse from the `doc/keycode.txt` file are represented, and logically located,
|
||||
IMHO. The left and right click buttons are duplicated; on the right hand side,
|
||||
for a quick click here and there, and again on the left hand side for when the
|
||||
buttons need to be held for dragging things or highlighting text, thus allowing
|
||||
the right hand to be free to use the up/down/left/right actions.
|
||||
```
|
||||
,-----------------------------------------------------------------------------------.
|
||||
| | |ACCL0 | | | | |WHL_L | Up |WHL_R | BTN2 | |
|
||||
|------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
| |ACCL2 | BTN2 | | BTN1 |ACCL1 |WHL_Up| Left | Down |Right | BTN4 | BTN5 |
|
||||
|------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
| | | | | BTN3 | |WHL_Dn| BTN1 | | | BTN3 | |
|
||||
|------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
| | | | | | | | | | | |
|
||||
`-----------------------------------------------------------------------------------'
|
||||
```
|
||||
@@ -1,19 +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 # Enable Bootmagic Lite
|
||||
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,74 +0,0 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
#include "keymap_colemak.h"
|
||||
|
||||
#define FN3_ESC LT(6, KC_ESC)
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT_planck_grid( /* Joe colemak */
|
||||
FN3_ESC, 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_ENT ,
|
||||
MT(MOD_LSFT, KC_TAB), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_UP, KC_QUOT,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_LSFT, MO(4),KC_SPC, KC_SPC, MO(5),KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
[1] = LAYOUT_planck_grid( /* Joe soft Colemak */
|
||||
FN3_ESC, CM_Q, CM_W, CM_F, CM_P, CM_G, CM_J, CM_L, CM_U, CM_Y, CM_SCLN, KC_MINS,
|
||||
KC_BSPC, CM_A, CM_R, CM_S, CM_T, CM_D, CM_H, CM_N, CM_E, CM_I, CM_O, KC_ENT ,
|
||||
MT(MOD_LSFT, KC_TAB), CM_Z, CM_X, CM_C, CM_V, CM_B, CM_K, CM_M, KC_COMM, KC_DOT, KC_UP, KC_QUOT,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_LSFT, MO(4),KC_SPC, KC_SPC, MO(5),KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
[2] = LAYOUT_planck_grid( /* Joe NUMPAD */
|
||||
FN3_ESC, KC_NO, KC_UP, KC_NO, KC_NO, KC_NO, LSFT(KC_9), LSFT(KC_0), KC_PSLS, KC_P7, KC_P8, KC_P9 ,
|
||||
KC_BSPC, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_NO, LSFT(KC_5), KC_PEQL, KC_PAST, KC_P4, KC_P5, KC_P6 ,
|
||||
MT(MOD_LSFT, KC_TAB), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PCMM, KC_PMNS, KC_P1, KC_P2, KC_P3 ,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_LSFT, MO(4), KC_TRNS, KC_TRNS, MO(5), KC_PPLS, KC_P0, KC_PDOT, KC_PENT
|
||||
),
|
||||
[3] = LAYOUT_planck_grid( /* Joe 1337 haxOr5*/
|
||||
FN3_ESC, KC_Q, KC_W, KC_F, KC_P, KC_6, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_MINS,
|
||||
KC_BSPC, KC_4, KC_R, KC_5, KC_7, KC_D, KC_H, KC_N, KC_3, KC_1, KC_0, KC_ENT ,
|
||||
MT(MOD_LSFT, KC_TAB), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_UP, KC_QUOT,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_LSFT, MO(4),KC_SPC, KC_SPC, MO(5),KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
[4] = LAYOUT_planck_grid( /* Joe LOWER fn1 */
|
||||
KC_GRV, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, M(3), M(2), M(1), M(0) ,
|
||||
KC_BSPC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS,
|
||||
KC_BSLS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_LBRC, KC_RBRC, KC_PGUP, KC_EQL ,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(4), KC_TRNS, KC_TRNS, MO(5), KC_NO, KC_HOME, KC_PGDN, KC_END
|
||||
),
|
||||
[5] = LAYOUT_planck_grid( /* Joe UPPER fn2 */
|
||||
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12 ,
|
||||
KC_DEL, KC_BTN1, KC_MS_U, KC_BTN2, KC_BTN3, KC_WH_U, KC_BTN4, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO ,
|
||||
KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_L, KC_WH_D, KC_WH_R, KC_NO, KC_NO, LCTL(KC_PGUP), LCTL(LALT(KC_UP)), LCTL(KC_PGDN) ,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(4), KC_NO, KC_NO, MO(5), KC_NO, LCTL(LALT(KC_LEFT)), LCTL(LALT(KC_DOWN)), LCTL(LALT(KC_RGHT))
|
||||
),
|
||||
[6] = LAYOUT_planck_grid( /* Joe SPECIAL fn3 */
|
||||
KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO ,
|
||||
KC_NO, KC_MPLY, KC_MPRV, KC_MNXT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, QK_BOOT ,
|
||||
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO ,
|
||||
DF(0), DF(1), DF(2), DF(3), MO(4), KC_TRNS, KC_TRNS, MO(5), KC_PWR, KC_WAKE, KC_SLEP, LCTL(LALT(KC_L))
|
||||
)
|
||||
};
|
||||
|
||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
|
||||
{
|
||||
switch (id) {
|
||||
case 0:
|
||||
/* :) */
|
||||
return MACRODOWN( DOWN(KC_LSFT), TYPE(KC_SCLN), TYPE(KC_0), UP(KC_LSFT), END );
|
||||
break;
|
||||
case 1:
|
||||
/* :( */
|
||||
return MACRODOWN( DOWN(KC_LSFT), TYPE(KC_SCLN), TYPE(KC_9), UP(KC_LSFT), END );
|
||||
break;
|
||||
case 2:
|
||||
/* (: | :) */
|
||||
return MACRODOWN( DOWN(KC_LSFT), TYPE(KC_9), TYPE(KC_SCLN), TYPE(KC_SPC), TYPE(KC_SPC), TYPE(KC_SCLN), TYPE(KC_0), UP(KC_LSFT), TYPE(KC_LEFT), TYPE(KC_LEFT), TYPE(KC_LEFT), END );
|
||||
break;
|
||||
case 3:
|
||||
/* :( | ): */
|
||||
return MACRODOWN( DOWN(KC_LSFT), TYPE(KC_SCLN), TYPE(KC_9), TYPE(KC_SPC), TYPE(KC_SPC), TYPE(KC_0), TYPE(KC_SCLN), UP(KC_LSFT), TYPE(KC_LEFT), TYPE(KC_LEFT), TYPE(KC_LEFT), END );
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return MACRO_NONE;
|
||||
}
|
||||
@@ -1,19 +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 # Enable Bootmagic Lite
|
||||
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,40 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include "config_common.h"
|
||||
|
||||
#ifdef AUDIO_ENABLE
|
||||
#define STARTUP_SONG SONG(SONIC_RING)
|
||||
#define MUSIC_ON_SONG SONG(ZELDA_PUZZLE)
|
||||
#define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \
|
||||
SONG(COLEMAK_SOUND), \
|
||||
SONG(DVORAK_SOUND) \
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifndef KEYBOARD_planck_light
|
||||
#define BACKLIGHT_BREATHING
|
||||
#endif
|
||||
#define TAPPING_TERM 150
|
||||
|
||||
#define MUSIC_MASK (keycode != KC_NO)
|
||||
|
||||
/*
|
||||
* MIDI options
|
||||
*/
|
||||
|
||||
/* 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
|
||||
@@ -1,215 +0,0 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
extern keymap_config_t keymap_config;
|
||||
|
||||
enum planck_layers {
|
||||
_QWERTY,
|
||||
_LOWER,
|
||||
_RAISE,
|
||||
_ADJUST
|
||||
};
|
||||
|
||||
enum planck_keycodes {
|
||||
QWERTY = SAFE_RANGE,
|
||||
LOWER,
|
||||
RAISE,
|
||||
BACKLIT,
|
||||
ADMIN,
|
||||
SMSPC1,
|
||||
W10SLP
|
||||
};
|
||||
|
||||
// LED backlight breathing
|
||||
#define MACRO_BREATH_TOGGLE 21
|
||||
#define MACRO_BREATH_SPEED_INC 23
|
||||
#define MACRO_BREATH_SPEED_DEC 24
|
||||
#define MACRO_BREATH_DEFAULT 25
|
||||
#define M_BRTOG M(MACRO_BREATH_TOGGLE)
|
||||
#define M_BRINC M(MACRO_BREATH_SPEED_INC)
|
||||
#define M_BRDEC M(MACRO_BREATH_SPEED_DEC)
|
||||
#define M_BRDFT M(MACRO_BREATH_DEFAULT)
|
||||
|
||||
// Tap Dance Declarations
|
||||
enum {
|
||||
SFT_CAP = 0
|
||||
};
|
||||
|
||||
// Dylan's additions
|
||||
#define C_A_DEL LALT(LCTL(KC_DEL))
|
||||
#define C_A_INS LALT(LCTL(KC_INS))
|
||||
|
||||
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 |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_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_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
|
||||
TD(SFT_CAP), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_T(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 | _ | + | { | } | | |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | | F7 | F8 | F9 | F10 | F11 | F12 | SLP | | End | Home | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | Next | Vol- | Vol+ | Play |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_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_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, W10SLP, _______, KC_END, KC_HOME, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, 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 | | |Pg Dn |Pg Up | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | Next | Vol- | Vol+ | Play |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_RAISE] = LAYOUT_planck_grid(
|
||||
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_PGDN, KC_PGUP, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
|
||||
),
|
||||
|
||||
/* Adjust (Lower + Raise)
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | | Reset| | | | | | | |string|string| Del |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | | | |Aud on|Audoff|AGnorm|AGswap| | |BRTHdf|BRTHup| |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | |BRTHtg|BRTHdn| CAIns|
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | | | | CADel|
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_ADJUST] = LAYOUT_planck_grid(
|
||||
_______, QK_BOOT, DEBUG, _______, _______, _______, _______, _______, _______, ADMIN, SMSPC1, KC_DEL ,
|
||||
_______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, _______, _______, M_BRDFT, M_BRINC, _______,
|
||||
_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, M_BRTOG, M_BRDEC, C_A_INS,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, C_A_DEL
|
||||
)
|
||||
|
||||
};
|
||||
|
||||
qk_tap_dance_action_t tap_dance_actions[] = {
|
||||
[SFT_CAP] = ACTION_TAP_DANCE_DOUBLE(KC_LSFT, KC_CAPS)
|
||||
};
|
||||
|
||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
|
||||
switch(id) {
|
||||
case MACRO_BREATH_TOGGLE:
|
||||
if (record->event.pressed) {
|
||||
#ifdef BACKLIGHT_BREATHING
|
||||
breathing_toggle();
|
||||
#endif
|
||||
}
|
||||
break;
|
||||
case MACRO_BREATH_SPEED_INC:
|
||||
if (record->event.pressed) {
|
||||
#ifdef BACKLIGHT_BREATHING
|
||||
breathing_period_inc();
|
||||
#endif
|
||||
}
|
||||
break;
|
||||
case MACRO_BREATH_SPEED_DEC:
|
||||
if (record->event.pressed) {
|
||||
#ifdef BACKLIGHT_BREATHING
|
||||
breathing_period_dec();
|
||||
#endif
|
||||
}
|
||||
break;
|
||||
case MACRO_BREATH_DEFAULT:
|
||||
if (record->event.pressed) {
|
||||
#ifdef BACKLIGHT_BREATHING
|
||||
breathing_period_default();
|
||||
#endif
|
||||
}
|
||||
break;
|
||||
}
|
||||
return MACRO_NONE;
|
||||
}
|
||||
|
||||
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 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 ADMIN:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING("Administrator");
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case SMSPC1:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING("Simspace1!");
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case W10SLP:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING(SS_LGUI("x")"us");
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
BACKLIGHT_ENABLE = yes
|
||||
TAP_DANCE_ENABLE = yes
|
||||
|
||||
@@ -1,155 +0,0 @@
|
||||
/*
|
||||
This is the keymap of /u/deepshitgoeshere!
|
||||
Layer 1 exists so I can have the symbol positions of QWERTY while having my system in german.
|
||||
The second layer has all the german umlauts I need and with capital and small letters on the
|
||||
same layer there is no need to press shift+lower.
|
||||
This keymap is made to work with software implemented QWERTZ.
|
||||
The "Gaming" layer is mainly customized for CS:GO.
|
||||
If you have any question about this keymap feel free to shoot me a message on reddit!
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
#include "keymap_german.h"
|
||||
|
||||
#define LT_SPC LT(4, KC_SPC)
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT_planck_grid( /* Colemak
|
||||
* ,-----------------------------------------------------------------------.
|
||||
* | Esc | q | w | f | p | g | j | l | u | y | ; | - |
|
||||
* |-----------------------------------------------------------------------|
|
||||
* | BS | a | r | s | t | d | h | n | e | i | o | ' |
|
||||
* |-----------------------------------------------------------------------|
|
||||
* | SFT | z | x | c | v | b | k | m | , | . | / | Ent |
|
||||
* |-----------------------------------------------------------------------|
|
||||
* | CTL | GUI | Tab | ALT |Lower| Space |Raise|Left |Down | Up |Right|
|
||||
* `-----------------------------------------------------------------------'
|
||||
*/
|
||||
KC_ESC, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Z, DE_SCLN, DE_MINS,
|
||||
KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, DE_QUOT,
|
||||
M(0), KC_Y, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, DE_COMM, DE_DOT, DE_SLSH, KC_ENT,
|
||||
KC_LCTL, KC_LGUI, KC_TAB, KC_LALT, MO(3), LT_SPC, LT_SPC, MO(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
|
||||
),
|
||||
[1] = LAYOUT_planck_grid( /* Symbols
|
||||
* ,-----------------------------------------------------------------------.
|
||||
* | | | | | | | | | | | : | |
|
||||
* |-----------------------------------------------------------------------|
|
||||
* | | | | | | | | | | | | " |
|
||||
* |-----------------------------------------------------------------------|
|
||||
* | | | | | | | | | < | > | ? | |
|
||||
* |-----------------------------------------------------------------------|
|
||||
* | | | | | | | | | | | |
|
||||
* `-----------------------------------------------------------------------'
|
||||
*/
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DE_DOT, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DE_DQUO,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, M(1), DE_RABK, DE_QUES, 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
|
||||
),
|
||||
[2] = LAYOUT_planck_grid( /* Raise
|
||||
* ,-----------------------------------------------------------------------.
|
||||
* | | Ä | | | | | | | Ü | Ö | |Game |
|
||||
* |-----------------------------------------------------------------------|
|
||||
* | Del | ä | | ß | | | | | ü | ö | |FVol+|
|
||||
* |-----------------------------------------------------------------------|
|
||||
* | | | | | | | | |Stop | Prv | Nxt |FVol-|
|
||||
* |-----------------------------------------------------------------------|
|
||||
* |LCTL |LGUI | Tab |LALT |Lower| Space | |Mute |Vol- |Vol+ | P/P |
|
||||
* `-----------------------------------------------------------------------'
|
||||
*/
|
||||
KC_NO, S(DE_ADIA), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, S(DE_UDIA), S(DE_ODIA), KC_NO, TG(5),
|
||||
KC_DEL, DE_ADIA, KC_NO, DE_SS, KC_NO, KC_NO, KC_NO, KC_NO, DE_UDIA, DE_ODIA, KC_NO, RALT(KC_F12),
|
||||
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MSTP, KC_MPRV, KC_MNXT, RALT(KC_F11),
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPLY
|
||||
),
|
||||
[3] = LAYOUT_planck_grid( /* Lower
|
||||
* ,-----------------------------------------------------------------------.
|
||||
* | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | + |
|
||||
* |-----------------------------------------------------------------------|
|
||||
* | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | = |
|
||||
* |-----------------------------------------------------------------------|
|
||||
* | | | | | | [ | ] | { | } | € | | \ | Ent |
|
||||
* |-----------------------------------------------------------------------|
|
||||
* |LCTL |LGUI | Tab |LALT | | Space |Raise|Home |PgDn |PgUp | End |
|
||||
* `-----------------------------------------------------------------------'
|
||||
*/
|
||||
DE_TILD, DE_EXLM, DE_AT, DE_HASH, DE_DLR, DE_PERC, DE_CIRC, DE_AMPR, DE_ASTR, DE_LPRN, DE_RPRN, DE_PLUS,
|
||||
DE_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, DE_EQL,
|
||||
KC_NO, KC_NO, KC_NO, DE_PIPE, DE_LBRC, DE_RBRC, DE_LCBR, DE_RCBR, DE_EURO, KC_NO, DE_BSLS, KC_ENT,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_PGUP, KC_END
|
||||
),
|
||||
[4] = LAYOUT_planck_grid( /* Function
|
||||
* ,-----------------------------------------------------------------------.
|
||||
* | F13 | F14 | F15 | F16 | F17 | F18 | F19 | F20 | F21 | F22 | F23 | F24 |
|
||||
* |-----------------------------------------------------------------------|
|
||||
* | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
|
||||
* |-----------------------------------------------------------------------|
|
||||
* | | | | | | KP- | KP+ | | | | |Reset|
|
||||
* |-----------------------------------------------------------------------|
|
||||
* | |Light|BL DN|BL UP| | | | |Mute |Vol- |Vol+ | P/P |
|
||||
* `-----------------------------------------------------------------------'
|
||||
*/
|
||||
KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24,
|
||||
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
|
||||
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PMNS, KC_PPLS, KC_NO, KC_NO, KC_NO, QK_BOOT, KC_NO,
|
||||
KC_NO, BL_TOGG, BL_DEC, BL_INC, MO(3), KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPLY
|
||||
),
|
||||
[5] = LAYOUT_planck_grid( /* Gaming
|
||||
* ,-----------------------------------------------------------------------.
|
||||
* | Buy | ESC | q | w | e | r | t | y | u | i | o | p |
|
||||
* |-----------------------------------------------------------------------|
|
||||
* | ENT | BS | a | s | d | f | g | h | j | k | l | ; |
|
||||
* |-----------------------------------------------------------------------|
|
||||
* | CTL | SFT | z | x | c | v | b | n | m | , | Up | / |
|
||||
* |-----------------------------------------------------------------------|
|
||||
* | | | Tab | ALT | | Space |CrJmp| GUI |Left |Down |Right|
|
||||
* `-----------------------------------------------------------------------'
|
||||
*/
|
||||
MO(6), KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Z, KC_U, KC_I, KC_O, TG(5),
|
||||
KC_ENT, KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, DE_SCLN,
|
||||
KC_LCTL, KC_LSFT, KC_Y, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, DE_DOT, KC_UP, DE_SLSH,
|
||||
KC_NO, KC_NO, KC_TAB, KC_LALT, KC_NO, KC_SPC, KC_SPC, LCTL(KC_SPC), KC_LGUI, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
[6] = LAYOUT_planck_grid( /* Gaming
|
||||
* CS:GO buy binds
|
||||
* ,-----------------------------------------------------------------------.
|
||||
* | | | | | | | | | 7 | 8 | 9 | |
|
||||
* |-----------------------------------------------------------------------|
|
||||
* | BS | | | | | | | | 6 | 5 | 4 | End |
|
||||
* |-----------------------------------------------------------------------|
|
||||
* | CTL | SFT | | | | | | | 1 | 2 | 3 |Pgdn |
|
||||
* |-----------------------------------------------------------------------|
|
||||
* | | | Tab | ALT | | Space |CrJmp| | 0 | KP+ |PEnt |
|
||||
* `-----------------------------------------------------------------------'
|
||||
*/
|
||||
KC_TRNS, KC_NO, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_P7, KC_P8, KC_P9, KC_NO,
|
||||
KC_BSPC, KC_NO, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_P4, KC_P5, KC_P6, KC_END,
|
||||
KC_LCTL, KC_LSFT, KC_Y, KC_X, KC_C, KC_V, KC_B, KC_K, KC_P1, KC_P2, KC_P3, KC_PGDN,
|
||||
KC_NO, KC_NO, KC_TAB, KC_LALT, KC_NO, KC_SPC, KC_SPC, LCTL(KC_SPC), KC_NO, KC_P0, KC_PDOT, KC_PENT
|
||||
),
|
||||
};
|
||||
|
||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
|
||||
{
|
||||
switch(id) {
|
||||
case 0: // M(0)
|
||||
if (record->event.pressed) {
|
||||
register_code(KC_LSFT);
|
||||
layer_on(1);
|
||||
} else {
|
||||
layer_off(1);
|
||||
unregister_code(KC_LSFT);
|
||||
}
|
||||
break;
|
||||
case 1: // M(1)
|
||||
if (record->event.pressed) {
|
||||
unregister_code(KC_LSFT);
|
||||
register_code(DE_LABK);
|
||||
} else {
|
||||
unregister_code(DE_LABK);
|
||||
}
|
||||
break;
|
||||
}
|
||||
return MACRO_NONE;
|
||||
|
||||
};
|
||||
@@ -1,19 +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 # Enable Bootmagic Lite
|
||||
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,57 +0,0 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
// This simple keymap is optimized for xmonad users using super as their modifier key.
|
||||
// M(1) makes it possible to change virtual screens and swap windows between them.
|
||||
|
||||
// Each layer gets a name for readability, which is then used in the keymap matrix below.
|
||||
#define _QW 0
|
||||
#define _LW 1
|
||||
#define _RS 2
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_QW] = LAYOUT_planck_grid( /* 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 ,
|
||||
KC_LCTL, KC_LALT, KC_LGUI, M(1), MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
|
||||
),
|
||||
[_RS] = LAYOUT_planck_grid( /* RAISE */
|
||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL ,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||
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
|
||||
),
|
||||
[_LW] = LAYOUT_planck_grid( /* 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
|
||||
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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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);
|
||||
#ifdef BACKLIGHT_ENABLE
|
||||
backlight_step();
|
||||
#endif
|
||||
} else {
|
||||
unregister_code(KC_RSFT);
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (record->event.pressed) {
|
||||
register_code(KC_LGUI);
|
||||
layer_on(_RS);
|
||||
} else {
|
||||
unregister_code(KC_LGUI);
|
||||
layer_off(_RS);
|
||||
}
|
||||
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 # Enable Bootmagic Lite
|
||||
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,347 +0,0 @@
|
||||
/*
|
||||
* A keyboard layout for the gridded planck.
|
||||
*
|
||||
* Copyright (C) 2017 Luke Silva
|
||||
*
|
||||
* 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, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | | | | | | | | | | | | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | | | | | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | | | | | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | | | | | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*
|
||||
* This layout uses colemak by default, and is designed for programming, with easy access to symbols
|
||||
* through either double purpose modifiers or colemak style rolling for commonly used symbol clusters
|
||||
* Eg: compare colemak 'this' to '(){\n}' on the symbol layer.
|
||||
*
|
||||
* The layout also supports a range of multilingual characters, covering those
|
||||
* needed for French, German, Swedish and likely some other European Languages.
|
||||
* In the future full support for Colemak's multilingual deadkeys may be introduced.
|
||||
*
|
||||
* The multilingual characters are inputted through QMK's unicode engine, using
|
||||
* the Linux input method by default, however this can be changed at runtime.
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
// Layers
|
||||
#define _COLEMAK 0
|
||||
#define _QWERTY 1
|
||||
#define _SYM 2
|
||||
#define _NUM 3
|
||||
#define _GR 4
|
||||
#define _GR_S 5
|
||||
#define _ADJ 6
|
||||
#define _NAV 7
|
||||
#define _PLOVER 8
|
||||
|
||||
// Macro ID numbers
|
||||
#define M_ALT_HASH 1
|
||||
#define M_GR_DASH 2
|
||||
#define M_SYM_LPRN 3
|
||||
#define M_NAV_UNDS 4
|
||||
#define M_NUM_RPRN 5
|
||||
#define M_CTRL_DLR 6
|
||||
#define M_LCBR_ENT 7
|
||||
#define M_PLOVER 8
|
||||
#define M_EXT_PLV 9
|
||||
#define M_WINDOWS 10
|
||||
#define M_LINUX 11
|
||||
#define M_OSX 12
|
||||
#define M_FUNCTION 13
|
||||
#define M_THEN 14
|
||||
#define M_CATCH 15
|
||||
|
||||
// Macro keys
|
||||
#define ALT_HASH MACROTAP(M_ALT_HASH) // tap for #, hold for Alt
|
||||
#define GR_DASH MACROTAP(M_GR_DASH) // tap for -, hold for GR layer a-class-name
|
||||
#define SYM_LPRN MACROTAP(M_SYM_LPRN) // tap for (, hold for symbols layer if()
|
||||
#define NAV_UNDS MACROTAP(M_NAV_UNDS) // tap for _, hold for navigation layer snake_case_variable
|
||||
#define NUM_RPRN MACROTAP(M_NUM_RPRN) // tap for ), hold for numbers layer else if()
|
||||
#define CTRL_DLR MACROTAP(M_CTRL_DLR) // tap for $, hold for ctrl $php_is_really_weird
|
||||
#define LCBR_ENT M(M_LCBR_ENT) // {\n easier code formatting
|
||||
#define PLOVER M(M_PLOVER) // PHROPB (plover) or ERFVIK(qwerty) starts plover
|
||||
#define EXT_PLV M(M_EXT_PLV) // PHRO*F (plover) or ERFVYU(qwerty) stops plover
|
||||
#define WINDOWS M(M_WINDOWS) // Sets Unicode handler to windows
|
||||
#define LINUX M(M_LINUX) // Sets Unicode handler to linux
|
||||
#define OSX M(M_OSX) // Sets Unicode handler to OSX
|
||||
#define FUNCTION M(M_FUNCTION)
|
||||
#define THEN M(M_THEN)
|
||||
#define CATCH M(M_CATCH)
|
||||
|
||||
|
||||
// Renames of QMK keys... (would have otherwise been a macro)
|
||||
#define QWERTY DF(_QWERTY)
|
||||
#define COLEMAK DF(_COLEMAK)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
/* Colemak
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | Tab | Q | W | F | P | G | J | L | U | Y | ;: | Bksp |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Bksp | A | R | S | T | D | H | N | E | I | O | '" |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------`---.
|
||||
* |Shift=| Z | X | C | V | B | K | M | ,< | .> | /? |Shift/Ent |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+----------|
|
||||
* |CtCaps|GUIF4 | Alt# | Gr- | Sym( | Nav_ |Space | Num) |Ctrl$ | F11 | F12 |Nav toggle|
|
||||
* `---------------------------------------------------------------------------------------'
|
||||
*/
|
||||
|
||||
[_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,
|
||||
KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
|
||||
SFT_T(KC_EQL), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_T(KC_ENT) ,
|
||||
CTL_T(KC_CAPS), KC_LGUI, ALT_HASH, GR_DASH, SYM_LPRN, NAV_UNDS, KC_SPC, NUM_RPRN, CTRL_DLR, KC_F11, KC_F12, TG(_NAV)
|
||||
),
|
||||
|
||||
|
||||
|
||||
/* QWERTY
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Bksp | A | S | D | F | G | H | J | K | L | ;: | '" |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------`---.
|
||||
* |Shift=| Z | X | C | V | B | N | M | ,< | .> | /? |Shift/Ent |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+----------|
|
||||
* |CtCaps|GUIF4 | Alt# | Gr- | Sym( | Nav_ |Space | Num) |Ctrl$ | F11 | F12 |Nav toggle|
|
||||
* `---------------------------------------------------------------------------------------'
|
||||
*/
|
||||
|
||||
[_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,
|
||||
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_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_T(KC_ENT) ,
|
||||
CTL_T(KC_CAPS), KC_LGUI, KC_LALT, GR_DASH, SYM_LPRN,KC_SPC, KC_SPC, NUM_RPRN, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT
|
||||
),
|
||||
|
||||
|
||||
/* Symbols
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | Tab | ` | @ | / | * | ^ | % | : | + | - | Del | Bksp |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | [ | ; | } | ( | " | ' | ) | {\n | ! | ] | \ |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* |Shift | . | { | < | > | ~ | X2 | = | & | | | ? |Enter |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | Sym | _ |Space | NUM | X2 | | | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
|
||||
[_SYM] = LAYOUT_planck_grid(
|
||||
KC_TAB, KC_GRV, KC_AT, KC_SLSH, KC_ASTR, KC_CIRC, KC_PERC, KC_COLN, KC_PLUS, KC_MINS, KC_DEL, KC_BSPC,
|
||||
FUNCTION,KC_LBRC, KC_SCLN, KC_RCBR, KC_LPRN, KC_DQT, KC_QUOT, KC_RPRN, LCBR_ENT,KC_EXLM, KC_RBRC, KC_BSLS,
|
||||
KC_LSFT, KC_DOT, KC_LCBR, KC_LABK, KC_RABK, KC_TILD, _______, KC_EQL, KC_AMPR, KC_PIPE, KC_QUES, KC_ENT ,
|
||||
THEN, CATCH, XXXXXXX, XXXXXXX, _______, _______, _______, _______, _______, XXXXXXX, XXXXXXX, _______
|
||||
),
|
||||
|
||||
|
||||
/* Numbers
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | Tab | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Bksp | x | D | E | F | + | - | 4 | 5 | 6 | 0 |Enter |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* |Shift | ( | A | B | C | * | / | 1 | 2 | 3 | ) |Enter |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | GR | SYM | _ |Space | NUM | 0 | . | f | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
|
||||
[_NUM] = LAYOUT_planck_grid(
|
||||
KC_TAB, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
|
||||
KC_BSPC, KC_X, S(KC_D), S(KC_E), S(KC_F), KC_PLUS, KC_MINS, KC_4, KC_5, KC_6, KC_0, KC_ENT ,
|
||||
KC_LSFT, KC_LPRN, S(KC_A), S(KC_B), S(KC_C), KC_ASTR, KC_SLSH, KC_1, KC_2, KC_3, KC_RPRN, KC_ENT ,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, KC_0, KC_DOT, KC_F, _______
|
||||
),
|
||||
|
||||
|
||||
/* Gr layer / international keys
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | | ä | å | | ¢£ | €¥ | | ë | ê | ü | ù | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | â | à | ß | | | | è | é | ï | ö | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | æ | ô | ç | œ | | | û | « | » | î | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | | | | | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
|
||||
[_GR] = LAYOUT_planck_grid(
|
||||
_______, UC(0xE4),UC(0xE5), _______,UC(0xA2), UC(0x20AC),_______,UC(0xEB),UC(0xEA),UC(0xFC),UC(0xF9), _______,
|
||||
_______, UC(0xE2),UC(0xE0),UC(0xDF), _______, _______, _______,UC(0xE8),UC(0xE9),UC(0xEF),UC(0xF6), _______,
|
||||
MO(_GR_S),UC(0xE6),UC(0xF4),UC(0xE7),UC(0x153),_______, _______,UC(0xFB),UC(0xAB),UC(0xBB),UC(0xEE), MO(_GR_S),
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
// Shifted layer of the above
|
||||
[_GR_S] = LAYOUT_planck_grid(
|
||||
_______, UC(0xC4),UC(0xC5), _______, UC(0xA3), UC(0xA5),_______, UC(0xCB),UC(0xCA),UC(0xDC),UC(0xD9),_______,
|
||||
_______, UC(0xC2),UC(0xC0), UC(0xDF),_______, _______, _______, UC(0xC8),UC(0xC9),UC(0xCF),UC(0xD6),_______,
|
||||
MO(_GR_S),UC(0xC6),UC(0xD4), UC(0xC7),UC(0x152),_______, _______, UC(0xDB),UC(0xAB),UC(0xBB),UC(0xCE),MO(_GR_S),
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
|
||||
/* Adjust Layer (Gr + Num)
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
|
||||
* |------+-------------+------+------+------+------+------+------+------+------+------|
|
||||
* | | |Prntscr| ESC |VOLUP | PLAY | PREV |QWERTY|COLEMAK|PLOVER| | |
|
||||
* |------+-------------+------+------+------+------+------+------+------+------+------|
|
||||
* | | |BACKLIT| INS |VOLDWN| MUTE | NEXT | WIND |LINUX | OSX | | |
|
||||
* |------+-------------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | | | | | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
|
||||
[_ADJ] = 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 ,
|
||||
XXXXXXX, XXXXXXX, KC_PSCR, KC_ESC, KC_VOLU, KC_MPLY, KC_MPRV, QWERTY, COLEMAK, PLOVER, XXXXXXX, XXXXXXX,
|
||||
XXXXXXX, XXXXXXX, BL_STEP, KC_INS, KC_VOLD, KC_MUTE, KC_MNXT, WINDOWS, LINUX, OSX, XXXXXXX, XXXXXXX,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
|
||||
/* Navigation
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | | | BTN3 | BTN2 | BTN1 | | ACL0 | HOME | PGDN | PGUP | END | Bksp |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | |MSLEFT| MSDN | MSUP |MSRGHT| | ACL1 | LEFT | DOWN | UP | RGHT |Enter |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | |WHLEFT| WHDN | WHUP |WHRGHT| | ACL2 |C-LEFT|C-PGDN|C-PGUP|C-RGHT|Enter |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | _ |Space | ACL0 | ACL1 | ACL2 | |TGLNAV|
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
|
||||
[_NAV] = LAYOUT_planck_grid(
|
||||
XXXXXXX, XXXXXXX, KC_BTN3, KC_BTN2, KC_BTN1, XXXXXXX, KC_ACL0, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_BSPC,
|
||||
XXXXXXX, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, XXXXXXX, KC_ACL1, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT,KC_ENT ,
|
||||
XXXXXXX, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R, XXXXXXX, KC_ACL2, LCTL(KC_LEFT), LCTL(KC_PGDN), LCTL(KC_PGUP), LCTL(KC_RIGHT), KC_ENT ,
|
||||
_______, _______, _______, _______, _______, _______, _______, KC_ACL0, KC_ACL1, KC_ACL2, _______, _______
|
||||
),
|
||||
|
||||
/* Plover Layer
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | | 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] = LAYOUT_planck_grid(
|
||||
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,
|
||||
KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 ,
|
||||
EXT_PLV, XXXXXXX, XXXXXXX, KC_1, KC_C, KC_V, KC_N, KC_M, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
|
||||
)
|
||||
|
||||
|
||||
};
|
||||
|
||||
void matrix_init_user(){
|
||||
set_unicode_input_mode(UC_LNX);
|
||||
}
|
||||
|
||||
|
||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
|
||||
{
|
||||
switch(id) {
|
||||
case M_ALT_HASH:
|
||||
return MACRO_TAP_SHFT_KEY_HOLD_MOD(record, 3, LALT);
|
||||
case M_GR_DASH:
|
||||
{
|
||||
const macro_t* macro = MACRO_TAP_HOLD_LAYER(record, MACRO(T(MINS)), _GR);
|
||||
update_tri_layer(_NUM, _GR, _ADJ);
|
||||
return macro;
|
||||
}
|
||||
case M_SYM_LPRN:
|
||||
return MACRO_TAP_SHFT_KEY_HOLD_LAYER(record, 9, _SYM);
|
||||
case M_NAV_UNDS:
|
||||
return MACRO_TAP_SHFT_KEY_HOLD_LAYER(record, MINS, _NAV);
|
||||
case M_NUM_RPRN:
|
||||
{
|
||||
const macro_t* macro = MACRO_TAP_SHFT_KEY_HOLD_LAYER(record, 0, _NUM);
|
||||
update_tri_layer(_NUM, _GR, _ADJ);
|
||||
return macro;
|
||||
}
|
||||
case M_CTRL_DLR:
|
||||
return MACRO_TAP_SHFT_KEY_HOLD_MOD(record, 4, LCTL);
|
||||
case M_LCBR_ENT:
|
||||
return MACRODOWN(I(10), D(LSFT), T(LBRC), U(LSFT), T(ENT), END);
|
||||
case M_PLOVER:
|
||||
if (record->event.pressed) {
|
||||
layer_and(0);
|
||||
layer_on(_PLOVER);
|
||||
default_layer_set(_PLOVER);
|
||||
|
||||
// Starts plover
|
||||
return MACRO(I(10), D(E), D(R), D(F), D(V), D(I), D(K), U(E), U(R), U(F), U(V), U(I), U(K), END);
|
||||
}
|
||||
break;
|
||||
case M_EXT_PLV:
|
||||
if (!record->event.pressed) {
|
||||
layer_off(_PLOVER);
|
||||
default_layer_set(_COLEMAK);
|
||||
|
||||
//Pauses plover
|
||||
return MACRO(I(10), D(E), D(R), D(F), D(V), D(Y), D(U), U(E), U(R), U(F), U(V), U(Y), U(U), END);
|
||||
}
|
||||
break;
|
||||
case M_WINDOWS:
|
||||
set_unicode_input_mode(UC_WIN);
|
||||
break;
|
||||
case M_LINUX:
|
||||
set_unicode_input_mode(UC_LNX);
|
||||
break;
|
||||
case M_OSX:
|
||||
set_unicode_input_mode(UC_MAC);
|
||||
break;
|
||||
case M_FUNCTION:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING("function");
|
||||
}
|
||||
break;
|
||||
case M_THEN:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING("then");
|
||||
}
|
||||
break;
|
||||
case M_CATCH:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING("catch");
|
||||
}
|
||||
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 # Enable Bootmagic Lite
|
||||
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 = yes # Enable keyboard backlight functionality
|
||||
MIDI_ENABLE = no # MIDI controls
|
||||
AUDIO_ENABLE = no # 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.
|
||||
|
||||
# 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,145 +0,0 @@
|
||||
//
|
||||
// This layout is based on the following needs:
|
||||
//
|
||||
// should be as close as possible to querty/us-international layout (using international/AltGr as o/s driver)
|
||||
// added german umlauts at known places from de-layout
|
||||
// all movement keys should be at known places from vi/bash (eg HJKL for cursor keys)
|
||||
// Fn layer (at CapsLock place like the Pok3r does) for missing keys
|
||||
// additional layer for tmux window switching
|
||||
//
|
||||
// This is work in Progress! If you have suggestions write me at github.com/mollat/qmk_firmware/ and check
|
||||
// this fork for updates as I probably won't bother jack with my pull requests frequently.
|
||||
//
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
#define _QWERTY 0
|
||||
#define _HIGH 1
|
||||
#define _LOW 2
|
||||
#define _FN 3
|
||||
#define _TMUX 4
|
||||
#define _LCTL 5
|
||||
#define _MOUSE 6
|
||||
#define __________ KC_NO // just for easy reading
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[_QWERTY] = LAYOUT_planck_grid( /* Qwerty */
|
||||
LT(_MOUSE, 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(_FN, 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, SFT_T(KC_ENT),
|
||||
__________, __________, KC_LGUI, KC_LALT, KC_LCTL,LT(_TMUX, KC_SPC),LT(_HIGH, KC_SPC),MO(_LOW),KC_RALT,KC_RGUI, __________, __________
|
||||
),
|
||||
|
||||
// missing keys regarding to the form factor
|
||||
// keeping the dot and comma for typing faster IP addresses and (german) float values
|
||||
// putting the backslash on the slash's place
|
||||
[_HIGH] = LAYOUT_planck_grid(
|
||||
KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_MINS ,
|
||||
__________, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL ,
|
||||
__________, __________, __________, __________, __________, __________, __________, __________, KC_COMM, KC_DOT, KC_BSLS, LSFT(KC_BSLS),
|
||||
__________, __________, __________, __________, __________, __________, KC_TRNS, __________, __________, __________, __________, __________
|
||||
),
|
||||
|
||||
// classic Fn-Layer triggered with 'CapsLock-key' like on Pok3r
|
||||
// SPC and ENT are doubled for using repeat (which I switched off, see https://github.com/tmk/tmk_keyboard/issues/287)
|
||||
// '€' sign is on the '5' position as this is the usual AltGr place on the US Internation layout
|
||||
// home/end at the 'a' and 'e' position like in bash
|
||||
// ins at 'i'
|
||||
// del besides backspace (had no better place for it because of the umlauts)
|
||||
// pg-down at 'f' (forward in vi), pg-up at 'b' (back in 'vi')
|
||||
//
|
||||
[_FN] = LAYOUT_planck_grid(
|
||||
__________, __________, __________, KC_END, __________, __________, __________, __________, KC_INS, __________, KC_DEL, RALT(KC_Y) ,
|
||||
KC_TRNS, __________, RALT(KC_S), __________, KC_PGDN, RALT(KC_5), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, RALT(KC_P), RALT(KC_Q) ,
|
||||
__________, KC_HOME, __________, __________, __________, KC_PGUP, __________, __________, __________, __________, __________, KC_ENT ,
|
||||
QK_BOOT, __________, __________, __________, __________, KC_SPC, KC_SPC, __________, __________, __________, __________, __________
|
||||
),
|
||||
|
||||
// function key layer and some shift + (missing key at the small form factor)
|
||||
[_LOW] = LAYOUT_planck_grid(
|
||||
KC_TILD, __________, __________, __________, __________, __________, __________, __________, __________, KC_LCBR, KC_RCBR, KC_UNDS ,
|
||||
__________, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_LBRC, KC_RBRC, KC_PLUS ,
|
||||
__________, __________, __________, __________, __________, KC_F9, KC_F10, KC_F11, KC_F12, __________, __________, __________ ,
|
||||
__________, __________, __________, __________, __________, __________, __________, KC_TRNS, __________, __________, __________, __________
|
||||
),
|
||||
|
||||
// most macros will switch tmux screens
|
||||
// two macros are for vi's save/quit at 'w' and 'q'
|
||||
[_TMUX] = LAYOUT_planck_grid(
|
||||
__________, M(14), M(13), __________, __________, __________, __________, __________, __________, __________, M(11), __________ ,
|
||||
M(0), M(1), M(2), M(3), M(4), M(5), M(6), M(7), M(8), M(9), __________, __________ ,
|
||||
__________, __________, __________, M(12), __________, __________, M(10), __________, __________, __________, __________, __________ ,
|
||||
__________, __________, __________, __________, __________, KC_TRNS, __________, __________, __________, __________, __________, __________
|
||||
),
|
||||
|
||||
// mouse movement can be improved (e.g. can't press hj at once), but I will use this seldom, so I stick with hjkl keys.
|
||||
[_MOUSE] = LAYOUT_planck_grid(
|
||||
KC_TRNS, __________, __________, __________, __________, __________, __________, __________, __________, __________, __________, __________ ,
|
||||
__________, __________, __________, __________, KC_WH_D, __________, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, __________, __________ ,
|
||||
__________, __________, __________, __________, __________, KC_WH_U, __________, __________, __________, __________, __________, __________ ,
|
||||
__________, __________, __________, KC_ACL2, KC_ACL1, KC_ACL0, KC_MS_BTN1, KC_MS_BTN3, KC_MS_BTN2, __________, __________, __________
|
||||
)
|
||||
};
|
||||
|
||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
|
||||
{
|
||||
switch(id) {
|
||||
case 0:
|
||||
return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_0), END );
|
||||
break;
|
||||
case 1:
|
||||
return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_1), END );
|
||||
break;
|
||||
case 2:
|
||||
return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_2), END );
|
||||
break;
|
||||
case 3:
|
||||
return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_3), END );
|
||||
break;
|
||||
case 4:
|
||||
return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_4), END );
|
||||
break;
|
||||
case 5:
|
||||
return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_5), END );
|
||||
break;
|
||||
case 6:
|
||||
return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_6), END );
|
||||
break;
|
||||
case 7:
|
||||
return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_7), END );
|
||||
break;
|
||||
case 8:
|
||||
return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_8), END );
|
||||
break;
|
||||
case 9:
|
||||
// tmux last window
|
||||
return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_L), END );
|
||||
break;
|
||||
// tmux next window
|
||||
case 10:
|
||||
return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_N), END );
|
||||
break;
|
||||
// tmux previous window
|
||||
case 11:
|
||||
return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_P), END );
|
||||
break;
|
||||
// tmux new window
|
||||
case 12:
|
||||
return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_C), END );
|
||||
break;
|
||||
case 13:
|
||||
// vi save document
|
||||
return MACRODOWN( TYPE(KC_ESC), DOWN(KC_LSFT), TYPE(KC_SCLN), UP(KC_LSFT), TYPE(KC_W), TYPE(KC_ENT), END );
|
||||
break;
|
||||
case 14:
|
||||
// vi quit
|
||||
return MACRODOWN( TYPE(KC_ESC), DOWN(KC_LSFT), TYPE(KC_SCLN), UP(KC_LSFT), TYPE(KC_Q), TYPE(KC_ENT), END );
|
||||
break;
|
||||
// tmux press ctrl-b
|
||||
case 15:
|
||||
return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), END );
|
||||
break;
|
||||
}
|
||||
return MACRO_NONE;
|
||||
};
|
||||
@@ -1,19 +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 # Enable Bootmagic Lite
|
||||
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,64 +0,0 @@
|
||||
|
||||
#include QMK_KEYBOARD_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.
|
||||
#define _QW 0
|
||||
#define _CM 1
|
||||
#define _DV 2
|
||||
#define _LW 3
|
||||
#define _RS 4
|
||||
|
||||
#define LW_BSPC LT(_LW, KC_BSPC)
|
||||
#define RS_ENT LT(_RS, KC_ENT)
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_QW] = LAYOUT_planck_grid( /* 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, KC_ENT ,
|
||||
M(0), KC_ESC, KC_LALT, KC_LGUI, LW_BSPC, KC_SPC, KC_SPC, RS_ENT, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
|
||||
),
|
||||
[_CM] = LAYOUT_planck_grid( /* 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_LCTL, 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 ,
|
||||
M(0), KC_ESC, KC_LALT, KC_LGUI, LW_BSPC, KC_SPC, KC_SPC, RS_ENT, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
|
||||
),
|
||||
[_DV] = LAYOUT_planck_grid( /* 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_LCTL, 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 ,
|
||||
M(0), KC_ESC, KC_LALT, KC_LGUI, LW_BSPC, KC_SPC, KC_SPC, RS_ENT, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
|
||||
),
|
||||
[_RS] = LAYOUT_planck_grid( /* 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, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||
KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), DF(_DV), QK_BOOT, KC_TRNS,
|
||||
M(0), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F14, KC_F15, KC_TRNS, KC_MFFD, KC_VOLD, KC_VOLU, KC_MPLY
|
||||
),
|
||||
[_LW] = LAYOUT_planck_grid( /* 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_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
|
||||
KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), DF(_DV), QK_BOOT, KC_TRNS,
|
||||
M(0), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F14, KC_F15, KC_TRNS, KC_MFFD, KC_VOLD, KC_VOLU, KC_MPLY
|
||||
)
|
||||
};
|
||||
|
||||
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,19 +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 # Enable Bootmagic Lite
|
||||
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,252 +0,0 @@
|
||||
|
||||
#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.
|
||||
#define _QWERTY 0
|
||||
#define _COLEMAK 1
|
||||
#define _DVORAK 2
|
||||
#define _LOWER 3
|
||||
#define _RAISE 4
|
||||
#define _FCT 5
|
||||
#define _SETUP 6
|
||||
#define _MAC 7
|
||||
#define _WIN 8
|
||||
#define _LIN 9
|
||||
#define _MICMUTE 16
|
||||
#define _OS 17
|
||||
|
||||
|
||||
// Macro name shortcuts
|
||||
#define QWERTY M(_QWERTY)
|
||||
#define COLEMAK M(_COLEMAK)
|
||||
#define DVORAK M(_DVORAK)
|
||||
#define LOWER M(_LOWER)
|
||||
#define RAISE M(_RAISE)
|
||||
#define FCT M(_FCT)
|
||||
#define OS M(_OS)
|
||||
#define MAC M(_MAC)
|
||||
#define WIN M(_WIN)
|
||||
#define LIN M(_LIN)
|
||||
#define MICMUTE M(_MICMUTE)
|
||||
|
||||
#define MACPRNT LGUI(LSFT(KC_3))
|
||||
#define MACPRNT2 LGUI(LSFT(KC_4))
|
||||
#define WINPRNT KC_PSCR
|
||||
#define WINPRNT2 LGUI(KC_PSCR)
|
||||
#define CYCLWIN LGUI(KC_GRV)
|
||||
#define MACSLEEP LSFT(LCTL(KC_PWR))
|
||||
#define WINSLEEP KC_SLEP
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[_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,
|
||||
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 ,
|
||||
OS, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
|
||||
),
|
||||
|
||||
[_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,
|
||||
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 ,
|
||||
OS, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
|
||||
),
|
||||
|
||||
[_DVORAK] = LAYOUT_planck_grid(
|
||||
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 ,
|
||||
OS, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
|
||||
),
|
||||
|
||||
[_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_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
|
||||
),
|
||||
|
||||
[_RAISE] = LAYOUT_planck_grid(
|
||||
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_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_RAISE, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
|
||||
),
|
||||
|
||||
[_SETUP] = LAYOUT_planck_grid( /* Setup */
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, WIN, MAC, _______, _______, QWERTY, COLEMAK, DVORAK, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, QK_BOOT, QK_BOOT, _______, _______, _______, _______, _______
|
||||
),
|
||||
[_MAC] = LAYOUT_planck_grid( /* Mac */
|
||||
CYCLWIN,MACSLEEP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_DEL ,
|
||||
_______, MICMUTE, KC_MUTE, KC_VOLD, KC_VOLU, MACPRNT,MACPRNT2, KC_F5, KC_F6, KC_F7, KC_F8, XXXXXXX,
|
||||
_______, BL_STEP, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, XXXXXXX, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX,
|
||||
_______, _______, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_HOME, KC_PGDOWN,KC_PGUP,KC_END
|
||||
),
|
||||
[_WIN] = LAYOUT_planck_grid( /* Windows */
|
||||
CYCLWIN,WINSLEEP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_DEL ,
|
||||
_______, MICMUTE, KC_MUTE, KC_VOLD, KC_VOLU, WINPRNT,WINPRNT2, KC_F5, KC_F6, KC_F7, KC_F8, XXXXXXX,
|
||||
_______, BL_STEP, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, XXXXXXX, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX,
|
||||
_______, _______, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_HOME, KC_PGDOWN,KC_PGUP,KC_END
|
||||
),
|
||||
[_LIN] = LAYOUT_planck_grid( /* Linux */
|
||||
KC_L, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
)
|
||||
|
||||
};
|
||||
|
||||
int currentOs = _MAC;
|
||||
|
||||
#ifdef AUDIO_ENABLE
|
||||
|
||||
float tone_startup[][2] = {
|
||||
{440.0*pow(2.0,(31)/12.0), 12},
|
||||
{440.0*pow(2.0,(28)/12.0), 8},
|
||||
{440.0*pow(2.0,(19)/12.0), 8},
|
||||
{440.0*pow(2.0,(24)/12.0), 8},
|
||||
{440.0*pow(2.0,(28)/12.0), 20}
|
||||
};
|
||||
|
||||
float tone_qwerty[][2] = SONG(QWERTY_SOUND);
|
||||
float tone_dvorak[][2] = SONG(DVORAK_SOUND);
|
||||
float tone_colemak[][2] = SONG(COLEMAK_SOUND);
|
||||
float tone_plover[][2] = SONG(PLOVER_SOUND);
|
||||
float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND);
|
||||
|
||||
float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
|
||||
float goodbye[][2] = SONG(GOODBYE_SOUND);
|
||||
#endif
|
||||
|
||||
|
||||
void persistent_default_layer_set(uint16_t default_layer) {
|
||||
eeconfig_update_default_layer(default_layer);
|
||||
default_layer_set(default_layer);
|
||||
}
|
||||
|
||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
|
||||
{
|
||||
switch(id) {
|
||||
case _QWERTY:
|
||||
if (record->event.pressed) {
|
||||
#ifdef AUDIO_ENABLE
|
||||
PLAY_SONG(tone_qwerty);
|
||||
#endif
|
||||
persistent_default_layer_set(1UL<<_QWERTY);
|
||||
}
|
||||
break;
|
||||
case _COLEMAK:
|
||||
if (record->event.pressed) {
|
||||
#ifdef AUDIO_ENABLE
|
||||
PLAY_SONG(tone_colemak);
|
||||
#endif
|
||||
persistent_default_layer_set(1UL<<_COLEMAK);
|
||||
}
|
||||
break;
|
||||
case _DVORAK:
|
||||
if (record->event.pressed) {
|
||||
#ifdef AUDIO_ENABLE
|
||||
PLAY_SONG(tone_dvorak);
|
||||
#endif
|
||||
persistent_default_layer_set(1UL<<_DVORAK);
|
||||
}
|
||||
break;
|
||||
case _LOWER:
|
||||
if (record->event.pressed) {
|
||||
layer_on(_LOWER);
|
||||
update_tri_layer(_LOWER, _RAISE, _SETUP);
|
||||
} else {
|
||||
layer_off(_LOWER);
|
||||
update_tri_layer(_LOWER, _RAISE, _SETUP);
|
||||
}
|
||||
break;
|
||||
case _RAISE:
|
||||
if (record->event.pressed) {
|
||||
layer_on(_RAISE);
|
||||
update_tri_layer(_LOWER, _RAISE, _SETUP);
|
||||
} else {
|
||||
layer_off(_RAISE);
|
||||
update_tri_layer(_LOWER, _RAISE, _SETUP);
|
||||
}
|
||||
break;
|
||||
case _FCT:
|
||||
if (record->event.pressed) {
|
||||
layer_on(_FCT);
|
||||
} else {
|
||||
layer_off(_FCT);
|
||||
}
|
||||
break;
|
||||
case _MICMUTE:
|
||||
if (record->event.pressed) {
|
||||
register_code(KC_RSFT);
|
||||
register_code(KC_RCTL);
|
||||
register_code(KC_RALT);
|
||||
register_code(KC_RGUI);
|
||||
} else {
|
||||
unregister_code(KC_RSFT);
|
||||
unregister_code(KC_RCTL);
|
||||
unregister_code(KC_RALT);
|
||||
unregister_code(KC_RGUI);
|
||||
}
|
||||
break;
|
||||
case _OS:
|
||||
if (record->event.pressed) {
|
||||
layer_on(currentOs);
|
||||
} else {
|
||||
layer_off(_MAC);
|
||||
layer_off(_WIN);
|
||||
layer_off(_LIN);
|
||||
}
|
||||
break;
|
||||
case _MAC:
|
||||
case _WIN:
|
||||
case _LIN:
|
||||
if (record->event.pressed) {
|
||||
layer_off(currentOs);
|
||||
currentOs = id;
|
||||
}
|
||||
break;
|
||||
}
|
||||
return MACRO_NONE;
|
||||
};
|
||||
|
||||
void matrix_init_user(void) {
|
||||
#ifdef AUDIO_ENABLE
|
||||
_delay_ms(20); // stops the tick
|
||||
PLAY_SONG(tone_startup);
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef AUDIO_ENABLE
|
||||
void play_goodbye_tone()
|
||||
{
|
||||
PLAY_SONG(goodbye);
|
||||
_delay_ms(150);
|
||||
}
|
||||
|
||||
uint8_t starting_note = 0x0C;
|
||||
int offset = 0;
|
||||
|
||||
bool process_action_user(keyrecord_t *record) {
|
||||
|
||||
if (IS_LAYER_ON(_MUSIC)) {
|
||||
if (record->event.pressed) {
|
||||
play_note(((double)220.0)*pow(2.0, -4.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row)), 0xF);
|
||||
} else {
|
||||
stop_note(((double)220.0)*pow(2.0, -4.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row)));
|
||||
}
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
#endif
|
||||
@@ -1,14 +0,0 @@
|
||||
# Planck Layout by Pete
|
||||
|
||||
This layout is based on the default layout but uses a FN key in the bottom left corner instead of the shift / backlight key.
|
||||
On the FN layer you can do the following things
|
||||
|
||||
- Step through back light
|
||||
- Put a mac to sleep
|
||||
- The Fxx keys in a block to click with the right hand
|
||||
- The delete key in the upper right corner
|
||||
- Quick access to screenshot functions
|
||||
- Control volume and media playback
|
||||
- Home/PgDown/PgUp/End buttons where the arrow keys are
|
||||
|
||||
Pressing the lower and raise buttons allows to reset and change from QWERT to Colemak or Dvorak.
|
||||
@@ -1,12 +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
|
||||
#
|
||||
AUDIO_ENABLE = no
|
||||
NKRO_ENABLE = yes
|
||||
|
||||
# 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,78 +0,0 @@
|
||||
/*
|
||||
Copyright 2012 Jun Wako <wakojun@gmail.com>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "config_common.h"
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 4
|
||||
#define MATRIX_COLS 12
|
||||
|
||||
/* Planck PCB default pin-out */
|
||||
#ifndef KEYBOARD_planck_light
|
||||
#define MATRIX_ROW_PINS { D0, D5, B5, B6 }
|
||||
#define MATRIX_COL_PINS { F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 }
|
||||
#endif
|
||||
|
||||
/*
|
||||
* MIDI options
|
||||
*/
|
||||
|
||||
/* 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
|
||||
/*
|
||||
* Feature disable options
|
||||
* These options are also useful to firmware size reduction.
|
||||
*/
|
||||
|
||||
/* disable debug print */
|
||||
#ifndef NO_DEBUG
|
||||
# define NO_DEBUG
|
||||
#endif
|
||||
|
||||
/* disable print */
|
||||
// #ifndef NO_PRINT
|
||||
// # define NO_PRINT
|
||||
// #endif
|
||||
|
||||
/* Only print user print statements */
|
||||
#define USER_PRINT
|
||||
|
||||
#ifndef KEYBOARD_planck_light
|
||||
#define BACKLIGHT_BREATHING
|
||||
#endif
|
||||
|
||||
/* disable action features */
|
||||
//#define NO_ACTION_LAYER
|
||||
//#define NO_ACTION_TAPPING
|
||||
//#define NO_ACTION_ONESHOT
|
||||
//#define NO_ACTION_MACRO
|
||||
//#define NO_ACTION_FUNCTION
|
||||
@@ -1,596 +0,0 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
#include "mousekey.h"
|
||||
|
||||
#ifdef AUDIO_ENABLE
|
||||
#include "audio.h"
|
||||
#include "song_list.h"
|
||||
#endif
|
||||
|
||||
enum keyboard_layers {
|
||||
LAYER_QWERTY = 0,
|
||||
LAYER_UPPER,
|
||||
LAYER_LOWER,
|
||||
LAYER_FUNCTION,
|
||||
LAYER_MOUSE,
|
||||
LAYER_ADJUST,
|
||||
};
|
||||
enum keyboard_macros {
|
||||
MACRO_QWERTY = 0,
|
||||
MACRO_UPPER,
|
||||
MACRO_LOWER,
|
||||
MACRO_FUNCTION,
|
||||
MACRO_MOUSE,
|
||||
MACRO_TIMBRE_1,
|
||||
MACRO_TIMBRE_2,
|
||||
MACRO_TIMBRE_3,
|
||||
MACRO_TIMBRE_4,
|
||||
MACRO_TEMPO_U,
|
||||
MACRO_TEMPO_D,
|
||||
MACRO_TONE_DEFAULT,
|
||||
MACRO_MUSIC_TOGGLE,
|
||||
MACRO_AUDIO_TOGGLE,
|
||||
MACRO_INC_VOICE,
|
||||
MACRO_DEC_VOICE,
|
||||
MACRO_BACKLIGHT,
|
||||
MACRO_BREATH_TOGGLE,
|
||||
MACRO_BREATH_SPEED_INC,
|
||||
MACRO_BREATH_SPEED_DEC,
|
||||
MACRO_BREATH_DEFAULT,
|
||||
MACRO_MOUSE_MOVE_UL,
|
||||
MACRO_MOUSE_MOVE_UR,
|
||||
MACRO_MOUSE_MOVE_DL,
|
||||
MACRO_MOUSE_MOVE_DR,
|
||||
MACRO_HELP_1,
|
||||
MACRO_HELP_2,
|
||||
MACRO_HELP_3,
|
||||
MACRO_HELP_4,
|
||||
MACRO_HELP_5,
|
||||
MACRO_HELP_6,
|
||||
MACRO_HELP_7,
|
||||
MACRO_HELP_8,
|
||||
MACRO_HELP_9,
|
||||
};
|
||||
|
||||
#define M_QWRTY M(MACRO_QWERTY)
|
||||
#define M_UPPER M(MACRO_UPPER)
|
||||
#define M_LOWER M(MACRO_LOWER)
|
||||
#define M_FUNCT M(MACRO_FUNCTION)
|
||||
#define M_MOUSE M(MACRO_MOUSE)
|
||||
#define TIMBR_1 M(MACRO_TIMBRE_1)
|
||||
#define TIMBR_2 M(MACRO_TIMBRE_2)
|
||||
#define TIMBR_3 M(MACRO_TIMBRE_3)
|
||||
#define TIMBR_4 M(MACRO_TIMBRE_4)
|
||||
#define TMPO_UP M(MACRO_TEMPO_U)
|
||||
#define TMPO_DN M(MACRO_TEMPO_D)
|
||||
#define TMPO_DF M(MACRO_TONE_DEFAULT)
|
||||
#define M_BACKL M(MACRO_BACKLIGHT)
|
||||
#define M_BRTOG M(MACRO_BREATH_TOGGLE)
|
||||
#define M_BSPDU M(MACRO_BREATH_SPEED_INC)
|
||||
#define M_BSPDD M(MACRO_BREATH_SPEED_DEC)
|
||||
#define M_BDFLT M(MACRO_BREATH_DEFAULT)
|
||||
#define M_MS_UL M(MACRO_MOUSE_MOVE_UL)
|
||||
#define M_MS_UR M(MACRO_MOUSE_MOVE_UR)
|
||||
#define M_MS_DL M(MACRO_MOUSE_MOVE_DL)
|
||||
#define M_MS_DR M(MACRO_MOUSE_MOVE_DR)
|
||||
#define M_HELP1 M(MACRO_HELP_1)
|
||||
#define M_HELP2 M(MACRO_HELP_2)
|
||||
#define M_HELP3 M(MACRO_HELP_3)
|
||||
#define M_HELP4 M(MACRO_HELP_4)
|
||||
#define M_HELP5 M(MACRO_HELP_5)
|
||||
#define M_HELP6 M(MACRO_HELP_6)
|
||||
#define M_HELP7 M(MACRO_HELP_7)
|
||||
#define M_HELP8 M(MACRO_HELP_8)
|
||||
#define M_HELP9 M(MACRO_HELP_9)
|
||||
|
||||
|
||||
#define VC_UP M(MACRO_INC_VOICE)
|
||||
#define VC_DOWN M(MACRO_DEC_VOICE)
|
||||
|
||||
|
||||
#define SC_UNDO LCTL(KC_Z)
|
||||
#define SC_REDO LCTL(KC_Y)
|
||||
#define SC_CUT LCTL(KC_X)
|
||||
#define SC_COPY LCTL(KC_C)
|
||||
#define SC_PSTE LCTL(KC_V)
|
||||
#define SC_SELA LCTL(KC_A)
|
||||
#define SC_SAVE LCTL(KC_S)
|
||||
#define SC_OPEN LCTL(KC_O)
|
||||
#define SC_ACLS LALT(KC_F4)
|
||||
#define SC_CCLS LCTL(KC_F4)
|
||||
|
||||
#define TG_NKRO MAGIC_TOGGLE_NKRO
|
||||
#define OS_SHFT OSM(MOD_RSFT)
|
||||
|
||||
#define ________________ _______, _______
|
||||
#define XXXXXXXXXXXXXXXX XXXXXXX, XXXXXXX
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
/* LAYER = LAYER_QWERTY
|
||||
.-----------------------------------------------------------------------------------------------------------.
|
||||
| TAB | Q | W | E | R | T | Y | U | I | O | P | BACKSP |
|
||||
|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||
| ESC | A | S | D | F | G | H | J | K | L | ; | ' |
|
||||
|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||
| LSHIFT | Z | X | C | V | B | N | M | , | . | UP | ENTER |
|
||||
|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||
| LCTRL | LWIN | FN | LALT | UPPER | SPACE | SPACE | LOWER | OSHIFT | LEFT | DOWN | RIGHT |
|
||||
'-----------------------------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[LAYER_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 ,
|
||||
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_UP , KC_ENT ,
|
||||
KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_UPPER, KC_SPC , KC_SPC , M_LOWER, OS_SHFT, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
/* LAYER = LAYER_UPPER
|
||||
.-----------------------------------------------------------------------------------------------------------.
|
||||
| PRINT | F1 | F2 | F3 | F4 | NUM LK | KP / | KP 7 | KP 8 | KP 9 | KP - | DEL |
|
||||
|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||
| PAUSE | F5 | F6 | F7 | F8 | SCR LK | KP * | KP 4 | KP 5 | KP 6 | KP + | INS |
|
||||
|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||
| ______ | F9 | F10 | F11 | F12 | PAUSE | KP 0 | KP 1 | KP 2 | KP 3 | KP ENT | HOME |
|
||||
|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||
| ______ | ______ | ______ | ______ | UPPER | KP 0 | KP 0 | ______ | RALT | KP . | KP ENT | END |
|
||||
'-----------------------------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[LAYER_UPPER] = LAYOUT_planck_grid(
|
||||
KC_PSCR, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_NLCK, KC_PSLS, KC_KP_7, KC_KP_8, KC_KP_9, KC_PMNS, KC_DEL ,
|
||||
KC_PAUS, KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_SLCK, KC_PAST, KC_KP_4, KC_KP_5, KC_KP_6, KC_PPLS, KC_INS ,
|
||||
_______, KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_PAUS, KC_KP_0, KC_KP_1, KC_KP_2, KC_KP_3, KC_PENT, KC_HOME ,
|
||||
_______, _______, _______, _______, M_UPPER, KC_KP_0, KC_KP_0, _______, KC_RALT, KC_PDOT, KC_PENT, KC_END
|
||||
),
|
||||
/* LAYER = LAYER_LOWER
|
||||
.-----------------------------------------------------------------------------------------------------------.
|
||||
| ______ | $ | { | [ | ( | % | # | ) | ] | } | @ | PG UP |
|
||||
|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||
| ______ | ^ | * | + | - | / | \ | _ | ' | " | ` | PG DN |
|
||||
|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||
| ______ | | | & | ! | ~ | ; | : | = | < | > | ? | HOME |
|
||||
|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||
| ______ | ______ | ______ | ______ | ______ | ______ | ______ | LOWER | ______ | ______ | ______ | END |
|
||||
'-----------------------------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[LAYER_LOWER] = LAYOUT_planck_grid(
|
||||
_______, KC_DLR , KC_LCBR, KC_LBRC, KC_LPRN, KC_PERC, KC_HASH, KC_RPRN, KC_RBRC, KC_RCBR, KC_AT , KC_PGUP ,
|
||||
_______, KC_CIRC, KC_ASTR, KC_PLUS, KC_MINS, KC_SLSH, KC_BSLS, KC_UNDS, KC_QUOT, KC_DQT , KC_GRV , KC_PGDN ,
|
||||
_______, KC_PIPE, KC_AMPR, KC_EXLM, KC_TILD, KC_SCLN, KC_COLN, KC_EQL , KC_LT , KC_GT , KC_QUES, KC_HOME ,
|
||||
_______, _______, _______, _______, _______, _______, _______, M_LOWER, _______, _______, _______, KC_END
|
||||
),
|
||||
/* LAYER = LAYER_FUNCTION
|
||||
.-----------------------------------------------------------------------------------------------------------.
|
||||
| XXXXXX | F13 | F14 | F15 | F16 | NUM LK | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX |
|
||||
|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||
| XXXXXX | F17 | F18 | F19 | F20 | SCR LK | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX |
|
||||
|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||
| ______ | F21 | F22 | F23 | F24 | CAP LK | XXXXXX | XXXXXX | XXXXXX | XXXXXX | VOL UP | MUTE |
|
||||
|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||
| ______ | ______ | FN | ______ | ______ | PLAY | PLAY | ______ | ______ | PREV | VOL DN | NEXT |
|
||||
'-----------------------------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[LAYER_FUNCTION] = LAYOUT_planck_grid(
|
||||
XXXXXXX, KC_F13 , KC_F14 , KC_F15 , KC_F16 , KC_NLCK, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX ,
|
||||
XXXXXXX, KC_F17 , KC_F18 , KC_F19 , KC_F20 , KC_SLCK, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX ,
|
||||
_______, KC_F21 , KC_F22 , KC_F23 , KC_F24 , KC_CAPS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_VOLU, KC_MUTE ,
|
||||
_______, _______, M_FUNCT, _______, _______, KC_MPLY, KC_MPLY, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT
|
||||
),
|
||||
/* LAYER = LAYER_MOUSE
|
||||
.-----------------------------------------------------------------------------------------------------------.
|
||||
| ESC | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | MS UL | MS U | MS UR | MS WHL | MS WHR |
|
||||
|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||
| XXXXXX | MS BT5 | MS BT4 | MS BT3 | MS BT2 | XXXXXX | XXXXXX | MS L | XXXXXX | MS R | XXXXXX | MS WHU |
|
||||
|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||
| ______ | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | MS DL | MS D | MS DR | MS U | MS WHD |
|
||||
|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||
| ______ | ______ | ______ | ______ | ______ | MS BT1 | MS BT1 | ______ | ______ | MS L | MS D | MS R |
|
||||
'-----------------------------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[LAYER_MOUSE] = LAYOUT_planck_grid(
|
||||
KC_ESC , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, M_MS_UL, KC_MS_U, M_MS_UR, KC_WH_L, KC_WH_R ,
|
||||
XXXXXXX, KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, XXXXXXX, XXXXXXX, KC_MS_L, XXXXXXX, KC_MS_R, XXXXXXX, KC_WH_U ,
|
||||
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, M_MS_DL, KC_MS_D, M_MS_DR, KC_MS_U, KC_WH_D ,
|
||||
_______, _______, _______, _______, _______, KC_BTN1, KC_BTN1, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R
|
||||
),
|
||||
/* LAYER = LAYER_ADJUST
|
||||
.-----------------------------------------------------------------------------------------------------------.
|
||||
| XXXXXX | HELP 1 | HELP 2 | HELP 3 | HELP 4 | HELP 5 | HELP 6 | HELP 7 | HELP 8 | HELP 9 | MUSIC | AUDIO |
|
||||
|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||
| XXXXXX | BRTOG | BRSPD+ | BRSPD- | BRDFLT | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX |
|
||||
|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||
| XXXXXX | QWERTY | XXXXXX | XXXXXX | BACKLT | QK_BOOT | XXXXXX | MOUSE | XXXXXX | XXXXXX | VOICE+ | XXXXXX |
|
||||
|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||
| XXXXXX | XXXXXX | XXXXXX | XXXXXX | UPPER | XXXXXX | XXXXXX | LOWER | XXXXXX | TEMPO- | VOICE- | TEMPO+ |
|
||||
'-----------------------------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[LAYER_ADJUST] = LAYOUT_planck_grid(
|
||||
XXXXXXX, M_HELP1, M_HELP2, M_HELP3, M_HELP4, M_HELP5, M_HELP6, M_HELP7, M_HELP8, M_HELP9, MU_TOG , AU_TOG ,
|
||||
XXXXXXX, M_BRTOG, M_BSPDU, M_BSPDD, M_BDFLT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX ,
|
||||
XXXXXXX, M_QWRTY, XXXXXXX, XXXXXXX, M_BACKL, QK_BOOT, XXXXXXX, M_MOUSE, XXXXXXX, XXXXXXX, MUV_IN , XXXXXXX ,
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, M_UPPER, XXXXXXX, XXXXXXX, M_LOWER, XXXXXXX, TMPO_DN, MUV_DE , TMPO_UP
|
||||
),
|
||||
|
||||
};
|
||||
|
||||
#ifdef AUDIO_ENABLE
|
||||
|
||||
float tone_my_startup[][2] = SONG(ODE_TO_JOY);
|
||||
float tone_my_goodbye[][2] = SONG(ROCK_A_BYE_BABY);
|
||||
|
||||
float tone_audio_on[][2] = SONG(CLOSE_ENCOUNTERS_5_NOTE);
|
||||
float tone_music_on[][2] = SONG(DOE_A_DEER);
|
||||
float tone_caps_on[][2] = SONG(CAPS_LOCK_ON_SOUND);
|
||||
float tone_caps_off[][2] = SONG(CAPS_LOCK_OFF_SOUND);
|
||||
float tone_numlk_on[][2] = SONG(NUM_LOCK_ON_SOUND);
|
||||
float tone_numlk_off[][2] = SONG(NUM_LOCK_OFF_SOUND);
|
||||
float tone_scroll_on[][2] = SONG(SCROLL_LOCK_ON_SOUND);
|
||||
float tone_scroll_off[][2] = SONG(SCROLL_LOCK_OFF_SOUND);
|
||||
float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
|
||||
|
||||
#endif /* AUDIO_ENABLE */
|
||||
|
||||
void persistent_default_layer_set(uint16_t default_layer)
|
||||
{
|
||||
eeconfig_update_default_layer(default_layer);
|
||||
default_layer_set(default_layer);
|
||||
}
|
||||
|
||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
|
||||
{
|
||||
|
||||
// MACRODOWN only works in this function
|
||||
switch(id)
|
||||
{
|
||||
|
||||
case MACRO_HELP_1:
|
||||
if (record->event.pressed)
|
||||
{
|
||||
uprintf("1");
|
||||
}
|
||||
break;
|
||||
|
||||
case MACRO_HELP_2:
|
||||
if (record->event.pressed)
|
||||
{
|
||||
uprintf("2");
|
||||
}
|
||||
break;
|
||||
|
||||
case MACRO_HELP_3:
|
||||
if (record->event.pressed)
|
||||
{
|
||||
uprintf("3");
|
||||
}
|
||||
break;
|
||||
|
||||
case MACRO_HELP_4:
|
||||
if (record->event.pressed)
|
||||
{
|
||||
uprintf("4");
|
||||
}
|
||||
break;
|
||||
|
||||
case MACRO_HELP_5:
|
||||
if (record->event.pressed)
|
||||
{
|
||||
uprintf("5");
|
||||
}
|
||||
break;
|
||||
|
||||
case MACRO_HELP_6:
|
||||
if (record->event.pressed)
|
||||
{
|
||||
uprintf("6");
|
||||
}
|
||||
break;
|
||||
|
||||
case MACRO_HELP_7:
|
||||
if (record->event.pressed)
|
||||
{
|
||||
uprintf("7");
|
||||
}
|
||||
break;
|
||||
|
||||
case MACRO_HELP_8:
|
||||
if (record->event.pressed)
|
||||
{
|
||||
uprintf("8");
|
||||
}
|
||||
break;
|
||||
|
||||
case MACRO_HELP_9:
|
||||
if (record->event.pressed)
|
||||
{
|
||||
uprintf("9");
|
||||
}
|
||||
break;
|
||||
|
||||
case MACRO_BREATH_TOGGLE:
|
||||
if (record->event.pressed)
|
||||
{
|
||||
#ifdef BACKLIGHT_BREATHING
|
||||
breathing_toggle();
|
||||
#endif
|
||||
}
|
||||
break;
|
||||
|
||||
case MACRO_BREATH_SPEED_INC:
|
||||
if (record->event.pressed)
|
||||
{
|
||||
#ifdef BACKLIGHT_BREATHING
|
||||
breathing_period_inc();
|
||||
#endif
|
||||
}
|
||||
break;
|
||||
|
||||
case MACRO_BREATH_SPEED_DEC:
|
||||
if (record->event.pressed)
|
||||
{
|
||||
#ifdef BACKLIGHT_BREATHING
|
||||
breathing_period_dec();
|
||||
#endif
|
||||
}
|
||||
break;
|
||||
|
||||
case MACRO_BREATH_DEFAULT:
|
||||
if (record->event.pressed)
|
||||
{
|
||||
#ifdef BACKLIGHT_BREATHING
|
||||
breathing_period_default();
|
||||
#endif
|
||||
}
|
||||
break;
|
||||
|
||||
case MACRO_QWERTY:
|
||||
if (record->event.pressed)
|
||||
{
|
||||
persistent_default_layer_set(1UL<<LAYER_QWERTY);
|
||||
}
|
||||
break;
|
||||
|
||||
case MACRO_UPPER:
|
||||
if (record->event.pressed)
|
||||
{
|
||||
layer_on(LAYER_UPPER);
|
||||
#ifdef BACKLIGHT_BREATHING
|
||||
breathing_period_set(2);
|
||||
breathing_pulse();
|
||||
#endif
|
||||
update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST);
|
||||
}
|
||||
else
|
||||
{
|
||||
layer_off(LAYER_UPPER);
|
||||
update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST);
|
||||
}
|
||||
break;
|
||||
|
||||
case MACRO_LOWER:
|
||||
if (record->event.pressed)
|
||||
{
|
||||
layer_on(LAYER_LOWER);
|
||||
#ifdef BACKLIGHT_BREATHING
|
||||
breathing_period_set(2);
|
||||
breathing_pulse();
|
||||
#endif
|
||||
update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST);
|
||||
}
|
||||
else
|
||||
{
|
||||
layer_off(LAYER_LOWER);
|
||||
update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST);
|
||||
}
|
||||
break;
|
||||
|
||||
case MACRO_FUNCTION:
|
||||
if (record->event.pressed)
|
||||
{
|
||||
#ifdef BACKLIGHT_BREATHING
|
||||
breathing_period_set(3);
|
||||
breathing_enable();
|
||||
#endif
|
||||
layer_on(LAYER_FUNCTION);
|
||||
}
|
||||
else
|
||||
{
|
||||
#ifdef BACKLIGHT_BREATHING
|
||||
breathing_period_set(1);
|
||||
breathing_self_disable();
|
||||
#endif
|
||||
layer_off(LAYER_FUNCTION);
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
#ifdef BACKLIGHT_ENABLE
|
||||
case MACRO_BACKLIGHT:
|
||||
if (record->event.pressed)
|
||||
{
|
||||
backlight_step();
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef MOUSEKEY_ENABLE
|
||||
|
||||
case MACRO_MOUSE:
|
||||
if (record->event.pressed)
|
||||
{
|
||||
layer_invert(LAYER_MOUSE);
|
||||
}
|
||||
break;
|
||||
|
||||
case MACRO_MOUSE_MOVE_UL:
|
||||
if (record->event.pressed)
|
||||
{
|
||||
mousekey_on(KC_MS_UP);
|
||||
mousekey_on(KC_MS_LEFT);
|
||||
}
|
||||
else
|
||||
{
|
||||
mousekey_off(KC_MS_UP);
|
||||
mousekey_off(KC_MS_LEFT);
|
||||
}
|
||||
break;
|
||||
|
||||
case MACRO_MOUSE_MOVE_UR:
|
||||
if (record->event.pressed)
|
||||
{
|
||||
mousekey_on(KC_MS_UP);
|
||||
mousekey_on(KC_MS_RIGHT);
|
||||
}
|
||||
else
|
||||
{
|
||||
mousekey_off(KC_MS_UP);
|
||||
mousekey_off(KC_MS_RIGHT);
|
||||
}
|
||||
break;
|
||||
|
||||
case MACRO_MOUSE_MOVE_DL:
|
||||
if (record->event.pressed)
|
||||
{
|
||||
mousekey_on(KC_MS_DOWN);
|
||||
mousekey_on(KC_MS_LEFT);
|
||||
}
|
||||
else
|
||||
{
|
||||
mousekey_off(KC_MS_DOWN);
|
||||
mousekey_off(KC_MS_LEFT);
|
||||
}
|
||||
break;
|
||||
|
||||
case MACRO_MOUSE_MOVE_DR:
|
||||
if (record->event.pressed)
|
||||
{
|
||||
mousekey_on(KC_MS_DOWN);
|
||||
mousekey_on(KC_MS_RIGHT);
|
||||
}
|
||||
else
|
||||
{
|
||||
mousekey_off(KC_MS_DOWN);
|
||||
mousekey_off(KC_MS_RIGHT);
|
||||
}
|
||||
break;
|
||||
|
||||
#endif /* MOUSEKEY_ENABLE */
|
||||
|
||||
#ifdef AUDIO_ENABLE
|
||||
|
||||
case MACRO_TIMBRE_1:
|
||||
if (record->event.pressed) set_timbre(TIMBRE_12);
|
||||
break;
|
||||
|
||||
case MACRO_TIMBRE_2:
|
||||
if (record->event.pressed) set_timbre(TIMBRE_25);
|
||||
break;
|
||||
|
||||
case MACRO_TIMBRE_3:
|
||||
if (record->event.pressed) set_timbre(TIMBRE_50);
|
||||
break;
|
||||
|
||||
case MACRO_TIMBRE_4:
|
||||
if (record->event.pressed) set_timbre(TIMBRE_75);
|
||||
break;
|
||||
|
||||
case MACRO_TEMPO_U:
|
||||
if (record->event.pressed) increase_tempo(10);
|
||||
break;
|
||||
|
||||
case MACRO_TEMPO_D:
|
||||
if (record->event.pressed) decrease_tempo(10);
|
||||
break;
|
||||
|
||||
case MACRO_TONE_DEFAULT:
|
||||
if (record->event.pressed)
|
||||
{
|
||||
set_timbre(TIMBRE_DEFAULT);
|
||||
set_tempo(TEMPO_DEFAULT);
|
||||
}
|
||||
break;
|
||||
|
||||
#endif /* AUDIO_ENABLE */
|
||||
|
||||
default:
|
||||
break;
|
||||
|
||||
}
|
||||
return MACRO_NONE;
|
||||
};
|
||||
|
||||
|
||||
#ifdef AUDIO_ENABLE
|
||||
|
||||
void matrix_init_user(void)
|
||||
{
|
||||
set_voice(default_voice);
|
||||
startup_user();
|
||||
println("Matrix Init");
|
||||
}
|
||||
|
||||
void led_set_user(uint8_t usb_led)
|
||||
{
|
||||
static uint8_t old_usb_led = 0;
|
||||
|
||||
_delay_ms(10); // gets rid of tick
|
||||
|
||||
if ((usb_led & (1<<USB_LED_CAPS_LOCK)) && !(old_usb_led & (1<<USB_LED_CAPS_LOCK)))
|
||||
{
|
||||
// If CAPS LK LED is turning on...
|
||||
PLAY_SONG(tone_caps_on);
|
||||
}
|
||||
else if (!(usb_led & (1<<USB_LED_CAPS_LOCK)) && (old_usb_led & (1<<USB_LED_CAPS_LOCK)))
|
||||
{
|
||||
// If CAPS LK LED is turning off...
|
||||
PLAY_SONG(tone_caps_off);
|
||||
}
|
||||
else if ((usb_led & (1<<USB_LED_NUM_LOCK)) && !(old_usb_led & (1<<USB_LED_NUM_LOCK)))
|
||||
{
|
||||
// If NUM LK LED is turning on...
|
||||
PLAY_SONG(tone_numlk_on);
|
||||
}
|
||||
else if (!(usb_led & (1<<USB_LED_NUM_LOCK)) && (old_usb_led & (1<<USB_LED_NUM_LOCK)))
|
||||
{
|
||||
// If NUM LED is turning off...
|
||||
PLAY_SONG(tone_numlk_off);
|
||||
}
|
||||
else if ((usb_led & (1<<USB_LED_SCROLL_LOCK)) && !(old_usb_led & (1<<USB_LED_SCROLL_LOCK)))
|
||||
{
|
||||
// If SCROLL LK LED is turning on...
|
||||
PLAY_SONG(tone_scroll_on);
|
||||
}
|
||||
else if (!(usb_led & (1<<USB_LED_SCROLL_LOCK)) && (old_usb_led & (1<<USB_LED_SCROLL_LOCK)))
|
||||
{
|
||||
// If SCROLL LED is turning off...
|
||||
PLAY_SONG(tone_scroll_off);
|
||||
}
|
||||
old_usb_led = usb_led;
|
||||
}
|
||||
|
||||
|
||||
void startup_user()
|
||||
{
|
||||
_delay_ms(10); // gets rid of tick
|
||||
PLAY_SONG(tone_my_startup);
|
||||
}
|
||||
|
||||
void shutdown_user()
|
||||
{
|
||||
PLAY_SONG(tone_my_goodbye);
|
||||
_delay_ms(2000);
|
||||
stop_all_notes();
|
||||
}
|
||||
|
||||
void audio_on_user(void)
|
||||
{
|
||||
PLAY_SONG(tone_audio_on);
|
||||
}
|
||||
|
||||
void music_on_user(void)
|
||||
{
|
||||
PLAY_SONG(tone_music_on);
|
||||
}
|
||||
|
||||
void music_scale_user(void)
|
||||
{
|
||||
PLAY_SONG(music_scale);
|
||||
}
|
||||
|
||||
#endif /* AUDIO_ENABLE */
|
||||
@@ -1,19 +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 # Enable Bootmagic Lite
|
||||
MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
|
||||
CONSOLE_ENABLE = yes # Console for debug(+400)
|
||||
COMMAND_ENABLE = yes # Commands for debug and configuration
|
||||
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
|
||||
|
||||
#include "../../config.h"
|
||||
|
||||
#define TAPPING_TERM ( 200 )
|
||||
|
||||
#endif
|
||||
@@ -1,105 +0,0 @@
|
||||
// This keymap assumes that the keyboard is recognized as JIS keyboard from the OS.
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
#include "version.h"
|
||||
|
||||
#include "sendstring_japanese.h"
|
||||
|
||||
// JIS keyboard
|
||||
#define JK_CIRC KC_EQL // ^
|
||||
#define JK_AT KC_LBRC // @
|
||||
#define JK_LBRC KC_RBRC // [
|
||||
#define JK_CLN KC_QUOT // :
|
||||
#define JK_RBRC KC_BSLS // ]
|
||||
#define JK_BSLS JP_BSLS // Backslash(\)
|
||||
#define JK_DQT S(KC_2) // "
|
||||
#define JK_AMPR S(KC_6) // &
|
||||
#define JK_SQT S(KC_7) // '
|
||||
#define JK_LPRN S(KC_8) // (
|
||||
#define JK_RPRN S(KC_9) // )
|
||||
#define JK_S0 S(KC_0) // Tilde(~) at IBM 5576-A01 spec
|
||||
#define JK_EQ S(KC_MINS) // =
|
||||
#define JK_TLD S(JK_CIRC) // ~
|
||||
#define JK_PIPE S(JP_YEN) // |
|
||||
#define JK_GRV S(JK_AT) // `
|
||||
#define JK_LCBR S(JK_LBRC) // {
|
||||
#define JK_PLUS S(KC_SCLN) // +
|
||||
#define JK_ASTR S(JK_CLN) // *
|
||||
#define JK_RCBR S(JK_RBRC) // }
|
||||
#define JK_QUES S(KC_SLSH) // ?
|
||||
#define JK_UNDS S(JK_BSLS) // _
|
||||
|
||||
enum user_macro {
|
||||
UM_MHEN,
|
||||
UM_HENK,
|
||||
UM_DEBUG,
|
||||
};
|
||||
#define M_MHEN MACROTAP(UM_MHEN)
|
||||
#define M_HENK MACROTAP(UM_HENK)
|
||||
#define M_DEBUG M(UM_DEBUG)
|
||||
|
||||
enum keymap_layer {
|
||||
KL_QWERTY,
|
||||
KL_LOWER,
|
||||
KL_RAISE,
|
||||
};
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[KL_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,
|
||||
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, JK_CLN,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
|
||||
JP_ZKHK, JP_KANA, KC_LGUI, KC_LALT, M_MHEN, KC_SPC, KC_SPC, M_HENK, KC_RALT, KC_RGUI, KC_APP, KC_ENT
|
||||
),
|
||||
|
||||
[KL_LOWER] = LAYOUT_planck_grid(
|
||||
KC_GESC, KC_EXLM, JK_DQT, KC_HASH, KC_DLR, KC_PERC, JK_AMPR, JK_SQT, JK_LPRN, JK_RPRN, JK_S0, KC_DEL,
|
||||
_______, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, KC_DEL, KC_BSPC, JK_EQ, JK_TLD, JK_GRV, JK_LCBR, JK_PIPE,
|
||||
_______, C(KC_Z), C(KC_X), C(KC_C), C(KC_V), C(KC_Y), XXXXXXX, KC_ENT, KC_LABK, KC_RABK, JK_RCBR, JK_UNDS,
|
||||
QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
[KL_RAISE] = LAYOUT_planck_grid(
|
||||
KC_CAPS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
|
||||
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, JK_CIRC, JK_AT, JK_LBRC, JP_YEN,
|
||||
_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, KC_COMM, KC_DOT, JK_RBRC, JK_BSLS,
|
||||
M_DEBUG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
};
|
||||
|
||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
|
||||
{
|
||||
dprintf( "record.\n"
|
||||
" event.pressed = %u\n"
|
||||
" tap.count = %u\n"
|
||||
" tap.interrupted = %u\n"
|
||||
, record->event.pressed
|
||||
, record->tap.count
|
||||
, record->tap.interrupted );
|
||||
dprintf( "id = %u\n", id );
|
||||
dprintf( "opt = %u\n", opt );
|
||||
|
||||
switch(id) {
|
||||
|
||||
case UM_MHEN: {
|
||||
return MACRO_TAP_HOLD_LAYER( record, MACRO(TYPE(JP_MHEN), END), KL_LOWER );
|
||||
} break;
|
||||
|
||||
case UM_HENK: {
|
||||
return MACRO_TAP_HOLD_LAYER( record, MACRO(TYPE(JP_HENK), END), KL_RAISE );
|
||||
} break;
|
||||
|
||||
case UM_DEBUG: {
|
||||
if (record->event.pressed) {
|
||||
debug_enable = !debug_enable;
|
||||
if (debug_enable) {
|
||||
dprint("\nDEBUG: enabled.\n");
|
||||
SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
|
||||
}
|
||||
}
|
||||
} break;
|
||||
|
||||
}
|
||||
return MACRO_NONE;
|
||||
};
|
||||
@@ -1,3 +0,0 @@
|
||||
# rai-suta's Planck Layout
|
||||
|
||||
This keymap assumes that the keyboard is recognized as JIS keyboard from the OS.
|
||||
@@ -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 # Enable Bootmagic Lite
|
||||
MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
|
||||
CONSOLE_ENABLE = yes # 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,121 +0,0 @@
|
||||
//
|
||||
//Dropped the Dvorak layer and added two my layer buttons. Both Raise and lower can be accessed from either side now.
|
||||
|
||||
#include QMK_KEYBOARD_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.
|
||||
#define _QW 0
|
||||
#define _CM 1
|
||||
#define _LW 2
|
||||
#define _RS 3
|
||||
#define _FN 4
|
||||
|
||||
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 |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Ctrl | Alt | GUI |Func |Lower | Space |Raise | Left | Down | Up |Right |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_QW] = 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,
|
||||
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_LCTL, KC_LALT, KC_LGUI, MO(_FN), MO(_LW), KC_SPC, KC_SPC, MO(_RS), 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 |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Ctrl | Alt | GUI |Func |Lower | Space |Raise | Left | Down | Up |Right
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_CM] = 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,
|
||||
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_LCTL, KC_LALT, KC_LGUI, MO(_FN), MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
|
||||
),
|
||||
/* Raise
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | Esc | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | | |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | Shift| F7 | F8 | F9 | F10 | F11 | F12 | _ | + | { | } |Enter |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Ctrl | Alt | GUI |Func |Lower | Space |Raise | Left | Down | Up |Right |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_RS] = LAYOUT_planck_grid(
|
||||
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, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_PIPE,
|
||||
KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, 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
|
||||
),
|
||||
/* Lower
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | Esc | Reset| Ins | Home | PGUP |Colemk| Left | - | = | [ | ] | \ |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | Shift| Brite| Del | End | PGDN |Qwerty| Del | _ | + | { | } |Enter |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Ctrl | Alt | GUI |Func |Lower | Space |Raise | Left | Down | Up |Right |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_LW] = 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, QK_BOOT, KC_INS, KC_HOME, KC_PGUP, DF(_CM), KC_LEFT, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||
KC_TRNS, M(0), KC_DEL, KC_END, KC_PGDN, DF(_QW), KC_DEL, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, 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
|
||||
),
|
||||
/* Function
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | Esc | GUI | X | C | V | Z | Left | Down | Up |Right | Del | \ |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* |Shift | Ctrl | X | C | V | Z | Next | Mute | Vol- | Vol+ | Play |Enter |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Ctrl | Alt | GUI |Func |Lower | Space |Raise | Left | Down | Up |Right |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_FN] = LAYOUT_planck_grid(
|
||||
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, KC_RGUI, KC_X, KC_C, KC_V, KC_Z, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_DEL, KC_BSLS,
|
||||
KC_TRNS, KC_RCTL, KC_X, KC_C, KC_V, KC_Z, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPLY, 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
|
||||
)
|
||||
};
|
||||
|
||||
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,19 +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 # Enable Bootmagic Lite
|
||||
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,26 +0,0 @@
|
||||
#ifndef CONFIG_USER_H
|
||||
#define CONFIG_USER_H
|
||||
|
||||
#include "../../config.h"
|
||||
|
||||
/*
|
||||
* MIDI options
|
||||
*/
|
||||
|
||||
/* 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,325 +0,0 @@
|
||||
/*
|
||||
Copyright
|
||||
2015 Jack Humbert <jack.humb@gmail.com>
|
||||
2016 Francois Marlier <fmarlier@gmail.com>
|
||||
|
||||
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/>.
|
||||
|
||||
For more info on how this works per OS, see here
|
||||
https://en.wikipedia.org/wiki/Unicode_input#Hexadecimal_code_input
|
||||
*/
|
||||
|
||||
|
||||
#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.
|
||||
#define _QWERTY 0
|
||||
#define _COLEMAK 1
|
||||
#define _DVORAK 2
|
||||
#define _LOWER 3
|
||||
#define _RAISE 4
|
||||
#define _PLOVER 5
|
||||
#define _ADJUST 16
|
||||
|
||||
// Macro name shortcuts
|
||||
#define QWERTY M(_QWERTY)
|
||||
#define COLEMAK M(_COLEMAK)
|
||||
#define DVORAK M(_DVORAK)
|
||||
#define LOWER M(_LOWER)
|
||||
#define RAISE M(_RAISE)
|
||||
#define M_BL 5
|
||||
#define PLOVER M(12)
|
||||
#define EXT_PLV M(13)
|
||||
#define TOG_OUT M(14)
|
||||
|
||||
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 |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_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,
|
||||
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 ,
|
||||
M(M_BL), 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] = LAYOUT_planck_grid(
|
||||
KC_TAB, UC_q, UC_w, UC_f, UC_p, UC_g, UC_j, UC_l, UC_u, UC_y, UC_SCLN, UC_BSPC,
|
||||
KC_ESC, UC_a, UC_r, UC_s, UC_t, UC_d, UC_h, UC_n, UC_e, UC_i, UC_o, UC_QUOT,
|
||||
KC_LSFT, UC_z, UC_x, UC_c, UC_v, UC_b, UC_k, UC_m, UC_COMM, UC_DOT, UC_SLSH, KC_ENT,
|
||||
KC_TRNS, 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] = LAYOUT_planck_grid(
|
||||
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 ,
|
||||
M(M_BL), 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 | _ | + | { | } | | |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | | F7 | F8 | F9 | F10 | F11 | F12 | | | | |Enter |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | Next | Vol- | Vol+ | Play |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_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_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_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 | | | | |Enter |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | Next | Vol- | Vol+ | Play |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_RAISE] = LAYOUT_planck_grid(
|
||||
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_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
|
||||
),
|
||||
|
||||
/* 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] = LAYOUT_planck_grid(
|
||||
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,
|
||||
TOG_OUT, 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| | | | | | | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | | | | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_ADJUST] = LAYOUT_planck_grid(
|
||||
_______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL,
|
||||
_______, _______, _______, 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 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);
|
||||
}
|
||||
|
||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
|
||||
{
|
||||
switch(id) {
|
||||
case _QWERTY:
|
||||
if (record->event.pressed) {
|
||||
#ifdef AUDIO_ENABLE
|
||||
PLAY_SONG(tone_qwerty);
|
||||
#endif
|
||||
persistent_default_layer_set(1UL<<_QWERTY);
|
||||
}
|
||||
break;
|
||||
case _COLEMAK:
|
||||
if (record->event.pressed) {
|
||||
#ifdef AUDIO_ENABLE
|
||||
PLAY_SONG(tone_colemak);
|
||||
#endif
|
||||
persistent_default_layer_set(1UL<<_COLEMAK);
|
||||
}
|
||||
break;
|
||||
case _DVORAK:
|
||||
if (record->event.pressed) {
|
||||
#ifdef AUDIO_ENABLE
|
||||
PLAY_SONG(tone_dvorak);
|
||||
#endif
|
||||
persistent_default_layer_set(1UL<<_DVORAK);
|
||||
}
|
||||
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);
|
||||
}
|
||||
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);
|
||||
}
|
||||
break;
|
||||
case M_BL:
|
||||
if (record->event.pressed) {
|
||||
register_code(KC_RSFT);
|
||||
#ifdef BACKLIGHT_ENABLE
|
||||
backlight_step();
|
||||
#endif
|
||||
} else {
|
||||
unregister_code(KC_RSFT);
|
||||
}
|
||||
break;
|
||||
case 12:
|
||||
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);
|
||||
}
|
||||
break;
|
||||
case 13:
|
||||
if (record->event.pressed) {
|
||||
#ifdef AUDIO_ENABLE
|
||||
PLAY_SONG(tone_plover_gb);
|
||||
#endif
|
||||
layer_off(_PLOVER);
|
||||
}
|
||||
break;
|
||||
case 14:
|
||||
if (record->event.pressed) {
|
||||
return MACRO( D(E), D(R), D(F), D(V), D(O), D(L), U(E), U(R), U(F), U(V), U(O), U(L), END );
|
||||
}
|
||||
break;
|
||||
}
|
||||
return MACRO_NONE;
|
||||
};
|
||||
|
||||
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,8 +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
|
||||
#
|
||||
UNICODE_ENABLE = yes # Unicode
|
||||
|
||||
@@ -1,95 +0,0 @@
|
||||
//
|
||||
|
||||
#include QMK_KEYBOARD_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.
|
||||
#define _QWERTY 0
|
||||
#define _NUM 5
|
||||
#define _FUNC 6
|
||||
#define _NAV 7
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
/* _QWERTY
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* |Ctrl/Tab| A | S | D | F | G | H | J | K | L | ; | " |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | Shift| Z | X | C | V | B | N | M | , | . | / |Shift |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Ctrl | Alt | GUI | GUI | Num | Space | FN | GUI | Alt | Ctrl | Enter|
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_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,
|
||||
CTL_T(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_LCTL, KC_LALT, KC_LGUI, KC_LGUI, MO(_NUM), KC_SPC, KC_SPC, MO(_FUNC), KC_RGUI, KC_RALT, KC_RCTL, KC_ENT
|
||||
),
|
||||
|
||||
/* _NUM
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | ___ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | ____ |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | Ctrl | ` | [ | { | ( | / | \ | ) | } | ] | - | = |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | ____ | ! | @ | # | $ | % | ^ | & | * | _ | + | ____ |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | ____ | ___ | ___ | ___ | XXXX | ______ | ____ | ____ | ____ | __ | ____ |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_NUM] = LAYOUT_planck_grid(
|
||||
_______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______,
|
||||
KC_LCTL, KC_GRV, KC_LBRC, KC_LCBR, KC_LPRN, KC_SLSH, KC_BSLS, KC_RPRN, KC_RCBR, KC_RBRC, KC_MINS, KC_EQL,
|
||||
_______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_UNDS, KC_PLUS, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, MO(_NAV), _______, _______, _______, _______
|
||||
),
|
||||
|
||||
/* _FUNC
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | ____ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | ____ |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | ____ |Shift | Ctrl | Alt | GUI | ____ | Left | Down | Up |Right | Del | ____ |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | ____ |Light | ____ | Vol- | Prev | Play | Mute | Next | Vol+ | ____ | ____ | ____ |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | ____ | ____ | ____ | ____ | ____ | _____ | XXXX | ____ | ____ | ____ | ____ |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_FUNC] = LAYOUT_planck_grid(
|
||||
_______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______,
|
||||
_______, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_DEL, _______,
|
||||
_______, M(0), _______, KC_VOLD, KC_MPRV, KC_MPLY, KC_MUTE, KC_MNXT, KC_VOLU, _______, _______, _______,
|
||||
_______, _______, _______, _______, MO(_NAV), _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
[_NAV] = LAYOUT_planck_grid(
|
||||
KC_MS_ACCEL2, KC_NO, KC_NO, KC_NO, KC_NO, XXXXXXX, XXXXXXX, KC_WH_D, KC_WH_U, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
KC_MS_ACCEL1, KC_MS_BTN4, KC_MS_BTN3, KC_MS_BTN2, KC_MS_BTN1, XXXXXXX, KC_MS_LEFT, KC_MS_DOWN, KC_MS_UP, KC_MS_RIGHT, XXXXXXX, XXXXXXX,
|
||||
KC_MS_ACCEL0, KC_NO, KC_NO, KC_NO, KC_NO, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, 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 +0,0 @@
|
||||

|
||||
@@ -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 # Enable Bootmagic Lite
|
||||
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,14 +0,0 @@
|
||||
#ifndef CONFIG_USER_H
|
||||
#define CONFIG_USER_H
|
||||
|
||||
#include "../../config.h"
|
||||
|
||||
/* ws2812 RGB LED */
|
||||
#define RGB_DI_PIN D1
|
||||
#define RGBLIGHT_ANIMATIONS
|
||||
#define RGBLED_NUM 28 // Number of LEDs
|
||||
#define RGBLIGHT_HUE_STEP 10
|
||||
#define RGBLIGHT_SAT_STEP 17
|
||||
#define RGBLIGHT_VAL_STEP 17
|
||||
|
||||
#endif
|
||||
@@ -1,73 +0,0 @@
|
||||
|
||||
#include QMK_KEYBOARD_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.
|
||||
#define _QW 0
|
||||
#define _CM 1
|
||||
#define _DV 2
|
||||
#define _LW 3
|
||||
#define _RS 4
|
||||
#define _RGB 5
|
||||
|
||||
#define RGB_SPC LT(_RGB, KC_SPC)
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_QW] = LAYOUT_planck_grid( /* 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 ,
|
||||
M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), RGB_SPC, RGB_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
|
||||
),
|
||||
[_CM] = LAYOUT_planck_grid( /* 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 ,
|
||||
M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), RGB_SPC, RGB_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
|
||||
),
|
||||
[_DV] = LAYOUT_planck_grid( /* 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 ,
|
||||
M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), RGB_SPC, RGB_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
|
||||
),
|
||||
[_RS] = LAYOUT_planck_grid( /* 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, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||
KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), DF(_DV), QK_BOOT, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
|
||||
),
|
||||
[_LW] = LAYOUT_planck_grid( /* 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_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
|
||||
KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), DF(_DV), QK_BOOT, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
|
||||
),
|
||||
[_RGB] = LAYOUT_planck_grid( /* RGBLIGHT */
|
||||
KC_TRNS, KC_PGUP, KC_UP, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL,
|
||||
KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_HOME, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_END, KC_TRNS,
|
||||
KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, 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
|
||||
)
|
||||
|
||||
};
|
||||
|
||||
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,2 +0,0 @@
|
||||

|
||||

|
||||
@@ -1,7 +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
|
||||
#
|
||||
RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
|
||||
AUDIO_ENABLE = no
|
||||
|
||||
@@ -1,72 +0,0 @@
|
||||
/*
|
||||
Copyright 2012 Jun Wako <wakojun@gmail.com>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "config_common.h"
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 4
|
||||
#define MATRIX_COLS 12
|
||||
|
||||
/* Planck PCB default pin-out */
|
||||
#ifndef KEYBOARD_planck_light
|
||||
#define MATRIX_ROW_PINS { D0, D5, B5, B6 }
|
||||
#define MATRIX_COL_PINS { F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 }
|
||||
#endif
|
||||
|
||||
/* 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
|
||||
|
||||
/*
|
||||
* Feature disable options
|
||||
* These options are also useful to firmware size reduction.
|
||||
*/
|
||||
|
||||
/* disable debug print */
|
||||
#ifndef NO_DEBUG
|
||||
# define NO_DEBUG
|
||||
#endif
|
||||
|
||||
/* disable print */
|
||||
// #ifndef NO_PRINT
|
||||
// # define NO_PRINT
|
||||
// #endif
|
||||
|
||||
/* Only print user print statements */
|
||||
#define USER_PRINT
|
||||
|
||||
#ifndef KEYBOARD_planck_light
|
||||
#define BACKLIGHT_BREATHING
|
||||
#endif
|
||||
|
||||
/* disable action features */
|
||||
//#define NO_ACTION_LAYER
|
||||
//#define NO_ACTION_TAPPING
|
||||
//#define NO_ACTION_ONESHOT
|
||||
//#define NO_ACTION_MACRO
|
||||
//#define NO_ACTION_FUNCTION
|
||||
@@ -1,634 +0,0 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
#include "mousekey.h"
|
||||
|
||||
#ifdef AUDIO_ENABLE
|
||||
#include "audio.h"
|
||||
#include "song_list.h"
|
||||
#endif
|
||||
|
||||
enum keyboard_layers {
|
||||
LAYER_QWERTY = 0,
|
||||
LAYER_UPPER,
|
||||
LAYER_LOWER,
|
||||
LAYER_FUNCTION,
|
||||
LAYER_MOUSE,
|
||||
LAYER_ADJUST,
|
||||
};
|
||||
enum keyboard_macros {
|
||||
MACRO_QWERTY = 0,
|
||||
MACRO_UPPER,
|
||||
MACRO_LOWER,
|
||||
MACRO_FUNCTION,
|
||||
MACRO_MOUSE,
|
||||
MACRO_TIMBRE_1,
|
||||
MACRO_TIMBRE_2,
|
||||
MACRO_TIMBRE_3,
|
||||
MACRO_TIMBRE_4,
|
||||
MACRO_TEMPO_U,
|
||||
MACRO_TEMPO_D,
|
||||
MACRO_TONE_DEFAULT,
|
||||
MACRO_MUSIC_TOGGLE,
|
||||
MACRO_AUDIO_TOGGLE,
|
||||
MACRO_INC_VOICE,
|
||||
MACRO_DEC_VOICE,
|
||||
MACRO_BACKLIGHT,
|
||||
MACRO_BREATH_TOGGLE,
|
||||
MACRO_BREATH_SPEED_INC,
|
||||
MACRO_BREATH_SPEED_DEC,
|
||||
MACRO_BREATH_DEFAULT,
|
||||
MACRO_MOUSE_MOVE_UL,
|
||||
MACRO_MOUSE_MOVE_UR,
|
||||
MACRO_MOUSE_MOVE_DL,
|
||||
MACRO_MOUSE_MOVE_DR,
|
||||
MACRO_HELP_1,
|
||||
MACRO_HELP_2,
|
||||
MACRO_HELP_3,
|
||||
MACRO_HELP_4,
|
||||
MACRO_HELP_5,
|
||||
MACRO_HELP_6,
|
||||
MACRO_HELP_7,
|
||||
MACRO_HELP_8,
|
||||
MACRO_HELP_9,
|
||||
MACRO_MINE,
|
||||
//MACRO_SHENT,
|
||||
};
|
||||
|
||||
enum {
|
||||
TD_SPENT = 0
|
||||
};
|
||||
|
||||
#define M_QWRTY M(MACRO_QWERTY)
|
||||
#define M_UPPER M(MACRO_UPPER)
|
||||
#define M_LOWER M(MACRO_LOWER)
|
||||
#define M_FUNCT M(MACRO_FUNCTION)
|
||||
#define M_MOUSE M(MACRO_MOUSE)
|
||||
#define TIMBR_1 M(MACRO_TIMBRE_1)
|
||||
#define TIMBR_2 M(MACRO_TIMBRE_2)
|
||||
#define TIMBR_3 M(MACRO_TIMBRE_3)
|
||||
#define TIMBR_4 M(MACRO_TIMBRE_4)
|
||||
#define TMPO_UP M(MACRO_TEMPO_U)
|
||||
#define TMPO_DN M(MACRO_TEMPO_D)
|
||||
#define TMPO_DF M(MACRO_TONE_DEFAULT)
|
||||
#define M_BACKL M(MACRO_BACKLIGHT)
|
||||
#define M_BRTOG M(MACRO_BREATH_TOGGLE)
|
||||
#define M_BSPDU M(MACRO_BREATH_SPEED_INC)
|
||||
#define M_BSPDD M(MACRO_BREATH_SPEED_DEC)
|
||||
#define M_BDFLT M(MACRO_BREATH_DEFAULT)
|
||||
#define M_MS_UL M(MACRO_MOUSE_MOVE_UL)
|
||||
#define M_MS_UR M(MACRO_MOUSE_MOVE_UR)
|
||||
#define M_MS_DL M(MACRO_MOUSE_MOVE_DL)
|
||||
#define M_MS_DR M(MACRO_MOUSE_MOVE_DR)
|
||||
#define M_HELP1 M(MACRO_HELP_1)
|
||||
#define M_HELP2 M(MACRO_HELP_2)
|
||||
#define M_HELP3 M(MACRO_HELP_3)
|
||||
#define M_HELP4 M(MACRO_HELP_4)
|
||||
#define M_HELP5 M(MACRO_HELP_5)
|
||||
#define M_HELP6 M(MACRO_HELP_6)
|
||||
#define M_HELP7 M(MACRO_HELP_7)
|
||||
#define M_HELP8 M(MACRO_HELP_8)
|
||||
#define M_HELP9 M(MACRO_HELP_9)
|
||||
#define MY_MACRO M(MACRO_MINE)
|
||||
//#define M_SHENT M(MACRO_SHENT)
|
||||
|
||||
|
||||
#define VC_UP M(MACRO_INC_VOICE)
|
||||
#define VC_DOWN M(MACRO_DEC_VOICE)
|
||||
|
||||
|
||||
#define SC_UNDO LCTL(KC_Z)
|
||||
#define SC_REDO LCTL(KC_Y)
|
||||
#define SC_CUT LCTL(KC_X)
|
||||
#define SC_COPY LCTL(KC_C)
|
||||
#define SC_PSTE LCTL(KC_V)
|
||||
#define SC_SELA LCTL(KC_A)
|
||||
#define SC_SAVE LCTL(KC_S)
|
||||
#define SC_OPEN LCTL(KC_O)
|
||||
#define SC_ACLS LALT(KC_F4)
|
||||
#define SC_CCLS LCTL(KC_F4)
|
||||
|
||||
#define TG_NKRO MAGIC_TOGGLE_NKRO
|
||||
#define OS_SHFT OSM(MOD_RSFT)
|
||||
|
||||
#define ________________ _______, _______
|
||||
#define XXXXXXXXXXXXXXXX XXXXXXX, XXXXXXX
|
||||
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
/* LAYER = LAYER_QWERTY
|
||||
.-----------------------------------------------------------------------------------------------------------.
|
||||
| ESC | Q | W | E | R | T | Y | U | I | O | P | BACKSP |
|
||||
|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||
| TAB | A | S | D | F | G | H | J | K | L | ; | ' |
|
||||
|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||
| LSHIFT | Z | X | C | V | B | N | M | , | . | UP | SH/ENT |
|
||||
|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||
| LCTRL | LWIN | FN | LALT | LOWER | SPACE | SPACE | UPPER | MENU | LEFT | DOWN | RIGHT |
|
||||
'-----------------------------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[LAYER_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 ,
|
||||
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_UP , KC_SFTENT /*M_SHENT*/ ,
|
||||
KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_LOWER, KC_SPC , KC_SPC , M_UPPER, KC_APP , KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
/* LAYER = LAYER_UPPER
|
||||
.-----------------------------------------------------------------------------------------------------------.
|
||||
| PRINT | F1 | F2 | F3 | F4 | NUM LK | KP / | KP 7 | KP 8 | KP 9 | KP - | DEL |
|
||||
|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||
| PAUSE | F5 | F6 | F7 | F8 | SCR LK | KP * | KP 4 | KP 5 | KP 6 | KP + | HOME |
|
||||
|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||
| ______ | F9 | F10 | F11 | F12 | PAUSE | KP 0 | KP 1 | KP 2 | KP 3 | KP ENT | END |
|
||||
|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||
| ______ | ______ | ______ | ______ | LOWER | KP 0 | KP 0 | ______ | RALT | KP 0 | KP ENT | RTCTRL |
|
||||
'-----------------------------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[LAYER_UPPER] = LAYOUT_planck_grid(
|
||||
KC_PSCR, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_NLCK, KC_PSLS, KC_KP_7, KC_KP_8, KC_KP_9, KC_PMNS, KC_DEL ,
|
||||
KC_PAUS, KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_SLCK, KC_PAST, KC_KP_4, KC_KP_5, KC_KP_6, KC_PPLS, KC_HOME ,
|
||||
_______, KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_PAUS, KC_KP_0, KC_KP_1, KC_KP_2, KC_KP_3, KC_PENT, KC_END ,
|
||||
_______, _______, _______, _______, M_LOWER, KC_KP_0, KC_KP_0, _______, KC_KP_0, KC_PDOT, KC_PENT, KC_RCTL
|
||||
),
|
||||
/* LAYER = LAYER_LOWER
|
||||
.-----------------------------------------------------------------------------------------------------------.
|
||||
| ______ | $ | { | [ | ( | % | # | ) | ] | } | @ | PG UP |
|
||||
|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||
| ______ | ^ | * | + | - | / | \ | _ | ' | " | ` | PG DN |
|
||||
|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||
| ______ | | | & | ! | ~ | ; | : | = | < | > | ? | HOME |
|
||||
|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||
| ______ | ______ | ______ | ______ | ______ | ______ | ______ | UPPER | ______ | ______ | ______ | END |
|
||||
'-----------------------------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[LAYER_LOWER] = LAYOUT_planck_grid(
|
||||
_______, KC_DLR , KC_LCBR, KC_LBRC, KC_LPRN, KC_PERC, KC_HASH, KC_RPRN, KC_RBRC, KC_RCBR, KC_AT , KC_PGUP ,
|
||||
_______, KC_CIRC, KC_ASTR, KC_PLUS, KC_MINS, KC_SLSH, KC_BSLS, KC_UNDS, KC_QUOT, KC_DQT , KC_GRV , KC_PGDN ,
|
||||
_______, KC_PIPE, KC_AMPR, KC_EXLM, KC_TILD, KC_SCLN, KC_COLN, KC_EQL , KC_LT , KC_GT , KC_QUES, KC_HOME ,
|
||||
_______, _______, _______, _______, _______, _______, _______, M_UPPER, _______, _______, _______, KC_END
|
||||
),
|
||||
/* LAYER = LAYER_FUNCTION
|
||||
.-----------------------------------------------------------------------------------------------------------.
|
||||
| XXXXXX | F13 | F14 | F15 | F16 | NUM LK | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX |
|
||||
|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||
| XXXXXX | F17 | F18 | F19 | F20 | SCR LK | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX |
|
||||
|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||
| ______ | F21 | F22 | F23 | F24 | CAP LK | XXXXXX | XXXXXX | XXXXXX | XXXXXX | VOL UP | MUTE |
|
||||
|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||
| ______ | ______ | FN | ______ | ______ | PLAY | PLAY | ______ | ______ | PREV | VOL DN | NEXT |
|
||||
'-----------------------------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[LAYER_FUNCTION] = LAYOUT_planck_grid(
|
||||
XXXXXXX, KC_F13 , KC_F14 , KC_F15 , KC_F16 , KC_NLCK, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX ,
|
||||
XXXXXXX, KC_F17 , KC_F18 , KC_F19 , KC_F20 , KC_SLCK, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX ,
|
||||
_______, KC_F21 , KC_F22 , KC_F23 , KC_F24 , KC_CAPS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_VOLU, KC_MUTE ,
|
||||
_______, _______, M_FUNCT, _______, _______, KC_MPLY, KC_MPLY, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT
|
||||
),
|
||||
/* LAYER = LAYER_MOUSE
|
||||
.-----------------------------------------------------------------------------------------------------------.
|
||||
| ESC | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | MS UL | MS U | MS UR | MS WHL | MS WHR |
|
||||
|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||
| XXXXXX | MS BT5 | MS BT4 | MS BT3 | MS BT2 | XXXXXX | XXXXXX | MS L | XXXXXX | MS R | XXXXXX | MS WHU |
|
||||
|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||
| ______ | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | MS DL | MS D | MS DR | MS U | MS WHD |
|
||||
|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||
| ______ | ______ | ______ | ______ | ______ | MS BT1 | MS BT1 | ______ | ______ | MS L | MS D | MS R |
|
||||
'-----------------------------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[LAYER_MOUSE] = LAYOUT_planck_grid(
|
||||
KC_ESC , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, M_MS_UL, KC_MS_U, M_MS_UR, KC_WH_L, KC_WH_R ,
|
||||
XXXXXXX, KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, XXXXXXX, XXXXXXX, KC_MS_L, XXXXXXX, KC_MS_R, XXXXXXX, KC_WH_U ,
|
||||
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, M_MS_DL, KC_MS_D, M_MS_DR, KC_MS_U, KC_WH_D ,
|
||||
_______, _______, _______, _______, _______, KC_BTN1, KC_BTN1, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R
|
||||
),
|
||||
/* LAYER = LAYER_ADJUST
|
||||
.-----------------------------------------------------------------------------------------------------------.
|
||||
| XXXXXX | HELP 1 | HELP 2 | HELP 3 | HELP 4 | HELP 5 | HELP 6 | HELP 7 | HELP 8 | HELP 9 | MUSIC | AUDIO |
|
||||
|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||
| XXXXXX | BRTOG | BRSPD+ | BRSPD- | BRDFLT | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX |
|
||||
|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||
| XXXXXX | QWERTY | XXXXXX | XXXXXX | BACKLT | QK_BOOT | XXXXXX | MOUSE | XXXXXX | XXXXXX | VOICE+ | MACRO |
|
||||
|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||
| XXXXXX | XXXXXX | XXXXXX | XXXXXX | LOWER | XXXXXX | XXXXXX | UPPER | XXXXXX | TEMPO- | VOICE- | TEMPO+ |
|
||||
'-----------------------------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[LAYER_ADJUST] = LAYOUT_planck_grid(
|
||||
XXXXXXX, M_HELP1, M_HELP2, M_HELP3, M_HELP4, M_HELP5, M_HELP6, M_HELP7, M_HELP8, M_HELP9, MU_TOG , AU_TOG ,
|
||||
XXXXXXX, M_BRTOG, M_BSPDU, M_BSPDD, M_BDFLT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX ,
|
||||
XXXXXXX, M_QWRTY, XXXXXXX, XXXXXXX, M_BACKL, QK_BOOT, XXXXXXX, M_MOUSE, XXXXXXX, XXXXXXX, MUV_IN , MY_MACRO,
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, M_LOWER, XXXXXXX, XXXXXXX, M_UPPER, XXXXXXX, TMPO_DN, MUV_DE , TMPO_UP
|
||||
),
|
||||
|
||||
};
|
||||
|
||||
#ifdef AUDIO_ENABLE
|
||||
|
||||
float tone_my_startup[][2] = SONG(QWERTY_SOUND);
|
||||
float tone_my_goodbye[][2] = SONG(QWERTY_SOUND);
|
||||
|
||||
float tone_audio_on[][2] = SONG(CLOSE_ENCOUNTERS_5_NOTE);
|
||||
float tone_music_on[][2] = SONG(DOE_A_DEER);
|
||||
float tone_caps_on[][2] = SONG(CAPS_LOCK_ON_SOUND);
|
||||
float tone_caps_off[][2] = SONG(CAPS_LOCK_OFF_SOUND);
|
||||
float tone_numlk_on[][2] = SONG(NUM_LOCK_ON_SOUND);
|
||||
float tone_numlk_off[][2] = SONG(NUM_LOCK_OFF_SOUND);
|
||||
float tone_scroll_on[][2] = SONG(SCROLL_LOCK_ON_SOUND);
|
||||
float tone_scroll_off[][2] = SONG(SCROLL_LOCK_OFF_SOUND);
|
||||
float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
|
||||
|
||||
#endif /* AUDIO_ENABLE */
|
||||
|
||||
void persistant_default_layer_set(uint16_t default_layer)
|
||||
{
|
||||
eeconfig_update_default_layer(default_layer);
|
||||
default_layer_set(default_layer);
|
||||
}
|
||||
|
||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
|
||||
{
|
||||
|
||||
// MACRODOWN only works in this function
|
||||
switch(id)
|
||||
{
|
||||
|
||||
case MACRO_HELP_1:
|
||||
if (record->event.pressed)
|
||||
{
|
||||
//uprintf("1");
|
||||
}
|
||||
break;
|
||||
|
||||
case MACRO_HELP_2:
|
||||
if (record->event.pressed)
|
||||
{
|
||||
//uprintf("2");
|
||||
}
|
||||
break;
|
||||
|
||||
case MACRO_HELP_3:
|
||||
if (record->event.pressed)
|
||||
{
|
||||
//uprintf("3");
|
||||
}
|
||||
break;
|
||||
|
||||
case MACRO_HELP_4:
|
||||
if (record->event.pressed)
|
||||
{
|
||||
//uprintf("4");
|
||||
}
|
||||
break;
|
||||
|
||||
case MACRO_HELP_5:
|
||||
if (record->event.pressed)
|
||||
{
|
||||
//uprintf("5");
|
||||
}
|
||||
break;
|
||||
|
||||
case MACRO_HELP_6:
|
||||
if (record->event.pressed)
|
||||
{
|
||||
//uprintf("6");
|
||||
}
|
||||
break;
|
||||
|
||||
case MACRO_HELP_7:
|
||||
if (record->event.pressed)
|
||||
{
|
||||
//uprintf("7");
|
||||
}
|
||||
break;
|
||||
|
||||
case MACRO_HELP_8:
|
||||
if (record->event.pressed)
|
||||
{
|
||||
//uprintf("8");
|
||||
}
|
||||
break;
|
||||
|
||||
case MACRO_HELP_9:
|
||||
if (record->event.pressed)
|
||||
{
|
||||
//uprintf("9");
|
||||
}
|
||||
break;
|
||||
|
||||
case MACRO_BREATH_TOGGLE:
|
||||
if (record->event.pressed)
|
||||
{
|
||||
#ifdef BACKLIGHT_BREATHING
|
||||
breathing_toggle();
|
||||
#endif
|
||||
}
|
||||
break;
|
||||
|
||||
case MACRO_BREATH_SPEED_INC:
|
||||
if (record->event.pressed)
|
||||
{
|
||||
#ifdef BACKLIGHT_BREATHING
|
||||
breathing_period_inc();
|
||||
#endif
|
||||
}
|
||||
break;
|
||||
|
||||
case MACRO_BREATH_SPEED_DEC:
|
||||
if (record->event.pressed)
|
||||
{
|
||||
#ifdef BACKLIGHT_BREATHING
|
||||
breathing_period_dec();
|
||||
#endif
|
||||
}
|
||||
break;
|
||||
|
||||
case MACRO_BREATH_DEFAULT:
|
||||
if (record->event.pressed)
|
||||
{
|
||||
#ifdef BACKLIGHT_BREATHING
|
||||
breathing_period_default();
|
||||
#endif
|
||||
}
|
||||
break;
|
||||
|
||||
case MACRO_QWERTY:
|
||||
if (record->event.pressed)
|
||||
{
|
||||
persistant_default_layer_set(1UL<<LAYER_QWERTY);
|
||||
}
|
||||
break;
|
||||
|
||||
case MACRO_UPPER:
|
||||
if (record->event.pressed)
|
||||
{
|
||||
layer_on(LAYER_UPPER);
|
||||
#ifdef BACKLIGHT_BREATHING
|
||||
breathing_period_set(2);
|
||||
breathing_pulse();
|
||||
#endif
|
||||
update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST);
|
||||
}
|
||||
else
|
||||
{
|
||||
layer_off(LAYER_UPPER);
|
||||
update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST);
|
||||
}
|
||||
break;
|
||||
|
||||
case MACRO_LOWER:
|
||||
if (record->event.pressed)
|
||||
{
|
||||
layer_on(LAYER_LOWER);
|
||||
#ifdef BACKLIGHT_BREATHING
|
||||
breathing_period_set(2);
|
||||
breathing_pulse();
|
||||
#endif
|
||||
update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST);
|
||||
}
|
||||
else
|
||||
{
|
||||
layer_off(LAYER_LOWER);
|
||||
update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST);
|
||||
}
|
||||
break;
|
||||
|
||||
case MACRO_FUNCTION:
|
||||
if (record->event.pressed)
|
||||
{
|
||||
#ifdef BACKLIGHT_BREATHING
|
||||
breathing_period_set(3);
|
||||
breathing_enable();
|
||||
#endif
|
||||
layer_on(LAYER_FUNCTION);
|
||||
}
|
||||
else
|
||||
{
|
||||
#ifdef BACKLIGHT_BREATHING
|
||||
breathing_period_set(1);
|
||||
breathing_self_disable();
|
||||
#endif
|
||||
layer_off(LAYER_FUNCTION);
|
||||
}
|
||||
break;
|
||||
|
||||
case MACRO_MINE:
|
||||
if(record->event.pressed)
|
||||
{
|
||||
return MACRO( I(03), T(R), T(O), T(O), T(T), W(10), T(TAB), W(10), T(T), T(O), T(O), T(R), T(ENTER), END );
|
||||
}
|
||||
break;
|
||||
|
||||
/*
|
||||
case MACRO_SHENT:
|
||||
if (record->event.pressed)
|
||||
{
|
||||
start = timer_read();
|
||||
return MACRO( D(LSHIFT), END );
|
||||
}
|
||||
else
|
||||
{
|
||||
if (timer_elapsed(start) > 100)
|
||||
{
|
||||
return MACRO( U(LSHIFT), END);
|
||||
}
|
||||
else
|
||||
{
|
||||
return MACRO( U(LSHIFT), T(ENTER), END);
|
||||
}
|
||||
}
|
||||
break;
|
||||
*/
|
||||
|
||||
|
||||
#ifdef BACKLIGHT_ENABLE
|
||||
case MACRO_BACKLIGHT:
|
||||
if (record->event.pressed)
|
||||
{
|
||||
backlight_step();
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef MOUSEKEY_ENABLE
|
||||
|
||||
case MACRO_MOUSE:
|
||||
if (record->event.pressed)
|
||||
{
|
||||
layer_invert(LAYER_MOUSE);
|
||||
}
|
||||
break;
|
||||
|
||||
case MACRO_MOUSE_MOVE_UL:
|
||||
if (record->event.pressed)
|
||||
{
|
||||
mousekey_on(KC_MS_UP);
|
||||
mousekey_on(KC_MS_LEFT);
|
||||
}
|
||||
else
|
||||
{
|
||||
mousekey_off(KC_MS_UP);
|
||||
mousekey_off(KC_MS_LEFT);
|
||||
}
|
||||
break;
|
||||
|
||||
case MACRO_MOUSE_MOVE_UR:
|
||||
if (record->event.pressed)
|
||||
{
|
||||
mousekey_on(KC_MS_UP);
|
||||
mousekey_on(KC_MS_RIGHT);
|
||||
}
|
||||
else
|
||||
{
|
||||
mousekey_off(KC_MS_UP);
|
||||
mousekey_off(KC_MS_RIGHT);
|
||||
}
|
||||
break;
|
||||
|
||||
case MACRO_MOUSE_MOVE_DL:
|
||||
if (record->event.pressed)
|
||||
{
|
||||
mousekey_on(KC_MS_DOWN);
|
||||
mousekey_on(KC_MS_LEFT);
|
||||
}
|
||||
else
|
||||
{
|
||||
mousekey_off(KC_MS_DOWN);
|
||||
mousekey_off(KC_MS_LEFT);
|
||||
}
|
||||
break;
|
||||
|
||||
case MACRO_MOUSE_MOVE_DR:
|
||||
if (record->event.pressed)
|
||||
{
|
||||
mousekey_on(KC_MS_DOWN);
|
||||
mousekey_on(KC_MS_RIGHT);
|
||||
}
|
||||
else
|
||||
{
|
||||
mousekey_off(KC_MS_DOWN);
|
||||
mousekey_off(KC_MS_RIGHT);
|
||||
}
|
||||
break;
|
||||
|
||||
#endif /* MOUSEKEY_ENABLE */
|
||||
|
||||
#ifdef AUDIO_ENABLE
|
||||
|
||||
case MACRO_TIMBRE_1:
|
||||
if (record->event.pressed) set_timbre(TIMBRE_12);
|
||||
break;
|
||||
|
||||
case MACRO_TIMBRE_2:
|
||||
if (record->event.pressed) set_timbre(TIMBRE_25);
|
||||
break;
|
||||
|
||||
case MACRO_TIMBRE_3:
|
||||
if (record->event.pressed) set_timbre(TIMBRE_50);
|
||||
break;
|
||||
|
||||
case MACRO_TIMBRE_4:
|
||||
if (record->event.pressed) set_timbre(TIMBRE_75);
|
||||
break;
|
||||
|
||||
case MACRO_TEMPO_U:
|
||||
if (record->event.pressed) increase_tempo(10);
|
||||
break;
|
||||
|
||||
case MACRO_TEMPO_D:
|
||||
if (record->event.pressed) decrease_tempo(10);
|
||||
break;
|
||||
|
||||
case MACRO_TONE_DEFAULT:
|
||||
if (record->event.pressed)
|
||||
{
|
||||
set_timbre(TIMBRE_DEFAULT);
|
||||
set_tempo(TEMPO_DEFAULT);
|
||||
}
|
||||
break;
|
||||
|
||||
#endif /* AUDIO_ENABLE */
|
||||
|
||||
default:
|
||||
break;
|
||||
|
||||
}
|
||||
return MACRO_NONE;
|
||||
};
|
||||
|
||||
|
||||
|
||||
#ifdef AUDIO_ENABLE
|
||||
|
||||
void matrix_init_user(void)
|
||||
{
|
||||
set_voice(default_voice);
|
||||
startup_user();
|
||||
println("Matrix Init");
|
||||
}
|
||||
|
||||
void led_set_user(uint8_t usb_led)
|
||||
{
|
||||
static uint8_t old_usb_led = 0;
|
||||
|
||||
_delay_ms(10); // gets rid of tick
|
||||
|
||||
if ((usb_led & (1<<USB_LED_CAPS_LOCK)) && !(old_usb_led & (1<<USB_LED_CAPS_LOCK)))
|
||||
{
|
||||
// If CAPS LK LED is turning on...
|
||||
PLAY_SONG(tone_caps_on);
|
||||
}
|
||||
else if (!(usb_led & (1<<USB_LED_CAPS_LOCK)) && (old_usb_led & (1<<USB_LED_CAPS_LOCK)))
|
||||
{
|
||||
// If CAPS LK LED is turning off...
|
||||
PLAY_SONG(tone_caps_off);
|
||||
}
|
||||
else if ((usb_led & (1<<USB_LED_NUM_LOCK)) && !(old_usb_led & (1<<USB_LED_NUM_LOCK)))
|
||||
{
|
||||
// If NUM LK LED is turning on...
|
||||
PLAY_SONG(tone_numlk_on);
|
||||
}
|
||||
else if (!(usb_led & (1<<USB_LED_NUM_LOCK)) && (old_usb_led & (1<<USB_LED_NUM_LOCK)))
|
||||
{
|
||||
// If NUM LED is turning off...
|
||||
PLAY_SONG(tone_numlk_off);
|
||||
}
|
||||
else if ((usb_led & (1<<USB_LED_SCROLL_LOCK)) && !(old_usb_led & (1<<USB_LED_SCROLL_LOCK)))
|
||||
{
|
||||
// If SCROLL LK LED is turning on...
|
||||
PLAY_SONG(tone_scroll_on);
|
||||
}
|
||||
else if (!(usb_led & (1<<USB_LED_SCROLL_LOCK)) && (old_usb_led & (1<<USB_LED_SCROLL_LOCK)))
|
||||
{
|
||||
// If SCROLL LED is turning off...
|
||||
PLAY_SONG(tone_scroll_off);
|
||||
}
|
||||
old_usb_led = usb_led;
|
||||
}
|
||||
|
||||
|
||||
void startup_user()
|
||||
{
|
||||
_delay_ms(10); // gets rid of tick
|
||||
PLAY_SONG(tone_my_startup);
|
||||
}
|
||||
|
||||
void shutdown_user()
|
||||
{
|
||||
PLAY_SONG(tone_my_goodbye);
|
||||
_delay_ms(2000);
|
||||
stop_all_notes();
|
||||
}
|
||||
|
||||
void audio_on_user(void)
|
||||
{
|
||||
PLAY_SONG(tone_audio_on);
|
||||
}
|
||||
|
||||
void music_on_user(void)
|
||||
{
|
||||
PLAY_SONG(tone_music_on);
|
||||
}
|
||||
|
||||
void music_scale_user(void)
|
||||
{
|
||||
PLAY_SONG(music_scale);
|
||||
}
|
||||
|
||||
#endif /* AUDIO_ENABLE */
|
||||
@@ -1,27 +0,0 @@
|
||||
# Please remove if no longer applicable
|
||||
$(warning THIS FILE MAY BE TOO LARGE FOR YOUR KEYBOARD)
|
||||
$(warning Please disable some options in the Makefile to resolve)
|
||||
|
||||
# NOTE: the maximum .hex file size on Planck is 7000h (28672 decimal)
|
||||
|
||||
|
||||
# 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 # Enable Bootmagic Lite
|
||||
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 = yes # Enable keyboard backlight functionality
|
||||
MIDI_ENABLE = yes # 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 = no # Enable double or n tap macros
|
||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||
|
||||
Reference in New Issue
Block a user