mirror of
https://github.com/qmk/qmk_firmware.git
synced 2025-08-24 05:28:53 +00:00
Compare commits
10 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
53a43dbe99 | ||
![]() |
db03b76910 | ||
![]() |
14bdd5ed2a | ||
![]() |
f45bc9b362 | ||
![]() |
4a7baaaf50 | ||
![]() |
dad79cafcd | ||
![]() |
d08f9cb6e4 | ||
![]() |
397d404ce0 | ||
![]() |
9de4ace6f2 | ||
![]() |
1f13254460 |
@@ -27,17 +27,17 @@ This usually happens with a periodic scan of key presses. This speed often is li
|
||||
|
||||
## 2. What the Firmware Sends
|
||||
|
||||
The [HID specification](http://www.usb.org/developers/hidpage/Hut1_12v2.pdf) tells what a keyboard can actually send through USB to have a chance to be properly recognised. This includes a pre-defined list of scancodes which are simple numbers from `0x00` to `0xE7`. The firmware assigns a scancode to each key of the keyboard.
|
||||
The [HID specification](https://www.usb.org/sites/default/files/documents/hut1_12v2.pdf) tells what a keyboard can actually send through USB to have a chance to be properly recognised. This includes a pre-defined list of scancodes which are simple numbers from `0x00` to `0xE7`. The firmware assigns a scancode to each key of the keyboard.
|
||||
|
||||
The firmware does not send actually letters or characters, but only scancodes.
|
||||
Thus, by modifying the firmware, you only can modify what scancode is sent over
|
||||
The firmware does not send actual letters or characters, but only scancodes.
|
||||
Thus, by modifying the firmware, you can only modify what scancode is sent over
|
||||
USB for a given key.
|
||||
|
||||
## 3. What the Operating System Does
|
||||
|
||||
Once the keycode reaches the operating system, a piece of software has to have
|
||||
it match an actual character thanks to a keyboard layout. For example, if your
|
||||
layout is set to QWERTY, a sample of the matching table is as follow:
|
||||
layout is set to QWERTY, a sample of the matching table is as follows:
|
||||
|
||||
| keycode | character |
|
||||
|---------|-----------|
|
||||
@@ -55,11 +55,11 @@ As the layout is generally fixed (unless you create your own), the firmware can
|
||||
|
||||
## List of Characters You Can Send
|
||||
|
||||
Putting aside shortcuts, having a limited set of keycodes mapped to a limited layout means that **the list of characters you can assign to a given key only is the ones present in the layout**.
|
||||
Putting aside shortcuts, having a limited set of keycodes mapped to a limited layout means that **the list of characters you can assign to a given key are only the ones present in the layout**.
|
||||
|
||||
For example, this means that if you have a QWERTY US layout, and you want to assign 1 key to produce `€` (euro currency symbol), you are unable to do so, because the QWERTY US layout does not have such mapping. You could fix that by using a QWERTY UK layout, or a QWERTY US International.
|
||||
For example, this means that if you have a QWERTY US layout, and you want to assign one key to produce `€` (euro currency symbol), you are unable to do so, because the QWERTY US layout does not have such mapping. You could fix that by using a QWERTY UK layout, or a QWERTY US International.
|
||||
|
||||
You may wonder why a keyboard layout containing all of Unicode is not devised then? The limited number of keycode available through USB simply disallow such a thing.
|
||||
You may wonder why a keyboard layout containing all of Unicode is not devised then? The limited number of keycodes available through USB simply disallows such a thing.
|
||||
|
||||
## How to (Maybe) Enter Unicode Characters
|
||||
|
||||
|
@@ -1,6 +1,6 @@
|
||||
# Basic Keycodes
|
||||
|
||||
The basic set of keycodes are based on the [HID Keyboard/Keypad Usage Page (0x07)](http://www.usb.org/developers/hidpage/Hut1_12v2.pdf) with the exception of `KC_NO`, `KC_TRNS` and keycodes in the `0xA5-DF` range. See below for more details.
|
||||
The basic set of keycodes are based on the [HID Keyboard/Keypad Usage Page (0x07)](https://www.usb.org/sites/default/files/documents/hut1_12v2.pdf) with the exception of `KC_NO`, `KC_TRNS` and keycodes in the `0xA5-DF` range. See below for more details.
|
||||
|
||||
## Letters and Numbers
|
||||
|
||||
|
@@ -128,7 +128,7 @@ The standard Deutsche (German) keyboard layout. Named for the first 6 letters on
|
||||
The term for pressing a key while a key is already held down. Variants include 2KRO, 6KRO, and NKRO.
|
||||
|
||||
## Scancode
|
||||
A 1 byte number that is sent as part of a HID report over USB that represents a single key. These numbers are documented in the [HID Usage Tables](http://www.usb.org/developers/hidpage/Hut1_12v2.pdf) published by the [USB-IF](http://www.usb.org/).
|
||||
A 1 byte number that is sent as part of a HID report over USB that represents a single key. These numbers are documented in the [HID Usage Tables](https://www.usb.org/sites/default/files/documents/hut1_12v2.pdf) published by the [USB-IF](http://www.usb.org/).
|
||||
|
||||
## Space Cadet Shift
|
||||
A special set of shift keys which allow you to type various types of braces by tapping the left or right shift one or more times.
|
||||
|
@@ -12,7 +12,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | Shift | Z | X | C | V | B | N | M | , | . | / | RSh | U | DEL |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | FN2 | Alt | Cmd | Space | Cmd | FN1 | L | D | R |
|
||||
* | FN1 | Alt | Cmd | Space | Cmd | FN2 | L | D | R |
|
||||
* `-----------------------------------------------------------------------------------------'
|
||||
*/
|
||||
|
||||
@@ -21,7 +21,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||
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, KC_ENT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_DEL,
|
||||
MO(2), KC_LALT, KC_LGUI, KC_SPC, KC_SPC, KC_SPC, KC_RGUI, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT
|
||||
MO(1), KC_LALT, KC_LGUI, KC_SPC, KC_SPC, KC_SPC, KC_RGUI, MO(2), KC_LEFT, KC_DOWN, KC_RIGHT
|
||||
),
|
||||
|
||||
/* FN1 Layer
|
||||
@@ -30,7 +30,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | | | | | | | | | | | | | | |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | | | | | | | | | | | | | |
|
||||
* | | | | | | | L | D | U | R | | | |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | | | | | | | | | | | | |PgUp | |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
@@ -41,7 +41,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
LAYOUT_directional(
|
||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDOWN, KC_END
|
||||
),
|
||||
|
@@ -1,71 +1,553 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
#include "keymap.h"
|
||||
|
||||
enum marianas_layers {
|
||||
BASE,
|
||||
QWERTY,
|
||||
/*
|
||||
COLEMAK,
|
||||
DVORAK,
|
||||
*/
|
||||
NAV_CLUSTER,
|
||||
RGB,
|
||||
MOUSE,
|
||||
GAMING,
|
||||
FN_LAYER,
|
||||
LAYER_SEL
|
||||
SQLMACROS,
|
||||
SQLNAMES,
|
||||
FN_LAYER
|
||||
};
|
||||
|
||||
enum sql_macros {
|
||||
S_LFTJN = SAFE_RANGE, // L
|
||||
S_INRJN, // I
|
||||
S_SLCT, // S
|
||||
S_FROM, // F
|
||||
S_DSNCT, // D
|
||||
S_ORDER, // O
|
||||
S_WHERE, // W
|
||||
S_ALTER, // Esc
|
||||
S_ASTRK, // *
|
||||
|
||||
TD_A,
|
||||
TD_B,
|
||||
TD_C, // Corp, Corporation, Company
|
||||
TD_D, // Distribution, Dist, Distributor
|
||||
TD_E,
|
||||
TD_F,
|
||||
TD_G, // GlobalLookup
|
||||
TD_H,
|
||||
TD_I, // Instance, Item
|
||||
TD_J,
|
||||
TD_K,
|
||||
TD_L,
|
||||
TD_M,
|
||||
TD_N, // NadRate
|
||||
TD_O,
|
||||
TD_P, // Product, Person,
|
||||
TD_Q, // Darden
|
||||
TD_R,
|
||||
TD_S, // Supplier, Step
|
||||
TD_T, // Task, Type
|
||||
TD_U,
|
||||
TD_V,
|
||||
TD_W, // Workflow,
|
||||
TD_X,
|
||||
TD_Y,
|
||||
TD_Z,
|
||||
TD_BSPC,
|
||||
TD_ENT,
|
||||
TD_ESC
|
||||
};
|
||||
|
||||
uint16_t *macroTaps = 0;
|
||||
|
||||
char *tableNameList = 0;
|
||||
|
||||
uint8_t *charCount = 0;
|
||||
uint8_t countPointer = 0;
|
||||
|
||||
bool shifted = false;
|
||||
|
||||
bool sendAbbr = false;
|
||||
|
||||
|
||||
void initStringData(void)
|
||||
{
|
||||
if (macroTaps == 0)
|
||||
{
|
||||
macroTaps = malloc(macroTapsLen*sizeof(uint16_t));
|
||||
for(int i = 0; i < macroTapsLen; i++)
|
||||
{
|
||||
macroTaps[i] = 0;
|
||||
}
|
||||
}
|
||||
if (tableNameList == 0)
|
||||
{
|
||||
tableNameList = malloc(tableNameListLen*sizeof(char));
|
||||
for(int i = 0; i < tableNameListLen; i++)
|
||||
{
|
||||
tableNameList[i] = 0;
|
||||
}
|
||||
}
|
||||
if (charCount == 0)
|
||||
{
|
||||
charCount = malloc(charCountLen*sizeof(uint8_t));
|
||||
for (int i = 0; i < charCountLen; i++)
|
||||
{
|
||||
charCount[i] = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
uint32_t layer_state_set_user(uint32_t state)
|
||||
{
|
||||
switch (biton32(state))
|
||||
{
|
||||
case QWERTY:
|
||||
rgblight_mode(9);
|
||||
break;
|
||||
case NAV_CLUSTER:
|
||||
rgblight_mode(29);
|
||||
break;
|
||||
case GAMING:
|
||||
rgblight_mode(26);
|
||||
break;
|
||||
case SQLMACROS:
|
||||
rgblight_mode(1);
|
||||
rgblight_setrgb(0x00, 0xFF, 0x80);
|
||||
break;
|
||||
case SQLNAMES:
|
||||
rgblight_mode(1);
|
||||
rgblight_setrgb(0x80, 0xFF, 0x00);
|
||||
break;
|
||||
case FN_LAYER:
|
||||
rgblight_mode(1);
|
||||
rgblight_setrgb(0x00, 0x80, 0xFF);
|
||||
break;
|
||||
}
|
||||
return state;
|
||||
}
|
||||
|
||||
bool containsCode(uint16_t kc)
|
||||
{
|
||||
for (int i = 0; i < macroTapsLen && macroTaps[i] > 0; i++)
|
||||
{
|
||||
if (macroTaps[i] == kc) return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
bool lastCodeIs(uint16_t kc)
|
||||
{
|
||||
for (int i = 0; i < macroTapsLen-1 && macroTaps[i] > 0; i++)
|
||||
{
|
||||
if (macroTaps[i] == kc && macroTaps[i+1] == 0) return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
bool last2CodeAre(uint16_t kc)
|
||||
{
|
||||
for (int i = 0; i < macroTapsLen-2 && macroTaps[i] > 0; i++)
|
||||
{
|
||||
if (macroTaps[i] == kc && macroTaps[i+1] == kc && macroTaps[i+2] == 0) return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
bool last2CodesAre(uint16_t kc, uint16_t kc2)
|
||||
{
|
||||
for (int i = 0; i < macroTapsLen-2 && macroTaps[i] > 0; i++)
|
||||
{
|
||||
if (macroTaps[i] == kc && macroTaps[i+1] == kc2 && macroTaps[i+2] == 0) return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
void addKeyCode(uint16_t kc)
|
||||
{
|
||||
int i = 0;
|
||||
while (i < macroTapsLen-2 && macroTaps[i] > 0) i++;
|
||||
if (macroTaps[i] == 0)
|
||||
{
|
||||
macroTaps[i] = kc;
|
||||
macroTaps[i+1] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void eraseKeyCodes(void)
|
||||
{
|
||||
int i = 0;
|
||||
while (i < macroTapsLen && macroTaps[i] > 0) macroTaps[i++] = 0;
|
||||
}
|
||||
|
||||
void eraseCharCounts(void)
|
||||
{
|
||||
int i = 0;
|
||||
while (i < charCountLen)
|
||||
{
|
||||
charCount[i] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void printTableAbbreviation(void)
|
||||
{
|
||||
initStringData();
|
||||
if (tableNameList[0] == 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
send_char(0x20);
|
||||
int i = 0;
|
||||
for (i = 0; i < tableNameListLen && tableNameList[i] > 0; i++)
|
||||
{
|
||||
if (tableNameList[i] >= 65 && tableNameList[i] <= 90)
|
||||
{
|
||||
send_char(tableNameList[i]+32);
|
||||
}
|
||||
else
|
||||
{
|
||||
send_char(tableNameList[i]);
|
||||
}
|
||||
}
|
||||
send_char(0x20);
|
||||
}
|
||||
|
||||
void eraseTableAbbreviation(void)
|
||||
{
|
||||
initStringData();
|
||||
for (int i = 0; i < tableNameListLen && tableNameList[i] > 0; i++)
|
||||
{
|
||||
tableNameList[i] = '\0';
|
||||
}
|
||||
}
|
||||
|
||||
void printString(char* str)
|
||||
{
|
||||
|
||||
if (str[0] != '\0')
|
||||
{
|
||||
int i = 0;
|
||||
while (true)
|
||||
{
|
||||
if (str[i] == 0)
|
||||
{
|
||||
break;
|
||||
}
|
||||
send_char(str[i++]);
|
||||
charCount[countPointer]++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void printStringAndQueueChar(char* str)
|
||||
{
|
||||
initStringData();
|
||||
if (charCount[countPointer] != 0)
|
||||
{
|
||||
countPointer++;
|
||||
}
|
||||
sendAbbr = true;
|
||||
if (str[0] != '\0')
|
||||
{
|
||||
printString(str);
|
||||
|
||||
for (int i = 0; i < tableNameListLen-1; i++)
|
||||
{
|
||||
if (tableNameList[i] == '\0')
|
||||
{
|
||||
tableNameList[i] = str[0];
|
||||
tableNameList[i+1] = '\0';
|
||||
break;
|
||||
}
|
||||
else if (i == tableNameListLen-2)
|
||||
{
|
||||
printTableAbbreviation();
|
||||
break;
|
||||
}
|
||||
}
|
||||
//for (i = 0; i < tableNameListLen && tableNameList[i] > 0; i++)
|
||||
//{
|
||||
// send_char(tableNameList[i]);
|
||||
//}
|
||||
//send_string_P("Darden");
|
||||
//send_string_P(&myarray);
|
||||
//send_string_P(str);
|
||||
}
|
||||
}
|
||||
|
||||
void ReplaceString(char *orig, char *repl)
|
||||
{
|
||||
int i = 0;
|
||||
while((orig[i] != 0x0 && repl[i] != 0x0) && orig[i] == repl[i])
|
||||
i++;
|
||||
|
||||
if(orig[i] != 0x0)
|
||||
{
|
||||
int o = i;
|
||||
while (orig[o++] != 0x0) {
|
||||
charCount[countPointer]--;
|
||||
register_code(KC_BSPC);
|
||||
unregister_code(KC_BSPC);
|
||||
}
|
||||
}
|
||||
printString(repl+i);
|
||||
}
|
||||
|
||||
void deletePrev(void)
|
||||
{
|
||||
for (int i = 0; i < charCount[countPointer]; i++)
|
||||
{
|
||||
register_code(KC_BSPC);
|
||||
unregister_code(KC_BSPC);
|
||||
}
|
||||
charCount[countPointer] = 0;
|
||||
countPointer--;
|
||||
int i = 1;
|
||||
for (;i < tableNameListLen-1; i++)
|
||||
{
|
||||
if (tableNameList[i] == 0x0)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
tableNameList[i-1] = 0x0;
|
||||
}
|
||||
|
||||
void processSmartMacroTap(uint16_t kc)
|
||||
{
|
||||
initStringData();
|
||||
switch(kc)
|
||||
{
|
||||
case TD_C:
|
||||
if (containsCode(TD_D))
|
||||
{
|
||||
printString("ribution");
|
||||
printStringAndQueueChar("Center");
|
||||
}
|
||||
else if (last2CodeAre(TD_C))
|
||||
{
|
||||
ReplaceString("Corporation", "Contact");
|
||||
}
|
||||
else if(lastCodeIs(TD_C))
|
||||
{
|
||||
printString("oration");
|
||||
}
|
||||
else
|
||||
{
|
||||
printStringAndQueueChar("Corp");
|
||||
}
|
||||
break;
|
||||
case TD_D:
|
||||
if (last2CodeAre(TD_D))
|
||||
{
|
||||
ReplaceString("Distribution", "Distributor");
|
||||
}
|
||||
else if(lastCodeIs(TD_D))
|
||||
{
|
||||
printString("ribution");
|
||||
}
|
||||
else
|
||||
{
|
||||
printStringAndQueueChar("Dist");
|
||||
}
|
||||
break;
|
||||
case TD_G:
|
||||
printStringAndQueueChar("Global");
|
||||
printStringAndQueueChar("Lookup");
|
||||
break;
|
||||
case TD_I:
|
||||
if (containsCode(TD_W))
|
||||
printStringAndQueueChar("Instance");
|
||||
else
|
||||
printStringAndQueueChar("Item");
|
||||
break;
|
||||
case TD_N:
|
||||
printStringAndQueueChar("NadRate");
|
||||
break;
|
||||
case TD_P:
|
||||
if (last2CodesAre(TD_D, TD_C))
|
||||
{
|
||||
ReplaceString("DistributionCenter", "DistCenter");
|
||||
printStringAndQueueChar("Pricing");
|
||||
}
|
||||
else if (last2CodeAre(TD_P))
|
||||
{
|
||||
}
|
||||
else if(lastCodeIs(TD_P))
|
||||
{
|
||||
ReplaceString("Product", "Person");
|
||||
}
|
||||
else
|
||||
{
|
||||
printStringAndQueueChar("Product");
|
||||
}
|
||||
break;
|
||||
case TD_Q:
|
||||
printStringAndQueueChar("Darden");
|
||||
break;
|
||||
case TD_S:
|
||||
if (containsCode(TD_W))
|
||||
if (containsCode(TD_S) || containsCode(TD_D))
|
||||
printStringAndQueueChar("Step");
|
||||
else
|
||||
printStringAndQueueChar("Session");
|
||||
else
|
||||
printStringAndQueueChar("Supplier");
|
||||
break;
|
||||
case TD_T:
|
||||
if (containsCode(TD_W))
|
||||
printStringAndQueueChar("Task");
|
||||
else
|
||||
printStringAndQueueChar("Type");
|
||||
break;
|
||||
case TD_W:
|
||||
printStringAndQueueChar("Workflow");
|
||||
break;
|
||||
}
|
||||
addKeyCode(kc);
|
||||
}
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record)
|
||||
{
|
||||
if (record->event.pressed)
|
||||
{
|
||||
switch (keycode)
|
||||
{
|
||||
case KC_LSPO:
|
||||
case KC_RSPC:
|
||||
shifted = true;
|
||||
return true;
|
||||
|
||||
case S_LFTJN: SEND_STRING("LEFT JOIN"); return false;
|
||||
case S_INRJN: SEND_STRING("INNER JOIN "); return false;
|
||||
case S_SLCT: SEND_STRING("SELECT "); return false;
|
||||
case S_FROM: SEND_STRING("FROM "); return false;
|
||||
case S_DSNCT: SEND_STRING("DISTINCT "); return false;
|
||||
case S_ORDER: SEND_STRING("ORDER "); return false;
|
||||
case S_WHERE: SEND_STRING("WHERE "); return false;
|
||||
case S_ALTER: SEND_STRING("ALTER SESSION SET CURRENT_SCHEMA = "); return false;
|
||||
case S_ASTRK: SEND_STRING("* "); return false;
|
||||
|
||||
case KC_BSLS:
|
||||
initStringData();
|
||||
layer_on(SQLNAMES);
|
||||
return false;
|
||||
|
||||
case TD_BSPC:
|
||||
if (!shifted){
|
||||
deletePrev();
|
||||
}
|
||||
else {
|
||||
register_code(KC_BSPC);
|
||||
unregister_code(KC_BSPC);
|
||||
}
|
||||
return false;
|
||||
|
||||
case TD_A:
|
||||
case TD_B:
|
||||
case TD_C:
|
||||
case TD_D:
|
||||
case TD_E:
|
||||
case TD_F:
|
||||
case TD_G:
|
||||
case TD_H:
|
||||
case TD_I:
|
||||
case TD_J:
|
||||
case TD_K:
|
||||
case TD_L:
|
||||
case TD_M:
|
||||
case TD_N:
|
||||
case TD_O:
|
||||
case TD_P:
|
||||
case TD_Q:
|
||||
case TD_R:
|
||||
case TD_S:
|
||||
case TD_T:
|
||||
case TD_U:
|
||||
case TD_V:
|
||||
case TD_W:
|
||||
case TD_X:
|
||||
case TD_Y:
|
||||
case TD_Z:
|
||||
processSmartMacroTap(keycode);
|
||||
return false;
|
||||
|
||||
case TD_ENT:
|
||||
printTableAbbreviation();
|
||||
case TD_ESC:
|
||||
eraseKeyCodes();
|
||||
eraseTableAbbreviation();
|
||||
layer_off(SQLNAMES);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
switch (keycode)
|
||||
{
|
||||
|
||||
case KC_BSLS:
|
||||
if (macroTaps[0] == 0)
|
||||
{
|
||||
SEND_STRING("\\");
|
||||
layer_off(SQLNAMES);
|
||||
}
|
||||
return true;
|
||||
case KC_LSPO:
|
||||
case KC_RSPC:
|
||||
shifted = false;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[BASE]=
|
||||
LAYOUT(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_NO, KC_BSPC,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||
MO(FN_LAYER), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSPO, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, KC_NO,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_LGUI, KC_NO, KC_APP, KC_RCTL),
|
||||
[QWERTY]=
|
||||
LAYOUT_60_ansi(
|
||||
ESCAP, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, MNUS, EQUL, BACKSPC,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, LBRC, RBRC, BSLASH,
|
||||
MO_FNLR, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, COLN, QUOT, ENTER_OR_SQL,
|
||||
LEFTSHFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, CMMA, PRRD, SLSH, RIGHT_SHIFT__PAREN,
|
||||
CTLL, WINL, ALTL, SPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACE, ALTR, WINR, APPR, CTLR),
|
||||
|
||||
[NAV_CLUSTER]=
|
||||
LAYOUT(
|
||||
KC_TRNS, KC_PSCREEN, KC_SCROLLLOCK, KC_PAUSE, KC_INSERT, KC_HOME, KC_PGUP, KC_NUMLOCK, KC_KP_SLASH, KC_KP_ASTERISK, KC_KP_MINUS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DELETE, KC_END, KC_PGDOWN, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_PLUS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_UP, KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_PLUS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_ENTER, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_KP_0, KC_KP_0, KC_KP_0, KC_KP_DOT, KC_KP_ENTER, KC_TRNS, KC_TRNS, KC_TRNS),
|
||||
|
||||
[RGB]=
|
||||
LAYOUT(
|
||||
KC_TRNS, RGB_TOG, RGB_MOD, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, RGB_M_K, RGB_M_X, RGB_M_G, RGB_SPD, RGB_SPI, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, RGB_HUI, RGB_HUD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, RGB_SAI, RGB_SAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
||||
|
||||
[MOUSE]=
|
||||
LAYOUT(
|
||||
KC_TRNS, KC_ACL0, KC_ACL1, KC_ACL2, 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_WH_U, KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN3, KC_BTN1, KC_MS_U, KC_BTN2, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_WH_L, KC_WH_D, KC_WH_R, KC_TRNS, KC_TRNS, KC_BTN4, KC_MS_L, KC_MS_D, KC_MS_R, KC_BTN5, 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),
|
||||
LAYOUT_60_ansi(
|
||||
_____, PSCR, SCRL, PAUS, NSRT, HOME, PGUP, NMLK, KSSH, STAR, KMIN, ____, ____, ______,
|
||||
______, ____, ____, ____, DELT, END_, PGDN, KP_7, KP_8, KP_9, PLUS, ____, ____, _____,
|
||||
_______, ____, ____, ____, ____, UPUP, UPUP, KP_4, KP_5, KP_6, PLUS, ____, ___________,
|
||||
________, ____, ____, ____, LEFT, D_WN, RGHT, KP_1, KP_2, KP_3, KNTR, _________________,
|
||||
____, ____, ____, /*-----------------*/KC_KP_0/*-----------------*/, KDOT, KNTR, ____, ____),
|
||||
|
||||
[GAMING]=
|
||||
LAYOUT(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_NO, KC_BSPC,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||
KC_TRNS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSHIFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSHIFT, KC_NO,
|
||||
KC_LCTL, KC_NO, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, KC_NO, KC_NO, TO(BASE)),
|
||||
LAYOUT_60_ansi(
|
||||
_____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ______,
|
||||
______, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, _____,
|
||||
KCNO, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ___________,
|
||||
________, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, _________________,
|
||||
____, KCNO, ____, /*------------------*/_____/*------------------*/, ____, KCNO, ____, QWRTY),
|
||||
|
||||
[SQLMACROS]=
|
||||
LAYOUT_60_ansi(
|
||||
S_ALTER, ____, ____, ____, ____, ____, ____, ____, S_ASTRK, ____, ____, ____, ____, ___________,
|
||||
______, ____, S_WHERE, ____, ____, ____, ____, ____, S_INRJN, S_ORDER, ____, ____, ____, ______,
|
||||
_______, KC_LBRC, S_SLCT, KC_PAST,S_FROM, ____, ____, ____, ____, S_LFTJN, ____, RBRC, ___________,
|
||||
________, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, _________________,
|
||||
____, ____, ____, /*------------------*/_____/*------------------*/, ____, ____, ____, ____),
|
||||
|
||||
[SQLNAMES]=
|
||||
LAYOUT_60_ansi(
|
||||
TD_ESC, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, TD_BSPC,
|
||||
________, TD_Q, TD_W, TD_E, TD_R, TD_T, TD_Y, TD_U, TD_I, TD_O, TD_P, ____, ____, _____,
|
||||
___________, TD_A, TD_S, TD_D, TD_F, TD_G, TD_H, TD_J, TD_K, TD_L, ____, ____, TD_ENT,
|
||||
___________, TD_Z, TD_X, TD_C, TD_V, TD_B, TD_N, TD_M, ____, ____, ____, _________________,
|
||||
____, ____, ____, /*----------------------*/TD_ENT/*-----------------------*/, ____, ____, ____, RESET),
|
||||
|
||||
[FN_LAYER]=
|
||||
LAYOUT(
|
||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_DEL,
|
||||
KC_CAPSLOCK, KC_MPRV, KC_MPLY, KC_MNXT, LWIN(KC_R), KC_TRNS, KC_CALC, KC_PGUP, KC_UP, KC_PGDN, KC_PSCR, KC_SLCK, KC_BRK, KC_TRNS,
|
||||
KC_TRNS, KC_VOLD, KC_MUTE, KC_VOLU, KC_TRNS, KC_TRNS, KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT, KC_INS, KC_DEL, MO(LAYER_SEL),
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, 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_HYPR, KC_TRNS, KC_MEH, KC_TRNS),
|
||||
|
||||
[LAYER_SEL]=
|
||||
LAYOUT(
|
||||
TO(BASE), TO(NAV_CLUSTER), TO(RGB), TO(MOUSE), TO(GAMING), 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, 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
|
||||
|
||||
LAYOUT_60_ansi(
|
||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
|
||||
KC_CAPSLOCK, KC_MPRV, KC_MPLY, KC_MNXT, LWIN(KC_R), ____, KC_CALC, KC_PGUP, KC_UP, KC_PGDN, KC_PSCR, KC_SLCK, KC_BRK, ____,
|
||||
____, KC_VOLD, KC_MUTE, KC_VOLU, ____, ____, KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT, KC_INS, KC_DEL, ____,
|
||||
____, ____, ____, ____, ____, ____, KC_END, ____, QWRTY, NAVS, GAME, ____,
|
||||
____, ____, ____, _________________, ____, KC_HYPR, KC_MEH, ____)
|
||||
};
|
||||
|
103
keyboards/dz60/keymaps/marianas/keymap.h
Normal file
103
keyboards/dz60/keymaps/marianas/keymap.h
Normal file
@@ -0,0 +1,103 @@
|
||||
//Control
|
||||
#define MO_FNLR MO(FN_LAYER)
|
||||
#define BACKSPC KC_BSPC
|
||||
#define ENTER_OR_SQL LT(SQLMACROS,KC_ENT)
|
||||
#define ESCAP KC_ESC
|
||||
#define PSCR KC_PSCREEN
|
||||
#define SCRL KC_SCROLLLOCK
|
||||
#define PAUS KC_PAUSE
|
||||
#define NSRT KC_INSERT
|
||||
#define HOME KC_HOME
|
||||
#define PGUP KC_PGUP
|
||||
#define PGDN KC_PGDN
|
||||
#define END_ KC_END
|
||||
#define DELT KC_DELETE
|
||||
#define UPUP KC_UP
|
||||
#define D_WN KC_DOWN
|
||||
#define LEFT KC_LEFT
|
||||
#define RGHT KC_RIGHT
|
||||
|
||||
//KEYPAD
|
||||
#define KP_1 KC_KP_1
|
||||
#define KP_2 KC_KP_2
|
||||
#define KP_3 KC_KP_3
|
||||
#define KP_4 KC_KP_4
|
||||
#define KP_5 KC_KP_5
|
||||
#define KP_6 KC_KP_6
|
||||
#define KP_7 KC_KP_7
|
||||
#define KP_8 KC_KP_8
|
||||
#define KP_9 KC_KP_9
|
||||
#define KP_0 KC_KP_0
|
||||
#define NMLK KC_NUMLOCK
|
||||
#define STAR KC_KP_ASTERISK
|
||||
#define KSSH KC_KP_SLASH
|
||||
#define KMIN KC_KP_MINUS
|
||||
#define PLUS KC_KP_PLUS
|
||||
#define KNTR KC_KP_ENTER
|
||||
#define KDOT KC_KP_DOT
|
||||
|
||||
//Modifiers
|
||||
#define CTLL KC_LCTL
|
||||
#define LEFTSHFT KC_LSPO
|
||||
#define WINL KC_LGUI
|
||||
#define ALTL KC_LALT
|
||||
#define CTLR KC_RCTL
|
||||
#define RIGHT_SHIFT__PAREN KC_RSPC
|
||||
#define WINR KC_RGUI
|
||||
#define ALTR KC_RALT
|
||||
#define APPR KC_APP
|
||||
|
||||
|
||||
//Punctuation
|
||||
#define CMMA KC_COMM
|
||||
#define PRRD KC_DOT
|
||||
#define SLSH KC_SLSH
|
||||
#define QUOT KC_QUOT
|
||||
#define COLN KC_SCLN
|
||||
#define LBRC KC_LBRC
|
||||
#define RBRC KC_RBRC
|
||||
#define EQUL KC_EQL
|
||||
#define MNUS KC_MINS
|
||||
#define BSLASH KC_BSLS
|
||||
|
||||
//Layers
|
||||
#define QWRTY TO(QWERTY)
|
||||
#define NAVS TO(NAV_CLUSTER)
|
||||
#define GAME TO(GAMING)
|
||||
|
||||
//Space
|
||||
#define ____ KC_TRNS
|
||||
#define _____ KC_TRNS
|
||||
#define ______ KC_TRNS
|
||||
#define _______ KC_TRNS
|
||||
#define ________ KC_TRNS
|
||||
#define ___________ KC_TRNS
|
||||
#define _________________ KC_TRNS
|
||||
#define SPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACE KC_SPC
|
||||
#define KCNO KC_NO
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#define macroTapsLen 32
|
||||
#define tableNameListLen 32
|
||||
#define charCountLen 32
|
||||
|
||||
void initStringData(void);
|
||||
uint32_t layer_state_set_user(uint32_t state);
|
||||
bool containsCode(uint16_t kc);
|
||||
bool lastCodeIs(uint16_t kc);
|
||||
bool last2CodeAre(uint16_t kc);
|
||||
bool last2CodesAre(uint16_t kc, uint16_t kc2);
|
||||
void addKeyCode(uint16_t kc);
|
||||
void eraseKeyCodes(void);
|
||||
void eraseCharCounts(void);
|
||||
void printTableAbbreviation(void);
|
||||
void eraseTableAbbreviation(void);
|
||||
void printString(char* str);
|
||||
void printStringAndQueueChar(char* str);
|
||||
void ReplaceString(char *orig, char *repl);
|
||||
void deletePrev(void);
|
||||
void processSmartMacroTap(uint16_t kc);
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record);
|
17
keyboards/dz60/keymaps/marianas/rules.mk
Normal file
17
keyboards/dz60/keymaps/marianas/rules.mk
Normal file
@@ -0,0 +1,17 @@
|
||||
# Build Options
|
||||
# comment out to disable the options.
|
||||
#
|
||||
|
||||
|
||||
BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
|
||||
MOUSEKEY_ENABLE = no # Mouse keys(+4700)
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
|
||||
CONSOLE_ENABLE = no # Console for debug(+400)
|
||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||
NKRO_ENABLE = no # USB 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
|
||||
AUDIO_ENABLE = no
|
||||
RGBLIGHT_ENABLE = yes
|
||||
TAP_DANCE_ENABLE = no
|
||||
AUTO_SHIFT_ENABLE = no
|
@@ -459,6 +459,480 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"LAYOUT_tkl_ansi_plus_five": {
|
||||
"key_count": 92,
|
||||
"layout": [
|
||||
{
|
||||
"label": "Esc",
|
||||
"x": 0,
|
||||
"y": 0
|
||||
},
|
||||
{
|
||||
"label": "F1",
|
||||
"x": 2,
|
||||
"y": 0
|
||||
},
|
||||
{
|
||||
"label": "F2",
|
||||
"x": 3,
|
||||
"y": 0
|
||||
},
|
||||
{
|
||||
"label": "F3",
|
||||
"x": 4,
|
||||
"y": 0
|
||||
},
|
||||
{
|
||||
"label": "F4",
|
||||
"x": 5,
|
||||
"y": 0
|
||||
},
|
||||
{
|
||||
"label": "F5",
|
||||
"x": 6.5,
|
||||
"y": 0
|
||||
},
|
||||
{
|
||||
"label": "F6",
|
||||
"x": 7.5,
|
||||
"y": 0
|
||||
},
|
||||
{
|
||||
"label": "F7",
|
||||
"x": 8.5,
|
||||
"y": 0
|
||||
},
|
||||
{
|
||||
"label": "F8",
|
||||
"x": 9.5,
|
||||
"y": 0
|
||||
},
|
||||
{
|
||||
"label": "F9",
|
||||
"x": 11,
|
||||
"y": 0
|
||||
},
|
||||
{
|
||||
"label": "F10",
|
||||
"x": 12,
|
||||
"y": 0
|
||||
},
|
||||
{
|
||||
"label": "F11",
|
||||
"x": 13,
|
||||
"y": 0
|
||||
},
|
||||
{
|
||||
"label": "F12",
|
||||
"x": 14,
|
||||
"y": 0
|
||||
},
|
||||
{
|
||||
"label": "PrtSc",
|
||||
"x": 15.25,
|
||||
"y": 0
|
||||
},
|
||||
{
|
||||
"label": "Scroll Lock",
|
||||
"x": 16.25,
|
||||
"y": 0
|
||||
},
|
||||
{
|
||||
"label": "Pause",
|
||||
"x": 17.25,
|
||||
"y": 0
|
||||
},
|
||||
{
|
||||
"label": "~",
|
||||
"x": 0,
|
||||
"y": 1.5
|
||||
},
|
||||
{
|
||||
"label": "!",
|
||||
"x": 1,
|
||||
"y": 1.5
|
||||
},
|
||||
{
|
||||
"label": "@",
|
||||
"x": 2,
|
||||
"y": 1.5
|
||||
},
|
||||
{
|
||||
"label": "#",
|
||||
"x": 3,
|
||||
"y": 1.5
|
||||
},
|
||||
{
|
||||
"label": "$",
|
||||
"x": 4,
|
||||
"y": 1.5
|
||||
},
|
||||
{
|
||||
"label": "%",
|
||||
"x": 5,
|
||||
"y": 1.5
|
||||
},
|
||||
{
|
||||
"label": "^",
|
||||
"x": 6,
|
||||
"y": 1.5
|
||||
},
|
||||
{
|
||||
"label": "&",
|
||||
"x": 7,
|
||||
"y": 1.5
|
||||
},
|
||||
{
|
||||
"label": "*",
|
||||
"x": 8,
|
||||
"y": 1.5
|
||||
},
|
||||
{
|
||||
"label": "(",
|
||||
"x": 9,
|
||||
"y": 1.5
|
||||
},
|
||||
{
|
||||
"label": ")",
|
||||
"x": 10,
|
||||
"y": 1.5
|
||||
},
|
||||
{
|
||||
"label": "_",
|
||||
"x": 11,
|
||||
"y": 1.5
|
||||
},
|
||||
{
|
||||
"label": "+",
|
||||
"x": 12,
|
||||
"y": 1.5
|
||||
},
|
||||
{
|
||||
"label": "Backspace",
|
||||
"x": 13,
|
||||
"y": 1.5,
|
||||
"w": 2
|
||||
},
|
||||
{
|
||||
"label": "Insert",
|
||||
"x": 15.25,
|
||||
"y": 1.5
|
||||
},
|
||||
{
|
||||
"label": "Home",
|
||||
"x": 16.25,
|
||||
"y": 1.5
|
||||
},
|
||||
{
|
||||
"label": "PgUp",
|
||||
"x": 17.25,
|
||||
"y": 1.5
|
||||
},
|
||||
{
|
||||
"label": "Tab",
|
||||
"x": 0,
|
||||
"y": 2.5,
|
||||
"w": 1.5
|
||||
},
|
||||
{
|
||||
"label": "Q",
|
||||
"x": 1.5,
|
||||
"y": 2.5
|
||||
},
|
||||
{
|
||||
"label": "W",
|
||||
"x": 2.5,
|
||||
"y": 2.5
|
||||
},
|
||||
{
|
||||
"label": "E",
|
||||
"x": 3.5,
|
||||
"y": 2.5
|
||||
},
|
||||
{
|
||||
"label": "R",
|
||||
"x": 4.5,
|
||||
"y": 2.5
|
||||
},
|
||||
{
|
||||
"label": "T",
|
||||
"x": 5.5,
|
||||
"y": 2.5
|
||||
},
|
||||
{
|
||||
"label": "Y",
|
||||
"x": 6.5,
|
||||
"y": 2.5
|
||||
},
|
||||
{
|
||||
"label": "U",
|
||||
"x": 7.5,
|
||||
"y": 2.5
|
||||
},
|
||||
{
|
||||
"label": "I",
|
||||
"x": 8.5,
|
||||
"y": 2.5
|
||||
},
|
||||
{
|
||||
"label": "O",
|
||||
"x": 9.5,
|
||||
"y": 2.5
|
||||
},
|
||||
{
|
||||
"label": "P",
|
||||
"x": 10.5,
|
||||
"y": 2.5
|
||||
},
|
||||
{
|
||||
"label": "{",
|
||||
"x": 11.5,
|
||||
"y": 2.5
|
||||
},
|
||||
{
|
||||
"label": "}",
|
||||
"x": 12.5,
|
||||
"y": 2.5
|
||||
},
|
||||
{
|
||||
"label": "|",
|
||||
"x": 13.5,
|
||||
"y": 2.5,
|
||||
"w": 1.5
|
||||
},
|
||||
{
|
||||
"label": "Delete",
|
||||
"x": 15.25,
|
||||
"y": 2.5
|
||||
},
|
||||
{
|
||||
"label": "End",
|
||||
"x": 16.25,
|
||||
"y": 2.5
|
||||
},
|
||||
{
|
||||
"label": "PgDn",
|
||||
"x": 17.25,
|
||||
"y": 2.5
|
||||
},
|
||||
{
|
||||
"label": "Caps Lock",
|
||||
"x": 0,
|
||||
"y": 3.5,
|
||||
"w": 1.75
|
||||
},
|
||||
{
|
||||
"label": "A",
|
||||
"x": 1.75,
|
||||
"y": 3.5
|
||||
},
|
||||
{
|
||||
"label": "S",
|
||||
"x": 2.75,
|
||||
"y": 3.5
|
||||
},
|
||||
{
|
||||
"label": "D",
|
||||
"x": 3.75,
|
||||
"y": 3.5
|
||||
},
|
||||
{
|
||||
"label": "F",
|
||||
"x": 4.75,
|
||||
"y": 3.5
|
||||
},
|
||||
{
|
||||
"label": "G",
|
||||
"x": 5.75,
|
||||
"y": 3.5
|
||||
},
|
||||
{
|
||||
"label": "H",
|
||||
"x": 6.75,
|
||||
"y": 3.5
|
||||
},
|
||||
{
|
||||
"label": "J",
|
||||
"x": 7.75,
|
||||
"y": 3.5
|
||||
},
|
||||
{
|
||||
"label": "K",
|
||||
"x": 8.75,
|
||||
"y": 3.5
|
||||
},
|
||||
{
|
||||
"label": "L",
|
||||
"x": 9.75,
|
||||
"y": 3.5
|
||||
},
|
||||
{
|
||||
"label": ":",
|
||||
"x": 10.75,
|
||||
"y": 3.5
|
||||
},
|
||||
{
|
||||
"label": "\"",
|
||||
"x": 11.75,
|
||||
"y": 3.5
|
||||
},
|
||||
{
|
||||
"label": "Enter",
|
||||
"x": 12.75,
|
||||
"y": 3.5,
|
||||
"w": 2.25
|
||||
},
|
||||
{
|
||||
"x": 15.25,
|
||||
"y": 3.5
|
||||
},
|
||||
{
|
||||
"x": 16.25,
|
||||
"y": 3.5
|
||||
},
|
||||
{
|
||||
"x": 17.25,
|
||||
"y": 3.5
|
||||
},
|
||||
{
|
||||
"label": "Shift",
|
||||
"x": 0,
|
||||
"y": 4.5,
|
||||
"w": 2.25
|
||||
},
|
||||
{
|
||||
"label": "Z",
|
||||
"x": 2.25,
|
||||
"y": 4.5
|
||||
},
|
||||
{
|
||||
"label": "X",
|
||||
"x": 3.25,
|
||||
"y": 4.5
|
||||
},
|
||||
{
|
||||
"label": "C",
|
||||
"x": 4.25,
|
||||
"y": 4.5
|
||||
},
|
||||
{
|
||||
"label": "V",
|
||||
"x": 5.25,
|
||||
"y": 4.5
|
||||
},
|
||||
{
|
||||
"label": "B",
|
||||
"x": 6.25,
|
||||
"y": 4.5
|
||||
},
|
||||
{
|
||||
"label": "N",
|
||||
"x": 7.25,
|
||||
"y": 4.5
|
||||
},
|
||||
{
|
||||
"label": "M",
|
||||
"x": 8.25,
|
||||
"y": 4.5
|
||||
},
|
||||
{
|
||||
"label": "<",
|
||||
"x": 9.25,
|
||||
"y": 4.5
|
||||
},
|
||||
{
|
||||
"label": ">",
|
||||
"x": 10.25,
|
||||
"y": 4.5
|
||||
},
|
||||
{
|
||||
"label": "?",
|
||||
"x": 11.25,
|
||||
"y": 4.5
|
||||
},
|
||||
{
|
||||
"label": "Shift",
|
||||
"x": 12.25,
|
||||
"y": 4.5,
|
||||
"w": 2.75
|
||||
},
|
||||
{
|
||||
"x": 15.25,
|
||||
"y": 4.5
|
||||
},
|
||||
{
|
||||
"label": "\\u2191",
|
||||
"x": 16.25,
|
||||
"y": 4.5
|
||||
},
|
||||
{
|
||||
"x": 17.25,
|
||||
"y": 4.5
|
||||
},
|
||||
{
|
||||
"label": "Ctrl",
|
||||
"x": 0,
|
||||
"y": 5.5,
|
||||
"w": 1.25
|
||||
},
|
||||
{
|
||||
"label": "Win",
|
||||
"x": 1.25,
|
||||
"y": 5.5,
|
||||
"w": 1.25
|
||||
},
|
||||
{
|
||||
"label": "Alt",
|
||||
"x": 2.5,
|
||||
"y": 5.5,
|
||||
"w": 1.25
|
||||
},
|
||||
{
|
||||
"x": 3.75,
|
||||
"y": 5.5,
|
||||
"w": 6.25
|
||||
},
|
||||
{
|
||||
"label": "Alt",
|
||||
"x": 10,
|
||||
"y": 5.5,
|
||||
"w": 1.25
|
||||
},
|
||||
{
|
||||
"label": "Win",
|
||||
"x": 11.25,
|
||||
"y": 5.5,
|
||||
"w": 1.25
|
||||
},
|
||||
{
|
||||
"label": "FN",
|
||||
"x": 12.5,
|
||||
"y": 5.5,
|
||||
"w": 1.25
|
||||
},
|
||||
{
|
||||
"label": "Ctrl",
|
||||
"x": 13.75,
|
||||
"y": 5.5,
|
||||
"w": 1.25
|
||||
},
|
||||
{
|
||||
"label": "\\u2190",
|
||||
"x": 15.25,
|
||||
"y": 5.5
|
||||
},
|
||||
{
|
||||
"label": "\\u2193",
|
||||
"x": 16.25,
|
||||
"y": 5.5
|
||||
},
|
||||
{
|
||||
"label": "\\u2192",
|
||||
"x": 17.25,
|
||||
"y": 5.5
|
||||
}
|
||||
]
|
||||
},
|
||||
"LAYOUT_tkl_ansi_wkl": {
|
||||
"key_count": 86,
|
||||
"layout": [
|
||||
|
@@ -54,6 +54,24 @@
|
||||
K50, K51, K52, KC_NO, KC_NO, K57, KC_NO, K5A, K5B, K5C, K5D, K5E, K5F, K5G \
|
||||
)
|
||||
|
||||
// Keymap for a standard ANSI layout plus the five extra keys
|
||||
// above the arrow block.
|
||||
#define LAYOUT_tkl_ansi_plus_five( \
|
||||
K00, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \
|
||||
K01, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1D, K1E, K1F, K1G, \
|
||||
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \
|
||||
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, K3F, K3G, \
|
||||
K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4D, K4E, K4F, K4G, \
|
||||
K50, K51, K52, K57, K5A, K5B, K5C, K5D, K5E, K5F, K5G \
|
||||
) LAYOUT_7bit( \
|
||||
K00, KC_NO, K02, K03, K04, K05, KC_NO, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \
|
||||
K01, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, KC_NO, K1D, K1E, K1F, K1G, \
|
||||
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \
|
||||
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, KC_NO, K3D, K3E, K3F, K3G, \
|
||||
K40, KC_NO, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, KC_NO, K4D, K4E, K4F, K4G, \
|
||||
K50, K51, K52, KC_NO, KC_NO, K57, KC_NO, K5A, K5B, K5C, K5D, K5E, K5F, K5G \
|
||||
)
|
||||
|
||||
#define LAYOUT_tkl_ansi_wkl( \
|
||||
K00, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \
|
||||
K01, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1D, K1E, K1F, K1G, \
|
||||
|
40
keyboards/planck/keymaps/mwpeterson/config.h
Normal file
40
keyboards/planck/keymaps/mwpeterson/config.h
Normal file
@@ -0,0 +1,40 @@
|
||||
#pragma once
|
||||
|
||||
#define PERMISSIVE_HOLD
|
||||
#define IGNORE_MOD_TAP_INTERRUPT
|
||||
|
||||
#ifdef AUDIO_ENABLE
|
||||
#define STARTUP_SONG SONG(ONE_UP_SOUND)
|
||||
// #define STARTUP_SONG SONG(PLANCK_SOUND)
|
||||
// #define STARTUP_SONG SONG(NO_SOUND)
|
||||
#define GOODBYE_SONG SONG(COIN_SOUND)
|
||||
|
||||
#define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND) }
|
||||
#endif
|
||||
|
||||
/*
|
||||
* MIDI options
|
||||
*/
|
||||
|
||||
/* Prevent use of disabled MIDI features in the keymap */
|
||||
//#define MIDI_ENABLE_STRICT 1
|
||||
|
||||
/* enable basic MIDI features:
|
||||
- MIDI notes can be sent when in Music mode is on
|
||||
*/
|
||||
|
||||
#define MIDI_BASIC
|
||||
|
||||
/* enable advanced MIDI features:
|
||||
- MIDI notes can be added to the keymap
|
||||
- Octave shift and transpose
|
||||
- Virtual sustain, portamento, and modulation wheel
|
||||
- etc.
|
||||
*/
|
||||
//#define MIDI_ADVANCED
|
||||
|
||||
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
|
||||
//#define MIDI_TONE_KEYCODE_OCTAVES 2
|
||||
|
||||
// Most tactile encoders have detents every 4 stages
|
||||
#define ENCODER_RESOLUTION 4
|
295
keyboards/planck/keymaps/mwpeterson/keymap.c
Normal file
295
keyboards/planck/keymaps/mwpeterson/keymap.c
Normal file
@@ -0,0 +1,295 @@
|
||||
// from <https://github.com/noahfrederick/dots/tree/master/planck
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
#include "keymap_plover.h"
|
||||
#include "version.h"
|
||||
|
||||
extern keymap_config_t keymap_config;
|
||||
|
||||
// Keymap layers
|
||||
enum planck_layers {
|
||||
QWERTY_LAYER,
|
||||
LOWER_LAYER,
|
||||
RAISE_LAYER,
|
||||
NAV_LAYER,
|
||||
GUI_LAYER,
|
||||
STENO_LAYER,
|
||||
ADJUST_LAYER
|
||||
};
|
||||
|
||||
// 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))
|
||||
|
||||
// Custom key codes
|
||||
enum planck_keycodes {
|
||||
QWERTY = SAFE_RANGE,
|
||||
STENO,
|
||||
PV_EXIT,
|
||||
PV_LOOK,
|
||||
SEND_VERSION,
|
||||
SEND_MAKE
|
||||
};
|
||||
|
||||
#define LOWER MO(LOWER_LAYER)
|
||||
#define RAISE MO(RAISE_LAYER)
|
||||
|
||||
#define GUI_L LT(GUI_LAYER, KC_LBRC)
|
||||
#define GUI_R LT(GUI_LAYER, KC_RBRC)
|
||||
|
||||
#define NAV_SCLN LT(NAV_LAYER, KC_SCLN)
|
||||
#define NAV_O LT(NAV_LAYER, KC_O)
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/* Base layer (Qwerty)
|
||||
* ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
|
||||
* │ ⇥ │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ ' │
|
||||
* ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
|
||||
* Tap for Esc -- │ ⌃ │ A │ S │ D │ F │ G │ H │ J │ K │ L │; Nav│ ⌃ │ -- Tap for Enter
|
||||
* ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
|
||||
* Tap for ( -- │ ⇧ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ ⇧ │ -- Tap for )
|
||||
* ├─────┼─────┼─────┼─────┼─────┼─────┴─────┼─────┼─────┼─────┼─────┼─────┤
|
||||
* Tap for [ -- │ GUI │Hyper│ ⌥ │ ⌘ │ ↓ │ Space │ ↑ │ ⌘ │ ⌥ │Hyper│ GUI │ -- Tap for ]
|
||||
* └─────┴─────┴─────┴─────┴─────┴───────────┴─────┴─────┴─────┴─────┴─────┘
|
||||
* / /
|
||||
* Tap for ] [ --------'-----------------------------------------------------'
|
||||
*/
|
||||
[QWERTY_LAYER] = 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_QUOT,
|
||||
CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, NAV_SCLN, CTL_T(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,
|
||||
GUI_L, ALL_T(KC_RBRC), KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_RGUI, KC_RALT, ALL_T(KC_LBRC), GUI_R
|
||||
),
|
||||
|
||||
/* Numeric layer
|
||||
* ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
|
||||
* Application -- │ ` │ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F9 │ F10 │ # │
|
||||
* window ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
|
||||
* switcher │ │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ │
|
||||
* ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
|
||||
* │ │ - │ + │ ` │ | │ : │ │ │ , │ . │ \ │ │
|
||||
* ├─────┼─────┼─────┼─────┼─────┼─────┴─────┼─────┼─────┼─────┼─────┼─────┤
|
||||
* │ │ │ │ │ │ Backspace │ │ │ │ │ │
|
||||
* └─────┴─────┴─────┴─────┴─────┴───────────┴─────┴─────┴─────┴─────┴─────┘
|
||||
*/
|
||||
[LOWER_LAYER] = LAYOUT_planck_grid(
|
||||
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),
|
||||
_______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______,
|
||||
_______, KC_MINS, KC_PLUS, KC_GRV, KC_PIPE, KC_COLN, XXXXXXX, XXXXXXX, KC_COMM, KC_DOT, KC_BSLS, _______,
|
||||
_______, _______, _______, _______, _______, KC_BSPC, KC_BSPC, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
/* Symbol layer
|
||||
* ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
|
||||
* │ ~ │ F11 │ F12 │ F13 │ F14 │ F15 │ F16 │ F17 │ F18 │ F19 │ F20 │ # │
|
||||
* ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
|
||||
* │ │ ! │ @ │ # │ $ │ % │ ^ │ & │ * │ ' │ " │ │ \
|
||||
* ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ |-- Mostly shifted version
|
||||
* │ │ _ │ = │ ~ │ | │ : │ │ │ , │ . │ / │ │ / of lower layer
|
||||
* ├─────┼─────┼─────┼─────┼─────┼─────┴─────┼─────┼─────┼─────┼─────┼─────┤
|
||||
* │ │ │ │ │ │ Delete │ │ │ │ │ │
|
||||
* └─────┴─────┴─────┴─────┴─────┴───────────┴─────┴─────┴─────┴─────┴─────┘
|
||||
*/
|
||||
[RAISE_LAYER] = LAYOUT_planck_grid(
|
||||
S(KC_GRV), 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_EQL, KC_TILD, KC_PIPE, KC_COLN, XXXXXXX, XXXXXXX, KC_COMM, KC_DOT, KC_SLSH, _______,
|
||||
_______, _______, _______, _______, _______, KC_DEL, KC_DEL, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
/* Directional navigation layer
|
||||
*
|
||||
* Large movements -----/```````````````````\ /```````````````````\----- Vim-style arrow keys
|
||||
* ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
|
||||
* │ │ │Home │PgUp │PgDn │ End │ ← │ ↓ │ ↑ │ → │ │ │
|
||||
* ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* ├─────┼─────┼─────┼─────┼─────┼─────┴─────┼─────┼─────┼─────┼─────┼─────┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* └─────┴─────┴─────┴─────┴─────┴───────────┴─────┴─────┴─────┴─────┴─────┘
|
||||
*/
|
||||
[NAV_LAYER] = LAYOUT_planck_grid(
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
_______, XXXXXXX, KC_HOME, KC_PGUP, KC_PGDN, KC_END, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, NAV_SCLN, _______,
|
||||
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______,
|
||||
_______, _______, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
/* 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 │ │
|
||||
* ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
|
||||
* │ │Undo │ Cut │Copy │Paste│ │ │Next │ SW │ S │ SE │ │
|
||||
* ├─────┼─────┼─────┼─────┼─────┼─────┴─────┼─────┼─────┼─────┼─────┼─────┤
|
||||
* │ │Prev │Play │Next │ │ Sleep │ │Mute │Vol- │Vol+ │ │
|
||||
* └─────┴─────┴─────┴─────┴─────┴───────────┴─────┴─────┴─────┴─────┴─────┘
|
||||
* \___ Media ___/ \___ Screen/sleep __/ \___ Volume __/
|
||||
*/
|
||||
[GUI_LAYER] = LAYOUT_planck_grid(
|
||||
_______, KC_BTN2, KC_MS_U, KC_BTN1, KC_WH_D, XXXXXXX, XXXXXXX, WM_PREV, WM_NW, WM_N, WM_NE, _______,
|
||||
_______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_U, XXXXXXX, XXXXXXX, WM_FULL, WM_W, WM_CNTR, WM_E, _______,
|
||||
_______, KC_UNDO, KC_CUT, KC_COPY, KC_PSTE, XXXXXXX, XXXXXXX, WM_NEXT, WM_SW, WM_S, WM_SE, _______,
|
||||
_______, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, KC_SLEP, KC_WAKE, XXXXXXX, KC_MUTE, KC_VOLD, KC_VOLU, _______
|
||||
),
|
||||
|
||||
/* 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 │ │ │ │
|
||||
* └─────┴─────┴─────┴─────┴─────┴───────────┴─────┴─────┴─────┴─────┴─────┘
|
||||
*/
|
||||
[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, XXXXXXX, XXXXXXX, PV_A, PV_O, KC_SPC, KC_BSPC, PV_E, PV_U, XXXXXXX, XXXXXXX, XXXXXXX
|
||||
),
|
||||
|
||||
/* Keyboard settings layer
|
||||
* ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
|
||||
* Firmware -- │ │Reset│Make │ │ │ │ │ │ │ │Vers │ │
|
||||
* ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
|
||||
* -- │Qwert│ │ │ │ │ │ │ │ │ │ │ │
|
||||
* ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
|
||||
* Audio -- │ │Voic-│Voic+│Mus +│Mus -│MIDI+│MIDI-│ │ │Aud +│Aud -│ │
|
||||
* ├─────┼─────┼─────┼─────┼─────┼─────┴─────┼─────┼─────┼─────┼─────┼─────┤
|
||||
* │Steno│ │Swap │Norm │ │ │ │ │ │ │ │
|
||||
* └─────┴─────┴─────┴─────┴─────┴───────────┴─────┴─────┴─────┴─────┴─────┘
|
||||
* Swap GUI/Alt _/________/ \_____________\_ _/
|
||||
*/
|
||||
[ADJUST_LAYER] = LAYOUT_planck_grid(
|
||||
XXXXXXX, RESET, SEND_MAKE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, SEND_VERSION, XXXXXXX,
|
||||
QWERTY, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
XXXXXXX, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, XXXXXXX, XXXXXXX, AU_ON, AU_OFF, XXXXXXX,
|
||||
STENO, XXXXXXX, AG_SWAP, AG_NORM, LOWER, XXXXXXX, XXXXXXX, RAISE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
|
||||
)
|
||||
};
|
||||
|
||||
#ifdef AUDIO_ENABLE
|
||||
float plover_song[][2] = SONG(PLOVER_SOUND);
|
||||
float plover_gb_song[][2] = SONG(PLOVER_GOODBYE_SOUND);
|
||||
#endif
|
||||
|
||||
// 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);
|
||||
}
|
||||
|
||||
uint32_t layer_state_set_user(uint32_t state) {
|
||||
return update_tri_layer_state(state, LOWER_LAYER, RAISE_LAYER, ADJUST_LAYER);
|
||||
}
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
case STENO:
|
||||
if (record->event.pressed) {
|
||||
#ifdef AUDIO_ENABLE
|
||||
stop_all_notes();
|
||||
PLAY_SONG(plover_song);
|
||||
#endif
|
||||
layer_off(RAISE_LAYER);
|
||||
layer_off(LOWER_LAYER);
|
||||
layer_off(ADJUST_LAYER);
|
||||
layer_on(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) {
|
||||
#ifdef AUDIO_ENABLE
|
||||
PLAY_SONG(plover_gb_song);
|
||||
#endif
|
||||
plover_suspend();
|
||||
layer_off(STENO_LAYER);
|
||||
}
|
||||
return false;
|
||||
case PV_LOOK:
|
||||
if (record->event.pressed) {
|
||||
plover_lookup();
|
||||
}
|
||||
return false;
|
||||
case SEND_VERSION:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING(QMK_KEYBOARD "/" QMK_KEYMAP "@" QMK_VERSION " (" QMK_BUILDDATE ")");
|
||||
}
|
||||
return false;
|
||||
case SEND_MAKE:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING("make " QMK_KEYBOARD ":" QMK_KEYMAP ":dfu\n");
|
||||
}
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
6
keyboards/planck/keymaps/mwpeterson/rules.mk
Normal file
6
keyboards/planck/keymaps/mwpeterson/rules.mk
Normal file
@@ -0,0 +1,6 @@
|
||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||
CONSOLE_ENABLE = no # Console for debug
|
||||
COMMAND_ENABLE = no # Disable shift combination, which conflicts with shift-parens
|
||||
MOUSEKEY_ENABLE = yes # Mouse keys (disabled to save space)
|
||||
NKRO_ENABLE = no # N-key rollover required for use as a steno board
|
||||
AUDIO_ENABLE = yes # Audio output on port C6
|
38
keyboards/planck/keymaps/pevecyan/config.h
Normal file
38
keyboards/planck/keymaps/pevecyan/config.h
Normal file
@@ -0,0 +1,38 @@
|
||||
#pragma once
|
||||
|
||||
#ifdef AUDIO_ENABLE
|
||||
#define STARTUP_SONG SONG(PLANCK_SOUND)
|
||||
// #define STARTUP_SONG SONG(NO_SOUND)
|
||||
|
||||
#define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \
|
||||
SONG(COLEMAK_SOUND), \
|
||||
SONG(DVORAK_SOUND) \
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* MIDI options
|
||||
*/
|
||||
|
||||
/* Prevent use of disabled MIDI features in the keymap */
|
||||
//#define MIDI_ENABLE_STRICT 1
|
||||
|
||||
/* enable basic MIDI features:
|
||||
- MIDI notes can be sent when in Music mode is on
|
||||
*/
|
||||
|
||||
#define MIDI_BASIC
|
||||
|
||||
/* enable advanced MIDI features:
|
||||
- MIDI notes can be added to the keymap
|
||||
- Octave shift and transpose
|
||||
- Virtual sustain, portamento, and modulation wheel
|
||||
- etc.
|
||||
*/
|
||||
//#define MIDI_ADVANCED
|
||||
|
||||
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
|
||||
//#define MIDI_TONE_KEYCODE_OCTAVES 2
|
||||
|
||||
// Most tactile encoders have detents every 4 stages
|
||||
#define ENCODER_RESOLUTION 4
|
226
keyboards/planck/keymaps/pevecyan/keymap.c
Normal file
226
keyboards/planck/keymaps/pevecyan/keymap.c
Normal file
@@ -0,0 +1,226 @@
|
||||
/* Copyright 2015-2017 Jack Humbert
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
#include "action_layer.h"
|
||||
#include "muse.h"
|
||||
#include "keymap_slovenian.h"
|
||||
|
||||
extern keymap_config_t keymap_config;
|
||||
|
||||
enum planck_layers {
|
||||
_QWERTY,
|
||||
_LOWER,
|
||||
_RAISE,
|
||||
_ADJUST,
|
||||
_ALTGR,
|
||||
_CAPS
|
||||
};
|
||||
|
||||
enum planck_keycodes {
|
||||
QWERTY = SAFE_RANGE,
|
||||
};
|
||||
|
||||
#define LOWER MO(_LOWER)
|
||||
#define RAISE MO(_RAISE)
|
||||
#define CAPS MO(_CAPS)
|
||||
#define ALTGR MO(_ALTGR)
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
/* Qwerty
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | Tab | Q | W | E | R | T | Z | U | I | O | P | Bksp |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | CAPS | A | S | D | F | G | H | J | K | L | ; | " |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | Shift| Y | X | C | V | B | N | M | , | . | / |Enter |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Ctrl | GUI | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_QWERTY] = LAYOUT_planck_grid(
|
||||
KC_TAB, SI_Q, SI_W, SI_E, SI_R, SI_T, SI_Z, SI_U, SI_I, SI_O, SI_P, KC_BSPC,
|
||||
CAPS, SI_A, SI_S, SI_D, SI_F, SI_G, SI_H, SI_J, SI_K, SI_L, KC_SCLN, KC_ENT,
|
||||
KC_LSFT, SI_Y, SI_X, SI_C, SI_V, SI_B, SI_N, SI_M, SI_COMM, SI_DOT, SI_MINS, KC_RSFT ,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, ALTGR, KC_DOWN, KC_UP, KC_F5
|
||||
),
|
||||
|
||||
/* Lower
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | 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_MINS, KC_PPLS , KC_ENT,
|
||||
_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
|
||||
),
|
||||
|
||||
/* Raise
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |Pg Up |Pg Dn | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | 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_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
|
||||
),
|
||||
|
||||
/* Adjust (Lower + Raise)
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | | Reset| | | | | | | | | | Del |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak|Plover| |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | | | | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_ADJUST] = LAYOUT_planck_grid(
|
||||
_______, RESET, DEBUG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL ,
|
||||
_______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, _______, _______, _______, _______,
|
||||
_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, TERM_ON, TERM_OFF, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
[_ALTGR] = LAYOUT_planck_grid(
|
||||
_______, ALTG(KC_Q), ALTG(KC_W), ALTG(KC_E), _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, ALTG(KC_F), ALTG(KC_G), _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, ALTG(KC_V), ALTG(KC_B), ALTG(KC_N), _______, ALTG(KC_COMM), ALTG(KC_DOT), _______, _______ ,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
[_CAPS] = LAYOUT_planck_grid(
|
||||
KC_ESC , KC_BSPC, KC_UP , KC_DEL , _______, _______, _______, _______, _______, _______, _______, KC_DEL ,
|
||||
_______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
)
|
||||
|
||||
|
||||
};
|
||||
|
||||
#ifdef AUDIO_ENABLE
|
||||
float plover_song[][2] = SONG(PLOVER_SOUND);
|
||||
float plover_gb_song[][2] = SONG(PLOVER_GOODBYE_SOUND);
|
||||
#endif
|
||||
|
||||
uint32_t layer_state_set_user(uint32_t state) {
|
||||
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
|
||||
}
|
||||
|
||||
bool muse_mode = false;
|
||||
uint8_t last_muse_note = 0;
|
||||
uint16_t muse_counter = 0;
|
||||
uint8_t muse_offset = 70;
|
||||
uint16_t muse_tempo = 50;
|
||||
|
||||
void encoder_update(bool clockwise) {
|
||||
if (muse_mode) {
|
||||
if (IS_LAYER_ON(_RAISE)) {
|
||||
if (clockwise) {
|
||||
muse_offset++;
|
||||
} else {
|
||||
muse_offset--;
|
||||
}
|
||||
} else {
|
||||
if (clockwise) {
|
||||
muse_tempo+=1;
|
||||
} else {
|
||||
muse_tempo-=1;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (clockwise) {
|
||||
register_code(KC_PGDN);
|
||||
unregister_code(KC_PGDN);
|
||||
} else {
|
||||
register_code(KC_PGUP);
|
||||
unregister_code(KC_PGUP);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void dip_update(uint8_t index, bool active) {
|
||||
switch (index) {
|
||||
case 0:
|
||||
if (active) {
|
||||
#ifdef AUDIO_ENABLE
|
||||
PLAY_SONG(plover_song);
|
||||
#endif
|
||||
layer_on(_ADJUST);
|
||||
} else {
|
||||
#ifdef AUDIO_ENABLE
|
||||
PLAY_SONG(plover_gb_song);
|
||||
#endif
|
||||
layer_off(_ADJUST);
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (active) {
|
||||
muse_mode = true;
|
||||
} else {
|
||||
muse_mode = false;
|
||||
#ifdef AUDIO_ENABLE
|
||||
stop_all_notes();
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void matrix_scan_user(void) {
|
||||
#ifdef AUDIO_ENABLE
|
||||
if (muse_mode) {
|
||||
if (muse_counter == 0) {
|
||||
uint8_t muse_note = muse_offset + SCALE[muse_clock_pulse()];
|
||||
if (muse_note != last_muse_note) {
|
||||
stop_note(compute_freq_for_midi_note(last_muse_note));
|
||||
play_note(compute_freq_for_midi_note(muse_note), 0xF);
|
||||
last_muse_note = muse_note;
|
||||
}
|
||||
}
|
||||
muse_counter = (muse_counter + 1) % muse_tempo;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
bool music_mask_user(uint16_t keycode) {
|
||||
switch (keycode) {
|
||||
case RAISE:
|
||||
case LOWER:
|
||||
return false;
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
}
|
2
keyboards/planck/keymaps/pevecyan/readme.md
Normal file
2
keyboards/planck/keymaps/pevecyan/readme.md
Normal file
@@ -0,0 +1,2 @@
|
||||
# The Default Planck Layout
|
||||
|
1
keyboards/planck/keymaps/pevecyan/rules.mk
Normal file
1
keyboards/planck/keymaps/pevecyan/rules.mk
Normal file
@@ -0,0 +1 @@
|
||||
SRC += muse.c
|
61
keyboards/quefrency/keymaps/bramver/README.md
Normal file
61
keyboards/quefrency/keymaps/bramver/README.md
Normal file
@@ -0,0 +1,61 @@
|
||||
# Quefrency Layout - initial 60%
|
||||
|
||||
Standard qwerty layout.
|
||||
Limited emoji support and proper mouse settings.
|
||||
|
||||
Mostly based off of my other XD75 and Nyquist layouts.
|
||||
|
||||
## Keymap
|
||||
|
||||
```
|
||||
/* BASE
|
||||
*
|
||||
* KC_GESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , /**/ KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS , KC_EQL , KC_DEL , KC_BSPC , \
|
||||
* KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , /**/ KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC , KC_RBRC , KC_BSLS , \
|
||||
* MO_EMOJ , KC_A , KC_S , KC_D , KC_F , KC_G , /**/ KC_H , KC_J , KC_K , KC_L , KC_SCLN , KC_QUOT , KC_ENT , \
|
||||
* KC_LSFT , KC_Z , KC_X , KC_C , KC_V , KC_B , /**/ KC_N , KC_M , KC_COMM , KC_DOT , KC_SLSH , KC_RSFT , KC_UP , \
|
||||
* KC_LCTL , KC_LALT , KC_LGUI , MO_SYMB , SP_LMS , /**/ SP_RMS , KC_BSPC , KC_RGUI , KC_LEFT , KC_DOWN , KC_UP , KC_RGHT
|
||||
*
|
||||
*/
|
||||
|
||||
/* LMSE
|
||||
*
|
||||
* _______ , _______ , _______ , _______ , _______ , _______ , _______ , /**/ _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , \
|
||||
* _______ , KC_WH_L , KC_BTN1 , KC_MS_U , KC_BTN2 , KC_WH_U , /**/ _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , \
|
||||
* _______ , KC_WH_R , KC_MS_L , KC_MS_D , KC_MS_R , KC_WH_D , /**/ _______ , _______ , _______ , _______ , _______ , _______ , _______ ,\
|
||||
* _______ , _______ , KC_PGDN , KC_PGUP , KC_END , KC_HOME , /**/ _______ , _______ , _______ , _______ , _______ , _______ , _______ , \
|
||||
* _______ , _______ , _______ , _______ , _______ , /**/ _______ , _______ , _______ , _______ , _______ , _______ , _______
|
||||
*
|
||||
*/
|
||||
|
||||
/* RMSE
|
||||
*
|
||||
* _______ , _______ , _______ , _______ , _______ , _______ , _______ , /**/ _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , \
|
||||
* _______ , _______ , _______ , _______ , _______ , _______ , /**/ KC_WH_U , KC_BTN1 , KC_MS_U , KC_BTN2 , KC_WH_L , _______ , _______ , _______ , \
|
||||
* _______ , _______ , _______ , _______ , _______ , _______ , /**/ KC_WH_D , KC_MS_L , KC_MS_D , KC_MS_R , KC_WH_R , _______ , _______ ,\
|
||||
* _______ , _______ , _______ , _______ , _______ , _______ , /**/ KC_HOME , KC_END , KC_PGUP , KC_PGDN , _______ , _______ , _______ , \
|
||||
* _______ , _______ , _______ , _______ , _______ , /**/ _______ , _______ , _______ , _______ , _______ , _______ , _______
|
||||
*
|
||||
*/
|
||||
|
||||
/* SYMB
|
||||
*
|
||||
* KC_GESC , KC_F1 , KC_F12 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , /**/ KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_DEL , KC_BSPC , \
|
||||
* _______ , _______ , _______ , _______ , _______ , _______ , /**/ _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , \
|
||||
* _______ , KC_EXLM , KC_AT , KC_HASH , KC_DLR , KC_PERC , /**/ KC_CIRC , KC_AMPR , KC_ASTR , KC_LPRN , KC_RPRN , _______ , _______ ,\
|
||||
* _______ , _______ , _______ , _______ , _______ , _______ , /**/ _______ , _______ , _______ , _______ , _______ , _______ , _______ , \
|
||||
* _______ , _______ , _______ , _______ , _______ , /**/ _______ , _______ , _______ , _______ , _______ , _______ , _______
|
||||
*
|
||||
*/
|
||||
|
||||
/* EMOJ
|
||||
*
|
||||
* _______ , _______ , _______ , _______ , _______ , _______ , _______ , /**/ _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , \
|
||||
* _______ , X(CLAP) , X(CUM) , X(BNIS) , X(BUTT) , X(CAR) , /**/ X(FIRE) , X(REDB) , X(MONY) , X(HNDR) , X(SOS) , _______ , _______ , _______ , \
|
||||
* _______ , X(CELE) , X(PRAY) , X(NAIL) , X(OK) , X(THNK) , /**/ X(UNAM) , X(HEYE) , X(COOL) , X(EYES) , X(SMIR) , _______ , _______ ,\
|
||||
* _______ , X(TRIU) , X(SCRM) , X(VOMI) , X(DTIV) , X(EXPL) , /**/ X(HAIR) , X(DANC) , X(STRN) , X(LEFT) , X(RGHT) , _______ , _______ , \
|
||||
* _______ , _______ , _______ , _______ , _______ , /**/ _______ , _______ , _______ , _______ , _______ , _______ , _______
|
||||
*
|
||||
*/
|
||||
|
||||
```
|
31
keyboards/quefrency/keymaps/bramver/config.h
Normal file
31
keyboards/quefrency/keymaps/bramver/config.h
Normal file
@@ -0,0 +1,31 @@
|
||||
/* Copyright 2018 darm
|
||||
*
|
||||
* 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
|
||||
|
||||
#define USE_SERIAL
|
||||
#define MASTER_LEFT
|
||||
|
||||
#define TAPPING_TERM 200
|
||||
#define TAPPING_TOGGLE 2
|
||||
|
||||
#define MOUSEKEY_DELAY 0
|
||||
#define MOUSEKEY_INTERVAL 16
|
||||
#define MOUSEKEY_MAX_SPEED 7
|
||||
#define MOUSEKEY_TIME_TO_MAX 60
|
||||
#define MOUSEKEY_WHEEL_MAX_SPEED 8
|
||||
#define MOUSEKEY_WHEEL_TIME_TO_MAX 40
|
||||
#define MOUSEKEY_WHEEL_DELAY 0
|
134
keyboards/quefrency/keymaps/bramver/keymap.c
Normal file
134
keyboards/quefrency/keymaps/bramver/keymap.c
Normal file
@@ -0,0 +1,134 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
enum custom_keycodes {
|
||||
QWERTY = SAFE_RANGE,
|
||||
};
|
||||
|
||||
#define _______ KC_TRNS
|
||||
#define XXXXXXX KC_NO
|
||||
|
||||
#define _BASE 0
|
||||
#define _LMSE 1
|
||||
#define _RMSE 2
|
||||
#define _SYMB 3
|
||||
#define _EMOJ 4
|
||||
|
||||
#define SP_LMS LT(_LMSE, KC_SPC)
|
||||
#define SP_RMS LT(_RMSE, KC_SPC)
|
||||
#define MO_SYMB TT(_SYMB)
|
||||
#define MO_EMOJ TT(_EMOJ)
|
||||
|
||||
|
||||
enum emoji_map {
|
||||
UNAM, // unamused 😒
|
||||
HEYE, // smiling face with heart shaped eyes 😍
|
||||
OK, // ok hand sign 👌
|
||||
SMIR, // smirk 😏
|
||||
PRAY, // pray 🙏
|
||||
CELE, // celebration 🙌
|
||||
COOL, // smile with sunglasses 😎
|
||||
EYES, // eyes
|
||||
THNK, // BIG THONK
|
||||
NAIL, // Nailcare
|
||||
SOS, // Vuile sos
|
||||
REDB, // Red B
|
||||
HNDR, // 100
|
||||
MONY,
|
||||
FIRE,
|
||||
CAR,
|
||||
BUTT,
|
||||
BNIS,
|
||||
CUM,
|
||||
CLAP,
|
||||
TRIU, // Fart from nose
|
||||
SCRM,
|
||||
VOMI,
|
||||
DTIV, // Detective
|
||||
EXPL, // Brainsplosion
|
||||
HAIR, // Haircut
|
||||
DANC, // Salsa dancer
|
||||
STRN, // Stronk
|
||||
LEFT, // Point Left
|
||||
RGHT, // Point Right
|
||||
};
|
||||
|
||||
const uint32_t PROGMEM unicode_map[] = {
|
||||
[UNAM] = 0x1F612,
|
||||
[HEYE] = 0x1f60d,
|
||||
[OK] = 0x1F44C,
|
||||
[SMIR] = 0x1F60F,
|
||||
[PRAY] = 0x1F64F,
|
||||
[CELE] = 0x1F64C,
|
||||
[COOL] = 0x1F60E,
|
||||
[EYES] = 0x1F440,
|
||||
[THNK] = 0x1F914,
|
||||
[NAIL] = 0x1F485,
|
||||
[SOS] = 0x1F198,
|
||||
[REDB] = 0x1F171,
|
||||
[HNDR] = 0x1F4AF,
|
||||
[MONY] = 0x1F480,
|
||||
[FIRE] = 0x1F525,
|
||||
[CAR] = 0x1F697,
|
||||
[BUTT] = 0x1F351,
|
||||
[BNIS] = 0x1F346,
|
||||
[CUM] = 0x1F4A6,
|
||||
[CLAP] = 0x1F44F,
|
||||
[TRIU] = 0x1F624,
|
||||
[SCRM] = 0x1F631,
|
||||
[VOMI] = 0x1F92E,
|
||||
[DTIV] = 0x1F575,
|
||||
[EXPL] = 0x1F92F,
|
||||
[HAIR] = 0x2640,
|
||||
[DANC] = 0x1F483,
|
||||
[STRN] = 0x1F4AA,
|
||||
[LEFT] = 0x1F448,
|
||||
[RGHT] = 0x1F449,
|
||||
};
|
||||
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_BASE] = LAYOUT(
|
||||
KC_GESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS , KC_EQL , KC_DEL , KC_BSPC , \
|
||||
KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC , KC_RBRC , KC_BSLS , \
|
||||
MO_EMOJ , KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN , KC_QUOT , KC_ENT , \
|
||||
KC_LSFT , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM , KC_DOT , KC_SLSH , KC_RSFT , KC_UP , \
|
||||
KC_LCTL , KC_LALT , KC_LGUI , MO_SYMB , SP_LMS , SP_RMS , KC_BSPC , KC_RGUI , KC_LEFT , KC_DOWN , KC_UP , KC_RGHT
|
||||
),
|
||||
|
||||
[_LMSE] = LAYOUT(
|
||||
_______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , \
|
||||
_______ , KC_WH_L , KC_BTN1 , KC_MS_U , KC_BTN2 , KC_WH_U , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , \
|
||||
_______ , KC_WH_R , KC_MS_L , KC_MS_D , KC_MS_R , KC_WH_D , _______ , _______ , _______ , _______ , _______ , _______ , _______ ,\
|
||||
_______ , _______ , KC_PGDN , KC_PGUP , KC_END , KC_HOME , _______ , _______ , _______ , _______ , _______ , _______ , _______ , \
|
||||
_______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______
|
||||
),
|
||||
|
||||
[_RMSE] = LAYOUT(
|
||||
_______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , \
|
||||
_______ , _______ , _______ , _______ , _______ , _______ , KC_WH_U , KC_BTN1 , KC_MS_U , KC_BTN2 , KC_WH_L , _______ , _______ , _______ , \
|
||||
_______ , _______ , _______ , _______ , _______ , _______ , KC_WH_D , KC_MS_L , KC_MS_D , KC_MS_R , KC_WH_R , _______ , _______ ,\
|
||||
_______ , _______ , _______ , _______ , _______ , _______ , KC_HOME , KC_END , KC_PGUP , KC_PGDN , _______ , _______ , _______ , \
|
||||
_______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______
|
||||
),
|
||||
|
||||
[_SYMB] = LAYOUT(
|
||||
KC_GESC , KC_F1 , KC_F12 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_DEL , KC_BSPC , \
|
||||
_______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , \
|
||||
_______ , KC_EXLM , KC_AT , KC_HASH , KC_DLR , KC_PERC , KC_CIRC , KC_AMPR , KC_ASTR , KC_LPRN , KC_RPRN , _______ , _______ ,\
|
||||
_______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , \
|
||||
_______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______
|
||||
),
|
||||
|
||||
[_EMOJ] = LAYOUT(
|
||||
_______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , \
|
||||
_______ , X(CLAP) , X(CUM) , X(BNIS) , X(BUTT) , X(CAR) , X(FIRE) , X(REDB) , X(MONY) , X(HNDR) , X(SOS) , _______ , _______ , _______ , \
|
||||
_______ , X(CELE) , X(PRAY) , X(NAIL) , X(OK) , X(THNK) , X(UNAM) , X(HEYE) , X(COOL) , X(EYES) , X(SMIR) , _______ , _______ ,\
|
||||
_______ , X(TRIU) , X(SCRM) , X(VOMI) , X(DTIV) , X(EXPL) , X(HAIR) , X(DANC) , X(STRN) , X(LEFT) , X(RGHT) , _______ , _______ , \
|
||||
_______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______
|
||||
),
|
||||
|
||||
};
|
||||
|
||||
void matrix_init_user(void) {
|
||||
set_unicode_input_mode(UC_LNX);
|
||||
};
|
6
keyboards/quefrency/keymaps/bramver/rules.mk
Normal file
6
keyboards/quefrency/keymaps/bramver/rules.mk
Normal file
@@ -0,0 +1,6 @@
|
||||
# Build options
|
||||
MOUSEKEY_ENABLE = yes # Emulates mouse key using keypresses
|
||||
EXTRAKEY_ENABLE = yes # Use system and audio control key codes
|
||||
TAP_DANCE_ENABLE = no # Use multi-tap features
|
||||
UNICODEMAP_ENABLE = yes # Emojify me pls
|
||||
NKRO_ENABLE = yes
|
3
keyboards/tada68/keymaps/sm0g/config.h
Normal file
3
keyboards/tada68/keymaps/sm0g/config.h
Normal file
@@ -0,0 +1,3 @@
|
||||
#pragma once
|
||||
|
||||
#define BACKLIGHT_BREATHING
|
100
keyboards/tada68/keymaps/sm0g/keymap.c
Normal file
100
keyboards/tada68/keymaps/sm0g/keymap.c
Normal file
@@ -0,0 +1,100 @@
|
||||
#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 _BL 0
|
||||
#define _FL 1
|
||||
#define _GM 2
|
||||
#define _GF 3
|
||||
|
||||
|
||||
// Tap dance declarations (These must go above the keymaps)
|
||||
enum {
|
||||
TD_F1 = 0,
|
||||
TD_F2,
|
||||
TD_F3,
|
||||
TD_F4,
|
||||
TD_F5,
|
||||
TD_F6,
|
||||
TD_F7,
|
||||
TD_F8,
|
||||
TD_F9,
|
||||
TD_F10,
|
||||
TD_F11,
|
||||
TD_F12,
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/* Keymap _BL: (Base Layer) Default Layer
|
||||
* ,----------------------------------------------------------------.
|
||||
* |Esc | 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \ |~ ` |
|
||||
* |----------------------------------------------------------------|
|
||||
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]|Bksp |Del |
|
||||
* |----------------------------------------------------------------|
|
||||
* |Ctrl | A| S| D| F| G| H| J| K| L| ;| '|Return |PgUp|
|
||||
* |----------------------------------------------------------------|
|
||||
* |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | Up|PgDn|
|
||||
* |----------------------------------------------------------------|
|
||||
* |Caps|Win |Alt | Space |Alt|Ctrl| FN|Lef|Dow|Rig |
|
||||
* `----------------------------------------------------------------'
|
||||
*/
|
||||
[_BL] = LAYOUT_ansi(
|
||||
KC_ESC, TD(TD_F1), TD(TD_F2), TD(TD_F3), TD(TD_F4), TD(TD_F5), TD(TD_F6), TD(TD_F7), TD(TD_F8), TD(TD_F9), TD(TD_F10), TD(TD_F11), TD(TD_F12), KC_BSLS,KC_GRV, \
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC,KC_BSPC,KC_DEL, \
|
||||
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, KC_ENT,KC_PGUP, \
|
||||
KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSPC,KC_UP,KC_PGDN, \
|
||||
KC_CAPS, KC_LGUI,KC_LALT, KC_SPC, KC_RALT,KC_RCTL,MO(_FL), KC_LEFT,KC_DOWN,KC_RGHT),
|
||||
|
||||
/* Keymap _FL: Function Layer
|
||||
* ,----------------------------------------------------------------.
|
||||
* | | F1|F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10|F11|F12| |Ins |
|
||||
* |----------------------------------------------------------------|
|
||||
* | | |Up | | | | | | | | | | | |Hme |
|
||||
* |----------------------------------------------------------------|
|
||||
* | Caps |<- |Dn | ->| | | | | | | | | |End |
|
||||
* |----------------------------------------------------------------|
|
||||
* | | | |Bl-|BL |BL+| |VU-|VU+|MUT| | McL|MsU|McR |
|
||||
* |----------------------------------------------------------------|
|
||||
* | | | | | | | |Prev|P/P|Next|
|
||||
* `----------------------------------------------------------------'
|
||||
*/
|
||||
[_FL] = LAYOUT_ansi(
|
||||
_______, KC_F1 ,KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, TG(_GM), KC_INS , \
|
||||
_______,_______, KC_UP,_______,_______, _______,_______,_______,_______,_______,_______,_______,_______, _______,KC_HOME, \
|
||||
KC_CAPS,KC_LEFT,KC_DOWN,KC_RIGHT,_______,_______,_______,_______,_______,_______,_______,_______, _______,KC_END, \
|
||||
_______,_______,_______,BL_DEC, BL_TOGG,BL_INC, BL_BRTG,KC_VOLD,KC_VOLU,KC_MUTE,_______,_______, _______, _______, \
|
||||
_______,_______,_______, _______, _______,_______,_______,KC_MPRV,KC_MPLY, KC_MNXT),
|
||||
|
||||
[_GM] = LAYOUT_ansi(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, _______,KC_GRV, \
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC,KC_BSPC,KC_DEL, \
|
||||
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_ENT,KC_PGUP, \
|
||||
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_UP,KC_PGDN, \
|
||||
KC_CAPS, KC_LGUI,KC_LALT, KC_SPC, KC_RALT,KC_RCTL,MO(_GF), KC_LEFT,KC_DOWN,KC_RGHT),
|
||||
|
||||
[_GF] = LAYOUT_ansi(
|
||||
_______, KC_F1 ,KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, TG(_GM), KC_INS , \
|
||||
_______,_______, KC_UP,_______,_______, _______,_______,_______,_______,_______,_______,_______,_______, _______,KC_HOME, \
|
||||
KC_CAPS,KC_LEFT,KC_DOWN,KC_RIGHT,_______,_______,_______,_______,_______,_______,_______,_______, _______,KC_END, \
|
||||
_______,_______,_______,BL_DEC, BL_TOGG,BL_INC, BL_BRTG,KC_VOLD,KC_VOLU,KC_MUTE,_______,_______, _______, _______, \
|
||||
_______,_______,_______, _______, _______,_______,_______,KC_MPRV,KC_MPLY, KC_MNXT),
|
||||
|
||||
};
|
||||
|
||||
// Tapdance definitions. Tap Dance F Keys.
|
||||
qk_tap_dance_action_t tap_dance_actions[] = {
|
||||
[TD_F1] = ACTION_TAP_DANCE_DOUBLE(KC_1, KC_F1),
|
||||
[TD_F2] = ACTION_TAP_DANCE_DOUBLE(KC_2, KC_F2),
|
||||
[TD_F3] = ACTION_TAP_DANCE_DOUBLE(KC_3, KC_F3),
|
||||
[TD_F4] = ACTION_TAP_DANCE_DOUBLE(KC_4, KC_F4),
|
||||
[TD_F5] = ACTION_TAP_DANCE_DOUBLE(KC_5, KC_F5),
|
||||
[TD_F6] = ACTION_TAP_DANCE_DOUBLE(KC_6, KC_F6),
|
||||
[TD_F7] = ACTION_TAP_DANCE_DOUBLE(KC_7, KC_F7),
|
||||
[TD_F8] = ACTION_TAP_DANCE_DOUBLE(KC_8, KC_F8),
|
||||
[TD_F9] = ACTION_TAP_DANCE_DOUBLE(KC_9, KC_F9),
|
||||
[TD_F10] = ACTION_TAP_DANCE_DOUBLE(KC_0, KC_F10),
|
||||
[TD_F11] = ACTION_TAP_DANCE_DOUBLE(KC_MINS, KC_F11),
|
||||
[TD_F12] = ACTION_TAP_DANCE_DOUBLE(KC_EQL, KC_F12),
|
||||
};
|
15
keyboards/tada68/keymaps/sm0g/readme.md
Normal file
15
keyboards/tada68/keymaps/sm0g/readme.md
Normal file
@@ -0,0 +1,15 @@
|
||||
```
|
||||
______ __ __ ______ ______
|
||||
.-----.--------.| |.-----. | |_.---.-.--| |.---.-.| __| __ |
|
||||
|__ --| || -- || _ | | _| _ | _ || _ || __ | __ |
|
||||
|_____|__|__|__||______||___ | |____|___._|_____||___._||______|______|
|
||||
|_____|
|
||||
```
|
||||
|
||||
Just my simple layout for the Tada68.
|
||||
Space [Cadet Shift](https://docs.qmk.fm/#/feature_space_cadet_shift) is enabled.
|
||||
LCTRL and Caps have been swapped and the new CTRL also acts as ESC when tapped and CTRL when held.
|
||||
This is helpful for me as a VIM user.
|
||||
Some other changes.
|
||||
|
||||
Tap Dance for the F Row.. i.e double tap 1 and get F1 instead.
|
18
keyboards/tada68/keymaps/sm0g/rules.mk
Normal file
18
keyboards/tada68/keymaps/sm0g/rules.mk
Normal file
@@ -0,0 +1,18 @@
|
||||
# Build Options
|
||||
# change to "no" to disable the options, or define them in the Makefile in
|
||||
# the appropriate keymap folder that will get included automatically
|
||||
#
|
||||
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
|
||||
MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
|
||||
CONSOLE_ENABLE = no # Console for debug(+400)
|
||||
COMMAND_ENABLE = yes # Commands for debug and configuration
|
||||
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
|
||||
MIDI_ENABLE = no # MIDI controls
|
||||
AUDIO_ENABLE = no # Audio output on port C6
|
||||
UNICODE_ENABLE = no # Unicode
|
||||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
|
||||
SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
|
||||
TAP_DANCE_ENABLE = yes # Tappa Dance
|
@@ -860,13 +860,13 @@ void rgblight_effect_alternating(void){
|
||||
last_timer = timer_read();
|
||||
|
||||
for(int i = 0; i<RGBLED_NUM; i++){
|
||||
if(i<RGBLED_NUM/2 && pos){
|
||||
rgblight_sethsv_at(rgblight_config.hue, rgblight_config.sat, rgblight_config.val, i);
|
||||
}else if (i>=RGBLED_NUM/2 && !pos){
|
||||
rgblight_sethsv_at(rgblight_config.hue, rgblight_config.sat, rgblight_config.val, i);
|
||||
}else{
|
||||
rgblight_sethsv_at(rgblight_config.hue, rgblight_config.sat, 0, i);
|
||||
}
|
||||
if(i<RGBLED_NUM/2 && pos){
|
||||
sethsv(rgblight_config.hue, rgblight_config.sat, rgblight_config.val, (LED_TYPE *)&led[i]);
|
||||
}else if (i>=RGBLED_NUM/2 && !pos){
|
||||
sethsv(rgblight_config.hue, rgblight_config.sat, rgblight_config.val, (LED_TYPE *)&led[i]);
|
||||
}else{
|
||||
sethsv(rgblight_config.hue, rgblight_config.sat, 0, (LED_TYPE *)&led[i]);
|
||||
}
|
||||
}
|
||||
rgblight_set();
|
||||
pos = (pos + 1) % 2;
|
||||
|
Reference in New Issue
Block a user