* ,-----------------------------------------------------------------------------------------. * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ~ | * |-----------------------------------------------------------------------------------------+ * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Bkspc | * |-----------------------------------------------------------------------------------------+ * | Ctrl | A | S | D | F | G | H | J | K | L | ; | ' | Enter | * |-----------------------------------------------------------------------------------------+ * | Shift | Z | X | C | V | B | N | M | , | . | / | Shift | Fn | * |-----------------------------------------------------------------------------------------+ * | Caps | GUI | Alt | Space | Alt | GUI | Ctrl | * `-----------------------------------------------------------------------------------------' */ 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_BSLS, KC_GRV, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_CAPS, KC_LALT, KC_LGUI, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RGUI, KC_RALT, KC_RALT, KC_RCTL), /* Layer 1 * ,-----------------------------------------------------------------------------------------. * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | INS | Del | * |-----------------------------------------------------------------------------------------+ * | | PGUP | UP | PGDN | HOME | & | ~ | | | | Prnt | UP | Del | Bkspc | * |-----------------------------------------------------------------------------------------+ * | | LEFT | DWN | RGHT | END | * | | | PGUP | HOME | LEFT | RGHT | | * |-----------------------------------------------------------------------------------------+ * | | _ | + | ( | ) | | | | | PGDN | END | DWN | | | * |-----------------------------------------------------------------------------------------+
#ifdef CAPSLOCK_LED if (usb_led & (1 << USB_LED_CAPS_LOCK)) { activateLED(0, 3, 7, 255); }else{ activateLED(0, 3, 7, 0); } #endif // CAPSLOCK_LED #endif // ISS_ENABLE led_set_user(usb_led); } // LFK lighting info const uint8_t switch_matrices[] = {0, 1}; const uint8_t rgb_matrices[] = {6, 7}; const uint8_t rgb_sequence[] = { 12, 11, 10, 9, 16, 32, 31, 30, 28, 25, 24, 22, 21, 20, 19, 18, 17, 1, 2, 3, 4, 5, 6, 7, 8, 14, 13 }; // Maps switch LEDs from Row/Col to ISSI matrix. // Value breakdown: // Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | // / \ ISSI Col | ISSI Row | // matrix idx const uint8_t switch_leds[MATRIX_ROWS][MATRIX_COLS] = LAYOUT( 0x19, 0x18, 0x17, 0x16, 0x15, 0x14, 0x13, 0x12, 0x11, 0x99, 0x98, 0x97, 0x96, 0x95, 0x94, 0x93, 0x92, 0x91, 0x29, 0x28, 0x27, 0x26, 0x25, 0x24, 0x23, 0x22, 0x21, 0xA9, 0xA8, 0xA7, 0xA6, 0xA5, 0xA4, 0xA3, 0xA2, 0xA1, 0x39, 0x38, 0x37, 0x36, 0x35, 0x34, 0x33, 0x32, 0x31, 0xB9, 0xB8, 0xB7, 0xB6, 0xB5, 0xB3, 0x49, 0x48, 0x47, 0x45, 0x44, 0x43, 0x42, 0x41, 0xC9, 0xC8, 0xC7, 0xC6, 0xC5, 0xC4, 0xC2, 0x59, 0x58, 0x57, 0x56, 0x55, 0x51, 0xD6, 0xE5, 0xE4, 0xE3, 0xE2, 0xE1);
* |---------------------------------------------------------------| * |` |1 |2 |3 |4 |5 |6 |7 |8 |9 |0 |- |= |Del|Bsp|Hm | * |---------------------------------------------------------------| * |Tab |Q |W |E |R |T |Y |U |I |O |P |[ |] |\ |End| * |---------------------------------------------------------------| * |Caps |A |S |D |F |G |H |J |K |L |; |' |Enter |PgU| * |---------------------------------------------------------------| * |Shft|\ |Z |X |C |V |B |N |M |, |. |/ |Shift |Up |PgD| * |---------------------------------------------------------------| * |Ctrl|GUI |Alt |Space |Alt |Fn |▓|Lt |Dn |Rt | * `---------------------------------------------------------------' */ LAYOUT( 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_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_DEL, KC_BSPC, KC_HOME, 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_END, 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_PGUP, KC_LSFT, LT(1, KC_NO), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_UP, KC_PGDN, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, LT(1, KC_NO), KC_LEFT, KC_DOWN, KC_RGHT ), /* * ,---------------------------------------------------------------. * |RST|▓▓▓| | | | |▓| | | | |▓| | | | |▓▓▓| * |---------------------------------------------------------------| * |` | | | | | | | | | | | | | | |Tog| * |---------------------------------------------------------------| * | | | | | | | | | | | | | | |Stp| * |---------------------------------------------------------------| * | | | | | | | | | | | | | |BL+| * |---------------------------------------------------------------| * | | | | | | | | | | | | | | |BL-|
void lmt_compute_param_y(WYSIWYG *wn, int i, int32 *anchor_y, int32 *depth) { int32 v, dr, top = 0, bottom = 0, y_center; LAYOUT(wn) dpo = lmt_off_to_abs(wn, Y_REF, DEPTH_OFFSET(i)); /* dep offst*/ v = lmt_off_to_abs(wn, Y_REF, Y_OFFSET(i)); /* vertical offset */ dr = lmt_rel_to_abs(wn, 6, 6, &FRAME_DATA(i) rel_data); /* i6 depth relationship */ switch(LOCKPOINT(i)) /* the lock point */ { case TL: /* 'y' = top */ case TR: case TC: v += lmt_rel_to_abs(wn, 0, 2, &FRAME_DATA(i) rel_data); /* offset + relationship */ v += lmt_lock_lead(wn, i, v); top = v; /* top */ if (dr) /* bottom */ bottom = dr + LAYOUT(wn) dpo; else bottom = v + LAYOUT(wn) dpo; *anchor_y = top; break; case HL: /* 'y' = Height */ case HR: case HC: v += lmt_rel_to_abs(wn, 0, 2, &FRAME_DATA(i) rel_data); /* offset + relationship */ if (TYPE_OF_FRAME(i) == PL_TEXT || TYPE_OF_FRAME(i) == PL_MISC || TYPE_OF_FRAME(i) == PL_FLOW) v -= (int32)(((float)lmt_off_to_abs(wn, Y_REF, LEADING(i)) / (float)wn -> ldb - (float)CAP_HT(i) * (float)lmt_off_to_abs(wn, X_REF, POINT_SIZE(i)) / (float)(wn -> msb * 100L)) * (float)wn -> ldb); v += lmt_lock_lead(wn, i, v); top = v; /* top */ if (dr) bottom = dr + LAYOUT(wn) dpo; else bottom = top + LAYOUT(wn) dpo; *anchor_y = top; break; case BL: /* 'y' = bottom */ case BR: case BC: v += lmt_rel_to_abs(wn, 1, 2, &FRAME_DATA(i) rel_data); /* offset + relationship */ bottom = v; if (dr) top = dr + LAYOUT(wn) dpo + lmt_lock_lead(wn,i,dr+ LAYOUT(wn) dpo); else { v += lmt_lock_lead(wn, i, v - LAYOUT(wn) dpo); top = v - LAYOUT(wn) dpo; bottom = v; } *anchor_y = bottom; break; case CL: /* 'y' = center */ case CR: case CC: { int32 a; v += lmt_rel_to_abs(wn, 2, 2, &FRAME_DATA(i) rel_data); /* offset + relationship */ y_center = v; /* y-center */ if (dr) { LAYOUT(wn) dpo += dr; LAYOUT(wn) dpo -= v; (LAYOUT(wn) dpo < 0) ? (LAYOUT(wn) dpo *= -2) : (LAYOUT(wn) dpo *= 2); } a = lmt_lock_lead(wn, i, v - (LAYOUT(wn) dpo / 2)); v += a; top = (v - (LAYOUT(wn) dpo / 2)); /* top */ if (dr) v -= a; bottom = (v + (LAYOUT(wn) dpo / 2)); /* bottom */ *anchor_y = y_center; } break; } *depth = bottom - top; }
void lmt_compute_y(WYSIWYG *wn, int i) { int32 v, dr; v = lmt_off_to_abs(wn, Y_REF, Y_OFFSET(i)); /* vertical offset */ dr = lmt_rel_to_abs(wn, 6, 6, &FRAME_DATA(i) rel_data); /* i6 depth relationship */ switch(LOCKPOINT(i)) /* the lock point */ { case TL: /* 'y' = top */ case TR: case TC: v += lmt_rel_to_abs(wn, 0, 2, &FRAME_DATA(i) rel_data); /* offset + relationship */ v += lmt_lock_lead(wn, i, v); ELE_DATA(i) rot_rect_top = v; /* top */ if (dr) /* bottom */ ELE_DATA(i) rot_rect_bottom = dr + LAYOUT(wn) dpo; else ELE_DATA(i) rot_rect_bottom = v + LAYOUT(wn) dpo; ELE_DATA(i) rot_rect_y_center = /* y-center */ (ELE_DATA(i) rot_rect_bottom + ELE_DATA(i) rot_rect_top) / 2 ; break; case HL: /* 'y' = Height */ case HR: case HC: v += lmt_rel_to_abs(wn, 0, 2, &FRAME_DATA(i) rel_data); /* offset + relationship */ if (TYPE_OF_FRAME(i) == PL_TEXT || TYPE_OF_FRAME(i) == PL_MISC || TYPE_OF_FRAME(i) == PL_FLOW) v -= (int32)(((float)lmt_off_to_abs(wn, Y_REF, LEADING(i)) / (float)wn -> ldb - (float)CAP_HT(i) * (float)lmt_off_to_abs(wn, X_REF, POINT_SIZE(i)) / (float)(wn -> msb * 100L)) * (float)wn -> ldb); v += lmt_lock_lead(wn, i, v); ELE_DATA(i) rot_rect_top = v; /* top */ if (dr) /* bottom */ ELE_DATA(i) rot_rect_bottom = dr + LAYOUT(wn) dpo; else ELE_DATA(i) rot_rect_bottom = ELE_DATA(i) rot_rect_top + LAYOUT(wn) dpo; ELE_DATA(i) rot_rect_y_center = /* y-center */ (ELE_DATA(i) rot_rect_bottom + ELE_DATA(i) rot_rect_top) / 2 ; break; case BL: /* 'y' = bottom */ case BR: case BC: v += lmt_rel_to_abs(wn, 1, 2, &FRAME_DATA(i) rel_data); /* offset + relationship */ ELE_DATA(i) rot_rect_bottom = v; /* bottom */ if (dr) /* top */ ELE_DATA(i) rot_rect_top = dr + LAYOUT(wn) dpo + lmt_lock_lead(wn, i, dr + LAYOUT(wn) dpo); else { v += lmt_lock_lead(wn, i, v - LAYOUT(wn) dpo); ELE_DATA(i) rot_rect_top = v - LAYOUT(wn) dpo; ELE_DATA(i) rot_rect_bottom = v; /* bottom */ } ELE_DATA(i) rot_rect_y_center = /* y-center */ (v + ELE_DATA(i) rot_rect_top) / 2 ; break; case CL: /* 'y' = center */ case CR: case CC: { int32 a; v += lmt_rel_to_abs(wn, 2, 2, &FRAME_DATA(i) rel_data); /* offset + relationship */ ELE_DATA(i) rot_rect_y_center = v; /* y-center */ if (dr) { LAYOUT(wn) dpo += dr; LAYOUT(wn) dpo -= v; (LAYOUT(wn) dpo < 0) ? (LAYOUT(wn) dpo *= -2) : (LAYOUT(wn) dpo *= 2); } a = lmt_lock_lead(wn, i, v - (LAYOUT(wn) dpo / 2)); v += a; ELE_DATA(i) rot_rect_top = (v - (LAYOUT(wn) dpo / 2)); /* top */ if (dr) v -= a; ELE_DATA(i) rot_rect_bottom = (v + (LAYOUT(wn) dpo / 2)); /* bot */ } break; } }
| CAPS LOCK | A | S | D | F | G | H | J | K | L | : | " | ENTER | 4 | 5 | 6 | + | |______________|________|________|________|________|________|________|________|________|________|________|________|____________________|________|________|________|________| | | | | | | | | | | , | . | / | | | | | | | | SHIFT | NUBS | Z | X | C | V | B | N | M | < | > | ? | SHIFT | UP | 1 | 2 | 3 | ENTER | |_________|________|________|________|________|________|________|________|________|________|________|________|________________|________|________|________|________|________| | | | | | | MO | MO | | | | | | | | CTRL | LGUI | L ALT | SPACE | R ALT | _FN | _FN | LEFT | DOWN | RIGHT | 0 | . | ENTER | |__________|__________|__________|________________________________________________________|________|________|________|________|________|________|________|________|________| */ LAYOUT( 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_PSCR, KC_HOME, KC_END, KC_PGUP, KC_PGDN, KC_DEL, 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_BSLS, KC_BSPC, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, 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_P7, KC_P8, KC_P9, KC_PMNS, 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_P4, KC_P5, KC_P6, KC_PPLS, KC_LSFT, KC_NUBS, 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_P1, KC_P2, KC_P3, KC_PENT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), MO(1), KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), /* Layer 1, function layer ____________________________________________________________________________________________________________________________________________________________________________ | | | | | | | | | | | | | | | VOL | VOL | | | | | RESET | | | | | | | | | | | | | MUTE | DOWN | UP | | | | |________|________|________|________|________|________|________|________|________|________|________|________|________|________|________|________|________|________|________| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |________|________|________|________|________|________|________|________|________|________|________|________|________|________|________|________|________|________|________| | | RGB | | RGB | HUE | HUE | SATUR. | SATUR. | VALUE | VALUE | | | | | | | | |
/* Keymap: (Base Layer) Default Layer * ,-----------------------------------------------------------. * |Esc~| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp | * |-----------------------------------------------------------| * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ | * |-----------------------------------------------------------| * |CAPS/MO| A| S| D| F| G| H| J| K| L| ;| '|Return | * |-----------------------------------------------------------| * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | * |-----------------------------------------------------------| * |Ctrl|Gui |Alt | Space |Alt |Gui |MO |Ctrl | * `-----------------------------------------------------------' */ 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 , XXXXXXX, 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, LT(MO(1), 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, XXXXXXX, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, XXXXXXX, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_SPC , KC_SPC , KC_RALT, KC_RGUI, XXXXXXX, MO(2) , KC_RCTL), /* Keymap : Second Layer (WASD and Media) * ,-----------------------------------------------------------. * |ESC| F1| F2| F3 | | | | | | | | | | DEL | * |-----------------------------------------------------------| * | | | | | | | | | | | | | | | * |-----------------------------------------------------------| * | | | | | | | | | | | | | | * |-----------------------------------------------------------| * | | | | | | | | | | | | | * |-----------------------------------------------------------| * | | | | | | | | | * `-----------------------------------------------------------'
#include QMK_KEYBOARD_H #define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { LAYOUT( F(0), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_NO, KC_BSPC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_NO, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, MO(1), KC_RALT, KC_RALT, KC_LGUI, KC_RCTL), 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_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, 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, BL_DEC, BL_TOGG, BL_INC, BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_LEFT, KC_DOWN, KC_RIGHT), LAYOUT( KC_TRNS, M(1), M(2), M(3), M(4), M(5), M(6), M(7), M(8), M(9), M(10), M(11), M(12), 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), }; enum function_id { SHIFT_ESC, };
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ │ TAB │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │█████│ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ │CAPSL│ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │▒▒▒▒▒│ENTER│█████│ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ │LSHFT│▒▒▒▒▒│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │▒▒▒▒▒│RSHFT│▒▒▒▒▒│ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ │LCTRL│L_GUI│L_ALT│█████│█████│█████│ SPC │█████│█████│█████│R_ALT│ FN0 │ APP │RCTRL│█████│ └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ */ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* 0: ANSI qwerty */ 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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NO, KC_ENT , \ KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, KC_RSFT, KC_NO, \ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_FN0, KC_APP, KC_RCTL), /* 1: Fn layer UG = Underglow = RGB Backlighting BL = Backlighting = In-Switch LED ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ │GRAVE│ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │▒▒▒▒▒│ │ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ │ │ │ Up │ │ │ │ │ │PGUP │PGDWN│PRTSC│SCLCK│PAUSE│ │█████│ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ │ │Left │Down │Right│ │ │ │ │ │ │ │ │▒▒▒▒▒│ │█████│ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ │ │ │UGTOG│UGMOD│UGHUI│UGHUD│UGSAI│UGSAD│ │BLDEC│BLTOG│BLINC│▒▒▒▒▒│ │▒▒▒▒▒│ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
#include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { LAYOUT( 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_PSCR, KC_SLCK, KC_PAUS, KC_MPLY, KC_MPRV, KC_MNXT, KC_MUTE, \ 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_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, \ 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_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, \ 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_P4, KC_P5, KC_P6, KC_PPLS, \ KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, \ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PCMM, KC_PDOT, KC_PENT \ ) }; void led_set_user(uint8_t usb_led) { if (usb_led & (1 << USB_LED_NUM_LOCK)) { DDRB |= (1 << 5); PORTB &= ~(1 << 5); } else { DDRB &= ~(1 << 5); PORTB &= ~(1 << 5); } if (usb_led & (1 << USB_LED_CAPS_LOCK)) { DDRB |= (1 << 6); PORTB &= ~(1 << 6); } else { DDRB &= ~(1 << 6); PORTB &= ~(1 << 6); } if (usb_led & (1 << USB_LED_SCROLL_LOCK)) { DDRB |= (1 << 7); PORTB &= ~(1 << 7); } else {
void MathTest::initDisplay() { int index; // Set the starting coordinates in pixels for the objects that will be // laid out. // const int tests_x = 20; // x coord of left side of groups const int tests_y = 50; // y coord of top of groups const int text_w = 80; // Width of all text const int text_h = 14; // Height of all text const int box_w = 60; // Width of Edit Boxes and Labels const int box_h = 30; // Height of all controls const int vs = 36; // Vertical Span const int hs = 36; // Horizontal span // Instantiate the Layout parameters. // See layout.h // LAYOUT_INIT() // Layout the Tests Checkboxes // LAYOUT(tests_x, tests_y, 0, vs) Twidget *tw = new Twidget; tw->objName = "Tests"; tw->objText << "Add" << "Subtract" << "Multiply" << "Divide"; tw->sizes << QSize(text_w+10, box_h); tw->layout << CELL(0,0) << CELL(0,1) << CELL(0,2) << CELL(0,3); tw->connect = false; // // Layout the Labels for number of Problems, time in Seconds, and Grade // Level. // These labels will "belong" to the pTests control group. // int label_x = tests_x + text_w + hs; int label_y = 14; int label_hs = box_w + hs; LAYOUT(label_x, label_y, label_hs, text_h) tw->labelText << "Number of" << "Problems" << "Time in" << "Seconds" << "Grade" << "Level"; tw->labelSizes << QSize(text_w, text_h); tw->labelLayout << CELL(0,0) << CELL(0,1) << CELL(1,0) << CELL(1,1) << CELL(2,0) << CELL(2,1); pTests = new TButtonGroup <QCheckBox>(tw, this); // Layout the "Problems" QLineEdit boxes // tw = new Twidget; int prob_x = label_x; int prob_y = tests_y; LAYOUT(prob_x, prob_y, 0, vs) tw->objName = "Problems"; tw->objText << "5" << "5" << "5" << "5"; tw->sizes << QSize(box_w, box_h); tw->layout << CELL(0,0) << CELL(0,1) << CELL(0,2) << CELL (0,3); tw->connect = true; pProblems = new TEditGroup <QLineEdit>(tw, this); for(index = 0; index < pProblems->widgetList.size(); index++) pProblems->widgetList[index]->setInputMask("00"); // Layout the "Seconds" QLineEdit boxes // tw = new Twidget; int time_x = label_x + box_w + hs; int time_y = prob_y; LAYOUT(time_x, time_y, 0, vs); tw->layout << CELL(0,0) << CELL(0,1) << CELL(0,2) << CELL(0,3); tw->objName = "Seconds"; tw->objText << "10" << "10" << "25" << "30"; tw->sizes << QSize(box_w, box_h); tw->connect = false; pTimes = new TEditGroup <QLineEdit>(tw, this); for(index = 0; index < pTimes->widgetList.size(); index++) pTimes->widgetList[index]->setInputMask("00"); // Layout the Grade Level radiobuttons. // tw = new Twidget; int gl_x = time_x + box_w + hs - 10; int gl_y = time_y; LAYOUT(gl_x, gl_y, 0, vs); tw->layout << CELL(0,0) << CELL(0,1) << CELL(0,2) << CELL(0,3); tw->sizes << QSize(box_w - 10, box_h); tw->objText << "1" << "2" << "3" <<"4"; tw->connect = true; tw->grouped = true; pGradeLevel = new TButtonGroup <QRadioButton>(tw, this); pGradeLevel->widgetList[gl_3]->setChecked(true); connect(pGradeLevel->buttonGroup, SIGNAL(buttonClicked(int)), this, SLOT(onGradeLevel(int))); // Layout the UserName box and its label // int userName_x = tests_x; int userName_y = tests_y + text_h + (4 * vs); int userNameEd_x = userName_x + text_w; int userNameEd_w = 250; userNameLabel = new QLabel(this); userNameLabel->setGeometry(userName_x, userName_y, text_w, text_h); userNameLabel->setText("Your Name:"); userNameEdit = new QLineEdit(this); userNameEdit->setGeometry(userNameEd_x, userName_y, userNameEd_w, box_h); userNameEdit->setText(""); userNameEdit->setCursorPosition(0); connect(userNameEdit, SIGNAL(returnPressed()), this, SLOT(onUserName())); // Create and connect the Start button. // Because this pushbutton's parent is QDialog, it will have its // autoDefault property set when instantiated. This can cause some very // confusing behavior if you don't know this. See "autoDefault" in the // QPushButton class reference. We will explicitly set this property // to FALSE for this button, and also set its "default" property to // FALSE. // const int pbw = 100; const int pbhs = 110; int goButton_x = tests_x+10; int goButton_y = userName_y + vs + 6; goButton = new QPushButton("Start", this); goButton->setGeometry(goButton_x, goButton_y, pbw, box_h); goButton->setAutoDefault(false); goButton->setDefault(false); connect(goButton, SIGNAL(clicked()), this, SLOT(onGo())); // Create and connect the stop button. // int stopButton_x = goButton_x + pbhs; int stopButton_y = goButton_y; stopButton = new QPushButton("Stop", this); stopButton->setGeometry(stopButton_x, stopButton_y, pbw, box_h); stopButton->setAutoDefault(false); stopButton->setDefault(false); connect(stopButton, SIGNAL(clicked()), this, SLOT(onStop())); // Create and connect the Default button. // int defaultButton_x = stopButton_x + pbhs; int defaultButton_y = goButton_y; defaultButton = new QPushButton("Defaults", this); defaultButton->setGeometry(defaultButton_x, defaultButton_y, pbw, box_h); defaultButton->setAutoDefault(false); defaultButton->setDefault(false); connect(defaultButton, SIGNAL(clicked()), this, SLOT(onDefault())); // Layout the Quiz and Answer Boxes and their labels // tw = new Twidget; int quiz_x = tests_x + 20; int quiz_y = goButton_y + vs; LAYOUT(quiz_x, quiz_y, hs + box_w+10, text_h) tw->labelLayout << CELL(0,0) << CELL(1,0) << CELL(2,0) << CELL(0,1) << CELL(1,1) << CELL(2,1); tw->labelText << "Problem" << "The" << "Your" << "Number" << "Problem" << "Answer"; tw->labelSizes << QSize(text_w, text_h); LAYOUT(quiz_x, quiz_y+(2*text_h)+2, hs + box_w+10, 0) tw->objName = "Quiz"; tw->objText << ""; tw->sizes << QSize(box_w, box_h) << QSize(box_w+30, box_h) << QSize(box_w+10, box_h); tw->hOffset << 20 << -5 << 0 << 20 << -5 << 0; tw->layout << CELL(0,0) << CELL(1,0) << CELL(2,0); pQuiz = new TEditGroup <QLineEdit>(tw, this); // // Set the Quiz Box to ReadOnly and connect the returnPressed // signal from the Answer Box. // pQuiz->widgetList[qz_number]->setReadOnly(true); pQuiz->widgetList[qz_number]->setAlignment(Qt::AlignRight); pQuiz->widgetList[qz_quiz]->setReadOnly(true); pQuiz->widgetList[qz_answer]->setEnabled(true); pQuiz->widgetList[qz_answer]->setInputMask("0000"); pQuiz->widgetList[qz_answer]->setCursor(Qt::IBeamCursor); pQuiz->widgetList[qz_answer]->setCursorPosition(0); QLineEdit *tempLineEdit = pQuiz->widgetList[qz_answer]; connect (tempLineEdit, SIGNAL(returnPressed()), this, SLOT(onAnswer())); // Create the Message Box // int msg_x = tests_x; int msg_y = quiz_y + vs + (3 * text_h); int msg_w = 340; int msg_h = 180; QTextEdit* messages = new QTextEdit(this); messages->setGeometry(msg_x, msg_y, msg_w, msg_h); messages->setReadOnly(true); messages->setFocusPolicy(Qt::ClickFocus); messages->setUpdatesEnabled(true); pMsg = new Msg(messages); }
#include QMK_KEYBOARD_H extern keymap_config_t keymap_config; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { LAYOUT( KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, 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_DEL, 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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, KC_LCTL, KC_LGUI, KC_LALT, TG(4), MO(1), KC_SPC, KC_SPC, MO(2), KC_LEFT, KC_RGHT, KC_UP, KC_DOWN), LAYOUT( 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_PAUS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, 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_INS, KC_HOME, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_END, KC_PGDN), LAYOUT( 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_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, KC_MINS, KC_EQL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_PIPE, KC_UNDS, KC_PLUS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LCBR, KC_RCBR, KC_BSLS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), LAYOUT( LALT(KC_F4), LSFT(KC_EXLM), LSFT(KC_AT), LSFT(KC_HASH), LSFT(KC_DLR), LSFT(KC_PERC), LSFT(KC_CIRC), LSFT(KC_AMPR), LSFT(KC_ASTR), LSFT(KC_LPRN), LSFT(KC_RPRN), LSFT(KC_DEL), 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, LSFT(KC_COLN), LSFT(KC_DQUO),
#include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* 0: Winkey */ LAYOUT( 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_PSCR,KC_SLCK,KC_PAUS,\ 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_INS,KC_HOME,KC_PGUP,\ 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_DEL, KC_END,KC_PGDN,\ 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_NUHS, KC_ENT, \ KC_LSFT,KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M,KC_COMM, KC_DOT,KC_SLSH,KC_RSFT, MO(2), KC_UP, \ KC_LCTL,KC_LGUI,KC_LALT, KC_SPC, KC_RALT,KC_RGUI, KC_APP,KC_RCTL, KC_LEFT,KC_DOWN,KC_RGHT \ ), /* 1: Winkeyless */ LAYOUT( 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_PSCR,KC_SLCK,KC_PAUS,\ 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_INS,KC_HOME,KC_PGUP,\ 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_DEL, KC_END,KC_PGDN,\ 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_NUHS, KC_ENT, \ KC_LSFT,KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M,KC_COMM, KC_DOT,KC_SLSH,KC_RSFT, MO(2), KC_UP, \ KC_LCTL,KC_LGUI,KC_LALT, KC_SPC, KC_NO,KC_RALT,KC_RGUI,KC_RCTL, KC_LEFT,KC_DOWN,KC_RGHT \ ), /* 2: Fn */ LAYOUT( KC_TRNS, BL_ON, BL_OFF,BL_STEP,BL_BRTG,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,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 \ ), };
_LAYER0, _LAYER1, _LAYER2, _LAYER3 }; const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] PROGMEM = { /* Keymap 0 * ,-----------. * | |Up |Fn0| * |---+---+---| * |Lef|Dow|Rig| * `-----------' */ LAYOUT( KC_UP, TO(_LAYER1), KC_LEFT,KC_DOWN,KC_RIGHT ), /* Keymap 1 * ,-----------. * | |PgU|Fn1| * |---+---+---| * |Hom|PgD|End| * `-----------' */ LAYOUT( KC_PGUP,TO(_LAYER2), KC_HOME,KC_PGDN,KC_END ), /* Keymap 2 * ,-----------. * | |Sel|Fn2| * |---+---+---| * |Pre|Pla|Nex| * `-----------' */
#include "protocol/serial.h" #endif #define LT3_TAB LT(3, KC_TAB) #define MT_RSFT_ENT MT(MOD_RSFT, KC_ENT) enum custom_keycodes { LED_TOG = SAFE_RANGE, LED_CHG }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { LAYOUT( KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, LT3_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, MT_RSFT_ENT, KC_LCTL, KC_LALT, KC_LGUI, KC_APP, MO(2), KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT ), LAYOUT( KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DELETE, _______, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, _______, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, _______, _______, _______, _______, KC_CAPS, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END ), LAYOUT( KC_FN6, KC_FN7, KC_FN8, KC_FN9, KC_FN10, KC_FN11, KC_FN12, KC_FN13, KC_FN14, KC_FN15, KC_FN16, KC_DELETE, _______, _______, _______, _______, _______, _______, _______, KC_FN17, KC_FN18, KC_FN19, KC_FN20, KC_FN21, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, _______, _______, _______, KC_CAPS, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END
void lmt_compute_x(WYSIWYG *wn, int i) { int32 h, wr; h = lmt_off_to_abs(wn, X_REF, X_OFFSET(i)); /* horizontal offset */ wr = lmt_rel_to_abs(wn, 7, 4, &FRAME_DATA(i) rel_data); /* i4 width relationship */ switch(LOCKPOINT(i)) /* the lock point */ { case TL: /* 'x' = left */ case BL: case CL: case HL: h += lmt_rel_to_abs(wn, 3, 0, &FRAME_DATA(i) rel_data); /* offset + relationship */ ELE_DATA(i) rot_rect_left = h; /* left */ if (wr) /* right */ ELE_DATA(i) rot_rect_right = wr + LAYOUT(wn) wo; else ELE_DATA(i) rot_rect_right = h + LAYOUT(wn) wo; ELE_DATA(i) rot_rect_x_center = /* x-center */ (ELE_DATA(i) rot_rect_right + h) / 2; break; case TR: /* 'x' = right */ case BR: case CR: case HR: h += lmt_rel_to_abs(wn, 4, 0, &FRAME_DATA(i) rel_data); /* offset + relationship */ ELE_DATA(i) rot_rect_right = h; /* right */ if (wr) /* left */ ELE_DATA(i) rot_rect_left = wr + LAYOUT(wn) wo; else ELE_DATA(i) rot_rect_left = h - LAYOUT(wn) wo; ELE_DATA(i) rot_rect_x_center = /* x-center */ (h + ELE_DATA(i) rot_rect_left) / 2; break; case TC: /* 'x' = center */ case BC: case CC: case HC: h += lmt_rel_to_abs(wn, 5, 0, &FRAME_DATA(i) rel_data); /* offset + relationship */ ELE_DATA(i) rot_rect_x_center = h; /* x-center */ if (wr) { LAYOUT(wn) wo += wr; LAYOUT(wn) wo -= h; (LAYOUT(wn) wo < 0) ? (LAYOUT(wn) wo *= -2) : (LAYOUT(wn) wo *= 2); } ELE_DATA(i) rot_rect_left = (h - (LAYOUT(wn) wo / 2)); /* left */ ELE_DATA(i) rot_rect_right = (h + (LAYOUT(wn) wo / 2)); /* right */ break; } }
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 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { LAYOUT( KC_HOME, KC_PGUP, KC_END, KC_PGDN), }; bool initialized = 0; const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { return MACRO_NONE ; } void matrix_init_user(void) { if (!initialized){ dprintf("Initializing in matrix_scan_user");
void lmt_compute_param_x(WYSIWYG *wn, int i, int32 *anchor_x, int32 *width) { int32 h, wr, left = 0, right = 0, x_center; LAYOUT(wn) wo = lmt_off_to_abs(wn, X_REF, WIDTH_OFFSET(i)); /*wid offst */ h = lmt_off_to_abs(wn, X_REF, X_OFFSET(i)); /* horizontal offset */ wr = lmt_rel_to_abs(wn, 7, 4, &FRAME_DATA(i) rel_data); /* i4 width relationship */ switch(LOCKPOINT(i)) /* the lock point */ { case TL: /* 'x' = left */ case BL: case CL: case HL: h += lmt_rel_to_abs(wn, 3, 0, &FRAME_DATA(i) rel_data); /* offset + relationship */ left = h; if (wr) right = wr + LAYOUT(wn) wo; else right = h + LAYOUT(wn) wo; *anchor_x = left; break; case TR: /* 'x' = right */ case BR: case CR: case HR: h += lmt_rel_to_abs(wn, 4, 0, &FRAME_DATA(i) rel_data); /* offset + relationship */ right = h; if (wr) left = wr + LAYOUT(wn) wo; else left = h - LAYOUT(wn) wo; *anchor_x = right; break; case TC: /* 'x' = center */ case BC: case CC: case HC: h += lmt_rel_to_abs(wn, 5, 0, &FRAME_DATA(i) rel_data); /* offset + relationship */ x_center = h; /* x-center */ if (wr) { LAYOUT(wn) wo += wr; LAYOUT(wn) wo -= h; (LAYOUT(wn) wo < 0) ? (LAYOUT(wn) wo *= -2) : (LAYOUT(wn) wo *= 2); } left = (h - (LAYOUT(wn) wo / 2)); /* left */ right = (h + (LAYOUT(wn) wo / 2)); /* right */ *anchor_x = x_center; break; } *width = right - left; }
* ,-----------------------------------------------------------------------------------------. * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | ß | ´ | BSPC | * |-----------------------------------------------------------------------------------------+ * | Tab | Q | W | E | R | T | Z | U | I | O | P | P | Ü | * | | * |-------------------------------------------------------------------------------------| + * | Layer_1 | A | S | D | F | G | H | J | K | L | Ö | Ä | # |Enter | * |-----------------------------------------------------------------------------------------+ * | Shift| < | Y | X | C | V | B | N | M | , | . | . | - | RShift | * |-----------------------------------------------------------------------------------------+ * | LCtrl | LGUI | LAlt | Space | RAlt | Layer_2 | RCtrl | * `-----------------------------------------------------------------------------------------' */ 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(1), 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_NUBS, 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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_NO, KC_RALT, KC_NO, MO(2), KC_RCTL), 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_NO, KC_DEL, KC_NO, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PGUP, KC_NO, KC_NO, KC_NO, BL_DEC, BL_TOGG, BL_INC, BL_STEP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PGDOWN, KC_LGUI, KC_LGUI, KC_NO, KC_NO, KC_NO, KC_RALT, KC_RGUI, KC_NO, KC_NO, KC_RCTL), LAYOUT( KC_GRV, KC_MPRV, KC_MPLY, KC_MNXT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_DEL, KC_NO, KC_NO, KC_UP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RIGHT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
#include QMK_KEYBOARD_H #include "action_layer.h" const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // 0: Base Layer 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_BSPC , KC_NO, \ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, \ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NO, KC_ENT, \ KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_NO, KC_RSFT ,KC_UP, KC_DEL, \ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RGUI, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT), // 1: Function Layer LAYOUT( RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO, \ KC_NO, KC_WH_U, KC_UP, KC_WH_D, KC_BSPC,KC_HOME,KC_CALC,KC_NO, KC_INS, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, KC_DEL, \ KC_NO, KC_LEFT, KC_DOWN, KC_RIGHT,KC_DEL, KC_END, KC_PGDN,KC_NO, KC_NO, KC_NO, KC_HOME, KC_PGUP, KC_NO, KC_ENT, \ KC_LSFT, KC_NO, KC_NO, KC_APP, BL_STEP,KC_NO, KC_NO, KC_VOLD,KC_VOLU,KC_MUTE, KC_END, KC_RSFT, KC_NO ,KC_PGUP, KC_INS, \ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RGUI, MO(1), KC_HOME, KC_PGDOWN,KC_END), }; // Macros const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { // MACRODOWN only works in this function switch(id) { case 0: if (record->event.pressed) { register_code(KC_RSFT); } else { unregister_code(KC_RSFT); }