Browse Source

132 bytes free 11 layers.

pull/11366/head
jackokring 2 years ago
parent
commit
724842bdda
2 changed files with 158 additions and 182 deletions
  1. +94
    -108
      keyboards/dz60/keymaps/jacko_keys/keymap.c
  2. +64
    -74
      keyboards/dz60/keymaps/jacko_keys/readme.md

+ 94
- 108
keyboards/dz60/keymaps/jacko_keys/keymap.c View File

@ -29,13 +29,6 @@ make linux bootloader install via: (or use via if it's firmwared) => CHOICE
//Limit of only first 128 indirect entries may form part of a shifted pair.
//The **uint32_t** have all been allocated so no size change on edit code points.
//TODO:
//Optimize special shift mode characters.
//Maybe fiddle with LED colours on mode.
//Fill 4 extended user planes for 146 bytes left
//=> 36 extra unicode entries (10 of which can be shifty).
//=> indicators will cost bytes.
#define Z(x) XP(x##_L, x##_U)
enum unicode_names {
@ -81,14 +74,14 @@ enum unicode_names {
// PLACE BQN layer and Unicode character code points here.
// _L is lower case
// _U is upper (shifted) case
// _U is upper (shifted) case
const uint32_t PROGMEM unicode_map[] = {
//ANSI/NAV FN shift
[INT_L] = U'', [INT_U] = U'Σ',
[DIF_L] = U'', [DIF_U] = U'',
[ROOT_L] = U'', [ROOT_U] = U'',
[DEG_L] = U'°', [DEG_U] = U'', //Plimsoil STP
[PND_L] = U'£', [PND_U] = U'',
[PND_L] = U'£', [PND_U] = U'',
[OM_L] = U'ω', [OM_U] = U'Ω',
[MIC_L] = U'µ', [MIC_U] = U'',
//BQN 1
@ -120,10 +113,11 @@ const uint32_t PROGMEM unicode_map[] = {
[M_L] = U'', [M_U] = U'', [LESS_L] = U'', [LESS_U] = U'',
[GRET_L] = U'', [GRET_U] = U'', [DIV_L] = U'', [DIV_U] = U'',
[SPC_L] = U'', [SPC_U] = U' ',
//ANSI
//Special control
[C1_L] = U'', [C1_U] = U' ', [C3_L] = U'', [C3_U] = U' ',
[C4_L] = U'', [C4_U] = U' ', [C5_L] = U'', [C5_U] = U' ',
[C7_L] = U'😈', [C7_U] = U' ', [C8_L] = U'📐', [C8_U] = U' ',
[C7_L] = U'😈', [C7_U] = U' ', [C8_L] = U'📐', [C8_U] = U' ',
[C9_L] = U'😇', [C9_U] = U' ', [C0_L] = U'', [C0_U] = U' ',
[CEQ_L] = U'', [CEQ_U] = U' ', [CES_L] = U'🏃', [CES_U] = U' ',
//Control literals
@ -133,11 +127,12 @@ const uint32_t PROGMEM unicode_map[] = {
[ID] = U'🔖', [IE] = U'🔎', [IF] = U'👍', [IG] = U'🔔',
[IH] = U'', [II] = U'', [IJ] = U'', [IK] = U'⭿',
[IL] = U'📇', [IM] = U'', [IN] = U'🗋', [IO] = U'🗁',
[IP] = U'🐧', [IQ] = U'📤', [IR] = U'📥', [IS] = U'🖫',
[IP] = U'🐧', [IQ] = U'📤', [IR] = U'📥', [IS] = U'💾',
[IT] = U'🌱', [IU] = U'👎', [IV] = U'📋', [IW] = U'🔑',
[IX] = U'🗙', [IY] = U'🗜', [IZ] = U'', [ILBR] = U'',
[IBSL] = U'🌍', [IRBR] = U'', [ICAR] = U'', [IUND] = U'',
//Alt aplha Unicode layer
//BQN Fn Shift
//Unicode layer
[AA] = U' ', [AB] = U' ', [AC] = U' ', [AD] = U' ',
[AE] = U' ', [AF] = U' ', [AG] = U' ', [AH] = U' ',
[AI] = U' ', [AJ] = U' ', [AK] = U' ', [AL] = U' ',
@ -145,12 +140,15 @@ const uint32_t PROGMEM unicode_map[] = {
[AQ] = U' ', [AR] = U' ', [AS] = U' ', [AT] = U' ',
[AU] = U' ', [AV] = U' ', [AW] = U' ',
[AX] = U' ', [AY] = U' ', [AZ] = U' '
//ZERO BYTES FREE
//FILL IN AS REQUIRED
//132 bytes free => 33 Unicode characters free.
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
//KEEP
//=========================================================
// PRIMARY UNSHIFTED MODES
//=========================================================
//ANSI lock mode 0 =================================================================================== ANSI lock mode 0
// Standard ANSI 60 layout for worldwide ASCII compatibility,
// This is the standard conformance layer and as such remain static.
@ -162,32 +160,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
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_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_APP, KC_RCTL, MO(4)),//zero index start
//KEEP
//Backslash enters BQN entry mode
//Navigation lock mode 1 ============================================================================= Navigation lock mode 1
//Navigation lock mode 1 ======================================================================== Navigation lock mode 1
// Removed ASCII 47 (/) and right ctrl/win/alt for cursor.
// Backslash enters BQN entry mode
// VirtualBox host key needs an Fn.
// A basic easy cursor mode with easier BQN entry via \.
LAYOUT_60_ansi(
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, OSL(2),//BQN shift
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, OSL(3),//BQN shift
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_RSFT,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LEFT, KC_DOWN, KC_RIGHT,MO(5)),
//BQN Non FN Shift
//KEEP
//BQN lock mode 2 ================================================================================= BQN lock mode 2
// BQN Unicode
LAYOUT_60_ansi(
Z(GR), Z(N1), Z(N2), Z(N3), Z(N4), Z(N5), Z(N6), Z(N7), Z(N8), Z(N9), Z(N0), Z(MIN), Z(EQ), KC_BSPC,
KC_TAB, Z(Q), Z(W), Z(E), Z(R), Z(T), Z(Y), Z(U), Z(I), Z(O), Z(P), Z(LBR), Z(RBR), KC_BSLS,
KC_CAPS, Z(A), Z(S), Z(D), Z(F), Z(G), Z(H), Z(J), Z(K), Z(L), Z(SEMI), Z(QUOT), KC_ENT,
KC_LSFT, Z(Z), Z(XX), Z(C), Z(V), Z(B), Z(N), Z(M), Z(LESS), Z(GRET), Z(DIV), KC_RSFT,
MO(9), MO(11), MO(10), Z(SPC), KC_LEFT, KC_RGUI, KC_RIGHT,MO(2)),//shift
//KEEP
//Macro lock mode 3 ================================================================================== Macro lock mode 3
//Macro lock mode 3 ================================================================================== Macro lock mode 2
// A single finger macro launching board producing many modifier and function keys.
// Lots of macros and shifts with an Fn
LAYOUT_60_ansi(
@ -195,23 +180,33 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
OSM(MOD_LCTL|MOD_LALT), KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, ALGR(KC_F24),
OSM(MOD_LCTL|MOD_LSFT), ALGR(KC_F1), ALGR(KC_F2), ALGR(KC_F3), ALGR(KC_F4), ALGR(KC_F5), ALGR(KC_F6), ALGR(KC_F7), ALGR(KC_F8), ALGR(KC_F9), ALGR(KC_F10), ALGR(KC_F11), ALGR(KC_F12),
OSM(MOD_LSFT), ALGR(KC_F13), ALGR(KC_F14), ALGR(KC_F15), ALGR(KC_F16), ALGR(KC_F17), ALGR(KC_F18), ALGR(KC_F19), ALGR(KC_F20), ALGR(KC_F21), ALGR(KC_F22), ALGR(KC_F23),
OSM(MOD_LCTL),OSM(MOD_LGUI),OSM(MOD_LALT), KC_SPC, LSA(KC_TAB),OSM(MOD_RGUI), LALT(KC_TAB), TG(6)),
OSM(MOD_LCTL),OSM(MOD_LGUI),OSM(MOD_LALT), KC_SPC, LSA(KC_TAB),OSM(MOD_RGUI), LALT(KC_TAB),TG(6)),
//BQN lock mode 4 ====================================================================================== BQN lock mode 3
// BQN Unicode
LAYOUT_60_ansi(
Z(GR), Z(N1), Z(N2), Z(N3), Z(N4), Z(N5), Z(N6), Z(N7), Z(N8), Z(N9), Z(N0), Z(MIN), Z(EQ), KC_BSPC,
KC_TAB, Z(Q), Z(W), Z(E), Z(R), Z(T), Z(Y), Z(U), Z(I), Z(O), Z(P), Z(LBR), Z(RBR), KC_BSLS,
KC_CAPS, Z(A), Z(S), Z(D), Z(F), Z(G), Z(H), Z(J), Z(K), Z(L), Z(SEMI), Z(QUOT), KC_ENT,
KC_LSFT, Z(Z), Z(XX), Z(C), Z(V), Z(B), Z(N), Z(M), Z(LESS), Z(GRET), Z(DIV), KC_RSFT,
MO(9), MO(11), MO(10), Z(SPC), KC_LEFT, KC_RGUI, KC_RIGHT,MO(7)),//shift
//=========================================================
// SECONDARY Fn SHIFTED MODES
//=========================================================
//KEEP
//ANSI shift mode 4 ================================================================================== ANSI shift mode 4
// ISO characters such as £ and control of RGB/backlight and cursor.
// Fn + P is power switch for shutdown.
// This shift layer is standard for the kind of keyboard.
// MO(4) when released moves back to the regular ANSI layer.
// This shift layer is standard for the kind of keyboard plus a few extensions.
LAYOUT_60_ansi(
KC_ESC, 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_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_WHOM, KC_PWR, KC_HOME, KC_END, KC_INS,
KC_SLCK, KC_WSCH, Z(INT), Z(DIF), KC_WFAV, Z(ROOT), KC_VOLD, KC_VOLU, Z(DEG), Z(PND), KC_PAUS, KC_PSCR, KC_TRNS,
KC_TRNS, Z(OM), KC_MUTE, BL_DEC, BL_TOGG, BL_INC, BL_STEP, Z(MIC), KC_PGUP, KC_PGDN, KC_UP, KC_TRNS,
KC_LCTL, DF(3), DF(1), KC_SPC, KC_LEFT, KC_DOWN, KC_RIGHT, MO(4)),
//KEEP
//Navigation shift mode 5 ============================================================================ Navigation shift mode 5
MO(8), DF(2), DF(1), KC_SPC, KC_LEFT, KC_DOWN, KC_RIGHT,KC_TRNS),
//Navigation shift mode 5 ====================================================================== Navigation shift mode 5
// All function keys, so Home and End were sacrificed.
// Also media player launch and control.
// No APP menu as / is on the key, as / is ? key.
@ -220,80 +215,71 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TRNS, 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_INS,
KC_SLCK, KC_WSCH, Z(INT), Z(DIF), KC_WFAV, Z(ROOT), KC_VOLD, KC_VOLU, Z(DEG), Z(PND), KC_PAUS, KC_PSCR, KC_ESC,
KC_TRNS, Z(OM), KC_MUTE, KC_MPRV, KC_MPLY, KC_MNXT, KC_MSEL, Z(MIC), KC_PGUP, KC_PGDN, KC_QUES, KC_TRNS,
DF(0), DF(3), KC_LALT, KC_SPC, KC_RALT, KC_SLSH, KC_RCTL, MO(5)),
DF(0), DF(2), MO(9), KC_SPC, KC_RALT, KC_SLSH, KC_RCTL, KC_TRNS),
//KEEP for extended macro layer.
//Macro shift mode 6 ================================================================================= Macro shift mode 6
//Macro shift mode 6 ================================================================================ Macro shift mode 6
// Same macro layer but different modifier grouping for more hot key combinations.
LAYOUT_60_ansi(
OSM(MOD_LGUI|MOD_LALT|MOD_LSFT), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, OSM(MOD_LCTL|MOD_LALT|MOD_LSFT),
OSM(MOD_LGUI|MOD_LCTL|MOD_LALT), 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,
OSM(MOD_LGUI|MOD_LCTL|MOD_LSFT), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
OSM(MOD_LGUI|MOD_LSFT), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
DF(0), OSM(KC_LGUI), DF(1), KC_SPC, TG(8), OSM(KC_APP),TG(7), TG(6)),
DF(0), MO(10), DF(1), KC_SPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
//BQN shift mode 7 ==================================================================================== BQN shift mode 7
LAYOUT_60_ansi(
KC_GRV, 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, X(AQ), X(AW), X(AE), X(AR), X(AT), X(AY), X(AU), X(AI), X(AO), X(AP), KC_HOME, KC_END, KC_TRNS,
KC_TRNS, X(AA), X(AS), X(AD), X(AF), X(AG), X(AH), X(AJ), X(AK), X(AL), KC_PAUS, KC_PSCR, KC_TRNS,
KC_TRNS, X(AZ), X(AX), X(AC), X(AV), X(AB), X(AN), X(AM), KC_PGUP, KC_PGDN, KC_UP, KC_TRNS,
DF(0), DF(2), DF(1), KC_SPC, KC_LEFT, KC_DOWN, KC_RIGHT,KC_TRNS),
//=========================================================
// EXTENDED Fn, MOD, Release Fn SHIFTED MODES
//=========================================================
//Control shift mode 8 ============================================================================ Control shift mode 8
LAYOUT_60_ansi(
Z(CES), Z(C1), X(IAT), Z(C3), Z(C4), Z(C5), X(ICAR), Z(C7), Z(C8), Z(C9), Z(C0), X(IUND), Z(CEQ), X(BS),
X(TAB), X(IQ), X(IW), X(IE), X(IR), X(IT), X(IY), X(IU), X(II), X(IO), X(IP), X(ILBR), X(IRBR), X(IBSL),
KC_TRNS, X(IA), X(IS), X(ID), X(IF), X(IG), X(IH), X(IJ), X(IK), X(IL), KC_PAUS, KC_PSCR, X(CR),
KC_TRNS, X(IZ), X(IX), X(IC), X(IV), X(IB), X(IN), X(IM), KC_PGUP, KC_PGDN, KC_UP, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_SPC, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS),
//KEEP
//Extended shift mode 7 ============================================================================== Extended shift mode 7
//Mouse shift mode 9 ================================================================================ Mouse shift mode 9
// A utility layer for things like the mouse.
LAYOUT_60_ansi(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LOCK, KC_PEQL, 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_WH_U, KC_WH_D, RESET,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_BTN4, KC_BTN3, KC_ENT,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_BTN4, KC_BTN3, KC_ENT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_PCMM, KC_BTN1, KC_MS_U, KC_BTN2,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_MS_L, KC_MS_D, KC_MS_R, TG(7)),
//KEEP
//Special shift mode 8 =============================================================================== Special shift mode 8
KC_TRNS, KC_TRNS, KC_TRNS, KC_SPC, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS),
//Special shift mode 10 ========================================================================== Special shift mode 10
// A utility layer for things not elsewhere, and slow language entry with 0 locking.
LAYOUT_60_ansi(
KC_ESC, KC_P1, KC_P2, KC_P3, KC_P4, KC_P5, KC_P6, KC_P7, KC_P8, KC_P9, KC_P0, KC_LOCK, KC_HANJ, KC_DEL,
KC_TAB, KC_RO, KC_KANA, KC_JYEN, KC_HENK, KC_MHEN, KC_INT6, KC_INT7, KC_INT8, KC_INT9, KC_HAEN, KC_HOME, KC_END, KC_INS,
KC_SLCK, KC_WSCH, Z(INT), Z(DIF), KC_WFAV, Z(ROOT), KC_VOLD, KC_VOLU, Z(DEG), Z(PND), KC_PAUS, KC_PSCR, KC_ENT,
KC_NLCK, KC_WSCH, Z(INT), Z(DIF), KC_WFAV, Z(ROOT), KC_VOLD, KC_VOLU, Z(DEG), Z(PND), KC_PAUS, KC_PSCR, KC_ENT,
KC_LSFT, KC_LANG3,KC_LANG4,KC_LANG5,KC_LANG6,KC_LANG7,KC_LANG8,KC_LANG9,KC_ACL0, KC_ACL1, KC_ACL2, KC_RSFT,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_APP, KC_RCTL, TG(8)),
//Control shift mode 9 =============================================================================== Control shift mode 9
LAYOUT_60_ansi(
Z(CES), Z(C1), X(IAT), Z(C3), Z(C4), Z(C5), X(ICAR), Z(C7), Z(C8), Z(C9), Z(C0), X(IUND), Z(CEQ), X(BS),
X(TAB), X(IQ), X(IW), X(IE), X(IR), X(IT), X(IY), X(IU), X(II), X(IO), X(IP), X(ILBR), X(IRBR), X(IBSL),
KC_TRNS, X(IA), X(IS), X(ID), X(IF), X(IG), X(IH), X(IJ), X(IK), X(IL), KC_PAUS, KC_PSCR, X(CR),
KC_TRNS, X(IZ), X(IX), X(IC), X(IV), X(IB), X(IN), X(IM), KC_PGUP, KC_PGDN, KC_UP, KC_TRNS,
MO(9), KC_TRNS, KC_TRNS, KC_SPC, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS),
KC_TRNS, KC_TRNS, KC_TRNS, KC_SPC, KC_RALT, KC_APP, KC_RCTL, KC_TRNS)
//Unicode shift mode 10 ============================================================================= Unicode shift mode 10
LAYOUT_60_ansi(
KC_GRV, 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, X(AQ), X(AW), X(AE), X(AR), X(AT), X(AY), X(AU), X(AI), X(AO), X(AP), KC_HOME, KC_END, KC_TRNS,
KC_TRNS, X(AA), X(AS), X(AD), X(AF), X(AG), X(AH), X(AJ), X(AK), X(AL), KC_PAUS, KC_PSCR, KC_TRNS,
KC_TRNS, X(AZ), X(AX), X(AC), X(AV), X(AB), X(AN), X(AM), KC_PGUP, KC_PGDN, KC_UP, KC_TRNS,
KC_TRNS, KC_TRNS, MO(10), KC_SPC, KC_LEFT, KC_DOWN, KC_RIGHT,KC_TRNS),
//================================ USER PLANE (NOT YET USED) ==============================================================
//=========================================================================================================================
//HOT KEYS ONLY, NO EXTRA SPACE FOR EXTRA AS YET UNDEFINED CHARACTER GLYPHS.
//Special shift mode 11 ============================================================================= Special shift mode 11
LAYOUT_60_ansi(
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, MO(11), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
};
const rgblight_segment_t PROGMEM my_caps[] = RGBLIGHT_LAYER_SEGMENTS(
{8, 1, HSV_GOLD}
{8, 1, HSV_WHITE}
);
const rgblight_segment_t PROGMEM my_fn[] = RGBLIGHT_LAYER_SEGMENTS(
{15, 1, HSV_PINK}
const rgblight_segment_t PROGMEM my_ansi[] = RGBLIGHT_LAYER_SEGMENTS(
{11, 2, HSV_RED}
);
const rgblight_segment_t PROGMEM my_macro[] = RGBLIGHT_LAYER_SEGMENTS(
{11, 1, HSV_CHARTREUSE}
const rgblight_segment_t PROGMEM my_nav[] = RGBLIGHT_LAYER_SEGMENTS(
{11, 2, HSV_GREEN}
);
const rgblight_segment_t PROGMEM my_nav[] = RGBLIGHT_LAYER_SEGMENTS(
{12, 1, HSV_SPRINGGREEN}
const rgblight_segment_t PROGMEM my_macro[] = RGBLIGHT_LAYER_SEGMENTS(
{11, 2, HSV_YELLOW}
);
const rgblight_segment_t PROGMEM my_bqn[] = RGBLIGHT_LAYER_SEGMENTS(
@ -301,16 +287,16 @@ const rgblight_segment_t PROGMEM my_bqn[] = RGBLIGHT_LAYER_SEGMENTS(
);
const rgblight_segment_t PROGMEM my_scroll[] = RGBLIGHT_LAYER_SEGMENTS(
{10, 1, HSV_PURPLE}
{15, 1, HSV_WHITE}
);
const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST(
my_caps, // Overrides caps lock layer
my_fn, // Overides Fn shifted
my_macro,
my_ansi,
my_nav,
my_bqn,// Extended mode
my_scroll // Scroll lock
my_macro,
my_bqn,// Extended mode
my_scroll // Scroll lock
);
void keyboard_post_init_user(void) {
@ -318,26 +304,26 @@ void keyboard_post_init_user(void) {
rgblight_layers = my_rgb_layers;
}
void calc_layer(layer_state_t s, uint16_t light, uint16_t layers) {
bool t = false;
for(uint16_t i = layers; i < 11; i+=4) {
t |= layer_state_cmp(s, i);
}
if(t) rgblight_set_layer_state(light, t);
}
layer_state_t layer_state_set_user(layer_state_t state) {
// Layers will light up if kb layers are active
bool t;
t = false;
if(layer_state_cmp(state, 4) || layer_state_cmp(state, 7) ||
layer_state_cmp(state, 8)) t = true;
rgblight_set_layer_state(1, t);//shifted layer
t = false;
if(layer_state_cmp(state, 3) || layer_state_cmp(state, 6)) t = true;
rgblight_set_layer_state(2, t);//macro
t = false;
if(layer_state_cmp(state, 1) || layer_state_cmp(state, 5)) t = true;
rgblight_set_layer_state(3, t);//nav
rgblight_set_layer_state(4, layer_state_cmp(state, 2));//BQN mode
return state;
// Layers will light up if kb layers are active
calc_layer(state, 1, 0);//ANSI
calc_layer(state, 2, 1);//NAV
calc_layer(state, 3, 2);//Macro
calc_layer(state, 4, 3);//BQN
return state;
}
bool led_update_user(led_t led_state) {
// Caps lock
rgblight_set_layer_state(0, led_state.caps_lock);
// Caps lock etc
rgblight_set_layer_state(0, led_state.caps_lock);
rgblight_set_layer_state(5, led_state.scroll_lock);
return true;
}
return true;
}

+ 64
- 74
keyboards/dz60/keymaps/jacko_keys/readme.md View File

@ -5,13 +5,16 @@ Changes from the default key-map include moving RESET, and a preferred arrangeme
block of keys. The function key was exchanged with the right control key to get it. This makes the layout of the right modifiers left to right be alt/win/control/Fn.
## Right Windows is Application Context Menu Instead
The right Windows key is for getting the application context menu. The right Windows GUI
key is not often used. It is available on the macro-board shift layer for completeness.
The right Windows key is for getting the application context menu.
### Notes on "Level 3 Shift"
* Ironically not being American I will not test the en_US local without hardware.
* I'm not sure if that locale supports an alt gr key interpretation of right alt.
* Hacking Linux termcap/gui equivalent files might be possible for the determined.
## Common to All Fn Layers
* If on an Fn layer a switch is not necessary so the following keys become themselves.
* Left control is ANSI layer select. Basic conformist ANSI.
* Left win is macro-board layer select.
* Left win is macro-board layer select. Latching macro modifiers and function keys.
* Left alt is navigation layer select. You MUST be in this mode for **BQN**.
## ANSI Layer
@ -36,6 +39,62 @@ key is not often used. It is available on the macro-board shift layer for comple
* Browser home key is O, search is A, favourites is F.
* Volume is up(J) and down(H).
### Control Shift Layer (Left Control on Fn Layer)
* Various control code literals and icongraphs plus cursor.
* Comma and period are page up/down.
* Semicolon is pause.
* Apostrophe is print screen.
* The `control_codes.md` contains more information about control codes.
## Navigation Layer
* Right alt/win/control/slash form cursor block.
* Backslash enters a prefix to enter **BQN** characters. (The **BQN** Layer).
### Navigation Shift Layer (Fn Navigation)
* Scroll lock placed on caps lock.
* Backslash is insert.
* Backspace is delete.
* F1 to F12 form top row numbers and minus/equals.
* F13 to F24 form second row Q-].
* Comma and period are page up/down.
* Semicolon is pause.
* Apostrophe is print screen.
* Backtick is escape.
* Enter is pure escape for easy shift escape typing.
* Right control/alt function as modifiers for F1-F24 usage.
* Various Unicode characters µ/ℎ(M), °/⦵(K), £/€(L), ω/Ω(Z), ∫/Σ(S), ∂/∇(D) and √/∛(G).
* Media control prev(C), play(V), next(B), launch(N).
* Global mute is X.
* Browser search is A, favourites is F.
* Volume is up(J) and down(H).
### Mouse Shift Layer (Left Alt on Fn Layer)
* Right alt/win/control/slash form mouse movement block.
* Period is left mouse button.
* Right shift is right mouse button.
* Enter and backspace are themselves.
* Backslash is keyboard reset.
* Equals is numpad equals.
* Comma is numpad comma.
* The brackets are scroll wheel up and down such the [ is up.
* Quote is the scroll button.
* Semicolon is auxiliary mouse button 4 (standard mice don't have this).
* All the alpha keys are themselves.
* Minus turns on key lock for the next key (for easier drag 'n' drop for example).
### BQN Layer
* BQN unshifted and shifted.
* Left and right cursor work on right alt/control.
* Right GUI button is right win key.
### Unicode Shift Layer (Fn After \ BQN Prefix)
* Unicode selection on alphas.
* Numbers unchanged.
* Square brackets are home and end.
* Comma and period are page up/down.
* Semicolon is pause.
* Apostrophe is print screen.
## Macro-board Layer
* Escape is a one shot sticky alt shift.
* Tab is a one shot sticky control alt.
@ -62,23 +121,7 @@ key is not often used. It is available on the macro-board shift layer for comple
* Right control enters the extended shift layer.
* Right alt enters the special shift layer.
### Extended Shift Layer
* Fn exits the extended shift layer.
* Right alt/win/control/slash form mouse movement block.
* Period is left mouse button.
* Right shift is right mouse button.
* All left modifiers are normal with no one shot sticky.
* Enter and backspace are themselves.
* Backslash is keyboard reset.
* Equals is numpad equals (for extra macro codes when possible).
* Comma is numpad comma.
* The brackets are scroll wheel up and down such the [ is up.
* Quote is the scroll button.
* Semicolon is auxiliary mouse button 4 (standard mice don't have this).
* All the alpha keys are themselves.
* Minus turns on key lock for the next key (for easier drag 'n' drop for example).
### Special Shift Layer
### Special Shift Layer (Left Win on Fn Layer)
* Fn exits the special shift layer.
* P and equals is Korean modifiers.
* Minus is key lock for holding down a key until the held key is pressed again.
@ -96,56 +139,3 @@ key is not often used. It is available on the macro-board shift layer for comple
* Browser search is A, favourites is F.
* Escape is pure escape.
* Caps lock is num lock.
#### Notes on "Level 3 Shift"
* Ironically not being American I will not test the en_US local without hardware.
* I'm not sure if that locale supports an alt gr key interpretation of right alt.
* Hacking Linux termcap/gui equivalent files might be possible for the determined.
## Navigation Layer
* Right alt/win/control/slash form cursor block.
* Backslash enters a prefix to enter **BQN** characters.
### Navigation Shift Layer (Fn Navigation)
* Scroll lock placed on caps lock.
* Backslash is insert.
* Backspace is delete.
* F1 to F12 form top row numbers and minus/equals.
* F13 to F24 form second row Q-].
* Comma and period are page up/down.
* Semicolon is pause.
* Apostrophe is print screen.
* Backtick is escape.
* Enter is pure escape for easy shift escape typing.
* Right control/alt function as modifiers for F1-F24 usage.
* Various Unicode characters µ/ℎ(M), °/⦵(K), £/€(L), ω/Ω(Z), ∫/Σ(S), ∂/∇(D) and √/∛(G).
* Media control prev(C), play(V), next(B), launch(N).
* Global mute is X.
* Browser search is A, favourites is F.
* Volume is up(J) and down(H).
## BQN Layer
* BQN unshifted and shifted.
* Fn shift holds the BQN layer.
* Left control/win/alt prefix meta of **\\** to select further layers.
* Left and right cursor work on right alt/control.
* Right GUI button is right win key.
### Control Shift Layer (BQN Left Control)
* Various control code literals and icongraphs plus cursor.
* Comma and period are page up/down.
* Semicolon is pause.
* Apostrophe is print screen.
* The `control_codes.md` contains more information about control codes.
### Unicode Shift Layer (BQN Left Alt)
* Unicode selection on alphas.
* Numbers unchanged.
* Square brackets are home and end.
* Comma and period are page up/down.
* Semicolon is pause.
* Apostrophe is print screen.
### Nothing Yet Layer (BQN Left Win)
* No space to define new codes to emit, but can emit any code already defined on any key.
* Needs programming.

Loading…
Cancel
Save