|
@@ -0,0 +1,313 @@
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+#include "atreus.h"
|
|
|
+
|
|
|
+#define _COLEMAK 0
|
|
|
+#define _KAMELOC 1
|
|
|
+#define _IKAPILA 2
|
|
|
+#define _IKASHFT 3
|
|
|
+#define _FNCTION 5
|
|
|
+#define _NINEKEY 6
|
|
|
+#define _GAMEQWERTY 7
|
|
|
+#define _MLAYER 8
|
|
|
+#define _GRVTABL 9
|
|
|
+
|
|
|
+enum custom_keycodes {
|
|
|
+ COLEMAK = SAFE_RANGE,
|
|
|
+ KAMELOC,
|
|
|
+ IKAPILA,
|
|
|
+ IKASHFT,
|
|
|
+ FNCTION,
|
|
|
+ NINEKEY,
|
|
|
+ GAMEQWERTY,
|
|
|
+ MLAYER,
|
|
|
+ GRVTABL,
|
|
|
+};
|
|
|
+
|
|
|
+
|
|
|
+enum {
|
|
|
+VOM = 0,
|
|
|
+PRN,
|
|
|
+EGT,
|
|
|
+HRD,
|
|
|
+XRD,
|
|
|
+DSH,
|
|
|
+ESC,
|
|
|
+EQE,
|
|
|
+PGN,
|
|
|
+HND,
|
|
|
+COD,
|
|
|
+UND,
|
|
|
+MND,
|
|
|
+F11,
|
|
|
+F12,
|
|
|
+F13,
|
|
|
+F14,
|
|
|
+F15,
|
|
|
+F16,
|
|
|
+F17,
|
|
|
+F18,
|
|
|
+F19,
|
|
|
+F20,
|
|
|
+
|
|
|
+LINUX,
|
|
|
+WIN,
|
|
|
+WINSH,
|
|
|
+OSX,
|
|
|
+};
|
|
|
+
|
|
|
+#define _______ KC_TRNS
|
|
|
+#define XXXXXXX KC_NO
|
|
|
+
|
|
|
+
|
|
|
+#define XK_TAB LT(_KAMELOC, KC_TAB)
|
|
|
+#define XK_BSP LT(_KAMELOC, KC_BSPC)
|
|
|
+
|
|
|
+#define XK_SPC LT(_IKAPILA, KC_SPC)
|
|
|
+#define XK_ENT LT(_IKAPILA, KC_ENT)
|
|
|
+#define XK_PGDN LT(_IKASHFT, KC_PGDN)
|
|
|
+#define XK_APO LT(_IKASHFT, KC_QUOT)
|
|
|
+#define XK_PGUP LT(_IKASHFT, KC_PGUP)
|
|
|
+#define PIPBOY LT(_FNCTION, KC_BSLS)
|
|
|
+
|
|
|
+#define XK_DEL LT(_IKASHFT, KC_DEL)
|
|
|
+#define XK_ESC LT(_GRVTABL, KC_ESC)
|
|
|
+
|
|
|
+
|
|
|
+#define ALT_IT MT(MOD_RALT, KC_SCLN)
|
|
|
+#define SFT_IT MT(MOD_RSFT, KC_DOT)
|
|
|
+#define CTL_IT MT(MOD_RCTL, KC_SLSH)
|
|
|
+#define SFT_ENT MT(MOD_RSFT, KC_ENT)
|
|
|
+
|
|
|
+
|
|
|
+#define KYCTL OSM(MOD_LCTL)
|
|
|
+#define KYSFT OSM(MOD_LSFT)
|
|
|
+#define KYALT OSM(MOD_LALT)
|
|
|
+#define CAKY OSM(MOD_LCTL | MOD_LALT)
|
|
|
+
|
|
|
+
|
|
|
+#define CADEL LALT(LCTL(KC_DEL))
|
|
|
+#define CAINS LALT(LCTL(KC_INS))
|
|
|
+#define TGNKRO MAGIC_TOGGLE_NKRO
|
|
|
+
|
|
|
+#define NAVCH LCTL(KC_HOME)
|
|
|
+#define NAVCPD LCTL(KC_PGDN)
|
|
|
+#define NAVCPU LCTL(KC_PGUP)
|
|
|
+#define NAVCE LCTL(KC_END)
|
|
|
+#define NAVCU LCTL(KC_UP)
|
|
|
+#define NAVCD LCTL(KC_DOWN)
|
|
|
+#define NAVCL LCTL(KC_LEFT)
|
|
|
+#define NAVCR LCTL(KC_RGHT)
|
|
|
+#define NAVGU LGUI(KC_UP)
|
|
|
+#define NAVGD LGUI(KC_DOWN)
|
|
|
+#define NAVGL LGUI(KC_LEFT)
|
|
|
+#define NAVGR LGUI(KC_RGHT)
|
|
|
+
|
|
|
+#define KC_NDSH LCTL(KC_PMNS)
|
|
|
+#define KC_MDSH LALT(LCTL(KC_PMNS))
|
|
|
+
|
|
|
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|
|
+
|
|
|
+
|
|
|
+ TAP
|
|
|
+ ┌────┬────┬────┬────┬────┐ ┌────┬────┬────┬────┬────┐
|
|
|
+ │ Q │ W │ F │ P │ B │ │ J │ L │ U │ Y │ ; │
|
|
|
+ ├────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┤
|
|
|
+ │ A │ R │ S │ T │ G │ │ M │ N │ E │ I │ O │
|
|
|
+ ├────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┤
|
|
|
+ │ X │ C │ D │ V │ Z ├────┐ ┌────┤ K │ H │ , │ . │ / │
|
|
|
+ ├────┼────┼────┼────┼────┤ │ │ ├────┼────┼────┼────┼────┤
|
|
|
+ │SFTn│CTLn│ALTn│ROUS│SPC │BKSP│ │TAB │ENT │PGDN│ ' │ \ │ESC │
|
|
|
+ └────┴────┴────┴────┴────┴────┘ └────┴────┴────┴────┴────┴────┘
|
|
|
+ HOLD
|
|
|
+ ┌────┬────┬────┬────┬────┐ ┌────┬────┬────┬────┬────┐
|
|
|
+ │ │ │ │ │ │ │ │ │ │ │ALT │
|
|
|
+ ├────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┤
|
|
|
+ │ │ │ │ │ │ │ │ │ │ │ │
|
|
|
+ ├────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┤
|
|
|
+ │ │ │ │ │ ├────┐ ┌────┤ │ │ │ │CTL │
|
|
|
+ ├────┼────┼────┼────┼────┤ │ │ ├────┼────┼────┼────┼────┤
|
|
|
+ │SFT │CTL │ALT │ROUS│L123│L OH│ │L OH│L123│L!@#│ │L FN│LESC│
|
|
|
+ └────┴────┴────┴────┴────┴────┘ └────┴────┴────┴────┴────┴────┘
|
|
|
+ DOUBLETAP
|
|
|
+ ┌────┬────┬────┬────┬────┐ ┌────┬────┬────┬────┬────┐
|
|
|
+ │ │ │ │ │ │ │ │ │ │ │ │
|
|
|
+ ├────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┤
|
|
|
+ │ │ │ │ │ │ │ │ │ │ │ │
|
|
|
+ ├────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┤
|
|
|
+ │ │ │ │ │ ├────┐ ┌────┤ │ │ │ │ │
|
|
|
+ ├────┼────┼────┼────┼────┤ │ │ ├────┼────┼────┼────┼────┤
|
|
|
+ │OSML│OSML│OSML│NADA│ │ │ │ │ │ │ │ │ │
|
|
|
+ └────┴────┴────┴────┴────┴────┘ └────┴────┴────┴────┴────┴────┘
|
|
|
+*/
|
|
|
+
|
|
|
+
|
|
|
+[_COLEMAK] = KEYMAP( \
|
|
|
+ KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, ALT_IT, \
|
|
|
+ KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, \
|
|
|
+ KC_X, KC_C, KC_D, KC_V, KC_Z, KC_K, KC_H, KC_COMM, SFT_IT, CTL_IT, \
|
|
|
+ KYCTL, KYSFT, KYALT, TT(_MLAYER), XK_SPC, XK_TAB, XK_BSP, XK_ENT, XK_PGDN, XK_APO, PIPBOY, XK_ESC \
|
|
|
+),
|
|
|
+
|
|
|
+
|
|
|
+[_KAMELOC] = KEYMAP( \
|
|
|
+ KC_SCLN, KC_Y, KC_U, KC_L, KC_J, KC_B, KC_P, KC_F, KC_W, KC_Q, \
|
|
|
+ KC_O, KC_I, KC_E, KC_N, KC_M, KC_G, KC_T, KC_S, KC_R, KC_A, \
|
|
|
+ KC_SLSH, KC_DOT, KC_COMM, KC_H, KC_K, KC_Z, KC_V, KC_D, KC_C, KC_X, \
|
|
|
+ XK_ESC, PIPBOY, TT(_MLAYER), KC_PGDN, KC_ENT, _______, _______, XK_SPC, KC_PGUP, KYALT, KYCTL, KYSFT \
|
|
|
+),
|
|
|
+
|
|
|
+
|
|
|
+ ┌────┬────┬────┬────┬────┐ ┌────┬────┬────┬────┬────┐
|
|
|
+ │ 1 │ 2 │ 3 │ 4 │ 5 │ │ 6 │ 7 │ 8 │ 9 │ 0 │
|
|
|
+ ├────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┤
|
|
|
+ │ M │ V- │ V+ │NEXT│PLAY│ │ ← │ ↓ │ ↑ │ → │DASH│
|
|
|
+ ├────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┤
|
|
|
+ │ - │ = │ ` │GUI │UNDO├────┐ ┌────┤HOME│END │HOME│INS │ \ │
|
|
|
+ ├────┼────┼────┼────┼────┤ │ │ ├────┼────┼────┼────┼────┤
|
|
|
+ │ │ │ │ │ │ │ │ │ │GUI │ │ │ │
|
|
|
+ └────┴────┴────┴────┴────┴────┘ └────┴────┴────┴────┴────┴────┘
|
|
|
+*/
|
|
|
+
|
|
|
+[_IKAPILA] = KEYMAP( \
|
|
|
+ KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, \
|
|
|
+ KC_MUTE, KC_VOLD, KC_VOLU, TD(MND), KC_MPLY, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, TD(DSH), \
|
|
|
+ KC_MINS, KC_EQL, KC_GRV, KC_LGUI, LCTL(KC_Z), TD(HND), KC_HOME, TD(HND), KC_INS, KC_BSLS, \
|
|
|
+ _______, _______, _______, _______, _______, _______, _______, _______, KC_LGUI, _______, _______, KYSFT \
|
|
|
+),
|
|
|
+
|
|
|
+
|
|
|
+ ┌────┬────┬────┬────┬────┐ ┌────┬────┬────┬────┬────┐
|
|
|
+ │ ! │ @ │ # │ $ │ % │ │ ^ │ & │ * │ ( │ ) │
|
|
|
+ ├────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┤
|
|
|
+ │PSCR│ ← │ ↓ │ ↑ │ → │ │NEXT│PGUP│ V+ │ V- │DASH│
|
|
|
+ ├────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┤
|
|
|
+ │ _ │ + │ ~ │HOME│END ├────┐ ┌────┤ {} │ () │ <> │ [ │ ] │
|
|
|
+ ├────┼────┼────┼────┼────┤ │ │ ├────┼────┼────┼────┼────┤
|
|
|
+ │ │ │ │ │ │DEL │ │BKSP│ │ │ │ │ │
|
|
|
+ └────┴────┴────┴────┴────┴────┘ └────┴────┴────┴────┴────┴────┘
|
|
|
+*/
|
|
|
+
|
|
|
+[_IKASHFT] = KEYMAP( \
|
|
|
+ KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, \
|
|
|
+ KC_PSCR, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, TD(MND), KC_PGUP, KC_VOLU, TD(VOM), KC_MDSH, \
|
|
|
+ KC_UNDS, KC_PLUS, KC_TILD, KC_HOME, KC_END, M(1), M(0), M(5), KC_LBRC, KC_RBRC, \
|
|
|
+ _______, _______, _______, _______, _______, KC_BSPC, KC_DEL, _______, _______, _______, _______, _______ \
|
|
|
+),
|
|
|
+
|
|
|
+
|
|
|
+ ┌────┬────┬────┬────┬────┐ ┌────┬────┬────┬────┬────┐
|
|
|
+ │ F1 │ F2 │ F3 │ F4 │ F5 │ │ F6 │ F7 │ F8 │ F9 │ F10│
|
|
|
+ ├────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┤
|
|
|
+ │ F21│ F22│ F23│ F24│PAUS│ │ │SCLK│BOOT│ │NKRO│
|
|
|
+ ├────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┤
|
|
|
+ │ │ │ │ │ ├────┐ ┌────┤ │ │ │ │CAPS│
|
|
|
+ ├────┼────┼────┼────┼────┤ │ │ ├────┼────┼────┼────┼────┤
|
|
|
+ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
|
|
+ └────┴────┴────┴────┴────┴────┘ └────┴────┴────┴────┴────┴────┘
|
|
|
+*/
|
|
|
+
|
|
|
+[_FNCTION] = KEYMAP( \
|
|
|
+ TD(F11), TD(F12), TD(F13), TD(F14), TD(F15), TD(F16), TD(F17), TD(F18), TD(F19), TD(F20), \
|
|
|
+ KC_F21, KC_F22, KC_F23, KC_F24, XXXXXXX, XXXXXXX, KC_SLCK, XXXXXXX, XXXXXXX, TGNKRO, \
|
|
|
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_CAPS, \
|
|
|
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
|
|
|
+),
|
|
|
+
|
|
|
+[_GAMEQWERTY] = KEYMAP( \
|
|
|
+ KC_P, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, \
|
|
|
+ KC_SCLN, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, \
|
|
|
+ KC_SLSH, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, TD(COD), \
|
|
|
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
|
|
|
+),
|
|
|
+
|
|
|
+
|
|
|
+ ┌────┬────┬────┬────┬────┐ ┌────┬────┬────┬────┬────┐
|
|
|
+ │^HOM│^PGD│^UP │^PGU│^PGU│ │ │MW_L│ MU │MW_R│ AC2│
|
|
|
+ ├────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┤
|
|
|
+ │^END│^LFT│^DWN│^RGT│^PGD│ │ │ ML │ MD │ MR │ AC1│
|
|
|
+ ├────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┤
|
|
|
+ │ M5 │ M2 │ M4 │ M3 │ M1 ├────┐ ┌────┤ │MW_D│MW_U│ │ AC0│
|
|
|
+ ├────┼────┼────┼────┼────┤ │ │ ├────┼────┼────┼────┼────┤
|
|
|
+ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
|
|
+ └────┴────┴────┴────┴────┴────┘ └────┴────┴────┴────┴────┴────┘
|
|
|
+*/
|
|
|
+
|
|
|
+[_MLAYER] = KEYMAP( \
|
|
|
+ LALT(KC_ESC), KC_9, KC_8, KC_7, KC_6, M(1), M(0), KC_MS_U, M(0), M(2), \
|
|
|
+ KC_0, KC_2, KC_3, KC_4, KC_5, M(5), KC_MS_L, KC_MS_D, KC_MS_R, KC_ACL2, \
|
|
|
+ KC_1, KC_0, XXXXXXX, XXXXXXX, KC_BTN5, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R, M(5), \
|
|
|
+ _______, _______, _______, _______, KC_BTN1, KC_BTN2, KC_BTN2, KC_BTN1, KC_BTN2, _______, KC_ACL0, _______ \
|
|
|
+),
|
|
|
+
|
|
|
+
|
|
|
+[_GRVTABL] = KEYMAP( \
|
|
|
+ LALT(KC_PSCR), M(4), KC_PWR, KC_POWER, RESET, RESET, KC_R, KC_E, KC_I, LALT(KC_PSCR), \
|
|
|
+ TG(_NINEKEY), TG(_FNCTION), TG(_MLAYER), TG(_IKASHFT), TG(_IKAPILA), TG(_IKAPILA), KC_S, KC_U, KC_B, TG(_NINEKEY), \
|
|
|
+ M(3), TG(_GAMEQWERTY), XXXXXXX, XXXXXXX, XXXXXXX, KC_MYCM, KC_CALC, XXXXXXX, TG(_GAMEQWERTY), M(3), \
|
|
|
+ TT(_GRVTABL), TG(_FNCTION), TG(_MLAYER), TG(_IKASHFT), TG(_IKAPILA), _______, _______, TG(_IKAPILA), TG(_IKASHFT), TG(_MLAYER), TG(_MLAYER), TG(_NINEKEY) \
|
|
|
+)};
|
|
|
+
|
|
|
+qk_tap_dance_action_t tap_dance_actions[] = {
|
|
|
+ [VOM] = ACTION_TAP_DANCE_DOUBLE(KC_VOLD, KC_MUTE),
|
|
|
+ [PRN] = ACTION_TAP_DANCE_DOUBLE(KC_LPRN, KC_RPRN),
|
|
|
+ [EGT] = ACTION_TAP_DANCE_DOUBLE(KC_LCBR, KC_RCBR),
|
|
|
+ [HRD] = ACTION_TAP_DANCE_DOUBLE(KC_LBRC, KC_RBRC),
|
|
|
+ [DSH] = ACTION_TAP_DANCE_DOUBLE(KC_NDSH, KC_MDSH),
|
|
|
+ [ESC] = ACTION_TAP_DANCE_DOUBLE(KC_ESC, LALT(KC_F4)),
|
|
|
+ [EQE] = ACTION_TAP_DANCE_DOUBLE(KC_EQL, KC_ENT),
|
|
|
+ [UND] = ACTION_TAP_DANCE_DOUBLE(KC_Z, LCTL(KC_Z)),
|
|
|
+ [PGN] = ACTION_TAP_DANCE_DOUBLE(KC_PGDN, KC_PGUP),
|
|
|
+ [HND] = ACTION_TAP_DANCE_DOUBLE(KC_HOME, KC_END),
|
|
|
+ [COD] = ACTION_TAP_DANCE_DOUBLE(KC_COMM, KC_DOT),
|
|
|
+ [MND] = ACTION_TAP_DANCE_DOUBLE(KC_MNXT, KC_MPRV),
|
|
|
+ [F11] = ACTION_TAP_DANCE_DOUBLE(KC_F1, KC_F11),
|
|
|
+ [F12] = ACTION_TAP_DANCE_DOUBLE(KC_F2, KC_F12),
|
|
|
+ [F13] = ACTION_TAP_DANCE_DOUBLE(KC_F3, KC_F13),
|
|
|
+ [F14] = ACTION_TAP_DANCE_DOUBLE(KC_F4, KC_F14),
|
|
|
+ [F15] = ACTION_TAP_DANCE_DOUBLE(KC_F5, KC_F15),
|
|
|
+ [F16] = ACTION_TAP_DANCE_DOUBLE(KC_F6, KC_F16),
|
|
|
+ [F17] = ACTION_TAP_DANCE_DOUBLE(KC_F7, KC_F17),
|
|
|
+ [F18] = ACTION_TAP_DANCE_DOUBLE(KC_F8, KC_F18),
|
|
|
+ [F19] = ACTION_TAP_DANCE_DOUBLE(KC_F9, KC_F19),
|
|
|
+ [F20] = ACTION_TAP_DANCE_DOUBLE(KC_F10, KC_F20),
|
|
|
+};
|
|
|
+
|
|
|
+void matrix_init_user(){
|
|
|
+ set_unicode_input_mode(UC_LNX);
|
|
|
+}
|
|
|
+
|
|
|
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
|
|
|
+ if (record->event.pressed) {
|
|
|
+ switch(id) {
|
|
|
+ case 0:
|
|
|
+ return MACRO( D(LSFT), T(9), U(LSFT), D(LSFT), T(0), U(LSFT), T(LEFT), END );
|
|
|
+ case 1:
|
|
|
+ return MACRO( D(LSFT), T(LBRC), U(LSFT), D(LSFT), T(RBRC), U(LSFT), T(LEFT), END );
|
|
|
+ case 2:
|
|
|
+ return MACRO( T(LBRC), T(RBRC), T(LEFT), END);
|
|
|
+ case 5:
|
|
|
+ return MACRO( D(LSFT), T(COMMA), U(LSFT), D(LSFT), T(DOT), U(LSFT), END );
|
|
|
+ case 3:
|
|
|
+ clear_keyboard();
|
|
|
+ return false;
|
|
|
+ break;
|
|
|
+ case 4:
|
|
|
+ return MACRO( D(LSFT), T(SCOLON), U(LSFT), D(LSFT), T(9), U(LSFT), D(LSFT), T(0), U(LSFT), D(LSFT), T(LBRACKET), U(LSFT), D(LSFT), T(9), U(LSFT), D(LSFT), T(SCOLON), U(LSFT), D(LSFT), T(0), U(LSFT), D(LSFT), T(BSLASH), U(LSFT), D(LSFT), T(SCOLON), U(LSFT), D(LSFT), T(7), U(LSFT), D(LSFT), T(RBRACKET), U(LSFT), T(SCOLON), D(LSFT), T(SCOLON), U(LSFT), END );
|
|
|
+ case WINSH:
|
|
|
+ set_unicode_input_mode(UC_WIN);
|
|
|
+ return false;
|
|
|
+ break;
|
|
|
+ case WIN:
|
|
|
+ set_unicode_input_mode(UC_WINC);
|
|
|
+ return false;
|
|
|
+ break;
|
|
|
+ case OSX:
|
|
|
+ set_unicode_input_mode(UC_OSX);
|
|
|
+ return false;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return MACRO_NONE;
|
|
|
+};
|