Last active
November 23, 2016 07:06
-
-
Save srustamo/7b9d1c01ba7bf08556f97d787c33855c to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// This is the personal keymap of Jeremy Cowgar (@jcowgar). It is written for the programmer. | |
#include "atreus.h" | |
#include "action_layer.h" | |
#include "keymap_colemak.h" | |
#define PREVENT_STUCK_MODIFIERS | |
// Each layer gets a name for readability, which is then used in the keymap matrix below. | |
/* #define ALPH 0 */ | |
/* #define NUMS 1 */ | |
/* #define CURS 2 */ | |
/* #define SYMB 3 */ | |
/* #define FKEY 4 */ | |
// Some handy macros to keep the keymaps clean and easier to maintain | |
#define KM_SAVE LGUI(CM_S) | |
#define KM_CLSE LGUI(CM_W) | |
#define KM_OPEN LGUI(CM_O) | |
#define KM_COPY LGUI(KC_C) | |
#define KM_CUT LGUI(KC_X) | |
#define KM_PAST LGUI(KC_V) | |
#define KM_UNDO LGUI(KC_Z) | |
#define KM_REDO LGUI(LSFT(KC_Z)) | |
// Each layer gets a name for readability, which is then used in the keymap matrix below. | |
#define BOOT 0 // Bootloader (not to be confused with default layer) | |
#define ALPH 0 // Alphabet Layer | |
#define NUMS 1 // Number Layer | |
#define CURS 2 // Cursor Layer | |
#define SYMB 3 // Symbol Layer | |
#define FKEY 4 // Function Key Layer | |
#define OPBS 5 // Option or Backspace | |
#define CMDL 6 // Command or Delete | |
#define SFSP 7 // Left Shift or Space | |
#define SFET 8 // Right Shift or Enter | |
#define CTTB 9 // Control or Tab | |
#define CTES 10 // Control or Escape | |
#define FN_CTES (KC_FN0 + CTES) | |
#define FN_CTTB (KC_FN0 + CTTB) | |
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |
[ALPH] = { | |
{KC_Q, KC_W, KC_E, KC_R, KC_T, KC_TRNS, KC_Y, KC_U, KC_I, KC_O, KC_P}, | |
{KC_A, LT(NUMS, KC_S), LT(FKEY, KC_D), KC_F, KC_G, KC_TRNS, KC_H, KC_J, LT(CURS, KC_K), LT(SYMB, KC_L), KC_ENT}, | |
{KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LGUI, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH}, | |
{FN_CTTB, KC_LALT, KC_QUOT, KC_TAB, KC_SPC, KC_LCTL, KC_RCTL, KC_RSFT, KC_MINS, KC_BSPC, KC_SCLN} | |
}, | |
[NUMS] = { | |
{KC_TRNS, KC_TRNS, KC_TRNS, KC_ASTR, KC_SLSH, KC_TRNS, KC_TRNS, KC_7, KC_8, KC_9, KC_SLSH}, | |
{KC_TRNS, KC_TRNS, KC_EQL, KC_PLUS, KC_MINS, KC_TRNS, KC_LPRN, KC_4, KC_5, KC_6, KC_ASTR}, | |
{KC_TRNS, KC_TRNS, KC_DOT, KC_COMM, CM_SCLN, KC_TRNS, KC_RPRN, KC_1, KC_2, KC_3, KC_MINS}, | |
{KC_TRNS, KC_TRNS, KC_TRNS, KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_0, KC_DOT, KC_EQL, KC_PLUS} | |
}, | |
[CURS] = { | |
{KC_TRNS, KC_BSPC, KC_UP, KC_DELT, KC_PGUP, KC_TRNS, KC_TRNS, KM_SAVE, KC_TRNS, KM_OPEN, KC_TRNS}, | |
{KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_TRNS, KM_UNDO, KC_LALT, KC_TRNS, KC_LGUI, KC_TRNS}, | |
{KC_TRNS, KC_VOLD, KC_MUTE, KC_VOLU, KC_MPLY, KM_COPY, KM_REDO, KM_CLSE, KC_TRNS, KC_TRNS, KC_TRNS}, | |
{KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TAB, KM_CUT, KM_PAST, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} | |
}, | |
[SYMB] = { | |
{KC_EXLM, KC_AT, KC_LABK, KC_RABK, KC_PIPE, KC_TRNS, KC_UNDS, KC_DLR, KC_QUES, KC_TRNS, KC_BSLS}, | |
{KC_HASH, KC_AMPR, KC_LPRN, KC_RPRN, KC_SCLN, KC_TRNS, KC_COMM, KC_DOT, KC_QUOT, KC_TRNS, KC_SLSH}, | |
{KC_PERC, KC_CIRC, KC_LCBR, KC_RCBR, KC_TILD, KC_TRNS, KC_TRNS, KC_GRV, KC_DQT, KC_TRNS, KC_COLN}, | |
{KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} | |
}, | |
[FKEY] = { | |
{KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F9, KC_F10, KC_F11, KC_F12}, | |
{KC_LCTL, KC_LALT, KC_TRNS, KC_LGUI, KC_TRNS, KC_TRNS, KC_TRNS, KC_F5, KC_F6, KC_F7, KC_F8}, | |
{KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4}, | |
{KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} | |
}}; | |
const uint16_t PROGMEM fn_actions[] = { | |
[NUMS] = ACTION_LAYER_TAP_KEY(NUMS, KC_S), | |
[FKEY] = ACTION_LAYER_TAP_KEY(FKEY, KC_D), | |
[CURS] = ACTION_LAYER_TAP_KEY(CURS, KC_K), | |
[SYMB] = ACTION_LAYER_TAP_KEY(SYMB, KC_L), | |
[OPBS] = ACTION_MODS_TAP_KEY(MOD_LALT, KC_BSPC), | |
[CMDL] = ACTION_MODS_TAP_KEY(MOD_LGUI, KC_DEL), | |
[SFSP] = ACTION_MODS_TAP_KEY(MOD_LSFT, KC_SPC), | |
[SFET] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_ENT), | |
[CTTB] = ACTION_MODS_TAP_KEY(MOD_LCTL, KC_TAB), | |
[CTES] = ACTION_MODS_TAP_KEY(MOD_RCTL, KC_ESC) | |
}; | |
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) | |
{ | |
switch(id) {} | |
return MACRO_NONE; | |
}; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment