Skip to content

Instantly share code, notes, and snippets.

@syrm
Last active November 1, 2020 14:41
Show Gist options
  • Save syrm/2bad8e46f0b623e0748d6bff2992705e to your computer and use it in GitHub Desktop.
Save syrm/2bad8e46f0b623e0748d6bff2992705e to your computer and use it in GitHub Desktop.
#include QMK_KEYBOARD_H
#include "version.h"
#include "keymap_bepo.h"
#define BEPO 0
#define L1 1
#define L2 2
#define L3 3
#define GAMING 4
#define USB_LED_CAPS_LOCK 1
#define KC_MAC_UNDO LGUI(KC_Z)
#define KC_MAC_CUT LGUI(KC_X)
#define KC_MAC_COPY LGUI(KC_C)
#define KC_MAC_PASTE LGUI(KC_V)
#define KC_PC_UNDO LCTL(KC_Z)
#define KC_PC_CUT LCTL(KC_X)
#define KC_PC_COPY LCTL(KC_C)
#define KC_PC_PASTE LCTL(KC_V)
/*
enum custom_keycodes {
RGB_SLD = SAFE_RANGE, // can always be here
EPRM,
};
*/
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[BEPO] = LAYOUT_ergodox(
/** BEPO
* ,--------------------------------------------------. ,--------------------------------------------------.
* | $ | " | « | » | ( | ) | | | | @ | + | - | / | * | = |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | | B | É | P | O | È | Caps | | | ^ | V | D | L | J | Z |
* |--------+------+------+------+------+------| Lock | | |------+------+------+------+------+--------|
* | Ç | A | U | I | E | , |------| |------| C | T | S | R | N | M |
* |--------+------+------+------+------+------| Esc | | Tab |------+------+------+------+------+--------|
* | Ê | À | Y | X | . | K | | | | ' | Q | G | H | F | W |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | Meh | Super| L2 | L1 | Ctrl | | Ctrl | L1 | L2 | Super| Meh |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | | | | | |
* ,------|------|------| |------+------+------.
* | | | | | | | |
* | Space| Shift|------| |------| BkSp | Enter|
* | | | Alt | | AltGr| | AltGr|
* `--------------------' `--------------------'
*/
/* left hand */
BP_DLR, BP_DQOT, BP_LGIL, BP_RGIL, BP_LPRN, BP_RPRN, KC_NO,
KC_NO, BP_B, BP_ECUT, BP_P, BP_O, BP_EGRV, KC_CAPSLOCK,
BP_CCED, BP_A, BP_U, BP_I, BP_E, BP_COMM,
BP_ECRC, BP_AGRV, BP_Y, BP_X, BP_DOT, BP_K, KC_ESC,
KC_MEH, KC_LCMD, MO(L2), MO(L1), KC_LCTL,
KC_NO, KC_NO,
KC_NO, KC_SPACE,
KC_LSHIFT, KC_LALT,
/* right hand */
KC_NO, BP_AT, BP_PLUS, BP_MINS, BP_SLSH, BP_ASTR, BP_EQL,
KC_NO, BP_DCRC, BP_V, BP_D, BP_L, BP_J, BP_Z,
BP_C, BP_T, BP_S, BP_R, BP_N, BP_M,
KC_TAB, BP_APOS, BP_Q, BP_G, BP_H, BP_F, BP_W,
KC_RCTL, MO(L1), MO(L2), KC_RCMD, KC_MEH,
KC_NO, KC_NO,
KC_NO, KC_RALT,
KC_BSPC, MT(MOD_RALT, KC_ENTER)
),
[L1] = LAYOUT_ergodox(
/** L1
* ,--------------------------------------------------. ,--------------------------------------------------.
* | |PrtScr| | | | | | | | | | | | | |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | |Insert| PgUp | Up | PgDwn| | | | | , | 7 | 8 | 9 | - | / |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | |ScrLck| Left | Down | Right| |------| |------| . | 4 | 5 | 6 | + | * |
* |--------+------+------+------+------+------| Esc | | Tab |------+------+------+------+------+--------|
* | | Break| Home | Del | End | | | | | 0 | 1 | 2 | 3 | = | |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | | | L3 | | Ctrl | | Ctrl | | L3 | | |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | | | | | |
* ,------|------|------| |------+------+------.
* | | | | | | | |
* | Space| Shift|------| |------| BkSp | Enter|
* | | | Alt | | | | AltGr|
* `--------------------' `--------------------'
*/
/* left hand */
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_PSCR, KC_PGUP, KC_UP, KC_PGDOWN, KC_NO, KC_NO,
KC_NO, KC_SLCK, KC_LEFT, KC_DOWN, KC_RIGHT, KC_NO,
KC_NO, KC_PAUS, KC_HOME, KC_DEL, KC_END, KC_NO, KC_TRNS,
KC_NO, KC_NO, MO(L3), KC_NO, KC_TRNS,
KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS,
/* right hand */
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, BP_COMMA, BP_7, BP_8, BP_9, BP_MINUS, BP_SLASH,
BP_DOT, BP_4, BP_5, BP_6, BP_PLUS, BP_ASTR,
KC_TRNS, BP_0, BP_1, BP_2, BP_3, BP_EQUAL, KC_NO,
KC_TRNS, KC_NO, MO(L3), KC_NO, KC_NO,
KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS
),
[L2] = LAYOUT_ergodox(
/** L2
* ,--------------------------------------------------. ,--------------------------------------------------.
* | | | | | | | | | | | | | | | |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | | ! | @ | ( | ) | | | | | | | F7 | F8 | F9 | F12 | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | # | & | $ | < | > | _ |------| |------| | F4 | F5 | F6 | F11 | |
* |--------+------+------+------+------+------| Esc | | Tab |------+------+------+------+------+--------|
* | \ | % | ^ | [ | ] | ~ | | | | | F1 | F2 | F3 | F10 | |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | | | | L3 | Ctrl | | Ctrl | L3 | | | |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | | | | | |
* ,------|------|------| |------+------+------.
* | | | | | | | |
* | Space| Shift|------| |------| BkSp | Enter|
* | | | Alt | | | | AltGr|
* `--------------------' `--------------------'
*/
/* left hand */
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, BP_EXLM, BP_AT, BP_LPRN, BP_RPRN, BP_PIPE, KC_NO,
BP_HASH, BP_AMPR, BP_DLR, BP_LESS, BP_GRTR, BP_MDSH,
BP_BSLS, BP_PERC, BP_CIRC, BP_LBRC, BP_RBRC, BP_TILD, KC_TRNS,
KC_NO, KC_NO, KC_NO, MO(L3), KC_TRNS,
KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS,
/* right hand */
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_F7, KC_F8, KC_F9, KC_F12, KC_NO,
KC_NO, KC_F4, KC_F5, KC_F6, KC_F11, KC_NO,
KC_TRNS, KC_NO, KC_F1, KC_F2, KC_F3, KC_F10, KC_NO,
KC_TRNS, MO(L3), KC_NO, KC_NO, KC_NO,
KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS
),
[L3] = LAYOUT_ergodox(
/** L3
* ,--------------------------------------------------. ,--------------------------------------------------.
* | | | | | | | | | | | | | |GAMING| RESET |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | $ | " | « | » | ( | ) | | | | @ | + | - | / | * | = |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | | | | | |------| |------| | | | | | |
* |--------+------+------+------+------+------| Esc | | Tab |------+------+------+------+------+--------|
* | | | | | | | | | | | | | | | |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | | | | | Ctrl | | Ctrl | | | | |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | | | | | |
* ,------|------|------| |------+------+------.
* | | | | | | | |
* | Space| Shift|------| |------| BkSp | Enter|
* | | | Alt | | | | AltGr|
* `--------------------' `--------------------'
*/
/* left hand */
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
BP_DLR, BP_DQOT, BP_LGIL, BP_RGIL, BP_LPRN, BP_RPRN, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS,
KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS,
KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS,
/* right hand */
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, DF(GAMING), RESET,
KC_NO, BP_AT, BP_PLUS, BP_MINS, BP_SLSH, BP_ASTR, BP_EQL,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS,
KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS
),
[GAMING] = LAYOUT_ergodox(
/** GAMING
* ,--------------------------------------------------. ,--------------------------------------------------.
* | ² | & | é | " | ' | ( | | | | - | è | _ | ç | à | |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | $ | T | A | Z | E | R | Caps | | | Y | U | I | O | P | ^ |
* |--------+------+------+------+------+------| Lock | | |------+------+------+------+------+--------|
* | Tab | G | Q | S | D | F |------| |------| H | J | K | L | M | ù |
* |--------+------+------+------+------+------| Esc | | Tab |------+------+------+------+------+--------|
* | | B | W | X | C | V | | | | N | , | ; | : | ! | * |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | Meh | Super| | BEPO | Ctrl | | Ctrl | | | Super| Meh |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | | | | | |
* ,------|------|------| |------+------+------.
* | | | | | | | |
* | Space| Shift|------| |------| BkSp | Enter|
* | | | Alt | | | | AltGr|
* `--------------------' `--------------------'
*/
/* left hand */
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_QUOT,
KC_RBRC, KC_T, KC_Q, KC_W, KC_E, KC_R, KC_CAPSLOCK,
KC_TAB, KC_G, KC_A, KC_S, KC_D, KC_F,
KC_NO, KC_B, KC_Z, KC_X, KC_C, KC_V, KC_ESC,
KC_MEH, KC_LCMD, KC_NO, DF(BEPO), KC_LCTL,
KC_NO, KC_NO,
KC_NO, KC_SPACE,
KC_LSHIFT, KC_LALT,
/* right hand */
KC_NO, KC_6, KC_7, KC_8, KC_9, KC_0, KC_NO,
KC_NO, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,
KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
KC_TAB, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_BSLS,
KC_RCTL, MO(L1), MO(L2), KC_RCMD, KC_MEH,
KC_NO, KC_NO,
KC_NO, KC_NO,
KC_BSPC, MT(MOD_RALT, KC_ENTER)
),
};
/*
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case EPRM:
if (record->event.pressed) {
eeconfig_init();
}
return false;
}
return true;
}
*/
uint32_t layer_state_set_user(uint32_t state) {
uint8_t layer = biton32(state);
ergodox_board_led_off();
ergodox_right_led_1_off();
ergodox_right_led_2_off();
ergodox_right_led_3_off();
switch (layer) {
case 1:
ergodox_right_led_2_on();
break;
case 2:
ergodox_right_led_3_on();
break;
case 3:
ergodox_right_led_2_on();
ergodox_right_led_3_on();
break;
default:
break;
}
return state;
};
void led_set_user(uint8_t usb_led) {
if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) {
ergodox_right_led_1_on();
} else {
ergodox_right_led_1_off();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment