Created
September 19, 2018 03:02
-
-
Save unycone/87be2535a43d7eb7842f29a6c360d2e7 to your computer and use it in GitHub Desktop.
Keymap for keebio iris
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
#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; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
$ make iris:custom:avrdude