Skip to content

Instantly share code, notes, and snippets.

@unycone
Created September 19, 2018 03:02
Show Gist options
  • Save unycone/87be2535a43d7eb7842f29a6c360d2e7 to your computer and use it in GitHub Desktop.
Save unycone/87be2535a43d7eb7842f29a6c360d2e7 to your computer and use it in GitHub Desktop.
Keymap for keebio iris
#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;
}
@unycone
Copy link
Author

unycone commented Sep 19, 2018

$ make iris:custom:avrdude

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment