Advertisement
Guest User

let's split

a guest
Jul 27th, 2017
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 25.86 KB | None | 0 0
  1. #include "lets_split.h"
  2. #include "action_layer.h"
  3. #include "eeconfig.h"
  4.  
  5. extern keymap_config_t keymap_config;
  6.  
  7. #define _COLEMAK  0
  8. #define _KAMELOC  1
  9. #define _IKAPILA  2
  10. #define _IKASHFT  3
  11. #define _ARROWKY  4
  12. #define _FNCTION  5
  13. #define _NINEKEY  6
  14. #define _NAVIGAT  7
  15. #define _QWERTY   8
  16. #define _GRVTABL  15
  17.  
  18. enum custom_keycodes {
  19.   COLEMAK = SAFE_RANGE,
  20.   KAMELOC,
  21.   IKAPILA,
  22.   IKASHFT,
  23.   ARROWKY,
  24.   FNCTION,
  25.   NINEKEY,
  26.   NAVIGAT,
  27.   QWERTY,
  28.   GRVTABL,
  29. };
  30.  
  31. //TD Declarations
  32. enum {
  33.   VOM = 0,
  34.   PRN,
  35.   EGT,
  36.   HRD,
  37.   DSH,
  38.   QUT,
  39.   ESC,
  40.   EQE,
  41.   PGN,
  42.   UND,
  43. };
  44.  
  45. enum macro_keycodes {
  46.   KC_ALT_TAB,
  47.   KC_GUI_TAB,
  48.   KC_CTL_TAB,
  49. };
  50.  
  51. #define ALT_TAB     M(KC_ALT_TAB)               // Macro for Alt-Tab
  52. #define GUI_TAB     M(KC_GUI_TAB)               // Macro for Cmd-Tab
  53. #define CTL_TAB     M(KC_CTL_TAB)               // Macro for Ctl-Tab
  54.  
  55. #define _______     KC_TRNS
  56. #define XXXXXXX     KC_NO
  57.  
  58. // action-TAP for key/mod behavior LT(layer, kc)
  59. #define XK_TAB      LT(_FNCTION, KC_TAB)
  60. #define XK_BSP      LT(_KAMELOC, M_BSDEL)
  61.  
  62. #define XK_HARD     LT(_FNCTION, M(B2))
  63. #define XK_SPC      LT(_IKAPILA, KC_SPC)
  64. #define XK_ENT      LT(_IKAPILA, KC_ENT)
  65. #define XK_PGDN     LT(_NAVIGAT, TD(PGN))
  66. #define XK_PREN     LT(_IKASHFT, M(B1))
  67. #define PIPBOY      LT(_FNCTION, KC_BSLS)
  68.  
  69. #define XK_DEL      LT(_KAMELOC, KC_DEL)
  70. #define XK_GRV      LT(_GRVTABL, KC_GRV)
  71.  
  72. // mod-TAP for mod/key behavior MT(modkey, kc)
  73. #define ESC_IT      MT(MOD_MEH, TD(ESC))
  74.  
  75. #define ALT_IT      MT(MOD_LALT, KC_SCLN)
  76. #define CTL_IT      MT(MOD_LCTL, KC_SLSH)
  77. #define XK_EGPT     MT((MOD_LCTL | MOD_LALT | MOD_LGUI), M(B3))
  78.  
  79. #define SFT_IT      MT(MOD_RSFT, TG(_NAVIGAT))
  80.  
  81. //sticky modifiers
  82. #define KYCTL       OSM(MOD_LCTL)
  83. #define KYGUI       OSM(MOD_LGUI)
  84. #define KYSFT       OSM(MOD_LSFT)
  85. #define KYALT       OSM(MOD_LALT)
  86. #define CAKY        OSM(MOD_LCA)
  87.  
  88. //shortcuts
  89. #define CADEL       LALT(LCTL(KC_DEL))
  90. #define CAINS       LALT(LCTL(KC_INS))
  91. #define TGNKRO      MAGIC_TOGGLE_NKRO
  92.  
  93. #define NAVCH       KC_CTRL(KC_HOME)
  94. #define NAVCPD      KC_CTRL(KC_PGDN)
  95. #define NAVCPU      KC_CTRL(KC_PGUP)
  96. #define NAVCE       KC_CTRL(KC_END)
  97. #define NAVCU       KC_CTRL(KC_UP)
  98. #define NAVCD       KC_CTRL(KC_DOWN)
  99. #define NAVCL       KC_CTRL(KC_LEFT)
  100. #define NAVCR       KC_CTRL(KC_RGHT)
  101. #define NAVGU       LGUI(KC_UP)
  102. #define NAVGD       LGUI(KC_DOWN)
  103. #define NAVGL       LGUI(KC_LEFT)
  104. #define NAVGR       LGUI(KC_RGHT)
  105.  
  106. //!not sure if this old TMK code will work
  107. #define BOOTME      ACTION_FUNCTION(BOOTLOADER)
  108. #define LCLEAR      ACTION_LAYER_SET_CLEAR(0)
  109.  
  110. const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  111.  
  112. /*
  113.   TAP
  114.   ┌────┬────┬────┬────┬────┬────┐    ┌────┬────┬────┬────┬────┬────┐
  115.   │TAB │ Q  │ W  │ F  │ P  │ B  │    │ J  │ L  │ U  │ Y  │ ;  │DEL │
  116.   ├────┼────┼────┼────┼────┼────┤    ├────┼────┼────┼────┼────┼────┤
  117.   │BKSP│ A  │ R  │ S  │ T  │ G  │    │ M  │ N  │ E  │ I  │ O  │ '  │
  118.   ├────┼────┼────┼────┼────┼────┤    ├────┼────┼────┼────┼────┼────┤
  119.   │OSFT│ X  │ C  │ D  │ V  │ Z  │    │ K  │ H  │ ,  │ .  │ /  │LNAV│
  120.   ├────┼────┼────┼────┼────┼────┤    ├────┼────┼────┼────┼────┼────┤
  121.   │OCTL│OALT│L9KY│ [] │OGUI│SPC │    │ENT │PGDN│ () │ {} │ \  │ `  │
  122.   └────┴────┴────┴────┴────┴────┘    └────┴────┴────┴────┴────┴────┘
  123.    HOLD
  124.   ┌────┬────┬────┬────┬────┬────┐    ┌────┬────┬────┬────┬────┬────┐
  125.   │L FN│    │    │    │    │    │    │    │    │    │    │ALT │L!@#│
  126.   ├────┼────┼────┼────┼────┼────┤    ├────┼────┼────┼────┼────┼────┤
  127.   │L OH│    │    │    │    │    │    │    │    │    │    │    │L OH│
  128.   ├────┼────┼────┼────┼────┼────┤    ├────┼────┼────┼────┼────┼────┤
  129.   │SFT │    │    │    │    │    │    │    │    │    │    │CTL │SFT │
  130.   ├────┼────┼────┼────┼────┼────┤    ├────┼────┼────┼────┼────┼────┤
  131.   │CTL │ALT │L9KY│L!@#│GUI │L123│    │L123│LNAV│L!@#│MEH │L FN│LGRV│
  132.   └────┴────┴────┴────┴────┴────┘    └────┴────┴────┴────┴────┴────┘
  133.    DOUBLETAP
  134.   ┌────┬────┬────┬────┬────┬────┐    ┌────┬────┬────┬────┬────┬────┐
  135.   │    │!F4 │    │    │    │    │    │    │    │    │    │    │    │
  136.   ├────┼────┼────┼────┼────┼────┤    ├────┼────┼────┼────┼────┼────┤
  137.   │    │    │    │    │    │    │    │    │    │    │    │    │    │
  138.   ├────┼────┼────┼────┼────┼────┤    ├────┼────┼────┼────┼────┼────┤
  139.   │OSML│    │    │    │    │UNDO│    │    │    │    │    │    │    │
  140.   ├────┼────┼────┼────┼────┼────┤    ├────┼────┼────┼────┼────┼────┤
  141.   │OSML│OSML│ESC │    │OSML│    │    │    │PGUP│    │    │    │    │
  142.   └────┴────┴────┴────┴────┴────┘    └────┴────┴────┴────┴────┴────┘
  143.   Switch type
  144.   ┌────┬────┬────┬────┬────┬────┐    ┌────┬────┬────┬────┬────┬────┐
  145.   │Br  │Z   │Z   │Z   │Z   │Z   │    │Z   │Z   │Z   │Z   │Br  │G   │
  146.   ├────┼────┼────┼────┼────┼────┤    ├────┼────┼────┼────┼────┼────┤
  147.   │G   │Z   │Z   │Z   │Z   │Z   │    │Z   │Z   │Z   │Z   │Z   │Z   │
  148.   ├────┼────┼────┼────┼────┼────┤    ├────┼────┼────┼────┼────┼────┤
  149.   │Y   │Z   │Z   │Z   │Z   │Z   │    │Z   │Z   │Z   │Z   │B   │Y   │
  150.   ├────┼────┼────┼────┼────┼────┤    ├────┼────┼────┼────┼────┼────┤
  151.   │Y   │Y   │C   │Z   │BLK │BLK │    │BLK │BLK │Z   │Z   │B   │G   │
  152.   └────┴────┴────┴────┴────┴────┘    └────┴────┴────┴────┴────┴────┘
  153. */
  154.  
  155. // Colemak PB&J (Mod-DH)
  156. [_COLEMAK] = KEYMAP( \
  157.    XK_TAB, TD(QUT),    KC_W,    KC_F,    KC_P,    KC_B,            KC_J,    KC_L,    KC_U,    KC_Y, ALT_IT,  XK_GRV, \
  158.    XK_BSP,    KC_A,    KC_R,    KC_S,    KC_T,    KC_G,            KC_M,    KC_N,    KC_E,    KC_I,    KC_O,  XK_DEL, \
  159.     KYSFT,    KC_X,    KC_C,    KC_D,    KC_V, TD(UND),            KC_K,    KC_H, KC_COMM,  KC_DOT,  CTL_IT,  SFT_IT, \
  160.     KYCTL,   KYALT,  ESC_IT,  XK_HARD,  KYGUI,  XK_SPC,          XK_ENT, XK_PGDN, XK_PREN, XK_EGPT,  PIPBOY,  XK_GRV \
  161. ),
  162.  
  163. // useful for one-handed typing
  164. [_KAMELOC] = KEYMAP( \
  165.   _______, KC_SCLN,    KC_Y,    KC_U,    KC_L,    KC_J,            KC_B,    KC_P,    KC_F,    KC_W, TD(QUT), _______, \
  166.   _______,    KC_O,    KC_I,    KC_E,    KC_N,    KC_M,            KC_G,    KC_T,    KC_S,    KC_R,    KC_A, _______, \
  167.   _______, KC_SLSH,  KC_DOT, KC_COMM,    KC_H,    KC_K,         TD(UND),    KC_V,    KC_D,    KC_C,    KC_X, _______, \
  168.   _______, _______, _______, _______, _______, _______,         _______, _______, _______, _______, _______, _______ \
  169. ),
  170.  
  171. /*
  172.   ┌────┬────┬────┬────┬────┬────┐    ┌────┬────┬────┬────┬────┬────┐
  173.   │ ~  │ 1  │ 2  │ 3  │ 4  │ 5  │    │ 6  │ 7  │ 8  │ 9  │ 0  │    │
  174.   ├────┼────┼────┼────┼────┼────┤    ├────┼────┼────┼────┼────┼────┤
  175.   │    │DASH│MV- │ V+ │NEXT│PLAY│    │ ←  │ ↓  │ ↑  │ →  │INS │    │
  176.   ├────┼────┼────┼────┼────┼────┤    ├────┼────┼────┼────┼────┼────┤
  177.   │    │ -  │ =  │ [  │ ]  │ \  │    │HOME│PGDN│PGUP│END │ \  │    │
  178.   ├────┼────┼────┼────┼────┼────┤    ├────┼────┼────┼────┼────┼────┤
  179.   │    │    │    │    │    │    │    │    │    │    │    │    │    │
  180.   └────┴────┴────┴────┴────┴────┘    └────┴────┴────┴────┴────┴────┘
  181. */
  182.  
  183. [_IKAPILA] = KEYMAP( \
  184.   KC_TILD,    KC_1,    KC_2,    KC_3,    KC_4,    KC_5,            KC_6,    KC_7,    KC_8,    KC_9,    KC_0, _______, \
  185.   _______, TD(DSH), TD(VOM), KC_VOLU, KC_MNXT, KC_MPLY,         KC_LEFT, KC_DOWN,   KC_UP, KC_RGHT,  KC_INS, _______, \
  186.   _______, KC_MINS,  KC_EQL, TD(HRD), KC_RBRC, KC_BSLS,         KC_HOME, KC_PGDN, KC_PGUP,  KC_END, KC_BSLS, _______, \
  187.   _______, _______, _______, _______, _______, _______,         _______, _______, _______, _______, _______, _______ \
  188. ),
  189.  
  190. /*
  191.   ┌────┬────┬────┬────┬────┬────┐    ┌────┬────┬────┬────┬────┬────┐
  192.   │    │ !  │ @  │ #  │ $  │ %  │    │ ^  │ &  │ *  │ (  │ )  │    │
  193.   ├────┼────┼────┼────┼────┼────┤    ├────┼────┼────┼────┼────┼────┤
  194.   │    │DASH│MV- │ V+ │NEXT│PLAY│    │HOME│PGDN│PGUP│END │PSCR│    │
  195.   ├────┼────┼────┼────┼────┼────┤    ├────┼────┼────┼────┼────┼────┤
  196.   │    │ _  │ +  │ {  │ }  │ |  │    │ ←  │ ↓  │ ↑  │ →  │    │    │
  197.   ├────┼────┼────┼────┼────┼────┤    ├────┼────┼────┼────┼────┼────┤
  198.   │    │    │    │    │    │    │    │    │    │    │    │    │    │
  199.   └────┴────┴────┴────┴────┴────┘    └────┴────┴────┴────┴────┴────┘
  200. */
  201.  
  202. [_IKASHFT] =  KEYMAP( \
  203.   _______, KC_EXLM,   KC_AT, KC_HASH,  KC_DLR, KC_PERC,         KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, \
  204.    KC_DEL, TD(DSH), TD(VOM), KC_VOLU, KC_MNXT, KC_MPLY,         KC_HOME, KC_PGDN, KC_PGUP,  KC_END, KC_PSCR, _______, \
  205.   _______, KC_UNDS, KC_PLUS, TD(EGT), KC_RCBR, KC_PIPE,         KC_LEFT, KC_DOWN,   KC_UP, KC_RGHT, KC_PAUS, _______, \
  206.   _______, _______, _______, _______, _______, _______,         _______, _______, _______, _______, _______, _______ \
  207. ),
  208.  
  209. /*
  210.   ┌────┬────┬────┬────┬────┬────┐    ┌────┬────┬────┬────┬────┬────┐
  211.   │    │ →  │ ↑  │ ←  │ ↓  │ →  │    │ →  │ ↓  │ ←  │ ↑  │ ↑  │    │ just in case someone hacks my IP with a 10MeG pipe, you know?
  212.   ├────┼────┼────┼────┼────┼────┤    ├────┼────┼────┼────┼────┼────┤
  213.   │    │ ←  │ ↓  │ →  │ ↑  │ ←  │    │ ↑  │ ←  │ ↓  │ →  │ ←  │    │ hacker_evasion layer
  214.   ├────┼────┼────┼────┼────┼────┤    ├────┼────┼────┼────┼────┼────┤ >>init network SEQUENCE
  215.   │    │ ↑  │ ←  │ ↓  │ →  │ ↑  │    │ ↓  │ ←  │ ↑  │ →  │ ←  │    │   sleep 11; echo "DONE\n"
  216.   ├────┼────┼────┼────┼────┼────┤    ├────┼────┼────┼────┼────┼────┤   throttle INPUT 11001001 OUTPUT 010011001 ? FULL )); \
  217.   │    │    │    │ →  │ ←  │ ↓  │    │ →  │ ↑  │ ←  │ ↓  │ ↑  │    │ <<chkconfig cargoCode ==== "'1'"
  218.   └────┴────┴────┴────┴────┴────┘    └────┴────┴────┴────┴────┴────┘   up down left right kc_b kc_a GUI
  219. */
  220.  
  221. [_ARROWKY] =  KEYMAP( \
  222.   _______, KC_RGHT,   KC_UP, KC_LEFT, KC_DOWN, KC_RGHT,           KC_UP, KC_LEFT, KC_DOWN, KC_RGHT,   KC_UP, _______, \
  223.   _______, KC_LEFT, KC_DOWN, KC_RGHT,   KC_UP, KC_LEFT,         KC_DOWN, KC_RGHT,   KC_UP, KC_LEFT, KC_DOWN, _______, \
  224.   _______,   KC_UP, KC_LEFT, KC_DOWN, KC_RGHT,   KC_UP,         KC_LEFT, KC_DOWN, KC_RGHT,   KC_UP, KC_LEFT, _______, \
  225.   _______, _______, KC_RGHT,   KC_UP, KC_LEFT, KC_DOWN,         KC_RGHT,   KC_UP, KC_LEFT, KC_DOWN, KC_RGHT, _______ \
  226. ),
  227.  
  228. /*
  229.   ┌────┬────┬────┬────┬────┬────┐    ┌────┬────┬────┬────┬────┬────┐
  230.   │    │ F1 │ F2 │ F3 │ F4 │ F5 │    │ F6 │ F7 │ F8 │ F9 │ F10│    │
  231.   ├────┼────┼────┼────┼────┼────┤    ├────┼────┼────┼────┼────┼────┤
  232.   │    │ F11│ F12│ F13│ F14│ F15│    │ F16│ F17│ F18│ F19│ F20│    │
  233.   ├────┼────┼────┼────┼────┼────┤    ├────┼────┼────┼────┼────┼────┤
  234.   │    │ F21│ F22│ F23│ F24│PAUS│    │    │    │BOOT│RSET│NKRO│CAPS│
  235.   ├────┼────┼────┼────┼────┼────┤    ├────┼────┼────┼────┼────┼────┤
  236.   │    │    │    │    │    │    │    │    │    │    │    │    │    │
  237.   └────┴────┴────┴────┴────┴────┘    └────┴────┴────┴────┴────┴────┘
  238. */
  239.  
  240. [_FNCTION] =  KEYMAP( \
  241.   _______,   KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,           KC_F6,   KC_F7,   KC_F8,   KC_F9,  KC_F10, _______, \
  242.   _______,  KC_F11,  KC_F12,  KC_F13,  KC_F14,  KC_F15,          KC_F16,  KC_F17,  KC_F18,  KC_F19,  KC_F20, _______, \
  243.   _______,  KC_F21,  KC_F22,  KC_F23,  KC_F24, _______,         _______, _______,  BOOTME,   RESET,  TGNKRO, KC_CAPS, \
  244.   _______, _______, _______, _______, _______, _______,         _______, _______, _______, _______, _______, _______ \
  245. ),
  246.  
  247. /*
  248.   ┌────┬────┬────┬────┬────┬────┐    ┌────┬────┬────┬────┬────┬────┐
  249.   │    │ →  │ F7 │ F8 │ F9 │ ↑  │    │NLCK│ P7 │ P8 │ P9 │ P- │BDEL│
  250.   ├────┼────┼────┼────┼────┼────┤    ├────┼────┼────┼────┼────┼────┤
  251.   │    │ ←  │ F4 │ F5 │ F6 │ ↓  │    │^INS│ P4 │ P5 │ P6 │ P+ │ () │
  252.   ├────┼────┼────┼────┼────┼────┤    ├────┼────┼────┼────┼────┼────┤
  253.   │    │CALT│ F1 │ F2 │ F3 │    │    │CALT│ P1 │ P2 │ P3 │ P* │ =  │
  254.   ├────┼────┼────┼────┼────┼────┤    ├────┼────┼────┼────┼────┼────┤
  255.   │    │    │ F0?│    │    │    │    │TGL │ P0 │ 0  │ P. │ P/ │    │
  256.   └────┴────┴────┴────┴────┴────┘    └────┴────┴────┴────┴────┴────┘
  257. */
  258.  
  259. [_NINEKEY] =  KEYMAP( \
  260.   _______, KC_RGHT,   KC_F7,   KC_F8,   KC_F9,   KC_UP,         KC_NLCK,   KC_P7,   KC_P8,   KC_P9, KC_PMNS, M_BSDEL, \
  261.   _______, KC_LEFT,   KC_F4,   KC_F5,   KC_F6, KC_DOWN,           CAINS,   KC_P4,   KC_P5,   KC_P6, KC_PPLS, XK_PREN, \
  262.   _______,    CAKY,   KC_F1,   KC_F2,   KC_F3, _______,            CAKY,   KC_P1,   KC_P2,   KC_P3, KC_PAST, TD(EQE), \
  263.   _______, _______, _______,  KC_F11, _______, _______,    TG(_NINEKEY),   KC_P0,    KC_0, KC_PDOT, KC_PSLS, _______ \
  264. ),
  265.  
  266. /*
  267.   ┌────┬────┬────┬────┬────┬────┐    ┌────┬────┬────┬────┬────┬────┐
  268.   │ESC │^PGD│^UP │^PGU│^PGU│^HOM│    │    │MW_L│ MU │MW_R│ AC2│    │
  269.   ├────┼────┼────┼────┼────┼────┤    ├────┼────┼────┼────┼────┼────┤
  270.   │    │^LFT│^DWN│^RGT│^PGD│^END│    │    │ ML │ MD │ MR │ AC1│    │
  271.   ├────┼────┼────┼────┼────┼────┤    ├────┼────┼────┼────┼────┼────┤
  272.   │    │ M2 │ M4 │ M3 │ M1 │ M5 │    │    │MW_D│MW_U│SLCK│ AC0│    │
  273.   ├────┼────┼────┼────┼────┼────┤    ├────┼────┼────┼────┼────┼────┤
  274.   │    │    │    │    │    │    │    │    │    │    │    │    │    │
  275.   └────┴────┴────┴────┴────┴────┘    └────┴────┴────┴────┴────┴────┘
  276. */
  277.  
  278. [_NAVIGAT] =  KEYMAP( \
  279.    KC_ESC,  NAVCPD,   NAVCU,  NAVCPU,  NAVCPU,   NAVCH,         XXXXXXX, KC_WH_L, KC_MS_U, KC_WH_R, KC_ACL2, _______, \
  280.   _______,   NAVCL,   NAVCD,   NAVCR,  NAVCPD,   NAVCE,         XXXXXXX, KC_MS_L, KC_MS_D, KC_MS_R, KC_ACL1, _______, \
  281.   _______, KC_BTN2, KC_BTN4, KC_BTN3, KC_BTN1, KC_BTN5,         XXXXXXX, KC_WH_D, KC_WH_U, KC_SLCK, KC_ACL0, _______, \
  282.   _______, _______, _______, _______, _______, _______,         _______, _______, _______, _______, _______, _______ \
  283. ),
  284.  
  285. //ew. jk
  286. [_QWERTY] = KEYMAP( \
  287.   _______,    KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,            KC_Y,    KC_U,    KC_I,    KC_O,    KC_P, KC_BSPC, \
  288.   _______,    KC_A,    KC_S,    KC_D,    KC_F,    KC_G,            KC_H,    KC_J,    KC_K,    KC_L, KC_SCLN, KC_QUOT, \
  289.   _______,    KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,            KC_N,    KC_M, KC_COMM,  KC_DOT, KC_SLSH, SFT_ENT, \
  290.   _______, _______, _______, _______, _______, _______,         _______, _______, _______, _______, _______, _______ \
  291. )
  292.  
  293.  
  294. //add greek symbols
  295. //set_unicode_input_mode(UC_WINC); // Windows (with WinCompose, see wiki)
  296.  
  297. //UC(0x250C),UC(0x252C),UC(0x2510),UC(0x2500),UC(0x2502)
  298. //UC(0x251C),UC(0x253C),UC(0x2524),
  299. //UC(0x2514),UC(0x2534),UC(0x2518),
  300.  
  301. [_GRVTABL] =  KEYMAP( \
  302.     TG(5), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,         XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,   TG(3), \
  303.     TG(1), XXXXXXX, TD(VOM), KC_VOLU, KC_MNXT, KC_MPLY,         XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,   TG(1), \
  304.   XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,           TG(0), XXXXXXX,   TG(4), XXXXXXX,   TG(8),  LCLEAR, \
  305.   XXXXXXX, XXXXXXX,   TG(6),   TG(3), XXXXXXX,   TG(2),         TG(2),   TG(7),   TG(3), OSM(MOD_MEH), TG(5), _______ \
  306. );
  307.  
  308. qk_tap_dance_action_t tap_dance_actions[] = {
  309.  [VOM] = ACTION_TAP_DANCE_DOUBLE(KC_VOLD, KC_MUTE),
  310.  [PRN] = ACTION_TAP_DANCE_DOUBLE(KC_LPRN, KC_RPRN),
  311.  [EGT] = ACTION_TAP_DANCE_DOUBLE(KC_LCBR, KC_RCBR),
  312.  [HRD] = ACTION_TAP_DANCE_DOUBLE(KC_LBRC, KC_RBRC),
  313.  [DSH] = ACTION_TAP_DANCE_DOUBLE(KC_NDSH, KC_MDSH),
  314.  [QUT] = ACTION_TAP_DANCE_DOUBLE(KC_Q,    KC_LALT(KC_F4)),
  315.  [ESC] = ACTION_TAP_DANCE_DOUBLE(TT(_NINEKEY), KC_ESC),
  316.  [EQE] = ACTION_TAP_DANCE_DOUBLE(KC_EQL,  KC_ENT),
  317.  [PGN] = ACTION_TAP_DANCE_DOUBLE(KC_PGDN,  KC_PGUP),
  318.  [UND] = ACTION_TAP_DANCE_DOUBLE(KC_Z, LCTL(KC_Z)),
  319. };
  320.  
  321. const uint16_t PROGMEM fn_actions[] = {
  322.     [B1] = ACTION_MACRO(B1),
  323.     [B2] = ACTION_MACRO(B2),
  324.     [B3] = ACTION_MACRO(B3),
  325. };
  326.  
  327. const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
  328. {
  329.     switch(id) {
  330.     case B1:
  331.         if (!record->event.pressed) {
  332.              return MACRO(T(LPRN), T(RPRN), T(LEFT) END);
  333.         }
  334.         break;
  335.     case B2:
  336.         if (!record->event.pressed) {
  337.              return MACRO(T(LBRC), T(RBRC), T(LEFT) END);
  338.         }
  339.         break;
  340.     case B3:
  341.         if (!record->event.pressed) {
  342.              return MACRO(T(LCBR), T(ENT), T(RCBR), T(UP) END);
  343.         }
  344.         break;
  345.     }
  346.     return MACRO_NONE;
  347. }
  348. void matrix_init_user(void) {
  349.     set_unicode_input_mode(UC_LNX);
  350. };
  351.  
  352. void action_function(keyrecord_t *record, uint8_t id, uint8_t opt)
  353. {
  354.   if (id == BOOTLOADER) {
  355.     bootloader();
  356.   }
  357. }
  358.  
  359. static bool bsdel_mods = false;
  360. case M_BSDEL: {
  361.   uint8_t kc = KC_BSPC;
  362.  
  363.   if (record->event.pressed) {
  364.     if (keyboard_report->mods) {
  365.       kc = KC_DEL;
  366.     }
  367.     register_code (kc);
  368.     bsdel_mods = keyboard_report->mods;
  369.   }
  370.   else {
  371.     if (bsdel_mods) {
  372.       kc = KC_DEL;
  373.     }
  374.     unregister_code (kc);
  375.   }
  376. }
  377.  
  378.  
  379. const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
  380. {
  381.     bool use_cmd = true;
  382.     // Compare to MAGIC_SWAP_ALT_GUI and MAGIC_UNSWAP_ALT_GUI configs, set in quantum/quantum.c
  383.     if(keymap_config.swap_lalt_lgui == 1 && keymap_config.swap_ralt_rgui == 1) {
  384.       use_cmd = false;
  385.     }
  386.    
  387.     switch (id) {
  388.       case KC_ALT_TAB:
  389.         if(use_cmd) { return (record->event.pressed ? MACRO( D(LALT),  D(TAB), END ) : MACRO( U(TAB), END )); }
  390.         else        { return (record->event.pressed ? MACRO( D(LGUI),  D(TAB), END ) : MACRO( U(TAB), END )); }
  391.       case KC_GUI_TAB:
  392.         if(use_cmd) { return (record->event.pressed ? MACRO( D(LGUI),  D(TAB), END ) : MACRO( U(TAB), END )); }
  393.         else        { return (record->event.pressed ? MACRO( D(LALT),  D(TAB), END ) : MACRO( U(TAB), END )); }
  394.       case KC_CTL_TAB:
  395.         return (record->event.pressed ? MACRO( D(LCTRL), D(TAB), END ) : MACRO( U(TAB), END ));
  396.     }
  397.     return MACRO_NONE;
  398. }
  399.  
  400. /* void persistent_default_layer_set(uint16_t default_layer) {
  401.  *   eeconfig_update_default_layer(default_layer);
  402.  *   default_layer_set(default_layer);
  403.  * }
  404.  */
  405.  
  406.  
  407. /*
  408. enum {
  409.   TTP,
  410. };
  411.  
  412. //Triple TAP
  413. void tap_count (qk_tap_dance_state_t *state, void *user_data) {
  414.   if (state->count == 2) {        
  415.     uint8_t kc = KC_LPRN;   //define double tap here
  416.     register_code (kc);
  417.   }
  418.   else {    
  419.     uint8_t kc = ALT_TAB;   //define single tap or hold here
  420.     register_code (kc);
  421.   }
  422.   if (state->count == 3) {        
  423.     uint8_t kc = KC_RPRN;   //define triple tap here
  424.     register_code (kc);
  425.   }
  426.   else {
  427.     reset_tap_dance (state);
  428.   }
  429. }
  430.  
  431. qk_tap_dance_action_t tap_dance_actions[] = {
  432.   // tap for Layer 0, tap twice to switch to symbol layer, and tap three times to switch to rimworld layer.
  433.   [TTP] = ACTION_TAP_DANCE_FN(tap_count)
  434. };
  435.  
  436. TD(TTP)
  437. */
  438.  
  439. //
  440. // [_] =  KEYMAP( \
  441. // _______, _______, _______, _______, _______, _______,         _______, _______, _______, _______, _______, _______, \
  442. // _______, _______, _______, _______, _______, _______,         _______, _______, _______, _______, _______, _______, \
  443. // _______, _______, _______, _______, _______, _______,         _______, _______, _______, _______, _______, _______, \
  444. // _______, _______, _______, _______, _______, _______,         _______, _______, _______, _______, _______, _______ \
  445. // ),
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement