Created
September 19, 2018 03:02
-
-
Save unycone/87be2535a43d7eb7842f29a6c360d2e7 to your computer and use it in GitHub Desktop.
Revisions
-
unycone created this gist
Sep 19, 2018 .There are no files selected for viewing
This file contains hidden or 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 charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,107 @@ #include "iris.h" #include "action_layer.h" #include "eeconfig.h" extern keymap_config_t keymap_config; #define MODS_SHIFT_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) #define MODS_CTRL_MASK (MOD_BIT(KC_LCTL)|MOD_BIT(KC_RCTRL)) #define MODS_ALT_MASK (MOD_BIT(KC_LALT)|MOD_BIT(KC_RALT)) #define MODS_GUI_MASK (MOD_BIT(KC_LGUI)|MOD_BIT(KC_RGUI)) #define MODS_NONE 0 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Layer 0 LAYOUT( KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, // Left R1 KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, // Right R1 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, // Left R2 KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,// Right R2 KC_LCTL,KC_A, KC_S, KC_D, KC_F, KC_G, // Left R3 KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT,// Right R3 MT(MOD_LSFT,KC_ESC), MT(MOD_LSFT,KC_GRV), KC_Z, KC_X, KC_C, KC_V, // Left R4 KC_LBRC,KC_RBRC, // Thumb Top KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH,// Right R4 KC_LALT,MT(MOD_LGUI, KC_LANG2), KC_SPC, // Left Thumb Bottom KC_ENT, LT(1, KC_LANG1), KC_BSPC // Right Thumb Bottom ), // Layer 1 LAYOUT( KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, // Left R1 KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, // Right R1 KC_TRNS,KC_TRNS,KC_UP, KC_TRNS,KC_TRNS,KC_TRNS,// Left R2 KC_TRNS,KC_TRNS,KC_TRNS,KC_MUTE,KC_VOLD,KC_VOLU,// Right R2 KC_TRNS,KC_LEFT,KC_DOWN,KC_RGHT,KC_TRNS,KC_TRNS,// Left R3 KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,// Right R3 F(0), KC_TRNS,KC_TRNS,BL_DEC, BL_TOGG,BL_INC, // Left R4 KC_TRNS,KC_TRNS, // Thumb Top KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,// Right R4 KC_TRNS,KC_TRNS,KC_TRNS, // Left Thumb Bottom KC_TRNS,KC_TRNS,KC_TRNS // Right Thumb Bottom ) }; enum function_id { LOCK_SCREEN = 0, CAPTURE_SCREEN = 1, }; const uint16_t PROGMEM fn_actions[] = { [0] = ACTION_FUNCTION(LOCK_SCREEN), // In OSX High Sierra, lock screen [1] = ACTION_FUNCTION(CAPTURE_SCREEN), // Capture selected region to file }; void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { switch (id) { case LOCK_SCREEN: // Cmd + Ctrl + Q if (record->event.pressed) { register_code(KC_LGUI); register_code(KC_LCTRL); add_key(KC_Q); send_keyboard_report(); } else { del_key(KC_Q); unregister_code(KC_LCTRL); unregister_code(KC_LGUI); send_keyboard_report(); } break; case CAPTURE_SCREEN: // Cmd + Shift + 4 if (record->event.pressed) { register_code(KC_LGUI); register_code(KC_LSFT); add_key(KC_4); send_keyboard_report(); } else { del_key(KC_4); unregister_code(KC_LSFT); unregister_code(KC_LGUI); send_keyboard_report(); } } } bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch(keycode) { case KC_1: if (record->event.pressed) { if (keyboard_report->mods & MODS_GUI_MASK) { del_key(KC_ESC); add_key(KC_F1); send_keyboard_report(); del_key(KC_F1); send_keyboard_report(); return false; } } return true; break; default: return true; } return true; }